Changeset: 9c51f3980cc6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9c51f3980cc6
Added Files:
gdk/gdk_cand.h
sql/test/BugTracker-2014/Tests/div_by_zero_in_return.Bug-3555.sql
sql/test/BugTracker-2014/Tests/div_by_zero_in_return.Bug-3555.stable.err
sql/test/BugTracker-2014/Tests/div_by_zero_in_return.Bug-3555.stable.out
Modified Files:
clients/Tests/MAL-signatures_all.stable.out
clients/Tests/MAL-signatures_fits_geom.stable.out
clients/Tests/MAL-signatures_geom.stable.out
clients/Tests/MAL-signatures_none.stable.out
clients/Tests/SQL-dump_all.stable.out
clients/Tests/SQL-dump_all.stable.out.oid32
clients/Tests/SQL-dump_geom.stable.out
clients/Tests/SQL-dump_geom.stable.out.32bit
clients/Tests/SQL-dump_geom.stable.out.64bit.oid32
clients/Tests/SQL-dump_none.stable.out
clients/Tests/exports.stable.out
clients/mapiclient/mclient.c
gdk/Makefile.ag
gdk/gdk_aggr.c
gdk/gdk_atoms.c
gdk/gdk_calc.c
gdk/gdk_calc_private.h
gdk/gdk_join.c
gdk/gdk_search.c
gdk/gdk_select.c
gdk/gdk_ssort.c
gdk/gdk_ssort_impl.h
monetdb5/modules/mal/pcre.c
monetdb5/modules/mal/pcre.mal
sql/backends/monet5/bam/Tests/query1.5.sql
sql/backends/monet5/bam/Tests/query1.5.stable.out
sql/server/rel_dump.c
sql/server/rel_optimizer.c
sql/server/rel_psm.c
sql/test/BugTracker-2014/Tests/orderby_on_constant.Bug-3554.sql
sql/test/BugTracker-2014/Tests/orderby_on_constant.Bug-3554.stable.out
Branch: default
Log Message:
Merge with Oct2014 branch.
diffs (truncated from 2487 to 300 lines):
diff --git a/clients/Tests/MAL-signatures_all.stable.out
b/clients/Tests/MAL-signatures_all.stable.out
--- a/clients/Tests/MAL-signatures_all.stable.out
+++ b/clients/Tests/MAL-signatures_all.stable.out
@@ -2330,6 +2330,10 @@ command algebra.groupby(gids:bat[:oid,:o
address ALGgroupby;
comment Produces a new BAT with groups identified by the head column. The
result contains tail times the head value, ie the tail contains the result
group sizes.
+command
algebra.ilikesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],sl:bat[:oid,:oid],sr:bat[:oid,:oid],esc:str)
(X_6:bat[:oid,:oid],X_7:bat[:oid,:oid])
+address ILIKEsubjoin;
+comment Join the string bat L with the pattern bat Rwith optional candidate
lists SL and SR using pattern escape string ESCand doing a case insensitive
match.The result is two aligned bats with oids of matching rows.
+
command algebra.ilikesubselect(s:bat[:oid,:str],pat:bat[:oid,:str],esc:str)
(l:bat[:oid,:oid],r:bat[:oid,:oid])
address PCREilike_join_pcre;
function
algebra.ilikesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,esc:str,anti:bit):bat[:oid,:oid];
@@ -2382,6 +2386,10 @@ pattern algebra.leftjoinPath(l:bat[:any,
address ALGjoinPath;
comment Routine to handle join paths. The type analysis is rather tricky.
+command
algebra.likesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],sl:bat[:oid,:oid],sr:bat[:oid,:oid],esc:str)
(X_6:bat[:oid,:oid],X_7:bat[:oid,:oid])
+address LIKEsubjoin;
+comment Join the string bat L with the pattern bat Rwith optional candidate
lists SL and SR using pattern escape string ESCand doing a case sensitive
match.The result is two aligned bats with oids of matching rows.
+
command algebra.likesubselect(s:bat[:oid,:str],pat:bat[:oid,:str],esc:str)
(l:bat[:oid,:oid],r:bat[:oid,:oid])
address PCRElike_join_pcre;
function
algebra.likesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,esc:str,anti:bit):bat[:oid,:oid];
diff --git a/clients/Tests/MAL-signatures_fits_geom.stable.out
b/clients/Tests/MAL-signatures_fits_geom.stable.out
--- a/clients/Tests/MAL-signatures_fits_geom.stable.out
+++ b/clients/Tests/MAL-signatures_fits_geom.stable.out
@@ -2331,6 +2331,10 @@ command algebra.groupby(gids:bat[:oid,:o
address ALGgroupby;
comment Produces a new BAT with groups identified by the head column. The
result contains tail times the head value, ie the tail contains the result
group sizes.
+command
algebra.ilikesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],sl:bat[:oid,:oid],sr:bat[:oid,:oid],esc:str)
(X_6:bat[:oid,:oid],X_7:bat[:oid,:oid])
+address ILIKEsubjoin;
+comment Join the string bat L with the pattern bat Rwith optional candidate
lists SL and SR using pattern escape string ESCand doing a case insensitive
match.The result is two aligned bats with oids of matching rows.
+
command algebra.ilikesubselect(s:bat[:oid,:str],pat:bat[:oid,:str],esc:str)
(l:bat[:oid,:oid],r:bat[:oid,:oid])
address PCREilike_join_pcre;
function
algebra.ilikesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,esc:str,anti:bit):bat[:oid,:oid];
@@ -2383,6 +2387,10 @@ pattern algebra.leftjoinPath(l:bat[:any,
address ALGjoinPath;
comment Routine to handle join paths. The type analysis is rather tricky.
+command
algebra.likesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],sl:bat[:oid,:oid],sr:bat[:oid,:oid],esc:str)
(X_6:bat[:oid,:oid],X_7:bat[:oid,:oid])
+address LIKEsubjoin;
+comment Join the string bat L with the pattern bat Rwith optional candidate
lists SL and SR using pattern escape string ESCand doing a case sensitive
match.The result is two aligned bats with oids of matching rows.
+
command algebra.likesubselect(s:bat[:oid,:str],pat:bat[:oid,:str],esc:str)
(l:bat[:oid,:oid],r:bat[:oid,:oid])
address PCRElike_join_pcre;
function
algebra.likesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,esc:str,anti:bit):bat[:oid,:oid];
diff --git a/clients/Tests/MAL-signatures_geom.stable.out
b/clients/Tests/MAL-signatures_geom.stable.out
--- a/clients/Tests/MAL-signatures_geom.stable.out
+++ b/clients/Tests/MAL-signatures_geom.stable.out
@@ -2331,6 +2331,10 @@ command algebra.groupby(gids:bat[:oid,:o
address ALGgroupby;
comment Produces a new BAT with groups identified by the head column. The
result contains tail times the head value, ie the tail contains the result
group sizes.
+command
algebra.ilikesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],sl:bat[:oid,:oid],sr:bat[:oid,:oid],esc:str)
(X_6:bat[:oid,:oid],X_7:bat[:oid,:oid])
+address ILIKEsubjoin;
+comment Join the string bat L with the pattern bat Rwith optional candidate
lists SL and SR using pattern escape string ESCand doing a case insensitive
match.The result is two aligned bats with oids of matching rows.
+
command algebra.ilikesubselect(s:bat[:oid,:str],pat:bat[:oid,:str],esc:str)
(l:bat[:oid,:oid],r:bat[:oid,:oid])
address PCREilike_join_pcre;
function
algebra.ilikesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,esc:str,anti:bit):bat[:oid,:oid];
@@ -2383,6 +2387,10 @@ pattern algebra.leftjoinPath(l:bat[:any,
address ALGjoinPath;
comment Routine to handle join paths. The type analysis is rather tricky.
+command
algebra.likesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],sl:bat[:oid,:oid],sr:bat[:oid,:oid],esc:str)
(X_6:bat[:oid,:oid],X_7:bat[:oid,:oid])
+address LIKEsubjoin;
+comment Join the string bat L with the pattern bat Rwith optional candidate
lists SL and SR using pattern escape string ESCand doing a case sensitive
match.The result is two aligned bats with oids of matching rows.
+
command algebra.likesubselect(s:bat[:oid,:str],pat:bat[:oid,:str],esc:str)
(l:bat[:oid,:oid],r:bat[:oid,:oid])
address PCRElike_join_pcre;
function
algebra.likesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,esc:str,anti:bit):bat[:oid,:oid];
diff --git a/clients/Tests/MAL-signatures_none.stable.out
b/clients/Tests/MAL-signatures_none.stable.out
--- a/clients/Tests/MAL-signatures_none.stable.out
+++ b/clients/Tests/MAL-signatures_none.stable.out
@@ -2330,6 +2330,10 @@ command algebra.groupby(gids:bat[:oid,:o
address ALGgroupby;
comment Produces a new BAT with groups identified by the head column. The
result contains tail times the head value, ie the tail contains the result
group sizes.
+command
algebra.ilikesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],sl:bat[:oid,:oid],sr:bat[:oid,:oid],esc:str)
(X_6:bat[:oid,:oid],X_7:bat[:oid,:oid])
+address ILIKEsubjoin;
+comment Join the string bat L with the pattern bat Rwith optional candidate
lists SL and SR using pattern escape string ESCand doing a case insensitive
match.The result is two aligned bats with oids of matching rows.
+
command algebra.ilikesubselect(s:bat[:oid,:str],pat:bat[:oid,:str],esc:str)
(l:bat[:oid,:oid],r:bat[:oid,:oid])
address PCREilike_join_pcre;
function
algebra.ilikesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,esc:str,anti:bit):bat[:oid,:oid];
@@ -2382,6 +2386,10 @@ pattern algebra.leftjoinPath(l:bat[:any,
address ALGjoinPath;
comment Routine to handle join paths. The type analysis is rather tricky.
+command
algebra.likesubjoin(l:bat[:oid,:str],r:bat[:oid,:str],sl:bat[:oid,:oid],sr:bat[:oid,:oid],esc:str)
(X_6:bat[:oid,:oid],X_7:bat[:oid,:oid])
+address LIKEsubjoin;
+comment Join the string bat L with the pattern bat Rwith optional candidate
lists SL and SR using pattern escape string ESCand doing a case sensitive
match.The result is two aligned bats with oids of matching rows.
+
command algebra.likesubselect(s:bat[:oid,:str],pat:bat[:oid,:str],esc:str)
(l:bat[:oid,:oid],r:bat[:oid,:oid])
address PCRElike_join_pcre;
function
algebra.likesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,esc:str,anti:bit):bat[:oid,:oid];
diff --git a/clients/Tests/SQL-dump_all.stable.out
b/clients/Tests/SQL-dump_all.stable.out
--- a/clients/Tests/SQL-dump_all.stable.out
+++ b/clients/Tests/SQL-dump_all.stable.out
@@ -57,9 +57,9 @@ Ready.
SCHEMA bam
SCHEMA json
SCHEMA tmp
+SCHEMA bam
+SCHEMA json
SCHEMA tmp
-SCHEMA json
-SCHEMA bam
SYSTEM SCHEMA sys
SYSTEM TABLE sys._columns
SYSTEM TABLE sys._tables
diff --git a/clients/Tests/SQL-dump_all.stable.out.oid32
b/clients/Tests/SQL-dump_all.stable.out.oid32
--- a/clients/Tests/SQL-dump_all.stable.out.oid32
+++ b/clients/Tests/SQL-dump_all.stable.out.oid32
@@ -57,9 +57,9 @@ Ready.
SCHEMA bam
SCHEMA json
SCHEMA tmp
+SCHEMA bam
+SCHEMA json
SCHEMA tmp
-SCHEMA json
-SCHEMA bam
SYSTEM SCHEMA sys
SYSTEM TABLE sys._columns
SYSTEM TABLE sys._tables
diff --git a/clients/Tests/SQL-dump_geom.stable.out
b/clients/Tests/SQL-dump_geom.stable.out
--- a/clients/Tests/SQL-dump_geom.stable.out
+++ b/clients/Tests/SQL-dump_geom.stable.out
@@ -56,8 +56,8 @@ Ready.
SCHEMA json
SCHEMA tmp
+SCHEMA json
SCHEMA tmp
-SCHEMA json
SYSTEM SCHEMA sys
SYSTEM TABLE sys._columns
SYSTEM TABLE sys._tables
diff --git a/clients/Tests/SQL-dump_geom.stable.out.32bit
b/clients/Tests/SQL-dump_geom.stable.out.32bit
--- a/clients/Tests/SQL-dump_geom.stable.out.32bit
+++ b/clients/Tests/SQL-dump_geom.stable.out.32bit
@@ -52,8 +52,8 @@ Ready.
SCHEMA json
SCHEMA tmp
+SCHEMA json
SCHEMA tmp
-SCHEMA json
SYSTEM SCHEMA sys
SYSTEM TABLE sys._columns
SYSTEM TABLE sys._tables
diff --git a/clients/Tests/SQL-dump_geom.stable.out.64bit.oid32
b/clients/Tests/SQL-dump_geom.stable.out.64bit.oid32
--- a/clients/Tests/SQL-dump_geom.stable.out.64bit.oid32
+++ b/clients/Tests/SQL-dump_geom.stable.out.64bit.oid32
@@ -56,8 +56,8 @@ Ready.
SCHEMA json
SCHEMA tmp
+SCHEMA json
SCHEMA tmp
-SCHEMA json
SYSTEM SCHEMA sys
SYSTEM TABLE sys._columns
SYSTEM TABLE sys._tables
diff --git a/clients/Tests/SQL-dump_none.stable.out
b/clients/Tests/SQL-dump_none.stable.out
--- a/clients/Tests/SQL-dump_none.stable.out
+++ b/clients/Tests/SQL-dump_none.stable.out
@@ -56,8 +56,8 @@ Ready.
SCHEMA json
SCHEMA tmp
+SCHEMA json
SCHEMA tmp
-SCHEMA json
SYSTEM SCHEMA sys
SYSTEM TABLE sys._columns
SYSTEM TABLE sys._tables
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1312,6 +1312,7 @@ str IDentifier(str *retval, str *in);
int IDfromString(str src, int *len, str *retval);
str IDprelude(void);
int IDtoString(str *retval, int *len, str handle);
+str ILIKEsubjoin(bat *r1, bat *r2, bat *lid, bat *rid, bat *slid, bat *srid,
str *esc);
str INET_comp_CS(bit *retval, inet *val1, inet *val2);
str INET_comp_CSE(bit *retval, inet *val1, inet *val2);
str INET_comp_CW(bit *retval, inet *val1, inet *val2);
@@ -1424,6 +1425,7 @@ int JSONtoString(str *s, int *len, json
str JSONunfold(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str JSONvalueArray(json *ret, json *arg);
str JSONvalueTable(int *ret, json *j);
+str LIKEsubjoin(bat *r1, bat *r2, bat *lid, bat *rid, bat *slid, bat *srid,
str *esc);
char *M5OutOfMemory;
str MACROprocessor(Client cntxt, MalBlkPtr mb, Symbol t);
int MAL_MAXCLIENTS;
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -2199,28 +2199,28 @@ doFile(Mapi mid, const char *file, int u
*line && !(isascii((int) *line) &&
isspace((int) *line));
line++) {
switch (*line) {
- case 't':
- x |= MD_TABLE;
+ case 't':
+ x |= MD_TABLE;
break;
- case 'v':
- x |= MD_VIEW;
+ case 'v':
+ x |= MD_VIEW;
break;
- case 's':
- x |= MD_SEQ;
+ case 's':
+ x |= MD_SEQ;
break;
- case 'f':
- x |= MD_FUNC;
+ case 'f':
+ x |= MD_FUNC;
break;
- case 'n':
- x |= MD_SCHEMA;
+ case 'n':
+ x |= MD_SCHEMA;
break;
- case 'S':
- wantsSystem = 1;
+ case 'S':
+ wantsSystem = 1;
break;
- default:
- fprintf(stderr,
"unknown sub-command for \\d: %c\n", *line);
- length = 0;
- line[1] = '\0';
+ default:
+ fprintf(stderr,
"unknown sub-command for \\d: %c\n", *line);
+ length = 0;
+ line[1] = '\0';
break;
}
}
@@ -2234,35 +2234,32 @@ doFile(Mapi mid, const char *file, int u
/* lowercase the object, except for
quoted parts */
q = line;
for (p = line; *p != '\0'; p++) {
- switch (*p) {
- case '"':
- if (escaped) {
- if (*(p
+ 1) == '"') {
-
/* SQL escape */
-
*q++ = *p++;
- } else {
-
escaped = 0;
- }
+ if (*p == '"') {
+ if (escaped) {
+ if (*(p + 1) ==
'"') {
+ /* SQL
escape */
+ *q++ =
*p++;
} else {
- escaped
= 1;
+ escaped
= 0;
}
- break;
- default:
- if (!escaped) {
- *q++ =
tolower((int) *p);
- if (*p
== '*') {
-
*p = '%';
-
hasWildcard = 1;
- } else
if (*p == '?') {
-
*p = '_';
-
hasWildcard = 1;
- } else
if (*p == '.') {
-
hasSchema = 1;
- }
- } else {
- *q++ =
*p;
+ } else {
+ escaped = 1;
+ }
+ } else {
+ if (!escaped) {
+ *q++ =
tolower((int) *p);
+ if (*p == '*') {
+ *p =
'%';
+
hasWildcard = 1;
+ } else if (*p
== '?') {
+ *p =
'_';
+
hasWildcard = 1;
+ } else if (*p
== '.') {
+
hasSchema = 1;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list