From bdeaf730c71dea601b81c9cf5205b2a6b1b6dab3 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 27 Jul 2021 10:53:16 +0200 Subject: [PATCH] [jOOQ/jOOQ#12253] Long lists are no longer wrapped when rendering formatted SQL --- jOOQ/src/main/java/org/jooq/Constants.java | 2 +- .../jooq/conf/InterpreterSearchSchema.java | 2 +- .../java/org/jooq/conf/MappedCatalog.java | 2 +- .../main/java/org/jooq/conf/MappedSchema.java | 2 +- .../main/java/org/jooq/conf/MappedTable.java | 2 +- .../java/org/jooq/conf/MigrationSchema.java | 2 +- .../java/org/jooq/conf/ObjectFactory.java | 4 +- .../java/org/jooq/conf/ParseSearchSchema.java | 2 +- .../java/org/jooq/conf/RenderFormatting.java | 2 +- .../java/org/jooq/conf/RenderMapping.java | 2 +- .../src/main/java/org/jooq/conf/Settings.java | 2 +- .../main/java/org/jooq/conf/package-info.java | 2 +- .../jooq/impl/QueryPartCollectionView.java | 2 +- .../resources/xsd/jooq-runtime-3.15.0.xsd | 1409 ----------------- 14 files changed, 14 insertions(+), 1423 deletions(-) delete mode 100644 jOOQ/src/main/resources/xsd/jooq-runtime-3.15.0.xsd diff --git a/jOOQ/src/main/java/org/jooq/Constants.java b/jOOQ/src/main/java/org/jooq/Constants.java index cd818b0e75..a3a54d73ed 100644 --- a/jOOQ/src/main/java/org/jooq/Constants.java +++ b/jOOQ/src/main/java/org/jooq/Constants.java @@ -69,7 +69,7 @@ public final class Constants { /** * The current jooq-runtime XSD file name. */ - public static final String XSD_RUNTIME = "jooq-runtime-3.15.0.xsd"; + public static final String XSD_RUNTIME = "jooq-runtime-3.16.0.xsd"; /** * The current jooq-runtime XML namespace. diff --git a/jOOQ/src/main/java/org/jooq/conf/InterpreterSearchSchema.java b/jOOQ/src/main/java/org/jooq/conf/InterpreterSearchSchema.java index 3a538234bc..e0897923b5 100644 --- a/jOOQ/src/main/java/org/jooq/conf/InterpreterSearchSchema.java +++ b/jOOQ/src/main/java/org/jooq/conf/InterpreterSearchSchema.java @@ -28,7 +28,7 @@ public class InterpreterSearchSchema implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31500L; + private final static long serialVersionUID = 31600L; protected String catalog; @XmlElement(required = true) protected String schema; diff --git a/jOOQ/src/main/java/org/jooq/conf/MappedCatalog.java b/jOOQ/src/main/java/org/jooq/conf/MappedCatalog.java index a427b08c29..1e811eb977 100644 --- a/jOOQ/src/main/java/org/jooq/conf/MappedCatalog.java +++ b/jOOQ/src/main/java/org/jooq/conf/MappedCatalog.java @@ -34,7 +34,7 @@ public class MappedCatalog implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31500L; + private final static long serialVersionUID = 31600L; protected String input; @XmlElement(type = String.class) @XmlJavaTypeAdapter(RegexAdapter.class) diff --git a/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java b/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java index 8ab85ede57..476269eb75 100644 --- a/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java +++ b/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java @@ -34,7 +34,7 @@ public class MappedSchema implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31500L; + private final static long serialVersionUID = 31600L; protected String input; @XmlElement(type = String.class) @XmlJavaTypeAdapter(RegexAdapter.class) diff --git a/jOOQ/src/main/java/org/jooq/conf/MappedTable.java b/jOOQ/src/main/java/org/jooq/conf/MappedTable.java index 7e1484beec..5526165f1e 100644 --- a/jOOQ/src/main/java/org/jooq/conf/MappedTable.java +++ b/jOOQ/src/main/java/org/jooq/conf/MappedTable.java @@ -30,7 +30,7 @@ public class MappedTable implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31500L; + private final static long serialVersionUID = 31600L; protected String input; @XmlElement(type = String.class) @XmlJavaTypeAdapter(RegexAdapter.class) diff --git a/jOOQ/src/main/java/org/jooq/conf/MigrationSchema.java b/jOOQ/src/main/java/org/jooq/conf/MigrationSchema.java index 48f5667ee7..5287698561 100644 --- a/jOOQ/src/main/java/org/jooq/conf/MigrationSchema.java +++ b/jOOQ/src/main/java/org/jooq/conf/MigrationSchema.java @@ -28,7 +28,7 @@ public class MigrationSchema implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31500L; + private final static long serialVersionUID = 31600L; protected String catalog; @XmlElement(required = true) protected String schema; diff --git a/jOOQ/src/main/java/org/jooq/conf/ObjectFactory.java b/jOOQ/src/main/java/org/jooq/conf/ObjectFactory.java index 4366e7ecf6..d15db43177 100644 --- a/jOOQ/src/main/java/org/jooq/conf/ObjectFactory.java +++ b/jOOQ/src/main/java/org/jooq/conf/ObjectFactory.java @@ -24,7 +24,7 @@ import javax.xml.namespace.QName; @XmlRegistry public class ObjectFactory { - private final static QName _Settings_QNAME = new QName("http://www.jooq.org/xsd/jooq-runtime-3.15.0.xsd", "settings"); + private final static QName _Settings_QNAME = new QName("http://www.jooq.org/xsd/jooq-runtime-3.16.0.xsd", "settings"); /** * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.jooq.conf @@ -113,7 +113,7 @@ public class ObjectFactory { * @return * the new instance of {@link JAXBElement }{@code <}{@link Settings }{@code >} */ - @XmlElementDecl(namespace = "http://www.jooq.org/xsd/jooq-runtime-3.15.0.xsd", name = "settings") + @XmlElementDecl(namespace = "http://www.jooq.org/xsd/jooq-runtime-3.16.0.xsd", name = "settings") public JAXBElement createSettings(Settings value) { return new JAXBElement(_Settings_QNAME, Settings.class, null, value); } diff --git a/jOOQ/src/main/java/org/jooq/conf/ParseSearchSchema.java b/jOOQ/src/main/java/org/jooq/conf/ParseSearchSchema.java index b2a3aab1b5..584a9a1a05 100644 --- a/jOOQ/src/main/java/org/jooq/conf/ParseSearchSchema.java +++ b/jOOQ/src/main/java/org/jooq/conf/ParseSearchSchema.java @@ -28,7 +28,7 @@ public class ParseSearchSchema implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31500L; + private final static long serialVersionUID = 31600L; protected String catalog; @XmlElement(required = true) protected String schema; diff --git a/jOOQ/src/main/java/org/jooq/conf/RenderFormatting.java b/jOOQ/src/main/java/org/jooq/conf/RenderFormatting.java index bdba619c9c..c13526a48d 100644 --- a/jOOQ/src/main/java/org/jooq/conf/RenderFormatting.java +++ b/jOOQ/src/main/java/org/jooq/conf/RenderFormatting.java @@ -28,7 +28,7 @@ public class RenderFormatting implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31500L; + private final static long serialVersionUID = 31600L; @XmlElement(defaultValue = "\n") protected String newline = "\n"; @XmlElement(defaultValue = " ") diff --git a/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java b/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java index ee11c5dcf9..9031deb777 100644 --- a/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java +++ b/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java @@ -32,7 +32,7 @@ public class RenderMapping implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31500L; + private final static long serialVersionUID = 31600L; protected String defaultCatalog; protected String defaultSchema; @XmlElementWrapper(name = "catalogs") diff --git a/jOOQ/src/main/java/org/jooq/conf/Settings.java b/jOOQ/src/main/java/org/jooq/conf/Settings.java index 16c60ba89b..6519451f7d 100644 --- a/jOOQ/src/main/java/org/jooq/conf/Settings.java +++ b/jOOQ/src/main/java/org/jooq/conf/Settings.java @@ -36,7 +36,7 @@ public class Settings implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31500L; + private final static long serialVersionUID = 31600L; @XmlElement(defaultValue = "true") protected Boolean forceIntegerTypesOnZeroScaleDecimals = true; @XmlElement(defaultValue = "true") 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 0d9750c41f..644c4d97a6 100644 --- a/jOOQ/src/main/java/org/jooq/conf/package-info.java +++ b/jOOQ/src/main/java/org/jooq/conf/package-info.java @@ -1,2 +1,2 @@ -@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.jooq.org/xsd/jooq-runtime-3.15.0.xsd", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) +@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.jooq.org/xsd/jooq-runtime-3.16.0.xsd", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) package org.jooq.conf; diff --git a/jOOQ/src/main/java/org/jooq/impl/QueryPartCollectionView.java b/jOOQ/src/main/java/org/jooq/impl/QueryPartCollectionView.java index b617551132..04e70f83c2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/QueryPartCollectionView.java +++ b/jOOQ/src/main/java/org/jooq/impl/QueryPartCollectionView.java @@ -134,7 +134,7 @@ class QueryPartCollectionView extends AbstractQueryPart imp rendersContent.set(i++, ((QueryPartInternal) e).rendersContent(ctx)); int size = rendersContent.cardinality(); - boolean format = ctx.format() && (size >= 2 && !isSimple()); + boolean format = ctx.format() && (size >= 2 && !isSimple() || size > 4); boolean previousQualify = ctx.qualify(); boolean previousAlreadyIndented = TRUE.equals(ctx.data(DATA_LIST_ALREADY_INDENTED)); boolean indent = format && !previousAlreadyIndented; diff --git a/jOOQ/src/main/resources/xsd/jooq-runtime-3.15.0.xsd b/jOOQ/src/main/resources/xsd/jooq-runtime-3.15.0.xsd deleted file mode 100644 index e365da33fe..0000000000 --- a/jOOQ/src/main/resources/xsd/jooq-runtime-3.15.0.xsd +++ /dev/null @@ -1,1409 +0,0 @@ - - - - - - - - - - - - - - -Use this for single-catalog environments, or when all objects are made -available using synonyms]]> - - - - -Setting this to false also implicitly sets "renderCatalog" to false. -

-Use this for single-schema environments, or when all objects are made -available using synonyms]]> - - - - - - - - -This only affects names created through {@link org.jooq.impl.DSL#name(String)} methods (including those that are implicitly created through this method), not {@link org.jooq.impl.DSL#quotedName(String)} or {@link org.jooq.impl.DSL#unquotedName(String)}, whose behaviour cannot be overridden. -

-This setting does not affect any plain SQL usage.]]> - - - - -Names are modified irrespective of the {@link #getRenderQuotedNames()} setting. -

-This setting does not affect any plain SQL usage.]]> - - - - - - - -This is set to "QUOTED" by default for backwards-compatibility. -

