Table of Contents

Class SqliteNodeInterpreter

Namespace
LfrlAnvil.Sqlite
Assembly
LfrlAnvil.Sqlite.dll

Represents an object capable of recursive traversal over an SQL syntax tree and translating that tree into an SQL statement.

public class SqliteNodeInterpreter : SqlNodeInterpreter, ISqlNodeVisitor
Inheritance
SqliteNodeInterpreter
Implements
Inherited Members

Remarks

SQL nodes that cannot be handled by an SqlNodeInterpreter instance may cause it to throw an exception of SqlNodeVisitorException or UnrecognizedSqlNodeException type.

Constructors

SqliteNodeInterpreter(SqliteNodeInterpreterOptions, SqlNodeInterpreterContext)

Creates a new SqliteNodeInterpreter instance.

public SqliteNodeInterpreter(SqliteNodeInterpreterOptions options, SqlNodeInterpreterContext context)

Parameters

options SqliteNodeInterpreterOptions

SqliteNodeInterpreterOptions instance associated with this interpreter that defines its behavior.

context SqlNodeInterpreterContext

Underlying SqlNodeInterpreterContext instance.

Properties

Options

SqliteNodeInterpreterOptions instance associated with this interpreter that defines its behavior.

public SqliteNodeInterpreterOptions Options { get; }

Property Value

SqliteNodeInterpreterOptions

TypeDefinitions

SqliteColumnTypeDefinitionProvider instance associated with this interpreter.

public SqliteColumnTypeDefinitionProvider TypeDefinitions { get; }

Property Value

SqliteColumnTypeDefinitionProvider

Methods

AddContextParameter(SqlParameterNode)

Registers an SQL parameter in the Context.

protected override void AddContextParameter(SqlParameterNode node)

Parameters

node SqlParameterNode

SQL parameter node to register.

AppendDelimitedSchemaObjectName(string, string)

Appends delimited schema object's name to Context.

public override sealed void AppendDelimitedSchemaObjectName(string schemaName, string objName)

Parameters

schemaName string

Schema name to append.

objName string

Object name to append.

AppendDelimitedTemporaryObjectName(string)

Appends delimited name of a temporary SQL object to Context.

public override sealed void AppendDelimitedTemporaryObjectName(string name)

Parameters

name string

Name to append.

AppendSchemaObjectName(string, string)

Appends schema object's name to Context.

protected void AppendSchemaObjectName(string schemaName, string objName)

Parameters

schemaName string

Schema name to append.

objName string

Object name to append.

AppendUpsertOnConflict(SqlUpsertNode, ReadOnlyArray<SqlDataFieldNode>)

Appends an SQL upsert's conflict target to Context.

protected void AppendUpsertOnConflict(SqlUpsertNode node, ReadOnlyArray<SqlDataFieldNode> conflictTarget)

Parameters

node SqlUpsertNode

SQL upsert node.

conflictTarget ReadOnlyArray<SqlDataFieldNode>

Conflict target to append.

CreateSimplifiedUpdateWithComplexAssignments(ChangeTargetInfo, SqlUpdateNode, ReadOnlySpan<int>)

Creates a simplified version of an SqlUpdateNode with a complex data source and complex value assignments.

[Pure]
protected static SqlUpdateNode CreateSimplifiedUpdateWithComplexAssignments(SqlNodeInterpreter.ChangeTargetInfo targetInfo, SqlUpdateNode node, ReadOnlySpan<int> indexesOfComplexAssignments)

Parameters

targetInfo SqlNodeInterpreter.ChangeTargetInfo

SqlNodeInterpreter.ChangeTargetInfo instance associated with the operation.

node SqlUpdateNode

Source update node.

indexesOfComplexAssignments ReadOnlySpan<int>

Collection of 0-based indexes of all complex value assignments.

Returns

SqlUpdateNode

New SqlUpdateNode instance.

DoesChildNodeRequireParentheses(SqlNodeBase)

Specifies whether the provided node should be interpreted as a child node.

[Pure]
protected override bool DoesChildNodeRequireParentheses(SqlNodeBase node)

Parameters

node SqlNodeBase

Node to check.

