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

Reply via email to