Changeset: d39ba9e10d92 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d39ba9e10d92
Modified Files:
.hgtags
gdk/gdk_bbp.c
sql/backends/monet5/sql_scenario.c
sql/test/BugTracker-2022/Tests/All
Branch: Sep2022
Log Message:
merged
diffs (truncated from 450 to 300 lines):
diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -786,3 +786,4 @@ 47675351fec22d5d5dc81eec03dfa08f505afc99
44e45c9a451f6afd933773094ec25723f713d3be Jan2022_23
44e45c9a451f6afd933773094ec25723f713d3be Jan2022_SP5_release
43d4a717410d6f6692a16a878640fc7e0f248725 Jan2022_25
+43d4a717410d6f6692a16a878640fc7e0f248725 Jan2022_SP6_release
diff --git a/cmake/Modules/FindReadline.cmake b/cmake/Modules/FindReadline.cmake
--- a/cmake/Modules/FindReadline.cmake
+++ b/cmake/Modules/FindReadline.cmake
@@ -9,22 +9,24 @@ find_package(PkgConfig QUIET)
pkg_check_modules(PC_READLINE QUIET readline>=8.0)
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" OR PC_READLINE_FOUND)
+ if(NOT WIN32)
-# Look for the header file.
-find_path(READLINE_INCLUDE_DIR NAMES readline/readline.h
- HINTS
- ${PC_READLINE_INCLUDEDIR}
- ${PC_READLINE_INCLUDE_DIRS}
- PATH_SUFFIXES readline
- )
+ # Look for the header file.
+ find_path(READLINE_INCLUDE_DIR NAMES readline/readline.h
+ HINTS
+ ${PC_READLINE_INCLUDEDIR}
+ ${PC_READLINE_INCLUDE_DIRS}
+ PATH_SUFFIXES readline
+ )
-# Look for the library.
-find_library(READLINE_LIBRARIES NAMES readline
- HINTS
- ${PC_READLINE_LIBDIR}
- ${PC_READLINE_LIBRARY_DIRS}
- )
+ # Look for the library.
+ find_library(READLINE_LIBRARIES NAMES readline
+ HINTS
+ ${PC_READLINE_LIBDIR}
+ ${PC_READLINE_LIBRARY_DIRS}
+ )
+ endif()
endif()
# Handle the QUIETLY and REQUIRED arguments and set READLINE_FOUND to TRUE if
all listed variables are TRUE.
diff --git a/sql/backends/monet5/sql_scenario.c
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -1026,12 +1026,12 @@ SQLparser(Client c)
if (n == 2 || n == 3) {
if (n == 2)
len = m->reply_size;
+ in->pos = in->len; /* HACK: should use parsed
length */
if ((ok = mvc_export_chunk(be, out, v, off, len < 0 ?
BUN_NONE : (BUN) len)) < 0) {
msg = createException(SQL, "SQLparser",
SQLSTATE(45000) "Result set construction failed: %s", mvc_export_error(be, out,
ok));
goto finalize;
}
- in->pos = in->len; /* HACK: should use parsed
length */
return MAL_SUCCEED;
}
if (strncmp(in->buf + in->pos, "close ", 6) == 0) {
@@ -1098,8 +1098,10 @@ SQLparser(Client c)
}
if (strncmp(in->buf + in->pos, "quit", 4) == 0) {
c->mode = FINISHCLIENT;
+ in->pos = in->len; /* HACK: should use parsed
length */
return MAL_SUCCEED;
}
+ in->pos = in->len; /* HACK: should use parsed length */
msg = createException(SQL, "SQLparser", SQLSTATE(42000)
"Unrecognized X command: %s\n", in->buf + in->pos);
goto finalize;
}
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
@@ -18,3 +18,6 @@ dependencies.Bug-7328
multi-column-filters-k2-unique.Bug-7303
multi-column-filters-k2-is-1.Bug-7303
values.Bug-7336
+temp-table-index.Bug
+rerun-temp-table-index-crashes-server.Bug
+rerun-temp-table-index-fails-to-restart-server.Bug
diff --git
a/sql/test/BugTracker-2022/Tests/rerun-temp-table-index-crashes-server.Bug.test
b/sql/test/BugTracker-2022/Tests/rerun-temp-table-index-crashes-server.Bug.test
new file mode 100644
--- /dev/null
+++
b/sql/test/BugTracker-2022/Tests/rerun-temp-table-index-crashes-server.Bug.test
@@ -0,0 +1,116 @@
+statement ok
+CREATE LOCAL TEMP TABLE tmp.tmp_pk_uc (id1 INT NOT NULL PRIMARY KEY, name1
VARCHAR(99) UNIQUE)
+
+statement ok
+CREATE LOCAL TEMP TABLE tmp.tmp_nopk_twoucs (id2 INT NOT NULL UNIQUE, name2
VARCHAR(99) UNIQUE)
+
+statement ok
+CREATE GLOBAL TEMP TABLE tmp.glbl_pk_uc (id1 INT NOT NULL PRIMARY KEY, name1
VARCHAR(99) UNIQUE)
+
+statement ok
+CREATE GLOBAL TEMP TABLE tmp.glbl_nopk_twoucs (id2 INT NOT NULL UNIQUE, name2
VARCHAR(99) UNIQUE)
+
+query T rowsort
+SELECT name FROM sys.tables WHERE NOT system ORDER BY name
+-----
+glbl_nopk_twoucs
+glbl_pk_uc
+tmp_nopk_twoucs
+tmp_pk_uc
+
+query T rowsort
+SELECT name FROM sys.idxs WHERE (table_id) IN (SELECT id FROM sys.tables WHERE
NOT system) ORDER BY name
+-----
+glbl_nopk_twoucs_id2_unique
+glbl_nopk_twoucs_name2_unique
+glbl_pk_uc_id1_pkey
+glbl_pk_uc_name1_unique
+
+query T rowsort
+SELECT name FROM tmp.idxs WHERE (table_id) IN (SELECT id FROM sys.tables WHERE
NOT system) ORDER BY name
+-----
+tmp_nopk_twoucs_id2_unique
+tmp_nopk_twoucs_name2_unique
+tmp_pk_uc_id1_pkey
+tmp_pk_uc_name1_unique
+
+statement ok
+CREATE INDEX tmp_pk_uc_i ON tmp.tmp_pk_uc (id1, name1)
+
+statement ok
+CREATE INDEX tmp_nopk_twoucs_i ON tmp.tmp_nopk_twoucs (id2, name2)
+
+statement ok
+CREATE INDEX glbl_pk_uc_i ON tmp.glbl_pk_uc (id1, name1)
+
+statement ok
+CREATE INDEX glbl_nopk_twoucs_i ON tmp.glbl_nopk_twoucs (id2, name2)
+
+query T rowsort
+SELECT name FROM sys.idxs WHERE (table_id) IN (SELECT id FROM sys.tables WHERE
NOT system) ORDER BY name
+-----
+glbl_nopk_twoucs_i
+glbl_nopk_twoucs_id2_unique
+glbl_nopk_twoucs_name2_unique
+glbl_pk_uc_i
+glbl_pk_uc_id1_pkey
+glbl_pk_uc_name1_unique
+
+query T rowsort
+SELECT name FROM tmp.idxs WHERE (table_id) IN (SELECT id FROM sys.tables WHERE
NOT system) ORDER BY name
+-----
+tmp_nopk_twoucs_i
+tmp_nopk_twoucs_id2_unique
+tmp_nopk_twoucs_name2_unique
+tmp_pk_uc_i
+tmp_pk_uc_id1_pkey
+tmp_pk_uc_name1_unique
+
+statement ok
+DROP INDEX tmp.tmp_pk_uc_i
+
+statement ok
+DROP INDEX tmp.tmp_nopk_twoucs_i
+
+statement ok
+DROP INDEX tmp.glbl_pk_uc_i
+
+statement ok
+DROP INDEX tmp.glbl_nopk_twoucs_i
+
+query T rowsort
+SELECT name FROM sys.idxs WHERE (table_id) IN (SELECT id FROM sys.tables WHERE
NOT system) ORDER BY name
+-----
+glbl_nopk_twoucs_id2_unique
+glbl_nopk_twoucs_name2_unique
+glbl_pk_uc_id1_pkey
+glbl_pk_uc_name1_unique
+
+query T rowsort
+SELECT name FROM tmp.idxs WHERE (table_id) IN (SELECT id FROM sys.tables WHERE
NOT system) ORDER BY name
+-----
+tmp_nopk_twoucs_id2_unique
+tmp_nopk_twoucs_name2_unique
+tmp_pk_uc_id1_pkey
+tmp_pk_uc_name1_unique
+
+statement ok
+DROP TABLE tmp.tmp_pk_uc
+
+statement ok
+DROP TABLE tmp.glbl_pk_uc
+
+statement ok
+DROP TABLE tmp.tmp_nopk_twoucs
+
+statement ok
+DROP TABLE tmp.glbl_nopk_twoucs
+
+query T rowsort
+SELECT name FROM sys.idxs WHERE (table_id) IN (SELECT id FROM sys.tables WHERE
NOT system) ORDER BY name
+-----
+
+query T rowsort
+SELECT name FROM tmp.idxs WHERE (table_id) IN (SELECT id FROM sys.tables WHERE
NOT system) ORDER BY name
+-----
+
diff --git
a/sql/test/BugTracker-2022/Tests/rerun-temp-table-index-fails-to-restart-server.Bug.test
b/sql/test/BugTracker-2022/Tests/rerun-temp-table-index-fails-to-restart-server.Bug.test
new file mode 100644
--- /dev/null
+++
b/sql/test/BugTracker-2022/Tests/rerun-temp-table-index-fails-to-restart-server.Bug.test
@@ -0,0 +1,116 @@
+statement ok
+CREATE LOCAL TEMP TABLE tmp.tmp_pk_uc (id1 INT NOT NULL PRIMARY KEY, name1
VARCHAR(99) UNIQUE)
+
+statement ok
+CREATE LOCAL TEMP TABLE tmp.tmp_nopk_twoucs (id2 INT NOT NULL UNIQUE, name2
VARCHAR(99) UNIQUE)
+
+statement ok
+CREATE GLOBAL TEMP TABLE tmp.glbl_pk_uc (id1 INT NOT NULL PRIMARY KEY, name1
VARCHAR(99) UNIQUE)
+
+statement ok
+CREATE GLOBAL TEMP TABLE tmp.glbl_nopk_twoucs (id2 INT NOT NULL UNIQUE, name2
VARCHAR(99) UNIQUE)
+
+query T rowsort
+SELECT name FROM sys.tables WHERE NOT system ORDER BY name
+-----
+glbl_nopk_twoucs
+glbl_pk_uc
+tmp_nopk_twoucs
+tmp_pk_uc
+
+query T rowsort
+SELECT name FROM sys.idxs WHERE (table_id) IN (SELECT id FROM sys.tables WHERE
NOT system) ORDER BY name
+-----
+glbl_nopk_twoucs_id2_unique
+glbl_nopk_twoucs_name2_unique
+glbl_pk_uc_id1_pkey
+glbl_pk_uc_name1_unique
+
+query T rowsort
+SELECT name FROM tmp.idxs WHERE (table_id) IN (SELECT id FROM sys.tables WHERE
NOT system) ORDER BY name
+-----
+tmp_nopk_twoucs_id2_unique
+tmp_nopk_twoucs_name2_unique
+tmp_pk_uc_id1_pkey
+tmp_pk_uc_name1_unique
+
+statement ok
+CREATE INDEX tmp_pk_uc_i ON tmp.tmp_pk_uc (id1, name1)
+
+statement ok
+CREATE INDEX tmp_nopk_twoucs_i ON tmp.tmp_nopk_twoucs (id2, name2)
+
+statement ok
+CREATE INDEX glbl_pk_uc_i ON tmp.glbl_pk_uc (id1, name1)
+
+statement ok
+CREATE INDEX glbl_nopk_twoucs_i ON tmp.glbl_nopk_twoucs (id2, name2)
+
+query T rowsort
+SELECT name FROM sys.idxs WHERE (table_id) IN (SELECT id FROM sys.tables WHERE
NOT system) ORDER BY name
+-----
+glbl_nopk_twoucs_i
+glbl_nopk_twoucs_id2_unique
+glbl_nopk_twoucs_name2_unique
+glbl_pk_uc_i
+glbl_pk_uc_id1_pkey
+glbl_pk_uc_name1_unique
+
+query T rowsort
+SELECT name FROM tmp.idxs WHERE (table_id) IN (SELECT id FROM sys.tables WHERE
NOT system) ORDER BY name
+-----
+tmp_nopk_twoucs_i
+tmp_nopk_twoucs_id2_unique
+tmp_nopk_twoucs_name2_unique
+tmp_pk_uc_i
+tmp_pk_uc_id1_pkey
+tmp_pk_uc_name1_unique
+
+statement ok
+DROP INDEX tmp.tmp_pk_uc_i
+
+statement ok
+DROP INDEX tmp.tmp_nopk_twoucs_i
+
+statement ok
+DROP INDEX tmp.glbl_pk_uc_i
+
+statement ok
+DROP INDEX tmp.glbl_nopk_twoucs_i
+
+query T rowsort
+SELECT name FROM sys.idxs WHERE (table_id) IN (SELECT id FROM sys.tables WHERE
NOT system) ORDER BY name
+-----
+glbl_nopk_twoucs_id2_unique
+glbl_nopk_twoucs_name2_unique
+glbl_pk_uc_id1_pkey
+glbl_pk_uc_name1_unique
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]