[#1917] Add support for CUBRID 9.0's new features - Added support and
documentation for CUBRID's MERGE support
This commit is contained in:
parent
eec85836c5
commit
4aa381f842
@ -762,7 +762,6 @@ extends BaseTest<A, AP, B, S, B2S, BS, L, X, DATE, BOOL, D, T, U, I, IPK, T725,
|
||||
public void testMerge() throws Exception {
|
||||
switch (getDialect()) {
|
||||
case ASE:
|
||||
case CUBRID:
|
||||
case DERBY:
|
||||
case H2:
|
||||
case INGRES:
|
||||
@ -878,7 +877,6 @@ extends BaseTest<A, AP, B, S, B2S, BS, L, X, DATE, BOOL, D, T, U, I, IPK, T725,
|
||||
public void testH2Merge() throws Exception {
|
||||
switch (getDialect()) {
|
||||
case ASE:
|
||||
case CUBRID:
|
||||
case DERBY:
|
||||
case INGRES:
|
||||
case MYSQL:
|
||||
@ -906,8 +904,8 @@ extends BaseTest<A, AP, B, S, B2S, BS, L, X, DATE, BOOL, D, T, U, I, IPK, T725,
|
||||
// H2 MERGE test leading to a single UPDATE
|
||||
// -------------------------------------------------------------
|
||||
assertEquals(1,
|
||||
create().mergeInto(TAuthor(), TAuthor_ID(), TAuthor_FIRST_NAME())
|
||||
.values(3, "Hermann")
|
||||
create().mergeInto(TAuthor(), TAuthor_ID(), TAuthor_FIRST_NAME(), TAuthor_LAST_NAME())
|
||||
.values(3, "Hermann", "Hesse")
|
||||
.execute());
|
||||
|
||||
Result<A> authors2 = create().selectFrom(TAuthor()).orderBy(TAuthor_ID()).fetch();
|
||||
@ -919,9 +917,9 @@ extends BaseTest<A, AP, B, S, B2S, BS, L, X, DATE, BOOL, D, T, U, I, IPK, T725,
|
||||
// H2 MERGE test specifying a custom KEY clause
|
||||
// -------------------------------------------------------------
|
||||
assertEquals(1,
|
||||
create().mergeInto(TAuthor(), TAuthor_FIRST_NAME(), TAuthor_LAST_NAME())
|
||||
create().mergeInto(TAuthor(), TAuthor_ID(), TAuthor_FIRST_NAME(), TAuthor_LAST_NAME())
|
||||
.key(TAuthor_LAST_NAME())
|
||||
.values("Lukas", "Hesse")
|
||||
.values(3, "Lukas", "Hesse")
|
||||
.execute());
|
||||
|
||||
Result<A> authors3 = create().selectFrom(TAuthor()).orderBy(TAuthor_ID()).fetch();
|
||||
@ -956,14 +954,14 @@ extends BaseTest<A, AP, B, S, B2S, BS, L, X, DATE, BOOL, D, T, U, I, IPK, T725,
|
||||
// H2 MERGE test specifying a subselect
|
||||
// -------------------------------------------------------------
|
||||
assertEquals(2,
|
||||
create().mergeInto(TAuthor(), TAuthor_ID(), TAuthor_FIRST_NAME())
|
||||
create().mergeInto(TAuthor(), TAuthor_ID(), TAuthor_FIRST_NAME(), TAuthor_LAST_NAME())
|
||||
|
||||
// inline() strings here. It seems that DB2 will lack page size
|
||||
// in the system temporary table space, otherwise
|
||||
|
||||
// [#579] TODO: Aliasing shouldn't be necessary
|
||||
.select(create().select(val(3).as("a"), inline("John").as("b")).unionAll(
|
||||
create().select(val(4).as("a"), inline("John").as("b"))))
|
||||
.select(select(val(3).as("a"), inline("John").as("b"), inline("Eder").as("c")).unionAll(
|
||||
select(val(4).as("a"), inline("John").as("b"), inline("Eder").as("c"))))
|
||||
.execute());
|
||||
|
||||
Result<A> authors5 = create().selectFrom(TAuthor()).orderBy(TAuthor_ID()).fetch();
|
||||
|
||||
@ -669,7 +669,7 @@ public interface FactoryOperations extends Configuration {
|
||||
* statement without field specification. See also
|
||||
* {@link #mergeInto(Table, Field...)}
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
<R extends Record> MergeUsingStep<R> mergeInto(Table<R> table);
|
||||
|
||||
/**
|
||||
@ -692,7 +692,7 @@ public interface FactoryOperations extends Configuration {
|
||||
* </tr>
|
||||
* </table>
|
||||
*/
|
||||
@Support({ DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
<R extends Record> MergeKeyStep<R> mergeInto(Table<R> table, Field<?>... fields);
|
||||
|
||||
/**
|
||||
@ -700,7 +700,7 @@ public interface FactoryOperations extends Configuration {
|
||||
*
|
||||
* @see #mergeInto(Table, Field...)
|
||||
*/
|
||||
@Support({ DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
<R extends Record> MergeKeyStep<R> mergeInto(Table<R> table, Collection<? extends Field<?>> fields);
|
||||
|
||||
/**
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
*/
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.H2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
@ -66,7 +67,7 @@ public interface MergeKeyStep<R extends Record> extends MergeValuesStep<R> {
|
||||
* Use this optional clause in order to override using the underlying
|
||||
* <code>PRIMARY KEY</code>.
|
||||
*/
|
||||
@Support({ DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeValuesStep<R> key(Field<?>... keys);
|
||||
|
||||
/**
|
||||
@ -75,6 +76,6 @@ public interface MergeKeyStep<R extends Record> extends MergeValuesStep<R> {
|
||||
* Use this optional clause in order to override using the underlying
|
||||
* <code>PRIMARY KEY</code>.
|
||||
*/
|
||||
@Support({ DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeValuesStep<R> key(Collection<? extends Field<?>> keys);
|
||||
}
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
*/
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
@ -68,14 +69,14 @@ public interface MergeMatchedSetStep<R extends Record> {
|
||||
* Set values for <code>UPDATE</code> in the <code>MERGE</code> statement's
|
||||
* <code>WHEN MATCHED</code> clause
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
<T> MergeMatchedSetMoreStep<R> set(Field<T> field, T value);
|
||||
|
||||
/**
|
||||
* Set values for <code>UPDATE</code> in the <code>MERGE</code> statement's
|
||||
* <code>WHEN MATCHED</code> clause
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
<T> MergeMatchedSetMoreStep<R> set(Field<T> field, Field<T> value);
|
||||
|
||||
/**
|
||||
@ -86,6 +87,6 @@ public interface MergeMatchedSetStep<R extends Record> {
|
||||
* types. Values can either be of type <code><T></code> or
|
||||
* <code>Field<T></code>
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeMatchedSetMoreStep<R> set(Map<? extends Field<?>, ?> map);
|
||||
}
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
*/
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
@ -66,6 +67,6 @@ public interface MergeMatchedStep<R extends Record> extends MergeNotMatchedStep<
|
||||
* Add the <code>WHEN MATCHED THEN UPDATE</code> clause to the
|
||||
* <code>MERGE</code> statement
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeMatchedSetStep<R> whenMatchedThenUpdate();
|
||||
}
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
*/
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
@ -68,14 +69,14 @@ public interface MergeNotMatchedSetStep<R extends Record> {
|
||||
* Set values for <code>INSERT</code> in the <code>MERGE</code> statement's
|
||||
* <code>WHEN NOT MATCHED</code> clause
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
<T> MergeNotMatchedSetMoreStep<R> set(Field<T> field, T value);
|
||||
|
||||
/**
|
||||
* Set values for <code>INSERT</code> in the <code>MERGE</code> statement's
|
||||
* <code>WHEN NOT MATCHED</INSERT> clause
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
<T> MergeNotMatchedSetMoreStep<R> set(Field<T> field, Field<T> value);
|
||||
|
||||
/**
|
||||
@ -86,6 +87,6 @@ public interface MergeNotMatchedSetStep<R extends Record> {
|
||||
* types. Values can either be of type <code><T></code> or
|
||||
* <code>Field<T></code>
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeNotMatchedSetMoreStep<R> set(Map<? extends Field<?>, ?> map);
|
||||
}
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
*/
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
@ -73,20 +74,20 @@ public interface MergeNotMatchedStep<R extends Record> extends MergeFinalStep<R>
|
||||
* access to a MySQL-like API allowing for
|
||||
* <code>INSERT SET a = x, b = y</code> syntax.
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeNotMatchedSetStep<R> whenNotMatchedThenInsert();
|
||||
|
||||
/**
|
||||
* Add the <code>WHEN NOT MATCHED THEN INSERT</code> clause to the
|
||||
* <code>MERGE</code> statement
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeNotMatchedValuesStep<R> whenNotMatchedThenInsert(Field<?>... fields);
|
||||
|
||||
/**
|
||||
* Add the <code>WHEN MATCHED THEN UPDATE</code> clause to the
|
||||
* <code>MERGE</code> statement
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeNotMatchedValuesStep<R> whenNotMatchedThenInsert(Collection<? extends Field<?>> fields);
|
||||
}
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
*/
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
@ -68,20 +69,20 @@ public interface MergeNotMatchedValuesStep<R extends Record> {
|
||||
* Set <code>VALUES</code> for <code>INSERT</code> in the <code>MERGE</code>
|
||||
* statement's <code>WHEN NOT MATCHED THEN INSERT</code> clause.
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeNotMatchedWhereStep<R> values(Object... values);
|
||||
|
||||
/**
|
||||
* Set <code>VALUES</code> for <code>INSERT</code> in the <code>MERGE</code>
|
||||
* statement's <code>WHEN NOT MATCHED THEN INSERT</code> clause.
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeNotMatchedWhereStep<R> values(Field<?>... values);
|
||||
|
||||
/**
|
||||
* Set <code>VALUES</code> for <code>INSERT</code> in the <code>MERGE</code>
|
||||
* statement's <code>WHEN NOT MATCHED THEN INSERT</code> clause.
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeNotMatchedWhereStep<R> values(Collection<?> values);
|
||||
}
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
*/
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
@ -68,7 +69,7 @@ public interface MergeOnConditionStep<R extends Record> extends MergeMatchedStep
|
||||
* Combine the currently assembled conditions with another one using the
|
||||
* {@link Operator#AND} operator and proceed to the next step.
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> and(Condition condition);
|
||||
|
||||
/**
|
||||
@ -82,7 +83,7 @@ public interface MergeOnConditionStep<R extends Record> extends MergeMatchedStep
|
||||
*
|
||||
* @see Factory#condition(String)
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> and(String sql);
|
||||
|
||||
/**
|
||||
@ -96,7 +97,7 @@ public interface MergeOnConditionStep<R extends Record> extends MergeMatchedStep
|
||||
*
|
||||
* @see Factory#condition(String, Object...)
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> and(String sql, Object... bindings);
|
||||
|
||||
/**
|
||||
@ -110,35 +111,35 @@ public interface MergeOnConditionStep<R extends Record> extends MergeMatchedStep
|
||||
*
|
||||
* @see Factory#condition(String, QueryPart...)
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> and(String sql, QueryPart... parts);
|
||||
|
||||
/**
|
||||
* Combine the currently assembled conditions with a negated other one using
|
||||
* the {@link Operator#AND} operator and proceed to the next step.
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> andNot(Condition condition);
|
||||
|
||||
/**
|
||||
* Combine the currently assembled conditions with an EXISTS clause using
|
||||
* the {@link Operator#AND} operator and proceed to the next step.
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> andExists(Select<?> select);
|
||||
|
||||
/**
|
||||
* Combine the currently assembled conditions with a NOT EXISTS clause using
|
||||
* the {@link Operator#AND} operator and proceed to the next step.
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> andNotExists(Select<?> select);
|
||||
|
||||
/**
|
||||
* Combine the currently assembled conditions with another one using the
|
||||
* {@link Operator#OR} operator and proceed to the next step.
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> or(Condition condition);
|
||||
|
||||
/**
|
||||
@ -152,7 +153,7 @@ public interface MergeOnConditionStep<R extends Record> extends MergeMatchedStep
|
||||
*
|
||||
* @see Factory#condition(String)
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> or(String sql);
|
||||
|
||||
/**
|
||||
@ -166,7 +167,7 @@ public interface MergeOnConditionStep<R extends Record> extends MergeMatchedStep
|
||||
*
|
||||
* @see Factory#condition(String, Object...)
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> or(String sql, Object... bindings);
|
||||
|
||||
/**
|
||||
@ -180,27 +181,27 @@ public interface MergeOnConditionStep<R extends Record> extends MergeMatchedStep
|
||||
*
|
||||
* @see Factory#condition(String, QueryPart...)
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> or(String sql, QueryPart... parts);
|
||||
|
||||
/**
|
||||
* Combine the currently assembled conditions with a negated other one using
|
||||
* the {@link Operator#OR} operator and proceed to the next step.
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> orNot(Condition condition);
|
||||
|
||||
/**
|
||||
* Combine the currently assembled conditions with an EXISTS clause using
|
||||
* the {@link Operator#OR} operator and proceed to the next step.
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> orExists(Select<?> select);
|
||||
|
||||
/**
|
||||
* Combine the currently assembled conditions with a NOT EXISTS clause using
|
||||
* the {@link Operator#OR} operator and proceed to the next step.
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> orNotExists(Select<?> select);
|
||||
}
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
*/
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
@ -67,7 +68,7 @@ public interface MergeOnStep<R extends Record> {
|
||||
/**
|
||||
* Provide join conditions and proceed to the next step
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> on(Condition... conditions);
|
||||
|
||||
/**
|
||||
@ -80,7 +81,7 @@ public interface MergeOnStep<R extends Record> {
|
||||
*
|
||||
* @see Factory#condition(String)
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> on(String sql);
|
||||
|
||||
/**
|
||||
@ -93,7 +94,7 @@ public interface MergeOnStep<R extends Record> {
|
||||
*
|
||||
* @see Factory#condition(String, Object...)
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> on(String sql, Object... bindings);
|
||||
|
||||
/**
|
||||
@ -106,6 +107,6 @@ public interface MergeOnStep<R extends Record> {
|
||||
*
|
||||
* @see Factory#condition(String, QueryPart...)
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnConditionStep<R> on(String sql, QueryPart... parts);
|
||||
}
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
*/
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
@ -46,7 +47,7 @@ import static org.jooq.SQLDialect.SYBASE;
|
||||
* <p>
|
||||
* Example: <code><pre>
|
||||
* Factory create = new Factory();
|
||||
*
|
||||
*
|
||||
* create.mergeInto(table)
|
||||
* .using(select)
|
||||
* .on(condition)
|
||||
@ -57,7 +58,7 @@ import static org.jooq.SQLDialect.SYBASE;
|
||||
* .values(value1, value2)
|
||||
* .execute();
|
||||
* </pre></code>
|
||||
*
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
public interface MergeUsingStep<R extends Record> extends MergeKeyStep<R> {
|
||||
@ -66,7 +67,7 @@ public interface MergeUsingStep<R extends Record> extends MergeKeyStep<R> {
|
||||
* Add the <code>USING</code> clause to the SQL standard <code>MERGE</code>
|
||||
* statement
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnStep<R> using(TableLike<?> table);
|
||||
|
||||
/**
|
||||
@ -77,6 +78,6 @@ public interface MergeUsingStep<R extends Record> extends MergeKeyStep<R> {
|
||||
* in <code>USING(SELECT 1) AS [dummy_table(dummy_field)]</code> in SQL
|
||||
* Server, where derived tables need to be aliased.
|
||||
*/
|
||||
@Support({ DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeOnStep<R> usingDual();
|
||||
}
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
*/
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.H2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
@ -63,19 +64,19 @@ public interface MergeValuesStep<R extends Record> {
|
||||
/**
|
||||
* Specify a <code>VALUES</code> clause
|
||||
*/
|
||||
@Support({ DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
Merge<R> values(Object... values);
|
||||
|
||||
/**
|
||||
* Specify a <code>VALUES</code> clause
|
||||
*/
|
||||
@Support({ DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
Merge<R> values(Field<?>... values);
|
||||
|
||||
/**
|
||||
* Specify a <code>VALUES</code> clause
|
||||
*/
|
||||
@Support({ DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
Merge<R> values(Collection<?> values);
|
||||
|
||||
/**
|
||||
@ -88,6 +89,6 @@ public interface MergeValuesStep<R extends Record> {
|
||||
* {@link FactoryOperations#mergeInto(Table, Field...)} or
|
||||
* {@link FactoryOperations#mergeInto(Table, Collection)}
|
||||
*/
|
||||
@Support({ DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
Merge<R> select(Select<?> select);
|
||||
}
|
||||
|
||||
@ -419,6 +419,7 @@ implements
|
||||
*/
|
||||
private final QueryPart getStandardMerge(Configuration config) {
|
||||
switch (config.getDialect()) {
|
||||
case CUBRID:
|
||||
case DB2:
|
||||
case HSQLDB:
|
||||
case ORACLE:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user