Table of Contents

Class SqlSchemaScopeExpressionValidator

Namespace
LfrlAnvil.Sql.Internal
Assembly
LfrlAnvil.Sql.Core.dll

Represents an object capable of recursive traversal over an SQL syntax tree that is responsible for checking the validity of SQL syntax trees in the context of a whole database e.g. view source. This validator also tracks all objects referenced by a syntax tree.

public class SqlSchemaScopeExpressionValidator : SqlExpressionValidator, ISqlNodeVisitor
Inheritance
SqlSchemaScopeExpressionValidator
Implements
Inherited Members
Extension Methods

Constructors

SqlSchemaScopeExpressionValidator(SqlSchemaBuilder)

Creates a new SqlSchemaScopeExpressionValidator instance.

protected SqlSchemaScopeExpressionValidator(SqlSchemaBuilder schema)

Parameters

schema SqlSchemaBuilder

SqlSchemaBuilder instance that defines available objects.

Properties

ReferencedObjects

Collection of all referenced objects.

protected Dictionary<ulong, SqlObjectBuilder>.ValueCollection ReferencedObjects { get; }

Property Value

Dictionary<ulong, SqlObjectBuilder>.ValueCollection

Schema

SqlSchemaBuilder instance that defines available objects.

public SqlSchemaBuilder Schema { get; }

Property Value

SqlSchemaBuilder

Methods

AddReferencedObject(SqlSchemaBuilder, SqlObjectBuilder)

Adds the provided obj, and its schema, to ReferencedObjects.

protected void AddReferencedObject(SqlSchemaBuilder schema, SqlObjectBuilder obj)

Parameters

schema SqlSchemaBuilder

Schema of the object to add.

obj SqlObjectBuilder

Object to add.

Remarks

Provided schema will only be added to ReferencedObjects when it is not Schema.

GetErrors()

Returns a collection of all accumulated errors.

[Pure]
public virtual Chain<string> GetErrors()

Returns

Chain<string>

Collection of all accumulated errors.

GetReferencedObjects()

Creates a new array from ReferencedObjects.

[Pure]
public SqlObjectBuilder[] GetReferencedObjects()

Returns

SqlObjectBuilder[]

New array from ReferencedObjects.

VisitColumnBuilder(SqlColumnBuilderNode)

public override void VisitColumnBuilder(SqlColumnBuilderNode node)

Parameters

node SqlColumnBuilderNode

Remarks

Node is added to the ForbiddenNodes collection only when it does not belong to the Database of the Schema.

VisitDataFieldRecordSet(SqlRecordSetNode)

public void VisitDataFieldRecordSet(SqlRecordSetNode node)

Parameters

node SqlRecordSetNode

Node to visit.

VisitQueryDataField(SqlQueryDataFieldNode)

public override void VisitQueryDataField(SqlQueryDataFieldNode node)

Parameters

node SqlQueryDataFieldNode

VisitRawDataField(SqlRawDataFieldNode)

public override void VisitRawDataField(SqlRawDataFieldNode node)

Parameters

node SqlRawDataFieldNode

VisitTableBuilder(SqlTableBuilderNode)

public override void VisitTableBuilder(SqlTableBuilderNode node)

Parameters

node SqlTableBuilderNode

Remarks

Node is added to the ForbiddenNodes collection only when it does not belong to the Database of the Schema.

VisitViewBuilder(SqlViewBuilderNode)

Visits an SqlViewBuilderNode.

public override void VisitViewBuilder(SqlViewBuilderNode node)

Parameters

node SqlViewBuilderNode

Remarks

Node is added to the ForbiddenNodes collection only when it does not belong to the Database of the Schema.