Changeset: 7df348c41606 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/7df348c41606 Added Files: sql/backends/monet5/generator/Tests/execute-privilege-for-public-hge.test sql/backends/monet5/generator/Tests/execute-privilege-for-public.test Modified Files: sql/ChangeLog.Aug2024 sql/backends/monet5/generator/90_generator.sql sql/backends/monet5/generator/90_generator_hge.sql sql/backends/monet5/generator/Tests/All sql/backends/monet5/sql_upgrades.c sql/test/emptydb/Tests/check.stable.out sql/test/emptydb/Tests/check.stable.out.32bit sql/test/emptydb/Tests/check.stable.out.int128 Branch: Aug2024 Log Message:
Added execution privilege on all sys.generate_series(first, limit) and sys.generate_series(first, limit, stepsize) functions to public, so all users can now call these table producing generator functions. diffs (truncated from 491 to 300 lines): diff --git a/sql/ChangeLog.Aug2024 b/sql/ChangeLog.Aug2024 --- a/sql/ChangeLog.Aug2024 +++ b/sql/ChangeLog.Aug2024 @@ -1,6 +1,11 @@ # ChangeLog file for sql # This file is updated with Maddlog +* Thu Jul 11 2024 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> +- Added execution privilege on all sys.generate_series(first, limit) + and sys.generate_series(first, limit, stepsize) functions to public, + so all users can now call these table producing generator functions. + * Fri Jun 14 2024 Joeri van Ruth <joeri.van.r...@monetdbsolutions.com> - Extend CREATE USER MAX_MEMORY and ALTER USER MAX_MEMORY to accept strings of the form '10MiB', '10G', etc. diff --git a/sql/backends/monet5/generator/90_generator.sql b/sql/backends/monet5/generator/90_generator.sql --- a/sql/backends/monet5/generator/90_generator.sql +++ b/sql/backends/monet5/generator/90_generator.sql @@ -13,59 +13,74 @@ create function sys.generate_series(first tinyint, "limit" tinyint) returns table (value tinyint) external name generator.series; +grant execute on function sys.generate_series(tinyint, tinyint) to public; create function sys.generate_series(first tinyint, "limit" tinyint, stepsize tinyint) returns table (value tinyint) external name generator.series; +grant execute on function sys.generate_series(tinyint, tinyint, tinyint) to public; create function sys.generate_series(first smallint, "limit" smallint) returns table (value smallint) external name generator.series; +grant execute on function sys.generate_series(smallint, smallint) to public; create function sys.generate_series(first smallint, "limit" smallint, stepsize smallint) returns table (value smallint) external name generator.series; +grant execute on function sys.generate_series(smallint, smallint, smallint) to public; create function sys.generate_series(first int, "limit" int) returns table (value int) external name generator.series; +grant execute on function sys.generate_series(int, int) to public; create function sys.generate_series(first int, "limit" int, stepsize int) returns table (value int) external name generator.series; +grant execute on function sys.generate_series(int, int, int) to public; create function sys.generate_series(first bigint, "limit" bigint) returns table (value bigint) external name generator.series; +grant execute on function sys.generate_series(bigint, bigint) to public; create function sys.generate_series(first bigint, "limit" bigint, stepsize bigint) returns table (value bigint) external name generator.series; +grant execute on function sys.generate_series(bigint, bigint, bigint) to public; create function sys.generate_series(first real, "limit" real, stepsize real) returns table (value real) external name generator.series; +grant execute on function sys.generate_series(real, real, real) to public; create function sys.generate_series(first double, "limit" double, stepsize double) returns table (value double) external name generator.series; +grant execute on function sys.generate_series(double, double, double) to public; create function sys.generate_series(first decimal(10,2), "limit" decimal(10,2), stepsize decimal(10,2)) returns table (value decimal(10,2)) external name generator.series; +grant execute on function sys.generate_series(decimal(10,2), decimal(10,2), decimal(10,2)) to public; create function sys.generate_series(first date, "limit" date, stepsize interval month) returns table (value date) external name generator.series; +grant execute on function sys.generate_series(date, date, interval month) to public; create function sys.generate_series(first date, "limit" date, stepsize interval day) returns table (value date) external name generator.series; +grant execute on function sys.generate_series(date, date, interval day) to public; create function sys.generate_series(first timestamp, "limit" timestamp, stepsize interval second) returns table (value timestamp) external name generator.series; +grant execute on function sys.generate_series(timestamp, timestamp, interval second) to public; create function sys.generate_series(first timestamp, "limit" timestamp, stepsize interval day) returns table (value timestamp) external name generator.series; +grant execute on function sys.generate_series(timestamp, timestamp, interval day) to public; diff --git a/sql/backends/monet5/generator/90_generator_hge.sql b/sql/backends/monet5/generator/90_generator_hge.sql --- a/sql/backends/monet5/generator/90_generator_hge.sql +++ b/sql/backends/monet5/generator/90_generator_hge.sql @@ -13,7 +13,9 @@ create function sys.generate_series(first hugeint, "limit" hugeint) returns table (value hugeint) external name generator.series; +grant execute on function sys.generate_series(hugeint, hugeint) to public; create function sys.generate_series(first hugeint, "limit" hugeint, stepsize hugeint) returns table (value hugeint) external name generator.series; +grant execute on function sys.generate_series(hugeint, hugeint, hugeint) to public; diff --git a/sql/backends/monet5/generator/Tests/All b/sql/backends/monet5/generator/Tests/All --- a/sql/backends/monet5/generator/Tests/All +++ b/sql/backends/monet5/generator/Tests/All @@ -14,3 +14,6 @@ joins02 thetaselect00 crash.Bug-3609 + +execute-privilege-for-public +HAVE_HGE?execute-privilege-for-public-hge diff --git a/sql/backends/monet5/generator/Tests/execute-privilege-for-public-hge.test b/sql/backends/monet5/generator/Tests/execute-privilege-for-public-hge.test new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/generator/Tests/execute-privilege-for-public-hge.test @@ -0,0 +1,37 @@ +@connection(id=c1, username=monetdb, password=monetdb) +statement ok +create user test with password 'test' name 'test' + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(cast(1 as hugeint),3) +---- +1 +2 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(1,cast(4 as hugeint),2) +---- +1 +3 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(5,1,cast(-2 as hugeint)) +---- +5 +3 + +-- cleanup +@connection(id=c1, username=monetdb, password=monetdb) +statement ok +alter user test set schema sys + +@connection(id=c1, username=monetdb, password=monetdb) +statement ok +drop schema test + +@connection(id=c1, username=monetdb, password=monetdb) +statement ok +drop user test diff --git a/sql/backends/monet5/generator/Tests/execute-privilege-for-public.test b/sql/backends/monet5/generator/Tests/execute-privilege-for-public.test new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/generator/Tests/execute-privilege-for-public.test @@ -0,0 +1,214 @@ +@connection(id=c1, username=monetdb, password=monetdb) +statement ok +create user test with password 'test' name 'test' + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(1,3) +---- +1 +2 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(1,4,2) +---- +1 +3 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(5,1,-2) +---- +5 +3 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(cast(1 as tinyint),3) +---- +1 +2 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(1,cast(4 as tinyint),2) +---- +1 +3 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(5,1,cast(-2 as tinyint)) +---- +5 +3 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(cast(1 as smallint),3) +---- +1 +2 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(1,cast(4 as smallint),2) +---- +1 +3 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(5,1,cast(-2 as smallint)) +---- +5 +3 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(cast(1 as int),3) +---- +1 +2 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(1,cast(4 as int),2) +---- +1 +3 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(5,1,cast(-2 as int)) +---- +5 +3 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(cast(1 as bigint),3) +---- +1 +2 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(1,cast(4 as bigint),2) +---- +1 +3 + +@connection(id=c2, username=test, password=test) +query I +SELECT * from generate_series(5,1,cast(-2 as bigint)) +---- +5 +3 + +@connection(id=c2, username=test, password=test) +query R +SELECT * from generate_series(cast(1 as real),3,1) +---- +1.000 +2.000 + +@connection(id=c2, username=test, password=test) +query R +SELECT * from generate_series(1,cast(4 as real),2) +---- +1.000 +3.000 + +@connection(id=c2, username=test, password=test) +query R +SELECT * from generate_series(5,1,cast(-2 as real)) +---- +5.000 +3.000 + +@connection(id=c2, username=test, password=test) +query R +SELECT * from generate_series(cast(1 as double),3,1) +---- +1.000 +2.000 + _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org