]> granicus.if.org Git - postgresql/commitdiff
Make opr_sanity test complain about built-in functions marked prosecdef.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 20 Jun 2017 21:06:43 +0000 (17:06 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 20 Jun 2017 21:06:43 +0000 (17:06 -0400)
Currently, there are no built-in functions that are SECURITY DEFINER.
But we just found an instance where one was mistakenly marked that way,
so it seems prudent to add a test about it.  If we ever grow some
functions that are intentionally SECURITY DEFINER, we can alter the
expected output of this test, or adjust the query to filter out functions
for which it's okay.

Per suggestion from Robert Haas.

Discussion: https://postgr.es/m/CA+TgmoYXg7McY33+jbWmG=rS-HNUur0S6W8Q8kVNFf7epFimVA@mail.gmail.com

src/test/regress/expected/opr_sanity.out
src/test/regress/sql/opr_sanity.sql

index 1d7629f84ee04f1dd62a2d9bcc878832ba4b7dfe..fcf8bd75659ca1b0afdbb124d1242d349c54e590 100644 (file)
@@ -96,6 +96,16 @@ WHERE proiswindow AND (proisagg OR proretset);
 -----+---------
 (0 rows)
 
+-- currently, no built-in functions should be SECURITY DEFINER;
+-- this might change in future, but there will probably never be many.
+SELECT p1.oid, p1.proname
+FROM pg_proc AS p1
+WHERE prosecdef
+ORDER BY 1;
+ oid | proname 
+-----+---------
+(0 rows)
+
 -- pronargdefaults should be 0 iff proargdefaults is null
 SELECT p1.oid, p1.proname
 FROM pg_proc AS p1
index bf2edb5d993d7cdfe601aa158685b8ca8d62e6d5..2945966c0e43c6dbcbc370a0dbe93c6877e21372 100644 (file)
@@ -95,6 +95,13 @@ SELECT p1.oid, p1.proname
 FROM pg_proc AS p1
 WHERE proiswindow AND (proisagg OR proretset);
 
+-- currently, no built-in functions should be SECURITY DEFINER;
+-- this might change in future, but there will probably never be many.
+SELECT p1.oid, p1.proname
+FROM pg_proc AS p1
+WHERE prosecdef
+ORDER BY 1;
+
 -- pronargdefaults should be 0 iff proargdefaults is null
 SELECT p1.oid, p1.proname
 FROM pg_proc AS p1