Returns

bool

true when node should be interpreted as a child node, otherwise false.

Remarks

IsValidSingleTableUpdateOrDeleteStatement(SqlDataSourceNode, in SqlDataSourceTraits)

Checks whether a data source of an SqlUpdateNode or SqlDeleteFromNode is considered simple.

[Pure]
protected virtual bool IsValidSingleTableUpdateOrDeleteStatement(SqlDataSourceNode node, in SqlDataSourceTraits traits)

Parameters

node SqlDataSourceNode

Data source node to check.

traits SqlDataSourceTraits

Collection of traits.

Returns

bool

true when data source is considered valid, otherwise false.

Remarks

By default, data source is considered to be simple when it contains a single record set. In addition, it may only be decorated with common table expressions and a filter. Sorting, limit and offset traits are allowed as well, unless the IsUpdateOrDeleteLimitEnabled setting of the Options is disabled.

IsValidUpdateFromStatement(SqlDataSourceNode, in SqlDataSourceTraits)

Checks whether a data source of an SqlUpdateNode is considered valid for an UPDATE FROM statement.

[Pure]
protected virtual bool IsValidUpdateFromStatement(SqlDataSourceNode node, in SqlDataSourceTraits traits)

Parameters

node SqlDataSourceNode

Data source node to check.

traits SqlDataSourceTraits

Collection of traits.

Returns

bool

true when data source is considered valid, otherwise false.

Remarks

By default, IsUpdateFromEnabled setting of the Options must be enabled. Then, data source is considered to be valid when it contains exactly two record sets, and only with Inner or Cross join. In addition, it may only be decorated with common table expressions and a filter. Sorting, limit and offset traits are allowed as well, unless the IsUpdateOrDeleteLimitEnabled setting of the Options is disabled.

VisitAbsFunction(SqlAbsFunctionExpressionNode)

public override void VisitAbsFunction(SqlAbsFunctionExpressionNode node)

Parameters

node SqlAbsFunctionExpressionNode

VisitAddColumn(SqlAddColumnNode)

Visits an SqlAddColumnNode.

public override void VisitAddColumn(SqlAddColumnNode node)

Parameters

node SqlAddColumnNode

VisitAggregateFunctionArgumentsAndTraits(ReadOnlyArray<SqlExpressionNode>, SqlAggregateFunctionTraits)

Sequentially visits all arguments and traits of a simple SQL aggregate function node.

protected void VisitAggregateFunctionArgumentsAndTraits(ReadOnlyArray<SqlExpressionNode> arguments, SqlAggregateFunctionTraits traits)

Parameters

arguments ReadOnlyArray<SqlExpressionNode>

Collection of arguments to visit.

traits SqlAggregateFunctionTraits

Collection of traits to visit.

VisitAverageAggregateFunction(SqlAverageAggregateFunctionExpressionNode)

public override void VisitAverageAggregateFunction(SqlAverageAggregateFunctionExpressionNode node)

Parameters

node SqlAverageAggregateFunctionExpressionNode

VisitBeginTransaction(SqlBeginTransactionNode)

public override void VisitBeginTransaction(SqlBeginTransactionNode node)

Parameters

node SqlBeginTransactionNode

VisitBitwiseXor(SqlBitwiseXorExpressionNode)

public override void VisitBitwiseXor(SqlBitwiseXorExpressionNode node)

Parameters

node SqlBitwiseXorExpressionNode

VisitByteLengthFunction(SqlByteLengthFunctionExpressionNode)

public override void VisitByteLengthFunction(SqlByteLengthFunctionExpressionNode node)

Parameters

node SqlByteLengthFunctionExpressionNode

VisitCeilingFunction(SqlCeilingFunctionExpressionNode)

public override void VisitCeilingFunction(SqlCeilingFunctionExpressionNode node)

Parameters

node SqlCeilingFunctionExpressionNode

VisitCheckDefinition(SqlCheckDefinitionNode)

public override void VisitCheckDefinition(SqlCheckDefinitionNode node)

Parameters

node SqlCheckDefinitionNode

VisitColumnDefinition(SqlColumnDefinitionNode)

