tech.ydb.jooq.dsl.upsert.UpsertValuesStep20 Maven / Gradle / Ivy
package tech.ydb.jooq.dsl.upsert;
import java.util.Collection;
import java.util.function.Function;
import org.jooq.CheckReturnValue;
import org.jooq.Field;
import org.jooq.Record;
import org.jooq.Record20;
import org.jooq.Row20;
import org.jooq.Rows;
import org.jooq.Select;
import org.jooq.Table;
import tech.ydb.jooq.Upsert;
import tech.ydb.jooq.YdbDSLContext;
/**
* This type is used for the {@link Upsert}'s DSL API.
*
* Example:
* using(configuration)
* .upsertInto(table, field1, field2, field3, .., field19, field20)
* .values(valueA1, valueA2, valueA3, .., valueA19, valueA20)
* .values(valueB1, valueB2, valueB3, .., valueB19, valueB20)
* .execute();
*
*/
public interface UpsertValuesStep20 extends Upsert {
/**
* Add a single row of values to the upsert statement.
*/
@CheckReturnValue
UpsertValuesStep20 values(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15, T16 value16, T17 value17, T18 value18, T19 value19, T20 value20);
/**
* Add a single row of values to the upsert statement.
*/
@CheckReturnValue
UpsertValuesStep20 values(Field value1, Field value2, Field value3, Field value4, Field value5, Field value6, Field value7, Field value8, Field value9, Field value10, Field value11, Field value12, Field value13, Field value14, Field value15, Field value16, Field value17, Field value18, Field value19, Field value20);
/**
* Add a single row of values to the upsert statement.
*/
@CheckReturnValue
UpsertValuesStep20 values(Collection> values);
/**
* Add a single row of values to the upsert statement.
*/
@CheckReturnValue
UpsertValuesStep20 values(Row20 values);
/**
* Add a single row of values to the upsert statement.
*/
@CheckReturnValue
UpsertValuesStep20 values(Record20 values);
/**
* Add multiple rows of values to the upsert statement.
*
* This is equivalent to calling the other values clauses multiple times, but
* allows for dynamic construction of row arrays.
*
* @see Rows#toRowArray(Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function)
*/
@CheckReturnValue
@SuppressWarnings("unchecked")
UpsertValuesStep20 valuesOfRows(Row20... values);
/**
* Add multiple rows of values to the upsert statement.
*
* This is equivalent to calling the other values clauses multiple times, but
* allows for dynamic construction of row arrays.
*
* @see Rows#toRowList(Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function)
*/
@CheckReturnValue
UpsertValuesStep20 valuesOfRows(Collection extends Row20> values);
/**
* Add multiple rows of values to the upsert statement.
*
* This is equivalent to calling the other values clauses multiple times, but
* allows for dynamic construction of row arrays.
*
* Note: Irrespective of individual {@link Record#changed()}
* flag values, all record values are copied to the VALUES
clause
* using {@link Record#intoArray()}, to match upsert columns by position, not
* by name. If you prefer omitting unchanged values and adding values by field
* name rather than by index, use {@link UpsertSetStep#set(Record...)} instead.
* That syntax is available only if you omit the explicit upsert columns list.
*/
@CheckReturnValue
@SuppressWarnings("unchecked")
UpsertValuesStep20 valuesOfRecords(Record20... values);
/**
* Add multiple rows of values to the upsert statement.
*
* This is equivalent to calling the other values clauses multiple times, but
* allows for dynamic construction of row arrays.
*
* Note: Irrespective of individual {@link Record#changed()}
* flag values, all record values are copied to the VALUES
clause
* using {@link Record#intoArray()}, to match upsert columns by position, not
* by name. If you prefer omitting unchanged values and adding values by field
* name rather than by index, use {@link UpsertSetStep#set(Record...)} instead.
* That syntax is available only if you omit the explicit upsert columns list.
*/
@CheckReturnValue
UpsertValuesStep20 valuesOfRecords(Collection extends Record20> values);
/**
* Use a SELECT
statement as the source of values for the
* UPSERT
statement
*
* This variant of the UPSERT … SELECT
statement expects a
* select returning exactly as many fields as specified previously in the
* INTO
clause:
* {@link YdbDSLContext#upsertInto(Table, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field)}
*/
@CheckReturnValue
Upsert select(Select extends Record20> select);
}