From 6641ed78e7a5ab1f6a3006f799042bf1308d0751 Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Fri, 20 Sep 2019 02:36:21 +0200 Subject: [PATCH] remove returns in function definition --- src/main/kotlin/fr/postgresjson/definition/Function.kt | 4 ++-- .../sql/function/Test1/function_test_duplicate.sql | 8 ++++---- .../sql/function/Test2/function_test_duplicate.sql | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/fr/postgresjson/definition/Function.kt b/src/main/kotlin/fr/postgresjson/definition/Function.kt index 2d9c2f9..8dce564 100644 --- a/src/main/kotlin/fr/postgresjson/definition/Function.kt +++ b/src/main/kotlin/fr/postgresjson/definition/Function.kt @@ -13,7 +13,7 @@ open class Function( init { val functionRegex = - """create (or replace )?(procedure|function) *(?[^(\s]+)\s*\((?(\s*((IN|OUT|INOUT|VARIADIC)?\s+)?([^\s,)]+\s+)?([^\s,)]+)(\s+(?:default\s|=)\s*[^\s,)]+)?\s*(,|(?=\))))*)\) *(?RETURNS *[^ ]+)?""" + """create (or replace )?(procedure|function) *(?[^(\s]+)\s*\((?(\s*((IN|OUT|INOUT|VARIADIC)?\s+)?([^\s,)]+\s+)?([^\s,)]+)(\s+(?:default\s|=)\s*[^\s,)]+)?\s*(,|(?=\))))*)\) *(?RETURNS *[^ \n]+)?""" .toRegex(setOf(RegexOption.IGNORE_CASE, RegexOption.MULTILINE)) val paramsRegex = @@ -54,7 +54,7 @@ open class Function( return parameters .filter { it.direction == Parameter.Direction.IN } .joinToString(", ") { "${it.name} ${it.type}" }.let { - "$name ($it) $returns" + "$name ($it)" } } diff --git a/src/test/resources/sql/function/Test1/function_test_duplicate.sql b/src/test/resources/sql/function/Test1/function_test_duplicate.sql index 526f242..322a047 100644 --- a/src/test/resources/sql/function/Test1/function_test_duplicate.sql +++ b/src/test/resources/sql/function/Test1/function_test_duplicate.sql @@ -1,8 +1,8 @@ -CREATE OR REPLACE FUNCTION test_function_duplicate (name text default 'plop', out result json) -LANGUAGE plpgsql +CREATE OR REPLACE FUNCTION test_function_duplicate (name text default 'plop') returns json + LANGUAGE plpgsql AS $$ BEGIN - result = json_build_object('id', 3, 'name', name); + return json_build_object('id', 3, 'name', name); END; -$$ \ No newline at end of file +$$ diff --git a/src/test/resources/sql/function/Test2/function_test_duplicate.sql b/src/test/resources/sql/function/Test2/function_test_duplicate.sql index 2c8e3d6..8ee77ea 100644 --- a/src/test/resources/sql/function/Test2/function_test_duplicate.sql +++ b/src/test/resources/sql/function/Test2/function_test_duplicate.sql @@ -1,8 +1,8 @@ -CREATE OR REPLACE FUNCTION test_function_duplicate (name text default 'plop') returns text +CREATE OR REPLACE FUNCTION test_function_duplicate (name text default 'plop', out result text) LANGUAGE plpgsql AS $$ BEGIN - return name; + result = name; END; $$ \ No newline at end of file