public override void VisitColumnDefinition(SqlColumnDefinitionNode node)

Parameters

node SqlColumnDefinitionNode

VisitCountAggregateFunction(SqlCountAggregateFunctionExpressionNode)

public override void VisitCountAggregateFunction(SqlCountAggregateFunctionExpressionNode node)

Parameters

node SqlCountAggregateFunctionExpressionNode

VisitCreateIndex(SqlCreateIndexNode)

Visits an SqlCreateIndexNode.

public override void VisitCreateIndex(SqlCreateIndexNode node)

Parameters

node SqlCreateIndexNode

VisitCreateTable(SqlCreateTableNode)

Visits an SqlCreateTableNode.

public override void VisitCreateTable(SqlCreateTableNode node)

Parameters

node SqlCreateTableNode

VisitCreateView(SqlCreateViewNode)

Visits an SqlCreateViewNode.

public override void VisitCreateView(SqlCreateViewNode node)

Parameters

node SqlCreateViewNode

VisitCumulativeDistributionWindowFunction(SqlCumulativeDistributionWindowFunctionExpressionNode)

public override void VisitCumulativeDistributionWindowFunction(SqlCumulativeDistributionWindowFunctionExpressionNode node)

Parameters

node SqlCumulativeDistributionWindowFunctionExpressionNode

VisitCurrentDateFunction(SqlCurrentDateFunctionExpressionNode)

public override void VisitCurrentDateFunction(SqlCurrentDateFunctionExpressionNode node)

Parameters

node SqlCurrentDateFunctionExpressionNode

VisitCurrentDateTimeFunction(SqlCurrentDateTimeFunctionExpressionNode)

public override void VisitCurrentDateTimeFunction(SqlCurrentDateTimeFunctionExpressionNode node)

Parameters

node SqlCurrentDateTimeFunctionExpressionNode

VisitCurrentTimeFunction(SqlCurrentTimeFunctionExpressionNode)

public override void VisitCurrentTimeFunction(SqlCurrentTimeFunctionExpressionNode node)

Parameters

node SqlCurrentTimeFunctionExpressionNode

VisitCurrentTimestampFunction(SqlCurrentTimestampFunctionExpressionNode)

public override void VisitCurrentTimestampFunction(SqlCurrentTimestampFunctionExpressionNode node)

Parameters

node SqlCurrentTimestampFunctionExpressionNode

VisitCurrentUtcDateTimeFunction(SqlCurrentUtcDateTimeFunctionExpressionNode)

public override void VisitCurrentUtcDateTimeFunction(SqlCurrentUtcDateTimeFunctionExpressionNode node)

Parameters

node SqlCurrentUtcDateTimeFunctionExpressionNode

VisitDataSourceAfterTraits(in SqlDataSourceTraits)

Visits all relevant SQL data source traits that should be at the end of an SQL statement.

protected override void VisitDataSourceAfterTraits(in SqlDataSourceTraits traits)

Parameters

traits SqlDataSourceTraits

Collection of traits.

VisitDeleteFrom(SqlDeleteFromNode)

Visits an SqlDeleteFromNode.

public override sealed void VisitDeleteFrom(SqlDeleteFromNode node)

Parameters

node SqlDeleteFromNode

VisitDeleteFromWithComplexDataSource(SqlDeleteFromNode, ChangeTargetInfo, in SqlDataSourceTraits)

Visits an SqlDeleteFromNode with a complex data source.

protected virtual void VisitDeleteFromWithComplexDataSource(SqlDeleteFromNode node, SqlNodeInterpreter.ChangeTargetInfo targetInfo, in SqlDataSourceTraits traits)

Parameters

node SqlDeleteFromNode

Delete from node to visit.

targetInfo SqlNodeInterpreter.ChangeTargetInfo

SqlNodeInterpreter.ChangeTargetInfo instance associated with the operation.

traits SqlDataSourceTraits

Collection of traits.

VisitDeleteFromWithSimpleDataSource(SqlDeleteFromNode, in SqlDataSourceTraits)

Visits an SqlDeleteFromNode with a simple data source.

protected virtual void VisitDeleteFromWithSimpleDataSource(SqlDeleteFromNode node, in SqlDataSourceTraits traits)

