--- parser3/tests/388-sql.html 2024/09/27 23:37:58 1.16 +++ parser3/tests/388-sql.html 2024/12/13 20:35:09 1.24 @@ -1,12 +1,12 @@ -@main[] +@auto[] $path[^os[Release/;.libs/lib]] $ext[^os[dll;so]] $SQL[ $.drivers[^table::create{protocol driver client connect -sqlite ../../sql/sqlite/${path}parser3sqlite.$ext ^os[sqlite3.dll;libsqlite3.so] sqlite://:memory:?multi_statements=1 -mysql ../../sql/mysql/${path}parser3mysql.$ext ^os[libmySQL.dll;libmariadbclient.so] mysql://@/?config_group=parser3&multi_statements=1 +sqlite ../../sql/sqlite/${path}parser3sqlite.$ext ^os[sqlite3.dll;libsqlite3.so;libsqlite3.0.dylib] sqlite://:memory:?multi_statements=1 +mysql ../../sql/mysql/${path}parser3mysql.$ext ^os[libmySQL.dll;libmariadb.so,libmysqlclient.so] mysql://@/?config_group=parser3&multi_statements=1 pgsql ../../sql/pgsql/${path}parser3pgsql.$ext libpq.$ext pgsql://test@localhost/test }] ] @@ -14,6 +14,20 @@ pgsql ../../sql/pgsql/${path}parser3pgsq $sql[sqlite] $ignore[^SQL.drivers.locate[protocol;$sql]] +@prepare-data[] + $ignore[^try-catch{ ^void:sql{drop table pets} }] + + ^void:sql{create table pets (pet varchar(128), food varchar(128), aggressive varchar(128), weigth varchar(128))} + + ^void:sql{insert into pets values + ('cat', 'milk', '^taint['very']', 5), + ('dog', 'bone', '^taint["never"]', 10), + ('hamster', 'grain', null, 1), + ('parrot', 'grain', 'alwayws', 1) + } + +@main[] + ^connect[$SQL.drivers.connect]{ 1. 2 + 2 = ^string:sql{select 2+2} @@ -21,15 +35,7 @@ $ignore[^SQL.drivers.locate[protocol;$sq 2. void - 2.0 $ignore[^try-catch{ ^void:sql{drop table pets} }] - - 2.1 ^void:sql{create table pets (pet varchar(128), food varchar(128), aggressive varchar(128), weigth varchar(128))} - - 2.2 ^void:sql{insert into pets values - ('cat', 'milk', '^taint['very']', 5), - ('dog', 'bone', '^taint["never"]', 10), - ('parrot', 'grain', 'alwayws', 1) - } + 2.1 ^prepare-data[] 2.3 ^try-catch{ ^void:sql{select * from pets} } 2.4 ^try-catch{ ^void:sql{query}[ $.unknown[yes] ] } @@ -71,9 +77,11 @@ $ignore[^SQL.drivers.locate[protocol;$sq 4.7 ^h[select pet from pets] - 4.8 ^h[select '0' as key, pet from pets; $.type[table] $.distinct(true) ] + 4.7.1 ^h[select aggressive from pets; $.type[table] ] + + 4.8 ^h[select food as id, pet from pets; $.type[table] $.distinct(true) ] - 4.9 ^h[select '0' as key, pet from pets; $.type[string] $.distinct(true) ] + 4.9 ^h[select food as id, pet from pets; $.type[string] $.distinct(true) ] 5. table @@ -97,7 +105,7 @@ $ignore[^SQL.drivers.locate[protocol;$sq 6.4 ^try-catch{ ^f[select aggressive from pets; $.limit(0) ] } - 6.5 ^try-catch{ ^f[select 1 from pets] } - bug! + 6.5 ^try-catch{ ^f[select 1 from pets; $.limit(3) ] } 6.6 ^try-catch{ ^f[select 1,2 from pets] }