-@deprecated - 3.12.0 - [#5909] - Use {@link RenderQuotedNames} and {@link RenderNameCase} instead.]]> - - @java.lang.Deprecated - @java.lang.Deprecated - - - - - - -Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but -vendor specific parameters may look differently. This flag can be used to determine the prefix to be -used by named parameters, such as @ for SQL Server's @name or $ -for PostgreSQL's $name, when generating SQL. -

-"Named indexed" parameters can be obtained in the same way by specifingy {@code ParamType#NAMED} and not -providing a name to parameters, resulting in :1 or @1 or $1, etc.]]> - - - - - - - - - - - -@deprecated - 3.12.0 - [#5909] - Use {@link RenderKeywordCase} instead.]]> - - @java.lang.Deprecated - @java.lang.Deprecated - - - - - - - - - - - - - - - - - - AS keyword in table aliases, if it is optional in the output dialect. This is ignored if the keyword is not supported (e.g. in Oracle)]]> - - - - AS keyword in table aliases, if it is optional in the output dialect.]]> - - - - INNER keyword in INNER JOIN, if it is optional in the output dialect.]]> - - - - OUTER keyword in OUTER JOIN, if it is optional in the output dialect.]]> - - - - RANGE clause when an implicit clause is applied.]]> - - - - -Oracle 11g (and potentially, other databases too) implements scalar subquery caching. With this flag -set to true, users can automatically profit from this feature in all SQL statements.]]> - - - - - - - - - - - - -Oracle 11g (and potentially, other databases too) implements scalar subquery caching. With this flag -set to true, users can automatically profit from this feature in all SQL statements. -

-This feature is available in the commercial distribution only.]]> - - - - ORDER BY rn clause should be rendered on emulated paginated queries. -

