Update of /cvsroot/monetdb/sql/src/backends/monet4
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv8785/backends/monet4
Modified Files:
sql_gencode.mx sql_session.mx
Log Message:
when a 'relational query fails' we no correctly reset the mvc status
embedded client now uses the renamed mapi module
gencode now handles decimal hacks also for functions with n arguments
sql_optimizer: for now disabled JoinPath optimizer
Index: sql_session.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/backends/monet4/sql_session.mx,v
retrieving revision 1.237
retrieving revision 1.238
diff -u -d -r1.237 -r1.238
--- sql_session.mx 15 Jan 2008 10:42:52 -0000 1.237
+++ sql_session.mx 27 Jan 2008 15:09:24 -0000 1.238
@@ -122,6 +122,7 @@
stmt *s = NULL;
if (mvc_debug_on(c,16384)) {
+ int status = c->session->status;
sql_rel *r;
printf("# semantic relational algebra\n");
r = rel_semantic(c, c->sym);
@@ -130,7 +131,7 @@
printf("# %s\n", c->errstr);
return NULL;
} else {
- c->session->status = 0;
+ c->session->status = status;
printf("# falling back to direct mode \n");
s = output_semantic(c, NULL, c->sym);
}
Index: sql_gencode.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/backends/monet4/sql_gencode.mx,v
retrieving revision 1.167
retrieving revision 1.168
diff -u -d -r1.167 -r1.168
--- sql_gencode.mx 11 Jan 2008 10:51:57 -0000 1.167
+++ sql_gencode.mx 27 Jan 2008 15:09:24 -0000 1.168
@@ -899,8 +899,8 @@
buflen = strlen(fimp) + SMALLBUFSIZ;
buf = NEW_ARRAY(char, buflen + 1);
- dec_func[0] = 0;
backend_create_func(sql, s->op4.funcval->func);
+ dec_func[0] = 0;
if (strcmp(fimp, "round")==0 &&
tpe->type->eclass == EC_DEC) {
len = snprintf(dec_func, SMALLBUFSIZ, "%u,%u,",
@@ -921,13 +921,24 @@
}
case st_Nop:{
char *fimp = sql_func_imp(s->op4.funcval->func);
+ sql_subtype *tpe = NULL;
int opslen = 0;
char *ops;
node *n;
int cnt = list_length(s->op1.stval->op1.lval);
+ char dec_func[SMALLBUFSIZ];
backend_create_func(sql, s->op4.funcval->func);
backend_dumpstmt_(s->op1.stval, nr, sql); /* dump
operands */
+ if (cnt)
+ tpe =
tail_type(s->op1.stval->op1.lval->h->data);
+ dec_func[0] = 0;
+ if (strcmp(fimp, "round")==0 && tpe &&
+ tpe->type->eclass == EC_DEC) {
+ len = snprintf(dec_func, SMALLBUFSIZ, ",%u,%u",
+ tpe->digits, tpe->scale);
+ assert(len < SMALLBUFSIZ);
+ }
write_head(sql, -s->nr);
if (s->nrcols) {
stmt *h;
@@ -951,7 +962,8 @@
stmt *op = n->data;
int n = op->nr;
- opslen += snprintf(ops +
opslen, buflen - opslen, "%cs%d", (opslen) ? ',' : ' ', n);
+ opslen += snprintf(ops +
opslen, buflen - opslen, "%cs%d%s", (opslen) ? ',' : ' ', n, dec_func);
+ dec_func[0] = 0;
}
}
buflen = strlen(fimp) + opslen + SMALLBUFSIZ;
@@ -973,7 +985,8 @@
stmt *op = n->data;
int n = op->nr;
- opslen += snprintf(ops +
opslen, buflen - opslen, "%cs%d", (opslen) ? ',' : ' ', n);
+ opslen += snprintf(ops +
opslen, buflen - opslen, "%cs%d%s", (opslen) ? ',' : ' ', n, dec_func);
+ dec_func[0] = 0;
}
}
buflen = strlen(fimp) + opslen + SMALLBUFSIZ;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins