Top Description Inners Fields Constructors Methods
org.h2.command.dml

public final Class MergeUsing

extends DataChangeStatement
Class Inheritance
Imports
java.util.ArrayList, .HashSet, .Iterator, org.h2.api.ErrorCode, .Trigger, org.h2.command.CommandInterface, org.h2.command.query.AllColumnsForPlan, org.h2.engine.DbObject, .Right, .SessionLocal, org.h2.expression.Expression, .ExpressionVisitor, .Parameter, .ValueExpression, org.h2.message.DbException, org.h2.result.LocalResult, .ResultTarget, .Row, org.h2.table.Column, .DataChangeDeltaTable, .DataChangeDeltaTable.ResultOption, .PlanItem, .Table, .TableFilter, org.h2.util.HasSQL, .Utils

This class represents the statement syntax MERGE INTO table alias USING... It does not replace the MERGE INTO... KEYS... form.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public abstract class
MergeUsing.When

Abstract WHEN command of the MERGE statement.

public class
public class
public class

Field Summary

Modifier and TypeField and Description
pack-priv Expression
onCondition

ON condition expression.

pack-priv TableFilter
sourceTableFilter

Source table filter.

private final HashSet<Long>
targetRowidsRemembered

Contains _ROWID_ of processed rows.

pack-priv TableFilter
targetTableFilter

Target table filter.

private ArrayList<MergeUsing.When>

Constructor Summary

AccessConstructor and Description
public
MergeUsing(SessionLocal session, TableFilter targetTableFilter)

Method Summary

Modifier and TypeMethod and Description
public void
addWhen(MergeUsing.When
new WHEN command to add (update, delete or insert).
w
)

Adds WHEN command.

private void
public void
collectDependencies(HashSet<DbObject>
collection of dependencies to populate
dependencies
)

Overrides org.h2.command.Prepared.collectDependencies.

Find and collect all DbObjects, this Prepared depends on.

pack-priv void
private int
public Expression
public StringBuilder
getPlanSQL(StringBuilder
string builder
builder
,
int
formatting flags
sqlFlags
)

Overrides org.h2.command.Prepared.getPlanSQL.

Appends the SQL statement with the execution plan.

public TableFilter
public String
getStatementName()

Implements abstract org.h2.command.dml.DataChangeStatement.getStatementName.

Return the name of this statement.

public Table
getTable()

Implements abstract org.h2.command.dml.DataChangeStatement.getTable.

Return the target table.

public TableFilter
public int
getType()

Implements abstract org.h2.command.Prepared.getType.

Get the command type as defined in CommandInterface

public ArrayList<MergeUsing.When>
private int
merge(boolean nullRow, ResultTarget deltaChangeCollector, DataChangeDeltaTable.ResultOption deltaChangeCollectionMode)

public void
public void
setSourceTableFilter(TableFilter sourceTableFilter)

public void
setTargetTableFilter(TableFilter targetTableFilter)

public long
update(ResultTarget
target result
deltaChangeCollector
,
DataChangeDeltaTable.ResultOption
collection mode
deltaChangeCollectionMode
)

Implements abstract org.h2.command.dml.DataChangeStatement.update.

Execute the statement with specified delta change collector and collection mode.

Inherited from org.h2.command.dml.DataChangeStatement:
isCacheableisTransactionalpreparequeryMetaupdate

Field Detail

onConditionback to summary
pack-priv Expression onCondition

ON condition expression.

sourceTableFilterback to summary
pack-priv TableFilter sourceTableFilter

Source table filter.

targetRowidsRememberedback to summary
private final HashSet<Long> targetRowidsRemembered

Contains _ROWID_ of processed rows. Row identities are remembered to prevent duplicate updates of the same row.

targetTableFilterback to summary
pack-priv TableFilter targetTableFilter

Target table filter.

whenback to summary
private ArrayList<MergeUsing.When> when

Constructor Detail