-Older databases did not support OFFSET .. FETCH pagination, so jOOQ emulates it using derived -tables and ROWNUM (Oracle 11g and older) or ROW_NUMBER() (e.g. DB2, -SQL Server, etc.) filtering. While these subqueries are ordered, the ordering is not -guaranteed to be stable in the outer most queries. It may be stable (and e.g. in Oracle, -it mostly is, if queries are not parallel, or joined to other queries, etc.), so the excess -ORDER BY clause may add some additional performance overhead. This setting forces -jOOQ to not generate the additional ORDER BY clause. -

-For details, see https://github.com/jOOQ/jOOQ/issues/7609.]]> - - - - RETURNING clause should map to SQL Server's OUTPUT clause. -

-SQL Server supports an OUTPUT clause in most DML statements, whose behaviour -is almost identical to RETURNING in Firebird, Oracle, PostgreSQL. Users who -want to prevent jOOQ from rendering this OUTPUT clause can deactivate this flag -to revert to jOOQ calling {@code java.sql.Statement#getGeneratedKeys()} instead, which -is only supported for single row inserts. -

-This OUTPUT clause does not support fetching trigger generated values. In order -to fetch trigger generated values, {@link #fetchTriggerValuesAfterSQLServerOutput} needs to -be enabled as well. -

-For details, see https://github.com/jOOQ/jOOQ/issues/4498.]]> - - - - GROUP_CONCAT function should be overflow-protected by setting the @@group_concat_max_len session variable in MySQL style database systems. -

-MySQL truncates GROUP_CONCAT results after a certain length, which may be way -too small for jOOQ's usage, especially when using the MULTISET emulation. By -default, jOOQ sets a session variable to the highest possible value prior to executing a -query containing GROUP_CONCAT. This flag can be used to opt out of this. -

-For details, see https://github.com/jOOQ/jOOQ/issues/12092.]]> - - - - -By default (i.e. when this setting is set to false jOOQ will only render parenthesis pairs around queries combined with set operators when required. -This is for example the case when set operators are nested, when non-associative operators like EXCEPT are used, or when the queries are rendered as derived tables. -

-When this setting is set to true the queries combined with set operators will always be surrounded by a parenthesis pair. -

-For details, see https://github.com/jOOQ/jOOQ/issues/3676 and https://github.com/jOOQ/jOOQ/issues/9751.]]> - - - - -A few hierarchical mapping features work with paths encoded in names (specifically field aliases), such as the reflective mapping of nested values when aliasing fields as: -

-

-SELECT 
-  a.first_name AS "book.author.firstName"
-  a.last_name AS "book.author.lastName"
-FROM ...
-
-

-Not all dialects support "." in identifiers. This setting allows for specifying an alternative String to use as separator, e.g. "__".]]> - - - - java.time (JSR 310) type {@link java.time.OffsetDateTime} should be bound natively to JDBC. -

