MonetDB: Jun2020 - Merged with linear-hashing

2020-03-27 Thread Pedro Ferreira
Changeset: 266ffd6ecc84 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=266ffd6ecc84
Modified Files:
sql/server/rel_propagate.c
sql/server/rel_psm.c
sql/server/rel_select.c
sql/server/rel_updates.c
sql/test/pg_regress/Tests/alter_table.stable.err
Branch: Jun2020
Log Message:

Merged with linear-hashing


diffs (121 lines):

diff --git a/sql/server/rel_propagate.c b/sql/server/rel_propagate.c
--- a/sql/server/rel_propagate.c
+++ b/sql/server/rel_propagate.c
@@ -34,11 +34,12 @@ rel_generate_anti_expression(mvc *sql, s
*anti_rel = rel_project(sql->sa, *anti_rel, NULL);
if (!(res = rel_parse_val(sql, sa_message(sql->sa, "select 
%s;", mt->part.pexp->exp), sql->emode, (*anti_rel)->l)))
return NULL;
-   exp_label(sql->sa, res, ++sql->label);
} else {
assert(0);
}
(*anti_rel)->exps = new_exp_list(sql->sa);
+   if (!exp_name(res))
+   exp_label(sql->sa, res, ++sql->label);
append((*anti_rel)->exps, res);
res = exp_ref(sql->sa, res);
return res;
@@ -58,9 +59,11 @@ rel_create_common_relation(mvc *sql, sql
inserts = ((sql_rel*)(rel->r))->l;
for (node *n = t->columns.set->h, *m = inserts->exps->h; n && 
m; n = n->next, m = m->next) {
sql_column *col = n->data;
-   sql_exp *before = m->data;
-   sql_exp *help = exp_ref(sql->sa, before);
+   sql_exp *before = m->data, *help;
 
+   if (!exp_name(before))
+   exp_label(sql->sa, before, ++sql->label);
+   help = exp_ref(sql->sa, before);
exp_setname(sql->sa, help, t->base.name, 
col->base.name);
list_append(l, help);
}
@@ -86,9 +89,11 @@ rel_generate_anti_insert_expression(mvc 
inserts = inserts->l;
for (node *n = t->columns.set->h, *m = inserts->exps->h; n && 
m; n = n->next, m = m->next) {
sql_column *col = n->data;
-   sql_exp *before = m->data;
-   sql_exp *help = exp_ref(sql->sa, before);
+   sql_exp *before = m->data, *help;
 
+   if (!exp_name(before))
+   exp_label(sql->sa, before, ++sql->label);
+   help = exp_ref(sql->sa, before);
exp_setname(sql->sa, help, t->base.name, 
col->base.name);
list_append(l, help);
}
@@ -106,6 +111,8 @@ rel_generate_anti_insert_expression(mvc 
} else {
assert(0);
}
+   if (!exp_name(res))
+   exp_label(sql->sa, res, ++sql->label);
res = exp_ref(sql->sa, res);
return res;
 }
diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c
--- a/sql/server/rel_psm.c
+++ b/sql/server/rel_psm.c
@@ -478,8 +478,11 @@ rel_psm_return( sql_query *query, sql_su
 
if (!cname)
cname = sa_strdup(sql->sa, number2name(name, 
sizeof(name), ++sql->label));
-   if (!isproject) 
+   if (!isproject) {
+   if (!exp_name(e))
+   exp_label(sql->sa, e, ++sql->label);
e = exp_ref(sql->sa, e);
+   }
e = rel_check_type(sql, &ce->type, oexps_rel, e, 
type_equal);
if (!e)
return NULL;
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
@@ -4385,6 +4385,8 @@ rel_order_by(sql_query *query, sql_rel *
e = exps_get_exp(rel->exps, nr);
if (!e)
return sql_error(sql, 
02, SQLSTATE(42000) "SELECT: the order by column number (%d) is not in the 
number of projections range (%d)", nr, list_length(rel->exps));
+   if (!exp_name(e))
+   exp_label(sql->sa, e, 
++sql->label);
e = exp_ref(sql->sa, e);
/* do not cache this query */
if (e)
@@ -5094,7 +5096,7 @@ rel_value_exp2(sql_query *query, sql_rel
 
if (!exp_name(exp))
exp_label(sql->sa, exp, ++sql->label);
-   res  = exp_ref(sql->sa, exp);
+   res = exp_ref(sql->sa, exp);
res->card = (*rel)->card;
   

MonetDB: Jun2020 - Merged with linear-hashing

2020-03-26 Thread Pedro Ferreira
Changeset: 3d58e1ccd3f8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3d58e1ccd3f8
Added Files:
sql/test/merge-partitions/Tests/mergepart30.sql
sql/test/merge-partitions/Tests/mergepart30.stable.err
sql/test/merge-partitions/Tests/mergepart30.stable.out
Modified Files:
sql/backends/monet5/sql_cat.c
sql/server/rel_schema.c
sql/test/merge-partitions/Tests/All
sql/test/merge-partitions/Tests/mergepart23.stable.err
Branch: Jun2020
Log Message:

Merged with linear-hashing


diffs (175 lines):

diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c
--- a/sql/backends/monet5/sql_cat.c
+++ b/sql/backends/monet5/sql_cat.c
@@ -162,6 +162,8 @@ validate_alter_table_add_table(mvc *sql,
node *n = cs_find_id(&rmt->members, rpt->base.id);
if (isView(rpt))
throw(SQL,call,SQLSTATE(42000) "ALTER TABLE: can't add a view 
into a %s", errtable);
+   if (isDeclaredTable(rpt))
+   throw(SQL,call,SQLSTATE(42000) "ALTER TABLE: can't add a 
declared table into a %s", errtable);
if (ms->base.id != ps->base.id)
throw(SQL,call,SQLSTATE(42000) "ALTER TABLE: all children 
tables of '%s.%s' must be part of schema '%s'", msname, mtname, msname);
if (n && !update)
@@ -182,9 +184,13 @@ alter_table_add_table(mvc *sql, char *ms
sql_table *mt = NULL, *pt = NULL;
str msg = validate_alter_table_add_table(sql, 
"sql.alter_table_add_table", msname, mtname, psname, ptname, &mt, &pt, 0);
 
-   if (msg == MAL_SUCCEED)
+   if (msg == MAL_SUCCEED) {
+   if (isRangePartitionTable(mt))
+   return createException(SQL, 
"sql.alter_table_add_table",SQLSTATE(42000) "ALTER TABLE: a range partition is 
required while adding under a range partition table");
+   if (isListPartitionTable(mt))
+   return createException(SQL, 
"sql.alter_table_add_table",SQLSTATE(42000) "ALTER TABLE: a value partition is 
required while adding under a list partition table");
sql_trans_add_table(sql->session->tr, mt, pt);
-
+   }
return msg;
 }
 
@@ -206,11 +212,11 @@ alter_table_add_range_partition(mvc *sql
} else if (!isRangePartitionTable(mt)) {
msg = 
createException(SQL,"sql.alter_table_add_range_partition",SQLSTATE(42000)
"ALTER 
TABLE: cannot add range partition into a %s table",
-   
(mt->type == tt_merge_table)?"merge":"list partition");
+   
(isListPartitionTable(mt))?"list partition":"merge");
goto finish;
} else if (!update && pt->p) {
msg = 
createException(SQL,"sql.alter_table_add_range_partition",SQLSTATE(42000)
- "ALTER TABLE: table 
%s.%s is already part of another range partition table",
+ "ALTER TABLE: table 
'%s.%s' is already part of another table",
  psname, ptname);
goto finish;
}
@@ -302,11 +308,11 @@ alter_table_add_value_partition(mvc *sql
} else if (!isListPartitionTable(mt)) {
msg = 
createException(SQL,"sql.alter_table_add_value_partition",SQLSTATE(42000)
"ALTER 
TABLE: cannot add value partition into a %s table",
-   
(mt->type == tt_merge_table)?"merge":"range partition");
+   
(isRangePartitionTable(mt))?"range partition":"merge");
goto finish;
} else if (!update && pt->p) {
msg = 
createException(SQL,"sql.alter_table_add_value_partition",SQLSTATE(42000)
- "ALTER TABLE: table 
%s.%s is already part of another list partition table",
+ "ALTER TABLE: table 
'%s.%s' is already part of another table",
  psname, ptname);
goto finish;
}
diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c
--- a/sql/server/rel_schema.c
+++ b/sql/server/rel_schema.c
@@ -1475,12 +1475,22 @@ sql_alter_table(sql_query *query, dlist 
if (isView(pt))
return sql_error(sql, 02, 
SQLSTATE(42000) "ALTER TABLE: can't add a view into a %s",
 
TABLE_TYPE_DESCRIPTION(t->type, t->properties));
+   if (isDeclared

MonetDB: Jun2020 - Merged with linear-hashing

2020-03-24 Thread Pedro Ferreira
Changeset: b025af69aa7d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b025af69aa7d
Modified Files:
sql/backends/monet5/sql_gencode.c
Branch: Jun2020
Log Message:

Merged with linear-hashing


diffs (78 lines):

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
@@ -689,9 +689,10 @@ backend_dumpstmt(backend *be, MalBlkPtr 
MalBlkPtr old_mb = be->mb;
stmt *s;
 
-   // Always keep the SQL query around for monitoring
+   /* Always keep the SQL query around for monitoring */
+   if (query) {
+   char *escaped_q;
 
-   if (query) {
while (*query && isspace((unsigned char) *query))
query++;
 
@@ -702,25 +703,21 @@ backend_dumpstmt(backend *be, MalBlkPtr 
}
setVarType(mb, getArg(q, 0), TYPE_void);
setVarUDFtype(mb, getArg(q, 0));
-   q = pushStr(mb, q, query);
+   if (!(escaped_q = sql_escape_str((char*) query))) {
+   sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+   return -1;
+   }
+   q = pushStr(mb, q, escaped_q);
+   GDKfree(escaped_q);
+   if (q == NULL) {
+   sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+   return -1;
+   }
q = pushStr(mb, q, getSQLoptimizer(be->mvc));
if (q == NULL) {
sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
return -1;
}
-
-/* Crashes
-   q = newStmt(mb, querylogRef, contextRef);
-   if (q == NULL) {
-   return -1;
-   }
-   setVarType(mb, getArg(q, 0), TYPE_void);
-   setVarUDFtype(mb, getArg(q, 0));
-   q = pushStr(mb, q, GDKgetenv("monet_release"));
-   q = pushStr(mb, q, GDKgetenv("monet_version"));
-   q = pushStr(mb, q, GDKgetenv("revision"));
-   q = pushStr(mb, q, GDKgetenv("merovingian_uri"));
-*/
}
 
/* announce the transaction mode */
@@ -820,7 +817,7 @@ backend_dumpproc(backend *be, Client c, 
Symbol curPrg = 0, backup = NULL;
InstrPtr curInstr = 0;
int argc = 0, res;
-   char arg[IDLENGTH], *escaped_q = NULL;
+   char arg[IDLENGTH];
node *n;
 
backup = c->curprg;
@@ -895,15 +892,7 @@ backend_dumpproc(backend *be, Client c, 
}
}
 
-   if (be->q) {
-   if (!(escaped_q = sql_escape_str(be->q->codestring))) {
-   sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
-   goto cleanup;
-   }
-   }
-   res = backend_dumpstmt(be, mb, r, 1, 1, escaped_q);
-   GDKfree(escaped_q);
-   if (res < 0)
+   if ((res = backend_dumpstmt(be, mb, r, 1, 1, be->q ? be->q->codestring 
: NULL)) < 0)
goto cleanup;
 
if (cq) {
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list