Changeset: 784cf334a8da for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=784cf334a8da
Added Files:
sql/test/BugTracker-2015/Tests/crash_timestamp_convert.Bug-3816.stable.err.Windows
sql/test/BugTracker-2015/Tests/crash_timestamp_convert.Bug-3816.stable.out.Windows
sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err
sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.out
sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.sql
sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.err
sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
sql/test/BugTracker-2017/Tests/create_table_as-missing_not_null.Bug-6329.sql
sql/test/BugTracker-2017/Tests/create_table_as-missing_not_null.Bug-6329.stable.err
sql/test/BugTracker-2017/Tests/create_table_as-missing_not_null.Bug-6329.stable.out
sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.sql
sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.stable.err
sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.stable.out
sql/test/malloc_fail/Tests/setmemorylimit-fail2.stable.err
sql/test/malloc_fail/Tests/setmemorylimit-fail2.stable.out
Modified Files:
clients/Tests/MAL-signatures.stable.out.int128
clients/odbc/driver/SQLColumnPrivileges.c
monetdb5/mal/mal_instruction.c
monetdb5/modules/mal/00_language_hge.mal
sql/backends/monet5/Tests/pyapi19.stable.err
sql/backends/monet5/Tests/pyapi19.stable.out
sql/backends/monet5/Tests/pyapi25.stable.err
sql/backends/monet5/Tests/pyapi25.stable.err.Windows
sql/backends/monet5/Tests/pyapi25.stable.out
sql/backends/monet5/Tests/pyapi29.stable.err
sql/backends/monet5/Tests/pyapi29.stable.out
sql/backends/monet5/UDF/pyapi/connection.c
sql/backends/monet5/UDF/pyapi/pyapi.c
sql/backends/monet5/UDF/pyapi/pyapi.mal
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_19.stable.err
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_19.stable.out
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_25.stable.err
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_25.stable.out
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_29.stable.err
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_29.stable.out
sql/backends/monet5/UDF/pyapi3/pyapi3.mal
sql/test/BugTracker-2017/Tests/All
sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.sql
sql/test/BugTracker-2017/Tests/nestedoperators.Bug-6292.stable.err
sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128
sql/test/emptydb-upgrade-chain/Tests/check.stable.out
sql/test/emptydb-upgrade-chain/Tests/check.stable.out.32bit
sql/test/emptydb-upgrade-chain/Tests/check.stable.out.int128
sql/test/emptydb-upgrade-hge/Tests/check.stable.out.int128
sql/test/emptydb-upgrade/Tests/check.stable.out
sql/test/emptydb-upgrade/Tests/check.stable.out.32bit
sql/test/emptydb-upgrade/Tests/check.stable.out.int128
sql/test/emptydb/Tests/check.SQL.py
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
Branch: default
Log Message:
Merge with Jul2017 branch.
diffs (truncated from 3018 to 300 lines):
diff --git a/clients/Tests/MAL-signatures.stable.out.int128
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -10172,21 +10172,21 @@ Ready.
[ "json", "unfold", "pattern json.unfold(val:json) (o:bat[:oid],
k:bat[:str], v:bat[:json]) ", "JSONunfold;", "Expands the outermost JSON
object into key-value pairs." ]
[ "json", "valuearray", "command json.valuearray(val:json):json ",
"JSONvalueArray;", "Expands the outermost JSON object values into a JSON
value array." ]
[ "json", "values", "command json.values(val:json):bat[:json] ",
"JSONvalueTable;", "Expands the outermost JSON values." ]
-[ "language", "assert", "command language.assert(v:bit, term:str):void
", "MALassertBit;", "" ]
-[ "language", "assert", "command language.assert(v:hge, term:str):void
", "MALassertHge;", "" ]
-[ "language", "assert", "command language.assert(v:int, term:str):void
", "MALassertInt;", "" ]
-[ "language", "assert", "command language.assert(v:lng, term:str):void
", "MALassertLng;", "" ]
-[ "language", "assert", "command language.assert(v:oid, term:str):void
", "MALassertOid;", "" ]
-[ "language", "assert", "command language.assert(v:sht, term:str):void
", "MALassertSht;", "" ]
-[ "language", "assert", "command language.assert(v:str, term:str):void
", "MALassertStr;", "" ]
-[ "language", "assert", "pattern language.assert(v:any_1, pname:str,
oper:str, val:any_2):void ", "MALassertTriple;", "Assertion test."
]
+[ "language", "assert", "unsafe command language.assert(v:bit,
term:str):void ", "MALassertBit;", "" ]
+[ "language", "assert", "unsafe command language.assert(v:hge,
term:str):void ", "MALassertHge;", "" ]
+[ "language", "assert", "unsafe command language.assert(v:int,
term:str):void ", "MALassertInt;", "" ]
+[ "language", "assert", "unsafe command language.assert(v:lng,
term:str):void ", "MALassertLng;", "" ]
+[ "language", "assert", "unsafe command language.assert(v:oid,
term:str):void ", "MALassertOid;", "" ]
+[ "language", "assert", "unsafe command language.assert(v:sht,
term:str):void ", "MALassertSht;", "" ]
+[ "language", "assert", "unsafe command language.assert(v:str,
term:str):void ", "MALassertStr;", "" ]
+[ "language", "assert", "unsafe pattern language.assert(v:any_1,
pname:str, oper:str, val:any_2):void ", "MALassertTriple;",
"Assertion test." ]
[ "language", "block", "pattern language.block(v:int, w:any...):int ",
"deblockdataflow;", "Block on availability of all variables w, and then
pass on v" ]
[ "language", "call", "pattern language.call(s:bat[:str]):void ",
"CMDcallBAT;", "Evaluate a program stored in a BAT." ]
[ "language", "call", "pattern language.call(m:str, f:str):void ",
"CMDcallFunction;", "" ]
[ "language", "call", "pattern language.call(s:str):void ",
"CMDcallString;", "Evaluate a MAL string program." ]
[ "language", "dataflow", "pattern language.dataflow():bit ",
"MALstartDataflow;", "The current guarded block is executed using dataflow
control. " ]
[ "language", "pass", "pattern language.pass(v:any_1):void ", "MALpass;",
"Cheap instruction to disgard storage while retaining the dataflow dependency"
]
-[ "language", "raise", "command language.raise(msg:str):str ",
"CMDraise;", "Raise an exception labeled \n\twith a specific message."
]
+[ "language", "raise", "unsafe command language.raise(msg:str):str ",
"CMDraise;", "Raise an exception labeled \n\twith a specific message."
]
[ "language", "register", "pattern language.register(m:str, f:str,
code:str, help:str):void ", "CMDregisterFunction;", "Compile the code string
to MAL and register it as a function." ]
[ "language", "sink", "pattern language.sink(v:any...):void ",
"MALgarbagesink;", "Variables to be considered together when triggering
garbage collection.\nUsed in the dataflow blocks to avoid early release of
values." ]
[ "language", "source", "pattern language.source(f:str):void ",
"CMDevalFile;", "Merge the instructions stored in the file with the current
program." ]
diff --git a/clients/odbc/driver/SQLColumnPrivileges.c
b/clients/odbc/driver/SQLColumnPrivileges.c
--- a/clients/odbc/driver/SQLColumnPrivileges.c
+++ b/clients/odbc/driver/SQLColumnPrivileges.c
@@ -147,39 +147,46 @@ MNDBColumnPrivileges(ODBCStmt *stmt,
"t.name as table_name, "
"c.name as column_name, "
"case a.id "
- "when s.owner then '_SYSTEM' "
+ "when s.owner "
+ "then '_SYSTEM' "
"else g.name "
"end as grantor, "
"case a.name "
- "when 'public' then 'PUBLIC' "
+ "when 'public' "
+ "then 'PUBLIC' "
"else a.name "
"end as grantee, "
- "case p.privileges "
- "when 1 then 'SELECT' "
- "when 2 then 'UPDATE' "
- "when 4 then 'INSERT' "
- "when 8 then 'DELETE' "
- "when 16 then 'EXECUTE' "
- "when 32 then 'GRANT' "
- "end as privilege, "
+ "pc.privilege_code_name as privilege, "
"case p.grantable "
- "when 1 then 'YES' "
- "when 0 then 'NO' "
- "end as is_grantable "
- "from sys.schemas s, "
- "sys._tables t, "
- "sys._columns c, "
- "sys.auths a, "
- "sys.privileges p, "
- "sys.auths g, "
- "sys.env() e "
+ "when 1 "
+ "then 'YES' "
+ "when 0 "
+ "then 'NO' "
+ "end as is_grantable "
+ "from sys.schemas as s, "
+ "sys._tables as t, "
+ "sys._columns as c, "
+ "sys.auths as a, "
+ "sys.privileges as p, "
+ "sys.auths as g, "
+ "sys.env() as e, "
+ /* this can eventually be replaced by
+ * sys.privilege_codes as pc
+ * see 51_sys_schema_extensionl.sql */
+ "(values (1, 'SELECT'), "
+ "(2, 'UPDATE'), "
+ "(4, 'INSERT'), "
+ "(8, 'DELETE'), "
+ "(16, 'EXECUTE'), "
+ "(32, 'GRANT')) as pc(privilege_code_id,
privilege_code_name) "
"where p.obj_id = c.id and "
"c.table_id = t.id and "
"p.auth_id = a.id and "
"t.schema_id = s.id and "
"t.system = false and "
"p.grantor = g.id and "
- "e.name = 'gdk_dbname'");
+ "e.name = 'gdk_dbname' and "
+ "p.privileges = pc.privilege_code_id");
assert(strlen(query) < 1100);
query_end += strlen(query_end);
@@ -211,7 +218,7 @@ MNDBColumnPrivileges(ODBCStmt *stmt,
/* add the ordering */
strcpy(query_end,
- " order by \"table_cat\", \"table_schem\", \"table_name\",
\"column_name\", \"privilege\"");
+ " order by table_cat, table_schem, table_name, column_name,
privilege");
query_end += strlen(query_end);
/* query the MonetDB data dictionary tables */
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
@@ -148,7 +148,6 @@ resizeMalBlk(MalBlkPtr mb, int elements)
{
int i;
- assert(mb->vsize >= mb->ssize);
if( elements > mb->ssize){
InstrPtr *ostmt = mb->stmt;
mb->stmt = (InstrPtr *) GDKrealloc(mb->stmt, elements *
sizeof(InstrPtr));
@@ -1436,13 +1435,15 @@ void
pushInstruction(MalBlkPtr mb, InstrPtr p)
{
int i;
+ int extra;
InstrPtr q;
if (p == NULL)
return;
+ extra = mb->vsize - mb->vtop; // the extra variables already known
if (mb->stop + 1 >= mb->ssize) {
- if( resizeMalBlk(mb, growBlk(mb->ssize)) ){
+ if( resizeMalBlk(mb, growBlk(mb->ssize) + extra) ){
/* perhaps we can continue with a smaller increment.
* But the block remains marked as faulty.
*/
diff --git a/monetdb5/modules/mal/00_language_hge.mal
b/monetdb5/modules/mal/00_language_hge.mal
--- a/monetdb5/modules/mal/00_language_hge.mal
+++ b/monetdb5/modules/mal/00_language_hge.mal
@@ -6,5 +6,5 @@
module language;
-command assert(v:hge,term:str):void
+unsafe command assert(v:hge,term:str):void
address MALassertHge;
diff --git a/sql/backends/monet5/Tests/pyapi19.stable.err
b/sql/backends/monet5/Tests/pyapi19.stable.err
--- a/sql/backends/monet5/Tests/pyapi19.stable.err
+++ b/sql/backends/monet5/Tests/pyapi19.stable.err
@@ -31,6 +31,64 @@ stderr of test 'pyapi19` in directory 's
# 11:59:04 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-5346" "--port=35428"
# 11:59:04 >
+MAPI = (monetdb) /var/tmp/mtest-23452/.s.monetdb.39765
+QUERY = SELECT * FROM mapped_query();
+ERROR = !Python exception
+ !
+ ! 1. def pyfun(_columns,_column_types,_conn):
+ !> 2. _conn.execute('CREATE TABLE pyapi19_integers(i INTEGER);')
+ ! 3. _conn.execute('INSERT INTO pyapi19_integers VALUES (0), (1),
(2);')
+ ! 4. return(1)
+ !Loopback queries are not supported in parallel.
+MAPI = (monetdb) /var/tmp/mtest-23452/.s.monetdb.39765
+QUERY = SELECT * FROM pyapi19_integers;
+ERROR = !current transaction is aborted (please ROLLBACK)
+MAPI = (monetdb) /var/tmp/mtest-23452/.s.monetdb.39765
+QUERY = CREATE FUNCTION mapped_result_query() returns table (i integer)
LANGUAGE PYTHON_MAP
+ {
+ res = _conn.execute('SELECT * FROM pyapi19_integers;')
+ return res['i']
+ };
+ERROR = !current transaction is aborted (please ROLLBACK)
+MAPI = (monetdb) /var/tmp/mtest-23452/.s.monetdb.39765
+QUERY = SELECT * FROM mapped_result_query();
+ERROR = !current transaction is aborted (please ROLLBACK)
+MAPI = (monetdb) /var/tmp/mtest-23452/.s.monetdb.39765
+QUERY = SELECT COUNT(i) FROM pyapi19_load_table();
+ERROR = !Python exception
+ !
+ ! 1. def pyfun(_columns,_column_types,_conn):
+ !> 2. res = _conn.execute('SELECT * FROM pyapi19_integers;')
+ ! 3. return res['i']
+ ! 4.
+ !Loopback queries are not supported in parallel.
+MAPI = (monetdb) /var/tmp/mtest-23452/.s.monetdb.39765
+QUERY = SELECT * FROM mapped_result_query();
+ERROR = !Python exception
+ !
+ ! 1. def pyfun(_columns,_column_types,_conn):
+ !> 2. res = _conn.execute('SELECT * FROM pyapi19_strings;')
+ ! 3. return res['s']
+ ! 4.
+ !Loopback queries are not supported in parallel.
+MAPI = (monetdb) /var/tmp/mtest-23452/.s.monetdb.39765
+QUERY = SELECT * FROM mapped_result_query();
+ERROR = !Python exception
+ !
+ ! 1. def pyfun(_columns,_column_types,_conn):
+ !> 2. res = _conn.execute('SELECT * FROM pyapi19_dates;')
+ ! 3. return res
+ ! 4.
+ !Loopback queries are not supported in parallel.
+MAPI = (monetdb) /var/tmp/mtest-23452/.s.monetdb.39765
+QUERY = SELECT * FROM pyapi19_load_table() LIMIT 100;
+ERROR = !Python exception
+ !
+ ! 1. def pyfun(_columns,_column_types,_conn):
+ !> 2. res = _conn.execute('SELECT * FROM pyapi19_integers;')
+ ! 3. return res
+ ! 4.
+ !Loopback queries are not supported in parallel.
# 11:59:05 >
# 11:59:05 > "Done."
diff --git a/sql/backends/monet5/Tests/pyapi19.stable.out
b/sql/backends/monet5/Tests/pyapi19.stable.out
--- a/sql/backends/monet5/Tests/pyapi19.stable.out
+++ b/sql/backends/monet5/Tests/pyapi19.stable.out
@@ -36,33 +36,6 @@ Ready.
# _conn.execute('INSERT INTO pyapi19_integers VALUES (0), (1), (2);')
# return(1)
#};
-#SELECT * FROM mapped_query();
-% . # table_name
-% i # name
-% int # type
-% 1 # length
-[ 1 ]
-#SELECT * FROM pyapi19_integers;
-% sys.pyapi19_integers # table_name
-% i # name
-% int # type
-% 1 # length
-[ 0 ]
-[ 1 ]
-[ 2 ]
-#CREATE FUNCTION mapped_result_query() returns table (i integer) LANGUAGE
PYTHON_MAP
-#{
-# res = _conn.execute('SELECT * FROM pyapi19_integers;')
-# return res['i']
-#};
-#SELECT * FROM mapped_result_query();
-% . # table_name
-% i # name
-% int # type
-% 1 # length
-[ 0 ]
-[ 1 ]
-[ 2 ]
#ROLLBACK;
#START TRANSACTION;
#CREATE FUNCTION pyapi19_create_table() returns table (i integer) LANGUAGE P
@@ -75,12 +48,6 @@ Ready.
# return res['i']
#};
#CREATE TABLE pyapi19_integers AS SELECT * FROM pyapi19_create_table() WITH
DATA;
-#SELECT COUNT(i) FROM pyapi19_load_table();
-% .L2 # table_name
-% L1 # name
-% bigint # type
-% 6 # length
-[ 100000 ]
#ROLLBACK;
#START TRANSACTION;
#CREATE TABLE pyapi19_strings(s STRING);
@@ -91,14 +58,6 @@ Ready.
# res = _conn.execute('SELECT * FROM pyapi19_strings;')
# return res['s']
#};
-#SELECT * FROM mapped_result_query();
-% . # table_name
-% i # name
-% clob # type
-% 11 # length
-[ "hello" ]
-[ "33" ]
-[ "hello world" ]
#ROLLBACK;
#START TRANSACTION;
#CREATE TABLE pyapi19_dates(d DATE);
@@ -109,14 +68,6 @@ Ready.
# res = _conn.execute('SELECT * FROM pyapi19_dates;')
# return res
#};
-#SELECT * FROM mapped_result_query();
-% . # table_name
-% d # name
-% date # type
-% 10 # length
-[ 2014-10-03 ]
-[ 2000-03-24 ]
-[ 2033-11-22 ]
#ROLLBACK;
#START TRANSACTION;
#CREATE FUNCTION pyapi19_create_table() returns table (i integer, j integer, k
double, l float, m hugeint, n bigint, o STRING, p DECIMAL) LANGUAGE P
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list