-Historically, jOOQ encoded the java.time types as strings to offer better compatibility with older JDBC drivers. By now, most drivers should support the java.time types. Using them may produce better performance both on the server and on the client side. -

-This flag allows for reverting to pre-jOOQ 3.14 behaviour, where the default is to bind these types natively. -

-For details, see https://github.com/jOOQ/jOOQ/issues/9902.]]> - - - - java.time (JSR 310) type {@link java.time.OffsetTime} should be bound natively to JDBC. -

-Historically, jOOQ encoded the java.time types as strings to offer better compatibility with older JDBC drivers. By now, most drivers should support the java.time types. Using them may produce better performance both on the server and on the client side. -

-This flag allows for reverting to pre-jOOQ 3.14 behaviour, where the default is to bind these types natively. -

-For details, see https://github.com/jOOQ/jOOQ/issues/9902.]]> - - - - OUTPUT clause. -

-SQL Server OUTPUT statements do not support fetching trigger generated values. -This is a limitation of the {@link #renderOutputForSQLServerReturningClause}. An additional -MERGE statement can run a second query if (and only if) the primary key has been -included in the OUTPUT clause. -

-For details, see https://github.com/jOOQ/jOOQ/issues/4498.]]> - - - - -By default, a {@link org.jooq.ResultQuery} produces no intermediate {@link org.jooq.Result} -instances if they are not explicitly requested by the caller, e.g. by calling -{@link org.jooq.ResultQuery#fetch()}, or in the presence of {@link org.jooq.ExecuteListener} -instances, which may require access to {@link org.jooq.ExecuteContext#result()}. -This default behaviour helps avoid unnecessary allocations of possibly large data structures. -

-Using this flag, fetching of intermediate results can be turned off even when execute listeners -are present, or turned on even if they're absent.]]> - - - - -Historically, prior to ANSI join syntax, joins were implemented by listing tables in -the FROM clause and providing join predicates in the WHERE clause, possibly using vendor specific -operators like (+) (Oracle, DB2) or *= (SQL Server) for outer join -support. For backwards compatibility with older RDBMS versions, ANSI joins in jOOQ code may be -converted to equivalent table lists in generated SQL using this flag. -

-This flag has a limited implementation that supports inner joins (in most cases) and outer joins -(only for simple comparison predicates). -

-This feature is available in the commercial distribution only.]]> - - - - -This transformation works around a known MySQL limitation "ERROR 1235 (42000): This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'" -

