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 -- [email protected]
To unsubscribe send an email to [email protected]