Changeset: 719b030043e7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=719b030043e7
Modified Files:
sql/backends/monet5/sql_gencode.c
Branch: resultset
Log Message:
Cleanup the code.
diffs (truncated from 335 to 300 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
@@ -164,8 +164,6 @@ dump_header(mvc *sql, MalBlkPtr mb, stmt
node *n;
InstrPtr q;
int ret = -1;
-
-#ifdef NEWRESULTSET
// gather the meta information
int tblId, nmeId, tpeId, lenId, scaleId;
InstrPtr p, list;
@@ -185,7 +183,7 @@ dump_header(mvc *sql, MalBlkPtr mb, stmt
getArg(list,3) = tpeId;
getArg(list,4) = lenId;
getArg(list,5) = scaleId;
-#endif
+
(void) s;
for (n = l->h; n; n = n->next) {
@@ -206,24 +204,12 @@ dump_header(mvc *sql, MalBlkPtr mb, stmt
fqtn = NEW_ARRAY(char, fqtnl);
snprintf(fqtn, fqtnl, "%s.%s", nsn, ntn);
-#ifdef NEWRESULTSET
metaInfo(tblId,Str,fqtn);
metaInfo(nmeId,Str,cn);
metaInfo(tpeId,Str,(t->type->localtype == TYPE_void ?
"char" : t->type->sqlname));
metaInfo(lenId,Int,t->digits);
metaInfo(scaleId,Int,t->scale);
list = pushArgument(mb,list,c->nr);
-#else
- (void) s;
- q = newStmt1(mb, sqlRef, "rsColumn");
- q = pushArgument(mb, q, s->nr);
- q = pushStr(mb, q, fqtn);
- q = pushStr(mb, q, cn);
- q = pushStr(mb, q, t->type->localtype == TYPE_void ?
"char" : t->type->sqlname);
- q = pushInt(mb, q, t->digits);
- q = pushInt(mb, q, t->scale);
- q = pushArgument(mb, q, c->nr);
-#endif
_DELETE(fqtn);
} else
q = NULL;
@@ -232,7 +218,6 @@ dump_header(mvc *sql, MalBlkPtr mb, stmt
if (q == NULL)
return -1;
}
-#ifdef NEWRESULTSET
getArg(list,1) = tblId;
getArg(list,2) = nmeId;
getArg(list,3) = tpeId;
@@ -240,7 +225,6 @@ dump_header(mvc *sql, MalBlkPtr mb, stmt
getArg(list,5) = scaleId;
ret = getArg(list,0);
pushInstruction(mb,list);
-#endif
return ret;
}
@@ -2282,17 +2266,14 @@ static int
if (lst->type == st_list) {
list *l = lst->op4.lval;
- int file, cnt = list_length(l);
+ int cnt = list_length(l);
stmt *first;
-#ifndef NEWRESULTSET
- InstrPtr k;
-#endif
n = l->h;
first = n->data;
/* single value result, has a fast exit */
- if (cnt == 1 && first->nrcols <= 0 && s->type
!= st_export) {
+ if (cnt == 1 && first->nrcols <= 0 ){
stmt *c = n->data;
sql_subtype *t = tail_type(c);
char *tname = table_name(sql->mvc->sa,
c);
@@ -2308,20 +2289,6 @@ static int
snprintf(fqtn, fqtnl, "%s.%s", nsn,
ntn);
-#ifndef NEWRESULTSET
- q = newStmt2(mb, sqlRef,
exportValueRef);
- if (q) {
- s->nr = getDestVar(q);
- q = pushInt(mb, q,
sql->mvc->type);
- q = pushStr(mb, q, fqtn);
- q = pushStr(mb, q, cn);
- q = pushStr(mb, q,
t->type->localtype == TYPE_void ? "char" : t->type->sqlname);
- q = pushInt(mb, q, t->digits);
- q = pushInt(mb, q, t->scale);
- q = pushArgument(mb, q, c->nr);
- q = pushStr(mb, q, ""); /*
warning */
- }
-#else
q = newStmt2(mb, sqlRef, resultSetRef);
if (q) {
s->nr = getDestVar(q);
@@ -2332,7 +2299,7 @@ static int
q = pushInt(mb, q, t->scale);
q = pushArgument(mb, q, c->nr);
}
-#endif
+
_DELETE(ntn);
_DELETE(nsn);
_DELETE(fqtn);
@@ -2340,26 +2307,31 @@ static int
return -1;
break;
}
-#ifndef NEWRESULTSET
- k = newStmt2(mb, sqlRef, resultSetRef);
- s->nr = getDestVar(k);
- k = pushInt(mb, k, cnt);
- if (s->type == st_export) {
- node *n = s->op4.lval->h;
- char *sep = n->data;
- char *rsep = n->next->data;
- char *ssep = n->next->next->data;
- char *ns = n->next->next->next->data;
+ if ( (s->nr =dump_header(sql->mvc, mb, s, l)) <
0)
+ return -1;
- k = pushStr(mb, k, sep);
- k = pushStr(mb, k, rsep);
- k = pushStr(mb, k, ssep);
- k = pushStr(mb, k, ns);
- } else {
- k = pushInt(mb, k, sql->mvc->type);
- }
- (void) pushArgument(mb, k, first->nr);
-#endif
+ } else {
+ q = newStmt1(mb, sqlRef, "raise");
+ q = pushStr(mb, q, "not a valid output list\n");
+ if (q == NULL)
+ return -1;
+ s->nr = 1;
+ }
+ }
+ break;
+ case st_export:{
+ stmt *lst = s->op1;
+
+ if (_dumpstmt(sql, mb, lst) < 0)
+ return -1;
+
+ if (lst->type == st_list) {
+ list *l = lst->op4.lval;
+ int file;
+
+ n = l->h;
+
+ /* single value result, has a fast exit */
if ( (s->nr =dump_header(sql->mvc, mb, s, l)) <
0)
return -1;
@@ -2387,170 +2359,8 @@ static int
return -1;
file = getDestVar(q);
}
-#ifndef NEWRESULTSET
- else {
- q = newStmt(mb, "io", "stdout");
- if (q == NULL)
- return -1;
- file = getDestVar(q);
- }
- q = newStmt2(mb, sqlRef, exportResultRef);
- q = pushArgument(mb, q, file);
- q = pushArgument(mb, q, s->nr);
- if (q == NULL)
- return -1;
- if (s->type == st_export && s->op2) {
- q = newStmt(mb, "streams", "close");
- q = pushArgument(mb, q, file);
- if (q == NULL)
- return -1;
- }
-#else
-#endif
} else {
- q = newStmt1(mb, sqlRef, "print");
- q = pushStr(mb, q, "not a valid output list\n");
- if (q == NULL)
- return -1;
- s->nr = 1;
- }
- }
- break;
- case st_export:{
- stmt *lst = s->op1;
-
- if (_dumpstmt(sql, mb, lst) < 0)
- return -1;
-
- if (lst->type == st_list) {
- list *l = lst->op4.lval;
- int file, cnt = list_length(l);
- stmt *first;
-#ifndef NEWRESULTSET
- InstrPtr k;
-#endif
-
- n = l->h;
- first = n->data;
-
- /* single value result, has a fast exit */
- if (cnt == 1 && first->nrcols <= 0 && s->type
!= st_export) {
- stmt *c = n->data;
- sql_subtype *t = tail_type(c);
- char *tname = table_name(sql->mvc->sa,
c);
- char *sname = schema_name(sql->mvc->sa,
c);
- char *_empty = "";
- char *tn = (tname) ? tname : _empty;
- char *sn = (sname) ? sname : _empty;
- char *cn = column_name(sql->mvc->sa, c);
- char *ntn = sql_escape_ident(tn);
- char *nsn = sql_escape_ident(sn);
- size_t fqtnl = strlen(ntn) + 1 +
strlen(nsn) + 1;
- char *fqtn = NEW_ARRAY(char, fqtnl);
-
- snprintf(fqtn, fqtnl, "%s.%s", nsn,
ntn);
-
-#ifndef NEWRESULTSET
- q = newStmt2(mb, sqlRef,
exportValueRef);
- if (q) {
- s->nr = getDestVar(q);
- q = pushInt(mb, q,
sql->mvc->type);
- q = pushStr(mb, q, fqtn);
- q = pushStr(mb, q, cn);
- q = pushStr(mb, q,
t->type->localtype == TYPE_void ? "char" : t->type->sqlname);
- q = pushInt(mb, q, t->digits);
- q = pushInt(mb, q, t->scale);
- q = pushArgument(mb, q, c->nr);
- q = pushStr(mb, q, ""); /*
warning */
- }
-#else
- q = newStmt2(mb, sqlRef, resultSetRef);
- if (q) {
- s->nr = getDestVar(q);
- q = pushStr(mb, q, fqtn);
- q = pushStr(mb, q, cn);
- q = pushStr(mb, q,
t->type->localtype == TYPE_void ? "char" : t->type->sqlname);
- q = pushInt(mb, q, t->digits);
- q = pushInt(mb, q, t->scale);
- q = pushArgument(mb, q, c->nr);
- }
-#endif
- _DELETE(ntn);
- _DELETE(nsn);
- _DELETE(fqtn);
- if (q == NULL)
- return -1;
- break;
- }
-#ifndef NEWRESULTSET
- k = newStmt2(mb, sqlRef, resultSetRef);
- s->nr = getDestVar(k);
- k = pushInt(mb, k, cnt);
- if (s->type == st_export) {
- node *n = s->op4.lval->h;
- char *sep = n->data;
- char *rsep = n->next->data;
- char *ssep = n->next->next->data;
- char *ns = n->next->next->next->data;
-
- k = pushStr(mb, k, sep);
- k = pushStr(mb, k, rsep);
- k = pushStr(mb, k, ssep);
- k = pushStr(mb, k, ns);
- } else {
- k = pushInt(mb, k, sql->mvc->type);
- }
- (void) pushArgument(mb, k, first->nr);
-#endif
- if ( (s->nr =dump_header(sql->mvc, mb, s, l)) <
0)
- return -1;
-
- if (s->type == st_export && s->op2) {
- int codeset;
-
- q = newStmt(mb, "str", "codeset");
- if (q == NULL)
- return -1;
- codeset = getDestVar(q);
- if ((file = _dumpstmt(sql, mb, s->op2))
< 0)
- return -1;
-
- q = newStmt(mb, "str", "iconv");
- q = pushArgument(mb, q, file);
- q = pushStr(mb, q, "UTF-8");
- q = pushArgument(mb, q, codeset);
- if (q == NULL)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list