diff --git a/jOOQ-test/src/org/jooq/test/_/testcases/RenderAndBindTests.java b/jOOQ-test/src/org/jooq/test/_/testcases/RenderAndBindTests.java index d4932b271c..6209201d51 100644 --- a/jOOQ-test/src/org/jooq/test/_/testcases/RenderAndBindTests.java +++ b/jOOQ-test/src/org/jooq/test/_/testcases/RenderAndBindTests.java @@ -62,6 +62,7 @@ import org.jooq.Result; import org.jooq.Select; import org.jooq.TableRecord; import org.jooq.UpdatableRecord; +import org.jooq.conf.RenderNameStyle; import org.jooq.conf.Settings; import org.jooq.conf.StatementType; import org.jooq.impl.Factory; @@ -379,7 +380,7 @@ extends BaseTest s = - create(new Settings().withRenderQuoted(false)) + create(new Settings().withRenderNameStyle(RenderNameStyle.AS_IS)) .select(TBook_ID(), TBook_TITLE(), TAuthor_FIRST_NAME(), TAuthor_LAST_NAME()) .from(TBook()) .join(TAuthor()).on(TBook_AUTHOR_ID().equal(TAuthor_ID())) diff --git a/jOOQ/build.xml b/jOOQ/build.xml index 1e124598d7..52a68dc98f 100644 --- a/jOOQ/build.xml +++ b/jOOQ/build.xml @@ -14,7 +14,7 @@ - + diff --git a/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java b/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java index a8a208d914..27ce80c05f 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.02.28 at 06:36:54 PM MEZ +// Generated on: 2012.02.29 at 06:59:29 PM MEZ // @@ -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.0.5.xsd}MappedTables" minOccurs="0"/> + * <element name="tables" type="{http://www.jooq.org/xsd/jooq-runtime-2.1.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 b3844a7b5c..477bacfbe7 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.02.28 at 06:36:54 PM MEZ +// Generated on: 2012.02.29 at 06:59:29 PM MEZ // diff --git a/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java b/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java index 8aadfaffb7..403e3ff625 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.02.28 at 06:36:54 PM MEZ +// Generated on: 2012.02.29 at 06:59:29 PM MEZ // @@ -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.0.5.xsd}MappedSchemata" minOccurs="0"/> + * <element name="schemata" type="{http://www.jooq.org/xsd/jooq-runtime-2.1.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 new file mode 100644 index 0000000000..8afaf110a9 --- /dev/null +++ b/jOOQ/src/main/java/org/jooq/conf/RenderNameStyle.java @@ -0,0 +1,47 @@ +// +// 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.02.29 at 06:59:29 PM MEZ +// + + +package org.jooq.conf; + +import javax.xml.bind.annotation.XmlEnum; + + +/** + *

Java class for RenderNameStyle. + * + *

The following schema fragment specifies the expected content contained within this class. + *

+ *

