From 65ea1b2f616c3a6be645c63e9b26527ae5618cba Mon Sep 17 00:00:00 2001 From: Colin Dellow Date: Sun, 18 Mar 2018 13:11:29 -0400 Subject: [PATCH] Rewrite tests for automatic generation Regularize the parquets - nulls and nonulls each come in 3 variants, with 1, 10 and 99 rows per rowgroup. All test queries are written against nullsA, no_nullsA. Next commit will introduce a tool to expand these template queries to go against the actual tables. --- parquet-generator/99-rows-99.parquet | Bin 0 -> 217698 bytes parquet-generator/99-rows-nulls-1.parquet | Bin 0 -> 182530 bytes ...nulls.parquet => 99-rows-nulls-10.parquet} | Bin parquet-generator/99-rows-nulls-99.parquet | Bin 0 -> 5102 bytes parquet-generator/parquets.py | 5 +- tests/queries/002-table-scan-10-rowgroups.sql | 100 ------------------ tests/queries/004-cross-join-10-rowgroups.sql | 2 +- tests/queries/006-rowid-10-rowgroups.sql | 2 - tests/queries/007-rowid-55-10-rowgroups.sql | 2 +- tests/queries/008-nulls.sql | 2 +- tests/queries/009-rowid-group-by.sql | 2 +- tests/queries/012-string-7-is-null.sql | 2 +- tests/queries/013-string-7-is-not-null.sql | 2 +- .../queries/014-nulls-like-percent-start.sql | 2 +- tests/queries/015-nulls-like-no-match.sql | 2 +- tests/queries/016-nulls-like-percent-end.sql | 2 +- tests/queries/017-nulls-like-underscore.sql | 2 +- tests/queries/018-string-gt-lt.sql | 2 +- tests/queries/019-string-gte-lte.sql | 2 +- tests/queries/020-string-eq.sql | 2 +- tests/queries/021-rowid-and-field-eq.sql | 2 +- tests/queries/022-rowid-and-field-ne.sql | 2 +- tests/queries/023-int8-eq.sql | 2 +- tests/queries/024-int8-lt.sql | 2 +- tests/queries/025-int8-lte.sql | 2 +- tests/queries/026-int8-gt.sql | 2 +- tests/queries/027-int8-gte.sql | 2 +- .../028-int8-rowid-eq-and-field-ne.sql | 2 +- tests/queries/029-int64-gte.sql | 2 +- tests/queries/030-int64-gt.sql | 2 +- tests/queries/031-int64-eq.sql | 2 +- tests/queries/032-int64-lt.sql | 2 +- tests/queries/033-int64-lte.sql | 2 +- .../034-int64-rowid-eq-and-field-ne.sql | 2 +- .../035-int64-rowid-eq-and-field-ne2.sql | 2 +- tests/queries/036-double-eq.sql | 2 +- tests/queries/037-double-gt.sql | 2 +- tests/queries/038-double-gte.sql | 2 +- tests/queries/039-double-lt.sql | 2 +- tests/queries/040-double-lte.sql | 2 +- .../queries/041-double-rowid-and-field-ne.sql | 2 +- .../042-double-rowid-and-field-ne2.sql | 2 +- tests/queries/043-binary-eq.sql | 2 +- tests/queries/044-binary-rowid-and-ne.sql | 2 +- tests/queries/045-binary-lt.sql | 2 +- tests/queries/046-binary-lte.sql | 2 +- tests/queries/047-binary-gt.sql | 2 +- tests/queries/048-binary-gte.sql | 2 +- tests/queries/061-string-eq-int.sql | 2 +- tests/queries/062-string-eq-double.sql | 2 +- tests/queries/063-int8-eq-double.sql | 2 +- tests/queries/064-int8-eq-str.sql | 2 +- tests/queries/065-int8-eq-str2.sql | 2 +- tests/queries/066-int8-eq-bogus-str.sql | 2 +- tests/queries/067-int8-lt-str.sql | 2 +- tests/queries/068-int8-lt-double.sql | 2 +- tests/queries/069-int8-lte-str.sql | 2 +- tests/queries/070-int8-lte-double.sql | 2 +- tests/queries/071-int8-gt-str.sql | 2 +- tests/queries/072-int8-gt-double.sql | 2 +- tests/queries/073-int8-gte-str.sql | 2 +- tests/queries/074-int8-gte-double.sql | 2 +- tests/queries/075-int8-ne-str.sql | 2 +- tests/queries/076-int8-ne-double.sql | 2 +- tests/queries/077-int64-gte-str.sql | 2 +- tests/queries/078-int64-gte-double.sql | 2 +- tests/queries/079-int65-gt-str.sql | 2 +- tests/queries/080-int65-gt-double.sql | 2 +- tests/queries/081-int64-eq-str.sql | 2 +- tests/queries/082-int64-eq-double.sql | 2 +- tests/queries/083-int64-lt-str.sql | 2 +- tests/queries/084-int64-lt-double.sql | 2 +- tests/queries/085-int64-lte-str.sql | 2 +- tests/queries/086-int64-lte-double.sql | 2 +- tests/queries/087-int64-ne-str.sql | 2 +- tests/queries/088-int64-ne-double.sql | 2 +- tests/queries/089-int64-ne-some-str.sql | 2 +- tests/queries/090-int64-ne-some-double.sql | 2 +- tests/queries/091-double-eq-str.sql | 2 +- tests/queries/092-double-eq-int.sql | 2 +- tests/queries/093-double-gt-str.sql | 2 +- tests/queries/094-double-gt-int.sql | 2 +- tests/queries/095-double-gte-str.sql | 2 +- tests/queries/096-double-gte-int.sql | 2 +- tests/queries/097-double-lt-str.sql | 2 +- tests/queries/098-double-lt-int.sql | 2 +- tests/queries/099-double-lte-str.sql | 2 +- tests/queries/100-double-lte-int.sql | 2 +- .../101-double-rowid-and-field-ne-str.sql | 2 +- .../102-double-rowid-and-field-ne-int.sql | 2 +- ...03-double-rowid-and-field-ne2-some-str.sql | 2 +- ...04-double-rowid-and-field-ne2-some-int.sql | 2 +- tests/queries/107-rowid-gt-0.sql | 2 - tests/queries/108-rowid-gte-0.sql | 2 - tests/queries/109-bool-where-eq-0.sql | 2 +- tests/queries/110-bool-where-eq-1.sql | 2 +- tests/queries/111-bool-where-bool.sql | 2 +- tests/queries/112-bool-where-not-bool.sql | 2 +- tests/queries/113-bool-where-gt-0.sql | 2 +- tests/queries/114-bool-where-gte-0.sql | 2 +- tests/queries/115-bool-where-gt-1.sql | 2 +- tests/queries/116-bool-where-lt-0.sql | 2 +- tests/queries/117-bool-where-lt-1.sql | 2 +- tests/queries/118-bool-where-lte-1.sql | 2 +- tests/queries/119-ts-eq-july-20.sql | 2 +- tests/queries/120-ts-lt-july-20.sql | 2 +- tests/queries/121-ts-lte-july-20.sql | 2 +- tests/queries/122-ts-gt-july-20.sql | 2 +- tests/queries/123-ts-gte-july-20.sql | 2 +- tests/queries/124-ts-ne-july-20.sql | 2 +- tests/queries/125-fixed-bytearray-eq.sql | 2 +- tests/queries/126-fixed-bytearray-lt.sql | 2 +- tests/queries/127-fixed-bytearray-lte.sql | 2 +- tests/queries/128-fixed-bytearray-gt.sql | 2 +- tests/queries/129-fixed-bytearray-gte.sql | 2 +- tests/queries/130-fixed-bytearray-ne.sql | 2 +- tests/queries/131-var-bytearray-eq.sql | 2 +- tests/queries/132-var-bytearray-lt.sql | 2 +- tests/queries/133-var-bytearray-lte.sql | 2 +- tests/queries/134-var-bytearray-gt.sql | 2 +- tests/queries/135-var-bytearray-gte.sql | 2 +- tests/queries/136-var-bytearray-ne.sql | 2 +- tests/queries/137-var-bytearray-lte.sql | 2 +- tests/test-queries | 5 +- 124 files changed, 122 insertions(+), 222 deletions(-) create mode 100644 parquet-generator/99-rows-99.parquet create mode 100644 parquet-generator/99-rows-nulls-1.parquet rename parquet-generator/{99-rows-nulls.parquet => 99-rows-nulls-10.parquet} (100%) create mode 100644 parquet-generator/99-rows-nulls-99.parquet delete mode 100644 tests/queries/002-table-scan-10-rowgroups.sql delete mode 100644 tests/queries/006-rowid-10-rowgroups.sql delete mode 100644 tests/queries/107-rowid-gt-0.sql delete mode 100644 tests/queries/108-rowid-gte-0.sql diff --git a/parquet-generator/99-rows-99.parquet b/parquet-generator/99-rows-99.parquet new file mode 100644 index 0000000000000000000000000000000000000000..b49320dff2ff41f72d128e1d53dea30b1100452b GIT binary patch literal 217698 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 QS2%(KW5<|_y7O^ literal 0 HcmV?d00001 diff --git a/parquet-generator/99-rows-nulls-1.parquet b/parquet-generator/99-rows-nulls-1.parquet new file mode 100644 index 0000000000000000000000000000000000000000..42f4264ac18ccce3ba1ca4afe561c651fbb14502 GIT binary patch literal 182530 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 literal 0 HcmV?d00001 diff --git a/parquet-generator/99-rows-nulls.parquet b/parquet-generator/99-rows-nulls-10.parquet similarity index 100% rename from parquet-generator/99-rows-nulls.parquet rename to parquet-generator/99-rows-nulls-10.parquet diff --git a/parquet-generator/99-rows-nulls-99.parquet b/parquet-generator/99-rows-nulls-99.parquet new file mode 100644 index 0000000000000000000000000000000000000000..faca90ac99ee0daf51cf7ab24d1640344fa69aa9 GIT binary patch literal 5102 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 UIYV;CXN}1thw%i=#Xo)j1;*>`^#A|> literal 0 HcmV?d00001 diff --git a/parquet-generator/parquets.py b/parquet-generator/parquets.py index eb5b5c3..4c49444 100644 --- a/parquet-generator/parquets.py +++ b/parquet-generator/parquets.py @@ -136,12 +136,15 @@ def main(): write_parquet('99-rows-1.parquet', rows, types, row_group_size=99) write_csv('no-nulls.csv', rows) write_parquet('99-rows-10.parquet', rows, types, row_group_size=10) + write_parquet('99-rows-99.parquet', rows, types, row_group_size=1) for i in range(len(rows)): for j in range(len(rows[i])): if (i >= 10 and i <= 19) or (i >= 20 and (i + j) % 2 == 0): rows[i][j] = None - write_parquet('99-rows-nulls.parquet', rows, types,row_group_size=10) + write_parquet('99-rows-nulls-99.parquet', rows, types,row_group_size=99) + write_parquet('99-rows-nulls-10.parquet', rows, types,row_group_size=10) + write_parquet('99-rows-nulls-1.parquet', rows, types,row_group_size=1) write_csv('nulls.csv', rows) write_unsupported_parquets() diff --git a/tests/queries/002-table-scan-10-rowgroups.sql b/tests/queries/002-table-scan-10-rowgroups.sql deleted file mode 100644 index 1727299..0000000 --- a/tests/queries/002-table-scan-10-rowgroups.sql +++ /dev/null @@ -1,100 +0,0 @@ -SELECT rowid, bool_0, int8_1, int16_2, int32_3, int64_4, datetime(ts_5 / 1000, 'unixepoch'), printf('%.2f', double_6) AS double_6, string_7, string_8, quote(binary_9), quote(binary_10) FROM no_nulls2 -0|1|50|5000|50000000|50000000000|1985-07-20 00:00:00|99.00|0|000|X'00'|X'00' -1|0|49|4900|49000000|49000000000|1985-07-21 00:00:00|49.50|1|001|X'0101'|X'01' -2|1|48|4800|48000000|48000000000|1985-07-22 00:00:00|33.00|2|002|X'020202'|X'02' -3|0|47|4700|47000000|47000000000|1985-07-23 00:00:00|24.75|3|003|X'03030303'|X'03' -4|1|46|4600|46000000|46000000000|1985-07-24 00:00:00|19.80|4|004|X'0404040404'|X'04' -5|0|45|4500|45000000|45000000000|1985-07-25 00:00:00|16.50|5|005|X'05'|X'05' -6|1|44|4400|44000000|44000000000|1985-07-26 00:00:00|14.14|6|006|X'0606'|X'06' -7|0|43|4300|43000000|43000000000|1985-07-27 00:00:00|12.38|7|007|X'070707'|X'07' -8|1|42|4200|42000000|42000000000|1985-07-28 00:00:00|11.00|8|008|X'08080808'|X'08' -9|0|41|4100|41000000|41000000000|1985-07-29 00:00:00|9.90|9|009|X'0909090909'|X'09' -10|1|40|4000|40000000|40000000000|1985-07-30 00:00:00|9.00|10|010|X'0A'|X'0A' -11|0|39|3900|39000000|39000000000|1985-07-31 00:00:00|8.25|11|011|X'0B0B'|X'0B' -12|1|38|3800|38000000|38000000000|1985-08-01 00:00:00|7.62|12|012|X'0C0C0C'|X'0C' -13|0|37|3700|37000000|37000000000|1985-08-02 00:00:00|7.07|13|013|X'0D0D0D0D'|X'0D' -14|1|36|3600|36000000|36000000000|1985-08-03 00:00:00|6.60|14|014|X'0E0E0E0E0E'|X'0E' -15|0|35|3500|35000000|35000000000|1985-08-04 00:00:00|6.19|15|015|X'0F'|X'0F' -16|1|34|3400|34000000|34000000000|1985-08-05 00:00:00|5.82|16|016|X'1010'|X'10' -17|0|33|3300|33000000|33000000000|1985-08-06 00:00:00|5.50|17|017|X'111111'|X'11' -18|1|32|3200|32000000|32000000000|1985-08-07 00:00:00|5.21|18|018|X'12121212'|X'12' -19|0|31|3100|31000000|31000000000|1985-08-08 00:00:00|4.95|19|019|X'1313131313'|X'13' -20|1|30|3000|30000000|30000000000|1985-08-09 00:00:00|4.71|20|020|X'14'|X'14' -21|0|29|2900|29000000|29000000000|1985-08-10 00:00:00|4.50|21|021|X'1515'|X'15' -22|1|28|2800|28000000|28000000000|1985-08-11 00:00:00|4.30|22|022|X'161616'|X'16' -23|0|27|2700|27000000|27000000000|1985-08-12 00:00:00|4.13|23|023|X'17171717'|X'17' -24|1|26|2600|26000000|26000000000|1985-08-13 00:00:00|3.96|24|024|X'1818181818'|X'18' -25|0|25|2500|25000000|25000000000|1985-08-14 00:00:00|3.81|25|025|X'19'|X'19' -26|1|24|2400|24000000|24000000000|1985-08-15 00:00:00|3.67|26|026|X'1A1A'|X'1A' -27|0|23|2300|23000000|23000000000|1985-08-16 00:00:00|3.54|27|027|X'1B1B1B'|X'1B' -28|1|22|2200|22000000|22000000000|1985-08-17 00:00:00|3.41|28|028|X'1C1C1C1C'|X'1C' -29|0|21|2100|21000000|21000000000|1985-08-18 00:00:00|3.30|29|029|X'1D1D1D1D1D'|X'1D' -30|1|20|2000|20000000|20000000000|1985-08-19 00:00:00|3.19|30|030|X'1E'|X'1E' -31|0|19|1900|19000000|19000000000|1985-08-20 00:00:00|3.09|31|031|X'1F1F'|X'1F' -32|1|18|1800|18000000|18000000000|1985-08-21 00:00:00|3.00|32|032|X'202020'|X'20' -33|0|17|1700|17000000|17000000000|1985-08-22 00:00:00|2.91|33|033|X'21212121'|X'21' -34|1|16|1600|16000000|16000000000|1985-08-23 00:00:00|2.83|34|034|X'2222222222'|X'22' -35|0|15|1500|15000000|15000000000|1985-08-24 00:00:00|2.75|35|035|X'23'|X'23' -36|1|14|1400|14000000|14000000000|1985-08-25 00:00:00|2.68|36|036|X'2424'|X'24' -37|0|13|1300|13000000|13000000000|1985-08-26 00:00:00|2.61|37|037|X'252525'|X'25' -38|1|12|1200|12000000|12000000000|1985-08-27 00:00:00|2.54|38|038|X'26262626'|X'26' -39|0|11|1100|11000000|11000000000|1985-08-28 00:00:00|2.48|39|039|X'2727272727'|X'27' -40|1|10|1000|10000000|10000000000|1985-08-29 00:00:00|2.41|40|040|X'28'|X'28' -41|0|9|900|9000000|9000000000|1985-08-30 00:00:00|2.36|41|041|X'2929'|X'29' -42|1|8|800|8000000|8000000000|1985-08-31 00:00:00|2.30|42|042|X'2A2A2A'|X'2A' -43|0|7|700|7000000|7000000000|1985-09-01 00:00:00|2.25|43|043|X'2B2B2B2B'|X'2B' -44|1|6|600|6000000|6000000000|1985-09-02 00:00:00|2.20|44|044|X'2C2C2C2C2C'|X'2C' -45|0|5|500|5000000|5000000000|1985-09-03 00:00:00|2.15|45|045|X'2D'|X'2D' -46|1|4|400|4000000|4000000000|1985-09-04 00:00:00|2.11|46|046|X'2E2E'|X'2E' -47|0|3|300|3000000|3000000000|1985-09-05 00:00:00|2.06|47|047|X'2F2F2F'|X'2F' -48|1|2|200|2000000|2000000000|1985-09-06 00:00:00|2.02|48|048|X'30303030'|X'30' -49|0|1|100|1000000|1000000000|1985-09-07 00:00:00|1.98|49|049|X'3131313131'|X'31' -50|1|0|0|0|0|1985-09-08 00:00:00|1.94|50|050|X'32'|X'32' -51|0|-1|-100|-1000000|-1000000000|1985-09-09 00:00:00|1.90|51|051|X'3333'|X'33' -52|1|-2|-200|-2000000|-2000000000|1985-09-10 00:00:00|1.87|52|052|X'343434'|X'34' -53|0|-3|-300|-3000000|-3000000000|1985-09-11 00:00:00|1.83|53|053|X'35353535'|X'35' -54|1|-4|-400|-4000000|-4000000000|1985-09-12 00:00:00|1.80|54|054|X'3636363636'|X'36' -55|0|-5|-500|-5000000|-5000000000|1985-09-13 00:00:00|1.77|55|055|X'37'|X'37' -56|1|-6|-600|-6000000|-6000000000|1985-09-14 00:00:00|1.74|56|056|X'3838'|X'38' -57|0|-7|-700|-7000000|-7000000000|1985-09-15 00:00:00|1.71|57|057|X'393939'|X'39' -58|1|-8|-800|-8000000|-8000000000|1985-09-16 00:00:00|1.68|58|058|X'3A3A3A3A'|X'3A' -59|0|-9|-900|-9000000|-9000000000|1985-09-17 00:00:00|1.65|59|059|X'3B3B3B3B3B'|X'3B' -60|1|-10|-1000|-10000000|-10000000000|1985-09-18 00:00:00|1.62|60|060|X'3C'|X'3C' -61|0|-11|-1100|-11000000|-11000000000|1985-09-19 00:00:00|1.60|61|061|X'3D3D'|X'3D' -62|1|-12|-1200|-12000000|-12000000000|1985-09-20 00:00:00|1.57|62|062|X'3E3E3E'|X'3E' -63|0|-13|-1300|-13000000|-13000000000|1985-09-21 00:00:00|1.55|63|063|X'3F3F3F3F'|X'3F' -64|1|-14|-1400|-14000000|-14000000000|1985-09-22 00:00:00|1.52|64|064|X'4040404040'|X'40' -65|0|-15|-1500|-15000000|-15000000000|1985-09-23 00:00:00|1.50|65|065|X'41'|X'41' -66|1|-16|-1600|-16000000|-16000000000|1985-09-24 00:00:00|1.48|66|066|X'4242'|X'42' -67|0|-17|-1700|-17000000|-17000000000|1985-09-25 00:00:00|1.46|67|067|X'434343'|X'43' -68|1|-18|-1800|-18000000|-18000000000|1985-09-26 00:00:00|1.43|68|068|X'44444444'|X'44' -69|0|-19|-1900|-19000000|-19000000000|1985-09-27 00:00:00|1.41|69|069|X'4545454545'|X'45' -70|1|-20|-2000|-20000000|-20000000000|1985-09-28 00:00:00|1.39|70|070|X'46'|X'46' -71|0|-21|-2100|-21000000|-21000000000|1985-09-29 00:00:00|1.38|71|071|X'4747'|X'47' -72|1|-22|-2200|-22000000|-22000000000|1985-09-30 00:00:00|1.36|72|072|X'484848'|X'48' -73|0|-23|-2300|-23000000|-23000000000|1985-10-01 00:00:00|1.34|73|073|X'49494949'|X'49' -74|1|-24|-2400|-24000000|-24000000000|1985-10-02 00:00:00|1.32|74|074|X'4A4A4A4A4A'|X'4A' -75|0|-25|-2500|-25000000|-25000000000|1985-10-03 00:00:00|1.30|75|075|X'4B'|X'4B' -76|1|-26|-2600|-26000000|-26000000000|1985-10-04 00:00:00|1.29|76|076|X'4C4C'|X'4C' -77|0|-27|-2700|-27000000|-27000000000|1985-10-05 00:00:00|1.27|77|077|X'4D4D4D'|X'4D' -78|1|-28|-2800|-28000000|-28000000000|1985-10-06 00:00:00|1.25|78|078|X'4E4E4E4E'|X'4E' -79|0|-29|-2900|-29000000|-29000000000|1985-10-07 00:00:00|1.24|79|079|X'4F4F4F4F4F'|X'4F' -80|1|-30|-3000|-30000000|-30000000000|1985-10-08 00:00:00|1.22|80|080|X'50'|X'50' -81|0|-31|-3100|-31000000|-31000000000|1985-10-09 00:00:00|1.21|81|081|X'5151'|X'51' -82|1|-32|-3200|-32000000|-32000000000|1985-10-10 00:00:00|1.19|82|082|X'525252'|X'52' -83|0|-33|-3300|-33000000|-33000000000|1985-10-11 00:00:00|1.18|83|083|X'53535353'|X'53' -84|1|-34|-3400|-34000000|-34000000000|1985-10-12 00:00:00|1.16|84|084|X'5454545454'|X'54' -85|0|-35|-3500|-35000000|-35000000000|1985-10-13 00:00:00|1.15|85|085|X'55'|X'55' -86|1|-36|-3600|-36000000|-36000000000|1985-10-14 00:00:00|1.14|86|086|X'5656'|X'56' -87|0|-37|-3700|-37000000|-37000000000|1985-10-15 00:00:00|1.13|87|087|X'575757'|X'57' -88|1|-38|-3800|-38000000|-38000000000|1985-10-16 00:00:00|1.11|88|088|X'58585858'|X'58' -89|0|-39|-3900|-39000000|-39000000000|1985-10-17 00:00:00|1.10|89|089|X'5959595959'|X'59' -90|1|-40|-4000|-40000000|-40000000000|1985-10-18 00:00:00|1.09|90|090|X'5A'|X'5A' -91|0|-41|-4100|-41000000|-41000000000|1985-10-19 00:00:00|1.08|91|091|X'5B5B'|X'5B' -92|1|-42|-4200|-42000000|-42000000000|1985-10-20 00:00:00|1.06|92|092|X'5C5C5C'|X'5C' -93|0|-43|-4300|-43000000|-43000000000|1985-10-21 00:00:00|1.05|93|093|X'5D5D5D5D'|X'5D' -94|1|-44|-4400|-44000000|-44000000000|1985-10-22 00:00:00|1.04|94|094|X'5E5E5E5E5E'|X'5E' -95|0|-45|-4500|-45000000|-45000000000|1985-10-23 00:00:00|1.03|95|095|X'5F'|X'5F' -96|1|-46|-4600|-46000000|-46000000000|1985-10-24 00:00:00|1.02|96|096|X'6060'|X'60' -97|0|-47|-4700|-47000000|-47000000000|1985-10-25 00:00:00|1.01|97|097|X'616161'|X'61' -98|1|-48|-4800|-48000000|-48000000000|1985-10-26 00:00:00|1.00|98|098|X'62626262'|X'62' diff --git a/tests/queries/004-cross-join-10-rowgroups.sql b/tests/queries/004-cross-join-10-rowgroups.sql index 765f3f5..92a8c73 100644 --- a/tests/queries/004-cross-join-10-rowgroups.sql +++ b/tests/queries/004-cross-join-10-rowgroups.sql @@ -1,2 +1,2 @@ -select count(*) from (select * from no_nulls2 t1, no_nulls2 t2); +select count(*) from (select * from no_nulls1 t1, no_nulls2 t2); 9801 diff --git a/tests/queries/006-rowid-10-rowgroups.sql b/tests/queries/006-rowid-10-rowgroups.sql deleted file mode 100644 index ef6860d..0000000 --- a/tests/queries/006-rowid-10-rowgroups.sql +++ /dev/null @@ -1,2 +0,0 @@ -select int8_1 from no_nulls2 where rowid = 50; -0 diff --git a/tests/queries/007-rowid-55-10-rowgroups.sql b/tests/queries/007-rowid-55-10-rowgroups.sql index 8c0f7a1..fd78d4a 100644 --- a/tests/queries/007-rowid-55-10-rowgroups.sql +++ b/tests/queries/007-rowid-55-10-rowgroups.sql @@ -1,2 +1,2 @@ -select int8_1 from no_nulls2 where rowid = 55; +select int8_1 from no_nulls1 where rowid = 55; -5 diff --git a/tests/queries/008-nulls.sql b/tests/queries/008-nulls.sql index 1c4b6d6..1f4c57d 100644 --- a/tests/queries/008-nulls.sql +++ b/tests/queries/008-nulls.sql @@ -1,2 +1,2 @@ -SELECT SUM(CASE WHEN bool_0 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN int8_1 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN int16_2 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN int32_3 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN int64_4 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN ts_5 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN double_6 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN string_7 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN string_8 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN binary_9 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN binary_10 IS NULL THEN 1 ELSE 0 END) from nulls; +SELECT SUM(CASE WHEN bool_0 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN int8_1 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN int16_2 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN int32_3 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN int64_4 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN ts_5 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN double_6 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN string_7 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN string_8 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN binary_9 IS NULL THEN 1 ELSE 0 END), SUM(CASE WHEN binary_10 IS NULL THEN 1 ELSE 0 END) from nulls1; 50|49|50|49|50|49|50|49|50|49|50 diff --git a/tests/queries/009-rowid-group-by.sql b/tests/queries/009-rowid-group-by.sql index 8632771..c35f7a6 100644 --- a/tests/queries/009-rowid-group-by.sql +++ b/tests/queries/009-rowid-group-by.sql @@ -1,4 +1,4 @@ -select rowid % 10, count(*) from nulls group by 1 order by 1 +select rowid % 10, count(*) from nulls1 group by 1 order by 1 0|10 1|10 2|10 diff --git a/tests/queries/012-string-7-is-null.sql b/tests/queries/012-string-7-is-null.sql index fc4c892..aa9b140 100644 --- a/tests/queries/012-string-7-is-null.sql +++ b/tests/queries/012-string-7-is-null.sql @@ -1,4 +1,4 @@ -select rowid, bool_0, quote(binary_10) from nulls where string_7 is null +select rowid, bool_0, quote(binary_10) from nulls1 where string_7 is null 10||NULL 11||NULL 12||NULL diff --git a/tests/queries/013-string-7-is-not-null.sql b/tests/queries/013-string-7-is-not-null.sql index ad0ccca..edf46f6 100644 --- a/tests/queries/013-string-7-is-not-null.sql +++ b/tests/queries/013-string-7-is-not-null.sql @@ -1,4 +1,4 @@ -select rowid, bool_0, quote(binary_10) from nulls where string_7 is not null +select rowid, bool_0, quote(binary_10) from nulls1 where string_7 is not null 0|1|X'00' 1|0|X'01' 2|1|X'02' diff --git a/tests/queries/014-nulls-like-percent-start.sql b/tests/queries/014-nulls-like-percent-start.sql index d5c5683..35c4517 100644 --- a/tests/queries/014-nulls-like-percent-start.sql +++ b/tests/queries/014-nulls-like-percent-start.sql @@ -1,2 +1,2 @@ -select string_7, string_8 from nulls where string_8 like '%0' +select string_7, string_8 from nulls1 where string_8 like '%0' 0|000 diff --git a/tests/queries/015-nulls-like-no-match.sql b/tests/queries/015-nulls-like-no-match.sql index 8f21f2b..0ec13dc 100644 --- a/tests/queries/015-nulls-like-no-match.sql +++ b/tests/queries/015-nulls-like-no-match.sql @@ -1 +1 @@ -select string_7, string_8 from nulls where string_8 like '0' +select string_7, string_8 from nulls1 where string_8 like '0' diff --git a/tests/queries/016-nulls-like-percent-end.sql b/tests/queries/016-nulls-like-percent-end.sql index 1a30122..f12a894 100644 --- a/tests/queries/016-nulls-like-percent-end.sql +++ b/tests/queries/016-nulls-like-percent-end.sql @@ -1,4 +1,4 @@ -select string_7, string_8 from nulls where string_8 like '0%' +select string_7, string_8 from nulls1 where string_8 like '0%' 0|000 1|001 2|002 diff --git a/tests/queries/017-nulls-like-underscore.sql b/tests/queries/017-nulls-like-underscore.sql index 560419d..680203b 100644 --- a/tests/queries/017-nulls-like-underscore.sql +++ b/tests/queries/017-nulls-like-underscore.sql @@ -1,2 +1,2 @@ -select string_7, string_8 from nulls where string_8 like '0_0' +select string_7, string_8 from nulls1 where string_8 like '0_0' 0|000 diff --git a/tests/queries/018-string-gt-lt.sql b/tests/queries/018-string-gt-lt.sql index 626e080..8775ee0 100644 --- a/tests/queries/018-string-gt-lt.sql +++ b/tests/queries/018-string-gt-lt.sql @@ -1,3 +1,3 @@ -select string_8 from nulls where string_8 > '010' and string_8 < '024' +select string_8 from nulls1 where string_8 > '010' and string_8 < '024' 021 023 diff --git a/tests/queries/019-string-gte-lte.sql b/tests/queries/019-string-gte-lte.sql index 42e74f3..128a2fc 100644 --- a/tests/queries/019-string-gte-lte.sql +++ b/tests/queries/019-string-gte-lte.sql @@ -1,2 +1,2 @@ -select string_8 from nulls where string_8 >= '021' and string_8 <= '021' +select string_8 from nulls1 where string_8 >= '021' and string_8 <= '021' 021 diff --git a/tests/queries/020-string-eq.sql b/tests/queries/020-string-eq.sql index 72a52bd..6c7d9f4 100644 --- a/tests/queries/020-string-eq.sql +++ b/tests/queries/020-string-eq.sql @@ -1,2 +1,2 @@ -select string_8 from nulls where string_8 = '021' +select string_8 from nulls1 where string_8 = '021' 021 diff --git a/tests/queries/021-rowid-and-field-eq.sql b/tests/queries/021-rowid-and-field-eq.sql index 7645d57..7932149 100644 --- a/tests/queries/021-rowid-and-field-eq.sql +++ b/tests/queries/021-rowid-and-field-eq.sql @@ -1,2 +1,2 @@ -select string_8 from nulls where rowid = 21 and string_8 = '021' +select string_8 from nulls1 where rowid = 21 and string_8 = '021' 021 diff --git a/tests/queries/022-rowid-and-field-ne.sql b/tests/queries/022-rowid-and-field-ne.sql index d5aa9f2..8862ac0 100644 --- a/tests/queries/022-rowid-and-field-ne.sql +++ b/tests/queries/022-rowid-and-field-ne.sql @@ -1 +1 @@ -select string_8 from nulls where rowid = 21 and string_8 <> '021' +select string_8 from nulls1 where rowid = 21 and string_8 <> '021' diff --git a/tests/queries/023-int8-eq.sql b/tests/queries/023-int8-eq.sql index e2dbe40..95213ae 100644 --- a/tests/queries/023-int8-eq.sql +++ b/tests/queries/023-int8-eq.sql @@ -1,2 +1,2 @@ -select int8_1 from nulls where int8_1 = 30 +select int8_1 from nulls1 where int8_1 = 30 30 diff --git a/tests/queries/024-int8-lt.sql b/tests/queries/024-int8-lt.sql index 06a3fa6..64cf4ec 100644 --- a/tests/queries/024-int8-lt.sql +++ b/tests/queries/024-int8-lt.sql @@ -1,2 +1,2 @@ -select int8_1 from nulls where int8_1 < -46 +select int8_1 from nulls1 where int8_1 < -46 -48 diff --git a/tests/queries/025-int8-lte.sql b/tests/queries/025-int8-lte.sql index 791cf1a..4647fcb 100644 --- a/tests/queries/025-int8-lte.sql +++ b/tests/queries/025-int8-lte.sql @@ -1,3 +1,3 @@ -select int8_1 from nulls where int8_1 <= -46 +select int8_1 from nulls1 where int8_1 <= -46 -46 -48 diff --git a/tests/queries/026-int8-gt.sql b/tests/queries/026-int8-gt.sql index d41ae46..2dd1398 100644 --- a/tests/queries/026-int8-gt.sql +++ b/tests/queries/026-int8-gt.sql @@ -1,2 +1,2 @@ -select int8_1 from nulls where int8_1 > 49 +select int8_1 from nulls1 where int8_1 > 49 50 diff --git a/tests/queries/027-int8-gte.sql b/tests/queries/027-int8-gte.sql index 231f425..bf19539 100644 --- a/tests/queries/027-int8-gte.sql +++ b/tests/queries/027-int8-gte.sql @@ -1,3 +1,3 @@ -select int8_1 from nulls where int8_1 >= 49 +select int8_1 from nulls1 where int8_1 >= 49 50 49 diff --git a/tests/queries/028-int8-rowid-eq-and-field-ne.sql b/tests/queries/028-int8-rowid-eq-and-field-ne.sql index 57fa9fa..cceeca7 100644 --- a/tests/queries/028-int8-rowid-eq-and-field-ne.sql +++ b/tests/queries/028-int8-rowid-eq-and-field-ne.sql @@ -1 +1 @@ -select int8_1 from nulls where rowid = 66 and int8_1 <> -16 +select int8_1 from nulls1 where rowid = 66 and int8_1 <> -16 diff --git a/tests/queries/029-int64-gte.sql b/tests/queries/029-int64-gte.sql index 8aa1b7a..8215392 100644 --- a/tests/queries/029-int64-gte.sql +++ b/tests/queries/029-int64-gte.sql @@ -1,3 +1,3 @@ -select int64_4 from nulls where int64_4 >= 49000000000 +select int64_4 from nulls1 where int64_4 >= 49000000000 50000000000 49000000000 diff --git a/tests/queries/030-int64-gt.sql b/tests/queries/030-int64-gt.sql index 5597ca8..274f56a 100644 --- a/tests/queries/030-int64-gt.sql +++ b/tests/queries/030-int64-gt.sql @@ -1,2 +1,2 @@ -select int64_4 from nulls where int64_4 > 49000000000 +select int64_4 from nulls1 where int64_4 > 49000000000 50000000000 diff --git a/tests/queries/031-int64-eq.sql b/tests/queries/031-int64-eq.sql index 71d0bfd..88df198 100644 --- a/tests/queries/031-int64-eq.sql +++ b/tests/queries/031-int64-eq.sql @@ -1,2 +1,2 @@ -select int64_4 from nulls where int64_4 = 49000000000 +select int64_4 from nulls1 where int64_4 = 49000000000 49000000000 diff --git a/tests/queries/032-int64-lt.sql b/tests/queries/032-int64-lt.sql index ae52655..7fa5e4e 100644 --- a/tests/queries/032-int64-lt.sql +++ b/tests/queries/032-int64-lt.sql @@ -1,2 +1,2 @@ -select int64_4 from nulls where int64_4 < -46000000000 +select int64_4 from nulls1 where int64_4 < -46000000000 -47000000000 diff --git a/tests/queries/033-int64-lte.sql b/tests/queries/033-int64-lte.sql index fbef373..0d305c2 100644 --- a/tests/queries/033-int64-lte.sql +++ b/tests/queries/033-int64-lte.sql @@ -1,3 +1,3 @@ -select int64_4 from nulls where int64_4 <= -45000000000 +select int64_4 from nulls1 where int64_4 <= -45000000000 -45000000000 -47000000000 diff --git a/tests/queries/034-int64-rowid-eq-and-field-ne.sql b/tests/queries/034-int64-rowid-eq-and-field-ne.sql index a8ed766..e5c1c36 100644 --- a/tests/queries/034-int64-rowid-eq-and-field-ne.sql +++ b/tests/queries/034-int64-rowid-eq-and-field-ne.sql @@ -1 +1 @@ -select int64_4 from nulls where rowid = 57 and int64_4 <> -7000000000 +select int64_4 from nulls1 where rowid = 57 and int64_4 <> -7000000000 diff --git a/tests/queries/035-int64-rowid-eq-and-field-ne2.sql b/tests/queries/035-int64-rowid-eq-and-field-ne2.sql index 73f8642..8bcc97b 100644 --- a/tests/queries/035-int64-rowid-eq-and-field-ne2.sql +++ b/tests/queries/035-int64-rowid-eq-and-field-ne2.sql @@ -1,2 +1,2 @@ -select int64_4 from nulls where rowid = 57 and int64_4 <> -8000000000 +select int64_4 from nulls1 where rowid = 57 and int64_4 <> -8000000000 -7000000000 diff --git a/tests/queries/036-double-eq.sql b/tests/queries/036-double-eq.sql index 2ec30fa..3439e49 100644 --- a/tests/queries/036-double-eq.sql +++ b/tests/queries/036-double-eq.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) as double_6 from nulls where double_6 = 99.0 +select printf('%.2f', double_6) as double_6 from nulls1 where double_6 = 99.0 99.00 diff --git a/tests/queries/037-double-gt.sql b/tests/queries/037-double-gt.sql index 83beb2e..0636e5f 100644 --- a/tests/queries/037-double-gt.sql +++ b/tests/queries/037-double-gt.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) as double_6 from nulls where double_6 > 98.0 +select printf('%.2f', double_6) as double_6 from nulls1 where double_6 > 98.0 99.00 diff --git a/tests/queries/038-double-gte.sql b/tests/queries/038-double-gte.sql index 61c6f75..8e7536f 100644 --- a/tests/queries/038-double-gte.sql +++ b/tests/queries/038-double-gte.sql @@ -1,3 +1,3 @@ -select printf('%.2f', double_6) as double_6 from nulls where double_6 >= 49.5 +select printf('%.2f', double_6) as double_6 from nulls1 where double_6 >= 49.5 99.00 49.50 diff --git a/tests/queries/039-double-lt.sql b/tests/queries/039-double-lt.sql index ad68a34..716e6d7 100644 --- a/tests/queries/039-double-lt.sql +++ b/tests/queries/039-double-lt.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) from nulls where double_6 < 99.0 order by double_6 desc limit 1 +select printf('%.2f', double_6) from nulls1 where double_6 < 99.0 order by double_6 desc limit 1 49.50 diff --git a/tests/queries/040-double-lte.sql b/tests/queries/040-double-lte.sql index d526c8c..a071b2c 100644 --- a/tests/queries/040-double-lte.sql +++ b/tests/queries/040-double-lte.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) from nulls where double_6 <= 99.0 order by double_6 desc limit 1 +select printf('%.2f', double_6) from nulls1 where double_6 <= 99.0 order by double_6 desc limit 1 99.00 diff --git a/tests/queries/041-double-rowid-and-field-ne.sql b/tests/queries/041-double-rowid-and-field-ne.sql index f12b7c0..ef9404e 100644 --- a/tests/queries/041-double-rowid-and-field-ne.sql +++ b/tests/queries/041-double-rowid-and-field-ne.sql @@ -1 +1 @@ -select printf('%.2f', double_6) from nulls where rowid = 0 and double_6 <> 99.0 +select printf('%.2f', double_6) from nulls1 where rowid = 0 and double_6 <> 99.0 diff --git a/tests/queries/042-double-rowid-and-field-ne2.sql b/tests/queries/042-double-rowid-and-field-ne2.sql index 6b4f78d..4af9635 100644 --- a/tests/queries/042-double-rowid-and-field-ne2.sql +++ b/tests/queries/042-double-rowid-and-field-ne2.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) from nulls where rowid = 0 and double_6 <> 100.0 +select printf('%.2f', double_6) from nulls1 where rowid = 0 and double_6 <> 100.0 99.00 diff --git a/tests/queries/043-binary-eq.sql b/tests/queries/043-binary-eq.sql index c83a9dd..8d4c96a 100644 --- a/tests/queries/043-binary-eq.sql +++ b/tests/queries/043-binary-eq.sql @@ -1,2 +1,2 @@ -select rowid from nulls where binary_10 = x'01'; +select rowid from nulls1 where binary_10 = x'01'; 1 diff --git a/tests/queries/044-binary-rowid-and-ne.sql b/tests/queries/044-binary-rowid-and-ne.sql index 688e4e1..9c818b2 100644 --- a/tests/queries/044-binary-rowid-and-ne.sql +++ b/tests/queries/044-binary-rowid-and-ne.sql @@ -1 +1 @@ -select rowid from nulls where rowid = 1 and binary_10 <> x'01'; +select rowid from nulls1 where rowid = 1 and binary_10 <> x'01'; diff --git a/tests/queries/045-binary-lt.sql b/tests/queries/045-binary-lt.sql index 4123e1f..2673833 100644 --- a/tests/queries/045-binary-lt.sql +++ b/tests/queries/045-binary-lt.sql @@ -1,2 +1,2 @@ -select rowid from nulls where binary_10 < x'01'; +select rowid from nulls1 where binary_10 < x'01'; 0 diff --git a/tests/queries/046-binary-lte.sql b/tests/queries/046-binary-lte.sql index 5b97f2b..5a6ae96 100644 --- a/tests/queries/046-binary-lte.sql +++ b/tests/queries/046-binary-lte.sql @@ -1,3 +1,3 @@ -select rowid from nulls where binary_10 <= x'01' order by 1; +select rowid from nulls1 where binary_10 <= x'01' order by 1; 0 1 diff --git a/tests/queries/047-binary-gt.sql b/tests/queries/047-binary-gt.sql index 31e66f5..5da1ecc 100644 --- a/tests/queries/047-binary-gt.sql +++ b/tests/queries/047-binary-gt.sql @@ -1,2 +1,2 @@ -select rowid from nulls where binary_10 > x'60'; +select rowid from nulls1 where binary_10 > x'60'; 97 diff --git a/tests/queries/048-binary-gte.sql b/tests/queries/048-binary-gte.sql index 241e5bb..97205b4 100644 --- a/tests/queries/048-binary-gte.sql +++ b/tests/queries/048-binary-gte.sql @@ -1,3 +1,3 @@ -select rowid from nulls where binary_10 >= x'5F' order by 1; +select rowid from nulls1 where binary_10 >= x'5F' order by 1; 95 97 diff --git a/tests/queries/061-string-eq-int.sql b/tests/queries/061-string-eq-int.sql index 2af041c..e9bc52e 100644 --- a/tests/queries/061-string-eq-int.sql +++ b/tests/queries/061-string-eq-int.sql @@ -1,2 +1,2 @@ -select string_7 from nulls where string_7 = 22; +select string_7 from nulls1 where string_7 = 22; 22 diff --git a/tests/queries/062-string-eq-double.sql b/tests/queries/062-string-eq-double.sql index 903b82d..6ea46c4 100644 --- a/tests/queries/062-string-eq-double.sql +++ b/tests/queries/062-string-eq-double.sql @@ -1 +1 @@ -select string_7 from nulls where string_7 = 22.0; +select string_7 from nulls1 where string_7 = 22.0; diff --git a/tests/queries/063-int8-eq-double.sql b/tests/queries/063-int8-eq-double.sql index cae3a57..76c9223 100644 --- a/tests/queries/063-int8-eq-double.sql +++ b/tests/queries/063-int8-eq-double.sql @@ -1,2 +1,2 @@ -select int8_1 from nulls where int8_1 = 30.0; +select int8_1 from nulls1 where int8_1 = 30.0; 30 diff --git a/tests/queries/064-int8-eq-str.sql b/tests/queries/064-int8-eq-str.sql index 5631731..53cc566 100644 --- a/tests/queries/064-int8-eq-str.sql +++ b/tests/queries/064-int8-eq-str.sql @@ -1,2 +1,2 @@ -select int8_1 from nulls where int8_1 = '30.0'; +select int8_1 from nulls1 where int8_1 = '30.0'; 30 diff --git a/tests/queries/065-int8-eq-str2.sql b/tests/queries/065-int8-eq-str2.sql index 106bbd4..54fd20a 100644 --- a/tests/queries/065-int8-eq-str2.sql +++ b/tests/queries/065-int8-eq-str2.sql @@ -1,2 +1,2 @@ -select int8_1 from nulls where int8_1 = '30'; +select int8_1 from nulls1 where int8_1 = '30'; 30 diff --git a/tests/queries/066-int8-eq-bogus-str.sql b/tests/queries/066-int8-eq-bogus-str.sql index 0c72dc7..f427a87 100644 --- a/tests/queries/066-int8-eq-bogus-str.sql +++ b/tests/queries/066-int8-eq-bogus-str.sql @@ -1 +1 @@ -select int8_1 from nulls where int8_1 = '30f'; +select int8_1 from nulls1 where int8_1 = '30f'; diff --git a/tests/queries/067-int8-lt-str.sql b/tests/queries/067-int8-lt-str.sql index 0a7e8c2..1cddf5d 100644 --- a/tests/queries/067-int8-lt-str.sql +++ b/tests/queries/067-int8-lt-str.sql @@ -1,2 +1,2 @@ -select int8_1 from nulls where int8_1 < '-46' +select int8_1 from nulls1 where int8_1 < '-46' -48 diff --git a/tests/queries/068-int8-lt-double.sql b/tests/queries/068-int8-lt-double.sql index af93808..d3e90d4 100644 --- a/tests/queries/068-int8-lt-double.sql +++ b/tests/queries/068-int8-lt-double.sql @@ -1,2 +1,2 @@ -select int8_1 from nulls where int8_1 < -46.0 +select int8_1 from nulls1 where int8_1 < -46.0 -48 diff --git a/tests/queries/069-int8-lte-str.sql b/tests/queries/069-int8-lte-str.sql index a2d12fb..2a2e041 100644 --- a/tests/queries/069-int8-lte-str.sql +++ b/tests/queries/069-int8-lte-str.sql @@ -1,3 +1,3 @@ -select int8_1 from nulls where int8_1 <= '-46' +select int8_1 from nulls1 where int8_1 <= '-46' -46 -48 diff --git a/tests/queries/070-int8-lte-double.sql b/tests/queries/070-int8-lte-double.sql index 1adff8f..d6375b8 100644 --- a/tests/queries/070-int8-lte-double.sql +++ b/tests/queries/070-int8-lte-double.sql @@ -1,3 +1,3 @@ -select int8_1 from nulls where int8_1 <= -46.0 +select int8_1 from nulls1 where int8_1 <= -46.0 -46 -48 diff --git a/tests/queries/071-int8-gt-str.sql b/tests/queries/071-int8-gt-str.sql index bdb00d4..fa71236 100644 --- a/tests/queries/071-int8-gt-str.sql +++ b/tests/queries/071-int8-gt-str.sql @@ -1,2 +1,2 @@ -select int8_1 from nulls where int8_1 > '49' +select int8_1 from nulls1 where int8_1 > '49' 50 diff --git a/tests/queries/072-int8-gt-double.sql b/tests/queries/072-int8-gt-double.sql index 556c391..8cbc669 100644 --- a/tests/queries/072-int8-gt-double.sql +++ b/tests/queries/072-int8-gt-double.sql @@ -1,2 +1,2 @@ -select int8_1 from nulls where int8_1 > 49.0 +select int8_1 from nulls1 where int8_1 > 49.0 50 diff --git a/tests/queries/073-int8-gte-str.sql b/tests/queries/073-int8-gte-str.sql index 9f414df..14c83be 100644 --- a/tests/queries/073-int8-gte-str.sql +++ b/tests/queries/073-int8-gte-str.sql @@ -1,3 +1,3 @@ -select int8_1 from nulls where int8_1 >= '49' +select int8_1 from nulls1 where int8_1 >= '49' 50 49 diff --git a/tests/queries/074-int8-gte-double.sql b/tests/queries/074-int8-gte-double.sql index b24a1f5..f61e158 100644 --- a/tests/queries/074-int8-gte-double.sql +++ b/tests/queries/074-int8-gte-double.sql @@ -1,3 +1,3 @@ -select int8_1 from nulls where int8_1 >= 49.0 +select int8_1 from nulls1 where int8_1 >= 49.0 50 49 diff --git a/tests/queries/075-int8-ne-str.sql b/tests/queries/075-int8-ne-str.sql index 1c9f57c..25742a7 100644 --- a/tests/queries/075-int8-ne-str.sql +++ b/tests/queries/075-int8-ne-str.sql @@ -1 +1 @@ -select int8_1 from nulls where rowid = 66 and int8_1 <> '-16' +select int8_1 from nulls1 where rowid = 66 and int8_1 <> '-16' diff --git a/tests/queries/076-int8-ne-double.sql b/tests/queries/076-int8-ne-double.sql index d15790a..958b4ed 100644 --- a/tests/queries/076-int8-ne-double.sql +++ b/tests/queries/076-int8-ne-double.sql @@ -1 +1 @@ -select int8_1 from nulls where rowid = 66 and int8_1 <> -16.0 +select int8_1 from nulls1 where rowid = 66 and int8_1 <> -16.0 diff --git a/tests/queries/077-int64-gte-str.sql b/tests/queries/077-int64-gte-str.sql index c23ac35..ce32e12 100644 --- a/tests/queries/077-int64-gte-str.sql +++ b/tests/queries/077-int64-gte-str.sql @@ -1,3 +1,3 @@ -select int64_4 from nulls where int64_4 >= '49000000000' +select int64_4 from nulls1 where int64_4 >= '49000000000' 50000000000 49000000000 diff --git a/tests/queries/078-int64-gte-double.sql b/tests/queries/078-int64-gte-double.sql index 38e17a7..684a87c 100644 --- a/tests/queries/078-int64-gte-double.sql +++ b/tests/queries/078-int64-gte-double.sql @@ -1,3 +1,3 @@ -select int64_4 from nulls where int64_4 >= 49000000000.0 +select int64_4 from nulls1 where int64_4 >= 49000000000.0 50000000000 49000000000 diff --git a/tests/queries/079-int65-gt-str.sql b/tests/queries/079-int65-gt-str.sql index 60b9599..3f73f86 100644 --- a/tests/queries/079-int65-gt-str.sql +++ b/tests/queries/079-int65-gt-str.sql @@ -1,2 +1,2 @@ -select int64_4 from nulls where int64_4 > '49000000000' +select int64_4 from nulls1 where int64_4 > '49000000000' 50000000000 diff --git a/tests/queries/080-int65-gt-double.sql b/tests/queries/080-int65-gt-double.sql index 35a1131..fbd4489 100644 --- a/tests/queries/080-int65-gt-double.sql +++ b/tests/queries/080-int65-gt-double.sql @@ -1,2 +1,2 @@ -select int64_4 from nulls where int64_4 > 49000000000.0 +select int64_4 from nulls1 where int64_4 > 49000000000.0 50000000000 diff --git a/tests/queries/081-int64-eq-str.sql b/tests/queries/081-int64-eq-str.sql index 2a706f4..fec63b6 100644 --- a/tests/queries/081-int64-eq-str.sql +++ b/tests/queries/081-int64-eq-str.sql @@ -1,2 +1,2 @@ -select int64_4 from nulls where int64_4 = '49000000000' +select int64_4 from nulls1 where int64_4 = '49000000000' 49000000000 diff --git a/tests/queries/082-int64-eq-double.sql b/tests/queries/082-int64-eq-double.sql index 56ce1d3..f938657 100644 --- a/tests/queries/082-int64-eq-double.sql +++ b/tests/queries/082-int64-eq-double.sql @@ -1,2 +1,2 @@ -select int64_4 from nulls where int64_4 = 49000000000.0 +select int64_4 from nulls1 where int64_4 = 49000000000.0 49000000000 diff --git a/tests/queries/083-int64-lt-str.sql b/tests/queries/083-int64-lt-str.sql index 6e72b69..306fa80 100644 --- a/tests/queries/083-int64-lt-str.sql +++ b/tests/queries/083-int64-lt-str.sql @@ -1,2 +1,2 @@ -select int64_4 from nulls where int64_4 < '-46000000000' +select int64_4 from nulls1 where int64_4 < '-46000000000' -47000000000 diff --git a/tests/queries/084-int64-lt-double.sql b/tests/queries/084-int64-lt-double.sql index 380f5d6..d905218 100644 --- a/tests/queries/084-int64-lt-double.sql +++ b/tests/queries/084-int64-lt-double.sql @@ -1,2 +1,2 @@ -select int64_4 from nulls where int64_4 < -46000000000.0 +select int64_4 from nulls1 where int64_4 < -46000000000.0 -47000000000 diff --git a/tests/queries/085-int64-lte-str.sql b/tests/queries/085-int64-lte-str.sql index 52da2fa..eef3607 100644 --- a/tests/queries/085-int64-lte-str.sql +++ b/tests/queries/085-int64-lte-str.sql @@ -1,3 +1,3 @@ -select int64_4 from nulls where int64_4 <= '-45000000000' +select int64_4 from nulls1 where int64_4 <= '-45000000000' -45000000000 -47000000000 diff --git a/tests/queries/086-int64-lte-double.sql b/tests/queries/086-int64-lte-double.sql index fb04332..dfc225b 100644 --- a/tests/queries/086-int64-lte-double.sql +++ b/tests/queries/086-int64-lte-double.sql @@ -1,3 +1,3 @@ -select int64_4 from nulls where int64_4 <= -45000000000.0 +select int64_4 from nulls1 where int64_4 <= -45000000000.0 -45000000000 -47000000000 diff --git a/tests/queries/087-int64-ne-str.sql b/tests/queries/087-int64-ne-str.sql index cac8fc6..41a8718 100644 --- a/tests/queries/087-int64-ne-str.sql +++ b/tests/queries/087-int64-ne-str.sql @@ -1 +1 @@ -select int64_4 from nulls where rowid = 57 and int64_4 <> '-7000000000' +select int64_4 from nulls1 where rowid = 57 and int64_4 <> '-7000000000' diff --git a/tests/queries/088-int64-ne-double.sql b/tests/queries/088-int64-ne-double.sql index ce9f0d3..40555f5 100644 --- a/tests/queries/088-int64-ne-double.sql +++ b/tests/queries/088-int64-ne-double.sql @@ -1 +1 @@ -select int64_4 from nulls where rowid = 57 and int64_4 <> -7000000000.0 +select int64_4 from nulls1 where rowid = 57 and int64_4 <> -7000000000.0 diff --git a/tests/queries/089-int64-ne-some-str.sql b/tests/queries/089-int64-ne-some-str.sql index 72dcc98..831aced 100644 --- a/tests/queries/089-int64-ne-some-str.sql +++ b/tests/queries/089-int64-ne-some-str.sql @@ -1,2 +1,2 @@ -select int64_4 from nulls where rowid = 57 and int64_4 <> '-8000000000' +select int64_4 from nulls1 where rowid = 57 and int64_4 <> '-8000000000' -7000000000 diff --git a/tests/queries/090-int64-ne-some-double.sql b/tests/queries/090-int64-ne-some-double.sql index ebf8b0c..d51736e 100644 --- a/tests/queries/090-int64-ne-some-double.sql +++ b/tests/queries/090-int64-ne-some-double.sql @@ -1,2 +1,2 @@ -select int64_4 from nulls where rowid = 57 and int64_4 <> -8000000000.0 +select int64_4 from nulls1 where rowid = 57 and int64_4 <> -8000000000.0 -7000000000 diff --git a/tests/queries/091-double-eq-str.sql b/tests/queries/091-double-eq-str.sql index 09147c4..4e9af68 100644 --- a/tests/queries/091-double-eq-str.sql +++ b/tests/queries/091-double-eq-str.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) as double_6 from nulls where double_6 = '99.0' +select printf('%.2f', double_6) as double_6 from nulls1 where double_6 = '99.0' 99.00 diff --git a/tests/queries/092-double-eq-int.sql b/tests/queries/092-double-eq-int.sql index b21841f..e5b40fa 100644 --- a/tests/queries/092-double-eq-int.sql +++ b/tests/queries/092-double-eq-int.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) as double_6 from nulls where double_6 = 99 +select printf('%.2f', double_6) as double_6 from nulls1 where double_6 = 99 99.00 diff --git a/tests/queries/093-double-gt-str.sql b/tests/queries/093-double-gt-str.sql index 5462292..91198fc 100644 --- a/tests/queries/093-double-gt-str.sql +++ b/tests/queries/093-double-gt-str.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) as double_6 from nulls where double_6 > '98' +select printf('%.2f', double_6) as double_6 from nulls1 where double_6 > '98' 99.00 diff --git a/tests/queries/094-double-gt-int.sql b/tests/queries/094-double-gt-int.sql index 22d0c4f..be17f03 100644 --- a/tests/queries/094-double-gt-int.sql +++ b/tests/queries/094-double-gt-int.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) as double_6 from nulls where double_6 > 98 +select printf('%.2f', double_6) as double_6 from nulls1 where double_6 > 98 99.00 diff --git a/tests/queries/095-double-gte-str.sql b/tests/queries/095-double-gte-str.sql index b3eb211..0b20634 100644 --- a/tests/queries/095-double-gte-str.sql +++ b/tests/queries/095-double-gte-str.sql @@ -1,3 +1,3 @@ -select printf('%.2f', double_6) as double_6 from nulls where double_6 >= '49.5' +select printf('%.2f', double_6) as double_6 from nulls1 where double_6 >= '49.5' 99.00 49.50 diff --git a/tests/queries/096-double-gte-int.sql b/tests/queries/096-double-gte-int.sql index 2a0776e..9ff614c 100644 --- a/tests/queries/096-double-gte-int.sql +++ b/tests/queries/096-double-gte-int.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) as double_6 from nulls where double_6 >= '99' +select printf('%.2f', double_6) as double_6 from nulls1 where double_6 >= '99' 99.00 diff --git a/tests/queries/097-double-lt-str.sql b/tests/queries/097-double-lt-str.sql index 95fa35b..895815c 100644 --- a/tests/queries/097-double-lt-str.sql +++ b/tests/queries/097-double-lt-str.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) from nulls where double_6 < '99.0' order by double_6 desc limit 1 +select printf('%.2f', double_6) from nulls1 where double_6 < '99.0' order by double_6 desc limit 1 49.50 diff --git a/tests/queries/098-double-lt-int.sql b/tests/queries/098-double-lt-int.sql index 4afcce9..2219f18 100644 --- a/tests/queries/098-double-lt-int.sql +++ b/tests/queries/098-double-lt-int.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) from nulls where double_6 < 99 order by double_6 desc limit 1 +select printf('%.2f', double_6) from nulls1 where double_6 < 99 order by double_6 desc limit 1 49.50 diff --git a/tests/queries/099-double-lte-str.sql b/tests/queries/099-double-lte-str.sql index b6028d7..2005580 100644 --- a/tests/queries/099-double-lte-str.sql +++ b/tests/queries/099-double-lte-str.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) from nulls where double_6 <= '99.0' order by double_6 desc limit 1 +select printf('%.2f', double_6) from nulls1 where double_6 <= '99.0' order by double_6 desc limit 1 99.00 diff --git a/tests/queries/100-double-lte-int.sql b/tests/queries/100-double-lte-int.sql index 97b8140..cef9659 100644 --- a/tests/queries/100-double-lte-int.sql +++ b/tests/queries/100-double-lte-int.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) from nulls where double_6 <= 99 order by double_6 desc limit 1 +select printf('%.2f', double_6) from nulls1 where double_6 <= 99 order by double_6 desc limit 1 99.00 diff --git a/tests/queries/101-double-rowid-and-field-ne-str.sql b/tests/queries/101-double-rowid-and-field-ne-str.sql index 61d059b..a7c8a8b 100644 --- a/tests/queries/101-double-rowid-and-field-ne-str.sql +++ b/tests/queries/101-double-rowid-and-field-ne-str.sql @@ -1 +1 @@ -select printf('%.2f', double_6) from nulls where rowid = 0 and double_6 <> '99.0' +select printf('%.2f', double_6) from nulls1 where rowid = 0 and double_6 <> '99.0' diff --git a/tests/queries/102-double-rowid-and-field-ne-int.sql b/tests/queries/102-double-rowid-and-field-ne-int.sql index b1e47fb..91d8048 100644 --- a/tests/queries/102-double-rowid-and-field-ne-int.sql +++ b/tests/queries/102-double-rowid-and-field-ne-int.sql @@ -1 +1 @@ -select printf('%.2f', double_6) from nulls where rowid = 0 and double_6 <> 99 +select printf('%.2f', double_6) from nulls1 where rowid = 0 and double_6 <> 99 diff --git a/tests/queries/103-double-rowid-and-field-ne2-some-str.sql b/tests/queries/103-double-rowid-and-field-ne2-some-str.sql index 32a3f02..2e6401b 100644 --- a/tests/queries/103-double-rowid-and-field-ne2-some-str.sql +++ b/tests/queries/103-double-rowid-and-field-ne2-some-str.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) from nulls where rowid = 0 and double_6 <> '100' +select printf('%.2f', double_6) from nulls1 where rowid = 0 and double_6 <> '100' 99.00 diff --git a/tests/queries/104-double-rowid-and-field-ne2-some-int.sql b/tests/queries/104-double-rowid-and-field-ne2-some-int.sql index 6c2c43d..171b5b3 100644 --- a/tests/queries/104-double-rowid-and-field-ne2-some-int.sql +++ b/tests/queries/104-double-rowid-and-field-ne2-some-int.sql @@ -1,2 +1,2 @@ -select printf('%.2f', double_6) from nulls where rowid = 0 and double_6 <> 100 +select printf('%.2f', double_6) from nulls1 where rowid = 0 and double_6 <> 100 99.00 diff --git a/tests/queries/107-rowid-gt-0.sql b/tests/queries/107-rowid-gt-0.sql deleted file mode 100644 index 7f1c921..0000000 --- a/tests/queries/107-rowid-gt-0.sql +++ /dev/null @@ -1,2 +0,0 @@ -select count(*) from no_nulls2 where rowid > 0 -98 diff --git a/tests/queries/108-rowid-gte-0.sql b/tests/queries/108-rowid-gte-0.sql deleted file mode 100644 index 4618b4d..0000000 --- a/tests/queries/108-rowid-gte-0.sql +++ /dev/null @@ -1,2 +0,0 @@ -select count(*) from no_nulls2 where rowid >= 0 -99 diff --git a/tests/queries/109-bool-where-eq-0.sql b/tests/queries/109-bool-where-eq-0.sql index fed038f..c359765 100644 --- a/tests/queries/109-bool-where-eq-0.sql +++ b/tests/queries/109-bool-where-eq-0.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where bool_0 = 0 +select count(*) from nulls1 where bool_0 = 0 44 diff --git a/tests/queries/110-bool-where-eq-1.sql b/tests/queries/110-bool-where-eq-1.sql index 2c15c3d..4596109 100644 --- a/tests/queries/110-bool-where-eq-1.sql +++ b/tests/queries/110-bool-where-eq-1.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where bool_0 = 1 +select count(*) from nulls1 where bool_0 = 1 5 diff --git a/tests/queries/111-bool-where-bool.sql b/tests/queries/111-bool-where-bool.sql index 6e869ef..22a9370 100644 --- a/tests/queries/111-bool-where-bool.sql +++ b/tests/queries/111-bool-where-bool.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where bool_0 +select count(*) from nulls1 where bool_0 5 diff --git a/tests/queries/112-bool-where-not-bool.sql b/tests/queries/112-bool-where-not-bool.sql index 4b52cdc..73dd46c 100644 --- a/tests/queries/112-bool-where-not-bool.sql +++ b/tests/queries/112-bool-where-not-bool.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where not bool_0 +select count(*) from nulls1 where not bool_0 44 diff --git a/tests/queries/113-bool-where-gt-0.sql b/tests/queries/113-bool-where-gt-0.sql index 3c98495..3c60dc5 100644 --- a/tests/queries/113-bool-where-gt-0.sql +++ b/tests/queries/113-bool-where-gt-0.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where bool_0 > 0 +select count(*) from nulls1 where bool_0 > 0 5 diff --git a/tests/queries/114-bool-where-gte-0.sql b/tests/queries/114-bool-where-gte-0.sql index 84cdb7b..479b815 100644 --- a/tests/queries/114-bool-where-gte-0.sql +++ b/tests/queries/114-bool-where-gte-0.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where bool_0 >= 0 +select count(*) from nulls1 where bool_0 >= 0 49 diff --git a/tests/queries/115-bool-where-gt-1.sql b/tests/queries/115-bool-where-gt-1.sql index a65f84c..2f33d93 100644 --- a/tests/queries/115-bool-where-gt-1.sql +++ b/tests/queries/115-bool-where-gt-1.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where bool_0 > 1 +select count(*) from nulls1 where bool_0 > 1 0 diff --git a/tests/queries/116-bool-where-lt-0.sql b/tests/queries/116-bool-where-lt-0.sql index 0c8f2cc..7764906 100644 --- a/tests/queries/116-bool-where-lt-0.sql +++ b/tests/queries/116-bool-where-lt-0.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where bool_0 < 0 +select count(*) from nulls1 where bool_0 < 0 0 diff --git a/tests/queries/117-bool-where-lt-1.sql b/tests/queries/117-bool-where-lt-1.sql index b22bf71..4066908 100644 --- a/tests/queries/117-bool-where-lt-1.sql +++ b/tests/queries/117-bool-where-lt-1.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where bool_0 < 1 +select count(*) from nulls1 where bool_0 < 1 44 diff --git a/tests/queries/118-bool-where-lte-1.sql b/tests/queries/118-bool-where-lte-1.sql index a9f2357..0881aaf 100644 --- a/tests/queries/118-bool-where-lte-1.sql +++ b/tests/queries/118-bool-where-lte-1.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where bool_0 <= 1 +select count(*) from nulls1 where bool_0 <= 1 49 diff --git a/tests/queries/119-ts-eq-july-20.sql b/tests/queries/119-ts-eq-july-20.sql index e89b1a9..c552939 100644 --- a/tests/queries/119-ts-eq-july-20.sql +++ b/tests/queries/119-ts-eq-july-20.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where ts_5 = 490665600000 +select count(*) from nulls1 where ts_5 = 490665600000 1 diff --git a/tests/queries/120-ts-lt-july-20.sql b/tests/queries/120-ts-lt-july-20.sql index 405fe2c..2269103 100644 --- a/tests/queries/120-ts-lt-july-20.sql +++ b/tests/queries/120-ts-lt-july-20.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where ts_5 < 490665600000 +select count(*) from nulls1 where ts_5 < 490665600000 0 diff --git a/tests/queries/121-ts-lte-july-20.sql b/tests/queries/121-ts-lte-july-20.sql index 78b66c0..44c3891 100644 --- a/tests/queries/121-ts-lte-july-20.sql +++ b/tests/queries/121-ts-lte-july-20.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where ts_5 <= 490665600000 +select count(*) from nulls1 where ts_5 <= 490665600000 1 diff --git a/tests/queries/122-ts-gt-july-20.sql b/tests/queries/122-ts-gt-july-20.sql index 06d8b37..126e0ce 100644 --- a/tests/queries/122-ts-gt-july-20.sql +++ b/tests/queries/122-ts-gt-july-20.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where ts_5 > 490665600000 +select count(*) from nulls1 where ts_5 > 490665600000 49 diff --git a/tests/queries/123-ts-gte-july-20.sql b/tests/queries/123-ts-gte-july-20.sql index f7dce14..bf869e0 100644 --- a/tests/queries/123-ts-gte-july-20.sql +++ b/tests/queries/123-ts-gte-july-20.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where ts_5 >= 490665600000 +select count(*) from nulls1 where ts_5 >= 490665600000 50 diff --git a/tests/queries/124-ts-ne-july-20.sql b/tests/queries/124-ts-ne-july-20.sql index 528cceb..1d4f330 100644 --- a/tests/queries/124-ts-ne-july-20.sql +++ b/tests/queries/124-ts-ne-july-20.sql @@ -1,2 +1,2 @@ -select count(*) from nulls where ts_5 <> 490665600000 +select count(*) from nulls1 where ts_5 <> 490665600000 49 diff --git a/tests/queries/125-fixed-bytearray-eq.sql b/tests/queries/125-fixed-bytearray-eq.sql index c895e1d..9c74478 100644 --- a/tests/queries/125-fixed-bytearray-eq.sql +++ b/tests/queries/125-fixed-bytearray-eq.sql @@ -1,2 +1,2 @@ -SELECT COUNT(*) FROM no_nulls2 WHERE binary_10 = X'10' +SELECT COUNT(*) FROM no_nulls1 WHERE binary_10 = X'10' 1 diff --git a/tests/queries/126-fixed-bytearray-lt.sql b/tests/queries/126-fixed-bytearray-lt.sql index 2dea0f9..b56c898 100644 --- a/tests/queries/126-fixed-bytearray-lt.sql +++ b/tests/queries/126-fixed-bytearray-lt.sql @@ -1,2 +1,2 @@ -SELECT COUNT(*) FROM no_nulls2 WHERE binary_10 < X'10' +SELECT COUNT(*) FROM no_nulls1 WHERE binary_10 < X'10' 16 diff --git a/tests/queries/127-fixed-bytearray-lte.sql b/tests/queries/127-fixed-bytearray-lte.sql index 9c45f94..4b94ce3 100644 --- a/tests/queries/127-fixed-bytearray-lte.sql +++ b/tests/queries/127-fixed-bytearray-lte.sql @@ -1,2 +1,2 @@ -SELECT COUNT(*) FROM no_nulls2 WHERE binary_10 <= X'10' +SELECT COUNT(*) FROM no_nulls1 WHERE binary_10 <= X'10' 17 diff --git a/tests/queries/128-fixed-bytearray-gt.sql b/tests/queries/128-fixed-bytearray-gt.sql index 1b95bb0..241f8d9 100644 --- a/tests/queries/128-fixed-bytearray-gt.sql +++ b/tests/queries/128-fixed-bytearray-gt.sql @@ -1,2 +1,2 @@ -SELECT COUNT(*) FROM no_nulls2 WHERE binary_10 > X'' +SELECT COUNT(*) FROM no_nulls1 WHERE binary_10 > X'' 99 diff --git a/tests/queries/129-fixed-bytearray-gte.sql b/tests/queries/129-fixed-bytearray-gte.sql index 959ce52..b3a164c 100644 --- a/tests/queries/129-fixed-bytearray-gte.sql +++ b/tests/queries/129-fixed-bytearray-gte.sql @@ -1,2 +1,2 @@ -SELECT COUNT(*) FROM no_nulls2 WHERE binary_10 >= X'01' +SELECT COUNT(*) FROM no_nulls1 WHERE binary_10 >= X'01' 98 diff --git a/tests/queries/130-fixed-bytearray-ne.sql b/tests/queries/130-fixed-bytearray-ne.sql index a71905a..396b49b 100644 --- a/tests/queries/130-fixed-bytearray-ne.sql +++ b/tests/queries/130-fixed-bytearray-ne.sql @@ -1,2 +1,2 @@ -SELECT COUNT(*) FROM no_nulls2 WHERE binary_10 <> X'10' +SELECT COUNT(*) FROM no_nulls1 WHERE binary_10 <> X'10' 98 diff --git a/tests/queries/131-var-bytearray-eq.sql b/tests/queries/131-var-bytearray-eq.sql index 67b1d50..1971a04 100644 --- a/tests/queries/131-var-bytearray-eq.sql +++ b/tests/queries/131-var-bytearray-eq.sql @@ -1,2 +1,2 @@ -SELECT COUNT(*) FROM nulls WHERE binary_9 = X'020202' +SELECT COUNT(*) FROM nulls1 WHERE binary_9 = X'020202' 1 diff --git a/tests/queries/132-var-bytearray-lt.sql b/tests/queries/132-var-bytearray-lt.sql index 4f4fbf9..d68086a 100644 --- a/tests/queries/132-var-bytearray-lt.sql +++ b/tests/queries/132-var-bytearray-lt.sql @@ -1,2 +1,2 @@ -SELECT COUNT(*) FROM no_nulls2 WHERE binary_9 < X'020202' +SELECT COUNT(*) FROM no_nulls1 WHERE binary_9 < X'020202' 2 diff --git a/tests/queries/133-var-bytearray-lte.sql b/tests/queries/133-var-bytearray-lte.sql index f8bd7fe..8f66494 100644 --- a/tests/queries/133-var-bytearray-lte.sql +++ b/tests/queries/133-var-bytearray-lte.sql @@ -1,2 +1,2 @@ -SELECT COUNT(*) FROM nulls WHERE binary_9 <= X'0101' +SELECT COUNT(*) FROM nulls1 WHERE binary_9 <= X'0101' 2 diff --git a/tests/queries/134-var-bytearray-gt.sql b/tests/queries/134-var-bytearray-gt.sql index 855e877..6e86d53 100644 --- a/tests/queries/134-var-bytearray-gt.sql +++ b/tests/queries/134-var-bytearray-gt.sql @@ -1,2 +1,2 @@ -SELECT COUNT(*) FROM nulls WHERE binary_9 > X'' +SELECT COUNT(*) FROM nulls1 WHERE binary_9 > X'' 50 diff --git a/tests/queries/135-var-bytearray-gte.sql b/tests/queries/135-var-bytearray-gte.sql index 4525315..7494293 100644 --- a/tests/queries/135-var-bytearray-gte.sql +++ b/tests/queries/135-var-bytearray-gte.sql @@ -1,2 +1,2 @@ -SELECT COUNT(*) FROM nulls WHERE binary_9 >= X'62626262' +SELECT COUNT(*) FROM nulls1 WHERE binary_9 >= X'62626262' 1 diff --git a/tests/queries/136-var-bytearray-ne.sql b/tests/queries/136-var-bytearray-ne.sql index bd67285..a1daf7d 100644 --- a/tests/queries/136-var-bytearray-ne.sql +++ b/tests/queries/136-var-bytearray-ne.sql @@ -1,2 +1,2 @@ -SELECT COUNT(*) FROM nulls WHERE binary_9 <> X'62626262' +SELECT COUNT(*) FROM nulls1 WHERE binary_9 <> X'62626262' 49 diff --git a/tests/queries/137-var-bytearray-lte.sql b/tests/queries/137-var-bytearray-lte.sql index c40773c..529a1ef 100644 --- a/tests/queries/137-var-bytearray-lte.sql +++ b/tests/queries/137-var-bytearray-lte.sql @@ -1,2 +1,2 @@ -SELECT COUNT(*) FROM nulls WHERE binary_9 <= X'01' +SELECT COUNT(*) FROM nulls1 WHERE binary_9 <= X'01' 1 diff --git a/tests/test-queries b/tests/test-queries index 33f63aa..d73786f 100755 --- a/tests/test-queries +++ b/tests/test-queries @@ -12,9 +12,12 @@ run_query() { .load parquet/libparquet .testcase $basename .bail on -CREATE VIRTUAL TABLE nulls USING parquet('$root/parquet-generator/99-rows-nulls.parquet'); +CREATE VIRTUAL TABLE nulls1 USING parquet('$root/parquet-generator/99-rows-nulls-1.parquet'); +CREATE VIRTUAL TABLE nulls2 USING parquet('$root/parquet-generator/99-rows-nulls-10.parquet'); +CREATE VIRTUAL TABLE nulls3 USING parquet('$root/parquet-generator/99-rows-nulls-99.parquet'); CREATE VIRTUAL TABLE no_nulls1 USING parquet('$root/parquet-generator/99-rows-1.parquet'); CREATE VIRTUAL TABLE no_nulls2 USING parquet('$root/parquet-generator/99-rows-10.parquet'); +CREATE VIRTUAL TABLE no_nulls3 USING parquet('$root/parquet-generator/99-rows-99.parquet'); $query; .output EOF