MonetDB: properties - Approved output

2022-04-25 Thread Pedro Ferreira
Changeset: fc394c11ede0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/fc394c11ede0
Modified Files:
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
Branch: properties
Log Message:

Approved output


diffs (truncated from 603 to 300 lines):

diff --git a/sql/test/emptydb/Tests/check.stable.out 
b/sql/test/emptydb/Tests/check.stable.out
--- a/sql/test/emptydb/Tests/check.stable.out
+++ b/sql/test/emptydb/Tests/check.stable.out
@@ -4931,16 +4931,16 @@ select 'null in value_partitions.value',
 % %2,  %1, id # name
 % char,bigint, int # type
 % 21,  1,  1 # length
-% .%11,.%10,   .tables # table_name
-% %11, %10,id # name
+% .%12,sys.%10,sys.tables # table_name
+% %12, %10,id # name
 % char,bigint, int # type
 % 20,  1,  1 # length
 % .%2, sys.%1, sys._columns # table_name
 % %2,  %1, id # name
 % char,bigint, int # type
 % 22,  1,  1 # length
-% .%7, .%6,.columns # table_name
-% %7,  %6, id # name
+% .%10,sys.%6, sys.columns # table_name
+% %10, %6, id # name
 % char,bigint, int # type
 % 21,  1,  1 # length
 % .%2, sys.%1, sys.functions # table_name
@@ -5071,8 +5071,8 @@ select 'null in value_partitions.value',
 % %2,  %1, id # name
 % char,bigint, int # type
 % 22,  1,  1 # length
-% .%171,   .%170,  .ids # table_name
-% %171,%170,   id # name
+% .%176,   .%170,  .ids # table_name
+% %176,%170,   id # name
 % char,bigint, int # type
 % 17,  1,  1 # length
 % .%105,   .%104,  .var_values # table_name
@@ -5107,32 +5107,32 @@ select 'null in value_partitions.value',
 % %2,  %1, schema_id,  name # name
 % char,bigint, int,varchar # type
 % 21,  1,  1,  0 # length
-% .%11,.%10,   .tables,.tables # table_name
-% %11, %10,schema_id,  name # name
+% .%12,sys.%10,sys.tables, sys.tables # table_name
+% %12, %10,schema_id,  name # name
 % char,bigint, int,varchar # type
 % 20,  1,  1,  0 # length
 % .%2, sys.%1, sys._columns,   sys._columns # table_name
 % %2,  %1, table_id,   name # name
 % char,bigint, int,varchar # type
 % 22,  1,  1,  0 # length
-% .%7, .%6,.columns,   .columns # table_name
-% %7,  %6, table_id,   name # name
+% .%10,sys.%6, sys.columns,sys.columns # table_name
+% %10, %6, table_id,   name # name
 % char,bigint, int,varchar # type
 % 21,  1,  1,  0 # length
 % .%2, sys.%1, sys._columns,   sys._columns # table_name
 % %2,  %1, table_id,   number # name
 % char,bigint, int,int # type
 % 22,  1,  1,  1 # length
-% .%7, .%6,.columns,   .columns # table_name
-% %7,  %6, table_id,   number # name
+% .%10,sys.%6, sys.columns,sys.columns # table_name
+% %10, %6, table_id,   number # name
 % char,bigint, int,int # type
 % 21,  1,  1,  1 # length
 % .%21,.%20,   .t # table_name
 % %21, %20,id # name
 % char,bigint, int # type
 % 161, 1,  1 # length
-% .%35,.%34,   .t # table_name
-% %35, %34,id # name
+% .%37,.%34,   .t # table_name
+% %37, %34,id # name
 % char,bigint, int # type
 % 159, 1,  1 # length
 % .%2, sys.%1, sys.f,  sys.f,  sys.f,  sys.f,  sys.f,  sys.f,  sys.f,  sys.f,  
sys.f,  sys.a # table_name
@@ -5231,7 +5231,7 @@ select 'null in value_partitions.value',
 % %5,  schema_id,  id, name,   schema_id,  query,  type,   system, 
commit_action,  access # name
 % char,int,int,varchar,int,varchar,
smallint,   boolean,smallint,   smallint # type
 % 38,  1,  1,  0,  1,  0,  1,  5,  1,  1 # 
length
-% .%14,.tables,.tables,.tables,.tables,
.tables,.tables,.tables,.tables,.tables,
.tables # table_name
+% .%14,sys.tables, sys.tables, sys.tables, sys.tables, 
sys.tables, .tables,sys.tables, sys.tables, sys.tables, 
.tables # table_name
 % %14, schema_id,  id, name,   schema_id,  query,  type,   system, 
commit_action,  access, temporary # name
 % char,int,int,varchar,int,varchar,
smallint,   boolean,smallint,   smallint,   tinyint # type
 % 37,  1,  1,  0,  1,  0,  1,  5,  1,  1,  
1 # length
@@ -5239,7 +5239,7 @@ select 'null in value_partitions.value',
 % %5,  type,   id, name,   schema_id,  query,  type,   system, 
commit_action,  access # name
 % char,smallint,   int,varchar,int,varchar,
smallint,   boolean,smallint,   smalli

MonetDB: properties - Tunning cardinality estimation for distinc...

2022-04-25 Thread Pedro Ferreira
Changeset: c47cfa18f023 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c47cfa18f023
Modified Files:
sql/server/rel_statistics.c
Branch: properties
Log Message:

Tunning cardinality estimation for distinct projections and single joins


diffs (155 lines):

diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -604,12 +604,36 @@ trivial_project_exp_card(sql_exp *e)
return e->type == e_atom && e->f ? (BUN) list_length(e->f) : 1;
 }
 