+ * <simpleType name="RenderNameStyle">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <enumeration value="QUOTED"/>
+ *     <enumeration value="AS_IS"/>
+ *     <enumeration value="LOWER"/>
+ *     <enumeration value="UPPER"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlEnum +public enum RenderNameStyle { + + QUOTED, + AS_IS, + LOWER, + UPPER; + + public String value() { + return name(); + } + + public static RenderNameStyle fromValue(String v) { + return valueOf(v); + } + +} diff --git a/jOOQ/src/main/java/org/jooq/conf/Settings.java b/jOOQ/src/main/java/org/jooq/conf/Settings.java index 5431307608..014b09d687 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.02.28 at 06:36:54 PM MEZ +// Generated on: 2012.02.29 at 06:59:29 PM MEZ // @@ -29,11 +29,11 @@ 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.0.5.xsd}RenderMapping" minOccurs="0"/> - * <element name="renderQuoted" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> - * <element name="statementType" type="{http://www.jooq.org/xsd/jooq-runtime-2.0.5.xsd}StatementType" minOccurs="0"/> + * <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="statementType" type="{http://www.jooq.org/xsd/jooq-runtime-2.1.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.0.5.xsd}ExecuteListeners" minOccurs="0"/> + * <element name="executeListeners" type="{http://www.jooq.org/xsd/jooq-runtime-2.1.0.xsd}ExecuteListeners" minOccurs="0"/> * </all> * </restriction> * </complexContent> @@ -52,8 +52,8 @@ public class Settings private final static long serialVersionUID = 205L; protected RenderMapping renderMapping; - @XmlElement(defaultValue = "true") - protected Boolean renderQuoted = true; + @XmlElement(defaultValue = "QUOTED") + protected RenderNameStyle renderNameStyle = RenderNameStyle.QUOTED; @XmlElement(defaultValue = "PREPARED_STATEMENT") protected StatementType statementType = StatementType.PREPARED_STATEMENT; @XmlElement(defaultValue = "true") @@ -87,27 +87,27 @@ public class Settings } /** - * Gets the value of the renderQuoted property. + * Gets the value of the renderNameStyle property. * * @return * possible object is - * {@link Boolean } + * {@link RenderNameStyle } * */ - public Boolean isRenderQuoted() { - return renderQuoted; + public RenderNameStyle getRenderNameStyle() { + return renderNameStyle; } /** - * Sets the value of the renderQuoted property. + * Sets the value of the renderNameStyle property. * * @param value * allowed object is - * {@link Boolean } + * {@link RenderNameStyle } * */ - public void setRenderQuoted(Boolean value) { - this.renderQuoted = value; + public void setRenderNameStyle(RenderNameStyle value) { + this.renderNameStyle = value; } /** @@ -170,8 +170,8 @@ public class Settings return this; } - public Settings withRenderQuoted(Boolean value) { - setRenderQuoted(value); + public Settings withRenderNameStyle(RenderNameStyle value) { + setRenderNameStyle(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 b7644ceef3..f572365561 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.02.28 at 06:36:54 PM MEZ +// Generated on: 2012.02.29 at 06:59:29 PM MEZ // 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 320378d3a2..a76bec3c4a 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.02.28 at 06:36:54 PM MEZ +// Generated on: 2012.02.29 at 06:59:29 PM MEZ // -@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.jooq.org/xsd/jooq-runtime-2.0.5.xsd") +@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.jooq.org/xsd/jooq-runtime-2.1.0.xsd") package org.jooq.conf; diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java b/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java index f1c9a8536a..8e2370e578 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java @@ -42,6 +42,7 @@ import org.jooq.QueryPart; import org.jooq.QueryPartInternal; import org.jooq.RenderContext; import org.jooq.SQLDialect; +import org.jooq.conf.RenderNameStyle; /** * @author Lukas Eder @@ -119,7 +120,18 @@ class DefaultRenderContext extends AbstractContext implements Ren @Override public final RenderContext literal(String literal) { - if (Boolean.TRUE.equals(configuration.getSettings().isRenderQuoted())) { + RenderNameStyle style = configuration.getSettings().getRenderNameStyle(); + + if (RenderNameStyle.LOWER.equals(style)) { + sql(literal.toLowerCase()); + } + else if (RenderNameStyle.UPPER.equals(style)) { + sql(literal.toUpperCase()); + } + else if (RenderNameStyle.AS_IS.equals(style)) { + sql(literal); + } + else { switch (configuration.getDialect()) { case MYSQL: sql("`").sql(literal).sql("`"); @@ -152,9 +164,6 @@ class DefaultRenderContext extends AbstractContext implements Ren break; } } - else { - sql(literal); - } return this; } diff --git a/jOOQ/src/main/resources/xsd/jooq-runtime-2.0.5.xsd b/jOOQ/src/main/resources/xsd/jooq-runtime-2.0.5.xsd index 82d76685ad..eb66ec3ec0 100644 --- a/jOOQ/src/main/resources/xsd/jooq-runtime-2.0.5.xsd +++ b/jOOQ/src/main/resources/xsd/jooq-runtime-2.0.5.xsd @@ -1,109 +1,105 @@ + targetNamespace="http://www.jooq.org/xsd/jooq-runtime-2.0.5.xsd"> - - - - - - - + + + + + + + - - - - + + + + - - + + - - + + - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + - - - - - + + + + - - - - + + - - + + + + - - - - + + + + + - - - - - + + + + - - - - + + + + - - - - + + - - + + - - + + + + - - - - + + - - - - - - - + + + + \ No newline at end of file diff --git a/jOOQ/src/main/resources/xsd/jooq-runtime-2.1.0.xsd b/jOOQ/src/main/resources/xsd/jooq-runtime-2.1.0.xsd new file mode 100644 index 0000000000..d19c1a372b --- /dev/null +++ b/jOOQ/src/main/resources/xsd/jooq-runtime-2.1.0.xsd @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jOOQ/src/test/java/org/jooq/test/jOOQTest.java b/jOOQ/src/test/java/org/jooq/test/jOOQTest.java index 01c1d5e965..e506c9610d 100644 --- a/jOOQ/src/test/java/org/jooq/test/jOOQTest.java +++ b/jOOQ/src/test/java/org/jooq/test/jOOQTest.java @@ -96,6 +96,7 @@ import org.jooq.SimpleSelectQuery; import org.jooq.Table; import org.jooq.Truncate; import org.jooq.UpdateQuery; +import org.jooq.conf.RenderNameStyle; import org.jooq.impl.CustomCondition; import org.jooq.impl.CustomField; import org.jooq.impl.Factory; @@ -2190,19 +2191,35 @@ public class jOOQTest { RenderContext r_refP = r_refP(); RenderContext r_ref = r_ref(); - r_refI.getSettings().setRenderQuoted(false); - r_refP.getSettings().setRenderQuoted(false); - r_ref.getSettings().setRenderQuoted(false); + r_refI.getSettings().setRenderNameStyle(RenderNameStyle.AS_IS); + r_refP.getSettings().setRenderNameStyle(RenderNameStyle.AS_IS); + r_ref.getSettings().setRenderNameStyle(RenderNameStyle.AS_IS); - assertEquals("select 3 from TABLE1 where TABLE1.ID1 = 4", r_refI.render(q)); + assertEquals("select 1 from TABLE1 where TABLE1.ID1 = 2", r_refI.render(q)); assertEquals("select :1 from TABLE1 where TABLE1.ID1 = :2", r_refP.render(q)); assertEquals("select ? from TABLE1 where TABLE1.ID1 = ?", r_ref.render(q)); - r_refI.getSettings().setRenderQuoted(true); - r_refP.getSettings().setRenderQuoted(true); - r_ref.getSettings().setRenderQuoted(true); + r_refI.getSettings().setRenderNameStyle(RenderNameStyle.LOWER); + r_refP.getSettings().setRenderNameStyle(RenderNameStyle.LOWER); + r_ref.getSettings().setRenderNameStyle(RenderNameStyle.LOWER); - assertEquals("select 3 from \"TABLE1\" where \"TABLE1\".\"ID1\" = 4", r_refI.render(q)); + assertEquals("select 1 from table1 where table1.id1 = 2", r_refI.render(q)); + assertEquals("select :1 from table1 where table1.id1 = :2", r_refP.render(q)); + assertEquals("select ? from table1 where table1.id1 = ?", r_ref.render(q)); + + r_refI.getSettings().setRenderNameStyle(RenderNameStyle.UPPER); + r_refP.getSettings().setRenderNameStyle(RenderNameStyle.UPPER); + r_ref.getSettings().setRenderNameStyle(RenderNameStyle.UPPER); + + assertEquals("select 1 from TABLE1 where TABLE1.ID1 = 2", r_refI.render(q)); + assertEquals("select :1 from TABLE1 where TABLE1.ID1 = :2", r_refP.render(q)); + assertEquals("select ? from TABLE1 where TABLE1.ID1 = ?", r_ref.render(q)); + + r_refI.getSettings().setRenderNameStyle(RenderNameStyle.QUOTED); + r_refP.getSettings().setRenderNameStyle(RenderNameStyle.QUOTED); + r_ref.getSettings().setRenderNameStyle(RenderNameStyle.QUOTED); + + assertEquals("select 1 from \"TABLE1\" where \"TABLE1\".\"ID1\" = 2", r_refI.render(q)); assertEquals("select :1 from \"TABLE1\" where \"TABLE1\".\"ID1\" = :2", r_refP.render(q)); assertEquals("select ? from \"TABLE1\" where \"TABLE1\".\"ID1\" = ?", r_ref.render(q)); }