MonetDB: default - approved output after recent changes
Changeset: 86358afed04e for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=86358afed04e Modified Files: sql/test/BugTracker/Tests/insert_values.SF-1578838.stable.err sql/test/bugs/Tests/subselect_multiple_unionall_where_1=1-bug-sf-1005596.stable.out sql/test/leaks/Tests/check0.stable.out sql/test/mapi/Tests/php_monetdb.stable.out Branch: default Log Message: approved output after recent changes diffs (100 lines): diff --git a/sql/test/BugTracker/Tests/insert_values.SF-1578838.stable.err b/sql/test/BugTracker/Tests/insert_values.SF-1578838.stable.err --- a/sql/test/BugTracker/Tests/insert_values.SF-1578838.stable.err +++ b/sql/test/BugTracker/Tests/insert_values.SF-1578838.stable.err @@ -79,7 +79,7 @@ # 19:33:23 mclient -lsql -umonetdb -Pmonetdb --host=alf --port=33470 # 19:33:23 -MAPI = monetdb@alf:32144 +MAPI = monetdb@alf:36639 QUERY = INSERT INTO examines (docID, vicID) VALUES ( ( @@ -94,8 +94,7 @@ ) ); ERROR = !SQLException:zero_or_one:cardinality violation (21) -!SQLException:zero_or_one:cardinality violation (21) -MAPI = monetdb@alf:32144 +MAPI = monetdb@alf:36639 QUERY = INSERT INTO timelines (vicID, time, event) VALUES ( ( diff --git a/sql/test/bugs/Tests/subselect_multiple_unionall_where_1=1-bug-sf-1005596.stable.out b/sql/test/bugs/Tests/subselect_multiple_unionall_where_1=1-bug-sf-1005596.stable.out --- a/sql/test/bugs/Tests/subselect_multiple_unionall_where_1=1-bug-sf-1005596.stable.out +++ b/sql/test/bugs/Tests/subselect_multiple_unionall_where_1=1-bug-sf-1005596.stable.out @@ -30,7 +30,25 @@ % tinyint # type % 1 # length [ 1] -% .tables, sys.tables, .tables,.tables,.tables, .tables,.tables,.tables,.tables,.tables # table_name +#SELECT * FROM ( +# SELECT 'demo' AS TABLE_CAT, +# schemas.name AS TABLE_SCHEM, +# tables.name AS TABLE_NAME, +# 'SYSTEM TABLE' AS TABLE_TYPE, +# '' AS REMARKS, +# null AS TYPE_CAT, +# null AS TYPE_SCHEM, +# null AS TYPE_NAME, +# 'rowid' AS SELF_REFERENCING_COL_NAME, +# 'SYSTEM' AS REF_GENERATION +# FROM tables, schemas +# WHERE tables.schema_id = schemas.id +# AND tables.system = true +# AND tables.type = 0 +#) AS tables +#WHERE 1 = 1 +# AND (TABLE_TYPE LIKE 'TABLE' OR TABLE_T +% .tables, .tables,.tables,.tables,.tables, .tables,.tables,.tables,.tables,.tables # table_name % TABLE_CAT, TABLE_SCHEM,TABLE_NAME, TABLE_TYPE, REMARKS, TYPE_CAT, TYPE_SCHEM, TYPE_NAME, SELF_REFERENCING_COL_NAME, REF_GENERATION # name % char,varchar,varchar,char, char, char, char, char, char, char # type % 4, 0, 0, 12, 0, 0, 0, 0, 5, 6 # length diff --git a/sql/test/leaks/Tests/check0.stable.out b/sql/test/leaks/Tests/check0.stable.out --- a/sql/test/leaks/Tests/check0.stable.out +++ b/sql/test/leaks/Tests/check0.stable.out @@ -47,6 +47,7 @@ [ oid, int, 3155] [ oid, int, 3155] [ oid, int, 3155] +[ oid, lng, 0 ] [ oid, lng, 19 ] [ oid, str, 1 ] [ oid, str, 1 ] @@ -61,13 +62,13 @@ % L1, L2 # name % char,wrd # type % 9, 3 # length -[ transient, 488 ] +[ transient, 487 ] #select 'persistent', count(*) from bbp() as bbp where kind like 'pers%'; % .L3, .bbp # table_name % L3, L4 # name % char,wrd # type % 10, 2 # length -[ persistent,24 ] +[ persistent,25 ] # 22:02:15 # 22:02:15 Done. diff --git a/sql/test/mapi/Tests/php_monetdb.stable.out b/sql/test/mapi/Tests/php_monetdb.stable.out --- a/sql/test/mapi/Tests/php_monetdb.stable.out +++ b/sql/test/mapi/Tests/php_monetdb.stable.out @@ -88,11 +88,11 @@ 5082 auths 20000 true0 false 0 5086 privileges 20000 true0 false 0 5199 queryhistory20000 true0 false 0 -5213 callhistory 20000 false 0 false 0 -5230 querylog2000create view querylog asnselect qd.*, ql.ctime, ql.arguments, ql.exec, ql.result, ql.foot, ql.memory, ql.tuples, ql.inblock, ql.oublock from queryhistory qd, callhistory qlnwhere qd.id = ql.id;1 false 0 false 0 -5656 systemfunctions 20000 false 0 false 0 +5213 callhistory 20000 true0 false 0 +5230 querylog2000create view querylog asnselect qd.*, ql.ctime, ql.arguments, ql.exec, ql.result, ql.foot, ql.memory,
MonetDB: default - merged
Changeset: 9ab21ca437ff for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9ab21ca437ff Modified Files: Branch: default Log Message: merged diffs (truncated from 809 to 300 lines): diff --git a/monetdb5/modules/mal/mal_init.mx b/monetdb5/modules/mal/mal_init.mx --- a/monetdb5/modules/mal/mal_init.mx +++ b/monetdb5/modules/mal/mal_init.mx @@ -119,7 +119,6 @@ include opt_aliases; include opt_coercion; include opt_constants; -include opt_datacell; include opt_dataflow; include opt_dictionary; include opt_deadcode; diff --git a/sql/backends/monet5/datacell/50_datacell.mal b/sql/backends/monet5/datacell/50_datacell.mal --- a/sql/backends/monet5/datacell/50_datacell.mal +++ b/sql/backends/monet5/datacell/50_datacell.mal @@ -16,6 +16,7 @@ # All Rights Reserved. # This loads the MonetDB/SQL module +library datacell; include basket; include receptor; include emitter; diff --git a/sql/backends/monet5/datacell/Tests/emitter00.mal b/sql/backends/monet5/datacell/Tests/emitter00.mal --- a/sql/backends/monet5/datacell/Tests/emitter00.mal +++ b/sql/backends/monet5/datacell/Tests/emitter00.mal @@ -1,21 +1,25 @@ -#A test for the emitter -#The emitter uses the prefix to lock the streams -libary datacell; -include basket; -include emitter; +#A single thread for a simple stream +#The test is based on the definition the datacell baskets X +# it starts a receptor in debug mode to see arrivals coming +# from a (client) sensor. -p1:= basket.new(X_p1,:bat[:lng,:int]); -p2:= basket.new(X_p2,:bat[:lng,:int]); -basket.group(X,X_p1,X_p2); -t:= alarm.usec(); -bat.insert(p1,t,1); -bat.insert(p2,t,1); -t:= alarm.usec(); -bat.insert(p1,t,1); -bat.insert(p2,t,1); +sql.init(); -emitter.new(X); -emitter.start(X,localhost,50001); -io.print(emitter done); +emitter.start(datacell,X,localhost,50502,passive); +io.print(emitter working); alarm.sleep(5); -emitter.drop(X); +emitter.pause(datacell,X); +io.print(emitter paused); +alarm.sleep(5); +emitter.resume(datacell,X); +io.print(emitter restarted); +alarm.sleep(5); +emitter.pause(datacell,X); +io.print(emitter stopped); +emitter.drop(datacell,X); + +# The SQL equivalents +# call emitter.start('datacell','X','localhost',50502,'passive'); +# call emitter.pause('datacell','X'); +# call emitter.resume('datacell','X'); +# call emitter.drop('datacell','X'); diff --git a/sql/backends/monet5/datacell/Tests/receptor00.mal b/sql/backends/monet5/datacell/Tests/receptor00.mal --- a/sql/backends/monet5/datacell/Tests/receptor00.mal +++ b/sql/backends/monet5/datacell/Tests/receptor00.mal @@ -1,17 +1,25 @@ #A single thread for a simple stream -#The receptor uses the prefix to lock the streams -libary datacell; -include basket; -include receptor; +#The test is based on the definition the datacell baskets X +# it starts a receptor in debug mode to see arrivals coming +# from a (client) sensor. -p1:= basket.new(X_p1,:bat[:lng,:lng]); -p2:= basket.new(X_p2,:bat[:lng,:int]); -basket.group(X,X_p1); -basket.group(X,X_p2); -receptor.new(X); -receptor.setType(X,server); -receptor.start(X,localhost,50001); -io.print(receptors working); -io.print(p1,p2); +sql.init(); + +receptor.start(datacell,X,localhost,50501,passive); +io.print(receptor working); alarm.sleep(5); -receptor.drop(X); +receptor.pause(datacell,X); +io.print(receptor paused); +alarm.sleep(5); +receptor.resume(datacell,X); +io.print(receptor restarted); +alarm.sleep(5); +receptor.pause(datacell,X); +io.print(receptor stopped); +receptor.drop(datacell,X); + +# The SQL equivalents +# call receptor.start('datacell','X','localhost',50501,'passive'); +# call receptor.pause('datacell','X'); +# call receptor.resume('datacell','X'); +# call receptor.drop('datacell','X'); diff --git a/sql/backends/monet5/datacell/datacell.sql b/sql/backends/monet5/datacell/datacell.sql --- a/sql/backends/monet5/datacell/datacell.sql +++ b/sql/backends/monet5/datacell/datacell.sql @@ -14,11 +14,35 @@ -- Copyright August 2008-2011 MonetDB B.V. -- All Rights Reserved. --- Datacell wrappers -create procedure receptor (url string, act string) -external name datacell.receptor_action; +-- Datacell basket wrappers --- MonetDB tuple formatted message field extractors -create procedure datacell.register_basket(s string) -external name datacell.register_basket; +-- Datacell receptor wrappers +create schema receptor; +create procedure receptor.start (sch string, tbl string, host string, port int, protocol string) +external name receptor.start; + +create procedure receptor.pause (sch string, tbl string) +external name receptor.pause; + +create procedure receptor.resume (sch string, tbl string) +external name receptor.resume; + +create procedure receptor.drop (sch string, tbl string) +external name receptor.drop; + +-- Datacell emitter wrappers + +create schema emitter; +create procedure emitter.start (sch string, tbl string, host string, port int, protocol string) +external name emitter.start; + +create
MonetDB: default - Merge with default
Changeset: ac190cff12ca for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ac190cff12ca Modified Files: Branch: default Log Message: Merge with default diffs (163 lines): 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 @@ -913,7 +913,7 @@ sql_rel *rel = NULL, *nrel, *lrel, *rrel; list *exps, *gexps; int distinct = 0; - operator_type j = 0; + operator_type j = op_basetable; skipWS(r,pos); if (r[*pos] == 'd') { @@ -1086,25 +1086,25 @@ j = op_left; /* fall through */ case 'r': - if (!j) { + if (j != op_basetable) { *pos += strlen(right outer join); j = op_right; } /* fall through */ case 'f': - if (!j) { + if (j != op_basetable) { *pos += strlen(full outer join); j = op_full; } /* fall through */ case 'c': - if (!j) { + if (j != op_basetable) { *pos += strlen(crossproduct); j = op_join; } /* fall through */ case 'j': - if (!j) { + if (j != op_basetable) { *pos += strlen(join); j = op_join; } @@ -1134,17 +1134,17 @@ rel-exps = exps; return rel; case 'u': - if (!j) { + if (j != op_basetable) { *pos += strlen(union); j = op_union; } case 'i': - if (!j) { + if (j != op_basetable) { *pos += strlen(intersect); j = op_inter; } case 'e': - if (!j) { + if (j != op_basetable) { *pos += strlen(except); j = op_except; } diff --git a/sql/test/BugTracker/Tests/insert_values.SF-1578838.stable.err b/sql/test/BugTracker/Tests/insert_values.SF-1578838.stable.err --- a/sql/test/BugTracker/Tests/insert_values.SF-1578838.stable.err +++ b/sql/test/BugTracker/Tests/insert_values.SF-1578838.stable.err @@ -79,7 +79,7 @@ # 19:33:23 mclient -lsql -umonetdb -Pmonetdb --host=alf --port=33470 # 19:33:23 -MAPI = monetdb@alf:32144 +MAPI = monetdb@alf:36639 QUERY = INSERT INTO examines (docID, vicID) VALUES ( ( @@ -94,8 +94,7 @@ ) ); ERROR = !SQLException:zero_or_one:cardinality violation (21) -!SQLException:zero_or_one:cardinality violation (21) -MAPI = monetdb@alf:32144 +MAPI = monetdb@alf:36639 QUERY = INSERT INTO timelines (vicID, time, event) VALUES ( ( diff --git a/sql/test/bugs/Tests/subselect_multiple_unionall_where_1=1-bug-sf-1005596.stable.out b/sql/test/bugs/Tests/subselect_multiple_unionall_where_1=1-bug-sf-1005596.stable.out --- a/sql/test/bugs/Tests/subselect_multiple_unionall_where_1=1-bug-sf-1005596.stable.out +++ b/sql/test/bugs/Tests/subselect_multiple_unionall_where_1=1-bug-sf-1005596.stable.out @@ -30,7 +30,25 @@ % tinyint # type % 1 # length [ 1] -% .tables, sys.tables, .tables,.tables,.tables, .tables,.tables,.tables,.tables,.tables # table_name +#SELECT * FROM ( +# SELECT 'demo' AS TABLE_CAT, +# schemas.name AS TABLE_SCHEM, +# tables.name AS TABLE_NAME, +# 'SYSTEM TABLE' AS TABLE_TYPE, +# '' AS REMARKS, +# null AS TYPE_CAT, +# null AS TYPE_SCHEM, +# null AS TYPE_NAME, +# 'rowid' AS SELF_REFERENCING_COL_NAME, +# 'SYSTEM' AS REF_GENERATION +# FROM tables, schemas +# WHERE tables.schema_id = schemas.id +# AND tables.system = true +# AND tables.type = 0 +#) AS tables +#WHERE 1 = 1 +# AND (TABLE_TYPE LIKE 'TABLE' OR TABLE_T +% .tables, .tables,.tables,.tables,.tables, .tables,.tables,.tables,.tables,.tables # table_name % TABLE_CAT, TABLE_SCHEM,TABLE_NAME, TABLE_TYPE, REMARKS, TYPE_CAT, TYPE_SCHEM, TYPE_NAME, SELF_REFERENCING_COL_NAME, REF_GENERATION # name % char,varchar,varchar,char, char, char, char, char, char, char # type % 4, 0, 0, 12, 0, 0, 0, 0, 5, 6 # length diff --git a/sql/test/leaks/Tests/check0.stable.out b/sql/test/leaks/Tests/check0.stable.out --- a/sql/test/leaks/Tests/check0.stable.out +++ b/sql/test/leaks/Tests/check0.stable.out @@ -47,6 +47,7 @@ [
MonetDB: default - Basic basket, receptor, emitter works
Changeset: 290282750fc9 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=290282750fc9 Modified Files: sql/backends/monet5/datacell/50_datacell.mal sql/backends/monet5/datacell/50_datacell.sql sql/backends/monet5/datacell/Makefile.ag sql/backends/monet5/datacell/Tests/basket00.mal sql/backends/monet5/datacell/Tests/datacell00.sql sql/backends/monet5/datacell/Tests/emitter00.mal sql/backends/monet5/datacell/Tests/receptor00.mal sql/backends/monet5/datacell/basket.mx sql/backends/monet5/datacell/datacell.sql sql/backends/monet5/datacell/emitter.mx sql/backends/monet5/datacell/petrinet.mx sql/backends/monet5/datacell/receptor.mx Branch: default Log Message: Basic basket, receptor, emitter works The code has been checked and basket.register(), receptor.start(), and emitter.start() seem to work (= not to crash). SQL layer hangs on resolution bug. diffs (truncated from 807 to 300 lines): diff --git a/sql/backends/monet5/datacell/50_datacell.mal b/sql/backends/monet5/datacell/50_datacell.mal --- a/sql/backends/monet5/datacell/50_datacell.mal +++ b/sql/backends/monet5/datacell/50_datacell.mal @@ -16,7 +16,7 @@ # All Rights Reserved. # This loads the MonetDB/SQL module -library datacell; +include datacell; include basket; include receptor; include emitter; diff --git a/sql/backends/monet5/datacell/50_datacell.sql b/sql/backends/monet5/datacell/50_datacell.sql new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/datacell/50_datacell.sql @@ -0,0 +1,40 @@ +# The contents of this file are subject to the MonetDB Public License +# Version 1.1 (the License); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://monetdb.cwi.nl/Legal/MonetDBLicense-1.1.html +# +# Software distributed under the License is distributed on an AS IS +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +# License for the specific language governing rights and limitations +# under the License. +# +# The Original Code is the MonetDB Database System. +# +# The Initial Developer of the Original Code is CWI. +# Portions created by CWI are Copyright (C) 1997-July 2008 CWI. +# Copyright August 2008-2011 MonetDB B.V. +# All Rights Reserved. + +-- Datacell basket wrappers +create schema datacell; +create procedure datacell.basket(sch string, tbl string) + external name datacell.basket; + +create function datacell.inventory() +returns table (kind string, nme string) + external name datacell.inventory; + +create procedure datacell.receptor(sch string, tbl string, host string, port int, protocol string) +external name receptor.start; + +create procedure datacell.emitter(sch string, tbl string, host string, port int, protocol string) +external name emitter.start; + +create procedure datacell.pause (sch string, tbl string) +external name datacell.pause; + +create procedure datacell.resume (sch string, tbl string) +external name datacell.resume; + +create procedure datacell.drop (sch string, tbl string) +external name datacell.drop; diff --git a/sql/backends/monet5/datacell/Makefile.ag b/sql/backends/monet5/datacell/Makefile.ag --- a/sql/backends/monet5/datacell/Makefile.ag +++ b/sql/backends/monet5/datacell/Makefile.ag @@ -40,6 +40,7 @@ receptor.mx \ petrinet.mx \ dcoperator.mx \ + datacell.mx \ emitter.mx LIBS = ../../../../monetdb5/tools/libmonetdb5 \ @@ -70,6 +71,7 @@ receptor.mal \ emitter.mal \ petrinet.mal \ + datacell.mal \ dcoperator.mal } diff --git a/sql/backends/monet5/datacell/Tests/basket00.mal b/sql/backends/monet5/datacell/Tests/basket00.mal --- a/sql/backends/monet5/datacell/Tests/basket00.mal +++ b/sql/backends/monet5/datacell/Tests/basket00.mal @@ -1,18 +1,15 @@ #Testing the basket functionality -libary datacell; -include basket; +# this assumes you have ran first datacell00.sql -p1:= basket.new(sys_x_p1,:bat[:lng,:int]); -p2:= basket.new(sys_x_p2,:bat[:lng,:int]); +basket.register(datacell,x); -basket.group(X,sys_x_p1,sys_x_p2); +basket.lock(x); +io.print(x locked); +basket.unlock(x); -basket.lock(X); -io.print(sys_x_p1 locked); -basket.unlock(X); +basket.drop(x); -basket.lock(X); -io.print(sys_x_p2 locked); -basket.unlock(X); - -basket.drop(X); +# The SQL equivalent +#call datacell.basket('datacell','x'); +#call datacell.lock('x'); +#call datacell.unlock('x'); diff --git a/sql/backends/monet5/datacell/Tests/datacell00.sql b/sql/backends/monet5/datacell/Tests/datacell00.sql new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/datacell/Tests/datacell00.sql @@ -0,0 +1,5 @@ +#set up the minimal test environment for datacell + +create schema datacell; +create table datacell.X( id int, tag