Changeset: dc763d8c872f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/dc763d8c872f Added Files: sql/test/copy/Tests/nonutf8.test sql/test/dict/Tests/dict02.test.in sql/test/miscellaneous/Tests/rel_push_count_down.test sql/test/miscellaneous/Tests/table_udf_missing_var.test sql/test/miscellaneous/Tests/temp_tables.test sql/test/miscellaneous/Tests/trace_test.test sql/test/pg_regress/Tests/int8-nohge.test sql/test/pg_regress/Tests/int8.test Removed Files: sql/test/copy/Tests/nonutf8.SQL.py sql/test/dict/Tests/dict02.SQL.py sql/test/miscellaneous/Tests/rel_push_count_down.py sql/test/miscellaneous/Tests/rel_push_count_down.sql sql/test/miscellaneous/Tests/rel_push_count_down.stable.err sql/test/miscellaneous/Tests/rel_push_count_down.stable.out sql/test/miscellaneous/Tests/rel_push_count_down.stable.out.int128 sql/test/miscellaneous/Tests/table_udf_missing_var.py sql/test/miscellaneous/Tests/temp_tables.SQL.py sql/test/miscellaneous/Tests/trace_test.SQL.py sql/test/pg_regress/Tests/int8.sql Modified Files: sql/test/miscellaneous/Tests/All sql/test/pg_regress/Tests/All Branch: Sep2022 Log Message:
Converted to .test format. diffs (truncated from 1162 to 300 lines): diff --git a/sql/test/copy/Tests/nonutf8.SQL.py b/sql/test/copy/Tests/nonutf8.test rename from sql/test/copy/Tests/nonutf8.SQL.py rename to sql/test/copy/Tests/nonutf8.test --- a/sql/test/copy/Tests/nonutf8.SQL.py +++ b/sql/test/copy/Tests/nonutf8.test @@ -1,50 +1,19 @@ -import sys -from MonetDBtesting.sqltest import SQLTestCase -try: - from MonetDBtesting import process -except ImportError: - import process - +statement ok +create table nonutf8 (s string) -with SQLTestCase() as tc: - tc.connect(username="monetdb", password="monetdb") - tc.execute("create table nonutf8 (s string);").assertSucceeded() - -# input is a byte string because it contains broken utf-8 -INPUT1 = b""" -insert into nonutf8 values ('\x7A\x77\x61\x61\x72\x20\x6C\x61\x6E\x67\x65\x20\x67\x6F\x6C\x66\x20\x70\x69\x65\x6B\x20\x2D\x64\x61\x6C\x20\xB1\x31\x30\x63\x6D\x20\x76\x61\x6B\x35'); -""" -with process.client('sql', text=False, stdin=process.PIPE, stdout=process.PIPE, stderr=process.PIPE) as c: - out, err = c.communicate(INPUT1) - retcode = c.returncode +statement error GDK reported error: GDKstrFromStr: not a proper UTF-8 sequence +insert into nonutf8 values (E'\x7A\x77\x61\x61\x72\x20\x6C\x61\x6E\x67\x65\x20\x67\x6F\x6C\x66\x20\x70\x69\x65\x6B\x20\x2D\x64\x61\x6C\x20\xB1\x31\x30\x63\x6D\x20\x76\x61\x6B\x35') - if retcode == 0: - print(f"Expected nonzero return code, received {retcode}", - file=sys.stderr) - if not err or b'invalid start of UTF-8 sequence' not in err: - print("Expected stderr to contain 'invalid start of UTF-8 sequence'", - file=sys.stderr) - print(f"Received: {err}", file=sys.stderr) - -# input is a byte string because it contains broken utf-8 -INPUT2 = b""" -copy 2 records into nonutf8 from stdin; +statement error Failed to import table 'nonutf8', line 1: column 1 s: 'clob' expected in '\x7A\x77\x61\x61\x72\x20\x6C\x61\x6E\x67\x65\x20\x67\x6F\x6C\x66\x20\x70\x69\x65\x6B\x20\x2D\x64\x61\x6C\x20\xB1\x31\x30\x63\x6D\x20\x76\x61\x6B\x35\x0A\xB1\x31\x37\x20\x25' +copy 2 records into nonutf8 from stdin escape +<COPY_INTO_DATA> \x7A\x77\x61\x61\x72\x20\x6C\x61\x6E\x67\x65\x20\x67\x6F\x6C\x66\x20\x70\x69\x65\x6B\x20\x2D\x64\x61\x6C\x20\xB1\x31\x30\x63\x6D\x20\x76\x61\x6B\x35\x0A\xB1\x31\x37\x20\x25 +. -""" -with process.client('sql', text=False, stdin=process.PIPE, stdout=process.PIPE, stderr=process.PIPE) as c: - out, err = c.communicate(INPUT2) - retcode = c.returncode +query T nosort +select * from nonutf8 +---- - if retcode == 0: - print(f"Expected nonzero return code, received {retcode}", - file=sys.stderr) - if not err or b'input not properly encoded UTF-8' not in err: - print("Expected stderr to contain 'input not properly encoded UTF-8'", - file=sys.stderr) - print(f"Received: {err}", file=sys.stderr) +statement ok +drop table nonutf8 -with SQLTestCase() as tc: - tc.connect(username="monetdb", password="monetdb") - tc.execute("select * from nonutf8;").assertSucceeded().assertRowCount(0).assertDataResultMatch([]) - tc.execute("drop table nonutf8;").assertSucceeded() diff --git a/sql/test/dict/Tests/dict02.SQL.py b/sql/test/dict/Tests/dict02.test.in rename from sql/test/dict/Tests/dict02.SQL.py rename to sql/test/dict/Tests/dict02.test.in --- a/sql/test/dict/Tests/dict02.SQL.py +++ b/sql/test/dict/Tests/dict02.test.in @@ -1,58 +1,124 @@ -import os +statement ok +START TRANSACTION + +statement ok +CREATE TABLE "mct00" ("c0" TINYINT,"c1" BOOLEAN) + +statement ok +INSERT INTO "mct00" VALUES (4, true), (NULL, false) + +statement ok +create procedure "sys"."dict_compress"(sname string, tname string, cname string, ordered_values bool) external name "dict"."compress" -from MonetDBtesting.sqltest import SQLTestCase +statement ok +COMMIT + +statement ok +CALL "sys"."dict_compress"('sys','mct00','c1',true) -port = os.environ['MAPIPORT'] -db = os.environ['TSTDB'] +statement ok +CREATE REMOTE TABLE "rmct00" ("c0" TINYINT,"c1" BOOLEAN) ON 'mapi:monetdb://localhost:$MAPIPORT/$TSTDB/sys/mct00' + +query I nosort +SELECT mct00.c1 FROM mct00 +---- +1 +0 -with SQLTestCase() as cli: - cli.connect(username="monetdb", password="monetdb") - cli.execute(""" - START TRANSACTION; - CREATE TABLE "mct00" ("c0" TINYINT,"c1" BOOLEAN); - INSERT INTO "mct00" VALUES (4, true), (NULL, false); - create procedure "sys"."dict_compress"(sname string, tname string, cname string, ordered_values bool) external name "dict"."compress"; - COMMIT; +query I nosort +SELECT rmct00.c1 FROM rmct00 +---- +1 +0 + +statement ok +START TRANSACTION + +statement ok +DROP TABLE rmct00 + +statement ok +DROP TABLE mct00 - CALL "sys"."dict_compress"('sys','mct00','c1',true); - CREATE REMOTE TABLE "rmct00" ("c0" TINYINT,"c1" BOOLEAN) ON 'mapi:monetdb://localhost:%s/%s/sys/mct00'; - """ % (port, db)).assertSucceeded() +statement ok +DROP PROCEDURE "sys"."dict_compress" + +statement ok +COMMIT - cli.execute('SELECT mct00.c1 FROM mct00;') \ - .assertSucceeded().assertDataResultMatch([(True,),(False,)]) - cli.execute('SELECT rmct00.c1 FROM rmct00;') \ - .assertSucceeded().assertDataResultMatch([(True,),(False,)]) +@connection(id=mdb1, username=monetdb, password=monetdb) +statement ok +START TRANSACTION + +@connection(id=mdb1) +statement ok +create table t0(c0 int) + +@connection(id=mdb1) +statement ok +insert into t0 values (1),(2),(3) - cli.execute(""" - START TRANSACTION; - DROP TABLE rmct00; - DROP TABLE mct00; - DROP PROCEDURE "sys"."dict_compress"; - COMMIT;""").assertSucceeded() +@connection(id=mdb1) +statement ok +create procedure "sys"."dict_compress"(sname string, tname string, cname string, ordered_values bool) external name "dict"."compress" + +@connection(id=mdb1) +statement ok +COMMIT + +@connection(id=mdb1) +statement ok +start transaction + +@connection(id=mdb2, username=monetdb, password=monetdb) +statement ok +start transaction -# if one transaction compresses a column, disallow concurrent inserts/updates/deletes on the table -with SQLTestCase() as mdb1: - with SQLTestCase() as mdb2: - mdb1.connect(username="monetdb", password="monetdb") - mdb2.connect(username="monetdb", password="monetdb") +@connection(id=mdb1) +statement ok +call "sys"."dict_compress"('sys','t0','c0',false) + +@connection(id=mdb2) +statement ok +insert into t0 values (4),(5),(6) + +@connection(id=mdb1) +statement ok +commit + +@connection(id=mdb2) +statement error 40001!COMMIT: transaction is aborted because of concurrency conflicts, will ROLLBACK instead +commit - mdb1.execute(""" - START TRANSACTION; - create table t0(c0 int); - insert into t0 values (1),(2),(3); - create procedure "sys"."dict_compress"(sname string, tname string, cname string, ordered_values bool) external name "dict"."compress"; - COMMIT;""").assertSucceeded() - mdb1.execute('start transaction;').assertSucceeded() - mdb2.execute('start transaction;').assertSucceeded() - mdb1.execute('call "sys"."dict_compress"(\'sys\',\'t0\',\'c0\',false);').assertSucceeded() - mdb2.execute("insert into t0 values (4),(5),(6);").assertSucceeded() - mdb1.execute('commit;').assertSucceeded() - mdb2.execute('commit;').assertFailed(err_code="40001", err_message="COMMIT: transaction is aborted because of concurrency conflicts, will ROLLBACK instead") - mdb1.execute('select c0 from t0;').assertSucceeded().assertDataResultMatch([(1,),(2,),(3,)]) - mdb2.execute('select c0 from t0;').assertSucceeded().assertDataResultMatch([(1,),(2,),(3,)]) +@connection(id=mdb1) +query I nosort +select c0 from t0 +---- +1 +2 +3 + +@connection(id=mdb2) +query I nosort +select c0 from t0 +---- +1 +2 +3 - mdb1.execute(""" - START TRANSACTION; - drop table t0; - drop procedure "sys"."dict_compress"; - COMMIT;""").assertSucceeded() +@connection(id=mdb1) +statement ok +START TRANSACTION + +@connection(id=mdb1) +statement ok +drop table t0 + +@connection(id=mdb1) +statement ok +drop procedure "sys"."dict_compress" + +@connection(id=mdb1) +statement ok +COMMIT + diff --git a/sql/test/miscellaneous/Tests/All b/sql/test/miscellaneous/Tests/All --- a/sql/test/miscellaneous/Tests/All +++ b/sql/test/miscellaneous/Tests/All @@ -21,7 +21,7 @@ simple_plans unique_keys vessels prepare -rel_push_count_down +HAVE_HGE?rel_push_count_down NOT_ASSERT?sqlfuncnames sequences analyze_test diff --git a/sql/test/miscellaneous/Tests/rel_push_count_down.py b/sql/test/miscellaneous/Tests/rel_push_count_down.py deleted file mode 100644 --- a/sql/test/miscellaneous/Tests/rel_push_count_down.py +++ /dev/null @@ -1,20 +0,0 @@ -from MonetDBtesting.sqltest import SQLTestCase -import pymonetdb, os - -conn1 = pymonetdb.connect(database=os.getenv("TSTDB"), port=int(os.getenv("MAPIPORT")), autocommit=True) -cur1 = conn1.cursor() -try: - cur1.execute('select cast(1 as hugeint)') - suffix = '.int128' -except pymonetdb.DatabaseError as e: - suffix = '' -cur1.close() -conn1.close() - -with SQLTestCase() as tc: - # optional or default connection - tc.connect() - with open('rel_push_count_down.sql') as f: - tc.execute(query=None, client='mclient', stdin=f)\ - .assertMatchStableOut(fout='rel_push_count_down.stable.out%s' % (suffix))\ - .assertMatchStableError(ferr='rel_push_count_down.stable.err') diff --git a/sql/test/miscellaneous/Tests/rel_push_count_down.stable.err b/sql/test/miscellaneous/Tests/rel_push_count_down.stable.err deleted file mode 100644 diff --git a/sql/test/miscellaneous/Tests/rel_push_count_down.stable.out b/sql/test/miscellaneous/Tests/rel_push_count_down.stable.out deleted file mode 100644 --- a/sql/test/miscellaneous/Tests/rel_push_count_down.stable.out +++ /dev/null @@ -1,13 +0,0 @@ -[ 4 ] -% .plan # table_name -% rel # name -% clob # type -% 85 # length -project ( -| project ( -| | crossproduct ( _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org