Parameters

node SqlDeleteFromNode

Delete from node to visit.

traits SqlDataSourceTraits

Collection of traits.

Remarks

VisitDenseRankWindowFunction(SqlDenseRankWindowFunctionExpressionNode)

public override void VisitDenseRankWindowFunction(SqlDenseRankWindowFunctionExpressionNode node)

Parameters

node SqlDenseRankWindowFunctionExpressionNode

VisitDropColumn(SqlDropColumnNode)

Visits an SqlDropColumnNode.

public override void VisitDropColumn(SqlDropColumnNode node)

Parameters

node SqlDropColumnNode

VisitDropIndex(SqlDropIndexNode)

Visits an SqlDropIndexNode.

public override void VisitDropIndex(SqlDropIndexNode node)

Parameters

node SqlDropIndexNode

VisitDropTable(SqlDropTableNode)

Visits an SqlDropTableNode.

public override void VisitDropTable(SqlDropTableNode node)

Parameters

node SqlDropTableNode

VisitDropView(SqlDropViewNode)

Visits an SqlDropViewNode.

public override void VisitDropView(SqlDropViewNode node)

Parameters

node SqlDropViewNode

VisitExtractDateFunction(SqlExtractDateFunctionExpressionNode)

public override void VisitExtractDateFunction(SqlExtractDateFunctionExpressionNode node)

Parameters

node SqlExtractDateFunctionExpressionNode

VisitExtractDayFunction(SqlExtractDayFunctionExpressionNode)

public override void VisitExtractDayFunction(SqlExtractDayFunctionExpressionNode node)

Parameters

node SqlExtractDayFunctionExpressionNode

VisitExtractTemporalUnitFunction(SqlExtractTemporalUnitFunctionExpressionNode)

public override void VisitExtractTemporalUnitFunction(SqlExtractTemporalUnitFunctionExpressionNode node)

Parameters

node SqlExtractTemporalUnitFunctionExpressionNode

VisitExtractTimeOfDayFunction(SqlExtractTimeOfDayFunctionExpressionNode)

public override void VisitExtractTimeOfDayFunction(SqlExtractTimeOfDayFunctionExpressionNode node)

Parameters

node SqlExtractTimeOfDayFunctionExpressionNode

VisitFirstValueWindowFunction(SqlFirstValueWindowFunctionExpressionNode)

public override void VisitFirstValueWindowFunction(SqlFirstValueWindowFunctionExpressionNode node)

Parameters

node SqlFirstValueWindowFunctionExpressionNode

VisitFloorFunction(SqlFloorFunctionExpressionNode)

public override void VisitFloorFunction(SqlFloorFunctionExpressionNode node)

Parameters

node SqlFloorFunctionExpressionNode

VisitForeignKeyDefinition(SqlForeignKeyDefinitionNode)

public override void VisitForeignKeyDefinition(SqlForeignKeyDefinitionNode node)

Parameters

node SqlForeignKeyDefinitionNode

VisitIndexOfFunction(SqlIndexOfFunctionExpressionNode)

public override void VisitIndexOfFunction(SqlIndexOfFunctionExpressionNode node)

Parameters

node SqlIndexOfFunctionExpressionNode

VisitInsertInto(SqlInsertIntoNode)

Visits an SqlInsertIntoNode.

public override sealed void VisitInsertInto(SqlInsertIntoNode node)

Parameters

node SqlInsertIntoNode

VisitInsertIntoFromCompoundQuery(SqlInsertIntoNode, SqlCompoundQueryExpressionNode)

Visits an SqlInsertIntoNode with source of SqlCompoundQueryExpressionNode type.

protected virtual void VisitInsertIntoFromCompoundQuery(SqlInsertIntoNode node, SqlCompoundQueryExpressionNode query)

Parameters

node SqlInsertIntoNode

Insert into node to visit.

query SqlCompoundQueryExpressionNode

Source query.

VisitInsertIntoFromDataSourceQuery(SqlInsertIntoNode, SqlDataSourceQueryExpressionNode)

Visits an SqlInsertIntoNode with source of SqlDataSourceQueryExpressionNode type.

