Changeset: 60cddcf3e588 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=60cddcf3e588 Added Files: sql/backends/monet5/Tests/pyapi32.sql sql/backends/monet5/Tests/pyapi32.stable.err sql/backends/monet5/Tests/pyapi32.stable.out sql/test/bugs/Tests/filter_error.sql sql/test/bugs/Tests/filter_error.stable.err sql/test/bugs/Tests/filter_error.stable.out Modified Files: clients/Tests/exports.stable.out gdk/gdk_utils.c monetdb5/mal/mal.h monetdb5/mal/mal_builder.c monetdb5/mal/mal_instruction.c monetdb5/mal/mal_instruction.h monetdb5/mal/mal_type.h sql/backends/monet5/Tests/All sql/backends/monet5/UDF/cudf/Tests/udf-fuse.stable.out sql/backends/monet5/UDF/cudf/Tests/udf-reverse.stable.out sql/backends/monet5/UDF/pyapi/pyapi.c sql/benchmarks/ssbm/Tests/01-explain.stable.out sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/02-explain.stable.out sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/03-explain.stable.out sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/04-explain.stable.out sql/benchmarks/ssbm/Tests/04-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/05-explain.stable.out sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/06-explain.stable.out sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/07-explain.stable.out sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/08-explain.stable.out sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/09-explain.stable.out sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/10-explain.stable.out sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/11-explain.stable.out sql/benchmarks/ssbm/Tests/11-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/12-explain.stable.out sql/benchmarks/ssbm/Tests/12-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/13-explain.stable.out sql/benchmarks/ssbm/Tests/13-explain.stable.out.int128 sql/benchmarks/tpch/Tests/01-explain.stable.out sql/benchmarks/tpch/Tests/01-explain.stable.out.int128 sql/benchmarks/tpch/Tests/02-explain.stable.out sql/benchmarks/tpch/Tests/02-plan.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out.int128 sql/benchmarks/tpch/Tests/04-explain.stable.out sql/benchmarks/tpch/Tests/05-explain.stable.out sql/benchmarks/tpch/Tests/05-explain.stable.out.int128 sql/benchmarks/tpch/Tests/06-explain.stable.out sql/benchmarks/tpch/Tests/06-explain.stable.out.int128 sql/benchmarks/tpch/Tests/07-explain.stable.out sql/benchmarks/tpch/Tests/07-explain.stable.out.int128 sql/benchmarks/tpch/Tests/08-explain.stable.out sql/benchmarks/tpch/Tests/08-explain.stable.out.int128 sql/benchmarks/tpch/Tests/09-explain.stable.out sql/benchmarks/tpch/Tests/09-explain.stable.out.int128 sql/benchmarks/tpch/Tests/09-plan.stable.out sql/benchmarks/tpch/Tests/09-plan.stable.out.int128 sql/benchmarks/tpch/Tests/10-explain.stable.out sql/benchmarks/tpch/Tests/10-explain.stable.out.int128 sql/benchmarks/tpch/Tests/11-explain.stable.out sql/benchmarks/tpch/Tests/11-explain.stable.out.int128 sql/benchmarks/tpch/Tests/12-explain.stable.out sql/benchmarks/tpch/Tests/12-explain.stable.out.int128 sql/benchmarks/tpch/Tests/13-explain.stable.out sql/benchmarks/tpch/Tests/13-plan.stable.out sql/benchmarks/tpch/Tests/14-explain.stable.out sql/benchmarks/tpch/Tests/14-explain.stable.out.int128 sql/benchmarks/tpch/Tests/15-explain.stable.out sql/benchmarks/tpch/Tests/15-explain.stable.out.int128 sql/benchmarks/tpch/Tests/16-explain.stable.out sql/benchmarks/tpch/Tests/16-plan.stable.out sql/benchmarks/tpch/Tests/17-explain.stable.out sql/benchmarks/tpch/Tests/17-explain.stable.out.int128 sql/benchmarks/tpch/Tests/18-explain.stable.out sql/benchmarks/tpch/Tests/18-explain.stable.out.int128 sql/benchmarks/tpch/Tests/19-explain.stable.out sql/benchmarks/tpch/Tests/19-explain.stable.out.int128 sql/benchmarks/tpch/Tests/19-plan.stable.out sql/benchmarks/tpch/Tests/20-explain.stable.out sql/benchmarks/tpch/Tests/20-explain.stable.out.int128 sql/benchmarks/tpch/Tests/20-plan.stable.out sql/benchmarks/tpch/Tests/20-plan.stable.out.int128 sql/benchmarks/tpch/Tests/21-explain.stable.out sql/benchmarks/tpch/Tests/22-explain.stable.out sql/benchmarks/tpch/Tests/22-explain.stable.out.int128 sql/scripts/26_sysmon.sql sql/server/rel_optimizer.c sql/server/rel_select.c sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out 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-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out.int128 sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out.single sql/test/BugTracker-2015/Tests/useless_casts.Bug-3756.stable.out sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out sql/test/BugTracker-2016/Tests/querylog.stable.err sql/test/BugTracker-2016/Tests/querylog.stable.out sql/test/BugTracker-2016/Tests/storagemodel.stable.out sql/test/BugTracker-2016/Tests/storagemodel.stable.out.32bit sql/test/BugTracker/Tests/explain.SF-1739353.stable.out sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out sql/test/bugs/Tests/All sql/test/leaks/Tests/check1.stable.out sql/test/leaks/Tests/check2.stable.out sql/test/leaks/Tests/check3.stable.out sql/test/leaks/Tests/check4.stable.out sql/test/leaks/Tests/check5.stable.out sql/test/mergetables/Tests/mergequery.stable.out sql/test/remote/Tests/partition_elim.stable.out testing/listexports.py.in Branch: mosaic Log Message:
merge with default diffs (truncated from 10794 to 300 lines): 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 @@ -263,7 +263,6 @@ gdk_return GDKreleasesem(int sem_id, str void GDKreset(int status); void GDKsetenv(str name, str value); void GDKsetmemorylimit(lng nbytes); -void GDKsetmemorylimit(lng nbytes){ GDK_mallocedbytes_limit = nbytes; ssize_t GDKstrFromStr(unsigned char *dst, const unsigned char *src, ssize_t len); str GDKstrdup(const char *s) __attribute__((__warn_unused_result__)); str GDKstrndup(const char *s, size_t n) __attribute__((__warn_unused_result__)); diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c --- a/gdk/gdk_utils.c +++ b/gdk/gdk_utils.c @@ -310,7 +310,9 @@ int GDK_vm_trim = 1; * fall-back for other compilers. */ #include "gdk_atomic.h" static volatile ATOMIC_TYPE GDK_mallocedbytes_estimate = 0; +#ifndef NDEBUG static volatile lng GDK_mallocedbytes_limit = -1; +#endif static volatile ATOMIC_TYPE GDK_vm_cursize = 0; #ifdef GDK_VM_KEEPHISTO volatile ATOMIC_TYPE GDK_vm_nallocs[MAX_BIT] = { 0 }; @@ -1683,8 +1685,13 @@ GDKmalloc_prefixsize(size_t size) return s; } -gdk_export void GDKsetmemorylimit(lng nbytes) { +void +GDKsetmemorylimit(lng nbytes) +{ + (void) nbytes; +#ifndef NDEBUG GDK_mallocedbytes_limit = nbytes; +#endif } @@ -1707,7 +1714,8 @@ GDKmallocmax(size_t size, size_t *maxsiz } #ifndef NDEBUG /* fail malloc for testing purposes depending on set limit */ - if (GDK_mallocedbytes_limit >= 0 && size >(size_t) GDK_mallocedbytes_limit) { + if (GDK_mallocedbytes_limit >= 0 && + size > (size_t) GDK_mallocedbytes_limit) { return NULL; } #endif diff --git a/monetdb5/mal/mal.h b/monetdb5/mal/mal.h --- a/monetdb5/mal/mal.h +++ b/monetdb5/mal/mal.h @@ -117,8 +117,7 @@ mal_export void mserver_reset(void); #define VAR_CLEANUP 16 #define VAR_INIT 32 #define VAR_USED 64 -#define VAR_CLIST 128 /* Candidate list variable */ -#define VAR_DISABLED 256 /* used for comments and scheduler */ +#define VAR_DISABLED 128 /* used for comments and scheduler */ /* type check status is kept around to improve type checking efficiency */ #define TYPE_ERROR -1 diff --git a/monetdb5/mal/mal_builder.c b/monetdb5/mal/mal_builder.c --- a/monetdb5/mal/mal_builder.c +++ b/monetdb5/mal/mal_builder.c @@ -110,11 +110,11 @@ newComment(MalBlkPtr mb, const char *val getArg(q,0) = defConstant(mb,TYPE_str,&cst); clrVarConstant(mb,getArg(q,0)); setVarDisabled(mb,getArg(q,0)); - pushInstruction(mb, q); if (mb->errors) { freeInstruction(q); return NULL; } + pushInstruction(mb, q); return q; } 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 @@ -763,7 +763,7 @@ newVariable(MalBlkPtr mb, str name, size } } if( name == 0 || len == 0) - (void) snprintf(mb->var[n]->id, IDLENGTH,"%c%c%d", REFMARKER,TMPMARKER,mb->vid++); + (void) snprintf(mb->var[n]->id, IDLENGTH,"%c%c%d", REFMARKER, TMPMARKER,mb->vid++); else{ (void) strncpy( mb->var[n]->id, name,len); mb->var[n]->id[len]=0; diff --git a/monetdb5/mal/mal_instruction.h b/monetdb5/mal/mal_instruction.h --- a/monetdb5/mal/mal_instruction.h +++ b/monetdb5/mal/mal_instruction.h @@ -84,9 +84,9 @@ #define setVarConstant(M,I) ((M)->var[I]->flags |= VAR_CONSTANT) #define isVarConstant(M,I) ((M)->var[I]->flags & VAR_CONSTANT) -#define clrVarCList(M,I) ((M)->var[I]->flags &= ~VAR_CLIST) -#define setVarCList(M,I) ((M)->var[I]->flags |= VAR_CLIST) -#define isVarCList(M,I) ((M)->var[I]->flags & VAR_CLIST) +#define clrVarCList(M,I) ((M)->var[I]->id[0]= REFMARKER) +#define setVarCList(M,I) ((M)->var[I]->id[0]= REFMARKERC) +#define isVarCList(M,I) ((M)->var[I]->id[0] == REFMARKERC) #define getVarConstant(M,I) ((M)->var[I]->value) #define getVarValue(M,I) VALget(&(M)->var[I]->value) diff --git a/monetdb5/mal/mal_type.h b/monetdb5/mal/mal_type.h --- a/monetdb5/mal/mal_type.h +++ b/monetdb5/mal/mal_type.h @@ -16,7 +16,6 @@ #define TMPMARKER '_' #define REFMARKER 'X' #define REFMARKERC 'C' -#define refMarker(M,I) (isVarCList(M,I)? 'C':'X') #define newBatType(T) (1<<16 | (T & 0377) ) #define getBatType(X) ((X) & 0377 ) diff --git a/sql/backends/monet5/Tests/All b/sql/backends/monet5/Tests/All --- a/sql/backends/monet5/Tests/All +++ b/sql/backends/monet5/Tests/All @@ -50,6 +50,7 @@ HAVE_LIBPY?pyapi26 HAVE_LIBPY?pyapi27 HAVE_LIBPY?pyapi28 HAVE_LIBPY?pyapi29 +HAVE_LIBPY?pyapi32 # should this work? #inlineUDF diff --git a/sql/backends/monet5/Tests/pyapi32.sql b/sql/backends/monet5/Tests/pyapi32.sql new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/Tests/pyapi32.sql @@ -0,0 +1,25 @@ + +START TRANSACTION; + + +CREATE FUNCTION pyapi32_gentbl() RETURNS TABLE(i TINYINT) LANGUAGE PYTHON { + return { 'i': numpy.arange(100) } +}; + +CREATE FUNCTION pyapi32_function(i INTEGER) RETURNS INTEGER LANGUAGE PYTHON { + return i * 2; +}; + +CREATE FUNCTION pyapi32_function_mapped(i INTEGER) RETURNS INTEGER LANGUAGE PYTHON_MAP { + return i * 2; +}; + +CREATE TABLE integers AS SELECT * FROM pyapi32_gentbl() WITH DATA; + +SELECT pyapi32_function(i) FROM integers; +SELECT pyapi32_function(i) FROM integers WHERE i > 50; + +SELECT pyapi32_function_mapped(i) FROM integers; +SELECT pyapi32_function_mapped(i) FROM integers WHERE i > 50; + +ROLLBACK; diff --git a/sql/backends/monet5/Tests/pyapi32.stable.err b/sql/backends/monet5/Tests/pyapi32.stable.err new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/Tests/pyapi32.stable.err @@ -0,0 +1,36 @@ +stderr of test 'pyapi32` in directory 'sql/backends/monet5` itself: + + +# 14:03:48 > +# 14:03:48 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=34523" "--set" "mapi_usock=/var/tmp/mtest-44806/.s.monetdb.34523" "--set" "monet_prompt=" "--forcemito" "--dbpath=/Users/myth/opt/var/MonetDB/mTests_sql_backends_monet5" "--set" "embedded_r=yes" "--set" "embedded_py=true" +# 14:03:48 > + +# builtin opt gdk_dbpath = /Users/myth/opt/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 = 34523 +# cmdline opt mapi_usock = /var/tmp/mtest-44806/.s.monetdb.34523 +# cmdline opt monet_prompt = +# cmdline opt gdk_dbpath = /Users/myth/opt/var/MonetDB/mTests_sql_backends_monet5 +# cmdline opt embedded_r = yes +# cmdline opt embedded_py = true +# cmdline opt gdk_debug = 536870922 + +# 14:03:49 > +# 14:03:49 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-44806" "--port=34523" +# 14:03:49 > + + +# 14:03:49 > +# 14:03:49 > "Done." +# 14:03:49 > + diff --git a/sql/backends/monet5/Tests/pyapi32.stable.out b/sql/backends/monet5/Tests/pyapi32.stable.out new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/Tests/pyapi32.stable.out @@ -0,0 +1,397 @@ +stdout of test 'pyapi32` in directory 'sql/backends/monet5` itself: + + +# 14:03:48 > +# 14:03:48 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=34523" "--set" "mapi_usock=/var/tmp/mtest-44806/.s.monetdb.34523" "--set" "monet_prompt=" "--forcemito" "--dbpath=/Users/myth/opt/var/MonetDB/mTests_sql_backends_monet5" "--set" "embedded_r=yes" "--set" "embedded_py=true" +# 14:03:48 > + +# MonetDB 5 server v11.24.0 +# This is an unreleased version +# Serving database 'mTests_sql_backends_monet5', using 4 threads +# Compiled for x86_64-apple-darwin15.5.0/64bit with 64bit OIDs and 128bit integers dynamically linked +# Found 8.000 GiB available main-memory. +# Copyright (c) 1993-July 2008 CWI. +# Copyright (c) August 2008-2016 MonetDB B.V., all rights reserved +# Visit http://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://Marks-MacBook-Pro.local:34523/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-44806/.s.monetdb.34523 +# MonetDB/SQL module loaded +# MonetDB/Python module loaded +# MonetDB/R module loaded + +Ready. +# SQL catalog created, loading sql scripts once +# loading sql script: 09_like.sql +# loading sql script: 10_math.sql +# loading sql script: 11_times.sql +# loading sql script: 12_url.sql +# loading sql script: 13_date.sql +# loading sql script: 14_inet.sql +# loading sql script: 15_querylog.sql +# loading sql script: 16_tracelog.sql +# loading sql script: 17_temporal.sql +# loading sql script: 18_index.sql +# loading sql script: 20_vacuum.sql +# loading sql script: 21_dependency_functions.sql +# loading sql script: 22_clients.sql +# loading sql script: 23_skyserver.sql +# loading sql script: 24_zorder.sql +# loading sql script: 25_debug.sql +# loading sql script: 26_sysmon.sql +# loading sql script: 27_rejects.sql +# loading sql script: 39_analytics.sql +# loading sql script: 39_analytics_hge.sql +# loading sql script: 40_json.sql +# loading sql script: 40_json_hge.sql +# loading sql script: 41_md5sum.sql +# loading sql script: 45_uuid.sql +# loading sql script: 46_profiler.sql +# loading sql script: 51_sys_schema_extension.sql +# loading sql script: 72_fits.sql +# loading sql script: 75_storagemodel.sql +# loading sql script: 80_statistics.sql +# loading sql script: 80_udf.sql +# loading sql script: 80_udf_hge.sql +# loading sql script: 90_generator.sql +# loading sql script: 90_generator_hge.sql +# loading sql script: 99_system.sql + +# 14:03:49 > +# 14:03:49 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-44806" "--port=34523" +# 14:03:49 > + +#START TRANSACTION; +#CREATE FUNCTION pyapi32_gentbl() RETURNS TABLE(i TINYINT) LANGUAGE PYTHON { +# return { 'i': numpy.arange(100) } +#}; +#CREATE FUNCTION pyapi32_function(i INTEGER) RETURNS INTEGER LANGUAGE PYTHON { +# return i * 2; +#}; +#CREATE FUNCTION pyapi32_function_mapped(i INTEGER) RETURNS INTEGER LANGUAGE PYTHON_MAP { +# return i * 2; +#}; +#CREATE TABLE integers AS SELECT * FROM pyapi32_gentbl() WITH DATA; +#SELECT pyapi32_function(i) FROM integers; +% sys.L # table_name +% pyapi32_function_i # name +% int # type +% 3 # length +[ 0 ] +[ 2 ] +[ 4 ] +[ 6 ] +[ 8 ] +[ 10 ] +[ 12 ] +[ 14 ] +[ 16 ] +[ 18 ] +[ 20 ] +[ 22 ] +[ 24 ] +[ 26 ] +[ 28 ] +[ 30 ] +[ 32 ] +[ 34 ] _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list