MonetDB: default - In Debian build, remove files from versioned ...

2024-05-16 Thread Sjoerd Mullender via checkin-list
Changeset: 6504d15c154f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6504d15c154f
Modified Files:
debian/rules
Branch: default
Log Message:

In Debian build, remove files from versioned directory.


diffs (16 lines):

diff --git a/debian/rules b/debian/rules
--- a/debian/rules
+++ b/debian/rules
@@ -55,9 +55,9 @@ override_dh_auto_install:
dh_auto_install
rm debian/tmp/usr/bin/monetdb_mtest.sh
rm -r debian/tmp/usr/share/monetdb
-   rm debian/tmp/usr/lib/*/monetdb5/lib_opt_sql_append.so
-   rm debian/tmp/usr/lib/*/monetdb5/lib_microbenchmark*.so
-   rm debian/tmp/usr/lib/*/monetdb5/lib_udf*.so
+   rm debian/tmp/usr/lib/*/monetdb5*/lib_opt_sql_append.so
+   rm debian/tmp/usr/lib/*/monetdb5*/lib_microbenchmark*.so
+   rm debian/tmp/usr/lib/*/monetdb5*/lib_udf*.so
 
 override_dh_installsystemd:
dh_installsystemd --no-enable --no-start
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - Improved overflow check when materializing ge...

2024-05-16 Thread Sjoerd Mullender via checkin-list
Changeset: e662b1463c8e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e662b1463c8e
Modified Files:
sql/backends/monet5/generator/generator.c
Branch: default
Log Message:

Improved overflow check when materializing generator series.


diffs (258 lines):

diff --git a/sql/backends/monet5/generator/generator.c 
b/sql/backends/monet5/generator/generator.c
--- a/sql/backends/monet5/generator/generator.c
+++ b/sql/backends/monet5/generator/generator.c
@@ -74,83 +74,93 @@ VLTgenerator_noop(Client cntxt, MalBlkPt
return MAL_SUCCEED;
 }
 
-#define check_bte() (s > 0 ? f > l : f < l)
-#define check_sht() (s > 0 ? f > l : f < l)
-#define check_int() (s > 0 ? f > l : f < l)
+#define check_bte() ((void)0)
+#define check_sht() ((void)0)
 #if SIZEOF_BUN < SIZEOF_LNG
-#define check_lng() (s > 0 ? f > l || s > (lng) BUN_MAX : f < l || s < -(lng) 
BUN_MAX)
+#define check_int()
\
+   do {
\
+   if (cnt > (unsigned int) BUN_MAX)   
\
+   throw(MAL, "generator.table",   
\
+ SQLSTATE(42000) "Illegal generator range");   
\
+   } while (0)
 #else
-#define check_lng() (s > 0 ? f > l : f < l)
+#define check_int() ((void)0)
 #endif
+#define check_lng()
\
+   do {
\
+   if (cnt > (ulng) BUN_MAX)   
\
+   throw(MAL, "generator.table",   
\
+ SQLSTATE(42000) "Illegal generator range");   
\
+   } while (0)
 #ifdef HAVE_HGE
-#define check_hge() (s > 0 ? f > l || s > (lng) BUN_MAX : f < l || s < -(lng) 
BUN_MAX)
+#define check_hge()
\
+   do {
\
+   if (cnt > (uhge) BUN_MAX)   
\
+   throw(MAL, "generator.table",   
\
+ SQLSTATE(42000) "Illegal generator range");   
\
+   } while (0)
 #endif
 