protected virtual void VisitInsertIntoFromDataSourceQuery(SqlInsertIntoNode node, SqlDataSourceQueryExpressionNode query)

Parameters

node SqlInsertIntoNode

Insert into node to visit.

query SqlDataSourceQueryExpressionNode

Source query.

VisitInsertIntoFromGenericSource(SqlInsertIntoNode)

Visits an SqlInsertIntoNode with source of non-query type.

protected virtual void VisitInsertIntoFromGenericSource(SqlInsertIntoNode node)

Parameters

node SqlInsertIntoNode

Insert into node to visit.

VisitLagWindowFunction(SqlLagWindowFunctionExpressionNode)

public override void VisitLagWindowFunction(SqlLagWindowFunctionExpressionNode node)

Parameters

node SqlLagWindowFunctionExpressionNode

VisitLastIndexOfFunction(SqlLastIndexOfFunctionExpressionNode)

public override void VisitLastIndexOfFunction(SqlLastIndexOfFunctionExpressionNode node)

Parameters

node SqlLastIndexOfFunctionExpressionNode

VisitLastValueWindowFunction(SqlLastValueWindowFunctionExpressionNode)

public override void VisitLastValueWindowFunction(SqlLastValueWindowFunctionExpressionNode node)

Parameters

node SqlLastValueWindowFunctionExpressionNode

VisitLeadWindowFunction(SqlLeadWindowFunctionExpressionNode)

public override void VisitLeadWindowFunction(SqlLeadWindowFunctionExpressionNode node)

Parameters

node SqlLeadWindowFunctionExpressionNode

VisitLengthFunction(SqlLengthFunctionExpressionNode)

public override void VisitLengthFunction(SqlLengthFunctionExpressionNode node)

Parameters

node SqlLengthFunctionExpressionNode

VisitLimitTrait(SqlLimitTraitNode)

Visits an SqlLimitTraitNode.

public override void VisitLimitTrait(SqlLimitTraitNode node)

Parameters

node SqlLimitTraitNode

VisitLiteral(SqlLiteralNode)

Visits an SqlLiteralNode.

public override void VisitLiteral(SqlLiteralNode node)

Parameters

node SqlLiteralNode

VisitMaxAggregateFunction(SqlMaxAggregateFunctionExpressionNode)

public override void VisitMaxAggregateFunction(SqlMaxAggregateFunctionExpressionNode node)

Parameters

node SqlMaxAggregateFunctionExpressionNode

VisitMaxFunction(SqlMaxFunctionExpressionNode)

public override void VisitMaxFunction(SqlMaxFunctionExpressionNode node)

Parameters

node SqlMaxFunctionExpressionNode

VisitMinAggregateFunction(SqlMinAggregateFunctionExpressionNode)

public override void VisitMinAggregateFunction(SqlMinAggregateFunctionExpressionNode node)

Parameters

node SqlMinAggregateFunctionExpressionNode

VisitMinFunction(SqlMinFunctionExpressionNode)

public override void VisitMinFunction(SqlMinFunctionExpressionNode node)

Parameters

node SqlMinFunctionExpressionNode

VisitModulo(SqlModuloExpressionNode)

public override void VisitModulo(SqlModuloExpressionNode node)

Parameters

node SqlModuloExpressionNode

VisitNTileWindowFunction(SqlNTileWindowFunctionExpressionNode)

public override void VisitNTileWindowFunction(SqlNTileWindowFunctionExpressionNode node)

Parameters

node SqlNTileWindowFunctionExpressionNode

VisitNamedAggregateFunction(SqlNamedAggregateFunctionExpressionNode)

public override void VisitNamedAggregateFunction(SqlNamedAggregateFunctionExpressionNode node)

Parameters

node SqlNamedAggregateFunctionExpressionNode

VisitNewGuidFunction(SqlNewGuidFunctionExpressionNode)

public override void VisitNewGuidFunction(SqlNewGuidFunctionExpressionNode node)

Parameters

node SqlNewGuidFunctionExpressionNode

VisitNthValueWindowFunction(SqlNthValueWindowFunctionExpressionNode)

