Changeset: 0942b01da867 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0942b01da867 Modified Files: sql/test/testdb-reload/Tests/reload.stable.out sql/test/testdb/Tests/dump.stable.out sql/test/testdb/Tests/load.sql Branch: Jun2020 Log Message:
Test dumping of foreign language functions. diffs (155 lines): diff --git a/sql/test/testdb-reload/Tests/reload.stable.out b/sql/test/testdb-reload/Tests/reload.stable.out --- a/sql/test/testdb-reload/Tests/reload.stable.out +++ b/sql/test/testdb-reload/Tests/reload.stable.out @@ -101352,6 +101352,48 @@ 8 "attempt" CREATE TABLE "testschema"."""" ( """" INTEGER ); +CREATE FUNCTION "testschema"."pyapi01"("i" INTEGER) RETURNS TABLE ("i" INTEGER, "d" DOUBLE) LANGUAGE PYTHON +{ + x = range(1, i + 1) + y = [42.0] * i + return([x,y]) +}; +CREATE FUNCTION "testschema"."pyapi02"("i" INTEGER, "j" INTEGER, "z" INTEGER) RETURNS INTEGER LANGUAGE PYTHON3 +{ + x = i * sum(j) * z + return x +}; +CREATE FUNCTION "testschema"."rapi01"("i" INTEGER) RETURNS TABLE ("i" INTEGER, "d" DOUBLE) LANGUAGE R +{ + return(data.frame(i=seq(1,i),d=42.0)); +}; +CREATE FUNCTION "testschema"."rapi02"("i" INTEGER, "j" INTEGER, "z" INTEGER) RETURNS INTEGER LANGUAGE R +{ + return(i*sum(j)*z); +}; +CREATE FUNCTION "testschema"."capi00"("inp" INTEGER) RETURNS INTEGER LANGUAGE C +{ + size_t i; + result->initialize(result, inp.count); + for(i = 0; i < inp.count; i++) { + result->data[i] = inp.data[i] * 2; + } +}; +CREATE AGGREGATE "testschema"."aggrmedian"("val" INTEGER) RETURNS INTEGER LANGUAGE PYTHON +{ + if 'aggr_group' in locals(): + unique = numpy.unique(aggr_group) + x = numpy.zeros(shape=(unique.size)) + for i in range(0,unique.size): + x[i] = numpy.median(val[numpy.where(aggr_group==unique[i])]) + return(x) + else: + return(numpy.median(val)) +}; +CREATE FUNCTION "testschema"."pyapi10_mult"("i" INTEGER, "j" INTEGER) RETURNS INTEGER LANGUAGE PYTHON_MAP +{ + return(i*j) +}; ALTER TABLE "testschema"."testme" ADD TABLE "testschema"."subtable1" AS PARTITION FROM RANGE MINVALUE TO '11' WITH NULL VALUES; ALTER TABLE "testschema"."testme" ADD TABLE "testschema"."subtable2" AS PARTITION FROM '11' TO '20'; ALTER TABLE "testschema"."testme" ADD TABLE "testschema"."subtable3" AS PARTITION FROM '21' TO RANGE MAXVALUE; diff --git a/sql/test/testdb/Tests/dump.stable.out b/sql/test/testdb/Tests/dump.stable.out --- a/sql/test/testdb/Tests/dump.stable.out +++ b/sql/test/testdb/Tests/dump.stable.out @@ -101369,6 +101369,48 @@ 8 "attempt" CREATE TABLE "testschema"."""" ( """" INTEGER ); +CREATE FUNCTION "testschema"."pyapi01"("i" INTEGER) RETURNS TABLE ("i" INTEGER, "d" DOUBLE) LANGUAGE PYTHON +{ + x = range(1, i + 1) + y = [42.0] * i + return([x,y]) +}; +CREATE FUNCTION "testschema"."pyapi02"("i" INTEGER, "j" INTEGER, "z" INTEGER) RETURNS INTEGER LANGUAGE PYTHON3 +{ + x = i * sum(j) * z + return x +}; +CREATE FUNCTION "testschema"."rapi01"("i" INTEGER) RETURNS TABLE ("i" INTEGER, "d" DOUBLE) LANGUAGE R +{ + return(data.frame(i=seq(1,i),d=42.0)); +}; +CREATE FUNCTION "testschema"."rapi02"("i" INTEGER, "j" INTEGER, "z" INTEGER) RETURNS INTEGER LANGUAGE R +{ + return(i*sum(j)*z); +}; +CREATE FUNCTION "testschema"."capi00"("inp" INTEGER) RETURNS INTEGER LANGUAGE C +{ + size_t i; + result->initialize(result, inp.count); + for(i = 0; i < inp.count; i++) { + result->data[i] = inp.data[i] * 2; + } +}; +CREATE AGGREGATE "testschema"."aggrmedian"("val" INTEGER) RETURNS INTEGER LANGUAGE PYTHON +{ + if 'aggr_group' in locals(): + unique = numpy.unique(aggr_group) + x = numpy.zeros(shape=(unique.size)) + for i in range(0,unique.size): + x[i] = numpy.median(val[numpy.where(aggr_group==unique[i])]) + return(x) + else: + return(numpy.median(val)) +}; +CREATE FUNCTION "testschema"."pyapi10_mult"("i" INTEGER, "j" INTEGER) RETURNS INTEGER LANGUAGE PYTHON_MAP +{ + return(i*j) +}; CREATE TABLE "testschema"."geomtest" ( "p" GEOMETRY(POINT), "c" GEOMETRY(LINESTRING), diff --git a/sql/test/testdb/Tests/load.sql b/sql/test/testdb/Tests/load.sql --- a/sql/test/testdb/Tests/load.sql +++ b/sql/test/testdb/Tests/load.sql @@ -101280,4 +101280,47 @@ INSERT INTO testschema.sublimits1 VALUES INSERT INTO testschema.sublimits2 VALUES (NULL, 'successful'); INSERT INTO testschema.sublimits3 VALUES (8, 'attempt'); CREATE TABLE """" ("""" int); +CREATE FUNCTION pyapi01(i integer) returns table (i integer, d double) +language P +{ + x = range(1, i + 1) + y = [42.0] * i + return([x,y]) +}; +CREATE FUNCTION pyapi02(i integer,j integer,z integer) returns integer +language Python3 +{ + x = i * sum(j) * z + return x +}; +CREATE FUNCTION rapi01(i integer) returns table (i integer, d double) +language R { + return(data.frame(i=seq(1,i),d=42.0)); +}; +CREATE FUNCTION rapi02(i integer,j integer,z integer) returns integer +language R { + return(i*sum(j)*z); +}; +CREATE FUNCTION capi00(inp INTEGER) RETURNS INTEGER LANGUAGE C { + size_t i; + result->initialize(result, inp.count); + for(i = 0; i < inp.count; i++) { + result->data[i] = inp.data[i] * 2; + } +}; +CREATE AGGREGATE aggrmedian(val integer) RETURNS integer LANGUAGE P { + if 'aggr_group' in locals(): + unique = numpy.unique(aggr_group) + x = numpy.zeros(shape=(unique.size)) + for i in range(0,unique.size): + x[i] = numpy.median(val[numpy.where(aggr_group==unique[i])]) + return(x) + else: + return(numpy.median(val)) +}; +CREATE FUNCTION pyapi10_mult(i integer,j integer) returns integer +language PYTHON_MAP +{ + return(i*j) +}; COMMIT; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list