Changeset: 2379bf0a37a5 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2379bf0a37a5 Added Files: sql/backends/monet5/Tests/pyapi25.sql sql/backends/monet5/Tests/pyapi25.stable.err sql/backends/monet5/Tests/pyapi25.stable.out Branch: pyapi Log Message:
Mapped loopback query testcase. diffs (240 lines): diff --git a/sql/backends/monet5/Tests/pyapi25.sql b/sql/backends/monet5/Tests/pyapi25.sql new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/Tests/pyapi25.sql @@ -0,0 +1,57 @@ + +# Loopback query tests for mapped functions +START TRANSACTION; + +# Use data from a different table in computation +CREATE TABLE pyapi09table(i integer); +INSERT INTO pyapi09table VALUES (1), (2), (3), (4); +CREATE TABLE pyapi09multiplication(i integer); +INSERT INTO pyapi09multiplication VALUES (3); + +CREATE FUNCTION pyapi09(i integer) returns integer +language PYTHON_MAP +{ + res = _conn.execute('SELECT i FROM pyapi09multiplication;') + return res['i'] * i +}; + +SELECT pyapi09(i) FROM pyapi09table; #multiply by 3 +UPDATE pyapi09multiplication SET i=10; +SELECT pyapi09(i) FROM pyapi09table; #multiply by 10 + +DROP FUNCTION pyapi09; +DROP TABLE pyapi09table; +DROP TABLE pyapi09multiplication; + +# Update table? +CREATE TABLE pyapi09table(i integer); +INSERT INTO pyapi09table VALUES (1), (2), (3), (4); +CREATE TABLE pyapi09multiplication(i integer); +INSERT INTO pyapi09multiplication VALUES (3); + +CREATE FUNCTION pyapi09(i integer) returns integer +language PYTHON +{ + _conn.execute('UPDATE pyapi09multiplication SET i=20;') + return i +}; +CREATE FUNCTION pyapi09map(i integer) returns integer +language PYTHON_MAP +{ + _conn.execute('UPDATE pyapi09multiplication SET i=10;') + return i +}; + +SELECT * FROM pyapi09multiplication; # 3 +SELECT pyapi09(i) FROM pyapi09table; +SELECT * FROM pyapi09multiplication; # 20 +SELECT pyapi09map(i) FROM pyapi09table; +SELECT * FROM pyapi09multiplication; # 20, update in PYTHON_MAP does not work (we should probably disable it) + +DROP FUNCTION pyapi09; +DROP FUNCTION pyapi09map; +DROP TABLE pyapi09table; +DROP TABLE pyapi09multiplication; + +ROLLBACK; + diff --git a/sql/backends/monet5/Tests/pyapi25.stable.err b/sql/backends/monet5/Tests/pyapi25.stable.err new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/Tests/pyapi25.stable.err @@ -0,0 +1,38 @@ +stderr of test 'pyapi25` in directory 'sql/backends/monet5` itself: + + +# 14:54:29 > +# 14:54:29 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=34132" "--set" "mapi_usock=/var/tmp/mtest-32200/.s.monetdb.34132" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/export/scratch2/raasveld/build/var/MonetDB/mTests_sql_backends_monet5" "--set" "mal_listing=0" "--set" "embedded_r=true" "--set" "embedded_py=true" +# 14:54:29 > + +# builtin opt gdk_dbpath = /export/scratch2/raasveld/build/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = no +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# builtin opt mapi_open = false +# builtin opt mapi_autosense = false +# builtin opt sql_optimizer = default_pipe +# builtin opt sql_debug = 0 +# cmdline opt gdk_nr_threads = 0 +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 34132 +# cmdline opt mapi_usock = /var/tmp/mtest-32200/.s.monetdb.34132 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbpath = /export/scratch2/raasveld/build/var/MonetDB/mTests_sql_backends_monet5 +# cmdline opt mal_listing = 0 +# cmdline opt embedded_r = true +# cmdline opt embedded_py = true +# cmdline opt gdk_debug = 536870922 + +# 14:54:29 > +# 14:54:29 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-32200" "--port=34132" +# 14:54:29 > + + +# 14:54:30 > +# 14:54:30 > "Done." +# 14:54:30 > + diff --git a/sql/backends/monet5/Tests/pyapi25.stable.out b/sql/backends/monet5/Tests/pyapi25.stable.out new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/Tests/pyapi25.stable.out @@ -0,0 +1,130 @@ +stdout of test 'pyapi25` in directory 'sql/backends/monet5` itself: + + +# 14:54:29 > +# 14:54:29 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=34132" "--set" "mapi_usock=/var/tmp/mtest-32200/.s.monetdb.34132" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/export/scratch2/raasveld/build/var/MonetDB/mTests_sql_backends_monet5" "--set" "mal_listing=0" "--set" "embedded_r=true" "--set" "embedded_py=true" +# 14:54:29 > + +# MonetDB 5 server v11.22.0 +# This is an unreleased version +# Serving database 'mTests_sql_backends_monet5', using 8 threads +# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs and 128bit integers dynamically linked +# Found 15.590 GiB available main-memory. +# Copyright (c) 1993-July 2008 CWI. +# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved +# Visit http://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://lyon.ins.cwi.nl:34132/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-32200/.s.monetdb.34132 +# MonetDB/GIS module loaded +# Start processing logs sql/sql_logs version 52200 +# Finished processing logs sql/sql_logs +# MonetDB/SQL module loaded +# MonetDB/Python module loaded +# MonetDB/R module loaded + +Ready. + +# 14:54:29 > +# 14:54:29 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-32200" "--port=34132" +# 14:54:29 > + +#START TRANSACTION; +#CREATE TABLE pyapi09table(i integer); +#INSERT INTO pyapi09table VALUES (1), (2), (3), (4); +[ 4 ] +#CREATE TABLE pyapi09multiplication(i integer); +#INSERT INTO pyapi09multiplication VALUES (3); +[ 1 ] +#CREATE FUNCTION pyapi09(i integer) returns integer +#language PYTHON_MAP +#{ +# res = _conn.execute('SELECT i FROM pyapi09multiplication;') +# return res['i'] * i +#}; +#SELECT pyapi09(i) FROM pyapi09table; #multiply by 3 +% sys.L # table_name +% pyapi09_i # name +% int # type +% 2 # length +[ 3 ] +[ 6 ] +[ 9 ] +[ 12 ] +#UPDATE pyapi09multiplication SET i=10; +[ 1 ] +#SELECT pyapi09(i) FROM pyapi09table; #multiply by 10 +% sys.L # table_name +% pyapi09_i # name +% int # type +% 2 # length +[ 10 ] +[ 20 ] +[ 30 ] +[ 40 ] +#DROP FUNCTION pyapi09; +#DROP TABLE pyapi09table; +#DROP TABLE pyapi09multiplication; +#CREATE TABLE pyapi09table(i integer); +#INSERT INTO pyapi09table VALUES (1), (2), (3), (4); +[ 4 ] +#CREATE TABLE pyapi09multiplication(i integer); +#INSERT INTO pyapi09multiplication VALUES (3); +[ 1 ] +#CREATE FUNCTION pyapi09(i integer) returns integer +#language PYTHON +#{ +# _conn.execute('UPDATE pyapi09multiplication SET i=20;') +# return i +#}; +#CREATE FUNCTION pyapi09map(i integer) returns integer +#language PYTHON_MAP +#{ +# _conn.execute('UPDATE pyapi09multiplication SET i=10;') +# return i +#}; +#SELECT * FROM pyapi09multiplication; +% sys.pyapi09multiplication # table_name +% i # name +% int # type +% 1 # length +[ 3 ] +#SELECT pyapi09(i) FROM pyapi09table; +% sys.L # table_name +% pyapi09_i # name +% int # type +% 1 # length +[ 1 ] +[ 2 ] +[ 3 ] +[ 4 ] +#SELECT * FROM pyapi09multiplication; +% sys.pyapi09multiplication # table_name +% i # name +% int # type +% 2 # length +[ 20 ] +#SELECT pyapi09map(i) FROM pyapi09table; +% sys.L # table_name +% pyapi09map_i # name +% int # type +% 1 # length +[ 1 ] +[ 2 ] +[ 3 ] +[ 4 ] +#SELECT * FROM pyapi09multiplication; +% sys.pyapi09multiplication # table_name +% i # name +% int # type +% 2 # length +[ 20 ] +#DROP FUNCTION pyapi09; +#DROP FUNCTION pyapi09map; +#DROP TABLE pyapi09table; +#DROP TABLE pyapi09multiplication; +#ROLLBACK; + +# 14:54:30 > +# 14:54:30 > "Done." +# 14:54:30 > + _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list