public override void VisitNthValueWindowFunction(SqlNthValueWindowFunctionExpressionNode node)

Parameters

node SqlNthValueWindowFunctionExpressionNode

VisitOffsetTrait(SqlOffsetTraitNode)

Visits an SqlOffsetTraitNode.

public override void VisitOffsetTrait(SqlOffsetTraitNode node)

Parameters

node SqlOffsetTraitNode

VisitOptionalLimitAndOffsetExpressions(SqlExpressionNode?, SqlExpressionNode?)

Visits optional SqlExpressionNode values representing limit and offset.

protected void VisitOptionalLimitAndOffsetExpressions(SqlExpressionNode? limit, SqlExpressionNode? offset)

Parameters

limit SqlExpressionNode

Limit value to visit.

offset SqlExpressionNode

Offset value to visit.

VisitParameter(SqlParameterNode)

Visits an SqlParameterNode.

public override void VisitParameter(SqlParameterNode node)

Parameters

node SqlParameterNode

VisitPowerFunction(SqlPowerFunctionExpressionNode)

public override void VisitPowerFunction(SqlPowerFunctionExpressionNode node)

Parameters

node SqlPowerFunctionExpressionNode

VisitPrimaryKeyDefinition(SqlPrimaryKeyDefinitionNode)

public override void VisitPrimaryKeyDefinition(SqlPrimaryKeyDefinitionNode node)

Parameters

node SqlPrimaryKeyDefinitionNode

VisitQueryAfterTraits(in SqlQueryTraits)

Visits all relevant SQL query traits that should be at the end of an SQL statement.

protected override void VisitQueryAfterTraits(in SqlQueryTraits traits)

Parameters

traits SqlQueryTraits

Collection of traits.

VisitRankWindowFunction(SqlRankWindowFunctionExpressionNode)

public override void VisitRankWindowFunction(SqlRankWindowFunctionExpressionNode node)

Parameters

node SqlRankWindowFunctionExpressionNode

VisitRenameColumn(SqlRenameColumnNode)

public override void VisitRenameColumn(SqlRenameColumnNode node)

Parameters

node SqlRenameColumnNode

VisitRenameTable(SqlRenameTableNode)

Visits an SqlRenameTableNode.

public override void VisitRenameTable(SqlRenameTableNode node)

Parameters

node SqlRenameTableNode

VisitReplaceFunction(SqlReplaceFunctionExpressionNode)

public override void VisitReplaceFunction(SqlReplaceFunctionExpressionNode node)

Parameters

node SqlReplaceFunctionExpressionNode

VisitReverseFunction(SqlReverseFunctionExpressionNode)

public override void VisitReverseFunction(SqlReverseFunctionExpressionNode node)

Parameters

node SqlReverseFunctionExpressionNode

VisitRoundFunction(SqlRoundFunctionExpressionNode)

public override void VisitRoundFunction(SqlRoundFunctionExpressionNode node)

Parameters

node SqlRoundFunctionExpressionNode

VisitRowNumberWindowFunction(SqlRowNumberWindowFunctionExpressionNode)

public override void VisitRowNumberWindowFunction(SqlRowNumberWindowFunctionExpressionNode node)

Parameters

node SqlRowNumberWindowFunctionExpressionNode

VisitSignFunction(SqlSignFunctionExpressionNode)

public override void VisitSignFunction(SqlSignFunctionExpressionNode node)

Parameters

node SqlSignFunctionExpressionNode

VisitSimpleAggregateFunction(string, SqlAggregateFunctionExpressionNode)

Visits a simple SQL aggregate function node.

protected void VisitSimpleAggregateFunction(string functionName, SqlAggregateFunctionExpressionNode node)

Parameters

functionName string

Name of the aggregate function.

node SqlAggregateFunctionExpressionNode

SQL aggregate function expression node.

VisitSimplifiedUpdateFrom(SqlUpdateNode, ChangeTargetInfo, in SqlDataSourceTraits)

Visits an SqlUpdateNode using an UPDATE FROM statement simplified from a complex data source with complex value assignments.