MergeUsingback to summary
public MergeUsing(SessionLocal session, TableFilter targetTableFilter)

Method Detail

addWhenback to summary
public void addWhen(MergeUsing.When w)

Adds WHEN command.

Parameters
w:MergeUsing.When

new WHEN command to add (update, delete or insert).

checkRightsback to summary
private void checkRights()
collectDependenciesback to summary
public void collectDependencies(HashSet<DbObject> dependencies)

Overrides org.h2.command.Prepared.collectDependencies.

Doc from org.h2.command.Prepared.collectDependencies.

Find and collect all DbObjects, this Prepared depends on.

Parameters
dependencies:HashSet<DbObject>

collection of dependencies to populate

Annotations
@Override
doPrepareback to summary
pack-priv void doPrepare()

Implements abstract org.h2.command.dml.DataChangeStatement.doPrepare.

Annotations
@Override
evaluateTriggerMasksback to summary
private int evaluateTriggerMasks()
getOnConditionback to summary
public Expression getOnCondition()
getPlanSQLback to summary
public StringBuilder getPlanSQL(StringBuilder builder, int sqlFlags)

Overrides org.h2.command.Prepared.getPlanSQL.

Doc from org.h2.command.Prepared.getPlanSQL.

Appends the SQL statement with the execution plan.

Parameters
builder:StringBuilder

string builder

sqlFlags:int

formatting flags

Returns:StringBuilder

the execution plan

Annotations
@Override
getSourceTableFilterback to summary
public TableFilter getSourceTableFilter()
getStatementNameback to summary
public String getStatementName()

Implements abstract org.h2.command.dml.DataChangeStatement.getStatementName.

Doc from org.h2.command.dml.DataChangeStatement.getStatementName.

Return the name of this statement.

Returns:String

the short name of this statement.

Annotations
@Override
getTableback to summary
public Table getTable()

Implements abstract org.h2.command.dml.DataChangeStatement.getTable.

Doc from org.h2.command.dml.DataChangeStatement.getTable.

Return the target table.

Returns:Table

the target table

Annotations
@Override
getTargetTableFilterback to summary
public TableFilter getTargetTableFilter()
getTypeback to summary
public int getType()

Implements abstract org.h2.command.Prepared.getType.

Doc from org.h2.command.Prepared.getType.

Get the command type as defined in CommandInterface

Returns:int

the statement type

Annotations
@Override
getWhenback to summary
public ArrayList<MergeUsing.When> getWhen()
mergeback to summary
private int merge(boolean nullRow, ResultTarget deltaChangeCollector, DataChangeDeltaTable.ResultOption deltaChangeCollectionMode)
setOnConditionback to summary
public void setOnCondition(Expression condition)
setSourceTableFilterback to summary
public void setSourceTableFilter(TableFilter sourceTableFilter)
setTargetTableFilterback to summary
public void setTargetTableFilter(TableFilter targetTableFilter)
updateback to summary
public long update(ResultTarget deltaChangeCollector, DataChangeDeltaTable.ResultOption deltaChangeCollectionMode)

Implements abstract org.h2.command.dml.DataChangeStatement.update.

Doc from org.h2.command.dml.DataChangeStatement.update.

Execute the statement with specified delta change collector and collection mode.

Parameters
deltaChangeCollector:ResultTarget

target result

deltaChangeCollectionMode:DataChangeDeltaTable.ResultOption

collection mode

Returns:long

the update count

Annotations
@Override
org.h2.command.dml back to summary

public abstract Class MergeUsing.When

extends Object
implements HasSQL
Class Inheritance
All Implemented Interfaces
org.h2.util.HasSQL
Known Direct Subclasses
org.h2.command.dml.MergeUsing.WhenMatchedThenDelete, org.h2.command.dml.MergeUsing.WhenMatchedThenUpdate, org.h2.command.dml.MergeUsing.WhenNotMatched

Abstract WHEN command of the MERGE statement.

Field Summary

