Class SqlSchemaScopeExpressionValidator
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
SqlSchemaBuilderSqlSchemaBuilder instance that defines available objects.
Properties
ReferencedObjects
Collection of all referenced objects.
protected Dictionary<ulong, SqlObjectBuilder>.ValueCollection ReferencedObjects { get; }
Property Value
Schema
SqlSchemaBuilder instance that defines available objects.
public SqlSchemaBuilder Schema { get; }
Property Value
Methods
AddReferencedObject(SqlSchemaBuilder, SqlObjectBuilder)
Adds the provided obj
, and its schema
, to ReferencedObjects.
protected void AddReferencedObject(SqlSchemaBuilder schema, SqlObjectBuilder obj)
Parameters
schema
SqlSchemaBuilderSchema of the object to add.
obj
SqlObjectBuilderObject 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
GetReferencedObjects()
Creates a new array from ReferencedObjects.
[Pure]
public SqlObjectBuilder[] GetReferencedObjects()
Returns
- SqlObjectBuilder[]
New array from ReferencedObjects.
VisitColumnBuilder(SqlColumnBuilderNode)
Visits an 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)
Visits an SqlRecordSetNode of an SqlDataFieldNode.
public void VisitDataFieldRecordSet(SqlRecordSetNode node)
Parameters
node
SqlRecordSetNodeNode to visit.
VisitQueryDataField(SqlQueryDataFieldNode)
Visits an SqlQueryDataFieldNode.
public override void VisitQueryDataField(SqlQueryDataFieldNode node)
Parameters
VisitRawDataField(SqlRawDataFieldNode)
Visits an SqlRawDataFieldNode.
public override void VisitRawDataField(SqlRawDataFieldNode node)
Parameters
node
SqlRawDataFieldNode
VisitTableBuilder(SqlTableBuilderNode)
Visits an 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.