protected virtual void VisitSimplifiedUpdateFrom(SqlUpdateNode node, SqlNodeInterpreter.ChangeTargetInfo targetInfo, in SqlDataSourceTraits traits)

Parameters

node SqlUpdateNode

Update node to visit.

targetInfo SqlNodeInterpreter.ChangeTargetInfo

SqlNodeInterpreter.ChangeTargetInfo instance associated with the operation.

traits SqlDataSourceTraits

Collection of traits.

VisitSquareRootFunction(SqlSquareRootFunctionExpressionNode)

public override void VisitSquareRootFunction(SqlSquareRootFunctionExpressionNode node)

Parameters

node SqlSquareRootFunctionExpressionNode

VisitStringConcatAggregateFunction(SqlStringConcatAggregateFunctionExpressionNode)

public override void VisitStringConcatAggregateFunction(SqlStringConcatAggregateFunctionExpressionNode node)

Parameters

node SqlStringConcatAggregateFunctionExpressionNode

VisitSubstringFunction(SqlSubstringFunctionExpressionNode)

public override void VisitSubstringFunction(SqlSubstringFunctionExpressionNode node)

Parameters

node SqlSubstringFunctionExpressionNode

VisitSumAggregateFunction(SqlSumAggregateFunctionExpressionNode)

public override void VisitSumAggregateFunction(SqlSumAggregateFunctionExpressionNode node)

Parameters

node SqlSumAggregateFunctionExpressionNode

VisitTemporalAddFunction(SqlTemporalAddFunctionExpressionNode)

public override void VisitTemporalAddFunction(SqlTemporalAddFunctionExpressionNode node)

Parameters

node SqlTemporalAddFunctionExpressionNode

VisitTemporalDiffFunction(SqlTemporalDiffFunctionExpressionNode)

public override void VisitTemporalDiffFunction(SqlTemporalDiffFunctionExpressionNode node)

Parameters

node SqlTemporalDiffFunctionExpressionNode

VisitToLowerFunction(SqlToLowerFunctionExpressionNode)

public override void VisitToLowerFunction(SqlToLowerFunctionExpressionNode node)

Parameters

node SqlToLowerFunctionExpressionNode

VisitToUpperFunction(SqlToUpperFunctionExpressionNode)

public override void VisitToUpperFunction(SqlToUpperFunctionExpressionNode node)

Parameters

node SqlToUpperFunctionExpressionNode

VisitTrimEndFunction(SqlTrimEndFunctionExpressionNode)

public override void VisitTrimEndFunction(SqlTrimEndFunctionExpressionNode node)

Parameters

node SqlTrimEndFunctionExpressionNode

VisitTrimFunction(SqlTrimFunctionExpressionNode)

public override void VisitTrimFunction(SqlTrimFunctionExpressionNode node)

Parameters

node SqlTrimFunctionExpressionNode

VisitTrimStartFunction(SqlTrimStartFunctionExpressionNode)

public override void VisitTrimStartFunction(SqlTrimStartFunctionExpressionNode node)

Parameters

node SqlTrimStartFunctionExpressionNode

VisitTruncate(SqlTruncateNode)

Visits an SqlTruncateNode.

public override void VisitTruncate(SqlTruncateNode node)

Parameters

node SqlTruncateNode

VisitTruncateFunction(SqlTruncateFunctionExpressionNode)

public override void VisitTruncateFunction(SqlTruncateFunctionExpressionNode node)

Parameters

node SqlTruncateFunctionExpressionNode

VisitTypeCast(SqlTypeCastExpressionNode)

public override void VisitTypeCast(SqlTypeCastExpressionNode node)

Parameters

node SqlTypeCastExpressionNode

VisitUpdate(SqlUpdateNode)

Visits an SqlUpdateNode.

public override sealed void VisitUpdate(SqlUpdateNode node)

Parameters

node SqlUpdateNode

VisitUpdateFrom(SqlUpdateNode, in SqlDataSourceTraits)

Visits an SqlUpdateNode using an UPDATE FROM statement.

protected virtual void VisitUpdateFrom(SqlUpdateNode node, in SqlDataSourceTraits traits)

Parameters

node SqlUpdateNode

Update node to visit.

traits SqlDataSourceTraits