Modifier and TypeField and Description
pack-priv Expression
andCondition

AND condition of the command.

Constructor Summary

AccessConstructor and Description
pack-priv
When()

Method Summary

Modifier and TypeMethod and Description
pack-priv abstract void
checkRights()

Checks user's INSERT, UPDATE, DELETE permission in appropriate cases.

pack-priv void
collectDependencies(ExpressionVisitor
the expression visitor
visitor
)

Find and collect all DbObjects, this When object depends on.

pack-priv abstract int

Returns:

the trigger mask.
evaluateTriggerMasks
()

Evaluates trigger mask (UPDATE, INSERT, DELETE).

public StringBuilder
getSQL(StringBuilder
string builder
builder
,
int
formatting flags
sqlFlags
)

Implements org.h2.util.HasSQL.getSQL.

Appends the SQL statement of this object to the specified builder.

pack-priv abstract void
merge(SessionLocal
the session
session
,
ResultTarget
target result
deltaChangeCollector
,
DataChangeDeltaTable.ResultOption
collection mode
deltaChangeCollectionMode
)

Merges rows.

pack-priv boolean

Returns:

false if this clause may be removed
prepare
(SessionLocal
the session
session
)

Prepares WHEN command.

public void
setAndCondition(Expression
AND condition to set
andCondition
)

Sets the specified AND condition.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

andConditionback to summary
pack-priv Expression andCondition

AND condition of the command.

Constructor Detail

Whenback to summary
pack-priv When()

Method Detail

checkRightsback to summary
pack-priv abstract void checkRights()

Checks user's INSERT, UPDATE, DELETE permission in appropriate cases.

collectDependenciesback to summary
pack-priv void collectDependencies(ExpressionVisitor visitor)

Find and collect all DbObjects, this When object depends on.

Parameters
visitor:ExpressionVisitor

the expression visitor

evaluateTriggerMasksback to summary
pack-priv abstract int evaluateTriggerMasks()

Evaluates trigger mask (UPDATE, INSERT, DELETE).

Returns:int

the trigger mask.

getSQLback to summary
public StringBuilder getSQL(StringBuilder builder, int sqlFlags)

Implements org.h2.util.HasSQL.getSQL.

Doc from org.h2.util.HasSQL.getSQL.

Appends the SQL statement of this object to the specified builder.

Parameters
builder:StringBuilder

string builder

sqlFlags:int

formatting flags

Returns:StringBuilder

the specified string builder

Annotations
@Override
mergeback to summary
pack-priv abstract void merge(SessionLocal session, ResultTarget deltaChangeCollector, DataChangeDeltaTable.ResultOption deltaChangeCollectionMode)

Merges rows.

Parameters
session:SessionLocal

the session

deltaChangeCollector:ResultTarget

target result

deltaChangeCollectionMode:DataChangeDeltaTable.ResultOption

collection mode

prepareback to summary
pack-priv boolean prepare(SessionLocal session)

Prepares WHEN command.

Parameters
session:SessionLocal

the session

Returns:boolean

false if this clause may be removed

setAndConditionback to summary
public void setAndCondition(Expression andCondition)

Sets the specified AND condition.

Parameters
andCondition:Expression

AND condition to set

org.h2.command.dml back to summary

public final Class MergeUsing.WhenMatchedThenDelete

extends When
Class Inheritance

Field Summary

Inherited from org.h2.command.dml.MergeUsing.When:
andCondition

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
pack-priv void
checkRights()

Implements abstract org.h2.command.dml.MergeUsing.When.checkRights.

Checks user's INSERT, UPDATE, DELETE permission in appropriate cases.

pack-priv int
evaluateTriggerMasks()

Implements abstract org.h2.command.dml.MergeUsing.When.evaluateTriggerMasks.

Evaluates trigger mask (UPDATE, INSERT, DELETE).

public StringBuilder
getSQL(StringBuilder
string builder
builder
,
int
formatting flags
sqlFlags
)

