1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-30 19:03:16 +03:00

Improvements to the CSV virtual table.

FossilOrigin-Name: 0406ecbbe75513e342040b71fdd342462222dbb3820486b5f745d7865805c00b
This commit is contained in:
drh
2018-11-16 01:42:26 +00:00
parent 23bfa80c19
commit 6f147c54ef
4 changed files with 164 additions and 46 deletions

View File

@ -38,6 +38,63 @@ do_execsql_test 1.2 {
SELECT rowid FROM t1;
} {1 2 3 4}
do_execsql_test 1.3 {
DROP TABLE temp.t1;
CREATE VIRTUAL TABLE temp.t1 USING csv(
data=
'a,b,"mix-bloom-eel","soft opinion"
1,2,3,4
5,6,7,8
9,10,11,12
13,14,15,16
',
header=1
);
SELECT * FROM t1 WHERE "soft opinion"=12;
} {9 10 11 12}
do_execsql_test 1.4 {
SELECT name FROM pragma_table_xinfo('t1');
} {a b mix-bloom-eel {soft opinion}}
do_execsql_test 1.5 {
DROP TABLE temp.t1;
CREATE VIRTUAL TABLE temp.t1 USING csv(
data=
'a,b,"mix-bloom-eel","soft opinion"
1,2,3,4
5,6,7,8
9,10,11,12
13,14,15,16
',
header=false
);
SELECT * FROM t1 WHERE c1='b';
} {a b mix-bloom-eel {soft opinion}}
do_execsql_test 1.6 {
SELECT name FROM pragma_table_xinfo('t1');
} {c0 c1 c2 c3}
do_execsql_test 1.7 {
DROP TABLE temp.t1;
CREATE VIRTUAL TABLE temp.t1 USING csv(
data=
'a,b,"mix-bloom-eel","soft opinion"
1,2,3,4
5,6,7,8
9,10,11,12
13,14,15,16
',
header,
schema='CREATE TABLE x(x0,x1,x2,x3,x4)',
columns=5
);
SELECT * FROM t1 WHERE x1='6';
} {5 6 7 8 {}}
do_execsql_test 1.8 {
SELECT name FROM pragma_table_xinfo('t1');
} {x0 x1 x2 x3 x4}
do_execsql_test 2.0 {
DROP TABLE t1;
CREATE VIRTUAL TABLE temp.t2 USING csv(
@ -107,7 +164,7 @@ do_catchsql_test 4.0 {
'CREATE TABLE t3(a,b,c,d,PRIMARY KEY(a,b)) WITHOUT ROWID',
testflags=1
);
} {1 {vtable constructor failed: t4}}
} {1 {bad schema: 'CREATE TABLE t3(a,b,c,d,PRIMARY KEY(a,b)) WITHOUT ROWID' - not an error}}
# WITHOUT ROWID tables with a single-column PRIMARY KEY may be writable.
do_catchsql_test 4.1 {
@ -138,7 +195,7 @@ do_catchsql_test 4.2 {
'CREATE TABLE t3(a,b,c,d) WITHOUT ROWID',
testflags=1
);
} {1 {vtable constructor failed: t5}}
} {1 {bad schema: 'CREATE TABLE t3(a,b,c,d) WITHOUT ROWID' - PRIMARY KEY missing on table t3}}
# 2018-04-24
# Memory leak reported on the sqlite-users mailing list by Ralf Junker.