Collection of traits.

Remarks

VisitUpdateWithComplexDataSourceAndComplexAssignments(SqlUpdateNode, ChangeTargetInfo, ReadOnlySpan<int>)

Visits an SqlUpdateNode simplified from a complex data source with complex value assignments.

protected virtual void VisitUpdateWithComplexDataSourceAndComplexAssignments(SqlUpdateNode node, SqlNodeInterpreter.ChangeTargetInfo targetInfo, ReadOnlySpan<int> indexesOfComplexAssignments)

Parameters

node SqlUpdateNode

Update node to visit.

targetInfo SqlNodeInterpreter.ChangeTargetInfo

SqlNodeInterpreter.ChangeTargetInfo instance associated with the operation.

indexesOfComplexAssignments ReadOnlySpan<int>

Collection of 0-based indexes of all complex value assignments.

VisitUpdateWithComplexDataSourceAndSimpleAssignments(SqlUpdateNode, ChangeTargetInfo, in SqlDataSourceTraits)

Visits an SqlUpdateNode with a complex data source with simple value assignments.

protected virtual void VisitUpdateWithComplexDataSourceAndSimpleAssignments(SqlUpdateNode node, SqlNodeInterpreter.ChangeTargetInfo targetInfo, in SqlDataSourceTraits traits)

Parameters

node SqlUpdateNode

Update node to visit.

targetInfo SqlNodeInterpreter.ChangeTargetInfo

SqlNodeInterpreter.ChangeTargetInfo instance associated with the operation.

traits SqlDataSourceTraits

Collection of traits.

VisitUpdateWithSimpleDataSource(SqlUpdateNode, in SqlDataSourceTraits)

Visits an SqlUpdateNode with a simple data source.

protected virtual void VisitUpdateWithSimpleDataSource(SqlUpdateNode node, in SqlDataSourceTraits traits)

Parameters

node SqlUpdateNode

Update node to visit.

traits SqlDataSourceTraits

Collection of traits.

Remarks

VisitUpsert(SqlUpsertNode)

Visits an SqlUpsertNode.

public override sealed void VisitUpsert(SqlUpsertNode node)

Parameters

node SqlUpsertNode

VisitUpsertFromCompoundQuery(SqlUpsertNode, ReadOnlyArray<SqlDataFieldNode>, SqlCompoundQueryExpressionNode)

Visits an SqlUpsertNode with source of SqlCompoundQueryExpressionNode type.

protected virtual void VisitUpsertFromCompoundQuery(SqlUpsertNode node, ReadOnlyArray<SqlDataFieldNode> conflictTarget, SqlCompoundQueryExpressionNode query)

Parameters

node SqlUpsertNode

Upsert node to visit.

conflictTarget ReadOnlyArray<SqlDataFieldNode>

Collection of data fields from the table that define the insertion conflict target.

query SqlCompoundQueryExpressionNode

Source query.

VisitUpsertFromDataSourceQuery(SqlUpsertNode, ReadOnlyArray<SqlDataFieldNode>, SqlDataSourceQueryExpressionNode)

Visits an SqlUpsertNode with source of SqlDataSourceQueryExpressionNode type.

protected virtual void VisitUpsertFromDataSourceQuery(SqlUpsertNode node, ReadOnlyArray<SqlDataFieldNode> conflictTarget, SqlDataSourceQueryExpressionNode query)

Parameters

node SqlUpsertNode

Upsert node to visit.

conflictTarget ReadOnlyArray<SqlDataFieldNode>

Collection of data fields from the table that define the insertion conflict target.

query SqlDataSourceQueryExpressionNode

Source query.

VisitUpsertFromGenericSource(SqlUpsertNode, ReadOnlyArray<SqlDataFieldNode>)

Visits an SqlUpsertNode with source of non-query type.

protected virtual void VisitUpsertFromGenericSource(SqlUpsertNode node, ReadOnlyArray<SqlDataFieldNode> conflictTarget)

Parameters

node SqlUpsertNode

Upsert node to visit.

conflictTarget ReadOnlyArray<SqlDataFieldNode>

Collection of data fields from the table that define the insertion conflict target.