-This feature is available in the commercial distribution only.]]> - - - - QUALIFY clause to an equivalent derived table to filter on window functions. -

-This feature is available in the commercial distribution only.]]> - - - - -(Very) historically, prior to ANSI join syntax, joins were implemented by listing tables in -the FROM clause and providing join predicates in the WHERE clause, possibly using vendor specific -operators like (+) (Oracle, DB2) or *= (SQL Server) for outer join -support. Migrating such join syntax is tedious. The jOOQ parser can parse the old syntax and -this flag enables the transformation to ANSI join syntax. -

-This feature is available in the commercial distribution only.]]> - - - - ROWNUM expressions to corresponding LIMIT clauses or ROW_NUMBER() expressions. -

-In Oracle 11g and less, ROWNUM filtering was the most popular way to paginate. This pseudo -column is not supported in other RDBMS, and should be replaced in Oracle 12c by the FETCH clause or -ROW_NUMBER() OVER () filtering. This transformation allows for replacing such a filter by -equivalent SQL, if possible. -

-This feature is available in the commercial distribution only.]]> - - - - -Arithmetic expressions may be implemented by the user, or arise from emulations from within jOOQ. -Expressions on literals and bind variables could be evaluated in the client prior to generating SQL. -

-This feature is available in the commercial distribution only.]]> - - - - - - - - -Possibilities include: - -- question marks -- named parameters -- named or inlined parameters -- inlined parameters - -This value is overridden by statementType == STATIC_STATEMENT, in -case of which, this defaults to INLINED]]> - - - - - - - - - - - - 0 uses the dialect defaults:

    -
  • {@link org.jooq.SQLDialect#ACCESS} : 768
  • -
  • {@link org.jooq.SQLDialect#ASE} : 2000
  • -
  • {@link org.jooq.SQLDialect#INGRES} : 1024
  • -
  • {@link org.jooq.SQLDialect#ORACLE} : 32767
  • -
  • {@link org.jooq.SQLDialect#POSTGRES} : 32767
  • -
  • {@link org.jooq.SQLDialect#SQLITE} : 999
  • -
  • {@link org.jooq.SQLDialect#SQLSERVER} : 2100
  • -
]]>
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -This flag has no effect when "executeWithOptimisticLocking" is turned off.]]> - - - - - - - - INSERT part of {@link org.jooq.UpdatableRecord#store()} and {@link org.jooq.UpdatableRecord#merge()} calls.]]> - - - - UPDATE part of {@link org.jooq.UpdatableRecord#store()} and {@link org.jooq.UpdatableRecord#merge()} calls.]]> - - - - -Setting this to "true" will allow for updating primary key values through -UpdatableRecord.store() and UpdatableRecord.update().]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Do note that only few databases support this feature. It is supported only in case the INSERT's or UPDATE's -RETURNING clause is fully supported, also for non-IDENTITY columns.]]> - - - - is active, also other values.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MULTISET support should be emulated.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This is a potentially destructive feature, which should not be turned on in production. It is useful mostly to quickly switch between branches in a development environment. This feature is available only in commercial distributions.]]> - - - - This is a potentially destructive feature, which should not be turned on in production. It is useful mostly to quickly revert any elements created in a development environment. This feature is available only in commercial distributions.]]> - - - - - - - - - - - - migrateTo() methods (e.g. {@link org.jooq.Meta#migrateTo(org.jooq.Meta)}) ignore the difference between TIMESTAMP and TIMESTAMP(6), if 6 is the default precision for timestamps on the configured dialect.]]> - - - - - - - - - - - - - - - - - - - - - - - - -Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but -vendor specific parameters may look differently. This flag can be used to determine the prefix to be -used by named parameters, such as @ for SQL Server's @name or $ -for PostgreSQL's $name when parsing SQL. -

-"Named indexed" parameters can be obtained in the same way by specifingy {@code ParamType#NAMED} and not -providing a name to parameters, resulting in :1 or @1 or $1, etc.]]> - - - - - - - - - - - - FROM or USING clause, if applicable. -

-Teradata (and possibly others) allow for referencing tables that are not listed in the FROM -clause, such as SELECT t.* FROM t WHERE t.i = u.i. This transformation is executed in the -parser, to produce SELECT t.* FROM t, u WHERE t.i = u.i, instead. By default, it is active -when the input dialect supports this syntax. -

-This feature is available in the commercial distribution only.]]> - - - - - - - - SET key = value should be parsed rather than ignored.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -This catalog will be omitted in rendered SQL.]]> - - - - -This schema will be omitted in rendered SQL.]]> - - - - -Either <catalogs/> or <schemata/> must be provided]]> - - - - -Either <catalogs/> or <schemata/> must be provided]]> - - - - - - - - - - - - - - - - -Either <input/> or <inputExpression/> must be provided]]> - - - - -Either <input/> or <inputExpression/> must be provided]]> - - - - -

  • When this is omitted, you can still apply schema and table mapping.
  • -
  • When <input/> is provided, <output/> is a constant value.
  • -
  • When <inputExpression/> is provided, <output/> is a replacement expression
  • -]]>
    -
    - - - - -
    -
    - - - - - - - - - - - - - -Either <input/> or <inputExpression/> must be provided]]> - - - - -Either <input/> or <inputExpression/> must be provided]]> - - - - -
  • When this is omitted, you can still apply table mapping.
  • -
  • When <input/> is provided, <output/> is a constant value.
  • -
  • When <inputExpression/> is provided, <output/> is a replacement expression
  • -]]>
    -
    - - - - -
    -
    - - - - - - - - - - - - - - -Either <input/> or <inputExpression/> must be provided.]]> - - - - -Either <input/> or <inputExpression/> must be provided]]> - - - - -
  • When <input/> is provided, <output/> is a constant value.
  • -
  • When <inputExpression/> is provided, <output/> is a replacement expression.
  • -]]>
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @java.lang.Deprecated - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @java.lang.Deprecated - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    \ No newline at end of file