MonetDB: default - Fix a few leaks upon errors
Changeset: 251770a80b1a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=251770a80b1a Modified Files: sql/backends/monet5/sql.c sql/backends/monet5/sql_cat.c Branch: default Log Message: Fix a few leaks upon errors diffs (119 lines): diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c --- a/sql/backends/monet5/sql.c +++ b/sql/backends/monet5/sql.c @@ -2025,7 +2025,7 @@ mvc_export_table_wrap( Client cntxt, Mal tpe = BATdescriptor(tpeId); len = BATdescriptor(lenId); scale = BATdescriptor(scaleId); - if( msg || tbl == NULL || atr == NULL || tpe == NULL || len == NULL || scale == NULL) + if( tbl == NULL || atr == NULL || tpe == NULL || len == NULL || scale == NULL) goto wrapup_result_set1; /* mimick the old rsColumn approach; */ itertbl = bat_iterator(tbl); @@ -2047,6 +2047,9 @@ mvc_export_table_wrap( Client cntxt, Mal if( b) BBPunfix(bid); } + if ( msg ) + goto wrapup_result_set1; + /* now select the file channel */ if ( strcmp(filename,"stdout") == 0 ) s= cntxt->fdout; @@ -2190,6 +2193,7 @@ mvc_export_row_wrap( Client cntxt, MalBl l = strlen((char *) R); rsep = GDKmalloc(l + 1); if(rsep == 0){ + GDKfree(tsep); msg = createException(SQL, "sql.resultSet", SQLSTATE(HY001) MAL_MALLOC_FAIL); goto wrapup_result_set; } @@ -2198,6 +2202,8 @@ mvc_export_row_wrap( Client cntxt, MalBl l = strlen((char *) S); ssep = GDKmalloc(l + 1); if(ssep == 0){ + GDKfree(tsep); + GDKfree(rsep); msg = createException(SQL, "sql.resultSet", SQLSTATE(HY001) MAL_MALLOC_FAIL); goto wrapup_result_set; } @@ -2206,6 +2212,9 @@ mvc_export_row_wrap( Client cntxt, MalBl l = strlen((char *) N); ns = GDKmalloc(l + 1); if(ns == 0){ + GDKfree(tsep); + GDKfree(rsep); + GDKfree(ssep); msg = createException(SQL, "sql.resultSet", SQLSTATE(HY001) MAL_MALLOC_FAIL); goto wrapup_result_set; } @@ -3514,10 +3523,13 @@ sql_querylog_catalog(Client cntxt, MalBl { int i; BAT *t[8]; + str msg; (void) cntxt; (void) mb; - QLOGcatalog(t); + msg = QLOGcatalog(t); + if( msg != MAL_SUCCEED) + return msg; for (i = 0; i < 8; i++) if( t[i]){ bat id = t[i]->batCacheid; @@ -3534,10 +3546,13 @@ sql_querylog_calls(Client cntxt, MalBlkP { int i; BAT *t[10]; + str msg; (void) cntxt; (void) mb; - QLOGcalls(t); + msg = QLOGcalls(t); + if( msg != MAL_SUCCEED) + return msg; for (i = 0; i < 9; i++) if( t[i]){ bat id = t[i]->batCacheid; @@ -3556,8 +3571,7 @@ sql_querylog_empty(Client cntxt, MalBlkP (void) mb; (void) stk; (void) pci; - QLOGempty(NULL); - return MAL_SUCCEED; + return QLOGempty(NULL); } /* str sql_rowid(oid *rid, ptr v, str *sname, str *tname); */ 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 @@ -796,7 +796,7 @@ SQLcreate_seq(Client cntxt, MalBlkPtr mb str SQLalter_seq(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) { mvc *sql = NULL; - str msg; + str msg = MAL_SUCCEED; str sname = *getArgReference_str(stk, pci, 1); str seqname = *getArgReference_str(stk, pci, 2); sql_sequence *s = *(sql_sequence **) getArgReference(stk, pci, 3); @@ -815,7 +815,7 @@ SQLalter_seq(Client cntxt, MalBlkPtr mb, str SQLdrop_seq(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) { mvc *sql = NULL; - str msg; + str msg = MAL_SUCCEED; str sname = *getArgReference_str(stk, pci, 1); str name = *getArgReference_str(stk, pci, 2); @@ -827,7 +827,7 @@ SQLdrop_seq(Client cntxt, MalBlkPtr mb, str SQLcreate_schema(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) { mvc *sql = NULL; - str msg; + str msg = MAL_SUCCEED; str sname = *getArgReference_str(stk, pci, 1); str name = SaveArgReference(stk, pci, 2); int auth_id; ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: default - Just comments
Changeset: aa64687c0e17 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=aa64687c0e17 Modified Files: monetdb5/mal/mal_instruction.c Branch: default Log Message: Just comments diffs (12 lines): diff --git a/monetdb5/mal/mal_instruction.c b/monetdb5/mal/mal_instruction.c --- a/monetdb5/mal/mal_instruction.c +++ b/monetdb5/mal/mal_instruction.c @@ -1298,6 +1298,8 @@ pushArgument(MalBlkPtr mb, InstrPtr p, i if (mb->maxarg < pn->maxarg) mb->maxarg = pn->maxarg; } + /* protect against the case that the instruction is malloced +* in isolation */ if( mb->maxarg < p->maxarg) mb->maxarg= p->maxarg; ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: default - Merge with Jul2017 branch.
Changeset: 149047444b76 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=149047444b76 Modified Files: clients/mapiclient/tomograph.c gdk/gdk_aggr.c gdk/gdk_utils.c Branch: default Log Message: Merge with Jul2017 branch. diffs (112 lines): diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c --- a/gdk/gdk_aggr.c +++ b/gdk/gdk_aggr.c @@ -1355,7 +1355,7 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT BUN *restrict rems = NULL; lng *restrict cnts = NULL; dbl *restrict dbls; - BAT *bn = NULL; + BAT *bn = NULL, *cn = NULL; BUN start, end; const oid *cand = NULL, *candend = NULL; const char *err; @@ -1384,11 +1384,12 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT } if (cntsp) { lng zero = 0; - if ((*cntsp = BATconstant(ngrp == 0 ? 0 : min, TYPE_lng, , ngrp, TRANSIENT)) == NULL) { + if ((cn = BATconstant(ngrp == 0 ? 0 : min, TYPE_lng, , ngrp, TRANSIENT)) == NULL) { GDKerror("BATgroupavg: failed to create BAT\n"); BBPreclaim(bn); return GDK_FAIL; } + *cntsp = cn; } *bnp = bn; return GDK_SUCCEED; @@ -1404,10 +1405,11 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT return GDK_FAIL; if (cntsp) { lng one = 1; - if ((*cntsp = BATconstant(ngrp == 0 ? 0 : min, TYPE_lng, , ngrp, TRANSIENT)) == NULL) { + if ((cn = BATconstant(ngrp == 0 ? 0 : min, TYPE_lng, , ngrp, TRANSIENT)) == NULL) { BBPreclaim(bn); return GDK_FAIL; } + *cntsp = cn; } *bnp = bn; return GDK_SUCCEED; @@ -1430,9 +1432,9 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT break; } if (cntsp) { - if ((*cntsp = COLnew(min, TYPE_lng, ngrp, TRANSIENT)) == NULL) + if ((cn = COLnew(min, TYPE_lng, ngrp, TRANSIENT)) == NULL) goto alloc_fail; - cnts = (lng *) Tloc(*cntsp, 0); + cnts = (lng *) Tloc(cn, 0); memset(cnts, 0, ngrp * sizeof(lng)); } else { cnts = GDKzalloc(ngrp * sizeof(lng)); @@ -1476,8 +1478,8 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT break; default: GDKfree(rems); - if (cntsp) - BBPreclaim(*cntsp); + if (cn) + BBPreclaim(cn); else GDKfree(cnts); BBPunfix(bn->batCacheid); @@ -1486,15 +1488,16 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT return GDK_FAIL; } GDKfree(rems); - if (cntsp == NULL) + if (cn == NULL) GDKfree(cnts); else { - BATsetcount(*cntsp, ngrp); - (*cntsp)->tkey = BATcount(*cntsp) <= 1; - (*cntsp)->tsorted = BATcount(*cntsp) <= 1; - (*cntsp)->trevsorted = BATcount(*cntsp) <= 1; - (*cntsp)->tnil = 0; - (*cntsp)->tnonil = 1; + BATsetcount(cn, ngrp); + cn->tkey = BATcount(cn) <= 1; + cn->tsorted = BATcount(cn) <= 1; + cn->trevsorted = BATcount(cn) <= 1; + cn->tnil = 0; + cn->tnonil = 1; + *cntsp = cn; } BATsetcount(bn, ngrp); bn->tkey = BATcount(bn) <= 1; @@ -1511,6 +1514,7 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT GDKfree(rems); if (cntsp) { BBPreclaim(*cntsp); + *cntsp = NULL; } else if (cnts) { GDKfree(cnts); } diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c --- a/gdk/gdk_utils.c +++ b/gdk/gdk_utils.c @@ -979,12 +979,8 @@ doGDKaddbuf(const char *prefix, const ch } *dst = '\0'; } else { - /* construct format string because the format string -* must start with ! */ - char format[32]; - - snprintf(format, sizeof(format), "%s%%.*s%s", prefix ? prefix : "", suffix ? suffix : ""); - THRprintf(GDKout, format, (int) messagelen, message); + THRprintf(GDKout, "%s%.*s%s", prefix ? prefix : "", + (int) messagelen, message, suffix ? suffix : ""); } } ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: Jul2017 - Fix an old thinko and use a constant string a...
Changeset: c47e8f94d083 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c47e8f94d083 Modified Files: gdk/gdk_utils.c Branch: Jul2017 Log Message: Fix an old thinko and use a constant string as format string. diffs (18 lines): diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c --- a/gdk/gdk_utils.c +++ b/gdk/gdk_utils.c @@ -979,12 +979,8 @@ doGDKaddbuf(const char *prefix, const ch } *dst = '\0'; } else { - /* construct format string because the format string -* must start with ! */ - char format[32]; - - snprintf(format, sizeof(format), "%s%%.*s%s", prefix ? prefix : "", suffix ? suffix : ""); - THRprintf(GDKout, format, (int) messagelen, message); + THRprintf(GDKout, "%s%.*s%s", prefix ? prefix : "", + (int) messagelen, message, suffix ? suffix : ""); } } ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: Jul2017 - Simplify code, and only use constant strings ...
Changeset: edb31e432865 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=edb31e432865 Modified Files: clients/mapiclient/tomograph.c Branch: Jul2017 Log Message: Simplify code, and only use constant strings as fprintf formats. (grafted from 976a4b688e4f1c0c123df6b16208737d90670070) diffs (70 lines): diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c --- a/clients/mapiclient/tomograph.c +++ b/clients/mapiclient/tomograph.c @@ -954,49 +954,23 @@ showio(void) static void fprintf_time(FILE *f, lng time) { - int TME = TME_DD|TME_HH|TME_MM|TME_SS|TME_MS|TME_US; - int tail = 0; - const char *fmt = NULL; - - if (TME & TME_DD && (tail || time >= US_DD)) { - fmt = LLFMT"%s"; - fprintf(f, fmt, time / US_DD, " d "); - time %= US_DD; - TME &= TME_HH; - tail = 1; - } - if (TME & TME_HH && (tail || time >= US_HH)) { - fmt = tail ? "%02d%s" : "%d%s"; - fprintf(f, fmt, (int) (time / US_HH), " h "); - time %= US_HH; - TME &= TME_MM; - tail = 1; - } - if (TME & TME_MM && (tail || time >= US_MM)) { - fmt = tail ? "%02d%s" : "%d%s"; - fprintf(f, fmt, (int) (time / US_MM), " m "); - time %= US_MM; - TME &= TME_SS; - tail = 1; - } - if (TME & TME_SS && (tail || time >= US_SS)) { - fmt = tail ? "%02d%s" : "%d%s"; - fprintf(f, fmt, (int) (time / US_SS), (TME & TME_MS) ? "." : " s "); - time %= US_SS; - TME &= TME_MS; - tail = 1; - } - if (TME & TME_MS && (tail || time >= US_MS)) { - fmt = tail ? "%03d%s" : "%d%s"; - fprintf(f, fmt, (int) (time / US_MS), (TME & TME_US) ? "." : " s "); - time %= US_MS; - TME &= TME_US; - tail = 1; - } - if (TME & TME_US) { - fmt = tail ? "%03d%s" : "%d%s"; - fprintf(f, fmt, (int) time, tail ? " ms " : " us "); - } + if (time >= US_DD) + fprintf(f, LLFMT " d %02d h ", time / US_DD, + (int) ((time % US_DD) / US_HH)); + else if (time >= US_HH) + fprintf(f, "%d h %02d m ", (int) (time / US_HH), + (int) ((time % US_HH) / US_MM)); + else if (time >= US_MM) + fprintf(f, "%d m %02d s ", (int) (time / US_MM), + (int) ((time % US_MM) / US_SS)); + else if (time >= US_SS) + fprintf(f, "%d.%03d s ", (int) (time / US_SS), + (int) ((time % US_SS) / US_MS)); + else if (time >= US_MS) + fprintf(f, "%d.%03d ms ", (int) (time / US_MS), + (int) ((time % US_MS))); + else + fprintf(f, "%d us ", (int) time); } /* produce a legenda image for the color map */ ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: Jul2017 - Use an extra variable for convenience.
Changeset: 5d787ca83a77 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5d787ca83a77 Modified Files: gdk/gdk_aggr.c Branch: Jul2017 Log Message: Use an extra variable for convenience. diffs (94 lines): diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c --- a/gdk/gdk_aggr.c +++ b/gdk/gdk_aggr.c @@ -1355,7 +1355,7 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT BUN *restrict rems = NULL; lng *restrict cnts = NULL; dbl *restrict dbls; - BAT *bn = NULL; + BAT *bn = NULL, *cn = NULL; BUN start, end; const oid *cand = NULL, *candend = NULL; const char *err; @@ -1384,11 +1384,12 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT } if (cntsp) { lng zero = 0; - if ((*cntsp = BATconstant(ngrp == 0 ? 0 : min, TYPE_lng, , ngrp, TRANSIENT)) == NULL) { + if ((cn = BATconstant(ngrp == 0 ? 0 : min, TYPE_lng, , ngrp, TRANSIENT)) == NULL) { GDKerror("BATgroupavg: failed to create BAT\n"); BBPreclaim(bn); return GDK_FAIL; } + *cntsp = cn; } *bnp = bn; return GDK_SUCCEED; @@ -1404,10 +1405,11 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT return GDK_FAIL; if (cntsp) { lng one = 1; - if ((*cntsp = BATconstant(ngrp == 0 ? 0 : min, TYPE_lng, , ngrp, TRANSIENT)) == NULL) { + if ((cn = BATconstant(ngrp == 0 ? 0 : min, TYPE_lng, , ngrp, TRANSIENT)) == NULL) { BBPreclaim(bn); return GDK_FAIL; } + *cntsp = cn; } *bnp = bn; return GDK_SUCCEED; @@ -1430,9 +1432,9 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT break; } if (cntsp) { - if ((*cntsp = COLnew(min, TYPE_lng, ngrp, TRANSIENT)) == NULL) + if ((cn = COLnew(min, TYPE_lng, ngrp, TRANSIENT)) == NULL) goto alloc_fail; - cnts = (lng *) Tloc(*cntsp, 0); + cnts = (lng *) Tloc(cn, 0); memset(cnts, 0, ngrp * sizeof(lng)); } else { cnts = GDKzalloc(ngrp * sizeof(lng)); @@ -1476,8 +1478,8 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT break; default: GDKfree(rems); - if (cntsp) - BBPreclaim(*cntsp); + if (cn) + BBPreclaim(cn); else GDKfree(cnts); BBPunfix(bn->batCacheid); @@ -1486,15 +1488,16 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT return GDK_FAIL; } GDKfree(rems); - if (cntsp == NULL) + if (cn == NULL) GDKfree(cnts); else { - BATsetcount(*cntsp, ngrp); - (*cntsp)->tkey = BATcount(*cntsp) <= 1; - (*cntsp)->tsorted = BATcount(*cntsp) <= 1; - (*cntsp)->trevsorted = BATcount(*cntsp) <= 1; - (*cntsp)->tnil = 0; - (*cntsp)->tnonil = 1; + BATsetcount(cn, ngrp); + cn->tkey = BATcount(cn) <= 1; + cn->tsorted = BATcount(cn) <= 1; + cn->trevsorted = BATcount(cn) <= 1; + cn->tnil = 0; + cn->tnonil = 1; + *cntsp = cn; } BATsetcount(bn, ngrp); bn->tkey = BATcount(bn) <= 1; @@ -1511,6 +1514,7 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT GDKfree(rems); if (cntsp) { BBPreclaim(*cntsp); + *cntsp = NULL; } else if (cnts) { GDKfree(cnts); } ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: default - Simplify code, and only use constant strings ...
Changeset: 976a4b688e4f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=976a4b688e4f Modified Files: clients/mapiclient/tomograph.c Branch: default Log Message: Simplify code, and only use constant strings as fprintf formats. diffs (70 lines): diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c --- a/clients/mapiclient/tomograph.c +++ b/clients/mapiclient/tomograph.c @@ -953,49 +953,23 @@ showio(void) static void fprintf_time(FILE *f, lng time) { - int TME = TME_DD|TME_HH|TME_MM|TME_SS|TME_MS|TME_US; - int tail = 0; - const char *fmt = NULL; - - if (TME & TME_DD && (tail || time >= US_DD)) { - fmt = LLFMT"%s"; - fprintf(f, fmt, time / US_DD, " d "); - time %= US_DD; - TME &= TME_HH; - tail = 1; - } - if (TME & TME_HH && (tail || time >= US_HH)) { - fmt = tail ? "%02d%s" : "%d%s"; - fprintf(f, fmt, (int) (time / US_HH), " h "); - time %= US_HH; - TME &= TME_MM; - tail = 1; - } - if (TME & TME_MM && (tail || time >= US_MM)) { - fmt = tail ? "%02d%s" : "%d%s"; - fprintf(f, fmt, (int) (time / US_MM), " m "); - time %= US_MM; - TME &= TME_SS; - tail = 1; - } - if (TME & TME_SS && (tail || time >= US_SS)) { - fmt = tail ? "%02d%s" : "%d%s"; - fprintf(f, fmt, (int) (time / US_SS), (TME & TME_MS) ? "." : " s "); - time %= US_SS; - TME &= TME_MS; - tail = 1; - } - if (TME & TME_MS && (tail || time >= US_MS)) { - fmt = tail ? "%03d%s" : "%d%s"; - fprintf(f, fmt, (int) (time / US_MS), (TME & TME_US) ? "." : " s "); - time %= US_MS; - TME &= TME_US; - tail = 1; - } - if (TME & TME_US) { - fmt = tail ? "%03d%s" : "%d%s"; - fprintf(f, fmt, (int) time, tail ? " ms " : " us "); - } + if (time >= US_DD) + fprintf(f, LLFMT " d %02d h ", time / US_DD, + (int) ((time % US_DD) / US_HH)); + else if (time >= US_HH) + fprintf(f, "%d h %02d m ", (int) (time / US_HH), + (int) ((time % US_HH) / US_MM)); + else if (time >= US_MM) + fprintf(f, "%d m %02d s ", (int) (time / US_MM), + (int) ((time % US_MM) / US_SS)); + else if (time >= US_SS) + fprintf(f, "%d.%03d s ", (int) (time / US_SS), + (int) ((time % US_SS) / US_MS)); + else if (time >= US_MS) + fprintf(f, "%d.%03d ms ", (int) (time / US_MS), + (int) ((time % US_MS))); + else + fprintf(f, "%d us ", (int) time); } /* produce a legenda image for the color map */ ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: compressedcandidates - Merge with default
Changeset: 6cfbe1090e26 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6cfbe1090e26 Added Files: sql/jdbc/tests/Tests/Bug_PrepStmtSetString_6382.SQL.bat sql/jdbc/tests/Tests/Bug_PrepStmtSetString_6382.SQL.sh sql/jdbc/tests/Tests/Bug_PrepStmtSetString_6382.stable.err sql/jdbc/tests/Tests/Bug_PrepStmtSetString_6382.stable.out sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.sql sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.stable.err sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.stable.out sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.sql sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.stable.err sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.stable.out sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.err sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out sql/test/BugTracker-2017/Tests/udf_crash_subquery_scalar_paramters.Bug-6399.sql sql/test/BugTracker-2017/Tests/udf_crash_subquery_scalar_paramters.Bug-6399.stable.err sql/test/BugTracker-2017/Tests/udf_crash_subquery_scalar_paramters.Bug-6399.stable.out sql/test/Tests/constant-not-in.sql sql/test/Tests/constant-not-in.stable.err sql/test/Tests/constant-not-in.stable.out sql/test/bugs/Tests/unicode_varchar-bug-sf-1041324_JdbcClient.stable.out.Windows Modified Files: NT/monetdb_config.h.in clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out clients/mapiclient/ReadlineTools.c clients/mapiclient/eventparser.c clients/mapiclient/mclient.c clients/mapiclient/mhelp.c clients/mapiclient/tomograph.c clients/mapilib/mapi.c clients/odbc/driver/ODBCConvert.c clients/odbc/driver/ODBCUtil.c common/options/monet_options.c common/stream/stream.c common/utils/mutils.c common/utils/strptime.c configure.ag gdk/ChangeLog gdk/gdk.h gdk/gdk_aggr.c gdk/gdk_atoms.c gdk/gdk_atoms.h gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_bbp.c gdk/gdk_calc.c gdk/gdk_firstn.c gdk/gdk_heap.c gdk/gdk_logger.c gdk/gdk_orderidx.c gdk/gdk_select.c gdk/gdk_storage.c gdk/gdk_utils.c gdk/gdk_value.c geom/lib/libgeom.c geom/lib/libgeom.h geom/monetdb5/geom.c geom/monetdb5/geom.h geom/monetdb5/geomBulk.c monetdb5/mal/Tests/tst1200.malC monetdb5/mal/Tests/tst1200.stable.out monetdb5/mal/Tests/tst1203.malC monetdb5/mal/Tests/tst1203.stable.out monetdb5/mal/Tests/tst1205.malC monetdb5/mal/mal.h monetdb5/mal/mal_atom.c monetdb5/mal/mal_atom.h monetdb5/mal/mal_authorize.c monetdb5/mal/mal_client.c monetdb5/mal/mal_client.h monetdb5/mal/mal_debugger.c monetdb5/mal/mal_exception.c monetdb5/mal/mal_instruction.c monetdb5/mal/mal_instruction.h monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_listing.c monetdb5/mal/mal_module.c monetdb5/mal/mal_parser.c monetdb5/mal/mal_profiler.c monetdb5/mal/mal_readline.c monetdb5/mal/mal_scenario.c monetdb5/mal/mal_session.c monetdb5/mal/mal_type.c monetdb5/modules/atoms/Tests/inet01.stable.out monetdb5/modules/atoms/Tests/json04.stable.out monetdb5/modules/atoms/blob.c monetdb5/modules/atoms/blob.h monetdb5/modules/atoms/color.c monetdb5/modules/atoms/color.h monetdb5/modules/atoms/identifier.c monetdb5/modules/atoms/inet.c monetdb5/modules/atoms/json.c monetdb5/modules/atoms/json.h monetdb5/modules/atoms/mtime.c monetdb5/modules/atoms/mtime.h monetdb5/modules/atoms/str.c monetdb5/modules/atoms/url.c monetdb5/modules/atoms/url.h monetdb5/modules/atoms/uuid.c monetdb5/modules/atoms/xml.c monetdb5/modules/atoms/xml.h monetdb5/modules/kernel/algebra.c monetdb5/modules/kernel/bat5.c monetdb5/modules/kernel/batcolor.c monetdb5/modules/kernel/mmath.h monetdb5/modules/mal/inspect.c monetdb5/modules/mal/mal_io.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/mdb.c monetdb5/modules/mal/oltp.c monetdb5/modules/mal/remote.c monetdb5/modules/mal/tablet.c monetdb5/modules/mal/tablet.h monetdb5/modules/mal/txtsim.c monetdb5/modules/mal/wlc.c monetdb5/optimizer/opt_evaluate.c monetdb5/optimizer/opt_json.c monetdb5/optimizer/opt_macro.c monetdb5/optimizer/opt_mergetable.c
MonetDB: compressedcandidates - Framework for bit-candidate lists
Changeset: 49ed353f273d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=49ed353f273d Added Files: monetdb5/modules/mal/bitcandidates.c monetdb5/modules/mal/bitcandidates.h monetdb5/modules/mal/bitcandidates.mal monetdb5/optimizer/Tests/BCLexample.malC monetdb5/optimizer/opt_bitcandidates.c monetdb5/optimizer/opt_bitcandidates.h Branch: compressedcandidates Log Message: Framework for bit-candidate lists The (de-)compress of candidates framework. Next step is to actually compress them. diffs (233 lines): diff --git a/monetdb5/modules/mal/bitcandidates.c b/monetdb5/modules/mal/bitcandidates.c new file mode 100644 --- /dev/null +++ b/monetdb5/modules/mal/bitcandidates.c @@ -0,0 +1,43 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V. + */ + +#include "monetdb_config.h" +#include "bitcandidates.h" +#include "mal.h" +#include "mal_instruction.h" +#include "mal_interpreter.h" + +str +BCLcompress(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) +{ +bat *ret = getArgReference_bat(stk,pci,0); +bat *val = getArgReference_bat(stk,pci,1); + BAT *b; +(void) cntxt; +(void) mb; + b = BATdescriptor(*val); + if( b == NULL) + throw(MAL,"compress",INTERNAL_BAT_ACCESS); +BBPkeepref(*ret = *val); + return MAL_SUCCEED; +} + +str +BCLdecompress(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) +{ +bat *ret = getArgReference_bat(stk,pci,0); +bat *val = getArgReference_bat(stk,pci,1); + BAT *b; +(void) cntxt; +(void) mb; + b = BATdescriptor(*val); + if( b == NULL) + throw(MAL,"decompress",INTERNAL_BAT_ACCESS); +BBPkeepref(*ret = *val); + return MAL_SUCCEED; +} diff --git a/monetdb5/modules/mal/bitcandidates.h b/monetdb5/modules/mal/bitcandidates.h new file mode 100644 --- /dev/null +++ b/monetdb5/modules/mal/bitcandidates.h @@ -0,0 +1,17 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V. + */ + +#ifndef _BITCANDIDATES_ +#define _BITCANDIDATES_ +#include "mal.h" +#include "mal_client.h" +#include "mal_interpreter.h" + +mal_export str BCLcompress(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +mal_export str BCLdecompress(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +#endif diff --git a/monetdb5/modules/mal/bitcandidates.mal b/monetdb5/modules/mal/bitcandidates.mal new file mode 100644 --- /dev/null +++ b/monetdb5/modules/mal/bitcandidates.mal @@ -0,0 +1,15 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V. + +module candidates; + +pattern compress(b:bat[:oid]):bat[:oid] +address BCLcompress +comment "Compress the bat into a bitvector"; + +pattern decompress(b:bat[:oid]):bat[:oid] +address BCLdecompress +comment "Compress the bat into a bitvector"; diff --git a/monetdb5/optimizer/Tests/BCLexample.malC b/monetdb5/optimizer/Tests/BCLexample.malC new file mode 100644 --- /dev/null +++ b/monetdb5/optimizer/Tests/BCLexample.malC @@ -0,0 +1,8 @@ +function f(); + a := bat.new(:int); + C_2:= algebra.select(a,nil:bat[:oid], 0,10,true,true,false); + C_3:= algebra.select(a, C_2, 0,10,true,true,false); + io.print(C_2); +end f; +optimizer.bitcandidates("user","f"); +mdb.list("user","f"); diff --git a/monetdb5/optimizer/opt_bitcandidates.c b/monetdb5/optimizer/opt_bitcandidates.c new file mode 100644 --- /dev/null +++ b/monetdb5/optimizer/opt_bitcandidates.c @@ -0,0 +1,102 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V. + */ + +/* + * Use bit compressed candidate lists. + */ + +#include "monetdb_config.h" +#include "mal_instruction.h" +#include "opt_bitcandidates.h" + +str +OPTbitcandidatesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) +{ + int i, j, k, actions =0, limit=0, slimit=0; + InstrPtr *old, p,q; + int *alias = 0; + lng usec = GDKusec(); + char buf[256]; + + (void) cntxt; + (void) stk; + (void) pci; + + limit = mb->stop; + slimit = mb->ssize; + old = mb->stmt; + + // first check number of
MonetDB: compressedcandidates - A new branch
Changeset: 98dd19184f5d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=98dd19184f5d Modified Files: monetdb5/modules/mal/Makefile.ag monetdb5/modules/mal/mal_init.mal monetdb5/optimizer/Makefile.ag monetdb5/optimizer/Tests/All monetdb5/optimizer/opt_pipes.c monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_prelude.h monetdb5/optimizer/opt_wrapper.c monetdb5/optimizer/optimizer.mal sql/test/Tests/setoptimizer.stable.out Branch: compressedcandidates Log Message: A new branch diffs (204 lines): diff --git a/monetdb5/modules/mal/Makefile.ag b/monetdb5/modules/mal/Makefile.ag --- a/monetdb5/modules/mal/Makefile.ag +++ b/monetdb5/modules/mal/Makefile.ag @@ -20,6 +20,7 @@ lib_mal = { SOURCES = \ batExtensions.c batExtensions.h \ bbp.c bbp.h \ + bitcandidates.c bitcandidates.h \ clients.c clients.h \ factories.c factories.h \ groupby.c groupby.h \ @@ -55,7 +56,7 @@ lib_mal = { headers_mal = { HEADERS = mal DIR = libdir/monetdb5 - SOURCES = language.mal mal_init.mal bbp.mal \ + SOURCES = language.mal mal_init.mal bbp.mal bitcandidates.mal \ profiler.mal batExtensions.mal orderidx.mal \ inspect.mal manual.mal mal_io.mal mkey.mal manifold.mal \ iterator.mal clients.mal \ diff --git a/monetdb5/modules/mal/mal_init.mal b/monetdb5/modules/mal/mal_init.mal --- a/monetdb5/modules/mal/mal_init.mal +++ b/monetdb5/modules/mal/mal_init.mal @@ -88,6 +88,7 @@ include txtsim; include tokenizer; include mal_mapi; +include bitcandidates; include oltp; include wlc; diff --git a/monetdb5/optimizer/Makefile.ag b/monetdb5/optimizer/Makefile.ag --- a/monetdb5/optimizer/Makefile.ag +++ b/monetdb5/optimizer/Makefile.ag @@ -21,6 +21,7 @@ lib_optimizer = { opt_aliases.c opt_aliases.h \ opt_coercion.c opt_coercion.h \ opt_commonTerms.c opt_commonTerms.h \ + opt_bitcandidates.c opt_bitcandidates.h \ opt_candidates.c opt_candidates.h \ opt_constants.c opt_constants.h \ opt_costModel.c opt_costModel.h \ diff --git a/monetdb5/optimizer/Tests/All b/monetdb5/optimizer/Tests/All --- a/monetdb5/optimizer/Tests/All +++ b/monetdb5/optimizer/Tests/All @@ -70,6 +70,7 @@ GCexample01 CXexample JPexample Mexample +BCLexample THREADS>=2?dataflow THREADS>=2?dataflow3 diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c --- a/monetdb5/optimizer/opt_pipes.c +++ b/monetdb5/optimizer/opt_pipes.c @@ -89,6 +89,7 @@ static struct PIPELINES { "optimizer.generator();" "optimizer.profiler();" "optimizer.candidates();" +"optimizer.bitcandidates();" // "optimizer.jit();" awaiting the new batcalc api // "optimizer.oltp();"awaiting the autocommit front-end changes "optimizer.wlc();" diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c --- a/monetdb5/optimizer/opt_prelude.c +++ b/monetdb5/optimizer/opt_prelude.c @@ -69,6 +69,7 @@ str emptybindidxRef; str bpmRef; str bstreamRef; str calcRef; +str candidatesRef; str catalogRef; str clear_tableRef; str closeRef; @@ -76,6 +77,7 @@ str columnRef; str columnBindRef; str commitRef; str connectRef; +str compressRef; str countRef; str subcountRef; str copyRef; @@ -98,6 +100,7 @@ str create_functionRef; str create_triggerRef; str dataflowRef; str dblRef; +str decompressRef; str defineRef; str deleteRef; str differenceRef; @@ -358,6 +361,7 @@ void optimizerInit(void) bpmRef = putName("bpm"); bstreamRef = putName("bstream"); calcRef = putName("calc"); + candidatesRef = putName("candidates"); catalogRef = putName("catalog"); clear_tableRef = putName("clear_table"); closeRef = putName("close"); @@ -365,6 +369,7 @@ void optimizerInit(void) columnBindRef = putName("columnBind"); commitRef = putName("commit"); connectRef = putName("connect"); + compressRef = putName("compress"); countRef = putName("count"); subcountRef = putName("subcount"); copyRef = putName("copy"); @@ -388,6 +393,7 @@ void optimizerInit(void) dateRef = putName("date"); dataflowRef = putName("dataflow"); dblRef = putName("dbl"); + decompressRef = putName("decompress"); defineRef = putName("define"); deleteRef = putName("delete"); differenceRef = putName("difference"); diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h --- a/monetdb5/optimizer/opt_prelude.h +++ b/monetdb5/optimizer/opt_prelude.h @@ -67,6 +67,7 @@ mal_exportstr emptybindidxRef; mal_export str bpmRef; mal_export str bstreamRef; mal_export str calcRef; +mal_export str
MonetDB: data-vaults - Merge with default
Changeset: 54b74c40f2f9 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=54b74c40f2f9 Added Files: sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.sql sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.stable.err sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.stable.out sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.sql sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.stable.err sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.stable.out sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.err sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out sql/test/bugs/Tests/unicode_varchar-bug-sf-1041324_JdbcClient.stable.out.Windows Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out clients/mapiclient/ReadlineTools.c clients/mapiclient/eventparser.c clients/mapiclient/mhelp.c clients/mapiclient/tomograph.c clients/mapilib/mapi.c clients/odbc/driver/ODBCConvert.c clients/odbc/driver/ODBCUtil.c common/options/monet_options.c common/utils/mutils.c common/utils/strptime.c configure.ag gdk/ChangeLog gdk/gdk.h gdk/gdk_atoms.c gdk/gdk_atoms.h gdk/gdk_bat.c gdk/gdk_calc.c gdk/gdk_select.c gdk/gdk_value.c geom/monetdb5/geom.c monetdb5/mal/mal_client.c monetdb5/mal/mal_debugger.c monetdb5/mal/mal_instruction.c monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_listing.c monetdb5/mal/mal_parser.c monetdb5/mal/mal_profiler.c monetdb5/mal/mal_readline.c monetdb5/mal/mal_type.c monetdb5/modules/atoms/blob.c monetdb5/modules/atoms/color.c monetdb5/modules/atoms/inet.c monetdb5/modules/atoms/json.c monetdb5/modules/atoms/mtime.c monetdb5/modules/atoms/str.c monetdb5/modules/atoms/url.c monetdb5/modules/atoms/uuid.c monetdb5/modules/atoms/xml.c monetdb5/modules/kernel/algebra.c monetdb5/modules/mal/inspect.c monetdb5/modules/mal/mal_io.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/mdb.c monetdb5/modules/mal/remote.c monetdb5/modules/mal/tablet.c monetdb5/modules/mal/txtsim.c monetdb5/modules/mal/wlc.c monetdb5/optimizer/opt_projectionpath.c monetdb5/optimizer/opt_remoteQueries.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql.h sql/backends/monet5/sql.mal sql/backends/monet5/sql_cast.c sql/backends/monet5/sql_execute.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_result.c sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_statistics.c sql/backends/monet5/vaults/bam/bam_export.c sql/backends/monet5/vaults/shp/shp.c sql/benchmarks/tpch/fileleak/Tests/leaks.stable.out sql/benchmarks/tpch/fileleak/Tests/leaks.stable.out.Windows sql/common/sql_string.c sql/include/sql_relation.h sql/jdbc/tests/Tests/Test_CisValid.stable.out sql/server/rel_dump.c sql/server/rel_exp.c sql/server/rel_optimizer.c sql/server/rel_updates.c sql/server/sql_atom.c sql/server/sql_decimal.c sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128 sql/test/BugTracker-2017/Tests/All sql/test/BugTracker-2017/Tests/sqllitelogistest_case.Bug-6335.sql testing/difflib.c testing/helpers.h Branch: data-vaults Log Message: Merge with default diffs (truncated from 4576 to 300 lines): diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -8366,19 +8366,15 @@ Ready. [ "sql", "dec_round","command sql.dec_round(v:int, r:int):int ", "int_dec_round_wrap;", "round off the value v to nearests multiple of r" ] [ "sql", "dec_round","command sql.dec_round(v:lng, r:lng):lng ", "lng_dec_round_wrap;", "round off the value v to nearests multiple of r" ] [ "sql", "dec_round","command sql.dec_round(v:sht, r:sht):sht ", "sht_dec_round_wrap;", "round off the value v to nearests multiple of r" ] -[ "sql", "declaredTable","pattern sql.declaredTable(name:str):int ", "mvc_declared_table_wrap;", "Prepare a declared table" ] [ "sql", "delete", "pattern sql.delete(mvc:int, sname:str, tname:str, b:any):int ",
monetdb-java: embedded - Preparing new release
Changeset: 0f95fee3cf29 for monetdb-java URL: https://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=0f95fee3cf29 Modified Files: build.properties Branch: embedded Log Message: Preparing new release diffs (21 lines): diff --git a/build.properties b/build.properties --- a/build.properties +++ b/build.properties @@ -19,7 +19,7 @@ MCL_MINOR=14 # major release number JDBC_MAJOR=2 # minor release number -JDBC_MINOR=31 +JDBC_MINOR=32 # an additional identifying string JDBC_VER_SUFFIX=Liberica # the default port to connect on, if no port given when using SQL @@ -31,6 +31,6 @@ JDBC_DEF_PORT=5 ## # should we compile with debugging symbols -enable_debug=true +enable_debug=false # should we optimize the build, preferably not for debugging -enable_optimize=false +enable_optimize=true ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
monetdb-java: embedded - Fixed identation and in-memory option f...
Changeset: 477c4de0eda2 for monetdb-java URL: https://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=477c4de0eda2 Modified Files: pom.xml src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in src/main/java/nl/cwi/monetdb/mcl/connection/ControlCommands.java src/main/java/nl/cwi/monetdb/mcl/connection/IMonetDBLanguage.java src/main/java/nl/cwi/monetdb/mcl/connection/SenderThread.java src/main/java/nl/cwi/monetdb/mcl/connection/helpers/BufferReallocator.java src/main/java/nl/cwi/monetdb/mcl/connection/helpers/ChannelSecurity.java src/main/java/nl/cwi/monetdb/mcl/connection/helpers/GregorianCalendarParser.java src/main/java/nl/cwi/monetdb/mcl/connection/helpers/TimestampHelper.java src/main/java/nl/cwi/monetdb/mcl/connection/mapi/AbstractSocket.java src/main/java/nl/cwi/monetdb/mcl/connection/mapi/MapiConnection.java src/main/java/nl/cwi/monetdb/mcl/connection/mapi/MapiLanguage.java src/main/java/nl/cwi/monetdb/mcl/connection/mapi/OldMapiSocket.java src/main/java/nl/cwi/monetdb/mcl/protocol/AbstractProtocol.java src/main/java/nl/cwi/monetdb/mcl/protocol/ServerResponses.java src/main/java/nl/cwi/monetdb/mcl/protocol/StarterHeaders.java src/main/java/nl/cwi/monetdb/mcl/protocol/TableResultHeaders.java src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiDataBlockResponse.java src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiProtocol.java src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiServerResponseParser.java src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiStartOfHeaderParser.java src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiTableHeaderParser.java src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiTupleLineParser.java src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiTupleLineParserHelper.java src/main/java/nl/cwi/monetdb/mcl/responses/AbstractDataBlockResponse.java src/main/java/nl/cwi/monetdb/mcl/responses/AutoCommitResponse.java src/main/java/nl/cwi/monetdb/mcl/responses/IIncompleteResponse.java src/main/java/nl/cwi/monetdb/mcl/responses/IResponse.java src/main/java/nl/cwi/monetdb/mcl/responses/ResultSetResponse.java src/main/java/nl/cwi/monetdb/mcl/responses/SchemaResponse.java src/main/java/nl/cwi/monetdb/mcl/responses/UpdateResponse.java Branch: embedded Log Message: Fixed identation and in-memory option for the embedded connection diffs (truncated from 7816 to 300 lines): diff --git a/pom.xml b/pom.xml --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ monetdb monetdb-jdbc-new -2.31 +2.32 MonetDB JDBC new MonetDB Adapted JDBC driver for embedded connection https://www.monetdb.org diff --git a/src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in b/src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in --- a/src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in +++ b/src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in @@ -69,7 +69,7 @@ public final class MonetDriver implement /** MonetDB default port to connect to */ private static final String PORT = "@JDBC_DEF_PORT@"; -private static Class embeddedConnectionClass = null; + private static Class embeddedConnectionClass = null; // initialize this class: register it at the DriverManager // Chapter 9.2 from Sun JDBC 3.0 specification @@ -348,59 +348,59 @@ public final class MonetDriver implement throw new SQLException("Invalid URL: it does not start with: " + MONETURL, "08M26"); if(!url.startsWith("jdbc:monetdb:embedded:")) { - // url should be of style jdbc:monetdb:/// -isEmbedded = false; -URI uri; -try { -uri = new URI(url.substring(5)); -} catch (URISyntaxException e) { -throw new SQLException(e.toString(), "08M26"); -} + // url should be of style jdbc:monetdb:/// + isEmbedded = false; + URI uri; + try { + uri = new URI(url.substring(5)); + } catch (URISyntaxException e) { + throw new SQLException(e.toString(), "08M26"); + } -String uri_host = uri.getHost(); -if (uri_host == null) -throw new SQLException("Invalid URL: no hostname given or unparsable in '" + url + "'", "08M26"); -info.put("host", uri_host); + String uri_host = uri.getHost(); + if (uri_host == null) + throw new SQLException("Invalid URL: no hostname given or unparsable in '" + url + "'", "08M26"); +
MonetDB: default - Error checking.
Changeset: 6c3e7b40e3ee for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6c3e7b40e3ee Modified Files: monetdb5/modules/mal/wlc.c Branch: default Log Message: Error checking. diffs (12 lines): diff --git a/monetdb5/modules/mal/wlc.c b/monetdb5/modules/mal/wlc.c --- a/monetdb5/modules/mal/wlc.c +++ b/monetdb5/modules/mal/wlc.c @@ -673,6 +673,8 @@ WLCdelete(Client cntxt, MalBlkPtr mb, Ma tpe= getArgType(mb,pci,3); if (isaBatType(tpe) ){ b= BATdescriptor(bid); + if (b == NULL) + throw(MAL, "wlc.delete", RUNTIME_OBJECT_MISSING); o = b->tseqbase; last = o + BATcount(b); if( b->ttype == TYPE_void){ ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: default - Merge with Jul2017 branch.
Changeset: fefd216dc972 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fefd216dc972 Modified Files: configure.ag monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_parser.c monetdb5/modules/atoms/json.c monetdb5/modules/atoms/str.c monetdb5/modules/atoms/url.c sql/backends/monet5/rel_bin.c Branch: default Log Message: Merge with Jul2017 branch. diffs (truncated from 527 to 300 lines): diff --git a/configure.ag b/configure.ag --- a/configure.ag +++ b/configure.ag @@ -627,7 +627,7 @@ AS_VAR_IF([enable_strict], [yes], [ MCHECK_ADD_FLAG([-Wduplicated-branches]) MCHECK_ADD_FLAG([-Wlogical-op]) MCHECK_ADD_FLAG([-Wrestrict]) - MCHECK_ADD_FLAG([-Wnull-dereference]) +dnlMCHECK_ADD_FLAG([-Wnull-dereference]) MCHECK_ADD_FLAG([-Wjump-misses-init]) dnlMCHECK_ADD_FLAG([-Wshadow]) MCHECK_ADD_FLAG([-Wformat=2]) diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c --- a/monetdb5/mal/mal_interpreter.c +++ b/monetdb5/mal/mal_interpreter.c @@ -816,8 +816,10 @@ str runMALsequence(Client cntxt, MalBlkP continue; } b = BATdescriptor(stk->stk[getArg(pci, i)].val.bval); - BATassertProps(b); - BBPunfix(b->batCacheid); + if (b) { + BATassertProps(b); + BBPunfix(b->batCacheid); + } } } } diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c --- a/monetdb5/mal/mal_parser.c +++ b/monetdb5/mal/mal_parser.c @@ -39,7 +39,7 @@ lastline(Client cntxt) str s = CURRENT(cntxt); if (NL(*s)) s++; -while (s && s > cntxt->fdin->buf && !NL(*s)) +while (s > cntxt->fdin->buf && !NL(*s)) s--; if (NL(*s)) s++; diff --git a/monetdb5/modules/atoms/json.c b/monetdb5/modules/atoms/json.c --- a/monetdb5/modules/atoms/json.c +++ b/monetdb5/modules/atoms/json.c @@ -28,12 +28,14 @@ break; \ } while (0) -#define hex(J) \ - do { \ - if ((*(J) >='0' && *(J) <='9') || \ - (*(J) >='a' && *(J) <='f') || \ - (*(J) >='A' && *(J) <='F')) \ - (J)++; \ +#define hex(J) \ + do { \ + if ((*(J) >='0' && *(J) <='9') || \ + (*(J) >='a' && *(J) <='f') || \ + (*(J) >='A' && *(J) <='F')) \ + (J)++; \ + else \ + throw(MAL, "json.parser", "illegal escape char"); \ } while (0) #define CHECK_JSON(jt) \ @@ -57,24 +59,22 @@ int TYPE_json; /* Internal constructors. */ static int jsonhint = 8; -static JSON *JSONparse(const char *j, int silent); +static JSON *JSONparse(const char *j); static JSON * -JSONnewtree(int size) +JSONnewtree(void) { JSON *js; - if (size == 0) - size = jsonhint; js = (JSON *) GDKzalloc(sizeof(JSON)); if (js == NULL) return NULL; - js->elm = (JSONterm *) GDKzalloc(sizeof(JSONterm) * size); + js->elm = (JSONterm *) GDKzalloc(sizeof(JSONterm) * jsonhint); if (js->elm == NULL) { GDKfree(js); return NULL; } - js->size = size; + js->size = jsonhint; return js; } @@ -104,6 +104,7 @@ JSONfree(JSON *c) { if (c == 0) return; + freeException(c->error); GDKfree(c->elm); GDKfree(c); } @@ -125,7
MonetDB: Jul2017 - Removed some logically dead code; properly fr...
Changeset: 8097a49ff5af for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8097a49ff5af Modified Files: monetdb5/modules/atoms/json.c Branch: Jul2017 Log Message: Removed some logically dead code; properly free error. diffs (truncated from 448 to 300 lines): diff --git a/monetdb5/modules/atoms/json.c b/monetdb5/modules/atoms/json.c --- a/monetdb5/modules/atoms/json.c +++ b/monetdb5/modules/atoms/json.c @@ -28,12 +28,14 @@ break; \ } while (0) -#define hex(J) \ - do { \ - if ((*(J) >='0' && *(J) <='9') || \ - (*(J) >='a' && *(J) <='f') || \ - (*(J) >='A' && *(J) <='F')) \ - (J)++; \ +#define hex(J) \ + do { \ + if ((*(J) >='0' && *(J) <='9') || \ + (*(J) >='a' && *(J) <='f') || \ + (*(J) >='A' && *(J) <='F')) \ + (J)++; \ + else \ + throw(MAL, "json.parser", "illegal escape char"); \ } while (0) #define CHECK_JSON(jt) \ @@ -56,24 +58,22 @@ int TYPE_json; /* Internal constructors. */ static int jsonhint = 8; -static JSON *JSONparse(char *j, int silent); +static JSON *JSONparse(char *j); static JSON * -JSONnewtree(int size) +JSONnewtree(void) { JSON *js; - if (size == 0) - size = jsonhint; js = (JSON *) GDKzalloc(sizeof(JSON)); if (js == NULL) return NULL; - js->elm = (JSONterm *) GDKzalloc(sizeof(JSONterm) * size); + js->elm = (JSONterm *) GDKzalloc(sizeof(JSONterm) * jsonhint); if (js->elm == NULL) { GDKfree(js); return NULL; } - js->size = size; + js->size = jsonhint; return js; } @@ -103,6 +103,7 @@ JSONfree(JSON *c) { if (c == 0) return; + freeException(c->error); GDKfree(c->elm); GDKfree(c); } @@ -111,7 +112,7 @@ int JSONfromString(str src, int *len, json *j) { ssize_t slen = (ssize_t) strlen(src); - JSON *jt = JSONparse(src, FALSE); + JSON *jt = JSONparse(src); if (*j) GDKfree(*j); @@ -259,7 +260,7 @@ JSONdumpInternal(JSON *jt, int depth) str JSONdump(void *ret, json *val) { - JSON *jt = JSONparse(*val, FALSE); + JSON *jt = JSONparse(*val); CHECK_JSON(jt); (void) ret; @@ -288,7 +289,7 @@ JSONjson2str(str *ret, json *j) str JSONstr2json(json *ret, str *j) { - JSON *jt = JSONparse(*j, FALSE); + JSON *jt = JSONparse(*j); CHECK_JSON(jt); JSONfree(jt); @@ -300,12 +301,11 @@ JSONstr2json(json *ret, str *j) str JSONisvalid(bit *ret, json *j) { - JSON *jt = JSONparse(*j, FALSE); + JSON *jt = JSONparse(*j); if (jt == NULL) throw(MAL, "json.isvalid", MAL_MALLOC_FAIL); *ret = jt->error == MAL_SUCCEED; - GDKfree(jt->error); JSONfree(jt); return MAL_SUCCEED; } @@ -371,11 +371,13 @@ JSONappend(JSON *jt, int idx, int nxt) } /* - * The JSON filter operation takes a path expression which is purposely kept simple, - * It provides step (.), multistep (..) and indexed ([nr]) access to the JSON elements. - * A wildcard * can be used as placeholder for a step identifier. + * The JSON filter operation takes a path expression which is + * purposely kept simple, It provides step (.), multistep (..) and + * indexed ([nr]) access to the JSON elements. A wildcard * can be + * used as placeholder for a step identifier. * - * A path expression is always validated upfront and can only be applied to valid json strings. + * A path expression is always validated upfront and can only be + * applied to valid json strings. * Path samples: * .store.book * .store.book[0] @@ -641,7 +643,7 @@ JSONfilterInternal(json *ret, json *js, throw(MAL,"JSONfilterInternal",MAL_MALLOC_FAIL); return MAL_SUCCEED;
MonetDB: Jul2017 - Fixed some errors found by -Wnull-dereference.
Changeset: 21bd40b73654 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=21bd40b73654 Modified Files: monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_parser.c monetdb5/modules/atoms/str.c monetdb5/modules/atoms/url.c Branch: Jul2017 Log Message: Fixed some errors found by -Wnull-dereference. diffs (55 lines): diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c --- a/monetdb5/mal/mal_interpreter.c +++ b/monetdb5/mal/mal_interpreter.c @@ -830,8 +830,10 @@ str runMALsequence(Client cntxt, MalBlkP continue; } b = BATdescriptor(stk->stk[getArg(pci, i)].val.bval); - BATassertProps(b); - BBPunfix(b->batCacheid); + if (b) { + BATassertProps(b); + BBPunfix(b->batCacheid); + } } } } diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c --- a/monetdb5/mal/mal_parser.c +++ b/monetdb5/mal/mal_parser.c @@ -322,7 +322,7 @@ lastline(Client cntxt) str s = CURRENT(cntxt); if (NL(*s)) s++; - while (s && s > cntxt->fdin->buf && !NL(*s)) + while (s > cntxt->fdin->buf && !NL(*s)) s--; if (NL(*s)) s++; diff --git a/monetdb5/modules/atoms/str.c b/monetdb5/modules/atoms/str.c --- a/monetdb5/modules/atoms/str.c +++ b/monetdb5/modules/atoms/str.c @@ -1716,7 +1716,7 @@ STRWChrAt(int *res, const str *arg1, con return MAL_SUCCEED; } s = UTF8_strtail(s, *at); - if (*s == 0) { + if (s == NULL || *s == 0) { *res = int_nil; return MAL_SUCCEED; } diff --git a/monetdb5/modules/atoms/url.c b/monetdb5/modules/atoms/url.c --- a/monetdb5/modules/atoms/url.c +++ b/monetdb5/modules/atoms/url.c @@ -114,9 +114,9 @@ skip_authority(const char *uri, const ch if (passp) *passp = NULL; } else { - if (*userp) + if (userp) *userp = user; - if (*passp) + if (passp) *passp = pass; } if (portp) ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: Jul2017 - Disable -Wnull-dereference: it generates erro...
Changeset: a60de9ce6de3 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a60de9ce6de3 Modified Files: configure.ag Branch: Jul2017 Log Message: Disable -Wnull-dereference: it generates errors that I cannot currently explain. diffs (12 lines): diff --git a/configure.ag b/configure.ag --- a/configure.ag +++ b/configure.ag @@ -627,7 +627,7 @@ AS_VAR_IF([enable_strict], [yes], [ MCHECK_ADD_FLAG([-Wduplicated-branches]) MCHECK_ADD_FLAG([-Wlogical-op]) MCHECK_ADD_FLAG([-Wrestrict]) - MCHECK_ADD_FLAG([-Wnull-dereference]) +dnlMCHECK_ADD_FLAG([-Wnull-dereference]) MCHECK_ADD_FLAG([-Wjump-misses-init]) dnlMCHECK_ADD_FLAG([-Wshadow]) MCHECK_ADD_FLAG([-Wformat=2]) ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: Jul2017 - Enable a bunch of extra compiler warnings.
Changeset: d6a79b79ee19 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d6a79b79ee19 Modified Files: configure.ag monetdb5/modules/atoms/mtime.c sql/backends/monet5/rel_bin.c sql/backends/monet5/vaults/shp/shp.c sql/server/rel_exp.c Branch: Jul2017 Log Message: Enable a bunch of extra compiler warnings. -Wshadow is not enabled since there are currently too many problems. diffs (143 lines): diff --git a/configure.ag b/configure.ag --- a/configure.ag +++ b/configure.ag @@ -623,6 +623,14 @@ AS_VAR_IF([enable_strict], [yes], [ MCHECK_ADD_FLAG([-Wjump-misses-init]) MCHECK_ADD_FLAG([-Wmissing-include-dirs]) MCHECK_ADD_FLAG([-Wlogical-op]) + MCHECK_ADD_FLAG([-Wduplicated-cond]) + MCHECK_ADD_FLAG([-Wduplicated-branches]) + MCHECK_ADD_FLAG([-Wlogical-op]) + MCHECK_ADD_FLAG([-Wrestrict]) + MCHECK_ADD_FLAG([-Wnull-dereference]) + MCHECK_ADD_FLAG([-Wjump-misses-init]) +dnlMCHECK_ADD_FLAG([-Wshadow]) + MCHECK_ADD_FLAG([-Wformat=2]) # With clang 2.8, 3.3, 5.0 (no other tested) and gcc < 4.5 # (tested 3.4.6, 4.2.1, 4.3.2, 4.4.4, 4.4.5, 4.5.1, 4.5.2), diff --git a/monetdb5/modules/atoms/mtime.c b/monetdb5/modules/atoms/mtime.c --- a/monetdb5/modules/atoms/mtime.c +++ b/monetdb5/modules/atoms/mtime.c @@ -2340,11 +2340,7 @@ MTIMEdate_sub_sec_interval_wrap(date *re *ret = date_nil; return MAL_SUCCEED; } - if (*sec >= 0) - delta = -(int) (*sec / 86400); - else - delta = (int) (-*sec / 86400); - + delta = -(int) (*sec / 86400); /* / truncates toward zero */ return MTIMEdate_adddays(ret, t, ); } @@ -2357,11 +2353,7 @@ MTIMEdate_sub_msec_interval_lng_wrap(dat *ret = date_nil; return MAL_SUCCEED; } - if (*msec > 0) - delta = -(int) (*msec / 8640); - else - delta = (int) (-*msec / 8640); - + delta = -(int) (*msec / 8640); /* / truncates toward zero */ return MTIMEdate_adddays(ret, t, ); } @@ -2374,11 +2366,7 @@ MTIMEdate_add_sec_interval_wrap(date *re *ret = date_nil; return MAL_SUCCEED; } - if (*sec >= 0) - delta = (int) (*sec / 86400); - else - delta = -(int) (-*sec / 86400); - + delta = (int) (*sec / 86400); /* / truncates toward zero */ return MTIMEdate_adddays(ret, t, ); } @@ -2391,11 +2379,7 @@ MTIMEdate_add_msec_interval_lng_wrap(dat *ret = date_nil; return MAL_SUCCEED; } - if (*msec > 0) - delta = (int) (*msec / 8640); - else - delta = -(int) (-*msec / 8640); - + delta = (int) (*msec / 8640); /* / truncates toward zero */ return MTIMEdate_adddays(ret, t, ); } diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c --- a/sql/backends/monet5/rel_bin.c +++ b/sql/backends/monet5/rel_bin.c @@ -1659,10 +1659,7 @@ releqjoin( backend *be, list *l1, list * sql_subfunc *f = NULL; stmt * cmp; - if (cmp_op == cmp_equal) - f = sql_bind_func(sql->sa, sql->session->schema, "=", tail_type(le), tail_type(le), F_FUNC); - else - f = sql_bind_func(sql->sa, sql->session->schema, "=", tail_type(le), tail_type(le), F_FUNC); + f = sql_bind_func(sql->sa, sql->session->schema, "=", tail_type(le), tail_type(le), F_FUNC); assert(f); cmp = stmt_binop(be, le, re, f); diff --git a/sql/backends/monet5/vaults/shp/shp.c b/sql/backends/monet5/vaults/shp/shp.c --- a/sql/backends/monet5/vaults/shp/shp.c +++ b/sql/backends/monet5/vaults/shp/shp.c @@ -272,8 +272,10 @@ SHPattach(Client cntxt, MalBlkPtr mb, Ma sprintf(temp_buf + strlen(temp_buf), "\"%s\" INT, ", nameToLowerCase); } else if (strcmp(field_definitions[i].fieldType, "Real") == 0) { sprintf(temp_buf + strlen(temp_buf), "\"%s\" FLOAT, ", nameToLowerCase); +#if 0 } else if (strcmp(field_definitions[i].fieldType, "Date") == 0) { sprintf(temp_buf + strlen(temp_buf), "\"%s\" STRING, ", nameToLowerCase); +#endif } else sprintf(temp_buf + strlen(temp_buf), "\"%s\" STRING, ", nameToLowerCase); GDKfree(nameToLowerCase); @@ -451,11 +453,13 @@ SHPimportFile(Client cntxt, MalBlkPtr mb msg = createException(MAL, "shp.import", MAL_MALLOC_FAIL); goto unfree4; } +#if 0 } else if
MonetDB: default - Merge with Jul2017 branch.
Changeset: 34304387fcc2 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=34304387fcc2 Added Files: sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.sql sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.stable.err sql/test/BugTracker-2017/Tests/copy_into_crash.Bug-6404.stable.out sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.sql sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.stable.err sql/test/BugTracker-2017/Tests/null_matches_in_outer.Bug-6398.stable.out sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.err sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out sql/test/bugs/Tests/unicode_varchar-bug-sf-1041324_JdbcClient.stable.out.Windows Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 monetdb5/modules/mal/tablet.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql.h sql/backends/monet5/sql.mal sql/backends/monet5/sql_statement.c sql/benchmarks/tpch/fileleak/Tests/leaks.stable.out sql/benchmarks/tpch/fileleak/Tests/leaks.stable.out.Windows sql/include/sql_relation.h sql/jdbc/tests/Tests/Test_CisValid.stable.out sql/server/rel_optimizer.c sql/server/rel_updates.c sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128 sql/test/BugTracker-2017/Tests/All sql/test/BugTracker-2017/Tests/sqllitelogistest_case.Bug-6335.sql Branch: default Log Message: Merge with Jul2017 branch. diffs (truncated from 1502 to 300 lines): diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -8335,19 +8335,15 @@ Ready. [ "sql", "dec_round","command sql.dec_round(v:int, r:int):int ", "int_dec_round_wrap;", "round off the value v to nearests multiple of r" ] [ "sql", "dec_round","command sql.dec_round(v:lng, r:lng):lng ", "lng_dec_round_wrap;", "round off the value v to nearests multiple of r" ] [ "sql", "dec_round","command sql.dec_round(v:sht, r:sht):sht ", "sht_dec_round_wrap;", "round off the value v to nearests multiple of r" ] -[ "sql", "declaredTable","pattern sql.declaredTable(name:str):int ", "mvc_declared_table_wrap;", "Prepare a declared table" ] [ "sql", "delete", "pattern sql.delete(mvc:int, sname:str, tname:str, b:any):int ","mvc_delete_wrap;", "Delete a row from a table. Returns sequence number for order dependece." ] [ "sql", "delta","command sql.delta(col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ", "DELTAbat2;", "Return column bat with delta's applied." ] [ "sql", "delta","command sql.delta(col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3], ins:bat[:any_3]):bat[:any_3] ", "DELTAbat;","Return column bat with delta's applied." ] [ "sql", "dense_rank", "pattern sql.dense_rank(b:any_1, p:bit, o:bit):int ", "SQLdense_rank;", "return the densely ranked groups" ] [ "sql", "diff", "pattern sql.diff(b:any_1):bit ", "SQLdiff;", "return true if cur != prev row"] [ "sql", "diff", "pattern sql.diff(p:bit, b:any_1):bit ", "SQLdiff;", "return true if cur != prev row"] -[ "sql", "dropDeclaredTable","pattern sql.dropDeclaredTable(name:str):void ","mvc_drop_declared_table_wrap;", "drop a declared table" ] -[ "sql", "dropDeclaredTables", "pattern sql.dropDeclaredTables(nr:int):void ", "mvc_drop_declared_tables_wrap;", "drop top n declared tables"] [ "sql", "drop_func_upgrade_oct2014","pattern sql.drop_func_upgrade_oct2014(id:int):int ", "UPGdrop_func;","Drop the function identified by id, needed for the Oct2014 upgrade"] [ "sql", "drop_hash","pattern sql.drop_hash(sch:str, tbl:str):void ","SQLdrop_hash;","Drop hash indices for the given table" ] [ "sql", "droporderindex", "pattern sql.droporderindex(sch:str, tbl:str, col:str):void ", "sql_droporderindex;", "Drop the order index on a column" ] -[ "sql", "dtColumn", "pattern sql.dtColumn(rs:int, tname:str, name:str, typename:str, digits:int, scale:int):void ", "mvc_declared_table_column_wrap;", "" ] [ "sql", "dump_cache", "pattern sql.dump_cache() (query:bat[:str], count:bat[:int]) ", "dump_cache;", "dump the content of the query cache" ] [ "sql", "dump_opt_stats", "pattern sql.dump_opt_stats() (rewrite:bat[:str], count:bat[:int]) ",