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]

Reply via email to