io.army.criteria.postgre.PostgreMerge Maven / Gradle / Ivy
package io.army.criteria.postgre;
import io.army.criteria.*;
import io.army.criteria.impl.SQLs;
import io.army.meta.FieldMeta;
import io.army.meta.TableMeta;
import java.util.function.Supplier;
/**
*
* This interface representing Postgre UPDATE syntax.
*
* @see Postgre UPDATE syntax
* @since 1.0
*/
public interface PostgreMerge extends PostgreStatement, DmlStatement {
interface _AsMergeClause extends Item {
I asMerge();
}
interface _MergeInsertValuesParensClause
extends InsertStatement._ValuesParensClause> {
}
interface _MergeInsertValuesParenCommaSpec
extends _CommaClause<_MergeInsertValuesParensClause>, _DmlInsertClause {
}
interface _MergeInsertValuesDefaultSpec
extends InsertStatement._StaticColumnDefaultClause>
, InsertStatement._DomainValueClause>
, InsertStatement._DynamicValuesClause>
, InsertStatement._StaticValuesClause<_MergeInsertValuesParensClause> {
}
interface _MergeInsertOverridingValueSpec
extends _MergeInsertValuesDefaultSpec
, PostgreInsert._OverridingValueClause<_MergeInsertValuesDefaultSpec> {
}
interface _MergeInsertColumnListSpec
extends InsertStatement._ColumnListParensClause>
, _MergeInsertOverridingValueSpec {
}
interface _MergerUpdateSetClause
extends UpdateStatement._StaticRowSetClause, _MergerUpdateSetSpec>
, UpdateStatement._DynamicSetClause>, _DmlUpdateSpec> {
}
interface _MergerUpdateSetSpec extends _MergerUpdateSetClause
, _DmlUpdateSpec {
}
interface _MergeWhenThenClause {
_MergeWhenSpec thenDoNothing();
}
interface _MatchedThenClause extends _MergeWhenThenClause {
_MergerUpdateSetClause> thenUpdate();
_MergeWhenSpec thenDelete();
}
interface _NotMatchedThenClause extends _MergeWhenThenClause {
_MergeInsertColumnListSpec> thenInsert();
}
interface _MatchedThenSpec extends _MatchedThenClause
, _WhereAndClause<_MatchedThenSpec> {
}
interface _NotMatchedThenSpec extends _NotMatchedThenClause
, _WhereAndClause<_NotMatchedThenSpec> {
}
interface _MergeWhenClause {
_MatchedThenSpec whenMatched();
_NotMatchedThenSpec whenNotMatched();
}
interface _MergeWhenSpec extends _MergeWhenClause
, _AsMergeClause {
}
interface _MergeOnClause extends _OnClause<_MergeWhenClause> {
}
interface _MergeUsingDataSourceClause {
_MergeOnClause using(TableMeta> table);
_MergeOnClause using(TableMeta> table, SQLs.WordAs as, String alias);
_AsClause<_MergeOnClause> using(Supplier supplier);
}
}