From 48a3f2bd2ab03b65797ff8335f5ff544caabb3ef Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Sun, 23 Jun 2013 14:14:33 +0200 Subject: [PATCH] [#2412] jOOQ Meta does not recognise non-uppercase IN, OUT, INOUT keywords in MySQL stored procedures --- .../org/jooq/util/AbstractRoutineDefinition.java | 2 +- jOOQ-test/src/org/jooq/test/mysql/create.sql | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/jOOQ-meta/src/main/java/org/jooq/util/AbstractRoutineDefinition.java b/jOOQ-meta/src/main/java/org/jooq/util/AbstractRoutineDefinition.java index 898af655b3..9bf11f6ad1 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/AbstractRoutineDefinition.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/AbstractRoutineDefinition.java @@ -50,7 +50,7 @@ import org.jooq.tools.JooqLogger; public abstract class AbstractRoutineDefinition extends AbstractDefinition implements RoutineDefinition { private static final JooqLogger log = JooqLogger.getLogger(AbstractRoutineDefinition.class); - private static final String INOUT = "(?:(IN|OUT|INOUT)\\s+?)?"; + private static final String INOUT = "(?i:(IN|OUT|INOUT)\\s+?)?"; private static final String PARAM_NAME = "(?:(\\S+?)\\s+?)"; private static final String PARAM_TYPE = "([^\\s\\(]+)(?:\\s*\\((\\d+)(?:\\s*,\\s*(\\d+))?\\))?"; private static final String PARAMETER = "(" + INOUT + PARAM_NAME + PARAM_TYPE + ")"; diff --git a/jOOQ-test/src/org/jooq/test/mysql/create.sql b/jOOQ-test/src/org/jooq/test/mysql/create.sql index f2dc2f3eda..668645f8d8 100644 --- a/jOOQ-test/src/org/jooq/test/mysql/create.sql +++ b/jOOQ-test/src/org/jooq/test/mysql/create.sql @@ -7,6 +7,7 @@ DROP PROCEDURE IF EXISTS p_author_exists/ DROP PROCEDURE IF EXISTS p_create_author/ DROP PROCEDURE IF EXISTS p_create_author_by_name/ DROP PROCEDURE IF EXISTS p391/ +DROP PROCEDURE IF EXISTS p2412/ DROP FUNCTION IF EXISTS f_author_exists/ DROP FUNCTION IF EXISTS f_one/ DROP FUNCTION IF EXISTS f_number/ @@ -376,6 +377,19 @@ BEGIN END / +CREATE PROCEDURE p2412( + In p_in_1 integer, + p_in_2 integer, + Out p_out_1 decimal(12,2), + out p_out_2 decimal(12,2), + InOut p_in_out decimal(12,2)) +BEGIN + SET p_out_1 = 0; + SET p_out_2 = 0; + SET p_in_out = 0; +END +/ + CREATE FUNCTION f_author_exists (author_name VARCHAR(50)) RETURNS INT COMMENT 'Check existence of an author'