+static BUN
+rel_calc_nuniques(sql_rel *rel, sql_rel *l, list *exps)
+{
+   BUN nuniques = 0;
+
+   /* compute the highest number of unique values */
+   if (!list_empty(exps)) {
+   for (node *n = exps->h ; n && nuniques != BUN_NONE ; n = 
n->next) {
+   sql_exp *e = n->data;
+   sql_rel *bt = NULL;
+   prop *p = NULL;
+
+   if (e->type == e_column && is_unique(e) &&
+   name_find_column(rel, e->l, e->r, -1, &bt) && 
bt && (p = find_prop(bt->p, PROP_COUNT))) {
+   nuniques = MAX(nuniques, p->value.lval);
+   } else if ((p = find_prop(e->p, PROP_NUNIQUES))) {
+   nuniques = MAX(nuniques, (BUN) p->value.dval);
+   } else {
+   nuniques = BUN_NONE;
+   }
+   }
+   }
+   return nuniques != BUN_NONE ? nuniques : get_rel_count(l);
+}
+
 static sql_rel *
 rel_get_statistics_(visitor *v, sql_rel *rel)
 {
/* Don't prune updates as pruning will possibly result in removing the 
joins which therefore cannot be used for constraint checking */
uint8_t has_special_modify = *(uint8_t*) v->data;
-   prop *p;
bool can_be_pruned = !has_special_modify && v->storage_based_opt;
 
/* Don't look at the same relation twice */
@@ -635,34 +659,33 @@ rel_get_statistics_(visitor *v, sql_rel 
case op_except: {
bool empty_cross = false;
int i = 0;
-   sql_rel *l = rel->l, *r = rel->r;
+   sql_rel *l = rel->l, *pl = rel->l, *r = rel->r, *pr = rel->r;
 
-   while (is_sample(l->op) || is_topn(l->op)) /* skip topN and 
sample relations in the middle */
-   l = l->l;
-   while (is_sample(r->op) || is_topn(r->op))
-   r = r->l;
+   while (is_sample(pl->op) || is_topn(pl->op)) /* skip topN and 
sample relations in the middle */
+   pl = pl->l;
+   while (is_sample(r->op) || is_topn(pr->op))
+   pr = pr->l;
/* if it's not a projection, then project and propagate 
statistics */
-   if (!is_project(l->op) && !is_base(l->op)) {
-   l = rel_project(v->sql->sa, l, rel_projections(v->sql, 
l, NULL, 0, 1));
-   set_count_prop(v->sql->sa, l, get_rel_count(l->l));
-   l->exps = exps_exp_visitor_bottomup(v, l, l->exps, 0, 
&rel_propagate_statistics, false);
+   if (!is_project(pl->op) && !is_base(l->op)) {
+   pl = rel_project(v->sql->sa, pl, 
rel_projections(v->sql, pl, NULL, 0, 1));
+   set_count_prop(v->sql->sa, pl, get_rel_count(pl->l));
+   pl->exps = exps_exp_visitor_bottomup(v, pl, pl->exps, 
0, &rel_propagate_statistics, false);
}
-   if (!is_project(r->op) && !is_base(r->op)) {
-   r = rel_project(v->sql->sa, r, rel_projections(v->sql, 
r, NULL, 0, 1));
-   set_count_prop(v->sql->sa, r, get_rel_count(r->l));
-   r->exps = exps_exp_visitor_bottomup(v, r, r->exps, 0, 
&rel_propagate_statistics, false);
+   if (!is_project(pr->op) && !is_base(pr->op)) {
+   pr = rel_project(v->sql->sa, pr, 
rel_projections(v->sql, pr, NULL, 0, 1));
+   set_count_prop(v->sql->sa, pr, get_rel_count(pr->l));
+   pr->exps = exps_exp_visitor_bottomup(v, pr, pr->exps, 
0, &rel_propagate_statistics, false);
}
 
for (node *n = rel->exps->h ; n ; n = n->next) {
-   empty_cross |= rel_setop_get_statistics(v->sql, rel, 
l->exps, r->exps, n->data, i);
+   empty_cross |= rel_setop_get_statistics(v->sql, rel, 
pl->exps, pr->exps, n->data, i);
i++;
}
 
-   l = rel->l;
-   r = rel->r;
/* propagate row count */
if (is_union(rel->op)) {
-   BUN lv = get_rel_count(l), rv = get_rel_count(r);
+   BUN lv = need_distinct(rel) ? rel_calc_nuniques(rel, 
pl, pl->exps) : get_rel_count(pl),
+   

MonetDB: properties - Defensive lines

2022-04-25 Thread Pedro Ferreira
Changeset: 076f4226e181 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/076f4226e181
Modified Files:
sql/server/rel_statistics.c
Branch: properties
Log Message:

Defensive lines


diffs (27 lines):

diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -607,10 +607,9 @@ trivial_project_exp_card(sql_exp *e)
 static BUN
 rel_calc_nuniques(sql_rel *rel, sql_rel *l, list *exps)
 {
-   BUN nuniques = 0;
-
-   /* compute the highest number of unique values */
if (!list_empty(exps)) {
+   BUN nuniques = 0;
+   /* compute the highest number of unique values */
for (node *n = exps->h ; n && nuniques != BUN_NONE ; n = 
n->next) {
sql_exp *e = n->data;
sql_rel *bt = NULL;
@@ -625,8 +624,9 @@ rel_calc_nuniques(sql_rel *rel, sql_rel 
nuniques = BUN_NONE;
}
}
+   return nuniques != BUN_NONE ? nuniques : get_rel_count(l);
}
-   return nuniques != BUN_NONE ? nuniques : get_rel_count(l);
+   return get_rel_count(l);
 }
 
 static sql_rel *
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - Count active rows only

2022-04-25 Thread Pedro Ferreira
Changeset: 6f1b2a03dad5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6f1b2a03dad5
Modified Files:
sql/server/rel_optimizer.c
Branch: default
Log Message:

Count active rows only


diffs (12 lines):

diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -89,7 +89,7 @@ merge_table_prune_and_unionize(visitor *
return sql_error(v->sql, 02, SQLSTATE(42000) "The %s 
'%s.%s' should have at least one table associated",
 
TABLE_TYPE_DESCRIPTION(pt->type, pt->properties), pt->s->base.name, 
pt->base.name);
/* Do not include empty partitions */
-   if (isTable(pt) && pt->access == TABLE_READONLY && 
!store->storage_api.count_col(v->sql->session->tr, 
ol_first_node(pt->columns)->data, 0))
+   if (isTable(pt) && pt->access == TABLE_READONLY && 
!store->storage_api.count_col(v->sql->session->tr, 
ol_first_node(pt->columns)->data, 10)) /* count active rows only */
continue;
 
if (!table_privs(v->sql, pt, PRIV_SELECT)) /* Test for 
privileges */
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: properties - Count active rows only

2022-04-25 Thread Pedro Ferreira
Changeset: c77536b5aca6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c77536b5aca6
Modified Files:
sql/server/rel_statistics.c
Branch: properties
Log Message:

Count active rows only


diffs (14 lines):

diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -651,8 +651,8 @@ rel_get_statistics_(visitor *v, sql_rel 
rel_basetable_column_get_statistics(v->sql, 
rel, n->data);
}
/* Set table row count. TODO? look for remote/replica tables. 
Don't look at storage for declared tables, because it won't be cleaned */
-   if (isTable(t) && t->s && !isDeclaredTable(t))
-   set_count_prop(v->sql->sa, rel, 
(BUN)store->storage_api.count_col(v->sql->session->tr, 
ol_first_node(t->columns)->data, 0));
+   if (isTable(t) && t->s && !isDeclaredTable(t)) /* count active 
rows only */
+   set_count_prop(v->sql->sa, rel, 
(BUN)store->storage_api.count_col(v->sql->session->tr, 
ol_first_node(t->columns)->data, 10));
} break;
case op_union:
case op_inter:
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Jul2021 - Changelog blurb.

2022-04-25 Thread Sjoerd Mullender
Changeset: d739b2c3a14c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d739b2c3a14c
Modified Files:
sql/ChangeLog.Jul2021
Branch: Jul2021
Log Message:

Changelog blurb.


diffs (13 lines):

diff --git a/sql/ChangeLog.Jul2021 b/sql/ChangeLog.Jul2021
--- a/sql/ChangeLog.Jul2021
+++ b/sql/ChangeLog.Jul2021
@@ -1,3 +1,9 @@
 # ChangeLog file for sql
 # This file is updated with Maddlog
 
+* Mon Apr 25 2022 Sjoerd Mullender 
+- GLOBAL TEMPORARY tables are now treated like LOCAL TEMPORARY tables
+  as far as the table content is concerned.  The schema information
+  stays global.  This fixes an issue with concurrent access and cleanup
+  of stale data.
+
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Jan2022 - Merge with Jul2021 branch.

2022-04-25 Thread Sjoerd Mullender
Changeset: 4292a507e8b7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4292a507e8b7
Modified Files:
sql/ChangeLog.Jan2022
Branch: Jan2022
Log Message:

Merge with Jul2021 branch.


diffs (16 lines):

diff --git a/sql/ChangeLog.Jan2022 b/sql/ChangeLog.Jan2022
--- a/sql/ChangeLog.Jan2022
+++ b/sql/ChangeLog.Jan2022
@@ -1,6 +1,12 @@
 # ChangeLog file for sql
 # This file is updated with Maddlog
 
+* Mon Apr 25 2022 Sjoerd Mullender 
+- GLOBAL TEMPORARY tables are now treated like LOCAL TEMPORARY tables
+  as far as the table content is concerned.  The schema information
+  stays global.  This fixes an issue with concurrent access and cleanup
+  of stale data.
+
 * Thu Apr 14 2022 Sjoerd Mullender 
 - The NO CONSTRAINT option of the COPY INTO query has been removed.
   It didn't work and it was never a good idea anyway.
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: properties - Propagate number of uniques over joins (my...

2022-04-25 Thread Pedro Ferreira
Changeset: 12daba096f46 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/12daba096f46
Modified Files:
sql/server/rel_statistics.c
Branch: properties
Log Message:

Propagate number of uniques over joins (my mistake)


diffs (19 lines):

diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -155,13 +155,8 @@ rel_propagate_column_ref_statistics(mvc 
set_has_nil(e);
if (!is_outerjoin(rel->op) && found_without_semantics) 
/* at an outer join, null values pass */
set_has_no_nil(e);
-   if (is_join(rel->op)) {
-   prop *est;
-   if (is_unique(e) && !still_unique)
-   set_not_unique(e);
-   if ((est = find_prop(e->p, PROP_NUNIQUES))) /* 
remove unique estimation after a join */
-   e->p = prop_remove(e->p, est);
-   }
+   if (is_join(rel->op) && is_unique(e) && !still_unique)
+   set_not_unique(e);
return e;
}
case op_table:
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Jan2022 - Make sure we get the correct day and month na...

2022-04-25 Thread Sjoerd Mullender
Changeset: 2bddce9d7b62 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2bddce9d7b62
Modified Files:
buildtools/conf/Maddlog
Branch: Jan2022
Log Message:

Make sure we get the correct day and month name abbreviations.


diffs (13 lines):

diff --git a/buildtools/conf/Maddlog b/buildtools/conf/Maddlog
--- a/buildtools/conf/Maddlog
+++ b/buildtools/conf/Maddlog
@@ -189,6 +189,9 @@ fi
 
 file=ChangeLog.$RANDOM
 
+# make sure we get the correct day and month names
+export LC_ALL=en_US.utf-8
+
 case "$CL" in
 */*)
 cd "${CL%/*}"
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - We need English day and month name abbreviati...

2022-04-25 Thread Sjoerd Mullender
Changeset: af7ae2102bee for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/af7ae2102bee
Modified Files:
sql/ChangeLog
Branch: default
Log Message:

We need English day and month name abbreviations.


diffs (12 lines):

diff --git a/sql/ChangeLog b/sql/ChangeLog
--- a/sql/ChangeLog
+++ b/sql/ChangeLog
@@ -1,7 +1,7 @@
 # ChangeLog file for sql
 # This file is updated with Maddlog
 
-* do apr 21 2022 Nuno Faria 
+* Thu Apr 21 2022 Nuno Faria 
 - Added the UNLOGGED TABLE feature.
 
 * Fri Feb  4 2022 Sjoerd Mullender 
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Jul2021 - Pre-release version number update.

2022-04-25 Thread Sjoerd Mullender
Changeset: 015a25b68cb2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/015a25b68cb2
Modified Files:
.bumpversion.cfg
MonetDB.spec
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/winsetup/setup.rc
cmake/monetdb-versions.cmake
gdk/libbat.rc
monetdb5/tools/libmonetdb5.rc
Branch: Jul2021
Log Message:

Pre-release version number update.


diffs (189 lines):

diff --git a/.bumpversion.cfg b/.bumpversion.cfg
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 11.41.22
+current_version = 11.41.23
 commit = False
 tag = False
 
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -1,5 +1,5 @@
 %global name MonetDB
-%global version 11.41.22
+%global version 11.41.23
 %{!?buildno: %global buildno %(date +%Y%m%d)}
 
 # Use bcond_with to add a --with option; i.e., "without" is default.
diff --git a/clients/mapilib/mapi.rc b/clients/mapilib/mapi.rc
--- a/clients/mapilib/mapi.rc
+++ b/clients/mapilib/mapi.rc
@@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_U
 #define sversion(major,minor,patch)#major "." #minor "." #patch "\0"
 
 1 VERSIONINFO
-  FILEVERSION version(11,41,22)
-  PRODUCTVERSION version(11,41,22)
+  FILEVERSION version(11,41,23)
+  PRODUCTVERSION version(11,41,23)
   FILEFLAGSMASK 0x3fL
   FILEFLAGS 0
   FILEOS VOS_NT_WINDOWS32
@@ -21,14 +21,14 @@ BEGIN
   VALUE "Comments", "\0"
   VALUE "CompanyName", "MonetDB B.V.\0"
   VALUE "FileDescription", "MonetDB Application Interface DLL\0"
-  VALUE "FileVersion", sversion(11,41,22)
+  VALUE "FileVersion", sversion(11,41,23)
   VALUE "InternalName", "Mapi\0"
   VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2021\0"
   VALUE "LegalTrademarks", "\0"
   VALUE "OriginalFilename", "Mapi.dll\0"
   VALUE "PrivateBuild", "\0"
   VALUE "ProductName", "MonetDB Client Libraries\0"
-  VALUE "ProductVersion", sversion(11,41,22)
+  VALUE "ProductVersion", sversion(11,41,23)
   VALUE "SpecialBuild", "\0"
 END
   END
diff --git a/clients/odbc/driver/driver.rc b/clients/odbc/driver/driver.rc
--- a/clients/odbc/driver/driver.rc
+++ b/clients/odbc/driver/driver.rc
@@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_U
 #define sversion(major,minor,patch)#major "." #minor "." #patch "\0"
 
 1 VERSIONINFO
-  FILEVERSION version(11,41,22)
-  PRODUCTVERSION version(11,41,22)
+  FILEVERSION version(11,41,23)
+  PRODUCTVERSION version(11,41,23)
   FILEFLAGSMASK 0x3fL
   FILEFLAGS 0
   FILEOS VOS_NT_WINDOWS32
@@ -21,14 +21,14 @@ BEGIN
   VALUE "Comments", "\0"
   VALUE "CompanyName", "MonetDB B.V.\0"
   VALUE "FileDescription", "MonetDB ODBC Driver DLL\0"
-  VALUE "FileVersion", sversion(11,41,22)
+  VALUE "FileVersion", sversion(11,41,23)
   VALUE "InternalName", "MonetODBC\0"
   VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2021\0"
   VALUE "LegalTrademarks", "\0"
   VALUE "OriginalFilename", "MonetODBC.dll\0"
   VALUE "PrivateBuild", "\0"
   VALUE "ProductName", "MonetDB SQL Server\0"
-  VALUE "ProductVersion", sversion(11,41,22)
+  VALUE "ProductVersion", sversion(11,41,23)
   VALUE "SpecialBuild", "\0"
 END
   END
diff --git a/clients/odbc/winsetup/setup.rc b/clients/odbc/winsetup/setup.rc
--- a/clients/odbc/winsetup/setup.rc
+++ b/clients/odbc/winsetup/setup.rc
@@ -65,8 +65,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION version(11,41,22)
- PRODUCTVERSION version(11,41,22)
+ FILEVERSION version(11,41,23)
+ PRODUCTVERSION version(11,41,23)
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -83,12 +83,12 @@ BEGIN
 BEGIN
 VALUE "CompanyName", "MonetDB B.V."
 VALUE "FileDescription", "MonetDB ODBC Setup DLL"
-VALUE "FileVersion", sversion(11,41,22)
+VALUE "FileVersion", sversion(11,41,23)
 VALUE "InternalName", "MonetODBCs.dll"
 VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2021"
 VALUE "OriginalFilename", "MonetODBCs.dll"
 VALUE "ProductName", "MonetDB SQL Server"
-VALUE "ProductVersion", sversion(11,41,22)
+VALUE "ProductVersion", sversion(11,41,23)
 END
 END
 BLOCK "VarFileInfo"
diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake
--- a/cmake/monetdb-versions.cmake
+++ b/cmake/monetdb-versions.cmake
@@ -8,10 +8,10 @@
 
 set(MONETDB_VERSION_MAJOR "11")
 set(MONETDB_VERSION_MINOR "41")
-set(MONETDB_VERSION_PATCH "22")
+set(MONETDB_VERSION_PATCH "23")
 
 if(RELEASE_VERSION)
-  set(MONETDB_RELEASE "unreleased")
+  set(MONETDB_RELEASE "Jul2021-SP6")
 endif()
 set(MONETDB_VERSION 
"${MONETDB_VERSION_MAJOR}.${MONETDB_VERSION_MINOR}.${MONETDB_VERSION_PATCH}")
 
diff --git a/gdk/libbat.rc b/gdk/libbat.rc
--- a/gdk/libbat.rc
+++ b/gdk/libbat.rc
@@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG

MonetDB: Jul2021 - Updated library versions.

2022-04-25 Thread Sjoerd Mullender
Changeset: 029b99ea66ca for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/029b99ea66ca
Modified Files:
cmake/monetdb-versions.cmake
Branch: Jul2021
Log Message:

Updated library versions.


diffs (12 lines):

diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake
--- a/cmake/monetdb-versions.cmake
+++ b/cmake/monetdb-versions.cmake
@@ -53,7 +53,7 @@ set(MONETDB_VERSION "${MONETDB_VERSION_M
 # common/options and common/utils)
 set(GDK_VERSION_CURRENT "23")
 set(GDK_VERSION_MINOR "0")
-set(GDK_VERSION_PATCH "8")
+set(GDK_VERSION_PATCH "9")
 math(EXPR GDK_VERSION_MAJOR "${GDK_VERSION_CURRENT} - ${GDK_VERSION_MINOR}")
 set(GDK_VERSION 
"${GDK_VERSION_MAJOR}.${GDK_VERSION_MINOR}.${GDK_VERSION_PATCH}")
 
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Jan2022 - Merge with Jul2021 branch, not changing any f...

2022-04-25 Thread Sjoerd Mullender
Changeset: 8741e74c5861 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8741e74c5861
Modified Files:
.bumpversion.cfg
MonetDB.spec
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/winsetup/setup.rc
cmake/monetdb-versions.cmake
gdk/libbat.rc
monetdb5/tools/libmonetdb5.rc
Branch: Jan2022
Log Message:

Merge with Jul2021 branch, not changing any files.

___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Jul2021 - Moved contents of ChangeLog.Jul2021 to MonetD...

2022-04-25 Thread Sjoerd Mullender
Changeset: 2e54857a9130 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2e54857a9130
Modified Files:
MonetDB.spec
debian/changelog
misc/packages/deb/changelog
misc/packages/rpm/changelog
sql/ChangeLog-Archive
sql/ChangeLog.Jul2021
Branch: Jul2021
Log Message:

Moved contents of ChangeLog.Jul2021 to MonetDB.spec, debian/changelog and 
ChangeLog-Archive.


diffs (117 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -84,7 +84,7 @@ Group: Applications/Databases
 License: MPLv2.0
 URL: https://www.monetdb.org/
 BugURL: https://bugs.monetdb.org/
-Source: 
https://www.monetdb.org/downloads/sources/Jul2021-SP5/%{name}-%{version}.tar.bz2
+Source: 
https://www.monetdb.org/downloads/sources/Jul2021-SP6/%{name}-%{version}.tar.bz2
 
 # The Fedora packaging document says we need systemd-rpm-macros for
 # the _unitdir and _tmpfilesdir macros to exist; however on RHEL 7
@@ -846,6 +846,15 @@ else
 fi
 
 %changelog
+* Mon Apr 25 2022 Sjoerd Mullender  - 11.41.23-20220425
+- Rebuilt.
+
+* Mon Apr 25 2022 Sjoerd Mullender  - 11.41.23-20220425
+- sql: GLOBAL TEMPORARY tables are now treated like LOCAL TEMPORARY tables
+  as far as the table content is concerned.  The schema information
+  stays global.  This fixes an issue with concurrent access and cleanup
+  of stale data.
+
 * Tue Mar 22 2022 Sjoerd Mullender  - 11.41.21-20220322
 - Rebuilt.
 
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,18 @@
+monetdb (11.41.23) unstable; urgency=low
+
+  * Rebuilt.
+
+ -- Sjoerd Mullender   Mon, 25 Apr 2022 13:18:19 +0200
+
+monetdb (11.41.23) unstable; urgency=low
+
+  * sql: GLOBAL TEMPORARY tables are now treated like LOCAL TEMPORARY tables
+as far as the table content is concerned.  The schema information
+stays global.  This fixes an issue with concurrent access and cleanup
+of stale data.
+
+ -- Sjoerd Mullender   Mon, 25 Apr 2022 13:18:19 +0200
+
 monetdb (11.41.21) unstable; urgency=low
 
   * Rebuilt.
diff --git a/misc/packages/deb/changelog b/misc/packages/deb/changelog
--- a/misc/packages/deb/changelog
+++ b/misc/packages/deb/changelog
@@ -1,3 +1,18 @@
+monetdb (11.41.23) unstable; urgency=low
+
+  * Rebuilt.
+
+ -- Sjoerd Mullender   Mon, 25 Apr 2022 13:18:19 +0200
+
+monetdb (11.41.23) unstable; urgency=low
+
+  * sql: GLOBAL TEMPORARY tables are now treated like LOCAL TEMPORARY tables
+as far as the table content is concerned.  The schema information
+stays global.  This fixes an issue with concurrent access and cleanup
+of stale data.
+
+ -- Sjoerd Mullender   Mon, 25 Apr 2022 13:18:19 +0200
+
 monetdb (11.41.21) unstable; urgency=low
 
   * Rebuilt.
diff --git a/misc/packages/rpm/changelog b/misc/packages/rpm/changelog
--- a/misc/packages/rpm/changelog
+++ b/misc/packages/rpm/changelog
@@ -1,3 +1,12 @@
+* Mon Apr 25 2022 Sjoerd Mullender  - 11.41.23-20220425
+- Rebuilt.
+
+* Mon Apr 25 2022 Sjoerd Mullender  - 11.41.23-20220425
+- sql: GLOBAL TEMPORARY tables are now treated like LOCAL TEMPORARY tables
+  as far as the table content is concerned.  The schema information
+  stays global.  This fixes an issue with concurrent access and cleanup
+  of stale data.
+
 * Tue Mar 22 2022 Sjoerd Mullender  - 11.41.21-20220322
 - Rebuilt.
 
diff --git a/sql/ChangeLog-Archive b/sql/ChangeLog-Archive
--- a/sql/ChangeLog-Archive
+++ b/sql/ChangeLog-Archive
@@ -1,6 +1,12 @@
 # DO NOT EDIT THIS FILE -- MAINTAINED AUTOMATICALLY
 # This file contains past ChangeLog entries
 
+* Mon Apr 25 2022 Sjoerd Mullender  - 11.41.23-20220425
+- GLOBAL TEMPORARY tables are now treated like LOCAL TEMPORARY tables
+  as far as the table content is concerned.  The schema information
+  stays global.  This fixes an issue with concurrent access and cleanup
+  of stale data.
+
 * Thu Oct 28 2021 Sjoerd Mullender  - 11.41.13-20211213
 - Number parsing for SQL was fixed.  If a number was immediately followed
   by letters (i.e. without a space), the number was accepted and the
diff --git a/sql/ChangeLog.Jul2021 b/sql/ChangeLog.Jul2021
--- a/sql/ChangeLog.Jul2021
+++ b/sql/ChangeLog.Jul2021
@@ -1,9 +1,3 @@
 # ChangeLog file for sql
 # This file is updated with Maddlog
 
-* Mon Apr 25 2022 Sjoerd Mullender 
-- GLOBAL TEMPORARY tables are now treated like LOCAL TEMPORARY tables
-  as far as the table content is concerned.  The schema information
-  stays global.  This fixes an issue with concurrent access and cleanup
-  of stale data.
-
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Jul2021 - Setting tag Jul2021_23 for the release build.

2022-04-25 Thread Sjoerd Mullender
Changeset: 4c0961b1cf9d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4c0961b1cf9d
Modified Files:
.hgtags
Branch: Jul2021
Log Message:

Setting tag Jul2021_23 for the release build.


diffs (8 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -828,3 +828,4 @@ 8c015afafb5903ea59b0e2cffac1138a0d82e007
 8c015afafb5903ea59b0e2cffac1138a0d82e007 Jul2021_SP4_release
 cab90a348501b045e19cee5cebcc44f3800bd0a8 Jul2021_21
 cab90a348501b045e19cee5cebcc44f3800bd0a8 Jul2021_SP5_release
+2e54857a91306cc6304825c5596f65d00595db6b Jul2021_23
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Jan2022 - Merge with Jul2021 branch.

2022-04-25 Thread Sjoerd Mullender
Changeset: ba75dc29380e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ba75dc29380e
Modified Files:
.hgtags
MonetDB.spec
cmake/monetdb-versions.cmake
debian/changelog
misc/packages/deb/changelog
misc/packages/rpm/changelog
sql/ChangeLog-Archive
Branch: Jan2022
Log Message:

Merge with Jul2021 branch.


diffs (8 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -763,3 +763,4 @@ cab90a348501b045e19cee5cebcc44f3800bd0a8
 5872f047d97c98d3a848514438b8f97fa446855d Jan2022_11
 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_13
 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_SP2_release
+2e54857a91306cc6304825c5596f65d00595db6b Jul2021_23
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Jul2021 - Post release build.

2022-04-25 Thread Sjoerd Mullender
Changeset: 912eb2f9422d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/912eb2f9422d
Modified Files:
.bumpversion.cfg
MonetDB.spec
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/winsetup/setup.rc
cmake/monetdb-versions.cmake
gdk/libbat.rc
monetdb5/tools/libmonetdb5.rc
Branch: Jul2021
Log Message:

Post release build.


diffs (189 lines):

diff --git a/.bumpversion.cfg b/.bumpversion.cfg
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 11.41.23
+current_version = 11.41.24
 commit = False
 tag = False
 
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -1,5 +1,5 @@
 %global name MonetDB
-%global version 11.41.23
+%global version 11.41.24
 %{!?buildno: %global buildno %(date +%Y%m%d)}
 
 # Use bcond_with to add a --with option; i.e., "without" is default.
diff --git a/clients/mapilib/mapi.rc b/clients/mapilib/mapi.rc
--- a/clients/mapilib/mapi.rc
+++ b/clients/mapilib/mapi.rc
@@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_U
 #define sversion(major,minor,patch)#major "." #minor "." #patch "\0"
 
 1 VERSIONINFO
-  FILEVERSION version(11,41,23)
-  PRODUCTVERSION version(11,41,23)
+  FILEVERSION version(11,41,24)
+  PRODUCTVERSION version(11,41,24)
   FILEFLAGSMASK 0x3fL
   FILEFLAGS 0
   FILEOS VOS_NT_WINDOWS32
@@ -21,14 +21,14 @@ BEGIN
   VALUE "Comments", "\0"
   VALUE "CompanyName", "MonetDB B.V.\0"
   VALUE "FileDescription", "MonetDB Application Interface DLL\0"
-  VALUE "FileVersion", sversion(11,41,23)
+  VALUE "FileVersion", sversion(11,41,24)
   VALUE "InternalName", "Mapi\0"
   VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2021\0"
   VALUE "LegalTrademarks", "\0"
   VALUE "OriginalFilename", "Mapi.dll\0"
   VALUE "PrivateBuild", "\0"
   VALUE "ProductName", "MonetDB Client Libraries\0"
-  VALUE "ProductVersion", sversion(11,41,23)
+  VALUE "ProductVersion", sversion(11,41,24)
   VALUE "SpecialBuild", "\0"
 END
   END
diff --git a/clients/odbc/driver/driver.rc b/clients/odbc/driver/driver.rc
--- a/clients/odbc/driver/driver.rc
+++ b/clients/odbc/driver/driver.rc
@@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_U
 #define sversion(major,minor,patch)#major "." #minor "." #patch "\0"
 
 1 VERSIONINFO
-  FILEVERSION version(11,41,23)
-  PRODUCTVERSION version(11,41,23)
+  FILEVERSION version(11,41,24)
+  PRODUCTVERSION version(11,41,24)
   FILEFLAGSMASK 0x3fL
   FILEFLAGS 0
   FILEOS VOS_NT_WINDOWS32
@@ -21,14 +21,14 @@ BEGIN
   VALUE "Comments", "\0"
   VALUE "CompanyName", "MonetDB B.V.\0"
   VALUE "FileDescription", "MonetDB ODBC Driver DLL\0"
-  VALUE "FileVersion", sversion(11,41,23)
+  VALUE "FileVersion", sversion(11,41,24)
   VALUE "InternalName", "MonetODBC\0"
   VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2021\0"
   VALUE "LegalTrademarks", "\0"
   VALUE "OriginalFilename", "MonetODBC.dll\0"
   VALUE "PrivateBuild", "\0"
   VALUE "ProductName", "MonetDB SQL Server\0"
-  VALUE "ProductVersion", sversion(11,41,23)
+  VALUE "ProductVersion", sversion(11,41,24)
   VALUE "SpecialBuild", "\0"
 END
   END
diff --git a/clients/odbc/winsetup/setup.rc b/clients/odbc/winsetup/setup.rc
--- a/clients/odbc/winsetup/setup.rc
+++ b/clients/odbc/winsetup/setup.rc
@@ -65,8 +65,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION version(11,41,23)
- PRODUCTVERSION version(11,41,23)
+ FILEVERSION version(11,41,24)
+ PRODUCTVERSION version(11,41,24)
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -83,12 +83,12 @@ BEGIN
 BEGIN
 VALUE "CompanyName", "MonetDB B.V."
 VALUE "FileDescription", "MonetDB ODBC Setup DLL"
-VALUE "FileVersion", sversion(11,41,23)
+VALUE "FileVersion", sversion(11,41,24)
 VALUE "InternalName", "MonetODBCs.dll"
 VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2021"
 VALUE "OriginalFilename", "MonetODBCs.dll"
 VALUE "ProductName", "MonetDB SQL Server"
-VALUE "ProductVersion", sversion(11,41,23)
+VALUE "ProductVersion", sversion(11,41,24)
 END
 END
 BLOCK "VarFileInfo"
diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake
--- a/cmake/monetdb-versions.cmake
+++ b/cmake/monetdb-versions.cmake
@@ -8,10 +8,10 @@
 
 set(MONETDB_VERSION_MAJOR "11")
 set(MONETDB_VERSION_MINOR "41")
-set(MONETDB_VERSION_PATCH "23")
+set(MONETDB_VERSION_PATCH "24")
 
 if(RELEASE_VERSION)
-  set(MONETDB_RELEASE "Jul2021-SP6")
+  set(MONETDB_RELEASE "unreleased")
 endif()
 set(MONETDB_VERSION 
"${MONETDB_VERSION_MAJOR}.${MONETDB_VERSION_MINOR}.${MONETDB_VERSION_PATCH}")
 
diff --git a/gdk/libbat.rc b/gdk/libbat.rc
--- a/gdk/libbat.rc
+++ b/gdk/libbat.rc
@@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_U
 #de

MonetDB: Jan2022 - Merge with Jul2021 branch, not changing any f...

2022-04-25 Thread Sjoerd Mullender
Changeset: 5666dcbd97ec for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5666dcbd97ec
Modified Files:
.bumpversion.cfg
MonetDB.spec
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/winsetup/setup.rc
cmake/monetdb-versions.cmake
gdk/libbat.rc
monetdb5/tools/libmonetdb5.rc
Branch: Jan2022
Log Message:

Merge with Jul2021 branch, not changing any files..

___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Oct2020 - Merge with Jun2020 branch.

2022-04-25 Thread Sjoerd Mullender
Changeset: 42963de663cb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/42963de663cb
Modified Files:
gdk/gdk_logger.c
Branch: Oct2020
Log Message:

Merge with Jun2020 branch.


diffs (25 lines):

diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -1179,6 +1179,12 @@ logger_readlog(logger *lg, char *filenam
char tpe;
oid id;
 
+   if (l.flag == 0) {
+   /* end of useful content */
+   assert(l.tid == 0);
+   assert(l.nr == 0);
+   break;
+   }
t1 = time(NULL);
if (t1 - t0 > 10) {
lng fpos;
@@ -1317,8 +1323,6 @@ logger_readlog(logger *lg, char *filenam
else
err = log_read_clear(lg, tr, name, tpe, id);
break;
-   case 0:
-   break;
default:
err = LOG_ERR;
}
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Jul2021 - Merge with Oct2020 branch.

2022-04-25 Thread Sjoerd Mullender
Changeset: edcddf84ccf4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/edcddf84ccf4
Modified Files:
gdk/gdk_logger.c
gdk/gdk_logger_old.c
Branch: Jul2021
Log Message:

Merge with Oct2020 branch.


diffs (25 lines):

diff --git a/gdk/gdk_logger_old.c b/gdk/gdk_logger_old.c
--- a/gdk/gdk_logger_old.c
+++ b/gdk/gdk_logger_old.c
@@ -1077,6 +1077,12 @@ logger_readlog(old_logger *lg, char *fil
char tpe;
oid id;
 
+   if (l.flag == 0) {
+   /* end of useful content */
+   assert(l.tid == 0);
+   assert(l.nr == 0);
+   break;
+   }
t1 = time(NULL);
if (t1 - t0 > 10) {
lng fpos;
@@ -1215,8 +1221,6 @@ logger_readlog(old_logger *lg, char *fil
else
err = log_read_clear(lg, tr, name, tpe, id);
break;
-   case 0:
-   break;
default:
err = LOG_ERR;
}
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: userprofile - merge with default

2022-04-25 Thread svetlin
Changeset: deac65e612dc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/deac65e612dc
Modified Files:
sql/backends/monet5/sql.c
sql/backends/monet5/sql_cat.c
sql/backends/monet5/sql_user.c
sql/common/sql_backend.c
sql/common/sql_backend.h
sql/server/rel_schema.c
sql/server/sql_parser.y
sql/server/sql_privileges.c
sql/server/sql_privileges.h
sql/storage/bat/bat_table.c
Branch: userprofile
Log Message:

merge with default


diffs (truncated from 1235697 to 300 lines):

diff --git a/.bumpversion.cfg b/.bumpversion.cfg
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 11.42.0
+current_version = 11.44.0
 commit = False
 tag = False
 
diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -406,40 +406,27 @@ ccf383750d69e9fe0ea9d9a047e8980d9c6d4d1e
 e821c6a9dd33b30ccbb51376b6db7355cf12684e Jun2006_root
 d3db8bef1dd54bcfb335599338a374b4ca8975fa Jun2010_root
 659965ec908548fa64649bce37f84e245428ce7b Jun2010_1
-659965ec908548fa64649bce37f84e245428ce7b Jun2010_1
 d83c56c4bba705257e09846d7f7e23bf5bd96627 Jun2010_1
-d83c56c4bba705257e09846d7f7e23bf5bd96627 Jun2010_1
-c0927c19d26910bb3fb5a5acba438a0ca5bba182 Jun2010_1
 c0927c19d26910bb3fb5a5acba438a0ca5bba182 Jun2010_1
 e042ecc2e895b1bb5f06da65d0db6a8756cdb6d3 Jun2010_1
 2077db505b7c36be4009ea92f0ce0c25600a4e22 Jun2010_3
-2077db505b7c36be4009ea92f0ce0c25600a4e22 Jun2010_3
-700a31b47b8a8fd449607d16f14c5c96d3c503cb Jun2010_3
 700a31b47b8a8fd449607d16f14c5c96d3c503cb Jun2010_3
 e4fe1c3cabfee2bba0b620aee6c3e9d569d37e17 Jun2010_3
-e4fe1c3cabfee2bba0b620aee6c3e9d569d37e17 Jun2010_3
-9aa479df22dda265b8c685f9e15b0899244b0184 Jun2010_3
 9aa479df22dda265b8c685f9e15b0899244b0184 Jun2010_3
 a6dd584e5bee4d0ec428e6aade193c263c55cdb3 Jun2010_3
 19ede2d368c6cba18d6b67cd8bde9d51af2ac9f8 Jun2010_5
-19ede2d368c6cba18d6b67cd8bde9d51af2ac9f8 Jun2010_5
 931928c216bc600a35580fa19f73daac66bd3571 Jun2010_5
 f0df8bc4610227ef4d0b54b21f978c0c3cb3f31f Oct2010_root
 ae12a56d3420aae3cf9928d4a7ddae30d3bf70be Oct2010_1
-ae12a56d3420aae3cf9928d4a7ddae30d3bf70be Oct2010_1
 5740074a9a9b6cc9919304f76a3a6924dde4768e Oct2010_1
-5740074a9a9b6cc9919304f76a3a6924dde4768e Oct2010_1
-49a13817f9ce7c7d75476f9cb37ab29b9a30a9c8 Oct2010_1
 49a13817f9ce7c7d75476f9cb37ab29b9a30a9c8 Oct2010_1
 491925a23d21d3599a5680618f4f00f8b8710c78 Oct2010_1
 be8749b7640878f829575ef9daa995810d6fe25d Oct2010_3
 3dc7b6687e454fc31ce9d3887aa01e457de4e9f2 Mar2011_root
 e4e992bb9279acc293403527538d9909f46f2325 Mar2011_1
 8a1a1b65992cd98423eee70cef0986beb3b7360d Apr2011_root
-e4e992bb9279acc293403527538d9909f46f2325 Mar2011_1
 be8ff3e8c6150ec40f4e0d1ba9789bec23621f88 Mar2011_1
 568733c4fc9fc0275d4b264fa188df6c70ede9cf Apr2011_1
-568733c4fc9fc0275d4b264fa188df6c70ede9cf Apr2011_1
 ff43c1f6f50cf795cf12b9336f74fd86686a5fd6 Apr2011_1
 1833949cae477d8f1efde8caea6608c04f67ad6d Apr2011_3
 c8a6189f95ae3d7cfb8d14f3b002c1077a4c437c Apr2011_SP1_release
@@ -447,7 +434,6 @@ b540445f1e7aa333708963a7afb46acd1914fdb3
 dbf80a87be87b463e6603221e0ed6e31d85d94c3 Apr2011_5
 bb8536db427b60b0226bbdec8dbfddfa7a26f37f Apr2011_SP2_release
 0fd8df3e7fc2f320fe7638af8e4883bf433ef61b Apr2011_7
-bb8536db427b60b0226bbdec8dbfddfa7a26f37f Apr2011_SP2_release
 a155d5445790c798ddf7a3e1b54094c13e1b3eaa Apr2011_SP2_release
 63ab846843295f7bd7be2f4d6c523c65d66e7edb Aug2011_1
 17d6b84121f74b9d5c53c941086638d7ad89f425 Aug2011_release
@@ -457,17 +443,14 @@ 7cd3f2a92ef77ccabd7ab3259887d0ae301be654
 2355808f3ea00ae69994e2fc7541661fc612b18b Aug2011_5
 477cc2a87348df99b4eab237501d1113e5cb21d8 Aug2011_SP2_release
 5ab2786b8f740c3e9fd1578605cec2bcd7725bc2 Aug2011_7
-477cc2a87348df99b4eab237501d1113e5cb21d8 Aug2011_SP2_release
 f022d32377c51b00599ecb014a72ea7ea2d6b8ba Aug2011_SP2_release
 0e42a9ccf4c65e301f76c721ea84e976de6ede84 Aug2011_9
 95911663ea9e3823837168d3f64328360aaf061a Aug2011_SP3_release
 600e707d12ac73973bfd4538c11bd340cf6094ae Dec2011_1
 d9968eb987609db9990da16db1de57737107502f Dec2011_release
 14ff565c407c49df8512d7a4b29b583b76a505c6 Dec2011_3
-d9968eb987609db9990da16db1de57737107502f Dec2011_release
 6dbadba38a4635b6319f2ba966f5dde6efab037d Dec2011_release
 2373eb4ee98b690aa72b86bebf4b2b47c87aa77c Dec2011_5
-6dbadba38a4635b6319f2ba966f5dde6efab037d Dec2011_release
 32665cf67d03011ff1fcc2c8e118370c47e5fae6 Dec2011_release
 d159bb1ba293002773b896353854b14aeb4e5cd1 Dec2011_7
 f47248f30989933b245a4d6f2e31a9e443f1078b Dec2011_SP1_release
@@ -479,7 +462,6 @@ 62f7cc254c8e83e5021d8230ed5b8e62c3793dd8
 961301b12e2c230afc5471fefcc3d7af9ab3e98f Apr2012_3
 cbc7f297899d61201e4d5a8cb06ae3aacf070111 Apr2012_SP1_release
 4a6a6523c78992de5d3a1e7a72454250f4964881 Apr2012_5
-cbc7f297899d61201e4d5a8cb06ae3aacf070111 Apr2012_SP1_release
 ebb4a17093e63a199a1d5d27855aa8a31c7e7785 Apr2012_SP1_release
 06c3e1846c2fc399d72edcac1ed0d877934fab67 Jun2012_root
 94ffb491c3f2a9dc47c1371760b928bb7d35c050 Apr2012_7
@@ -487,10 +469,8 @@ 95df797091e0a19c18771378f80eb865274

MonetDB: properties - Propagate more statistics for global aggre...

2022-04-25 Thread Pedro Ferreira
Changeset: e18c0cb3ea1e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e18c0cb3ea1e
Modified Files:
sql/server/rel_rewriter.c
sql/server/rel_statistics.c
sql/server/rel_statistics_functions.c

sql/test/BugTracker-2015/Tests/quantile_function_resolution.Bug-3773.test
sql/test/BugTracker-2017/Tests/caching_stats_bug.6374.test

sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.test
sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.test

sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-0join-view.test

sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-3join-query.stable.out

sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-3join-query.stable.out.32bit
sql/test/SQLancer/Tests/sqlancer09.test
sql/test/SQLancer/Tests/sqlancer17.test
sql/test/Tests/keys.test
sql/test/miscellaneous/Tests/simple_plans.test
sql/test/miscellaneous/Tests/simple_selects.test
sql/test/miscellaneous/Tests/unique_keys.test
Branch: properties
Log Message:

Propagate more statistics for global aggregates. Forgot to propagate NOT NULL 
flag on lists of values


diffs (truncated from 546 to 300 lines):

diff --git a/sql/server/rel_rewriter.c b/sql/server/rel_rewriter.c
--- a/sql/server/rel_rewriter.c
+++ b/sql/server/rel_rewriter.c
@@ -225,6 +225,7 @@ rewrite_simplify(visitor *v, uint8_t cyc
/* make sure the single expression is false, so the 
generate NULL values won't match */
rel->exps->h->data = exp_atom_bool(v->sql->sa, 0);
rel->l = rel_project(v->sql->sa, NULL, nexps);
+   set_count_prop(v->sql->sa, rel->l, 1);
set_count_prop(v->sql->sa, rel, 0);
rel->card = CARD_ATOM;
v->changes++;
diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -178,7 +178,7 @@ rel_propagate_column_ref_statistics(mvc 
if (!has_nil(found))
set_has_no_nil(e);
if (is_unique(found) || 
(need_distinct(rel) && list_length(rel->exps) == 1) ||
-   (is_groupby(rel->op) && 
list_length(rel->r) == 1 && exps_find_exp(rel->r, e)))
+   (is_groupby(rel->op) && 
(list_empty(rel->r) || (list_length(rel->r) == 1 && exps_find_exp(rel->r, e)
set_unique(e);
/* propagate unique estimation for 
known cases */
if (is_groupby(rel->op) && 
list_empty(rel->r) && !find_prop(e->p, PROP_NUNIQUES)) { /* global aggregate 
case */
@@ -373,6 +373,7 @@ rel_propagate_statistics(visitor *v, sql
} break;
case e_aggr:
case e_func: {
+   BUN lv;
sql_subfunc *f = e->f;
 
if (!f->func->s) {
@@ -389,8 +390,18 @@ rel_propagate_statistics(visitor *v, sql
if (look)
look(sql, e);
}
-   if (!is_semantics(e) && e->l && !have_nil(e->l) && (e->type != 
e_aggr || (is_groupby(rel->op) && list_length(rel->r
+   /* for global aggregates with no semantics, if the left 
relation has values, then the output won't be NULL */
+   if (!is_semantics(e) && e->l && !have_nil(e->l) &&
+   (e->type != e_aggr || (is_groupby(rel->op) && 
list_length(rel->r)) || ((lv = get_rel_count(rel->l)) != BUN_NONE && lv > 0)))
set_has_no_nil(e);
+   /* set properties for global aggregates */
+   if (e->type == e_aggr && is_groupby(rel->op) && 
list_empty(rel->r)) {
+   if (!find_prop(e->p, PROP_NUNIQUES)) {
+   prop *p = e->p = prop_create(sql->sa, 
PROP_NUNIQUES, e->p);
+   p->value.dval = 1;
+   }
+   set_unique(e);
+   }
} break;
case e_atom: {
if (e->l) {
@@ -405,10 +416,12 @@ rel_propagate_statistics(visitor *v, sql
list *vals = (list *) e->f;
sql_exp *first = vals->h ? vals->h->data : NULL;
atom *max = NULL, *min = NULL; /* all child values must 
have a valid min/max */
+   int has_nil = 0;
 
if (first) {
max = ((lval = find_prop_and_get(first->p, 
PROP_MAX))) ? lval : NULL;
min = ((lval = find_prop_and_get(firs

MonetDB: default - Merged with Jan2022

2022-04-25 Thread Pedro Ferreira
Changeset: 3e981b046658 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/3e981b046658
Modified Files:
.bumpversion.cfg
MonetDB.spec
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/winsetup/setup.rc
cmake/monetdb-versions.cmake
gdk/libbat.rc
monetdb5/tools/libmonetdb5.rc
Branch: default
Log Message:

Merged with Jan2022


diffs (37 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -763,3 +763,4 @@ cab90a348501b045e19cee5cebcc44f3800bd0a8
 5872f047d97c98d3a848514438b8f97fa446855d Jan2022_11
 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_13
 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_SP2_release
+2e54857a91306cc6304825c5596f65d00595db6b Jul2021_23
diff --git a/buildtools/conf/Maddlog b/buildtools/conf/Maddlog
--- a/buildtools/conf/Maddlog
+++ b/buildtools/conf/Maddlog
@@ -189,6 +189,9 @@ fi
 
 file=ChangeLog.$RANDOM
 
+# make sure we get the correct day and month names
+export LC_ALL=en_US.utf-8
+
 case "$CL" in
 */*)
 cd "${CL%/*}"
diff --git a/sql/ChangeLog.Jan2022 b/sql/ChangeLog.Jan2022
--- a/sql/ChangeLog.Jan2022
+++ b/sql/ChangeLog.Jan2022
@@ -1,6 +1,12 @@
 # ChangeLog file for sql
 # This file is updated with Maddlog
 
+* Mon Apr 25 2022 Sjoerd Mullender 
+- GLOBAL TEMPORARY tables are now treated like LOCAL TEMPORARY tables
+  as far as the table content is concerned.  The schema information
+  stays global.  This fixes an issue with concurrent access and cleanup
+  of stale data.
+
 * Thu Apr 14 2022 Sjoerd Mullender 
 - The NO CONSTRAINT option of the COPY INTO query has been removed.
   It didn't work and it was never a good idea anyway.
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: properties - Merged with default

2022-04-25 Thread Pedro Ferreira
Changeset: 903e58fcc7aa for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/903e58fcc7aa
Modified Files:
sql/server/rel_optimizer.c
Branch: properties
Log Message:

Merged with default


diffs (85 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -763,3 +763,4 @@ cab90a348501b045e19cee5cebcc44f3800bd0a8
 5872f047d97c98d3a848514438b8f97fa446855d Jan2022_11
 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_13
 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_SP2_release
+2e54857a91306cc6304825c5596f65d00595db6b Jul2021_23
diff --git a/buildtools/conf/Maddlog b/buildtools/conf/Maddlog
--- a/buildtools/conf/Maddlog
+++ b/buildtools/conf/Maddlog
@@ -189,6 +189,9 @@ fi
 
 file=ChangeLog.$RANDOM
 
+# make sure we get the correct day and month names
+export LC_ALL=en_US.utf-8
+
 case "$CL" in
 */*)
 cd "${CL%/*}"
diff --git a/sql/ChangeLog b/sql/ChangeLog
--- a/sql/ChangeLog
+++ b/sql/ChangeLog
@@ -1,7 +1,7 @@
 # ChangeLog file for sql
 # This file is updated with Maddlog
 
-* do apr 21 2022 Nuno Faria 
+* Thu Apr 21 2022 Nuno Faria 
 - Added the UNLOGGED TABLE feature.
 
 * Fri Feb  4 2022 Sjoerd Mullender 
diff --git a/sql/ChangeLog.Jan2022 b/sql/ChangeLog.Jan2022
--- a/sql/ChangeLog.Jan2022
+++ b/sql/ChangeLog.Jan2022
@@ -1,6 +1,12 @@
 # ChangeLog file for sql
 # This file is updated with Maddlog
 
+* Mon Apr 25 2022 Sjoerd Mullender 
+- GLOBAL TEMPORARY tables are now treated like LOCAL TEMPORARY tables
+  as far as the table content is concerned.  The schema information
+  stays global.  This fixes an issue with concurrent access and cleanup
+  of stale data.
+
 * Thu Apr 14 2022 Sjoerd Mullender 
 - The NO CONSTRAINT option of the COPY INTO query has been removed.
   It didn't work and it was never a good idea anyway.
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -89,7 +89,7 @@ merge_table_prune_and_unionize(visitor *
return sql_error(v->sql, 02, SQLSTATE(42000) "The %s 
'%s.%s' should have at least one table associated",
 
TABLE_TYPE_DESCRIPTION(pt->type, pt->properties), pt->s->base.name, 
pt->base.name);
/* Do not include empty partitions */
-   if (isTable(pt) && pt->access == TABLE_READONLY && 
!store->storage_api.count_col(v->sql->session->tr, 
ol_first_node(pt->columns)->data, 0))
+   if (isTable(pt) && pt->access == TABLE_READONLY && 
!store->storage_api.count_col(v->sql->session->tr, 
ol_first_node(pt->columns)->data, 10)) /* count active rows only */
continue;
 
if (!table_privs(v->sql, pt, PRIV_SELECT)) /* Test for 
privileges */
diff --git a/sql/test/BugTracker-2021/Tests/All 
b/sql/test/BugTracker-2021/Tests/All
--- a/sql/test/BugTracker-2021/Tests/All
+++ b/sql/test/BugTracker-2021/Tests/All
@@ -7,7 +7,7 @@ union-groupby.Bug-7108
 merge-stmt.wrong-error.Bug-7109
 remote-table-groupby.Bug-7110
 conditional-execution-round.Bug-7125
-lowercase-cryllic.Bug-7126
+NOT_WIN32?lowercase-cryllic.Bug-7126
 unnest-union.Bug-7127
 subquery-missing.Bug-7128
 batcalc-between-undefined.Bug-7129
diff --git a/sql/test/mapi/Tests/All b/sql/test/mapi/Tests/All
--- a/sql/test/mapi/Tests/All
+++ b/sql/test/mapi/Tests/All
@@ -4,7 +4,7 @@ sample4
 smack00
 smack01
 python3_dbapi
-NOT_WIN32?utf8test
+utf8test
 HAVE_HGE?mal_int128
 HAVE_HGE?sql_int128
 HAVE_HGE?python3_int128
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: properties - Tunning grouping estimates

2022-04-25 Thread Pedro Ferreira
Changeset: ae4780eb3d9d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ae4780eb3d9d
Modified Files:
sql/server/rel_statistics.c
Branch: properties
Log Message:

Tunning grouping estimates


diffs (82 lines):

diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -616,8 +616,12 @@ trivial_project_exp_card(sql_exp *e)
 }
 
 static BUN
-rel_calc_nuniques(sql_rel *rel, sql_rel *l, list *exps)
+rel_calc_nuniques(sql_rel *l, list *exps)
 {
+   BUN lv = get_rel_count(l);
+
+   if (lv == 0)
+   return 0;
if (!list_empty(exps)) {
BUN nuniques = 0;
/* compute the highest number of unique values */
@@ -626,18 +630,18 @@ rel_calc_nuniques(sql_rel *rel, sql_rel 
sql_rel *bt = NULL;
prop *p = NULL;
 
-   if (e->type == e_column && is_unique(e) &&
-   name_find_column(rel, e->l, e->r, -1, &bt) && 
bt && (p = find_prop(bt->p, PROP_COUNT))) {
+   if ((p = find_prop(e->p, PROP_NUNIQUES))) {
+   nuniques = MAX(nuniques, (BUN) p->value.dval);
+   } else if (rel_find_exp_and_corresponding_rel(l, e, 
false, &bt, NULL) && bt && (p = find_prop(bt->p, PROP_COUNT))) {
nuniques = MAX(nuniques, p->value.lval);
-   } else if ((p = find_prop(e->p, PROP_NUNIQUES))) {
-   nuniques = MAX(nuniques, (BUN) p->value.dval);
} else {
nuniques = BUN_NONE;
}
}
-   return nuniques != BUN_NONE ? nuniques : get_rel_count(l);
+   if (nuniques != BUN_NONE)
+   return nuniques;
}
-   return get_rel_count(l);
+   return lv;
 }
 
 static sql_rel *
@@ -695,8 +699,8 @@ rel_get_statistics_(visitor *v, sql_rel 
 
/* propagate row count */
if (is_union(rel->op)) {
-   BUN lv = need_distinct(rel) ? rel_calc_nuniques(rel, 
pl, pl->exps) : get_rel_count(pl),
-   rv = need_distinct(rel) ? 
rel_calc_nuniques(rel, pr, pr->exps) : get_rel_count(pr);
+   BUN lv = need_distinct(rel) ? rel_calc_nuniques(pl, 
pl->exps) : get_rel_count(pl),
+   rv = need_distinct(rel) ? rel_calc_nuniques(pr, 
pr->exps) : get_rel_count(pr);
 
if (lv == 0 && rv == 0) { /* both sides empty */
if (can_be_pruned)
@@ -711,8 +715,8 @@ rel_get_statistics_(visitor *v, sql_rel 
set_count_prop(v->sql->sa, rel, (rv > (BUN_MAX 
- lv)) ? BUN_MAX : (lv + rv)); /* overflow check */
} 
} else if (is_inter(rel->op) || is_except(rel->op)) {
-   BUN lv = need_distinct(rel) ? rel_calc_nuniques(rel, 
pl, pl->exps) : get_rel_count(pl),
-   rv = need_distinct(rel) ? 
rel_calc_nuniques(rel, pr, pr->exps) : get_rel_count(pr);
+   BUN lv = need_distinct(rel) ? rel_calc_nuniques(pl, 
pl->exps) : get_rel_count(pl),
+   rv = need_distinct(rel) ? rel_calc_nuniques(pr, 
pr->exps) : get_rel_count(pr);
 
if (lv == 0) { /* left side empty */
if (can_be_pruned)
@@ -841,7 +845,7 @@ rel_get_statistics_(visitor *v, sql_rel 
case op_project: {
if (l) {
if (need_distinct(rel)) {
-   set_count_prop(v->sql->sa, rel, 
rel_calc_nuniques(rel, l, rel->exps));
+   set_count_prop(v->sql->sa, rel, 
rel_calc_nuniques(l, rel->exps));
} else {
set_count_prop(v->sql->sa, rel, 
get_rel_count(l));
}
@@ -861,7 +865,7 @@ rel_get_statistics_(visitor *v, sql_rel 
if (list_empty(rel->r)) {
set_count_prop(v->sql->sa, rel, 1);
} else {
-   set_count_prop(v->sql->sa, rel, 
rel_calc_nuniques(rel, l, rel->r));
+   set_count_prop(v->sql->sa, rel, 
rel_calc_nuniques(l, rel->r));
}
} break;
default:
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: properties - If the right side of an intersection is em...

2022-04-25 Thread Pedro Ferreira
Changeset: fcf36ca9522e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/fcf36ca9522e
Modified Files:
sql/server/rel_statistics.c
Branch: properties
Log Message:

If the right side of an intersection is empty, the result is empty. Also 
attempt to propagate counts at joins if one of the sides is unknown


diffs (86 lines):

diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -709,8 +709,10 @@ rel_get_statistics_(visitor *v, sql_rel 
set_count_prop(v->sql->sa, rel, 0);
} else if (can_be_pruned && lv == 0 && 
!rel_is_ref(rel)) { /* left side empty */
rel = set_setop_side(v, rel, r);
+   empty_cross = false; /* don't rewrite again */
} else if (can_be_pruned && rv == 0 && 
!rel_is_ref(rel)) { /* right side empty */
rel = set_setop_side(v, rel, l);
+   empty_cross = false; /* don't rewrite again */
} else if (lv != BUN_NONE && rv != BUN_NONE) {
set_count_prop(v->sql->sa, rel, (rv > (BUN_MAX 
- lv)) ? BUN_MAX : (lv + rv)); /* overflow check */
} 
@@ -723,8 +725,18 @@ rel_get_statistics_(visitor *v, sql_rel 
empty_cross = true;
else
set_count_prop(v->sql->sa, rel, 0);
-   } else if (can_be_pruned && !empty_cross && rv == 0 && 
!rel_is_ref(rel)) { /* right side empty */
-   rel = set_setop_side(v, rel, l);
+   } else if (rv == 0) { /* right side empty */
+   if (is_inter(rel->op)) {
+   if (can_be_pruned)
+   empty_cross = true;
+   else
+   set_count_prop(v->sql->sa, rel, 
0);
+   } else if (can_be_pruned && !rel_is_ref(rel)) {
+   rel = set_setop_side(v, rel, l);
+   empty_cross = false; /* don't rewrite 
again */
+   } else {
+   set_count_prop(v->sql->sa, rel, lv);
+   }
} else {
set_count_prop(v->sql->sa, rel, lv);
}
@@ -741,7 +753,7 @@ rel_get_statistics_(visitor *v, sql_rel 
}
list_hash_clear(rel->exps);
sql_rel *l = rel_project(v->sql->sa, NULL, rel->exps);
-   set_count_prop(v->sql->sa, l, 0);
+   set_count_prop(v->sql->sa, l, 1);
l = rel_select(v->sql->sa, l, exp_atom_bool(v->sql->sa, 
0));
set_count_prop(v->sql->sa, l, 0);
rel->op = op_project;
@@ -809,25 +821,23 @@ rel_get_statistics_(visitor *v, sql_rel 
set_count_prop(v->sql->sa, rel, 
join_idx_estimate);
} else if (uniques_estimate != BUN_MAX) {
set_count_prop(v->sql->sa, rel, 
uniques_estimate);
+   } else if (list_length(rel->exps) == 1 && 
(exp_is_false(rel->exps->h->data) || exp_is_null(rel->exps->h->data))) {
+   /* corner cases for outer joins */
+   if (is_left(rel->op)) {
+   set_count_prop(v->sql->sa, rel, lv);
+   } else if (is_right(rel->op)) {
+   set_count_prop(v->sql->sa, rel, rv);
+   } else if (is_full(rel->op) && lv != BUN_NONE 
&& rv != BUN_NONE) {
+   set_count_prop(v->sql->sa, rel, (rv > 
(BUN_MAX - lv)) ? BUN_MAX : (lv + rv)); /* overflow check */
+   } else if (lv != BUN_NONE && rv != BUN_NONE) {
+   set_count_prop(v->sql->sa, rel, 0);
+   }
+   } else if (lv == 0) {
+   set_count_prop(v->sql->sa, rel, 
(is_right(rel->op) || is_full(rel->op)) ? rv : 0);
+   } else if (rv == 0) {
+   set_count_prop(v->sql->sa, rel, 
(is_left(rel->op) || is_full(rel->op)) ? lv : 0);
} else if (lv != BUN_NONE && rv != BUN_NONE) {
-   if (list_length(rel->exps) == 1 && 
(exp_is_false(rel->exps->h->data) || exp_is_null(rel->exps->h->data))) {
-   /* corner cases 

MonetDB: properties - My mistake, use right relations

2022-04-25 Thread Pedro Ferreira
Changeset: 8bc75e695e56 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8bc75e695e56
Modified Files:
sql/server/rel_statistics.c
Branch: properties
Log Message:

My mistake, use right relations


diffs (25 lines):

diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -699,8 +699,8 @@ rel_get_statistics_(visitor *v, sql_rel 
 
/* propagate row count */
if (is_union(rel->op)) {
-   BUN lv = need_distinct(rel) ? rel_calc_nuniques(pl, 
pl->exps) : get_rel_count(pl),
-   rv = need_distinct(rel) ? rel_calc_nuniques(pr, 
pr->exps) : get_rel_count(pr);
+   BUN lv = need_distinct(rel) ? rel_calc_nuniques(l, 
l->exps) : get_rel_count(l),
+   rv = need_distinct(rel) ? rel_calc_nuniques(r, 
r->exps) : get_rel_count(r);
 
if (lv == 0 && rv == 0) { /* both sides empty */
if (can_be_pruned)
@@ -717,8 +717,8 @@ rel_get_statistics_(visitor *v, sql_rel 
set_count_prop(v->sql->sa, rel, (rv > (BUN_MAX 
- lv)) ? BUN_MAX : (lv + rv)); /* overflow check */
} 
} else if (is_inter(rel->op) || is_except(rel->op)) {
-   BUN lv = need_distinct(rel) ? rel_calc_nuniques(pl, 
pl->exps) : get_rel_count(pl),
-   rv = need_distinct(rel) ? rel_calc_nuniques(pr, 
pr->exps) : get_rel_count(pr);
+   BUN lv = need_distinct(rel) ? rel_calc_nuniques(l, 
l->exps) : get_rel_count(l),
+   rv = need_distinct(rel) ? rel_calc_nuniques(r, 
r->exps) : get_rel_count(r);
 
if (lv == 0) { /* left side empty */
if (can_be_pruned)
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: properties - Check column expressions only

2022-04-25 Thread Pedro Ferreira
Changeset: 8d21b53d98b9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8d21b53d98b9
Modified Files:
sql/server/rel_statistics.c
Branch: properties
Log Message:

Check column expressions only


diffs (12 lines):

diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -632,7 +632,7 @@ rel_calc_nuniques(sql_rel *l, list *exps
 
if ((p = find_prop(e->p, PROP_NUNIQUES))) {
nuniques = MAX(nuniques, (BUN) p->value.dval);
-   } else if (rel_find_exp_and_corresponding_rel(l, e, 
false, &bt, NULL) && bt && (p = find_prop(bt->p, PROP_COUNT))) {
+   } else if (e->type == e_column && 
rel_find_exp_and_corresponding_rel(l, e, false, &bt, NULL) && bt && (p = 
find_prop(bt->p, PROP_COUNT))) {
nuniques = MAX(nuniques, p->value.lval);
} else {
nuniques = BUN_NONE;
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org