-/*
- * The base line consists of materializing the generator iterator value
- */
-#define VLTmaterialize(TPE)
\
+#define VLTmaterialize(TPE, uTPE)  
\
do {
\
-   TPE *v, f, l, s;
\
+   TPE f, l, s;
\
+   uTPE cnt;   
\
+   
\
f = *getArgReference_##TPE(stk, pci, 1);
\
l = *getArgReference_##TPE(stk, pci, 2);
\
if ( pci->argc == 3)
\
-   s = f<=l? (TPE) 1: (TPE)-1; 
\
-   else s =  *getArgReference_##TPE(stk,pci, 3);   
\
-   if (s == 0 || is_##TPE##_nil(f) || is_##TPE##_nil(l) || 
check_##TPE()) \
+   s = f <= l ? (TPE) 1 : (TPE) -1;
\
+   else
\
+   s =  *getArgReference_##TPE(stk,pci, 3);
\
+   if (s == 0 || is_##TPE##_nil(f) || is_##TPE##_nil(l) || 
is_##TPE##_nil(s)) \
throw(MAL, "generator.table",   
\
  SQLSTATE(42000) "Illegal g

MonetDB: default - fixed bug #7488, for ranges where the end is ...

2024-05-16 Thread Niels Nes via checkin-list
Changeset: c803f8ba800b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c803f8ba800b
Modified Files:
gdk/gdk_analytic.h
gdk/gdk_analytic_func.c
sql/test/BugTracker-2024/Tests/orderby-max-over-rows-Bug-7488.test
Branch: default
Log Message:

fixed bug #7488, for ranges where the end is before the beginning skip 
computation of the window function using the segment tree


diffs (44 lines):

diff --git a/gdk/gdk_analytic.h b/gdk/gdk_analytic.h
--- a/gdk/gdk_analytic.h
+++ b/gdk/gdk_analytic.h
@@ -98,13 +98,14 @@ gdk_export gdk_return GDKrebuild_segment
do { /* taken from https://www.vldb.org/pvldb/vol8/p1058-leis.pdf */ \
oid begin = START, tend = END;  \
CAST computed;  \
-   \
INIT_AGGREGATE(ARG1, ARG2, ARG3);   \
+   if (begin < tend)   \
for (oid level = 0; level < nlevels; level++) { \
CAST *tlevel = (CAST *) segment_tree + 
levels_offset[level]; \
oid parent_begin = begin / SEGMENT_TREE_FANOUT; \
oid parent_end = tend / SEGMENT_TREE_FANOUT;\
\
+   \
if (parent_begin == parent_end) {   \
for (oid pos = begin; pos < tend; pos++) \
COMPUTE(tlevel[pos], ARG1, ARG2, ARG3); 
\
diff --git a/gdk/gdk_analytic_func.c b/gdk/gdk_analytic_func.c
--- a/gdk/gdk_analytic_func.c
+++ b/gdk/gdk_analytic_func.c
@@ -37,7 +37,7 @@ GDKrebuild_segment_tree(oid ncount, oid 
 
assert(ncount > 0);
do { /* compute the next number of levels */
-   counter = (oid) ceil((dbl)counter / SEGMENT_TREE_FANOUT);
+   counter = (counter+(SEGMENT_TREE_FANOUT-1)) / 
SEGMENT_TREE_FANOUT;
next_tree_size += counter;
next_levels++;
} while (counter > 1);
diff --git a/sql/test/BugTracker-2024/Tests/orderby-max-over-rows-Bug-7488.test 
b/sql/test/BugTracker-2024/Tests/orderby-max-over-rows-Bug-7488.test
--- a/sql/test/BugTracker-2024/Tests/orderby-max-over-rows-Bug-7488.test
+++ b/sql/test/BugTracker-2024/Tests/orderby-max-over-rows-Bug-7488.test
@@ -3,8 +3,7 @@ SELECT 0.10 FROM dependencies ORDER 
 
 0.100
 
-skipif knownfail
 query R nosort
-SELECT 0.10 FROM dependencies ORDER BY max ( 'y' ) OVER ( ROWS BETWEEN 
1.10 PRECEDING AND 8 PRECEDING )
+SELECT 0.10 FROM dependencies ORDER BY max ( 'y' ) OVER ( ROWS BETWEEN 
1.10 PRECEDING AND 8 PRECEDING ) limit 1
 
 0.100
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - merged

2024-05-16 Thread Niels Nes via checkin-list
Changeset: 13142ded24ef for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/13142ded24ef
Branch: default
Log Message:

merged


diffs (274 lines):

diff --git a/debian/rules b/debian/rules
--- a/debian/rules
+++ b/debian/rules
@@ -55,9 +55,9 @@ override_dh_auto_install:
dh_auto_install
rm debian/tmp/usr/bin/monetdb_mtest.sh
rm -r debian/tmp/usr/share/monetdb
-   rm debian/tmp/usr/lib/*/monetdb5/lib_opt_sql_append.so
-   rm debian/tmp/usr/lib/*/monetdb5/lib_microbenchmark*.so
-   rm debian/tmp/usr/lib/*/monetdb5/lib_udf*.so
+   rm debian/tmp/usr/lib/*/monetdb5*/lib_opt_sql_append.so
+   rm debian/tmp/usr/lib/*/monetdb5*/lib_microbenchmark*.so
+   rm debian/tmp/usr/lib/*/monetdb5*/lib_udf*.so
 
 override_dh_installsystemd:
dh_installsystemd --no-enable --no-start
diff --git a/sql/backends/monet5/generator/generator.c 
b/sql/backends/monet5/generator/generator.c
--- a/sql/backends/monet5/generator/generator.c
+++ b/sql/backends/monet5/generator/generator.c
@@ -74,83 +74,93 @@ VLTgenerator_noop(Client cntxt, MalBlkPt
return MAL_SUCCEED;
 }
 
-#define check_bte() (s > 0 ? f > l : f < l)
-#define check_sht() (s > 0 ? f > l : f < l)
-#define check_int() (s > 0 ? f > l : f < l)
+#define check_bte() ((void)0)
+#define check_sht() ((void)0)
 #if SIZEOF_BUN < SIZEOF_LNG
-#define check_lng() (s > 0 ? f > l || s > (lng) BUN_MAX : f < l || s < -(lng) 
BUN_MAX)
+#define check_int()
\
+   do {
\
+   if (cnt > (unsigned int) BUN_MAX)   
\
+   throw(MAL, "generator.table",   
\
+ SQLSTATE(42000) "Illegal generator range");   
\
+   } while (0)
 #else
-#define check_lng() (s > 0 ? f > l : f < l)
+#define check_int() ((void)0)
 #endif
+#define check_lng()
\
+   do {
\
+   if (cnt > (ulng) BUN_MAX)   
\
+   throw(MAL, "generator.table",   
\
+ SQLSTATE(42000) "Illegal generator range");   
\
+   } while (0)
 #ifdef HAVE_HGE
-#define check_hge() (s > 0 ? f > l || s > (lng) BUN_MAX : f < l || s < -(lng) 
BUN_MAX)
+#define check_hge()
\
+   do {
\
+   if (cnt > (uhge) BUN_MAX)   
\
+   throw(MAL, "generator.table",   
\
+ SQLSTATE(42000) "Illegal generator range");   
\
+   } while (0)
 #endif
 
-/*
- * The base line consists of materializing the generator iterator value
- */
-#define VLTmaterialize(TPE)
\
+#define VLTmaterialize(TPE, uTPE)  
\
do {
\
-   TPE *v, f, l, s;
\
+   TPE f, l, s;
\
+   uTPE cnt;   
\
+   
\
f = *getArgReference_##TPE(stk, pci, 1);
\
l = *getArgReference_##TPE(stk, pci, 2);
\
if ( pci->argc == 3)
\
-   s = f<=l? (TPE) 1: (TPE)-1; 
\
-   else s =  *getArgReference_##TPE(stk,pci, 3);   
\
-   if (s == 0 || is_##TPE##_nil(f) || is_##TPE##_nil(l) || 
check_##TPE()) \
+   s = f <= l ? (TPE) 1 : (TPE) -1;  

MonetDB: odbc-tls - Fix compilation error.

2024-05-16 Thread Martin van Dinther via checkin-list
Changeset: 034b96f25e9a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/034b96f25e9a
Modified Files:
clients/odbc/winsetup/setup.c
Branch: odbc-tls
Log Message:

Fix compilation error.


diffs (18 lines):

diff --git a/clients/odbc/winsetup/setup.c b/clients/odbc/winsetup/setup.c
--- a/clients/odbc/winsetup/setup.c
+++ b/clients/odbc/winsetup/setup.c
@@ -97,12 +97,12 @@ struct data {
char *port;
char *database;
char *schema;
-   bool autocommit = true;
+   bool autocommit;
long replysize;
long timezone;
char *logfile;
// TLS settings
-   bool use_tls = false;
+   bool use_tls;
char *servercert;
char *servercerthash;
char *clientkey;
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Dec2023 - Niels says, we need to dup some pointers (lik...

2024-05-16 Thread Sjoerd Mullender via checkin-list
Changeset: d96c23f0856d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d96c23f0856d
Modified Files:
sql/server/rel_select.c
Branch: Dec2023
Log Message:

Niels says, we need to dup some pointers (like in the other case in this file).


diffs (15 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
@@ -1404,9 +1404,9 @@ rel_column_ref(sql_query *query, sql_rel
return sql_error(sql, ERR_AMBIGUOUS, 
SQLSTATE(42000) "SELECT: identifier '%s.%s' ambiguous", tname, cname);
if (v && !exp) {
if (*rel)
-   *rel = rel_crossproduct(sql->sa, *rel, 
v, op_join);
+   *rel = rel_crossproduct(sql->sa, *rel, 
rel_dup(v), op_join);
else
-   *rel = v;
+   *rel = rel_dup(v);
if (!(exp = rel_bind_column3(sql, *rel, sname, 
tname, cname, f)) && sql->session->status == -ERR_AMBIGUOUS)
return NULL;
}
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Dec2023 - Do not recurse if we're dealing with a trigge...

2024-05-16 Thread Sjoerd Mullender via checkin-list
Changeset: 3b20ed670167 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/3b20ed670167
Modified Files:
sql/server/rel_optimize_proj.c
Branch: Dec2023
Log Message:

Do not recurse if we're dealing with a trigger wrapper.


diffs (12 lines):

diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -907,7 +907,7 @@ rel_split_project_(visitor *v, sql_rel *
}
if (is_set(rel->op) || is_basetable(rel->op))
return rel;
-   if (rel->l) {
+   if (rel->l && (rel->op != op_table || rel->flag != TRIGGER_WRAPPER)) {
rel->l = rel_split_project_(v, rel->l, 
(is_topn(rel->op)||is_sample(rel->op)||is_ddl(rel->op)||is_modify(rel->op))?top:0);
if (!rel->l)
return NULL;
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: balanced_union - Implements push_join_down_munion optim...

2024-05-16 Thread stefanos mavros via checkin-list
Changeset: 043afd5efe04 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/043afd5efe04
Modified Files:
sql/server/rel_optimize_proj.c
Branch: balanced_union
Log Message:

Implements push_join_down_munion optimizer WIP 4


diffs (59 lines):

diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -3822,16 +3822,42 @@ rel_push_join_down_munion(visitor *v, sq
} else if (!is_munion(l->op) &&
is_munion(r->op) && !need_distinct(r) && 
!is_single(r) &&
is_semi(rel->op) && je) {
-   /* {semi}join ( A1, munion (B, A2, C)) [A1.partkey = 
A2.partkey] ->
-* {semi}join ( A1, A2 )
-* (ie a single part on n-th munion operand)
+   /* {semi}join ( A1, munion (B, A2a, C, A2b)) 
[A1.partkey = A2.partkey] ->
+* {semi}join ( A1, munion (A2a, A2b))
+* (ie some parts of an n-th munion operand)
 *
 * How to detect that a relation isn't matching?
 *  partitioning is currently done only on 
pkey/fkey's
 *  ie only matching per part if join is on 
pkey/fkey (parts)
 *  and part numbers should match.
 * */
-   // TODO
+   int lpnr = rel_part_nr(l, je);
+   if (lpnr < 0)
+   return rel;
+
+   list *ups = sa_list(v->sql->sa);
+   for (node *n = ((list*)r->l)->h; n; n = n->next) {
+   if (rel_uses_part_nr(n->data, je, lpnr)) {
+   sql_rel *pc = rel_dup(n->data);
+   /*if (!is_project(pc->op))*/
+   /*pc = rel_project(v->sql->sa, 
pc,*/
+   
 /*rel_projections(v->sql, pc, NULL, 1, 1));*/
+   /*rel_rename_exps(v->sql, r->exps, 
pc->exps);*/
+   /*if (r != or) {*/
+   /*pc = rel_project(v->sql->sa, 
pc, NULL);*/
+   /*pc->exps = exps_copy(v->sql, 
or->exps);*/
+   /*set_processed(pc);*/
+   /*}*/
+   /*pc = rel_crossproduct(v->sql->sa, 
rel_dup(ol), pc, rel->op);*/
+   /*pc->exps = exps_copy(v->sql, exps);*/
+   /*pc->attr = exps_copy(v->sql, attr);*/
+   /*set_processed(pc);*/
+   ups = append(ups, pc);
+   }
+   }
+   v->changes++;
+   return rel_inplace_setop_n_ary(v->sql, r, ups, 
op_munion,
+ 
rel_projections(v->sql, rel, NULL, 1, 1));
}
}
return rel;
@@ -3842,7 +3868,7 @@ rel_optimize_unions_topdown_(visitor *v,
 {
rel = rel_push_project_down_union(v, rel);
// TODO: implement rel_push_join_down_munion
-   rel = rel_push_join_down_union(v, rel);
+   rel = rel_push_join_down_munion(v, rel);
return rel;
 }
 
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: balanced_union - Fixes memory management bugs

2024-05-16 Thread stefanos mavros via checkin-list
Changeset: 19377b09172f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/19377b09172f
Modified Files:
sql/server/rel_optimize_proj.c
Branch: balanced_union
Log Message:

Fixes memory management bugs


diffs (45 lines):

diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -3737,6 +3737,7 @@ rel_push_join_down_munion(visitor *v, sq
if (is_munion(l->op) && !need_distinct(l) && !is_single(l) &&
   !is_munion(r->op)){
/* join(munion(a,b,c), d) -> munion(join(a,d), 
join(b,d), join(c,d)) */
+   list *js = sa_list(v->sql->sa);
for (node *n = ((list*)l->l)->h; n; n = n->next) {
sql_rel *pc = rel_dup(n->data);
if (!is_project(pc->op))
@@ -3752,10 +3753,10 @@ rel_push_join_down_munion(visitor *v, sq
pc->attr = exps_copy(v->sql, attr);
set_processed(pc);
pc = rel_project(v->sql->sa, pc, 
rel_projections(v->sql, pc, NULL, 1, 1));
-   n->data = pc;
+   js = append(js, pc);
}
v->changes++;
-   return rel_inplace_setop_n_ary(v->sql, rel, l->l, 
op_munion,
+   return rel_inplace_setop_n_ary(v->sql, rel, js, 
op_munion,
   
rel_projections(v->sql, rel, NULL, 1, 1));
} else if (is_munion(l->op) && !need_distinct(l) && 
!is_single(l) &&
   is_munion(r->op) && !need_distinct(r) && 
!is_single(r) &&
@@ -3799,6 +3800,7 @@ rel_push_join_down_munion(visitor *v, sq
is_munion(r->op) && !need_distinct(r) && 
!is_single(r) &&
   !is_semi(rel->op)) {
/* join(a, munion(b,c,d)) -> munion(join(a,b), 
join(a,c), join(a,d)) */
+   list *js = sa_list(v->sql->sa);
for (node *n = ((list*)r->l)->h; n; n = n->next) {
sql_rel *pc = rel_dup(n->data);
if (!is_project(pc->op))
@@ -3814,10 +3816,10 @@ rel_push_join_down_munion(visitor *v, sq
pc->attr = exps_copy(v->sql, attr);
set_processed(pc);
pc = rel_project(v->sql->sa, pc, 
rel_projections(v->sql, pc, NULL, 1, 1));
-   n->data = pc;
+   js = append(js, pc);
}
v->changes++;
-   return rel_inplace_setop_n_ary(v->sql, rel, r->l, 
op_munion,
+   return rel_inplace_setop_n_ary(v->sql, rel, js, 
op_munion,
   
rel_projections(v->sql, rel, NULL, 1, 1));
} else if (!is_munion(l->op) &&
is_munion(r->op) && !need_distinct(r) && 
!is_single(r) &&
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: balanced_union - Dup the proper (left in this case) pro...

2024-05-16 Thread stefanos mavros via checkin-list
Changeset: cd94173fdc28 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/cd94173fdc28
Modified Files:
sql/server/rel_optimize_proj.c
Branch: balanced_union
Log Message:

Dup the proper (left in this case) projections


diffs (12 lines):

diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -3811,7 +3811,7 @@ rel_push_join_down_munion(visitor *v, sq
pc->exps = exps_copy(v->sql, ol->exps);
set_processed(pc);
}
-   pc = rel_crossproduct(v->sql->sa, pc, 
rel_dup(or), rel->op);
+   pc = rel_crossproduct(v->sql->sa, pc, 
rel_dup(ol), rel->op);
pc->exps = exps_copy(v->sql, exps);
pc->attr = exps_copy(v->sql, attr);
set_processed(pc);
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: balanced_union - Adapts expected relational plan

2024-05-16 Thread stefanos mavros via checkin-list
Changeset: 1d8cb62ff615 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/1d8cb62ff615
Modified Files:
sql/test/rel-optimizers/Tests/join-merge-remote-replica-plan.test
Branch: balanced_union
Log Message:

Adapts expected relational plan


diffs (37 lines):

diff --git a/sql/test/rel-optimizers/Tests/join-merge-remote-replica-plan.test 
b/sql/test/rel-optimizers/Tests/join-merge-remote-replica-plan.test
--- a/sql/test/rel-optimizers/Tests/join-merge-remote-replica-plan.test
+++ b/sql/test/rel-optimizers/Tests/join-merge-remote-replica-plan.test
@@ -63,22 +63,20 @@ select * from foo_p1
 query T nosort
 plan select * from foo_merge, members_rpl
 
-union (
-| union (
+munion (
+| project (
+| | crossproduct (
+| | | table("sys"."foo_p1") [ "foo_p1"."n" UNIQUE as "foo_merge"."n", 
"foo_p1"."m" as "foo_merge"."m" ],
+| | | table("sys"."members_n1") [ "members_n1"."n" UNIQUE as 
"members_rpl"."n", "members_n1"."m" UNIQUE as "members_rpl"."m", 
"members_n1"."%TID%" NOT NULL UNIQUE as "members_rpl"."%TID%" ]
+| | ) [  ]
+| ) [ "foo_merge"."n", "foo_merge"."m", "members_rpl"."n", "members_rpl"."m" ],
+| table (
 | | project (
 | | | crossproduct (
-| | | | table("sys"."foo_p1") [ "foo_p1"."n" UNIQUE as "foo_merge"."n", 
"foo_p1"."m" as "foo_merge"."m" ],
-| | | | table("sys"."members_n1") [ "members_n1"."n" UNIQUE as 
"members_rpl"."n", "members_n1"."m" UNIQUE as "members_rpl"."m", 
"members_n1"."%TID%" NOT NULL UNIQUE as "members_rpl"."%TID%" ]
+| | | | REMOTE("sys"."foo_p2") [ "foo_p2"."n" as "foo_merge"."n", "foo_p2"."m" 
as "foo_merge"."m" ],
+| | | | REMOTE("sys"."members_n2") [ "members_n2"."n" as "members_rpl"."n", 
"members_n2"."m" as "members_rpl"."m", "members_n2"."%TID%" NOT NULL UNIQUE as 
"members_rpl"."%TID%" ]
 | | | ) [  ]
-| | ) [ "foo_merge"."n", "foo_merge"."m", "members_rpl"."n", "members_rpl"."m" 
],
-| | table (
-| | | project (
-| | | | crossproduct (
-| | | | | REMOTE("sys"."foo_p2") [ "foo_p2"."n" as "foo_merge"."n", 
"foo_p2"."m" as "foo_merge"."m" ],
-| | | | | REMOTE("sys"."members_n2") [ "members_n2"."n" as "members_rpl"."n", 
"members_n2"."m" as "members_rpl"."m", "members_n2"."%TID%" NOT NULL UNIQUE as 
"members_rpl"."%TID%" ]
-| | | | ) [  ]
-| | | ) [ "foo_merge"."n", "foo_merge"."m", "members_rpl"."n", 
"members_rpl"."m" ] REMOTE mapi:monetdb://localhost:50002/node2
-| | ) [ "foo_merge"."n", "foo_merge"."m", "members_rpl"."n", "members_rpl"."m" 
]
+| | ) [ "foo_merge"."n", "foo_merge"."m", "members_rpl"."n", "members_rpl"."m" 
] REMOTE mapi:monetdb://localhost:50002/node2
 | ) [ "foo_merge"."n", "foo_merge"."m", "members_rpl"."n", "members_rpl"."m" ],
 | table (
 | | project (
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: odbc-tls - Add missing mapi_exports in msettings.h

2024-05-16 Thread Joeri van Ruth via checkin-list
Changeset: 91a00ebed819 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/91a00ebed819
Modified Files:
clients/mapilib/msettings.h
Branch: odbc-tls
Log Message:

Add missing mapi_exports in msettings.h


diffs (55 lines):

diff --git a/clients/mapilib/msettings.h b/clients/mapilib/msettings.h
--- a/clients/mapilib/msettings.h
+++ b/clients/mapilib/msettings.h
@@ -91,9 +91,9 @@ mparm_classify(mparm parm)
 
 /* returns NULL if not found, pointer to mparm if found */
 mapi_export mparm mparm_parse(const char *name);
-const char *mparm_name(mparm parm);
-mparm mparm_enumerate(int i);
-bool mparm_is_core(mparm parm);
+mapi_export const char *mparm_name(mparm parm);
+mapi_export mparm mparm_enumerate(int i);
+mapi_export bool mparm_is_core(mparm parm);
 
 
 /
@@ -112,8 +112,8 @@ mapi_export bool msettings_malloc_failed
 
 /* returns NULL if could not allocate */
 mapi_export msettings *msettings_create(void);
-msettings *msettings_clone(const msettings *mp);
-extern const msettings *msettings_default;
+mapi_export msettings *msettings_clone(const msettings *mp);
+mapi_export const msettings *msettings_default;
 
 /* always returns NULL */
 mapi_export msettings *msettings_destroy(msettings *mp);
@@ -121,21 +121,21 @@ mapi_export msettings *msettings_destroy
 /* retrieve and set; call abort() on type error */
 
 mapi_export const char* msetting_string(const msettings *mp, mparm parm);
-msettings_error msetting_set_string(msettings *mp, mparm parm, const char* 
value)
+mapi_export msettings_error msetting_set_string(msettings *mp, mparm parm, 
const char* value)
__attribute__((__nonnull__(3)));
 
 mapi_export long msetting_long(const msettings *mp, mparm parm);
-msettings_error msetting_set_long(msettings *mp, mparm parm, long value);
+mapi_export msettings_error msetting_set_long(msettings *mp, mparm parm, long 
value);
 
 mapi_export bool msetting_bool(const msettings *mp, mparm parm);
-msettings_error msetting_set_bool(msettings *mp, mparm parm, bool value);
+mapi_export msettings_error msetting_set_bool(msettings *mp, mparm parm, bool 
value);
 
 /* parse into the appropriate type, or format into newly malloc'ed string 
(NULL means malloc failed) */
-msettings_error msetting_parse(msettings *mp, mparm parm, const char *text);
-char *msetting_as_string(const msettings *mp, mparm parm);
+mapi_export msettings_error msetting_parse(msettings *mp, mparm parm, const 
char *text);
+mapi_export char *msetting_as_string(const msettings *mp, mparm parm);
 
 /* store ignored parameter */
-msettings_error msetting_set_ignored(msettings *mp, const char *key, const 
char *value);
+mapi_export msettings_error msetting_set_ignored(msettings *mp, const char 
*key, const char *value);
 
 /* store named parameter */
 mapi_export msettings_error msetting_set_named(msettings *mp, bool allow_core, 
const char *key, const char *value);
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: odbc-tls - Do not try to log nonexistent settings

2024-05-16 Thread Joeri van Ruth via checkin-list
Changeset: 84865ffc716d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/84865ffc716d
Modified Files:
clients/odbc/driver/SQLConnect.c
Branch: odbc-tls
Log Message:

Do not try to log nonexistent settings


diffs (12 lines):

diff --git a/clients/odbc/driver/SQLConnect.c b/clients/odbc/driver/SQLConnect.c
--- a/clients/odbc/driver/SQLConnect.c
+++ b/clients/odbc/driver/SQLConnect.c
@@ -337,7 +337,7 @@ MNDBConnect(ODBCDbc *dbc,
reallocprintf(&logbuf, &pos, &cap, "SQLConnect: DSN=%s", dsn);
mparm parm;
for (int i = 0; (parm = mparm_enumerate(i)) != MP_UNKNOWN ; 
i++) {
-   if (parm == MP_TABLE || parm == MP_TABLESCHEMA)
+   if (parm == MP_IGNORE || parm == MP_TABLE || parm == 
MP_TABLESCHEMA)
continue;
char *value = msetting_as_string(settings, parm);
char *default_value = 
msetting_as_string(msettings_default, parm);
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: odbc-tls - Extend ODBC Data Source config dialog with n...

2024-05-16 Thread Martin van Dinther via checkin-list
Changeset: 8b47204a299b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8b47204a299b
Modified Files:
clients/odbc/winsetup/resource.h
clients/odbc/winsetup/setup.c
clients/odbc/winsetup/setup.rc
Branch: odbc-tls
Log Message:

Extend ODBC Data Source config dialog with new connection options.


diffs (truncated from 444 to 300 lines):

diff --git a/clients/odbc/winsetup/resource.h b/clients/odbc/winsetup/resource.h
--- a/clients/odbc/winsetup/resource.h
+++ b/clients/odbc/winsetup/resource.h
@@ -29,7 +29,7 @@
 #define IDC_EDIT_SCHEMA 2013
 #define IDC_EDIT_TIMEZONE   2014
 // Secure connections using TLS
-#define IDC_EDIT_TLS2021
+#define IDC_EDIT_USETLS 2021
 #define IDC_EDIT_SERVERCERT 2022
 #define IDC_EDIT_SERVERCERTHASH 2023
 #define IDC_EDIT_CLIENTKEY  2024
diff --git a/clients/odbc/winsetup/setup.c b/clients/odbc/winsetup/setup.c
--- a/clients/odbc/winsetup/setup.c
+++ b/clients/odbc/winsetup/setup.c
@@ -77,13 +77,11 @@ ConfigDriver(HWND hwnd, WORD request, LP
case ODBC_CONFIG_DRIVER:
break;
default:
-   SQLPostInstallerError(ODBC_ERROR_INVALID_REQUEST_TYPE,
- "Invalid request");
+   SQLPostInstallerError(ODBC_ERROR_INVALID_REQUEST_TYPE, "Invalid 
request");
return FALSE;
}
if (strcmp(driver, DriverName) != 0) {
-   SQLPostInstallerError(ODBC_ERROR_INVALID_NAME,
- "Invalid driver name");
+   SQLPostInstallerError(ODBC_ERROR_INVALID_NAME, "Invalid driver 
name");
return FALSE;
}
return TRUE;
@@ -97,16 +95,17 @@ struct data {
char *port;
char *database;
char *schema;
-   bool autocommit;
-   long replysize;
-   long timezone;
+   char *autocommit;
+   char *replysize;
+   char *timezone;
char *logfile;
// TLS settings
-   bool use_tls;
+   char *use_tls;
char *servercert;
char *servercerthash;
char *clientkey;
char *clientcert;
+
HWND parent;
WORD request;
 };
@@ -155,7 +154,16 @@ DialogProc(HWND hwndDlg, UINT uMsg, WPAR
SetDlgItemText(hwndDlg, IDC_EDIT_HOST, datap->host ? 
datap->host : "");
SetDlgItemText(hwndDlg, IDC_EDIT_PORT, datap->port ? 
datap->port : "");
SetDlgItemText(hwndDlg, IDC_EDIT_DATABASE, datap->database ? 
datap->database : "");
+   SetDlgItemText(hwndDlg, IDC_EDIT_SCHEMA, datap->schema ? 
datap->schema : "");
+   SetDlgItemText(hwndDlg, IDC_EDIT_AUTOCOMMIT, datap->autocommit 
? datap->autocommit : "on");
+   SetDlgItemText(hwndDlg, IDC_EDIT_REPLYSIZE, datap->replysize ? 
datap->replysize : "");
+   SetDlgItemText(hwndDlg, IDC_EDIT_TIMEZONE, datap->timezone ? 
datap->timezone : "");
SetDlgItemText(hwndDlg, IDC_EDIT_LOGFILE, datap->logfile ? 
datap->logfile : "");
+   SetDlgItemText(hwndDlg, IDC_EDIT_USETLS, datap->use_tls ? 
datap->use_tls : "off");
+   SetDlgItemText(hwndDlg, IDC_EDIT_SERVERCERT, datap->servercert 
? datap->servercert : "");
+   SetDlgItemText(hwndDlg, IDC_EDIT_SERVERCERTHASH, 
datap->servercerthash ? datap->servercerthash : "");
+   SetDlgItemText(hwndDlg, IDC_EDIT_CLIENTKEY, datap->clientkey ? 
datap->clientkey : "");
+   SetDlgItemText(hwndDlg, IDC_EDIT_CLIENTCERT, datap->clientcert 
? datap->clientcert : "");
if (datap->request == ODBC_ADD_DSN && datap->dsn && *datap->dsn)
EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_DSN), FALSE);
return TRUE;
@@ -167,10 +175,7 @@ DialogProc(HWND hwndDlg, UINT uMsg, WPAR
if (datap->request != ODBC_ADD_DSN || datap->dsn == 
NULL || *datap->dsn == 0) {
GetDlgItemText(hwndDlg, IDC_EDIT_DSN, buf, 
sizeof(buf));
if (!SQLValidDSN(buf)) {
-   MessageBox(hwndDlg,
-  "Invalid Datasource Name",
-  NULL,
-  MB_ICONERROR);
+   MessageBox(hwndDlg, "Invalid Datasource 
Name", NULL, MB_ICONERROR);
return TRUE;
}
if (datap->dsn)
@@ -197,10 +202,46 @@ DialogProc(HWND hwndDlg, UINT uMsg, WPAR
if (datap->database)
free(datap->database);
datap->database = strdup(buf);
+   GetDlgItemText(hwndDlg, IDC_EDIT_SCHEMA, buf, 
sizeof(buf));
+   if (datap->schema)

MonetDB: odbc-tls - Add small comment

2024-05-16 Thread Martin van Dinther via checkin-list
Changeset: dd7b77394725 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/dd7b77394725
Modified Files:
clients/odbc/driver/SQLDriverConnect.c
Branch: odbc-tls
Log Message:

Add small comment


diffs (12 lines):

diff --git a/clients/odbc/driver/SQLDriverConnect.c 
b/clients/odbc/driver/SQLDriverConnect.c
--- a/clients/odbc/driver/SQLDriverConnect.c
+++ b/clients/odbc/driver/SQLDriverConnect.c
@@ -510,7 +510,7 @@ SQLDriverConnectW(SQLHDBC ConnectionHand
   addDbcError, dbc, return SQL_ERROR);
 
rc = MNDBDriverConnect(dbc, WindowHandle, in, SQL_NTS, NULL, 0, &n,
-  DriverCompletion, 1);
+  DriverCompletion, 1);  // Try Only
if (!SQL_SUCCEEDED(rc))
return rc;
clearDbcErrors(dbc);
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - Update changelog on new sys.generate_series(f...

2024-05-16 Thread Martin van Dinther via checkin-list
Changeset: 544925878b7b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/544925878b7b
Modified Files:
sql/ChangeLog
Branch: default
Log Message:

Update changelog on new sys.generate_series(first date, "limit" date, stepsize 
interval month/day) functions


diffs (15 lines):

diff --git a/sql/ChangeLog b/sql/ChangeLog
--- a/sql/ChangeLog
+++ b/sql/ChangeLog
@@ -1,6 +1,11 @@
 # ChangeLog file for sql
 # This file is updated with Maddlog
 
+* Mon May 13 2024 Niels Nes 
+- Extended sys.generate_series() to generate dates. Added 2 new functions:
+  sys.generate_series(first date, "limit" date, stepsize interval month)
+  sys.generate_series(first date, "limit" date, stepsize interval day)
+
 * Thu May  2 2024 Martin van Dinther 
 - Removed the obsolete ANALYZE statement syntax options: SAMPLE nn and
   MINMAX. Both options have been ignored since release Jan2022. Now they
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org