Changeset: c14294811aa5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c14294811aa5
Modified Files:
clients/odbc/tests/ODBCmetadata.c
monetdb5/mal/mal_listing.c
sql/server/rel_dump.c
Branch: default
Log Message:
Normalize SQL and MAL optimizers info printing.
diffs (74 lines):
diff --git a/clients/odbc/tests/ODBCmetadata.c
b/clients/odbc/tests/ODBCmetadata.c
--- a/clients/odbc/tests/ODBCmetadata.c
+++ b/clients/odbc/tests/ODBCmetadata.c
@@ -254,7 +254,7 @@ compareResultOptClose(SQLHANDLE stmt, SQ
if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO)
{
/* some rows of EXPLAIN output (which has only
1 result column) must be surpressed to get stable output */
if (columns == 1 &&
- (strncmp(buf, "# optimizer.", 12) == 0 ||
+ (strncmp(buf, "# ", 2) == 0 ||
strncmp(buf, "barrier X_", 10) == 0 ||
strncmp(buf, "exit X_", 7) == 0) ) {
continue;
diff --git a/monetdb5/mal/mal_listing.c b/monetdb5/mal/mal_listing.c
--- a/monetdb5/mal/mal_listing.c
+++ b/monetdb5/mal/mal_listing.c
@@ -275,6 +275,38 @@ fcnDefinition(MalBlkPtr mb, InstrPtr p,
return base;
}
+static str
+fmtRemark(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, str t, int flg, str base,
size_t len)
+{
+ char aux[128]; //no mal opt func name is bigger then this
+
+ if (!copystring(&t, "# ", &len))
+ return base;
+ //optimizer remark, i=1 actions field, i=2 usec field
+ if (pci && pci->argc == 3) {
+ if (getFunctionId(pci)) {
+ snprintf(aux, 128, "%-36s %d actions %ld usec",
+ getFunctionId(pci),
+ atoi(renderTerm(mb, stk, pci, 1, flg)),
+ atol(renderTerm(mb, stk, pci, 2,
flg)));
+ if (!copystring(&t, aux, &len))
+ return base;
+ }
+ }
+ else if (pci->argc == 1) {
+ if (getFunctionId(pci)) {
+ if (!copystring(&t, getFunctionId(pci), &len))
+ return base;
+ }
+ }
+ else if (getVar(mb, getArg(pci, 0))->value.val.sval &&
+ getVar(mb, getArg(pci, 0))->value.len > 0 &&
+ !copystring(&t, getVar(mb, getArg(pci,
0))->value.val.sval, &len))
+ return base;
+
+ return base;
+}
+
str
operatorName(int i)
{
@@ -406,6 +438,7 @@ instruction2str(MalBlkPtr mb, MalStkPtr
}
return fcnDefinition(mb, p, t, flg, base, len + (t - base));
case REMsymbol:
+ return fmtRemark(mb, stk, p, t, flg, base, len);
case NOOPsymbol:
if (!copystring(&t, "#", &len))
return base;
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -687,7 +687,7 @@ rel_print_(mvc *sql, stream *fout, sql_r
if (run->name) { /* if name is set, then the optimizer
did run */
print_indent(sql, fout, depth, decorate);
- mnstr_printf(fout, "%-36s %3d actions " LLFMT "
usec",
+ mnstr_printf(fout, "# %-36s %3d actions " LLFMT
" usec",
run->name,
run->nchanges, run->time);
}
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]