1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
# name: test/sql/copy/csv/test_csv_projection_pushdown.test
# description: Test CSV projection pushdown
# group: [csv]
statement ok
PRAGMA enable_verification
query II
select l_returnflag, l_linenumber from read_csv('{DATA_DIR}/csv/real/lineitem_sample.csv', delim='|', header=False, columns={
'l_orderkey': 'INT',
'l_partkey': 'INT',
'l_suppkey': 'INT',
'l_linenumber': 'INT',
'l_quantity': 'INTEGER',
'l_extendedprice': 'DECIMAL(15,2)',
'l_discount': 'DECIMAL(15,2)',
'l_tax': 'DECIMAL(15,2)',
'l_returnflag': 'VARCHAR(1)',
'l_linestatus': 'VARCHAR(1)',
'l_shipdate': 'DATE',
'l_commitdate': 'DATE',
'l_receiptdate': 'DATE',
'l_shipinstruct': 'VARCHAR(25)',
'l_shipmode': 'VARCHAR(10)',
'l_comment': 'VARCHAR(44)'
})
----
N 1
N 2
N 3
N 4
N 5
N 6
N 1
R 1
R 2
A 3
query I
SELECT COUNT(*) FROM '{DATA_DIR}/csv/real/lineitem_sample.csv'
----
10
statement ok
CREATE VIEW lineitem_csv AS SELECT * FROM read_csv('{DATA_DIR}/csv/real/lineitem_sample.csv', delim='|', header=False, columns={
'l_orderkey': 'INT',
'l_partkey': 'INT',
'l_suppkey': 'INT',
'l_linenumber': 'INT',
'l_quantity': 'INTEGER',
'l_extendedprice': 'DECIMAL(15,2)',
'l_discount': 'DECIMAL(15,2)',
'l_tax': 'DECIMAL(15,2)',
'l_returnflag': 'VARCHAR(1)',
'l_linestatus': 'VARCHAR(1)',
'l_shipdate': 'DATE',
'l_commitdate': 'DATE',
'l_receiptdate': 'DATE',
'l_shipinstruct': 'VARCHAR(25)',
'l_shipmode': 'VARCHAR(10)',
'l_comment': 'VARCHAR(44)'
})
statement ok
CREATE VIEW lineitem_csv_auto AS SELECT * FROM read_csv_auto('{DATA_DIR}/csv/real/lineitem_sample.csv', header=False) lineitem(l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment)
foreach lineitem lineitem_csv lineitem_csv_auto
query I
SELECT l_orderkey FROM ${lineitem}
----
1
1
1
1
1
1
2
3
3
3
query I
SELECT l_partkey FROM ${lineitem}
----
15519
6731
6370
214
2403
1564
10617
430
1904
12845
query I
SELECT l_shipdate FROM ${lineitem}
----
1996-03-13
1996-04-12
1996-01-29
1996-04-21
1996-03-30
1996-01-30
1997-01-28
1994-02-02
1993-11-09
1994-01-16
query I
SELECT COUNT(*) FROM ${lineitem}
----
10
endloop
# Test Projection over multiple buffers
query I
select count(*) from read_csv('{DATA_DIR}/csv/projection_buffer.csv', quote = '"', escape = '"', buffer_size=35)
----
27
query III
select d,b,a from read_csv('{DATA_DIR}/csv/projection_buffer.csv', quote = '"', escape = '"', buffer_size=35)
----
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
d" b" a"
|