Overrides org.h2.command.dml.MergeUsing.When.getSQL.

Implements org.h2.util.HasSQL.getSQL.

Appends the SQL statement of this object to the specified builder.

pack-priv void
merge(SessionLocal
the session
session
,
ResultTarget
target result
deltaChangeCollector
,
DataChangeDeltaTable.ResultOption
collection mode
deltaChangeCollectionMode
)

Implements abstract org.h2.command.dml.MergeUsing.When.merge.

Merges rows.

Inherited from org.h2.command.dml.MergeUsing.When:
collectDependenciespreparesetAndCondition

Constructor Detail

WhenMatchedThenDeleteback to summary
public WhenMatchedThenDelete()

Method Detail

checkRightsback to summary
pack-priv void checkRights()

Implements abstract org.h2.command.dml.MergeUsing.When.checkRights.

Doc from org.h2.command.dml.MergeUsing.When.checkRights.

Checks user's INSERT, UPDATE, DELETE permission in appropriate cases.

Annotations
@Override
evaluateTriggerMasksback to summary
pack-priv int evaluateTriggerMasks()

Implements abstract org.h2.command.dml.MergeUsing.When.evaluateTriggerMasks.

Doc from org.h2.command.dml.MergeUsing.When.evaluateTriggerMasks.

Evaluates trigger mask (UPDATE, INSERT, DELETE).

Returns:int

the trigger mask.

Annotations
@Override
getSQLback to summary
public StringBuilder getSQL(StringBuilder builder, int sqlFlags)

Overrides org.h2.command.dml.MergeUsing.When.getSQL.

Implements org.h2.util.HasSQL.getSQL.

Doc from org.h2.util.HasSQL.getSQL.

Appends the SQL statement of this object to the specified builder.

Parameters
builder:StringBuilder

string builder

sqlFlags:int

formatting flags

Returns:StringBuilder

the specified string builder

Annotations
@Override
mergeback to summary
pack-priv void merge(SessionLocal session, ResultTarget deltaChangeCollector, DataChangeDeltaTable.ResultOption deltaChangeCollectionMode)

Implements abstract org.h2.command.dml.MergeUsing.When.merge.

Doc from org.h2.command.dml.MergeUsing.When.merge.

Merges rows.

Parameters
session:SessionLocal

the session

deltaChangeCollector:ResultTarget

target result

deltaChangeCollectionMode:DataChangeDeltaTable.ResultOption

collection mode

Annotations
@Override
org.h2.command.dml back to summary

public final Class MergeUsing.WhenMatchedThenUpdate

extends When
Class Inheritance

Field Summary

Modifier and TypeField and Description
private SetClauseList
Inherited from org.h2.command.dml.MergeUsing.When:
andCondition

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
pack-priv void
checkRights()

Implements abstract org.h2.command.dml.MergeUsing.When.checkRights.

Checks user's INSERT, UPDATE, DELETE permission in appropriate cases.

pack-priv void
collectDependencies(ExpressionVisitor
the expression visitor
visitor
)

Overrides org.h2.command.dml.MergeUsing.When.collectDependencies.

Find and collect all DbObjects, this When object depends on.

pack-priv int
evaluateTriggerMasks()

Implements abstract org.h2.command.dml.MergeUsing.When.evaluateTriggerMasks.

Evaluates trigger mask (UPDATE, INSERT, DELETE).

public StringBuilder
getSQL(StringBuilder
string builder
builder
,
int
formatting flags
sqlFlags
)

Overrides org.h2.command.dml.MergeUsing.When.getSQL.

Implements org.h2.util.HasSQL.getSQL.

Appends the SQL statement of this object to the specified builder.

pack-priv void
merge(SessionLocal
the session
session
,
ResultTarget
target result
deltaChangeCollector
,
DataChangeDeltaTable.ResultOption
collection mode
deltaChangeCollectionMode
)

Implements abstract org.h2.command.dml.MergeUsing.When.merge.

