Changeset: 7a95a118e182 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7a95a118e182
Added Files:
sql/test/SQLancer/Tests/sqlancer03.sql
sql/test/SQLancer/Tests/sqlancer03.stable.err
sql/test/SQLancer/Tests/sqlancer03.stable.out
Modified Files:
monetdb5/modules/atoms/str.c
sql/storage/store.c
sql/test/SQLancer/Tests/All
Branch: default
Log Message:
Merged with Jun2020
diffs (105 lines):
diff --git a/monetdb5/modules/atoms/str.c b/monetdb5/modules/atoms/str.c
--- a/monetdb5/modules/atoms/str.c
+++ b/monetdb5/modules/atoms/str.c
@@ -3565,7 +3565,7 @@ STRsplitpart(str *res, str *haystack, st
{
size_t len;
int f = *field;
- char *p;
+ char *p = NULL;
const char *s = *haystack;
const char *s2 = *needle;
@@ -3581,10 +3581,11 @@ STRsplitpart(str *res, str *haystack, st
}
len = strlen(s2);
-
- while ((p = strstr(s, s2)) != NULL && f > 1) {
- s = p + len;
- f--;
+ if (len) {
+ while ((p = strstr(s, s2)) != NULL && f > 1) {
+ s = p + len;
+ f--;
+ }
}
if (f != 1) {
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -3511,9 +3511,8 @@ table_dup(sql_trans *tr, int flags, sql_
/* Needs copy when committing (ie from tr to gtrans) and
* on savepoints from tr->parent to new tr */
if (flags) {
+ assert(t->data == NULL);
t->base.allocated = ot->base.allocated;
- if (ot->data)
- (void)store_funcs.destroy_del(tr, ot);
t->data = ot->data;
ot->base.allocated = 0;
ot->data = NULL;
@@ -3783,7 +3782,8 @@ trans_init(sql_trans *tr, backend_stack
t->base.rtime = t->base.wtime = 0;
t->base.stime = pt->base.wtime;
if (!istmp && !t->base.allocated) {
- (void)store_funcs.destroy_del(tr, t);
+ if (t->data)
+
(void)store_funcs.destroy_del(tr, t);
t->data = NULL;
}
assert (istmp || !t->base.allocated);
diff --git a/sql/test/SQLancer/Tests/All b/sql/test/SQLancer/Tests/All
--- a/sql/test/SQLancer/Tests/All
+++ b/sql/test/SQLancer/Tests/All
@@ -1,2 +1,3 @@
sqlancer01
sqlancer02
+sqlancer03
diff --git a/sql/test/SQLancer/Tests/sqlancer03.sql
b/sql/test/SQLancer/Tests/sqlancer03.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/SQLancer/Tests/sqlancer03.sql
@@ -0,0 +1,1 @@
+select splitpart(r'%Fz晟2墁', '', 1), splitpart(r'%Fz晟2墁', r'', 2),
splitpart(r'%Fz晟2墁', r'', 1271186887);
diff --git a/sql/test/SQLancer/Tests/sqlancer03.stable.err
b/sql/test/SQLancer/Tests/sqlancer03.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/SQLancer/Tests/sqlancer03.stable.err
@@ -0,0 +1,12 @@
+stderr of test 'sqlancer03` in directory 'sql/test/SQLancer` itself:
+
+
+# 17:14:16 >
+# 17:14:16 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-439482" "--port=37916"
+# 17:14:16 >
+
+
+# 17:14:16 >
+# 17:14:16 > "Done."
+# 17:14:16 >
+
diff --git a/sql/test/SQLancer/Tests/sqlancer03.stable.out
b/sql/test/SQLancer/Tests/sqlancer03.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/SQLancer/Tests/sqlancer03.stable.out
@@ -0,0 +1,18 @@
+stdout of test 'sqlancer03` in directory 'sql/test/SQLancer` itself:
+
+
+# 17:14:16 >
+# 17:14:16 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-439482" "--port=37916"
+# 17:14:16 >
+
+#select splitpart(r'%Fz晟2墁', '', 1), splitpart(r'%Fz晟2墁', r'', 2),
splitpart(r'%Fz晟2墁', r'', 1271186887);
+% .%2, .%3, .%4 # table_name
+% %2, %3, %4 # name
+% clob, clob, varchar # type
+% 9, 0, 0 # length
+[ "%Fz晟2墁", "", "" ]
+
+# 17:14:16 >
+# 17:14:16 > "Done."
+# 17:14:16 >
+
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list