From 24254e039e5e9d0e69af2146e9953defa3df4db5 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 25 Feb 2013 16:55:04 +0100 Subject: [PATCH] [#2267] SQLDialectNotSupportedException: Type class org.postgis.PGgeometry is not supported in dialect null, when binding PG* objects --- jOOQ-test/.classpath | 1 + .../configuration/lukas/postgres/library.xml | 4 +-- jOOQ-test/lib/postgis-jdbc-1.3.3.jar | Bin 0 -> 75847 bytes jOOQ-test/src/org/jooq/test/PostgresTest.java | 24 ++++++++++++++++++ .../src/org/jooq/test/postgres/create.sql | 11 ++++++++ .../java/org/jooq/impl/DefaultDataType.java | 9 +++++++ jOOQ/src/main/java/org/jooq/impl/Factory.java | 4 +-- 7 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 jOOQ-test/lib/postgis-jdbc-1.3.3.jar diff --git a/jOOQ-test/.classpath b/jOOQ-test/.classpath index 24a0654523..ea6603cc16 100644 --- a/jOOQ-test/.classpath +++ b/jOOQ-test/.classpath @@ -30,6 +30,7 @@ + diff --git a/jOOQ-test/configuration/org/jooq/configuration/lukas/postgres/library.xml b/jOOQ-test/configuration/org/jooq/configuration/lukas/postgres/library.xml index 2affee7107..9a6107e70d 100644 --- a/jOOQ-test/configuration/org/jooq/configuration/lukas/postgres/library.xml +++ b/jOOQ-test/configuration/org/jooq/configuration/lukas/postgres/library.xml @@ -11,8 +11,8 @@ org.jooq.util.DefaultGenerator org.jooq.util.postgres.PostgresDatabase - .* - t_book_details|.*?_seq + t_.*|x_.*|v_.*|V_.*|p_.*|f_.*|u_.*|(f|p)[0-9]+|s_.* + t_book_details|.*?_seq|_.* false true diff --git a/jOOQ-test/lib/postgis-jdbc-1.3.3.jar b/jOOQ-test/lib/postgis-jdbc-1.3.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..05d7f6858aedb11aca7e6922f3c846c659243a59 GIT binary patch literal 75847 zcmaHR19UGdV2bt{&me%Pn|+n zDawF?!2tcsrI?b)`>%t4@1XyA%8988(M!pTGb;W&3<^l$ADCSD*M{Xk(|-TlX#Y1% zPDox#TueokK~DThZhA^qhMr*oUWT4#c6zQ!nQ57I|HO$-dUl*nhF%y7^0-(%8H2W; z%%dYaN*Pr~S;ZxXrUnfU7A1*Q8QlkUO8M!Z8EIB$>Hb6V2v6$wiwJC_1~k38WSe+! zb1#U8Q1foxZe5`N__Y6-12YdJTL&96=l|s3|Am45!-2gM;D15D{X4?J-q{6U`M=RZ z{clKPOFJVc&;Nz=e_vo_^Pga-fBlCz0m|x>;6OkUus}fn zLj6B?K-J9Ig~7ze$l19@P0j^X4ee+57(lUvwwVkB90dwP#%B8=BBTt1K~<7iTmU_y z`Lk#)2}zm3lmYSw66sI7^T28f?yTcUg0t)_vg^U((O{0ZTdi)V%H5Pg5(O!(6UA%K z=k05+`(BRs-Pgw)q97>N&>4%kqt;+zFfGb%N_@h7Zm=0*?O|r{6^q?|X?S%s0fNrK z5e+6ca%Hr@_94lbkteh@2^+R=@41Bhpe^#<6qEyhzpI|8&?wOwWQRVQ(fIn@pKo2p zh<4H=qBTUP9W

NL*8;^rfcK?G8{cK*BlOaijlW0ZDqut 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 QMDX_*ICu8o!MqXoe{<)4TL1t6 literal 0 HcmV?d00001 diff --git a/jOOQ-test/src/org/jooq/test/PostgresTest.java b/jOOQ-test/src/org/jooq/test/PostgresTest.java index 6abdf7c25b..cc364a0eb0 100644 --- a/jOOQ-test/src/org/jooq/test/PostgresTest.java +++ b/jOOQ-test/src/org/jooq/test/PostgresTest.java @@ -51,6 +51,7 @@ import static org.jooq.test.postgres.generatedclasses.Tables.T_DATES; import static org.jooq.test.postgres.generatedclasses.Tables.T_EXOTIC_TYPES; import static org.jooq.test.postgres.generatedclasses.Tables.T_IDENTITY; import static org.jooq.test.postgres.generatedclasses.Tables.T_IDENTITY_PK; +import static org.jooq.test.postgres.generatedclasses.Tables.T_PG_EXTENSIONS; import static org.jooq.test.postgres.generatedclasses.Tables.T_TRIGGERS; import static org.jooq.test.postgres.generatedclasses.Tables.V_AUTHOR; import static org.jooq.test.postgres.generatedclasses.Tables.V_BOOK; @@ -97,6 +98,7 @@ import org.jooq.test.postgres.generatedclasses.tables.records.TDatesRecord; import org.jooq.test.postgres.generatedclasses.tables.records.TExoticTypesRecord; import org.jooq.test.postgres.generatedclasses.tables.records.TIdentityPkRecord; import org.jooq.test.postgres.generatedclasses.tables.records.TIdentityRecord; +import org.jooq.test.postgres.generatedclasses.tables.records.TPgExtensionsRecord; import org.jooq.test.postgres.generatedclasses.tables.records.TTriggersRecord; import org.jooq.test.postgres.generatedclasses.tables.records.T_639NumbersTableRecord; import org.jooq.test.postgres.generatedclasses.tables.records.T_725LobTestRecord; @@ -112,6 +114,8 @@ import org.jooq.types.UShort; import org.jooq.util.postgres.PostgresDataType; import org.junit.Test; +import org.postgis.PGgeometry; +import org.postgis.Point; /** @@ -853,4 +857,24 @@ public class PostgresTest extends jOOQAbstractTest< // OUT parameters for the returned cursor // Object result = Routines.fSearchBook(create(), "Animal", 1L, 0L); } + + @Test + public void testPostgresExtensions() throws Exception { + jOOQAbstractTest.reset = false; + + // [#2267] Try to execute some basic CRUD operations on PostGIS data + // types. Even without formal support, jOOQ should allow to pass these + // objects through to JDBC + Point point = new Point(0, 0); + point.setSrid(4326); + PGgeometry geometry = new PGgeometry(point); + + TPgExtensionsRecord r1 = create().newRecord(T_PG_EXTENSIONS); + r1.setPgGeometry(geometry); + assertEquals(1, r1.store()); + assertEquals(1, (int) create().selectCount().from(T_PG_EXTENSIONS).fetchOne(0, int.class)); + + TPgExtensionsRecord r2 = create().selectFrom(T_PG_EXTENSIONS).fetchOne(); + assertEquals(r1, r2); + } } diff --git a/jOOQ-test/src/org/jooq/test/postgres/create.sql b/jOOQ-test/src/org/jooq/test/postgres/create.sql index 6d7c61dc04..ada5c06ecf 100644 --- a/jOOQ-test/src/org/jooq/test/postgres/create.sql +++ b/jOOQ-test/src/org/jooq/test/postgres/create.sql @@ -62,6 +62,7 @@ DROP TABLE IF EXISTS t_959/ DROP TABLE IF EXISTS t_booleans/ DROP TABLE IF EXISTS t_identity/ DROP TABLE IF EXISTS t_identity_pk/ +DROP TABLE IF EXISTS t_pg_extensions/ DROP TYPE IF EXISTS u_address_type/ DROP TYPE IF EXISTS u_street_type/ @@ -99,6 +100,16 @@ CREATE TYPE u_address_type AS ( ) / +CREATE TABLE t_pg_extensions ( + id serial not null, + pg_interval interval, + pg_box box, + pg_hstore hstore, + pg_geometry geometry(Point, 4326, 2), + + CONSTRAINT pk_t_pg_extensions PRIMARY KEY (id) +)/ + CREATE TABLE t_identity_pk ( id serial not null, val int, diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java index 83dd9ab32e..dff23fc940 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java @@ -596,6 +596,10 @@ public class DefaultDataType implements DataType { } public static DataType getDataType(SQLDialect dialect, Class type) { + return getDataType(dialect, type, null); + } + + public static DataType getDataType(SQLDialect dialect, Class type, DataType fallbackDataType) { // Treat primitive types the same way as their respective wrapper types type = (Class) wrapper(type); @@ -635,6 +639,11 @@ public class DefaultDataType implements DataType { return (DataType) SQL_DATATYPES_BY_TYPE.get(type); } + // If we have a "fallback" data type from an outer context + else if (fallbackDataType != null) { + return fallbackDataType; + } + // All other data types are illegal else { throw new SQLDialectNotSupportedException("Type " + type + " is not supported in dialect " + dialect); diff --git a/jOOQ/src/main/java/org/jooq/impl/Factory.java b/jOOQ/src/main/java/org/jooq/impl/Factory.java index 85352d4a55..95608337c8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Factory.java +++ b/jOOQ/src/main/java/org/jooq/impl/Factory.java @@ -6850,11 +6850,11 @@ public class Factory { */ private static DataType mostSpecific(T value, DataType dataType) { if (value != null) { - Class valueType = value.getClass(); + Class valueType = (Class) value.getClass(); Class coercionType = dataType.getType(); if (valueType != coercionType && coercionType.isAssignableFrom(valueType)) { - return (DataType) DefaultDataType.getDataType(null, valueType); + return DefaultDataType.getDataType(null, valueType, dataType); } }