Merges rows.

pack-priv boolean
prepare(SessionLocal
the session
session
)

Overrides org.h2.command.dml.MergeUsing.When.prepare.

Prepares WHEN command.

public void
Inherited from org.h2.command.dml.MergeUsing.When:
setAndCondition

Field Detail

setClauseListback to summary
private SetClauseList setClauseList

Constructor Detail

WhenMatchedThenUpdateback to summary
public WhenMatchedThenUpdate()

Method Detail

checkRightsback to summary
pack-priv void checkRights()

Implements abstract org.h2.command.dml.MergeUsing.When.checkRights.

Doc from org.h2.command.dml.MergeUsing.When.checkRights.

Checks user's INSERT, UPDATE, DELETE permission in appropriate cases.

Annotations
@Override
collectDependenciesback to summary
pack-priv void collectDependencies(ExpressionVisitor visitor)

Overrides org.h2.command.dml.MergeUsing.When.collectDependencies.

Doc from org.h2.command.dml.MergeUsing.When.collectDependencies.

Find and collect all DbObjects, this When object depends on.

Parameters
visitor:ExpressionVisitor

the expression visitor

Annotations
@Override
evaluateTriggerMasksback to summary
pack-priv int evaluateTriggerMasks()

Implements abstract org.h2.command.dml.MergeUsing.When.evaluateTriggerMasks.

Doc from org.h2.command.dml.MergeUsing.When.evaluateTriggerMasks.

Evaluates trigger mask (UPDATE, INSERT, DELETE).

Returns:int

the trigger mask.

Annotations
@Override
getSQLback to summary
public StringBuilder getSQL(StringBuilder builder, int sqlFlags)

Overrides org.h2.command.dml.MergeUsing.When.getSQL.

Implements org.h2.util.HasSQL.getSQL.

Doc from org.h2.util.HasSQL.getSQL.

Appends the SQL statement of this object to the specified builder.

Parameters
builder:StringBuilder

string builder

sqlFlags:int

formatting flags

Returns:StringBuilder

the specified string builder

Annotations
@Override
mergeback to summary
pack-priv void merge(SessionLocal session, ResultTarget deltaChangeCollector, DataChangeDeltaTable.ResultOption deltaChangeCollectionMode)

Implements abstract org.h2.command.dml.MergeUsing.When.merge.

Doc from org.h2.command.dml.MergeUsing.When.merge.

Merges rows.

Parameters
session:SessionLocal

the session

deltaChangeCollector:ResultTarget

target result

deltaChangeCollectionMode:DataChangeDeltaTable.ResultOption

collection mode

Annotations
@Override
prepareback to summary
pack-priv boolean prepare(SessionLocal session)

Overrides org.h2.command.dml.MergeUsing.When.prepare.

Doc from org.h2.command.dml.MergeUsing.When.prepare.

Prepares WHEN command.

Parameters
session:SessionLocal

the session

Returns:boolean

false if this clause may be removed

Annotations
@Override
setSetClauseListback to summary
public void setSetClauseList(SetClauseList setClauseList)
org.h2.command.dml back to summary

public final Class MergeUsing.WhenNotMatched

extends When
Class Inheritance

Field Summary

Modifier and TypeField and Description
private Column[]
private final Boolean
private final Expression[]
Inherited from org.h2.command.dml.MergeUsing.When:
andCondition

Constructor Summary

AccessConstructor and Description
public
WhenNotMatched(Column[] columns, Boolean overridingSystem, Expression[] values)

Method Summary

Modifier and TypeMethod and Description
pack-priv void
checkRights()

Implements abstract org.h2.command.dml.MergeUsing.When.checkRights.

Checks user's INSERT, UPDATE, DELETE permission in appropriate cases.

pack-priv void
collectDependencies(ExpressionVisitor
the expression visitor
visitor
)

Overrides org.h2.command.dml.MergeUsing.When.collectDependencies.

