regression_tests.patch

application/octet-stream

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: unified
File+
src/test/regress/expected/create_function_3.out 24 0
src/test/regress/sql/create_function_3.sql 12 0
diff --git a/src/test/regress/expected/create_function_3.out b/src/test/regress/expected/create_function_3.out
index a77df01042..3d6a96ad5c 100644
--- a/src/test/regress/expected/create_function_3.out
+++ b/src/test/regress/expected/create_function_3.out
@@ -279,6 +279,14 @@ CREATE FUNCTION functest_S_13() RETURNS boolean
         SELECT 1;
         SELECT false;
     END;
+-- check parsing of function argments in sub-SELECT
+CREATE TABLE functest1 (i int);
+CREATE FUNCTION functest_S_16(a int, b int) RETURNS void
+    LANGUAGE SQL
+    BEGIN ATOMIC
+        INSERT INTO functest1
+            SELECT * FROM functest1 WHERE i = a AND i = b;
+    END;
 -- error: duplicate function body
 CREATE FUNCTION functest_S_xxx(x int) RETURNS int
     LANGUAGE SQL
@@ -417,6 +425,22 @@ SELECT pg_get_functiondef('functest_S_15'::regproc);
  
 (1 row)
 
+SELECT pg_get_functiondef('functest_S_16'::regproc);
+                                     pg_get_functiondef                                      
+---------------------------------------------------------------------------------------------
+ CREATE OR REPLACE FUNCTION temp_func_test.functest_s_16(a integer, b integer)              +
+  RETURNS void                                                                              +
+  LANGUAGE sql                                                                              +
+ BEGIN ATOMIC                                                                               +
+  INSERT INTO functest1 (i)  SELECT functest1_1.i                                           +
+             FROM functest1 functest1_1                                                     +
+            WHERE ((functest1_1.i = functest_s_16.a) AND (functest1_1.i = functest_s_16.b));+
+ END                                                                                        +
+ 
+(1 row)
+
+DROP TABLE functest1 CASCADE;
+NOTICE:  drop cascades to function functest_s_16(integer,integer)
 -- test with views
 CREATE TABLE functest3 (a int);
 INSERT INTO functest3 VALUES (1), (2);
diff --git a/src/test/regress/sql/create_function_3.sql b/src/test/regress/sql/create_function_3.sql
index 23a46b0b11..f031e76c3a 100644
--- a/src/test/regress/sql/create_function_3.sql
+++ b/src/test/regress/sql/create_function_3.sql
@@ -180,6 +180,15 @@ CREATE FUNCTION functest_S_13() RETURNS boolean
         SELECT false;
     END;
 
+-- check parsing of function argments in sub-SELECT
+CREATE TABLE functest1 (i int);
+CREATE FUNCTION functest_S_16(a int, b int) RETURNS void
+    LANGUAGE SQL
+    BEGIN ATOMIC
+        INSERT INTO functest1
+            SELECT * FROM functest1 WHERE i = a AND i = b;
+    END;
+
 -- error: duplicate function body
 CREATE FUNCTION functest_S_xxx(x int) RETURNS int
     LANGUAGE SQL
@@ -217,6 +226,9 @@ SELECT pg_get_functiondef('functest_S_3a'::regproc);
 SELECT pg_get_functiondef('functest_S_10'::regproc);
 SELECT pg_get_functiondef('functest_S_13'::regproc);
 SELECT pg_get_functiondef('functest_S_15'::regproc);
+SELECT pg_get_functiondef('functest_S_16'::regproc);
+
+DROP TABLE functest1 CASCADE;
 
 -- test with views
 CREATE TABLE functest3 (a int);