Changeset: 88b72f1f0c74 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/88b72f1f0c74 Modified Files: sql/storage/store.c sql/test/BugTracker-2022/Tests/All Branch: default Log Message:
Merged with Jan2022 diffs (78 lines): diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -5784,6 +5784,7 @@ create_sql_ic(sqlstore *store, sql_alloc sql_idx * create_sql_idx_done(sql_trans *tr, sql_idx *i) { + (void) tr; if (i && i->key && hash_index(i->type)) { int ncols = list_length(i->columns); for (node *n = i->columns->h ; n ; n = n->next) { @@ -5792,9 +5793,6 @@ create_sql_idx_done(sql_trans *tr, sql_i kc->c->unique = (ncols == 1) ? 2 : MAX(kc->c->unique, 1); } } - /* should we switch to oph_idx ? */ - if (i->type == hash_idx && list_length(i->columns) == 1 && sql_trans_is_sorted(tr, ((sql_kc*)i->columns->h->data)->c)) - i->type = no_idx; return i; } diff --git a/sql/test/BugTracker-2022/Tests/All b/sql/test/BugTracker-2022/Tests/All --- a/sql/test/BugTracker-2022/Tests/All +++ b/sql/test/BugTracker-2022/Tests/All @@ -4,3 +4,4 @@ insert-not-null.Bug-7232 recreate-view.Bug-7241 HAVE_LIBPY3?python-udf-inside-udf.Bug-7252 empty-MAL.Bug-7259 +pkey-restart.Bug-7263 diff --git a/sql/test/BugTracker-2022/Tests/pkey-restart.Bug-7263.SQL.py b/sql/test/BugTracker-2022/Tests/pkey-restart.Bug-7263.SQL.py new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2022/Tests/pkey-restart.Bug-7263.SQL.py @@ -0,0 +1,29 @@ +import os, tempfile + +try: + from MonetDBtesting import process +except ImportError: + import process +from MonetDBtesting.sqltest import SQLTestCase + +with tempfile.TemporaryDirectory() as farm_dir: + os.mkdir(os.path.join(farm_dir, 'db1')) + + with process.server(mapiport='0', dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) as s: + with SQLTestCase() as mdb: + mdb.connect(database='db1', port=s.dbport, username="monetdb", password="monetdb") + mdb.execute("CREATE TABLE x (k int PRIMARY KEY, v int);").assertSucceeded() + mdb.execute("INSERT INTO x VALUES(1, 1);").assertSucceeded() + mdb.execute("SELECT k, v FROM x;").assertSucceeded().assertDataResultMatch([(1,1)]) + mdb.execute("INSERT INTO x VALUES(1, 2);").assertFailed(err_code="40002", err_message="INSERT INTO: PRIMARY KEY constraint 'x.x_k_pkey' violated") + mdb.execute("SELECT k, v FROM x;").assertSucceeded().assertDataResultMatch([(1,1)]) + s.communicate() + + with process.server(mapiport='0', dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) as s: + with SQLTestCase() as mdb: + mdb.connect(database='db1', port=s.dbport, username="monetdb", password="monetdb") + mdb.execute("SELECT k, v FROM x;").assertSucceeded().assertDataResultMatch([(1,1)]) + mdb.execute("INSERT INTO x VALUES(1, 2);").assertFailed(err_code="40002", err_message="INSERT INTO: PRIMARY KEY constraint 'x.x_k_pkey' violated") + mdb.execute("SELECT k, v FROM x;").assertSucceeded().assertDataResultMatch([(1,1)]) + mdb.execute("DROP TABLE x;").assertSucceeded() + s.communicate() diff --git a/sql/test/prepare/Tests/prepare-insert-into.sql b/sql/test/prepare/Tests/prepare-insert-into.sql --- a/sql/test/prepare/Tests/prepare-insert-into.sql +++ b/sql/test/prepare/Tests/prepare-insert-into.sql @@ -1,3 +1,5 @@ +START TRANSACTION; + CREATE TABLE "TestBulkDataInsert" (c1 BIGINT NOT NULL PRIMARY KEY, c2 VARCHAR(50) NOT NULL, c3 CLOB); INSERT INTO "TestBulkDataInsert" SELECT * FROM (VALUES(1,'1a','1b'),(2,'2a','2b'),(3,'3a','3b')) vt3(c1,c2,c3); @@ -26,3 +28,5 @@ exec **('16a', 17, '17b'); SELECT * FROM "TestBulkDataInsert"; DROP TABLE "TestBulkDataInsert"; + +ROLLBACK; _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org