Find and collect all DbObjects, this When object depends on.

pack-priv int
evaluateTriggerMasks()

Implements abstract org.h2.command.dml.MergeUsing.When.evaluateTriggerMasks.

Evaluates trigger mask (UPDATE, INSERT, DELETE).

public StringBuilder
getSQL(StringBuilder
string builder
builder
,
int
formatting flags
sqlFlags
)

Overrides org.h2.command.dml.MergeUsing.When.getSQL.

Implements org.h2.util.HasSQL.getSQL.

Appends the SQL statement of this object to the specified builder.

pack-priv void
merge(SessionLocal
the session
session
,
ResultTarget
target result
deltaChangeCollector
,
DataChangeDeltaTable.ResultOption
collection mode
deltaChangeCollectionMode
)

Implements abstract org.h2.command.dml.MergeUsing.When.merge.

Merges rows.

pack-priv boolean
prepare(SessionLocal
the session
session
)

Overrides org.h2.command.dml.MergeUsing.When.prepare.

Prepares WHEN command.

Inherited from org.h2.command.dml.MergeUsing.When:
setAndCondition

Field Detail

columnsback to summary
private Column[] columns
overridingSystemback to summary
private final Boolean overridingSystem
valuesback to summary
private final Expression[] values

Constructor Detail

WhenNotMatchedback to summary
public WhenNotMatched(Column[] columns, Boolean overridingSystem, Expression[] values)

Method Detail

checkRightsback to summary
pack-priv void checkRights()

Implements abstract org.h2.command.dml.MergeUsing.When.checkRights.

Doc from org.h2.command.dml.MergeUsing.When.checkRights.

Checks user's INSERT, UPDATE, DELETE permission in appropriate cases.

Annotations
@Override
collectDependenciesback to summary
pack-priv void collectDependencies(ExpressionVisitor visitor)

Overrides org.h2.command.dml.MergeUsing.When.collectDependencies.

Doc from org.h2.command.dml.MergeUsing.When.collectDependencies.

Find and collect all DbObjects, this When object depends on.

Parameters
visitor:ExpressionVisitor

the expression visitor

Annotations
@Override
evaluateTriggerMasksback to summary
pack-priv int evaluateTriggerMasks()

Implements abstract org.h2.command.dml.MergeUsing.When.evaluateTriggerMasks.

Doc from org.h2.command.dml.MergeUsing.When.evaluateTriggerMasks.

Evaluates trigger mask (UPDATE, INSERT, DELETE).

Returns:int

the trigger mask.

Annotations
@Override
getSQLback to summary
public StringBuilder getSQL(StringBuilder builder, int sqlFlags)

Overrides org.h2.command.dml.MergeUsing.When.getSQL.

Implements org.h2.util.HasSQL.getSQL.

Doc from org.h2.util.HasSQL.getSQL.

Appends the SQL statement of this object to the specified builder.

Parameters
builder:StringBuilder

string builder

sqlFlags:int

formatting flags

Returns:StringBuilder

the specified string builder

Annotations
@Override
mergeback to summary
pack-priv void merge(SessionLocal session, ResultTarget deltaChangeCollector, DataChangeDeltaTable.ResultOption deltaChangeCollectionMode)

Implements abstract org.h2.command.dml.MergeUsing.When.merge.

Doc from org.h2.command.dml.MergeUsing.When.merge.

Merges rows.

Parameters
session:SessionLocal

the session

deltaChangeCollector:ResultTarget

target result

deltaChangeCollectionMode:DataChangeDeltaTable.ResultOption

collection mode

Annotations
@Override
prepareback to summary
pack-priv boolean prepare(SessionLocal session)

Overrides org.h2.command.dml.MergeUsing.When.prepare.

Doc from org.h2.command.dml.MergeUsing.When.prepare.

Prepares WHEN command.

Parameters
session:SessionLocal

the session

Returns:boolean

false if this clause may be removed

Annotations
@Override