diff --git a/jOOQ-meta/src/main/java/org/jooq/util/hsqldb/HSQLDBTableDefinition.java b/jOOQ-meta/src/main/java/org/jooq/util/hsqldb/HSQLDBTableDefinition.java index 3d32d0dbef..bc739b1b17 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/hsqldb/HSQLDBTableDefinition.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/hsqldb/HSQLDBTableDefinition.java @@ -36,7 +36,10 @@ package org.jooq.util.hsqldb; +import static org.jooq.impl.Factory.concat; import static org.jooq.impl.Factory.nvl; +import static org.jooq.impl.Factory.nvl2; +import static org.jooq.impl.Factory.val; import static org.jooq.util.hsqldb.information_schema.Tables.COLUMNS; import static org.jooq.util.hsqldb.information_schema.Tables.ELEMENT_TYPES; @@ -68,7 +71,10 @@ public class HSQLDBTableDefinition extends AbstractTableDefinition { for (Record record : create().select( COLUMNS.COLUMN_NAME, COLUMNS.ORDINAL_POSITION, - nvl(ELEMENT_TYPES.COLLECTION_TYPE_IDENTIFIER, COLUMNS.DATA_TYPE).as("datatype"), + nvl(ELEMENT_TYPES.COLLECTION_TYPE_IDENTIFIER, + nvl2(COLUMNS.INTERVAL_TYPE, + concat(COLUMNS.DATA_TYPE, val(" "), COLUMNS.INTERVAL_TYPE), + COLUMNS.DATA_TYPE)).as("datatype"), COLUMNS.IDENTITY_GENERATION, COLUMNS.IS_NULLABLE, COLUMNS.COLUMN_DEFAULT, diff --git a/jOOQ-test/launch/jOOQHSQLDBTest (Oracle schema).launch b/jOOQ-test/launch/jOOQHSQLDBTest (Oracle schema, renderSchema=false).launch similarity index 93% rename from jOOQ-test/launch/jOOQHSQLDBTest (Oracle schema).launch rename to jOOQ-test/launch/jOOQHSQLDBTest (Oracle schema, renderSchema=false).launch index e8d2c69284..cedc92389e 100644 --- a/jOOQ-test/launch/jOOQHSQLDBTest (Oracle schema).launch +++ b/jOOQ-test/launch/jOOQHSQLDBTest (Oracle schema, renderSchema=false).launch @@ -16,5 +16,5 @@ - + diff --git a/jOOQ-test/src/org/jooq/test/hsqldb/create.sql b/jOOQ-test/src/org/jooq/test/hsqldb/create.sql index e139e976fa..ad481a67f2 100644 --- a/jOOQ-test/src/org/jooq/test/hsqldb/create.sql +++ b/jOOQ-test/src/org/jooq/test/hsqldb/create.sql @@ -85,6 +85,8 @@ CREATE TABLE t_dates ( ts timestamp, d_int int, ts_bigint bigint, + i_y interval year to month, + i_d interval day to second, CONSTRAINT pk_t_dates PRIMARY KEY (id) ) diff --git a/jOOQ-test/src/org/jooq/test/hsqldb/generatedclasses/tables/TDates.java b/jOOQ-test/src/org/jooq/test/hsqldb/generatedclasses/tables/TDates.java index 6ebc5f836e..5a949192eb 100644 --- a/jOOQ-test/src/org/jooq/test/hsqldb/generatedclasses/tables/TDates.java +++ b/jOOQ-test/src/org/jooq/test/hsqldb/generatedclasses/tables/TDates.java @@ -8,7 +8,7 @@ package org.jooq.test.hsqldb.generatedclasses.tables; */ public class TDates extends org.jooq.impl.UpdatableTableImpl { - private static final long serialVersionUID = 1640812032; + private static final long serialVersionUID = -833983098; /** * The singleton instance of PUBLIC.T_DATES @@ -60,6 +60,16 @@ public class TDates extends org.jooq.impl.UpdatableTableImpl TS_BIGINT = createField("TS_BIGINT", org.jooq.impl.SQLDataType.BIGINT, this); + /** + * An uncommented item + */ + public final org.jooq.TableField I_Y = createField("I_Y", org.jooq.impl.SQLDataType.INTERVALYEARTOMONTH, this); + + /** + * An uncommented item + */ + public final org.jooq.TableField I_D = createField("I_D", org.jooq.impl.SQLDataType.INTERVALDAYTOSECOND, this); + public TDates() { super("T_DATES", org.jooq.test.hsqldb.generatedclasses.Public.PUBLIC); } diff --git a/jOOQ-test/src/org/jooq/test/hsqldb/generatedclasses/tables/records/TDatesRecord.java b/jOOQ-test/src/org/jooq/test/hsqldb/generatedclasses/tables/records/TDatesRecord.java index 90f67072fc..958d460e4b 100644 --- a/jOOQ-test/src/org/jooq/test/hsqldb/generatedclasses/tables/records/TDatesRecord.java +++ b/jOOQ-test/src/org/jooq/test/hsqldb/generatedclasses/tables/records/TDatesRecord.java @@ -8,7 +8,7 @@ package org.jooq.test.hsqldb.generatedclasses.tables.records; */ public class TDatesRecord extends org.jooq.impl.UpdatableRecordImpl { - private static final long serialVersionUID = 637300834; + private static final long serialVersionUID = -344451154; /** * An uncommented item @@ -98,6 +98,34 @@ public class TDatesRecord extends org.jooq.impl.UpdatableRecordImpl - + diff --git a/jOOQ/src/main/java/org/jooq/SchemaMapping.java b/jOOQ/src/main/java/org/jooq/SchemaMapping.java index b5a2f37e20..671424b89a 100644 --- a/jOOQ/src/main/java/org/jooq/SchemaMapping.java +++ b/jOOQ/src/main/java/org/jooq/SchemaMapping.java @@ -99,6 +99,7 @@ public class SchemaMapping implements Serializable { private final RenderMapping mapping; private final boolean ignoreMapping; + private final boolean renderSchema; private transient Map schemata; private transient Map> tables; @@ -120,10 +121,18 @@ public class SchemaMapping implements Serializable { * Auxiliary constructor used for backwards-compatibility. */ private SchemaMapping(Settings settings, boolean ignore) { + boolean isRenderSchema = true; + if (settings == null) { logDeprecation(); } + else { + if (settings.isRenderSchema() != null) { + isRenderSchema = settings.isRenderSchema(); + } + } + this.renderSchema = isRenderSchema; this.mapping = SettingsTools.getRenderMapping(settings); this.ignoreMapping = ignore; } @@ -292,8 +301,9 @@ public class SchemaMapping implements Serializable { */ public Schema map(Schema schema) { if (ignoreMapping) return schema; - Schema result = null; + if (!renderSchema) return null; + Schema result = null; if (schema != null) { String schemaName = schema.getName(); diff --git a/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java b/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java index 90d0499e07..1cf08ba6ed 100644 --- a/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java +++ b/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java @@ -2,7 +2,7 @@ // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.5-b02-fcs // See http://java.sun.com/xml/jaxb // Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2012.03.01 at 10:44:24 PM MEZ +// Generated on: 2012.04.12 at 07:54:20 PM MESZ // @@ -31,7 +31,7 @@ import javax.xml.bind.annotation.XmlType; * <all> * <element name="input" type="{http://www.w3.org/2001/XMLSchema}string"/> * <element name="output" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * <element name="tables" type="{http://www.jooq.org/xsd/jooq-runtime-2.1.0.xsd}MappedTables" minOccurs="0"/> + * <element name="tables" type="{http://www.jooq.org/xsd/jooq-runtime-2.3.0.xsd}MappedTables" minOccurs="0"/> * </all> * </restriction> * </complexContent> diff --git a/jOOQ/src/main/java/org/jooq/conf/MappedTable.java b/jOOQ/src/main/java/org/jooq/conf/MappedTable.java index 332c84532c..6e0f0ced6c 100644 --- a/jOOQ/src/main/java/org/jooq/conf/MappedTable.java +++ b/jOOQ/src/main/java/org/jooq/conf/MappedTable.java @@ -2,7 +2,7 @@ // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.5-b02-fcs // See http://java.sun.com/xml/jaxb // Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2012.03.01 at 10:44:24 PM MEZ +// Generated on: 2012.04.12 at 07:54:20 PM MESZ // diff --git a/jOOQ/src/main/java/org/jooq/conf/RenderKeywordStyle.java b/jOOQ/src/main/java/org/jooq/conf/RenderKeywordStyle.java index 232db90607..c4f59e4512 100644 --- a/jOOQ/src/main/java/org/jooq/conf/RenderKeywordStyle.java +++ b/jOOQ/src/main/java/org/jooq/conf/RenderKeywordStyle.java @@ -2,7 +2,7 @@ // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.5-b02-fcs // See http://java.sun.com/xml/jaxb // Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2012.03.01 at 10:44:24 PM MEZ +// Generated on: 2012.04.12 at 07:54:20 PM MESZ // diff --git a/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java b/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java index 6fdf7aa7df..265fd38137 100644 --- a/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java +++ b/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java @@ -2,7 +2,7 @@ // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.5-b02-fcs // See http://java.sun.com/xml/jaxb // Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2012.03.01 at 10:44:24 PM MEZ +// Generated on: 2012.04.12 at 07:54:20 PM MESZ // @@ -30,7 +30,7 @@ import javax.xml.bind.annotation.XmlType; * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <all> * <element name="defaultSchema" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * <element name="schemata" type="{http://www.jooq.org/xsd/jooq-runtime-2.1.0.xsd}MappedSchemata" minOccurs="0"/> + * <element name="schemata" type="{http://www.jooq.org/xsd/jooq-runtime-2.3.0.xsd}MappedSchemata" minOccurs="0"/> * </all> * </restriction> * </complexContent> diff --git a/jOOQ/src/main/java/org/jooq/conf/RenderNameStyle.java b/jOOQ/src/main/java/org/jooq/conf/RenderNameStyle.java index 77f240bab5..f4c1fd7926 100644 --- a/jOOQ/src/main/java/org/jooq/conf/RenderNameStyle.java +++ b/jOOQ/src/main/java/org/jooq/conf/RenderNameStyle.java @@ -2,7 +2,7 @@ // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.5-b02-fcs // See http://java.sun.com/xml/jaxb // Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2012.03.01 at 10:44:24 PM MEZ +// Generated on: 2012.04.12 at 07:54:20 PM MESZ // diff --git a/jOOQ/src/main/java/org/jooq/conf/Settings.java b/jOOQ/src/main/java/org/jooq/conf/Settings.java index adc9850187..c8ea2af72d 100644 --- a/jOOQ/src/main/java/org/jooq/conf/Settings.java +++ b/jOOQ/src/main/java/org/jooq/conf/Settings.java @@ -2,7 +2,7 @@ // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.5-b02-fcs // See http://java.sun.com/xml/jaxb // Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2012.03.01 at 10:44:24 PM MEZ +// Generated on: 2012.04.12 at 07:54:20 PM MESZ // @@ -30,13 +30,14 @@ import javax.xml.bind.annotation.XmlType; * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <all> - * <element name="renderMapping" type="{http://www.jooq.org/xsd/jooq-runtime-2.1.0.xsd}RenderMapping" minOccurs="0"/> - * <element name="renderNameStyle" type="{http://www.jooq.org/xsd/jooq-runtime-2.1.0.xsd}RenderNameStyle" minOccurs="0"/> - * <element name="renderKeywordStyle" type="{http://www.jooq.org/xsd/jooq-runtime-2.1.0.xsd}RenderKeywordStyle" minOccurs="0"/> + * <element name="renderSchema" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> + * <element name="renderMapping" type="{http://www.jooq.org/xsd/jooq-runtime-2.3.0.xsd}RenderMapping" minOccurs="0"/> + * <element name="renderNameStyle" type="{http://www.jooq.org/xsd/jooq-runtime-2.3.0.xsd}RenderNameStyle" minOccurs="0"/> + * <element name="renderKeywordStyle" type="{http://www.jooq.org/xsd/jooq-runtime-2.3.0.xsd}RenderKeywordStyle" minOccurs="0"/> * <element name="renderFormatted" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> - * <element name="statementType" type="{http://www.jooq.org/xsd/jooq-runtime-2.1.0.xsd}StatementType" minOccurs="0"/> + * <element name="statementType" type="{http://www.jooq.org/xsd/jooq-runtime-2.3.0.xsd}StatementType" minOccurs="0"/> * <element name="executeLogging" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> - * <element name="executeListeners" type="{http://www.jooq.org/xsd/jooq-runtime-2.1.0.xsd}ExecuteListeners" minOccurs="0"/> + * <element name="executeListeners" type="{http://www.jooq.org/xsd/jooq-runtime-2.3.0.xsd}ExecuteListeners" minOccurs="0"/> * </all> * </restriction> * </complexContent> @@ -54,6 +55,8 @@ public class Settings { private final static long serialVersionUID = 205L; + @XmlElement(defaultValue = "true") + protected Boolean renderSchema = true; protected RenderMapping renderMapping; @XmlElement(defaultValue = "QUOTED") protected RenderNameStyle renderNameStyle = RenderNameStyle.QUOTED; @@ -69,6 +72,30 @@ public class Settings @XmlElement(name = "executeListener") protected List executeListeners; + /** + * Gets the value of the renderSchema property. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isRenderSchema() { + return renderSchema; + } + + /** + * Sets the value of the renderSchema property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setRenderSchema(Boolean value) { + this.renderSchema = value; + } + /** * Gets the value of the renderMapping property. * @@ -220,6 +247,11 @@ public class Settings return executeListeners; } + public Settings withRenderSchema(Boolean value) { + setRenderSchema(value); + return this; + } + public Settings withRenderMapping(RenderMapping value) { setRenderMapping(value); return this; diff --git a/jOOQ/src/main/java/org/jooq/conf/StatementType.java b/jOOQ/src/main/java/org/jooq/conf/StatementType.java index 14e0281650..157d44cb74 100644 --- a/jOOQ/src/main/java/org/jooq/conf/StatementType.java +++ b/jOOQ/src/main/java/org/jooq/conf/StatementType.java @@ -2,7 +2,7 @@ // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.5-b02-fcs // See http://java.sun.com/xml/jaxb // Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2012.03.01 at 10:44:24 PM MEZ +// Generated on: 2012.04.12 at 07:54:20 PM MESZ // diff --git a/jOOQ/src/main/java/org/jooq/conf/package-info.java b/jOOQ/src/main/java/org/jooq/conf/package-info.java index 4d6556f1fe..3c536e00a3 100644 --- a/jOOQ/src/main/java/org/jooq/conf/package-info.java +++ b/jOOQ/src/main/java/org/jooq/conf/package-info.java @@ -2,8 +2,8 @@ // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0.5-b02-fcs // See http://java.sun.com/xml/jaxb // Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2012.03.01 at 10:44:24 PM MEZ +// Generated on: 2012.04.12 at 07:54:20 PM MESZ // -@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.jooq.org/xsd/jooq-runtime-2.1.0.xsd") +@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.jooq.org/xsd/jooq-runtime-2.3.0.xsd") package org.jooq.conf; diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java index 634782cdf2..f44021d9a1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java @@ -499,8 +499,10 @@ public abstract class AbstractRoutine extends AbstractSchemaProviderQueryPart } private final void toSQLQualifiedName(RenderContext context) { - if (Util.getMappedSchema(context, getSchema()) != null) { - context.sql(Util.getMappedSchema(context, getSchema())); + Schema mappedSchema = Util.getMappedSchema(context, getSchema()); + + if (mappedSchema != null) { + context.sql(mappedSchema); context.sql("."); } diff --git a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java index 8fa53c32ec..c04618dcfb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java @@ -108,8 +108,10 @@ public class TableImpl extends AbstractTable { alias.toSQL(context); } else { - if (Util.getMappedSchema(context, getSchema()) != null) { - context.sql(Util.getMappedSchema(context, getSchema())); + Schema mappedSchema = Util.getMappedSchema(context, getSchema()); + + if (mappedSchema != null) { + context.sql(mappedSchema); context.sql("."); } diff --git a/jOOQ/src/main/java/org/jooq/impl/UDTConstant.java b/jOOQ/src/main/java/org/jooq/impl/UDTConstant.java index 823d192715..dab0d480b3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UDTConstant.java +++ b/jOOQ/src/main/java/org/jooq/impl/UDTConstant.java @@ -44,6 +44,7 @@ import org.jooq.Attachable; import org.jooq.BindContext; import org.jooq.Field; import org.jooq.RenderContext; +import org.jooq.Schema; import org.jooq.UDT; import org.jooq.UDTRecord; import org.jooq.exception.SQLDialectNotSupportedException; @@ -143,9 +144,10 @@ class UDTConstant> extends AbstractField { // Assume default behaviour if dialect is not available default: { UDT udt = record.getUDT(); + Schema mappedSchema = Util.getMappedSchema(context, udt.getSchema()); - if (Util.getMappedSchema(context, udt.getSchema()) != null) { - return Util.getMappedSchema(context, udt.getSchema()) + "." + udt.getName(); + if (mappedSchema != null) { + return mappedSchema + "." + udt.getName(); } else { return udt.getName(); diff --git a/jOOQ/src/main/java/org/jooq/util/hsqldb/HSQLDBDataType.java b/jOOQ/src/main/java/org/jooq/util/hsqldb/HSQLDBDataType.java index a02d1fad95..6c7aaa5bc8 100644 --- a/jOOQ/src/main/java/org/jooq/util/hsqldb/HSQLDBDataType.java +++ b/jOOQ/src/main/java/org/jooq/util/hsqldb/HSQLDBDataType.java @@ -48,6 +48,8 @@ import org.jooq.Result; import org.jooq.SQLDialect; import org.jooq.impl.AbstractDataType; import org.jooq.impl.SQLDataType; +import org.jooq.types.DayToSecond; +import org.jooq.types.YearToMonth; /** * Supported data types for the {@link SQLDialect#HSQLDB} dialect @@ -67,37 +69,39 @@ public class HSQLDBDataType extends AbstractDataType { // Default SQL data types and synonyms thereof // ------------------------------------------------------------------------- - public static final HSQLDBDataType TINYINT = new HSQLDBDataType(SQLDataType.TINYINT, "tinyint"); - public static final HSQLDBDataType SMALLINT = new HSQLDBDataType(SQLDataType.SMALLINT, "smallint"); - public static final HSQLDBDataType INT = new HSQLDBDataType(SQLDataType.INTEGER, "int"); - public static final HSQLDBDataType INTEGER = new HSQLDBDataType(SQLDataType.INTEGER, "integer"); - public static final HSQLDBDataType BIGINT = new HSQLDBDataType(SQLDataType.BIGINT, "bigint"); - public static final HSQLDBDataType DOUBLE = new HSQLDBDataType(SQLDataType.DOUBLE, "double"); - public static final HSQLDBDataType DOUBLEPRECISION = new HSQLDBDataType(SQLDataType.DOUBLE, "double precision"); - public static final HSQLDBDataType FLOAT = new HSQLDBDataType(SQLDataType.FLOAT, "float"); - public static final HSQLDBDataType REAL = new HSQLDBDataType(SQLDataType.REAL, "real"); - public static final HSQLDBDataType BOOLEAN = new HSQLDBDataType(SQLDataType.BOOLEAN, "boolean"); - public static final HSQLDBDataType BIT = new HSQLDBDataType(SQLDataType.BIT, "bit"); - public static final HSQLDBDataType DECIMAL = new HSQLDBDataType(SQLDataType.DECIMAL, "decimal"); - public static final HSQLDBDataType NUMERIC = new HSQLDBDataType(SQLDataType.NUMERIC, "numeric"); - public static final HSQLDBDataType VARCHAR = new HSQLDBDataType(SQLDataType.VARCHAR, "varchar", "varchar(32672)"); - public static final HSQLDBDataType LONGVARCHAR = new HSQLDBDataType(SQLDataType.LONGVARCHAR, "longvarchar"); - public static final HSQLDBDataType CHAR = new HSQLDBDataType(SQLDataType.CHAR, "char"); - public static final HSQLDBDataType CHARACTER = new HSQLDBDataType(SQLDataType.CHAR, "character"); - public static final HSQLDBDataType CHARACTERVARYING = new HSQLDBDataType(SQLDataType.VARCHAR, "character varying", "character varying(32672)"); - public static final HSQLDBDataType CLOB = new HSQLDBDataType(SQLDataType.CLOB, "clob"); - public static final HSQLDBDataType CHARLARGEOBJECT = new HSQLDBDataType(SQLDataType.CLOB, "char large object", "clob"); - public static final HSQLDBDataType CHARACTERLARGEOBJECT = new HSQLDBDataType(SQLDataType.CLOB, "character large object", "clob"); - public static final HSQLDBDataType DATE = new HSQLDBDataType(SQLDataType.DATE, "date"); - public static final HSQLDBDataType