Class MergeRenderer
- java.lang.Object
-
- com.exasol.sql.rendering.AbstractFragmentRenderer
-
- com.exasol.sql.dml.merge.rendering.MergeRenderer
-
- All Implemented Interfaces:
MergeVisitor
,FragmentRenderer
,ValueTableVisitor
public class MergeRenderer extends AbstractFragmentRenderer implements MergeVisitor
TheInsertRenderer
turns SQL statement structures in to SQL strings.
-
-
Field Summary
-
Fields inherited from class com.exasol.sql.rendering.AbstractFragmentRenderer
config
-
-
Constructor Summary
Constructors Constructor Description MergeRenderer(StringRendererConfig config)
Create a newMergeRenderer
with custom render settings.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static MergeRenderer
create()
Create aMergeRenderer
using the default renderer configuration.static MergeRenderer
create(StringRendererConfig config)
Create aMergeRenderer
.void
leave(InsertFields insertFields)
Leave the insert field list.void
leave(ValueTable valueTable)
Leave a value table.void
leave(ValueTableRow valueTableRow)
Leave a row in a value table.void
visit(DerivedColumn derivedColumn)
Visit a derived column reference.void
visit(InsertFields insertFields)
Visit the insert field list.void
visit(MatchedClause matchedClause)
Visit the definition of the merge strategy in case of matching rows.void
visit(Merge merge)
VisitMERGE
statements.void
visit(MergeColumnUpdate columnUpdate)
Visit the update of a single column inside aMERGE
statement.void
visit(MergeDeleteClause mergeDeleteClause)
Visit the deletion definition.void
visit(MergeInsertClause mergeInsertClause)
Visit the insert definition.void
visit(MergeUpdateClause mergeUpdateClause)
Visit the update definition.void
visit(NotMatchedClause notMatchedClause)
Visit the merge strategy in case of rows that have no match in the destination table.void
visit(OnClause onClause)
Visit the merge condition definition.void
visit(UsingClause using)
Visit the source definition of aMERGE
statement.void
visit(WhereClause whereClause)
Visit aWHERE
clause.void
visit(Table table)
Visit database tables.void
visit(ValueTable valueTable)
Visit a value table.void
visit(ValueTableRow valueTableRow)
Visit a row in a value table.-
Methods inherited from class com.exasol.sql.rendering.AbstractFragmentRenderer
append, append, appendAutoQuoted, appendCommaWhenNeeded, appendKeyWord, appendListOfValueExpressions, appendRenderedValueExpression, appendSpace, appendValueTableRow, endParenthesis, render, setLastVisited, startParenthesis
-
-
-
-
Constructor Detail
-
MergeRenderer
public MergeRenderer(StringRendererConfig config)
Create a newMergeRenderer
with custom render settings.- Parameters:
config
- render configuration settings
-
-
Method Detail
-
visit
public void visit(Merge merge)
Description copied from interface:MergeVisitor
VisitMERGE
statements.- Specified by:
visit
in interfaceMergeVisitor
- Parameters:
merge
-MERGE
statement to be visited.
-
visit
public void visit(Table table)
Description copied from interface:MergeVisitor
Visit database tables.- Specified by:
visit
in interfaceMergeVisitor
- Parameters:
table
- table to be visited.
-
visit
public void visit(UsingClause using)
Description copied from interface:MergeVisitor
Visit the source definition of aMERGE
statement.- Specified by:
visit
in interfaceMergeVisitor
- Parameters:
using
- source definition
-
visit
public void visit(OnClause onClause)
Description copied from interface:MergeVisitor
Visit the merge condition definition.- Specified by:
visit
in interfaceMergeVisitor
- Parameters:
onClause
- merge condition definition
-
visit
public void visit(MatchedClause matchedClause)
Description copied from interface:MergeVisitor
Visit the definition of the merge strategy in case of matching rows.- Specified by:
visit
in interfaceMergeVisitor
- Parameters:
matchedClause
- merge strategy definition for matches
-
visit
public void visit(MergeUpdateClause mergeUpdateClause)
Description copied from interface:MergeVisitor
Visit the update definition.- Specified by:
visit
in interfaceMergeVisitor
- Parameters:
mergeUpdateClause
- update definition.
-
visit
public void visit(MergeColumnUpdate columnUpdate)
Description copied from interface:MergeVisitor
Visit the update of a single column inside aMERGE
statement.- Specified by:
visit
in interfaceMergeVisitor
- Parameters:
columnUpdate
- update definition for a single column
-
visit
public void visit(MergeDeleteClause mergeDeleteClause)
Description copied from interface:MergeVisitor
Visit the deletion definition.- Specified by:
visit
in interfaceMergeVisitor
- Parameters:
mergeDeleteClause
- deletion definition
-
visit
public void visit(NotMatchedClause notMatchedClause)
Description copied from interface:MergeVisitor
Visit the merge strategy in case of rows that have no match in the destination table.- Specified by:
visit
in interfaceMergeVisitor
- Parameters:
notMatchedClause
- merge strategy for rows without match
-
visit
public void visit(MergeInsertClause mergeInsertClause)
Description copied from interface:MergeVisitor
Visit the insert definition.- Specified by:
visit
in interfaceMergeVisitor
- Parameters:
mergeInsertClause
- insert definition
-
create
public static MergeRenderer create(StringRendererConfig config)
Create aMergeRenderer
.- Parameters:
config
- renderer configuration- Returns:
MERGE
renderer
-
create
public static MergeRenderer create()
Create aMergeRenderer
using the default renderer configuration.- Returns:
MERGE
renderer
-
visit
public void visit(DerivedColumn derivedColumn)
Description copied from interface:MergeVisitor
Visit a derived column reference.- Specified by:
visit
in interfaceMergeVisitor
- Parameters:
derivedColumn
- derived column reference
-
visit
public void visit(InsertFields insertFields)
Description copied from interface:MergeVisitor
Visit the insert field list.- Specified by:
visit
in interfaceMergeVisitor
- Parameters:
insertFields
- insert field list
-
leave
public void leave(InsertFields insertFields)
Description copied from interface:MergeVisitor
Leave the insert field list.- Specified by:
leave
in interfaceMergeVisitor
- Parameters:
insertFields
- insert field list
-
visit
public void visit(ValueTable valueTable)
Description copied from interface:ValueTableVisitor
Visit a value table.- Specified by:
visit
in interfaceValueTableVisitor
- Parameters:
valueTable
- value table to visit
-
leave
public void leave(ValueTable valueTable)
Description copied from interface:ValueTableVisitor
Leave a value table.- Specified by:
leave
in interfaceValueTableVisitor
- Parameters:
valueTable
- value table to leave
-
visit
public void visit(ValueTableRow valueTableRow)
Description copied from interface:ValueTableVisitor
Visit a row in a value table.- Specified by:
visit
in interfaceValueTableVisitor
- Parameters:
valueTableRow
- row to visit
-
leave
public void leave(ValueTableRow valueTableRow)
Description copied from interface:ValueTableVisitor
Leave a row in a value table.- Specified by:
leave
in interfaceValueTableVisitor
- Parameters:
valueTableRow
- row to leave
-
visit
public void visit(WhereClause whereClause)
Description copied from interface:MergeVisitor
Visit aWHERE
clause.- Specified by:
visit
in interfaceMergeVisitor
- Parameters:
whereClause
- theWHERE
clause to be visited
-
-