diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/bit.out | 137 | ||||
| -rw-r--r-- | src/test/regress/sql/bit.sql | 76 |
2 files changed, 97 insertions, 116 deletions
diff --git a/src/test/regress/expected/bit.out b/src/test/regress/expected/bit.out index 552b528d2a..4821a1d3da 100644 --- a/src/test/regress/expected/bit.out +++ b/src/test/regress/expected/bit.out @@ -4,23 +4,23 @@ -- -- Build tables for testing -- -CREATE TABLE ZPBIT_TABLE(b BIT(11)); -INSERT INTO ZPBIT_TABLE VALUES (B''); -INSERT INTO ZPBIT_TABLE VALUES (B'0'); -INSERT INTO ZPBIT_TABLE VALUES (B'11011'); -INSERT INTO ZPBIT_TABLE VALUES (B'01010101010'); -INSERT INTO ZPBIT_TABLE VALUES (B'101011111010'); -- too long ---INSERT INTO ZPBIT_TABLE VALUES ('X554'); ---INSERT INTO ZPBIT_TABLE VALUES ('X555'); -SELECT * FROM ZPBIT_TABLE; +CREATE TABLE BIT_TABLE(b BIT(11)); +INSERT INTO BIT_TABLE VALUES (B'10'); -- too short +ERROR: bit string length does not match type bit(11) +INSERT INTO BIT_TABLE VALUES (B'00000000000'); +INSERT INTO BIT_TABLE VALUES (B'11011000000'); +INSERT INTO BIT_TABLE VALUES (B'01010101010'); +INSERT INTO BIT_TABLE VALUES (B'101011111010'); -- too long +ERROR: bit string length does not match type bit(11) +--INSERT INTO BIT_TABLE VALUES ('X554'); +--INSERT INTO BIT_TABLE VALUES ('X555'); +SELECT * FROM BIT_TABLE; b ------------- 00000000000 - 00000000000 11011000000 01010101010 - 10101111101 -(5 rows) +(3 rows) CREATE TABLE VARBIT_TABLE(v BIT VARYING(11)); INSERT INTO VARBIT_TABLE VALUES (B''); @@ -28,6 +28,7 @@ INSERT INTO VARBIT_TABLE VALUES (B'0'); INSERT INTO VARBIT_TABLE VALUES (B'010101'); INSERT INTO VARBIT_TABLE VALUES (B'01010101010'); INSERT INTO VARBIT_TABLE VALUES (B'101011111010'); -- too long +ERROR: bit string too long for type bit varying(11) --INSERT INTO VARBIT_TABLE VALUES ('X554'); --INSERT INTO VARBIT_TABLE VALUES ('X555'); SELECT * FROM VARBIT_TABLE; @@ -37,53 +38,37 @@ SELECT * FROM VARBIT_TABLE; 0 010101 01010101010 - 10101111101 -(5 rows) +(4 rows) -- Concatenation SELECT v, b, (v || b) AS concat - FROM ZPBIT_TABLE, VARBIT_TABLE + FROM BIT_TABLE, VARBIT_TABLE ORDER BY 3; v | b | concat -------------+-------------+------------------------ | 00000000000 | 00000000000 - | 00000000000 | 00000000000 - 0 | 00000000000 | 000000000000 0 | 00000000000 | 000000000000 0 | 01010101010 | 001010101010 010101 | 00000000000 | 01010100000000000 - 010101 | 00000000000 | 01010100000000000 | 01010101010 | 01010101010 01010101010 | 00000000000 | 0101010101000000000000 - 01010101010 | 00000000000 | 0101010101000000000000 01010101010 | 01010101010 | 0101010101001010101010 010101 | 01010101010 | 01010101010101010 - 01010101010 | 10101111101 | 0101010101010101111101 01010101010 | 11011000000 | 0101010101011011000000 - 010101 | 10101111101 | 01010110101111101 010101 | 11011000000 | 01010111011000000 - 0 | 10101111101 | 010101111101 0 | 11011000000 | 011011000000 - | 10101111101 | 10101111101 - 10101111101 | 00000000000 | 1010111110100000000000 - 10101111101 | 00000000000 | 1010111110100000000000 - 10101111101 | 01010101010 | 1010111110101010101010 - 10101111101 | 10101111101 | 1010111110110101111101 - 10101111101 | 11011000000 | 1010111110111011000000 | 11011000000 | 11011000000 -(25 rows) +(12 rows) -- Length SELECT b, length(b) AS lb - FROM ZPBIT_TABLE; + FROM BIT_TABLE; b | lb -------------+---- 00000000000 | 11 - 00000000000 | 11 11011000000 | 11 01010101010 | 11 - 10101111101 | 11 -(5 rows) +(3 rows) SELECT v, length(v) AS lv FROM VARBIT_TABLE; @@ -93,23 +78,20 @@ SELECT v, length(v) AS lv 0 | 1 010101 | 6 01010101010 | 11 - 10101111101 | 11 -(5 rows) +(4 rows) -- Substring SELECT b, SUBSTRING(b FROM 2 FOR 4) AS sub_2_4, SUBSTRING(b FROM 7 FOR 13) AS sub_7_13, SUBSTRING(b FROM 6) AS sub_6 - FROM ZPBIT_TABLE; + FROM BIT_TABLE; b | sub_2_4 | sub_7_13 | sub_6 -------------+---------+----------+-------- 00000000000 | 0000 | 00000 | 000000 - 00000000000 | 0000 | 00000 | 000000 11011000000 | 1011 | 00000 | 000000 01010101010 | 1010 | 01010 | 101010 - 10101111101 | 0101 | 11101 | 111101 -(5 rows) +(3 rows) SELECT v, SUBSTRING(v FROM 2 FOR 4) AS sub_2_4, @@ -122,8 +104,7 @@ SELECT v, 0 | | | 010101 | 1010 | | 1 01010101010 | 1010 | 01010 | 101010 - 10101111101 | 0101 | 11101 | 111101 -(5 rows) +(4 rows) --- Bit operations DROP TABLE varbit_table; @@ -178,11 +159,11 @@ SELECT a,a<<4 AS "a<<4",b,b>>2 AS "b>>2" FROM varbit_table; DROP TABLE varbit_table; --- Bit operations -DROP TABLE zpbit_table; -CREATE TABLE zpbit_table (a BIT(16), b BIT(16)); -COPY zpbit_table FROM stdin; +DROP TABLE bit_table; +CREATE TABLE bit_table (a BIT(16), b BIT(16)); +COPY bit_table FROM stdin; SELECT a,b,~a AS "~ a",a & b AS "a & b", - a|b AS "a | b", a # b AS "a # b" FROM zpbit_table; + a|b AS "a | b", a # b AS "a # b" FROM bit_table; a | b | ~ a | a & b | a | b | a # b ------------------+------------------+------------------+------------------+------------------+------------------ 0000111100000000 | 0001000000000000 | 1111000011111111 | 0000000000000000 | 0001111100000000 | 0001111100000000 @@ -198,7 +179,7 @@ SELECT a,b,~a AS "~ a",a & b AS "a & b", (10 rows) SELECT a,b,a<b AS "a<b",a<=b AS "a<=b",a=b AS "a=b", - a>=b AS "a>=b",a>b AS "a>b",a<>b AS "a<>b" FROM zpbit_table; + a>=b AS "a>=b",a>b AS "a>b",a<>b AS "a<>b" FROM bit_table; a | b | a<b | a<=b | a=b | a>=b | a>b | a<>b ------------------+------------------+-----+------+-----+------+-----+------ 0000111100000000 | 0001000000000000 | t | t | f | f | f | t @@ -213,7 +194,7 @@ SELECT a,b,a<b AS "a<b",a<=b AS "a<=b",a=b AS "a=b", 0001001000110100 | 1111111111110101 | t | t | f | f | f | t (10 rows) -SELECT a,a<<4 AS "a<<4",b,b>>2 AS "b>>2" FROM zpbit_table; +SELECT a,a<<4 AS "a<<4",b,b>>2 AS "b>>2" FROM bit_table; a | a<<4 | b | b>>2 ------------------+------------------+------------------+------------------ 0000111100000000 | 1111000000000000 | 0001000000000000 | 0000010000000000 @@ -228,14 +209,14 @@ SELECT a,a<<4 AS "a<<4",b,b>>2 AS "b>>2" FROM zpbit_table; 0001001000110100 | 0010001101000000 | 1111111111110101 | 0011111111111101 (10 rows) -DROP TABLE zpbit_table; +DROP TABLE bit_table; -- The following should fail select B'001' & B'10'; -ERROR: bitand: Cannot AND bitstrings of different sizes +ERROR: cannot AND bit strings of different sizes select B'0111' | B'011'; -ERROR: bitor: Cannot OR bitstrings of different sizes +ERROR: cannot OR bit strings of different sizes select B'0010' # B'011101'; -ERROR: bitxor: Cannot XOR bitstrings of different sizes +ERROR: cannot XOR bit strings of different sizes -- More position tests, checking all the boundary cases SELECT POSITION(B'1010' IN B'0000101'); -- 0 position @@ -466,16 +447,16 @@ SELECT POSITION(B'0000000000011101011111010110' IN B'000000000011101011111010110 (1 row) -- Shifting -CREATE TABLE ZPBIT_SHIFT_TABLE(b BIT(16)); -INSERT INTO ZPBIT_SHIFT_TABLE VALUES (B'11011'); -INSERT INTO ZPBIT_SHIFT_TABLE SELECT b>>1 FROM ZPBIT_SHIFT_TABLE; -INSERT INTO ZPBIT_SHIFT_TABLE SELECT b>>2 FROM ZPBIT_SHIFT_TABLE; -INSERT INTO ZPBIT_SHIFT_TABLE SELECT b>>4 FROM ZPBIT_SHIFT_TABLE; -INSERT INTO ZPBIT_SHIFT_TABLE SELECT b>>8 FROM ZPBIT_SHIFT_TABLE; -SELECT POSITION(B'1101'IN b), +CREATE TABLE BIT_SHIFT_TABLE(b BIT(16)); +INSERT INTO BIT_SHIFT_TABLE VALUES (B'1101100000000000'); +INSERT INTO BIT_SHIFT_TABLE SELECT b>>1 FROM BIT_SHIFT_TABLE; +INSERT INTO BIT_SHIFT_TABLE SELECT b>>2 FROM BIT_SHIFT_TABLE; +INSERT INTO BIT_SHIFT_TABLE SELECT b>>4 FROM BIT_SHIFT_TABLE; +INSERT INTO BIT_SHIFT_TABLE SELECT b>>8 FROM BIT_SHIFT_TABLE; +SELECT POSITION(B'1101' IN b), POSITION(B'11011' IN b), b - FROM ZPBIT_SHIFT_TABLE ; + FROM BIT_SHIFT_TABLE ; position | position | b ----------+----------+------------------ 1 | 1 | 1101100000000000 @@ -496,35 +477,35 @@ SELECT POSITION(B'1101'IN b), 0 | 0 | 0000000000000001 (16 rows) -CREATE TABLE VARBIT_SHIFT_TABLE(v BIT VARYING(18)); +CREATE TABLE VARBIT_SHIFT_TABLE(v BIT VARYING(20)); INSERT INTO VARBIT_SHIFT_TABLE VALUES (B'11011'); -INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v AS BIT(6)) >>1 FROM VARBIT_SHIFT_TABLE; -INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v AS BIT(8)) >>2 FROM VARBIT_SHIFT_TABLE; -INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v AS BIT(12)) >>4 FROM VARBIT_SHIFT_TABLE; -INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v AS BIT(20)) >>8 FROM VARBIT_SHIFT_TABLE; +INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v || B'0' AS BIT VARYING(6)) >>1 FROM VARBIT_SHIFT_TABLE; +INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v || B'00' AS BIT VARYING(8)) >>2 FROM VARBIT_SHIFT_TABLE; +INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v || B'0000' AS BIT VARYING(12)) >>4 FROM VARBIT_SHIFT_TABLE; +INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v || B'00000000' AS BIT VARYING(20)) >>8 FROM VARBIT_SHIFT_TABLE; SELECT POSITION(B'1101' IN v), POSITION(B'11011' IN v), v FROM VARBIT_SHIFT_TABLE ; - position | position | v -----------+----------+-------------------- + position | position | v +----------+----------+---------------------- 1 | 1 | 11011 2 | 2 | 011011 - 3 | 3 | 00110110 + 3 | 3 | 0011011 4 | 4 | 00011011 - 5 | 5 | 000011011000 - 6 | 6 | 000001101100 - 7 | 7 | 000000110110 + 5 | 5 | 000011011 + 6 | 6 | 0000011011 + 7 | 7 | 00000011011 8 | 8 | 000000011011 - 9 | 9 | 000000001101100000 - 10 | 10 | 000000000110110000 - 11 | 11 | 000000000011011000 - 12 | 12 | 000000000001101100 - 13 | 13 | 000000000000110110 + 9 | 9 | 0000000011011 + 10 | 10 | 00000000011011 + 11 | 11 | 000000000011011 + 12 | 12 | 0000000000011011 + 13 | 13 | 00000000000011011 14 | 14 | 000000000000011011 - 15 | 0 | 000000000000001101 - 0 | 0 | 000000000000000110 + 15 | 15 | 0000000000000011011 + 16 | 16 | 00000000000000011011 (16 rows) -DROP TABLE ZPBIT_SHIFT_TABLE; +DROP TABLE BIT_SHIFT_TABLE; DROP TABLE VARBIT_SHIFT_TABLE; diff --git a/src/test/regress/sql/bit.sql b/src/test/regress/sql/bit.sql index 41eee3f886..f178991d8f 100644 --- a/src/test/regress/sql/bit.sql +++ b/src/test/regress/sql/bit.sql @@ -6,17 +6,17 @@ -- Build tables for testing -- -CREATE TABLE ZPBIT_TABLE(b BIT(11)); +CREATE TABLE BIT_TABLE(b BIT(11)); -INSERT INTO ZPBIT_TABLE VALUES (B''); -INSERT INTO ZPBIT_TABLE VALUES (B'0'); -INSERT INTO ZPBIT_TABLE VALUES (B'11011'); -INSERT INTO ZPBIT_TABLE VALUES (B'01010101010'); -INSERT INTO ZPBIT_TABLE VALUES (B'101011111010'); -- too long ---INSERT INTO ZPBIT_TABLE VALUES ('X554'); ---INSERT INTO ZPBIT_TABLE VALUES ('X555'); +INSERT INTO BIT_TABLE VALUES (B'10'); -- too short +INSERT INTO BIT_TABLE VALUES (B'00000000000'); +INSERT INTO BIT_TABLE VALUES (B'11011000000'); +INSERT INTO BIT_TABLE VALUES (B'01010101010'); +INSERT INTO BIT_TABLE VALUES (B'101011111010'); -- too long +--INSERT INTO BIT_TABLE VALUES ('X554'); +--INSERT INTO BIT_TABLE VALUES ('X555'); -SELECT * FROM ZPBIT_TABLE; +SELECT * FROM BIT_TABLE; CREATE TABLE VARBIT_TABLE(v BIT VARYING(11)); @@ -32,12 +32,12 @@ SELECT * FROM VARBIT_TABLE; -- Concatenation SELECT v, b, (v || b) AS concat - FROM ZPBIT_TABLE, VARBIT_TABLE + FROM BIT_TABLE, VARBIT_TABLE ORDER BY 3; -- Length SELECT b, length(b) AS lb - FROM ZPBIT_TABLE; + FROM BIT_TABLE; SELECT v, length(v) AS lv FROM VARBIT_TABLE; @@ -46,7 +46,7 @@ SELECT b, SUBSTRING(b FROM 2 FOR 4) AS sub_2_4, SUBSTRING(b FROM 7 FOR 13) AS sub_7_13, SUBSTRING(b FROM 6) AS sub_6 - FROM ZPBIT_TABLE; + FROM BIT_TABLE; SELECT v, SUBSTRING(v FROM 2 FOR 4) AS sub_2_4, SUBSTRING(v FROM 7 FOR 13) AS sub_7_13, @@ -78,14 +78,14 @@ SELECT a,a<<4 AS "a<<4",b,b>>2 AS "b>>2" FROM varbit_table; DROP TABLE varbit_table; --- Bit operations -DROP TABLE zpbit_table; -CREATE TABLE zpbit_table (a BIT(16), b BIT(16)); -COPY zpbit_table FROM stdin; -X0F X10 -X1F X11 -X2F X12 -X3F X13 -X8F X04 +DROP TABLE bit_table; +CREATE TABLE bit_table (a BIT(16), b BIT(16)); +COPY bit_table FROM stdin; +X0F00 X1000 +X1F00 X1100 +X2F00 X1200 +X3F00 X1300 +X8F00 X0400 X000F X0010 X0123 XFFFF X2468 X2468 @@ -94,12 +94,12 @@ X1234 XFFF5 \. SELECT a,b,~a AS "~ a",a & b AS "a & b", - a|b AS "a | b", a # b AS "a # b" FROM zpbit_table; + a|b AS "a | b", a # b AS "a # b" FROM bit_table; SELECT a,b,a<b AS "a<b",a<=b AS "a<=b",a=b AS "a=b", - a>=b AS "a>=b",a>b AS "a>b",a<>b AS "a<>b" FROM zpbit_table; -SELECT a,a<<4 AS "a<<4",b,b>>2 AS "b>>2" FROM zpbit_table; + a>=b AS "a>=b",a>b AS "a>b",a<>b AS "a<>b" FROM bit_table; +SELECT a,a<<4 AS "a<<4",b,b>>2 AS "b>>2" FROM bit_table; -DROP TABLE zpbit_table; +DROP TABLE bit_table; -- The following should fail @@ -158,29 +158,29 @@ SELECT POSITION(B'0000000000011101011111010110' IN B'000000000011101011111010110 -- Shifting -CREATE TABLE ZPBIT_SHIFT_TABLE(b BIT(16)); -INSERT INTO ZPBIT_SHIFT_TABLE VALUES (B'11011'); -INSERT INTO ZPBIT_SHIFT_TABLE SELECT b>>1 FROM ZPBIT_SHIFT_TABLE; -INSERT INTO ZPBIT_SHIFT_TABLE SELECT b>>2 FROM ZPBIT_SHIFT_TABLE; -INSERT INTO ZPBIT_SHIFT_TABLE SELECT b>>4 FROM ZPBIT_SHIFT_TABLE; -INSERT INTO ZPBIT_SHIFT_TABLE SELECT b>>8 FROM ZPBIT_SHIFT_TABLE; -SELECT POSITION(B'1101'IN b), +CREATE TABLE BIT_SHIFT_TABLE(b BIT(16)); +INSERT INTO BIT_SHIFT_TABLE VALUES (B'1101100000000000'); +INSERT INTO BIT_SHIFT_TABLE SELECT b>>1 FROM BIT_SHIFT_TABLE; +INSERT INTO BIT_SHIFT_TABLE SELECT b>>2 FROM BIT_SHIFT_TABLE; +INSERT INTO BIT_SHIFT_TABLE SELECT b>>4 FROM BIT_SHIFT_TABLE; +INSERT INTO BIT_SHIFT_TABLE SELECT b>>8 FROM BIT_SHIFT_TABLE; +SELECT POSITION(B'1101' IN b), POSITION(B'11011' IN b), b - FROM ZPBIT_SHIFT_TABLE ; + FROM BIT_SHIFT_TABLE ; -CREATE TABLE VARBIT_SHIFT_TABLE(v BIT VARYING(18)); +CREATE TABLE VARBIT_SHIFT_TABLE(v BIT VARYING(20)); INSERT INTO VARBIT_SHIFT_TABLE VALUES (B'11011'); -INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v AS BIT(6)) >>1 FROM VARBIT_SHIFT_TABLE; -INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v AS BIT(8)) >>2 FROM VARBIT_SHIFT_TABLE; -INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v AS BIT(12)) >>4 FROM VARBIT_SHIFT_TABLE; -INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v AS BIT(20)) >>8 FROM VARBIT_SHIFT_TABLE; +INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v || B'0' AS BIT VARYING(6)) >>1 FROM VARBIT_SHIFT_TABLE; +INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v || B'00' AS BIT VARYING(8)) >>2 FROM VARBIT_SHIFT_TABLE; +INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v || B'0000' AS BIT VARYING(12)) >>4 FROM VARBIT_SHIFT_TABLE; +INSERT INTO VARBIT_SHIFT_TABLE SELECT CAST(v || B'00000000' AS BIT VARYING(20)) >>8 FROM VARBIT_SHIFT_TABLE; SELECT POSITION(B'1101' IN v), POSITION(B'11011' IN v), v FROM VARBIT_SHIFT_TABLE ; -DROP TABLE ZPBIT_SHIFT_TABLE; +DROP TABLE BIT_SHIFT_TABLE; DROP TABLE VARBIT_SHIFT_TABLE; |
