MonetDB: Sep2022 - merged with jan2022

2023-05-20 Thread Niels Nes
Changeset: c6164990bb0c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c6164990bb0c
Modified Files:
monetdb5/optimizer/opt_remap.c
Branch: Sep2022
Log Message:

merged with jan2022


diffs (28 lines):

diff --git a/monetdb5/optimizer/opt_remap.c b/monetdb5/optimizer/opt_remap.c
--- a/monetdb5/optimizer/opt_remap.c
+++ b/monetdb5/optimizer/opt_remap.c
@@ -122,7 +122,7 @@ OPTmultiplexInline(Client cntxt, MalBlkP
MalBlkPtr mq;
InstrPtr q = NULL, sig;
char buf[1024];
-   int i,j,k,m, actions=0;
+   int i,j,k,m;
int refbat=0, retc = p->retc;
bit *upgrade;
str msg;
@@ -277,7 +277,6 @@ OPTmultiplexInline(Client cntxt, MalBlkP

typeChecker(cntxt->usermodule,mq,q,i,TRUE);
if( q->typechk== TYPE_UNKNOWN)
goto terminateMX;
-   actions++;
break;
}
/* handle simple upgraded assignments as well */
@@ -294,7 +293,6 @@ OPTmultiplexInline(Client cntxt, MalBlkP

typeChecker(cntxt->usermodule,mq,q,i,TRUE);
if( q->typechk== TYPE_UNKNOWN)
goto terminateMX;
-   actions++;
break;
}
}
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Sep2022 - merged with jan2022

2023-03-31 Thread Niels Nes
Changeset: 9bbe639dfaf7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/9bbe639dfaf7
Modified Files:
gdk/gdk_logger.c
gdk/gdk_logger_internals.h
gdk/gdk_logger_old.c
Branch: Sep2022
Log Message:

merged with jan2022


diffs (283 lines):

diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -310,12 +310,12 @@ string_reader(logger *lg, BAT *b, lng nr
if (mnstr_readLng(lg->input_log, &SZ) != 1)
return LOG_EOF;
sz = (size_t)SZ;
-   char *buf = lg->buf;
-   if (lg->bufsize < sz) {
-   if (!(buf = GDKrealloc(lg->buf, sz)))
+   char *buf = lg->rbuf;
+   if (lg->rbufsize < sz) {
+   if (!(buf = GDKrealloc(lg->rbuf, sz)))
return LOG_ERR;
-   lg->buf = buf;
-   lg->bufsize = sz;
+   lg->rbuf = buf;
+   lg->rbufsize = sz;
}
 
if (mnstr_read(lg->input_log, buf, sz, 1) != 1)
@@ -419,8 +419,8 @@ log_read_updates(logger *lg, trans *tr, 
}
 
// We have to read the value to update the read 
cursor
-   size_t tlen = lg->bufsize;
-   void *t = rt(lg->buf, &tlen, lg->input_log, 1);
+   size_t tlen = lg->rbufsize;
+   void *t = rt(lg->rbuf, &tlen, lg->input_log, 1);
if (t == NULL) {
res = LOG_ERR;
}
@@ -438,13 +438,13 @@ log_read_updates(logger *lg, trans *tr, 
}
 
if (l->flag == LOG_UPDATE_CONST) {
-   size_t tlen = lg->bufsize;
-   void *t = rt(lg->buf, &tlen, lg->input_log, 1);
+   size_t tlen = lg->rbufsize;
+   void *t = rt(lg->rbuf, &tlen, lg->input_log, 1);
if (t == NULL) {
res = LOG_ERR;
} else {
-   lg->buf = t;
-   lg->bufsize = tlen;
+   lg->rbuf = t;
+   lg->rbufsize = tlen;
for(BUN p = 0; p<(BUN) nr; p++) {
if (r && BUNappend(r, t, true) != 
GDK_SUCCEED)
res = LOG_ERR;
@@ -463,32 +463,32 @@ log_read_updates(logger *lg, trans *tr, 
else
res = LOG_ERR;
} else {
-   size_t tlen = lg->bufsize/sizeof(int);
+   size_t tlen = lg->rbufsize/sizeof(int);
size_t cnt = 0, snr = (size_t)nr;
snr = (snr+31)/32;
assert(tlen);
for (; res == LOG_OK && snr > 0; 
snr-=cnt) {
cnt = snr>tlen?tlen:snr;
-   if 
(!mnstr_readIntArray(lg->input_log, lg->buf, cnt))
+   if 
(!mnstr_readIntArray(lg->input_log, lg->rbuf, cnt))
res = LOG_ERR;
}
}
} else {
if (!ATOMvarsized(tpe)) {
size_t cnt = 0, snr = (size_t)nr;
-   size_t tlen = 
lg->bufsize/ATOMsize(tpe), ntlen = lg->bufsize;
+   size_t tlen = 
lg->rbufsize/ATOMsize(tpe), ntlen = lg->rbufsize;
assert(tlen);
/* read in chunks of max
 * BUFSIZE/width rows */
for (; res == LOG_OK && snr > 0; 
snr-=cnt) {
cnt = snr>tlen?tlen:snr;
-   void *t = rt(lg->buf, &ntlen, 
lg->input_log, cnt);
+   void *t = rt(lg->rbuf, &ntlen, 
lg->input_log, cnt);
 
if (t == NULL) {
res = LOG_EOF;
break;
}
-   assert(t == lg->buf);
+

MonetDB: Sep2022 - merged with jan2022

2023-03-30 Thread Niels Nes
Changeset: 1cb3ca0f39cc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/1cb3ca0f39cc
Modified Files:
sql/backends/monet5/sql_result.c
Branch: Sep2022
Log Message:

merged with jan2022


diffs (12 lines):

diff --git a/sql/backends/monet5/sql_result.c b/sql/backends/monet5/sql_result.c
--- a/sql/backends/monet5/sql_result.c
+++ b/sql/backends/monet5/sql_result.c
@@ -1962,7 +1962,7 @@ mvc_export_result(backend *b, stream *s,
b->results = res_tables_remove(b->results, t);
 
if (res > -1)
-   res = mvc_export_warning(s, "");
+   res = 1;
return res;
 }
 
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Sep2022 - merged with Jan2022

2023-03-27 Thread Niels Nes
Changeset: fe8032b0a7eb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/fe8032b0a7eb
Modified Files:
sql/server/rel_select.c
Branch: Sep2022
Log Message:

merged with Jan2022


diffs (12 lines):

diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -971,6 +971,8 @@ table_ref(sql_query *query, symbol *tabl
list_hash_clear(exps);
}
}
+   if (temp_table && tableref->data.lval->t->type == 
type_symbol && tableref->data.lval->t->data.sym && 
tableref->data.lval->t->data.sym->data.lval->h->next->data.lval) /* AS with 
column aliases */
+   temp_table = rel_table_optname(sql, temp_table, 
tableref->data.lval->h->next->data.sym, refs);
if (allowed)
return temp_table;
return sql_error(sql, 02, SQLSTATE(42000) "SELECT: 
access denied for %s to table '%s'", get_string_global_var(sql, 
"current_user"), tname);
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Sep2022 - merged with jan2022

2023-03-27 Thread Niels Nes
Changeset: 655e6029f35d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/655e6029f35d
Modified Files:
sql/server/rel_select.c
Branch: Sep2022
Log Message:

merged with jan2022


diffs (13 lines):

diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -968,9 +968,6 @@ table_ref(sql_query *query, symbol *tabl
noninternexp_setname(sql->sa, 
e, tname, NULL);
set_basecol(e);
}
-   if 
(tableref->data.lval->h->next->data.sym && 
tableref->data.lval->h->next->data.sym->data.lval->h->next->data.lval) { /* AS 
with column aliases */
-   temp_table = 
rel_table_optname(sql, temp_table, tableref->data.lval->h->next->data.sym, 
refs);
-   }
list_hash_clear(exps);
}
}
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Sep2022 - merged with Jan2022

2023-03-27 Thread Niels Nes
Changeset: 7594113002f6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/7594113002f6
Modified Files:
.bumpversion.cfg
.hgtags
MonetDB.spec
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/winsetup/setup.rc
cmake/monetdb-versions.cmake
debian/changelog
gdk/ChangeLog-Archive
gdk/libbat.rc
misc/packages/deb/changelog
misc/packages/rpm/changelog
monetdb5/ChangeLog-Archive
monetdb5/modules/mal/tablet.c
monetdb5/tools/libmonetdb5.rc
sql/ChangeLog-Archive
sql/server/rel_select.c
sql/test/miscellaneous/Tests/All
Branch: Sep2022
Log Message:

merged with Jan2022


diffs (51 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -793,3 +793,5 @@ 41ca60d96bd0198ca5d74937630a442a5fbaf1cd
 41ca60d96bd0198ca5d74937630a442a5fbaf1cd Sep2022_SP1_release
 e8b0e5558313f4d98bc48316368299decc55ed4e Sep2022_13
 e8b0e5558313f4d98bc48316368299decc55ed4e Sep2022_SP2_release
+8a95168e853382b9b89ac7b67e343788ea837f3a Jul2021_31
+8a95168e853382b9b89ac7b67e343788ea837f3a Jul2021_SP9_release
diff --git a/monetdb5/modules/mal/tablet.c b/monetdb5/modules/mal/tablet.c
--- a/monetdb5/modules/mal/tablet.c
+++ b/monetdb5/modules/mal/tablet.c
@@ -974,7 +974,7 @@ SQLload_parse_row(READERtask *task, int 
 
/* eat away the column separator */
for (; *row; row++)
-   if (*row == '\\') {
+   if (*row == '\\' && task->escape) {
if (row[1])
row++;
} else if (*row == ch && (task->seplen == 1 || 
strncmp(row, task->csep, task->seplen) == 0)) {
@@ -1010,7 +1010,7 @@ SQLload_parse_row(READERtask *task, int 
 
/* eat away the column separator */
for (; *row; row++)
-   if (*row == '\\') {
+   if (*row == '\\' && task->escape) {
if (row[1])
row++;
} else if (*row == ch) {
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
@@ -27,3 +27,4 @@ sequences
 analyze_test
 blobs
 temp_tables
+table_alias_on_cte
diff --git a/sql/test/miscellaneous/Tests/table_alias_on_cte.test 
b/sql/test/miscellaneous/Tests/table_alias_on_cte.test
new file mode 100644
--- /dev/null
+++ b/sql/test/miscellaneous/Tests/table_alias_on_cte.test
@@ -0,0 +1,8 @@
+
+query I rowsort
+WITH bar(i) AS (SELECT * FROM generate_series(0, 3))
+SELECT j from bar foo(j);
+
+0
+1
+2
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Sep2022 - merged with jan2022

2023-03-19 Thread Niels Nes
Changeset: 1846507313b0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/1846507313b0
Modified Files:
sql/include/sql_catalog.h
Branch: Sep2022
Log Message:

merged with jan2022


diffs (12 lines):

diff --git a/sql/include/sql_catalog.h b/sql/include/sql_catalog.h
--- a/sql/include/sql_catalog.h
+++ b/sql/include/sql_catalog.h
@@ -321,7 +321,7 @@ typedef struct sql_trans {
list *dependencies; /* list of dependencies created (list of sqlids 
from the objects) */
list *depchanges;   /* list of dependencies changed (it would be 
tested for conflicts at the end of the transaction) */
 
-   int logchanges; /* count number of changes to be applied to the 
wal */
+   lng logchanges; /* count number of changes to be applied to the 
wal */
int active; /* is active transaction */
int status; /* status of the last query */
 
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Sep2022 - merged with Jan2022

2023-03-10 Thread Niels Nes
Changeset: 37905217c4fa for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/37905217c4fa
Modified Files:
sql/test/prepare/Tests/sqlancer_prepare.stable.out
sql/test/prepare/Tests/sqlancer_prepare.stable.out.int128
Branch: Sep2022
Log Message:

merged with Jan2022


diffs (24 lines):

diff --git a/sql/test/prepare/Tests/sqlancer_prepare.stable.out 
b/sql/test/prepare/Tests/sqlancer_prepare.stable.out
--- a/sql/test/prepare/Tests/sqlancer_prepare.stable.out
+++ b/sql/test/prepare/Tests/sqlancer_prepare.stable.out
@@ -176,7 +176,7 @@
 [  ]
 % .prepare,.prepare,   .prepare,   .prepare,   .prepare,   
.prepare # table_name
 % type,digits, scale,  schema, table,  column # name
-% varchar, int,int,str,str,str # type
+% varchar, int,int,varchar,varchar,varchar # type
 % 6,   2,  1,  0,  2,  2 # length
 [ "bigint",64, 0,  "", "%2",   "%2"]
 % .%2 # table_name
diff --git a/sql/test/prepare/Tests/sqlancer_prepare.stable.out.int128 
b/sql/test/prepare/Tests/sqlancer_prepare.stable.out.int128
--- a/sql/test/prepare/Tests/sqlancer_prepare.stable.out.int128
+++ b/sql/test/prepare/Tests/sqlancer_prepare.stable.out.int128
@@ -176,7 +176,7 @@
 [  ]
 % .prepare,.prepare,   .prepare,   .prepare,   .prepare,   
.prepare # table_name
 % type,digits, scale,  schema, table,  column # name
-% varchar, int,int,str,str,str # type
+% varchar, int,int,varchar,varchar,varchar # type
 % 6,   2,  1,  0,  2,  2 # length
 [ "bigint",64, 0,  "", "%2",   "%2"]
 % .%2 # table_name
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Sep2022 - merged with jan2022

2023-03-10 Thread Niels Nes
Changeset: f4ee56c86c96 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f4ee56c86c96
Modified Files:
monetdb5/mal/mal_session.c
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_scenario.c
Branch: Sep2022
Log Message:

merged with jan2022


diffs (206 lines):

diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -392,7 +392,7 @@ MSscheduleClient(str command, str challe
mnstr_printf(c->fdout, "!%s\n", s);
mnstr_flush(c->fdout, MNSTR_FLUSH_DATA);
GDKfree(s);
-   c->mode = FINISHCLIENT;
+   MCcloseClient(c);
}
if (!GDKgetenv_isyes(mal_enableflag) &&
(strncasecmp("sql", lang, 3) != 0 && uid != 0)) 
{
@@ -401,6 +401,7 @@ MSscheduleClient(str command, str challe
   "run mserver5 with --set 
%s=yes to change this.\n", mal_enableflag);
exit_streams(fin, fout);
GDKfree(command);
+   MCcloseClient(c);
return;
}
}
@@ -410,6 +411,7 @@ MSscheduleClient(str command, str challe
exit_streams(fin, fout);
freeException(msg);
GDKfree(command);
+   MCcloseClient(c);
return;
}
 
diff --git a/sql/backends/monet5/sql_gencode.c 
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -324,7 +324,7 @@ static int
node *n;
int i, q, v, res = 0, added_to_cache = 0,  *lret, *rret;
size_t len = 1024, nr;
-   char *lname, *buf;
+   char *lname = NULL, *buf = NULL, *mal_session_uuid, *err = NULL;
sql_rel *r = rel;
 
if (local_tbl == NULL) {
@@ -369,6 +369,7 @@ static int
if( c->curprg == NULL) {
GDKfree(lname);
sql_error(m, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+   c->curprg = backup;
return -1;
}
lname[0] = 'l';
@@ -377,9 +378,9 @@ static int
 
curInstr = relational_func_create_result(m, curBlk, curInstr, rel);
if( curInstr == NULL) {
-   GDKfree(lname);
sql_error(m, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
-   return -1;
+   res = -1;
+   goto cleanup;
}
 
/* ops */
@@ -394,9 +395,9 @@ static int
 
sprintf(nbuf, "A%d", i++);
if ((varid = newVariable(curBlk, nbuf, strlen(nbuf), 
type)) < 0) {
-   GDKfree(lname);
sql_error(m, 10, SQLSTATE(42000) "Internal 
error while compiling statement: variable id too long");
-   return -1;
+   res = -1;
+   goto cleanup;
}
curInstr = pushArgument(curBlk, curInstr, varid);
setVarType(curBlk, varid, type);
@@ -445,9 +446,9 @@ static int
p = pushArgument(curBlk, p, getArg(o,0));
 
if (!(buf = rel2str(m, rel))) {
-   GDKfree(lname);
sql_error(m, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
-   return -1;
+   res = -1;
+   goto cleanup;
}
o = newFcnCall(curBlk, remoteRef, putRef);
o = pushArgument(curBlk, o, q);
@@ -456,9 +457,9 @@ static int
free(buf);
 
if (!(buf = GDKmalloc(len))) {
-   GDKfree(lname);
sql_error(m, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
-   return -1;
+   res = -1;
+   goto cleanup;
}
 
buf[0] = 0;
@@ -479,10 +480,10 @@ static int
len = (len + nlen) * 2;
char *tmp = GDKrealloc(buf, len);
if (tmp == NULL) {
-   GDKfree(lname);
GDKfree(buf);
sql_error(m, 10, SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
-   return -1;
+   res = -1;
+   goto cleanup;
}
buf = tmp;
}
@@ -504,11 +505,11 @@ static int
str next = sql_subtype_string(m->ta, t);
 
if (!next) {
-   GDKfree(lname);
GDKfree(buf);
sa_reset(m->ta);
sql_error(m, 10, SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
-

MonetDB: Sep2022 - merged with jan2022

2023-03-10 Thread Niels Nes
Changeset: d9eb040fd643 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d9eb040fd643
Modified Files:
.bumpversion.cfg
.hgtags
MonetDB.spec
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/winsetup/setup.rc
cmake/monetdb-versions.cmake
debian/changelog
gdk/ChangeLog-Archive
gdk/gdk_bbp.c
gdk/libbat.rc
misc/packages/deb/changelog
misc/packages/rpm/changelog
monetdb5/ChangeLog-Archive
monetdb5/optimizer/opt_pushselect.c
monetdb5/tools/libmonetdb5.rc
sql/ChangeLog-Archive
sql/test/prepare/Tests/sqlancer_prepare.sql
sql/test/prepare/Tests/sqlancer_prepare.stable.out
sql/test/prepare/Tests/sqlancer_prepare.stable.out.int128
tools/merovingian/ChangeLog-Archive
Branch: Sep2022
Log Message:

merged with jan2022


diffs (77 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -787,6 +787,7 @@ 44e45c9a451f6afd933773094ec25723f713d3be
 44e45c9a451f6afd933773094ec25723f713d3be Jan2022_SP5_release
 43d4a717410d6f6692a16a878640fc7e0f248725 Jan2022_25
 43d4a717410d6f6692a16a878640fc7e0f248725 Jan2022_SP6_release
+700e099bfee85318da09aabcd78ec7ea6e8fb6ef Jul2021_29
 5c50a4071c86d1621e20a885a51cc36f2f23eec4 Sep2022_9
 41ca60d96bd0198ca5d74937630a442a5fbaf1cd Sep2022_11
 41ca60d96bd0198ca5d74937630a442a5fbaf1cd Sep2022_SP1_release
diff --git a/monetdb5/optimizer/opt_pushselect.c 
b/monetdb5/optimizer/opt_pushselect.c
--- a/monetdb5/optimizer/opt_pushselect.c
+++ b/monetdb5/optimizer/opt_pushselect.c
@@ -888,7 +888,11 @@ OPTpushselectImplementation(Client cntxt
getArg(u, 3) = getArg(q,2); /* update ids */
//getArg(u, 4) = getArg(s,0);
p = pushArgument(mb, u, getArg(s,0)); /* push 
at end */
+   /* make sure to resolve again */
+   u->token = ASSIGNsymbol;
u->typechk = TYPE_UNKNOWN;
+   u->fcn = NULL;
+   u->blk = NULL;
pushInstruction(mb,u);
oclean[i] = 1;
continue;
diff --git a/sql/test/prepare/Tests/sqlancer_prepare.sql 
b/sql/test/prepare/Tests/sqlancer_prepare.sql
--- a/sql/test/prepare/Tests/sqlancer_prepare.sql
+++ b/sql/test/prepare/Tests/sqlancer_prepare.sql
@@ -96,3 +96,11 @@ ROLLBACK;
 PREPARE SELECT 1 FROM (SELECT ?) x(x) CROSS JOIN LATERAL (SELECT 1 FROM 
((SELECT 1) INTERSECT (SELECT 2)) vx(vx) JOIN (SELECT 1) z(z) ON x.x) w(w); 
--error, Could not determine type for argument number 1
 
 PREPARE SELECT 2 FROM (SELECT DISTINCT 1) z(z) LEFT OUTER JOIN LATERAL (SELECT 
z.z, ? WHERE TRUE) a(a,b) ON TRUE; --error, push_up_project requires a type
+
+START TRANSACTION;
+create table deleteall (i integer, j integer);
+insert into deleteall (select a,a as b from generate_series(cast(1 as 
integer),1) as a(a));
+set optimizer='sequential_pipe';
+prepare select count(*) from deleteall where j in 
(2001,2007,2016,2028,2037,2047,2053,2059,2063,2067,2076,2087,2094,2099,2110,2115,2124,2135,2142,2147);
+EXEC **();
+ROLLBACK;
diff --git a/sql/test/prepare/Tests/sqlancer_prepare.stable.out 
b/sql/test/prepare/Tests/sqlancer_prepare.stable.out
--- a/sql/test/prepare/Tests/sqlancer_prepare.stable.out
+++ b/sql/test/prepare/Tests/sqlancer_prepare.stable.out
@@ -173,3 +173,14 @@
 % char # type
 % 1 # length
 [ "b"  ]
+[  ]
+% .prepare,.prepare,   .prepare,   .prepare,   .prepare,   
.prepare # table_name
+% type,digits, scale,  schema, table,  column # name
+% varchar, int,int,str,str,str # type
+% 6,   2,  1,  0,  2,  2 # length
+[ "bigint",64, 0,  "", "%2",   "%2"]
+% .%2 # table_name
+% %2 # name
+% bigint # type
+% 2 # length
+[ 20   ]
diff --git a/sql/test/prepare/Tests/sqlancer_prepare.stable.out.int128 
b/sql/test/prepare/Tests/sqlancer_prepare.stable.out.int128
--- a/sql/test/prepare/Tests/sqlancer_prepare.stable.out.int128
+++ b/sql/test/prepare/Tests/sqlancer_prepare.stable.out.int128
@@ -173,3 +173,14 @@
 % char # type
 % 1 # length
 [ "b"  ]
+[  ]
+% .prepare,.prepare,   .prepare,   .prepare,   .prepare,   
.prepare # table_name
+% type,digits, scale,  schema, table,  column # name
+% varchar, int,int,str,str,str # type
+% 6,   2,  1,  0,  2,  2 # length
+[ "bigint",64, 0,  "", "%2",   "%2"]
+% .%2 # table_name
+% %2 # name
+% bigint # type
+% 2 # length
+[ 20   ]
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Sep2022 - merged with Jan2022

2023-02-17 Thread Niels Nes
Changeset: aa7ef45d4f14 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/aa7ef45d4f14
Modified Files:
gdk/gdk_logger.c
testing/Mtest.py.in
Branch: Sep2022
Log Message:

merged with Jan2022


diffs (12 lines):

diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -2282,7 +2282,7 @@ log_create(int debug, const char *fn, co
 static ulng
 log_next_logfile(logger *lg, ulng ts)
 {
-   int m = (GDKdebug & FORCEMITOMASK)?1000:10;
+   int m = (GDKdebug & FORCEMITOMASK)?1000:100;
if (!lg->pending || !lg->pending->next)
return 0;
if (lg->pending != lg->current && lg->pending->last_ts <= ts) {
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Sep2022 - merged with jan2022

2023-02-15 Thread Niels Nes
Changeset: 8c84624028b0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8c84624028b0
Modified Files:
sql/common/sql_list.c
sql/include/sql_list.h
sql/storage/store.c
Branch: Sep2022
Log Message:

merged with jan2022


diffs (83 lines):

diff --git a/sql/common/sql_list.c b/sql/common/sql_list.c
--- a/sql/common/sql_list.c
+++ b/sql/common/sql_list.c
@@ -420,6 +420,23 @@ list_check_prop_all(list *l, prop_check_
return res;
 }
 
+void
+list_revert(list *l)
+{
+   node *c = NULL;
+
+   l->t = l->h;
+   for (node *o = l->h; o; ) {
+   node *nxt = o->next;
+
+   o->next = c;
+   c = o;
+
+   o = nxt;
+   }
+   l->h = c;
+}
+
 int
 list_traverse(list *l, traverse_func f, void *clientdata)
 {
diff --git a/sql/include/sql_list.h b/sql/include/sql_list.h
--- a/sql/include/sql_list.h
+++ b/sql/include/sql_list.h
@@ -55,7 +55,7 @@ extern node *list_remove_node(list *l, v
 extern void list_remove_data(list *l, void *gdata, void *data);
 extern void list_remove_list(list *l, void *gdata, list *data);
 extern list *list_move_data(list *l, list *d, void *data);
-
+extern void list_revert(list *l);
 
 extern int list_traverse(list *l, traverse_func f, void *clientdata);
 
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -3652,9 +3652,8 @@ sql_trans_rollback(sql_trans *tr, bool c
}
if (!list_empty(tr->changes)) {
/* revert the change list */
-   list *nl = SA_LIST(tr->sa, (fdestroy) NULL);
-   for(node *n=tr->changes->h; n; n = n->next)
-   list_prepend(nl, n->data);
+   list *nl = tr->changes;
+   list_revert(nl);
 
/* rollback */
if (!commit_lock)
@@ -3676,6 +3675,7 @@ sql_trans_rollback(sql_trans *tr, bool c
if (!c->cleanup) {
_DELETE(c);
} else if (c->cleanup && !c->cleanup(store, c, oldest)) 
{
+   /* TODO change too node stealing (no allocs 
here) */
store->changes = sa_list_append(tr->sa, 
store->changes, c);
} else
_DELETE(c);
@@ -3683,7 +3683,6 @@ sql_trans_rollback(sql_trans *tr, bool c
store_unlock(store);
if (!commit_lock)
MT_lock_unset(&store->commit);
-   list_destroy(nl);
list_destroy(tr->changes);
tr->changes = NULL;
tr->logchanges = 0;
@@ -3691,10 +3690,8 @@ sql_trans_rollback(sql_trans *tr, bool c
if (!commit_lock)
MT_lock_set(&store->commit);
store_lock(store);
-   if (ATOMIC_GET(&store->nr_active) == 1) { /* still just me */
-   ulng oldest = store_timestamp(store);
-   store_pending_changes(store, oldest);
-   }
+   ulng oldest = store_oldest(store);
+   store_pending_changes(store, oldest);
store_unlock(store);
if (!commit_lock)
MT_lock_unset(&store->commit);
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Sep2022 - merged with jan2022

2023-02-15 Thread Niels Nes
Changeset: 1d07c616784e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/1d07c616784e
Modified Files:
gdk/gdk_logger.c
gdk/gdk_logger_internals.h
sql/include/sql_catalog.h
sql/storage/bat/bat_storage.c
sql/storage/store.c
Branch: Sep2022
Log Message:

merged with jan2022


diffs (224 lines):

diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -666,8 +666,10 @@ la_bat_updates(logger *lg, logaction *la
 
if (bid < 0)
return GDK_FAIL;
-   if (bid == 0)
-   return GDK_SUCCEED; /* ignore bats no longer in the catalog */
+   if (!bid) {
+   GDKerror("la_bat_updates failed to find bid for object %d\n", 
la->cid);
+   return GDK_FAIL;
+   }
 
if (!lg->flushing) {
b = BATdescriptor(bid);
@@ -760,6 +762,10 @@ la_bat_destroy(logger *lg, logaction *la
 
if (bid < 0)
return GDK_FAIL;
+   if (!bid) {
+   GDKerror("la_bat_destroy failed to find bid for object %d\n", 
la->cid);
+   return GDK_FAIL;
+   }
if (bid && log_del_bat(lg, bid) != GDK_SUCCEED)
return GDK_FAIL;
return GDK_SUCCEED;
@@ -1041,6 +1047,7 @@ log_open_output(logger *lg)
}
 
lg->end = 0;
+   lg->drops = 0;
if (!LOG_DISABLED(lg)) {
char id[32];
char *filename;
@@ -1669,8 +1676,6 @@ bm_subcommit(logger *lg)
sizes[i] = BATcount(dcatalog);
n[i++] = dcatalog->batCacheid;
 
-   if (cleanup < (lg->cnt/2))
-   cleanup = 0;
if (cleanup && (rcnt=cleanup_and_swap(lg, r, bids, lids, cnts, 
catalog_bid, catalog_id, dcatalog, cleanup)) < 0) {
GDKfree(n);
GDKfree(r);
@@ -1689,7 +1694,7 @@ bm_subcommit(logger *lg)
sizes[i] = BATcount(lg->seqs_id);
n[i++] = lg->seqs_val->batCacheid;
}
-   if (!cleanup && lg->seqs_id && BATcount(lg->dseqs) > 
(BATcount(lg->seqs_id)/2)) {
+   if (!cleanup && lg->seqs_id && BATcount(lg->dseqs) > 
(BATcount(lg->seqs_id)/2) && BATcount(lg->dseqs) > 10 ) {
BAT *tids, *ids, *vals;
 
tids = bm_tids(lg->seqs_id, lg->dseqs);
@@ -2151,6 +2156,8 @@ log_new(int debug, const char *fn, const
.funcdata = funcdata,
 
.id = 0,
+   .drops = 0,
+   .end = 0,
.saved_id = getBBPlogno(),  /* get saved log numer 
from bbp */
.saved_tid = (int)getBBPtransid(),  /* get saved 
transaction id from bbp */
};
@@ -2304,21 +2311,18 @@ log_cleanup_range(logger *lg, ulng id)
 gdk_return
 log_activate(logger *lg)
 {
+   gdk_return res = GDK_SUCCEED;
MT_lock_set(&lg->rotation_lock);
log_lock(lg);
-   if (lg->end > 0 && lg->saved_id+1 == lg->id) {
+   if (lg->drops > 10 && lg->end > 0 && lg->saved_id+1 == lg->id) {
lg->id++;
log_close_output(lg);
/* start new file */
-   if (log_open_output(lg) != GDK_SUCCEED) {
-   log_unlock(lg);
-   MT_lock_unset(&lg->rotation_lock);
-   return GDK_FAIL;
-   }
+   res = log_open_output(lg);
}
log_unlock(lg);
MT_lock_unset(&lg->rotation_lock);
-   return GDK_SUCCEED;
+   return res;
 }
 
 gdk_return
@@ -2659,6 +2663,11 @@ log_bat_transient(logger *lg, log_id id)
log_unlock(lg);
return GDK_FAIL;
}
+   if (!bid) {
+   GDKerror("log_bat_transient failed to find bid for object 
%d\n", id);
+   log_unlock(lg);
+   return GDK_FAIL;
+   }
l.flag = LOG_DESTROY;
l.id = id;
 
@@ -2676,7 +2685,9 @@ log_bat_transient(logger *lg, log_id id)
bid);
BAT *b = BBPquickdesc(bid);
assert(b);
-   lg->end += BATcount(b);
+   BUN cnt = BATcount(b);
+   lg->end += cnt;
+   lg->drops += cnt;
gdk_return r = log_del_bat(lg, bid);
log_unlock(lg);
if (r != GDK_SUCCEED)
@@ -2828,7 +2839,7 @@ new_logfile(logger *lg, stream* output_l
const lng p = (lng) getfilepos(getFile(lg->output_log));
if (p == -1)
return GDK_FAIL;
-   if (( p > log_large || (lg->end*1024) > log_large )) {
+   if (lg->drops > 10 || p > log_large || (lg->end*1024) > log_large) {
log_lock(lg);
if (ATOMIC_GET(&lg->refcount) == 1) {
lg->id++;
@@ -2927,6 +2938,10 @@ log_tdone(logger *lg, ulng commit_ts)
if (lg->current) {
lg->current->last_ts = commit_ts;
}
+   stream* output_log = lg->output_log;
+   ulng id = lg->id;
+   if (!LOG_DISABLED(lg) && new_logfile(lg, output_log, id) != GDK_

MonetDB: Sep2022 - merged with Jan2022

2023-02-09 Thread Niels Nes
Changeset: dba9b15a8bf0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/dba9b15a8bf0
Modified Files:
gdk/gdk_logger.c
Branch: Sep2022
Log Message:

merged with Jan2022


diffs (121 lines):

diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -2273,25 +2273,30 @@ log_create(int debug, const char *fn, co
 static ulng
 log_next_logfile(logger *lg, ulng ts)
 {
+   int m = (GDKdebug & FORCEMITOMASK)?1000:10;
if (!lg->pending || !lg->pending->next)
return 0;
-   if (lg->pending->last_ts <= ts)
-   return lg->pending->id;
+   if (lg->pending != lg->current && lg->pending->last_ts <= ts) {
+   logged_range *p = lg->pending;
+   for(int i = 1; inext && p->next != lg->current && 
p->last_ts <= ts; i++)
+   p = p->next;
+   return p->id;
+   }
return 0;
 }
 
 static void
-log_cleanup_range(logger *lg)
+log_cleanup_range(logger *lg, ulng id)
 {
-   if (lg->pending) {
+   log_lock(lg);
+   while (lg->pending && lg->pending->id <= id) {
logged_range *p;
-   log_lock(lg);
p = lg->pending;
if (p)
lg->pending = p->next;
-   log_unlock(lg);
GDKfree(p);
}
+   log_unlock(lg);
 }
 
 gdk_return
@@ -2317,12 +2322,12 @@ log_activate(logger *lg)
 gdk_return
 log_flush(logger *lg, ulng ts)
 {
-   ulng lid = log_next_logfile(lg, ts);
+   ulng lid = log_next_logfile(lg, ts), olid = lg->saved_id;
if (LOG_DISABLED(lg)) {
lg->saved_id = lid;
lg->saved_tid = lg->tid;
if (lid)
-   log_cleanup_range(lg);
+   log_cleanup_range(lg, lg->saved_id);
if (log_commit(lg) != GDK_SUCCEED)
TRC_ERROR(GDK, "failed to commit");
return GDK_SUCCEED;
@@ -2335,13 +2340,14 @@ log_flush(logger *lg, ulng ts)
if (lg->saved_id+1 >= lgid) /* logger should first release the file */
return GDK_SUCCEED;
log_return res = LOG_OK;
-   while(lg->saved_id < lid && res == LOG_OK) {
-   if (lg->saved_id >= lgid)
-   break;
+   ulng cid = olid;
+   if (lid > lgid)
+   lid = lgid;
+   while(cid < lid && res == LOG_OK) {
if (!lg->input_log) {
char *filename;
char id[32];
-   if (snprintf(id, sizeof(id), LLFMT, lg->saved_id+1) >= 
(int) sizeof(id)) {
+   if (snprintf(id, sizeof(id), LLFMT, cid+1) >= (int) 
sizeof(id)) {
TRC_CRITICAL(GDK, "log_id filename is too 
large\n");
return GDK_FAIL;
}
@@ -2370,22 +2376,25 @@ log_flush(logger *lg, ulng ts)
log_close_input(lg);
res = LOG_OK;
}
+   cid++;
+   }
+   if (lid > olid && res == LOG_OK) {
+   lg->saved_id = lid;
+   if (log_commit(lg) != GDK_SUCCEED) {
+   TRC_ERROR(GDK, "failed to commit");
+   res = LOG_ERR;
+   lg->saved_id = olid; /* reset !! */
+   }
if (res != LOG_ERR) {
-   lg->saved_id++;
-   if (log_commit(lg) != GDK_SUCCEED) {
-   TRC_ERROR(GDK, "failed to commit");
-   res = LOG_ERR;
-   }
-
-   /* remove old log file */
-   if (res != LOG_ERR) {
-   if (log_cleanup(lg, lg->saved_id) != 
GDK_SUCCEED)
-   res = LOG_ERR;
+   while(olid <= lid) {
+   /* Try to cleanup, remove old log file, 
continue on failure! */
+   (void)log_cleanup(lg, olid);
+   olid++;
}
}
+   if (res == LOG_OK)
+   log_cleanup_range(lg, lg->saved_id);
}
-   if (lid && res == LOG_OK)
-   log_cleanup_range(lg);
return res == LOG_ERR ? GDK_FAIL : GDK_SUCCEED;
 }
 
@@ -3163,7 +3172,7 @@ log_tstart(logger *lg, bool flushnow, ul
}
lg->request_rotation = false;
if (flushnow) {
-   while (lg->saved_id+1 < lg->id) {
+   if (lg->saved_id+1 < lg->id) {
log_unlock(lg);
MT_lock_unset(&lg->rotation_lock);
if (log_flush(lg, (1ULL<<63)) != GDK_SUCCEED)
___
checkin-list mailing list --

MonetDB: Sep2022 - merged with jan2022

2022-11-05 Thread Niels Nes
Changeset: e8d69499a547 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e8d69499a547
Modified Files:
sql/server/rel_exp.c
sql/test/BugTracker-2022/Tests/All
Branch: Sep2022
Log Message:

merged with jan2022


diffs (37 lines):

diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -1397,7 +1397,7 @@ exp_match_exp( sql_exp *e1, sql_exp *e2)
case e_atom:
if (e1->l && e2->l && !atom_cmp(e1->l, e2->l))
return 1;
-   if (e1->f && e2->f && exp_match_list(e1->f, e2->f))
+   if (e1->f && e2->f && exps_equal(e1->f, e2->f))
return 1;
if (e1->r && e2->r && e1->flag == e2->flag && 
!subtype_cmp(&e1->tpe, &e2->tpe)) {
sql_var_name *v1 = (sql_var_name*) e1->r, *v2 = 
(sql_var_name*) e2->r;
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
@@ -17,3 +17,4 @@ temp-table-create-index-drop-issue
 dependencies.Bug-7328
 multi-column-filters-k2-unique.Bug-7303
 multi-column-filters-k2-is-1.Bug-7303
+values.Bug-7336
diff --git a/sql/test/BugTracker-2022/Tests/values.Bug-7336.test 
b/sql/test/BugTracker-2022/Tests/values.Bug-7336.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2022/Tests/values.Bug-7336.test
@@ -0,0 +1,12 @@
+query IIR nosort
+select a,b,c
+from (values (10, 20, 0.5), 
+ (20, 10, 0.5)
+) as (a,b,c)
+
+10
+20
+0.500
+20
+10
+0.500
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Sep2022 - merged with Jan2022

2022-11-02 Thread Niels Nes
Changeset: 378b8d8512fb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/378b8d8512fb
Modified Files:
sql/server/rel_optimize_sel.c
sql/server/rel_optimizer.c
Branch: Sep2022
Log Message:

merged with Jan2022


diffs (37 lines):

diff --git a/sql/server/rel_optimize_sel.c b/sql/server/rel_optimize_sel.c
--- a/sql/server/rel_optimize_sel.c
+++ b/sql/server/rel_optimize_sel.c
@@ -864,7 +864,7 @@ exps_merge_select_rse( mvc *sql, list *l
sql->errstr[0] = '\0';
continue;
}
-   fnd = exp_compare2(sql->sa, le->l, mine, maxe, 
le->flag, 0);
+   fnd = exp_compare2(sql->sa, exp_copy(sql, 
le->l), mine, maxe, le->flag, 0);
lmerged = false;
}
if (fnd) {
diff --git a/sql/test/bugs/Tests/All b/sql/test/bugs/Tests/All
--- a/sql/test/bugs/Tests/All
+++ b/sql/test/bugs/Tests/All
@@ -114,3 +114,4 @@ in
 rtrim_bug
 savepoint-release
 procedure-recompile
+rse_bug
diff --git a/sql/test/bugs/Tests/rse_bug.test b/sql/test/bugs/Tests/rse_bug.test
new file mode 100644
--- /dev/null
+++ b/sql/test/bugs/Tests/rse_bug.test
@@ -0,0 +1,12 @@
+statement ok
+CREATE TABLE size_test (size_field INTEGER)
+
+query I rowsort
+SELECT COUNT(*) from size_test
+WHERE ((size_field / 1024.0) > 887.443 AND (size_field / 1024.0) < 887.445)
+OR((size_field / 1024.0) > 311.344 AND (size_field / 1024.0) < 311.346)
+
+0
+
+statement ok
+drop TABLE size_test;
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org