Class BasicSqlBuilder
- Namespace
- LinqToDB.SqlProvider
- Assembly
- linq2db.dll
public abstract class BasicSqlBuilder : ISqlBuilder
- Inheritance
-
BasicSqlBuilder
- Implements
- Derived
- Extension Methods
Constructors
BasicSqlBuilder(IDataProvider?, MappingSchema, DataOptions, ISqlOptimizer, SqlProviderFlags)
protected BasicSqlBuilder(IDataProvider? provider, MappingSchema mappingSchema, DataOptions dataOptions, ISqlOptimizer sqlOptimizer, SqlProviderFlags sqlProviderFlags)
Parameters
providerIDataProvidermappingSchemaMappingSchemadataOptionsDataOptionssqlOptimizerISqlOptimizersqlProviderFlagsSqlProviderFlags
BasicSqlBuilder(BasicSqlBuilder)
protected BasicSqlBuilder(BasicSqlBuilder parentBuilder)
Parameters
parentBuilderBasicSqlBuilder
Fields
BuildExpressionContext
protected object? BuildExpressionContext
Field Value
BuildStep
protected BasicSqlBuilder.Step BuildStep
Field Value
DataProvider
protected IDataProvider? DataProvider
Field Value
EndLine
protected static readonly char[] EndLine
Field Value
- char[]
Indent
protected int Indent
Field Value
SkipAlias
protected bool SkipAlias
Field Value
SqlOptimizer
protected ISqlOptimizer SqlOptimizer
Field Value
Statement
protected SqlStatement Statement
Field Value
Properties
Comma
End-of-line comma separator. Default value:
","
protected virtual string Comma { get; }
Property Value
CteFirst
Identifies CTE clause location:
CteFirst = true(default): WITH clause goes first in queryCteFirst = false: WITH clause goes before SELECT
public virtual bool CteFirst { get; }
Property Value
DataOptions
public DataOptions DataOptions { get; }
Property Value
DeletedOutputTable
protected virtual string DeletedOutputTable { get; }
Property Value
FakeTable
If IsValuesSyntaxSupported set to false and provider doesn't support SELECTs without FROM clause, this property should contain name of table (or equivalent SQL) with single record. IMPORTANT: as this property could return SQL, we don't escape it, so it should contain only valid SQL/identifiers.
protected virtual string? FakeTable { get; }
Property Value
FakeTableSchema
If IsValuesSyntaxSupported set to false and provider doesn't support SELECTs without FROM clause, this property could contain name of schema for table with single record. Returned name should be already escaped if escaping required.
protected virtual string? FakeTableSchema { get; }
Property Value
InlineComma
Inline comma separator. Default value:
", "
protected virtual string InlineComma { get; }
Property Value
InsertedOutputTable
protected virtual string InsertedOutputTable { get; }
Property Value
IsCteColumnListSupported
protected virtual bool IsCteColumnListSupported { get; }
Property Value
IsEmptyValuesSourceSupported
If true, builder will generate command for empty enumerable source; Otherwise exception will be generated.
protected virtual bool IsEmptyValuesSourceSupported { get; }
Property Value
IsNestedJoinParenthesisRequired
public virtual bool IsNestedJoinParenthesisRequired { get; }
Property Value
IsNestedJoinSupported
public virtual bool IsNestedJoinSupported { get; }
Property Value
IsRecursiveCteKeywordRequired
protected virtual bool IsRecursiveCteKeywordRequired { get; }
Property Value
IsValuesSyntaxSupported
If true, provider supports list of VALUES as a source element of merge command.
protected virtual bool IsValuesSyntaxSupported { get; }
Property Value
MappingSchema
public MappingSchema MappingSchema { get; }
Property Value
Name
public virtual string Name { get; }
Property Value
OffsetFirst
protected virtual bool OffsetFirst { get; }
Property Value
OpenParens
End-of-line open parentheses element. Default value:
"("
protected virtual string OpenParens { get; }
Property Value
OptimizationContext
public OptimizationContext OptimizationContext { get; protected set; }
Property Value
OutputKeyword
protected virtual string OutputKeyword { get; }
Property Value
QueryName
public string? QueryName { get; set; }
Property Value
RequiresConstantColumnAliases
If true, provider require column aliases for each column. E.g. as table_alias (column_alias1, column_alias2).
protected virtual bool RequiresConstantColumnAliases { get; }
Property Value
SkipFirst
protected virtual bool SkipFirst { get; }
Property Value
SkipFormat
protected virtual string? SkipFormat { get; }
Property Value
SqlProviderFlags
public SqlProviderFlags SqlProviderFlags { get; }
Property Value
StringBuilder
public StringBuilder StringBuilder { get; set; }
Property Value
SupportsBooleanInColumn
protected virtual bool SupportsBooleanInColumn { get; }
Property Value
SupportsColumnAliasesInSource
If true, provider supports column aliases specification after table alias. E.g. as table_alias (column_alias1, column_alias2).
protected virtual bool SupportsColumnAliasesInSource { get; }
Property Value
SupportsNullInColumn
protected virtual bool SupportsNullInColumn { get; }
Property Value
TableIDs
public Dictionary<string, TableIDInfo>? TableIDs { get; set; }
Property Value
TablePath
public string? TablePath { get; set; }
Property Value
TakePercent
protected virtual string TakePercent { get; }
Property Value
TakeTies
protected virtual string TakeTies { get; }
Property Value
UpdateKeyword
protected virtual string UpdateKeyword { get; }
Property Value
UpdateSetKeyword
protected virtual string UpdateSetKeyword { get; }
Property Value
ValueToSqlConverter
protected ValueToSqlConverter ValueToSqlConverter { get; }
Property Value
WrapJoinCondition
True if it is needed to wrap join condition with ()
public virtual bool WrapJoinCondition { get; }
Property Value
Examples
INNER JOIN Table2 t2 ON (t1.Value = t2.Value)
Methods
AlternativeGetSelectedColumns(SelectQuery, IEnumerable<SqlColumn>)
protected IEnumerable<SqlColumn> AlternativeGetSelectedColumns(SelectQuery selectQuery, IEnumerable<SqlColumn> columns)
Parameters
selectQuerySelectQuerycolumnsIEnumerable<SqlColumn>
Returns
AppendIndent()
protected StringBuilder AppendIndent()
Returns
ApplyQueryHints(string, IReadOnlyCollection<string>)
public string ApplyQueryHints(string sqlText, IReadOnlyCollection<string> queryHints)
Parameters
sqlTextstringqueryHintsIReadOnlyCollection<string>
Returns
BuildAlterDeleteClause(SqlDeleteStatement)
protected virtual void BuildAlterDeleteClause(SqlDeleteStatement deleteStatement)
Parameters
deleteStatementSqlDeleteStatement
BuildBinaryExpression(SqlBinaryExpression)
protected virtual void BuildBinaryExpression(SqlBinaryExpression expr)
Parameters
exprSqlBinaryExpression
BuildColumnExpression(SelectQuery?, ISqlExpression, string?, ref bool)
protected virtual void BuildColumnExpression(SelectQuery? selectQuery, ISqlExpression expr, string? alias, ref bool addAlias)
Parameters
selectQuerySelectQueryexprISqlExpressionaliasstringaddAliasbool
BuildColumns(SelectQuery)
protected virtual void BuildColumns(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildCommand(SqlStatement, int)
protected virtual void BuildCommand(SqlStatement statement, int commandNumber)
Parameters
statementSqlStatementcommandNumberint
BuildCreateTableCommand(SqlTable)
protected virtual void BuildCreateTableCommand(SqlTable table)
Parameters
tableSqlTable
BuildCreateTableFieldType(SqlField)
protected virtual void BuildCreateTableFieldType(SqlField field)
Parameters
fieldSqlField
BuildCreateTableIdentityAttribute1(SqlField)
protected virtual void BuildCreateTableIdentityAttribute1(SqlField field)
Parameters
fieldSqlField
BuildCreateTableIdentityAttribute2(SqlField)
protected virtual void BuildCreateTableIdentityAttribute2(SqlField field)
Parameters
fieldSqlField
BuildCreateTableNullAttribute(SqlField, DefaultNullable)
protected virtual void BuildCreateTableNullAttribute(SqlField field, DefaultNullable defaultNullable)
Parameters
fieldSqlFielddefaultNullableDefaultNullable
BuildCreateTablePrimaryKey(SqlCreateTableStatement, string, IEnumerable<string>)
protected virtual void BuildCreateTablePrimaryKey(SqlCreateTableStatement createTable, string pkName, IEnumerable<string> fieldNames)
Parameters
createTableSqlCreateTableStatementpkNamestringfieldNamesIEnumerable<string>
BuildCreateTableStatement(SqlCreateTableStatement)
protected virtual void BuildCreateTableStatement(SqlCreateTableStatement createTable)
Parameters
createTableSqlCreateTableStatement
BuildCteBody(SelectQuery)
protected virtual void BuildCteBody(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildDataType(SqlDataType, bool, bool)
protected void BuildDataType(SqlDataType type, bool forCreateTable, bool canBeNull)
Parameters
typeSqlDataTypeforCreateTableboolcanBeNullboolType could store
NULLvalues (could be used for column table type generation or for databases with explicit typee nullability like ClickHouse).
BuildDataType(StringBuilder, SqlDataType)
Appends an SqlDataType's String to a provided StringBuilder
public StringBuilder BuildDataType(StringBuilder sb, SqlDataType dataType)
Parameters
sbStringBuilderdataTypeSqlDataType
Returns
- StringBuilder
The stringbuilder with the type information appended.
BuildDataTypeFromDataType(SqlDataType, bool, bool)
protected virtual void BuildDataTypeFromDataType(SqlDataType type, bool forCreateTable, bool canBeNull)
Parameters
typeSqlDataTypeforCreateTableboolcanBeNullboolType could store
NULLvalues (could be used for column table type generation or for databases with explicit typee nullability like ClickHouse).
BuildDeleteClause(SqlDeleteStatement)
protected virtual void BuildDeleteClause(SqlDeleteStatement deleteStatement)
Parameters
deleteStatementSqlDeleteStatement
BuildDeleteFromClause(SqlDeleteStatement)
protected virtual void BuildDeleteFromClause(SqlDeleteStatement deleteStatement)
Parameters
deleteStatementSqlDeleteStatement
BuildDeleteQuery(SqlDeleteStatement)
protected virtual void BuildDeleteQuery(SqlDeleteStatement deleteStatement)
Parameters
deleteStatementSqlDeleteStatement
BuildDeleteQuery2(SqlDeleteStatement)
protected void BuildDeleteQuery2(SqlDeleteStatement deleteStatement)
Parameters
deleteStatementSqlDeleteStatement
BuildDropTableStatement(SqlDropTableStatement)
protected virtual void BuildDropTableStatement(SqlDropTableStatement dropTable)
Parameters
dropTableSqlDropTableStatement
BuildDropTableStatementIfExists(SqlDropTableStatement)
protected void BuildDropTableStatementIfExists(SqlDropTableStatement dropTable)
Parameters
dropTableSqlDropTableStatement
BuildEmptyInsert(SqlInsertClause)
protected virtual void BuildEmptyInsert(SqlInsertClause insertClause)
Parameters
insertClauseSqlInsertClause
BuildEmptyValues(SqlValuesTable)
protected void BuildEmptyValues(SqlValuesTable valuesTable)
Parameters
valuesTableSqlValuesTable
BuildEndCreateTableStatement(SqlCreateTableStatement)
protected virtual void BuildEndCreateTableStatement(SqlCreateTableStatement createTable)
Parameters
createTableSqlCreateTableStatement
BuildExprExprPredicate(ExprExpr)
protected virtual void BuildExprExprPredicate(SqlPredicate.ExprExpr expr)
Parameters
exprSqlPredicate.ExprExpr
BuildExprExprPredicateOperator(ExprExpr)
protected virtual void BuildExprExprPredicateOperator(SqlPredicate.ExprExpr expr)
Parameters
exprSqlPredicate.ExprExpr
BuildExpression(ISqlExpression)
protected StringBuilder BuildExpression(ISqlExpression expr)
Parameters
exprISqlExpression
Returns
BuildExpression(ISqlExpression, bool, bool, bool)
public void BuildExpression(ISqlExpression expr, bool buildTableName, bool checkParentheses, bool throwExceptionIfTableNotFound = true)
Parameters
exprISqlExpressionbuildTableNameboolcheckParenthesesboolthrowExceptionIfTableNotFoundbool
BuildExpression(ISqlExpression, bool, bool, string?, ref bool, bool)
protected virtual StringBuilder BuildExpression(ISqlExpression expr, bool buildTableName, bool checkParentheses, string? alias, ref bool addAlias, bool throwExceptionIfTableNotFound = true)
Parameters
exprISqlExpressionbuildTableNameboolcheckParenthesesboolaliasstringaddAliasboolthrowExceptionIfTableNotFoundbool
Returns
BuildExpression(int, ISqlExpression)
protected void BuildExpression(int precedence, ISqlExpression expr)
Parameters
precedenceintexprISqlExpression
BuildExpressionForOrderBy(ISqlExpression)
protected virtual void BuildExpressionForOrderBy(ISqlExpression expr)
Parameters
exprISqlExpression
BuildFakeTableName()
protected virtual bool BuildFakeTableName()
Returns
BuildFieldTableAlias(SqlField)
Used to disable field table name (alias) generation.
protected virtual bool BuildFieldTableAlias(SqlField field)
Parameters
fieldSqlField
Returns
BuildFromClause(SqlStatement, SelectQuery)
protected virtual void BuildFromClause(SqlStatement statement, SelectQuery selectQuery)
Parameters
statementSqlStatementselectQuerySelectQuery
BuildFromExtensions(SelectQuery)
protected virtual void BuildFromExtensions(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildFunction(SqlFunction)
protected virtual void BuildFunction(SqlFunction func)
Parameters
funcSqlFunction
BuildGetIdentity(SqlInsertClause)
protected virtual void BuildGetIdentity(SqlInsertClause insertClause)
Parameters
insertClauseSqlInsertClause
BuildGroupByBody(GroupingType, List<ISqlExpression>)
protected virtual void BuildGroupByBody(GroupingType groupingType, List<ISqlExpression> items)
Parameters
groupingTypeGroupingTypeitemsList<ISqlExpression>
BuildGroupByClause(SelectQuery)
protected virtual void BuildGroupByClause(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildHavingClause(SelectQuery)
protected virtual void BuildHavingClause(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildInsertClause(SqlStatement, SqlInsertClause, bool)
protected void BuildInsertClause(SqlStatement statement, SqlInsertClause insertClause, bool addAlias)
Parameters
statementSqlStatementinsertClauseSqlInsertClauseaddAliasbool
BuildInsertClause(SqlStatement, SqlInsertClause, string?, bool, bool)
protected virtual void BuildInsertClause(SqlStatement statement, SqlInsertClause insertClause, string? insertText, bool appendTableName, bool addAlias)
Parameters
statementSqlStatementinsertClauseSqlInsertClauseinsertTextstringappendTableNamebooladdAliasbool
BuildInsertOrUpdateQuery(SqlInsertOrUpdateStatement)
protected virtual void BuildInsertOrUpdateQuery(SqlInsertOrUpdateStatement insertOrUpdate)
Parameters
insertOrUpdateSqlInsertOrUpdateStatement
BuildInsertOrUpdateQueryAsMerge(SqlInsertOrUpdateStatement, string?)
protected virtual void BuildInsertOrUpdateQueryAsMerge(SqlInsertOrUpdateStatement insertOrUpdate, string? fromDummyTable)
Parameters
insertOrUpdateSqlInsertOrUpdateStatementfromDummyTablestring
BuildInsertOrUpdateQueryAsUpdateInsert(SqlInsertOrUpdateStatement)
protected void BuildInsertOrUpdateQueryAsUpdateInsert(SqlInsertOrUpdateStatement insertOrUpdate)
Parameters
insertOrUpdateSqlInsertOrUpdateStatement
BuildInsertQuery(SqlStatement, SqlInsertClause, bool)
protected virtual void BuildInsertQuery(SqlStatement statement, SqlInsertClause insertClause, bool addAlias)
Parameters
statementSqlStatementinsertClauseSqlInsertClauseaddAliasbool
BuildInsertQuery2(SqlStatement, SqlInsertClause, bool)
protected void BuildInsertQuery2(SqlStatement statement, SqlInsertClause insertClause, bool addAlias)
Parameters
statementSqlStatementinsertClauseSqlInsertClauseaddAliasbool
BuildIsDistinctPredicate(IsDistinct)
protected virtual void BuildIsDistinctPredicate(SqlPredicate.IsDistinct expr)
Parameters
exprSqlPredicate.IsDistinct
BuildIsDistinctPredicateFallback(IsDistinct)
protected void BuildIsDistinctPredicateFallback(SqlPredicate.IsDistinct expr)
Parameters
exprSqlPredicate.IsDistinct
BuildJoinTable(SelectQuery, SqlJoinedTable, ref int)
protected void BuildJoinTable(SelectQuery selectQuery, SqlJoinedTable join, ref int joinCounter)
Parameters
selectQuerySelectQueryjoinSqlJoinedTablejoinCounterint
BuildJoinType(SqlJoinedTable, SqlSearchCondition)
protected virtual bool BuildJoinType(SqlJoinedTable join, SqlSearchCondition condition)
Parameters
joinSqlJoinedTableconditionSqlSearchCondition
Returns
BuildLikePredicate(Like)
protected virtual void BuildLikePredicate(SqlPredicate.Like predicate)
Parameters
predicateSqlPredicate.Like
BuildMergeInto(SqlMergeStatement)
protected virtual void BuildMergeInto(SqlMergeStatement merge)
Parameters
mergeSqlMergeStatement
BuildMergeOn(SqlMergeStatement)
protected virtual void BuildMergeOn(SqlMergeStatement mergeStatement)
Parameters
mergeStatementSqlMergeStatement
BuildMergeOperationDelete(SqlMergeOperationClause)
protected virtual void BuildMergeOperationDelete(SqlMergeOperationClause operation)
Parameters
operationSqlMergeOperationClause
BuildMergeOperationDeleteBySource(SqlMergeOperationClause)
protected virtual void BuildMergeOperationDeleteBySource(SqlMergeOperationClause operation)
Parameters
operationSqlMergeOperationClause
BuildMergeOperationInsert(SqlMergeOperationClause)
protected virtual void BuildMergeOperationInsert(SqlMergeOperationClause operation)
Parameters
operationSqlMergeOperationClause
BuildMergeOperationUpdate(SqlMergeOperationClause)
protected virtual void BuildMergeOperationUpdate(SqlMergeOperationClause operation)
Parameters
operationSqlMergeOperationClause
BuildMergeOperationUpdateBySource(SqlMergeOperationClause)
protected virtual void BuildMergeOperationUpdateBySource(SqlMergeOperationClause operation)
Parameters
operationSqlMergeOperationClause
BuildMergeOperationUpdateWithDelete(SqlMergeOperationClause)
protected virtual void BuildMergeOperationUpdateWithDelete(SqlMergeOperationClause operation)
Parameters
operationSqlMergeOperationClause
BuildMergeSourceQuery(SqlTableLikeSource)
protected virtual void BuildMergeSourceQuery(SqlTableLikeSource mergeSource)
Parameters
mergeSourceSqlTableLikeSource
BuildMergeStatement(SqlMergeStatement)
protected virtual void BuildMergeStatement(SqlMergeStatement merge)
Parameters
mergeSqlMergeStatement
BuildMergeTerminator(SqlMergeStatement)
Allows to add text after generated merge command. E.g. to specify command terminator if provider requires it.
protected virtual void BuildMergeTerminator(SqlMergeStatement merge)
Parameters
mergeSqlMergeStatement
BuildMultiInsertQuery(SqlMultiInsertStatement)
protected virtual void BuildMultiInsertQuery(SqlMultiInsertStatement statement)
Parameters
statementSqlMultiInsertStatement
BuildObjectName(StringBuilder, SqlObjectName, ConvertType, bool, TableOptions, bool)
Writes database object name into provided StringBuilder instance.
public virtual StringBuilder BuildObjectName(StringBuilder sb, SqlObjectName name, ConvertType objectType, bool escape, TableOptions tableOptions, bool withoutSuffix = false)
Parameters
sbStringBuilderString builder for generated object name.
nameSqlObjectNameName of database object (e.g. table, view, procedure or function).
objectTypeConvertTypeType of database object, used to select proper name converter.
escapeboolIf
true, apply required escaping to name components. Must betrueexcept rare cases when escaping is not needed.tableOptionsTableOptionsTable options if called for table. Used to properly generate names for temporary tables.
withoutSuffixboolIf object name have suffix, which could be detached from main name, this parameter disables suffix generation (enables generation of only main name part).
Returns
- StringBuilder
sbparameter value.
BuildObjectNameSuffix(StringBuilder, SqlObjectName, bool)
protected virtual StringBuilder BuildObjectNameSuffix(StringBuilder sb, SqlObjectName name, bool escape)
Parameters
sbStringBuildernameSqlObjectNameescapebool
Returns
BuildOffsetLimit(SelectQuery)
protected virtual void BuildOffsetLimit(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildOrderByClause(SelectQuery)
protected virtual void BuildOrderByClause(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildOutputColumnExpressions(IReadOnlyList<ISqlExpression>)
protected virtual void BuildOutputColumnExpressions(IReadOnlyList<ISqlExpression> expressions)
Parameters
expressionsIReadOnlyList<ISqlExpression>
BuildOutputSubclause(SqlOutputClause?)
protected virtual void BuildOutputSubclause(SqlOutputClause? output)
Parameters
outputSqlOutputClause
BuildOutputSubclause(SqlStatement, SqlInsertClause)
protected virtual void BuildOutputSubclause(SqlStatement statement, SqlInsertClause insertClause)
Parameters
statementSqlStatementinsertClauseSqlInsertClause
BuildParameter(SqlParameter)
protected virtual void BuildParameter(SqlParameter parameter)
Parameters
parameterSqlParameter
BuildPhysicalTable(ISqlTableSource, string?, string?)
protected virtual bool? BuildPhysicalTable(ISqlTableSource table, string? alias, string? defaultDatabaseName = null)
Parameters
tableISqlTableSourcealiasstringdefaultDatabaseNamestring
Returns
- bool?
BuildPredicate(ISqlPredicate)
protected virtual void BuildPredicate(ISqlPredicate predicate)
Parameters
predicateISqlPredicate
BuildPredicate(int, int, ISqlPredicate)
protected void BuildPredicate(int parentPrecedence, int precedence, ISqlPredicate predicate)
Parameters
parentPrecedenceintprecedenceintpredicateISqlPredicate
BuildQueryExtensions(SqlStatement)
protected virtual void BuildQueryExtensions(SqlStatement statement)
Parameters
statementSqlStatement
BuildQueryExtensions(StringBuilder, List<SqlQueryExtension>, string?, string, string?, QueryExtensionScope)
protected void BuildQueryExtensions(StringBuilder sb, List<SqlQueryExtension> sqlQueryExtensions, string? prefix, string delimiter, string? suffix, Sql.QueryExtensionScope scope)
Parameters
sbStringBuildersqlQueryExtensionsList<SqlQueryExtension>prefixstringdelimiterstringsuffixstringscopeSql.QueryExtensionScope
BuildSearchCondition(SqlSearchCondition, bool)
protected virtual void BuildSearchCondition(SqlSearchCondition condition, bool wrapCondition)
Parameters
conditionSqlSearchConditionwrapConditionbool
BuildSearchCondition(int, SqlSearchCondition, bool)
protected virtual void BuildSearchCondition(int parentPrecedence, SqlSearchCondition condition, bool wrapCondition)
Parameters
parentPrecedenceintconditionSqlSearchConditionwrapConditionbool
BuildSelectClause(SelectQuery)
protected virtual void BuildSelectClause(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildSelectQuery(SqlSelectStatement)
protected virtual void BuildSelectQuery(SqlSelectStatement selectStatement)
Parameters
selectStatementSqlSelectStatement
BuildSetOperation(SetOperation, StringBuilder)
protected virtual void BuildSetOperation(SetOperation operation, StringBuilder sb)
Parameters
operationSetOperationsbStringBuilder
BuildSkipFirst(SelectQuery)
protected virtual void BuildSkipFirst(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildSql()
protected virtual void BuildSql()
BuildSql(int, SqlStatement, StringBuilder, OptimizationContext, int)
public void BuildSql(int commandNumber, SqlStatement statement, StringBuilder sb, OptimizationContext optimizationContext, int startIndent = 0)
Parameters
commandNumberintstatementSqlStatementsbStringBuilderoptimizationContextOptimizationContextstartIndentint
BuildSql(int, SqlStatement, StringBuilder, OptimizationContext, int, bool)
protected virtual void BuildSql(int commandNumber, SqlStatement statement, StringBuilder sb, OptimizationContext optimizationContext, int indent, bool skipAlias)
Parameters
commandNumberintstatementSqlStatementsbStringBuilderoptimizationContextOptimizationContextindentintskipAliasbool
BuildSqlBuilder(SelectQuery, int, bool)
protected virtual void BuildSqlBuilder(SelectQuery selectQuery, int indent, bool skipAlias)
Parameters
selectQuerySelectQueryindentintskipAliasbool
BuildSqlComment(StringBuilder, SqlComment)
protected virtual StringBuilder BuildSqlComment(StringBuilder sb, SqlComment comment)
Parameters
sbStringBuildercommentSqlComment
Returns
BuildSqlForUnion()
protected void BuildSqlForUnion()
BuildSqlID(SqlID)
public string BuildSqlID(Sql.SqlID id)
Parameters
Returns
BuildSqlRow(SqlRow, bool, bool, bool)
protected virtual void BuildSqlRow(SqlRow expr, bool buildTableName, bool checkParentheses, bool throwExceptionIfTableNotFound)
Parameters
BuildSqlValuesTable(SqlValuesTable, string, out bool)
protected virtual void BuildSqlValuesTable(SqlValuesTable valuesTable, string alias, out bool aliasBuilt)
Parameters
valuesTableSqlValuesTablealiasstringaliasBuiltbool
BuildStartCreateTableStatement(SqlCreateTableStatement)
protected virtual void BuildStartCreateTableStatement(SqlCreateTableStatement createTable)
Parameters
createTableSqlCreateTableStatement
BuildSubQueryExtensions(SqlStatement)
protected virtual void BuildSubQueryExtensions(SqlStatement statement)
Parameters
statementSqlStatement
BuildTableExtensions(SqlTable, string)
protected virtual void BuildTableExtensions(SqlTable table, string alias)
Parameters
BuildTableExtensions(StringBuilder, SqlTable, string, string?, string, string?)
protected void BuildTableExtensions(StringBuilder sb, SqlTable table, string alias, string? prefix, string delimiter, string? suffix)
Parameters
BuildTableExtensions(StringBuilder, SqlTable, string, string?, string, string?, Func<SqlQueryExtension, bool>)
protected void BuildTableExtensions(StringBuilder sb, SqlTable table, string alias, string? prefix, string delimiter, string? suffix, Func<SqlQueryExtension, bool> tableExtensionFilter)
Parameters
sbStringBuildertableSqlTablealiasstringprefixstringdelimiterstringsuffixstringtableExtensionFilterFunc<SqlQueryExtension, bool>
BuildTableName(SqlTableSource, bool, bool)
protected void BuildTableName(SqlTableSource ts, bool buildName, bool buildAlias)
Parameters
tsSqlTableSourcebuildNameboolbuildAliasbool
BuildTableNameExtensions(SqlTable)
protected virtual void BuildTableNameExtensions(SqlTable table)
Parameters
tableSqlTable
BuildTag(SqlStatement)
protected virtual void BuildTag(SqlStatement statement)
Parameters
statementSqlStatement
BuildTakeHints(SelectQuery)
protected virtual void BuildTakeHints(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildTruncateTable(SqlTruncateTableStatement)
protected virtual void BuildTruncateTable(SqlTruncateTableStatement truncateTable)
Parameters
truncateTableSqlTruncateTableStatement
BuildTruncateTableStatement(SqlTruncateTableStatement)
protected virtual void BuildTruncateTableStatement(SqlTruncateTableStatement truncateTable)
Parameters
truncateTableSqlTruncateTableStatement
BuildTypedExpression(SqlDataType, ISqlExpression)
protected virtual void BuildTypedExpression(SqlDataType dataType, ISqlExpression value)
Parameters
dataTypeSqlDataTypevalueISqlExpression
BuildUnknownQuery()
protected virtual void BuildUnknownQuery()
BuildUpdateClause(SqlStatement, SelectQuery, SqlUpdateClause)
protected virtual void BuildUpdateClause(SqlStatement statement, SelectQuery selectQuery, SqlUpdateClause updateClause)
Parameters
statementSqlStatementselectQuerySelectQueryupdateClauseSqlUpdateClause
BuildUpdateQuery(SqlStatement, SelectQuery, SqlUpdateClause)
protected virtual void BuildUpdateQuery(SqlStatement statement, SelectQuery selectQuery, SqlUpdateClause updateClause)
Parameters
statementSqlStatementselectQuerySelectQueryupdateClauseSqlUpdateClause
BuildUpdateSet(SelectQuery?, SqlUpdateClause)
protected virtual void BuildUpdateSet(SelectQuery? selectQuery, SqlUpdateClause updateClause)
Parameters
selectQuerySelectQueryupdateClauseSqlUpdateClause
BuildUpdateTable(SelectQuery, SqlUpdateClause)
protected virtual void BuildUpdateTable(SelectQuery selectQuery, SqlUpdateClause updateClause)
Parameters
selectQuerySelectQueryupdateClauseSqlUpdateClause
BuildUpdateTableName(SelectQuery, SqlUpdateClause)
protected virtual void BuildUpdateTableName(SelectQuery selectQuery, SqlUpdateClause updateClause)
Parameters
selectQuerySelectQueryupdateClauseSqlUpdateClause
BuildUpdateWhereClause(SelectQuery)
protected virtual void BuildUpdateWhereClause(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildValue(SqlDataType?, object?)
protected void BuildValue(SqlDataType? dataType, object? value)
Parameters
dataTypeSqlDataTypevalueobject
BuildValues(SqlValuesTable, IReadOnlyList<ISqlExpression[]>)
protected void BuildValues(SqlValuesTable source, IReadOnlyList<ISqlExpression[]> rows)
Parameters
sourceSqlValuesTablerowsIReadOnlyList<ISqlExpression[]>
BuildWhere(SelectQuery)
protected virtual bool BuildWhere(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
Returns
BuildWhereClause(SelectQuery)
protected virtual void BuildWhereClause(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildWhereSearchCondition(SelectQuery, SqlSearchCondition)
protected virtual void BuildWhereSearchCondition(SelectQuery selectQuery, SqlSearchCondition condition)
Parameters
selectQuerySelectQueryconditionSqlSearchCondition
BuildWithClause(SqlWithClause?)
protected virtual void BuildWithClause(SqlWithClause? with)
Parameters
withSqlWithClause
CanSkipRootAliases(SqlStatement)
protected virtual bool CanSkipRootAliases(SqlStatement statement)
Parameters
statementSqlStatement
Returns
CommandCount(SqlStatement)
public virtual int CommandCount(SqlStatement statement)
Parameters
statementSqlStatement
Returns
Convert(StringBuilder, string, ConvertType)
public virtual StringBuilder Convert(StringBuilder sb, string value, ConvertType convertType)
Parameters
sbStringBuildervaluestringconvertTypeConvertType
Returns
ConvertElement<T>(T?)
public T? ConvertElement<T>(T? element) where T : class, IQueryElement
Parameters
elementT
Returns
- T
Type Parameters
T
ConvertInline(string, ConvertType)
public string ConvertInline(string value, ConvertType convertType)
Parameters
valuestringconvertTypeConvertType
Returns
CreateSqlBuilder()
protected abstract ISqlBuilder CreateSqlBuilder()
Returns
FinalizeBuildQuery(SqlStatement)
protected virtual void FinalizeBuildQuery(SqlStatement statement)
Parameters
statementSqlStatement
FirstFormat(SelectQuery)
protected virtual string? FirstFormat(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
Returns
GetExtensionBuilder(Type)
protected static ISqlExtensionBuilder GetExtensionBuilder(Type builderType)
Parameters
builderTypeType
Returns
GetIdentityExpression(SqlTable)
public virtual ISqlExpression? GetIdentityExpression(SqlTable table)
Parameters
tableSqlTable
Returns
GetMaxValueSql(EntityDescriptor, ColumnDescriptor)
public virtual string GetMaxValueSql(EntityDescriptor entity, ColumnDescriptor column)
Parameters
entityEntityDescriptorcolumnColumnDescriptor
Returns
GetPhysicalTableName(ISqlTableSource, string?, bool, string?, bool)
protected virtual string GetPhysicalTableName(ISqlTableSource table, string? alias, bool ignoreTableExpression = false, string? defaultDatabaseName = null, bool withoutSuffix = false)
Parameters
tableISqlTableSourcealiasstringignoreTableExpressionbooldefaultDatabaseNamestringwithoutSuffixbool
Returns
GetPrecedence(ISqlPredicate)
protected static int GetPrecedence(ISqlPredicate predicate)
Parameters
predicateISqlPredicate
Returns
GetProviderTypeName(IDataContext, DbParameter)
protected virtual string? GetProviderTypeName(IDataContext dataContext, DbParameter parameter)
Parameters
dataContextIDataContextparameterDbParameter
Returns
GetReserveSequenceValuesSql(int, string)
public virtual string GetReserveSequenceValuesSql(int count, string sequenceName)
Parameters
Returns
GetSelectedColumns(SelectQuery)
protected virtual IEnumerable<SqlColumn> GetSelectedColumns(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
Returns
GetSequenceNameAttribute(SqlTable, bool)
protected SequenceNameAttribute? GetSequenceNameAttribute(SqlTable table, bool throwException)
Parameters
Returns
GetTableAlias(ISqlTableSource)
protected string? GetTableAlias(ISqlTableSource table)
Parameters
tableISqlTableSource
Returns
GetTempAliases(int, string)
public string[] GetTempAliases(int n, string defaultAlias)
Parameters
Returns
- string[]
GetTypeName(IDataContext, DbParameter)
protected virtual string? GetTypeName(IDataContext dataContext, DbParameter parameter)
Parameters
dataContextIDataContextparameterDbParameter
Returns
GetUdtTypeName(IDataContext, DbParameter)
protected virtual string? GetUdtTypeName(IDataContext dataContext, DbParameter parameter)
Parameters
dataContextIDataContextparameterDbParameter
Returns
IsDateDataType(ISqlExpression, string)
protected static bool IsDateDataType(ISqlExpression expr, string dateName)
Parameters
exprISqlExpressiondateNamestring
Returns
IsReserved(string)
protected virtual bool IsReserved(string word)
Parameters
wordstring
Returns
IsSqlValuesTableValueTypeRequired(SqlValuesTable, IReadOnlyList<ISqlExpression[]>, int, int)
Checks that value in specific row and column in enumerable source requires type information generation.
protected virtual bool IsSqlValuesTableValueTypeRequired(SqlValuesTable source, IReadOnlyList<ISqlExpression[]> rows, int row, int column)
Parameters
sourceSqlValuesTableMerge source table.
rowsIReadOnlyList<ISqlExpression[]>Merge source data.
rowintIndex of data row to check. Could contain -1 to indicate that this is a check for empty source NULL value.
columnintIndex of data column to check in row.
Returns
- bool
Returns
true, if generated SQL should include type information for value at specified position, otherwisefalsereturned.
IsTimeDataType(ISqlExpression)
protected static bool IsTimeDataType(ISqlExpression expr)
Parameters
exprISqlExpression
Returns
LimitFormat(SelectQuery)
protected virtual string? LimitFormat(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
Returns
MergeSqlBuilderData(BasicSqlBuilder)
protected virtual void MergeSqlBuilderData(BasicSqlBuilder sqlBuilder)
Parameters
sqlBuilderBasicSqlBuilder
NeedSkip(ISqlExpression?, ISqlExpression?)
protected bool NeedSkip(ISqlExpression? takeExpression, ISqlExpression? skipExpression)
Parameters
takeExpressionISqlExpressionskipExpressionISqlExpression
Returns
NeedTake(ISqlExpression?)
protected bool NeedTake(ISqlExpression? takeExpression)
Parameters
takeExpressionISqlExpression
Returns
OffsetFormat(SelectQuery)
protected virtual string? OffsetFormat(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
Returns
ParenthesizeJoin(List<SqlJoinedTable>)
protected virtual bool ParenthesizeJoin(List<SqlJoinedTable> joins)
Parameters
joinsList<SqlJoinedTable>
Returns
PrintParameterName(StringBuilder, DbParameter)
protected virtual void PrintParameterName(StringBuilder sb, DbParameter parameter)
Parameters
sbStringBuilderparameterDbParameter
PrintParameterType(IDataContext, StringBuilder, DbParameter)
protected virtual void PrintParameterType(IDataContext dataContext, StringBuilder sb, DbParameter parameter)
Parameters
dataContextIDataContextsbStringBuilderparameterDbParameter
PrintParameters(IDataContext, StringBuilder, IEnumerable<DbParameter>?)
public virtual StringBuilder PrintParameters(IDataContext dataContext, StringBuilder sb, IEnumerable<DbParameter>? parameters)
Parameters
dataContextIDataContextsbStringBuilderparametersIEnumerable<DbParameter>
Returns
RemoveAlias(string)
public void RemoveAlias(string alias)
Parameters
aliasstring
RemoveInlineComma()
protected StringBuilder RemoveInlineComma()
Returns
StartStatementQueryExtensions(SelectQuery?)
protected virtual void StartStatementQueryExtensions(SelectQuery? selectQuery)
Parameters
selectQuerySelectQuery
TryConvertParameterToSql(SqlParameterValue)
protected virtual bool TryConvertParameterToSql(SqlParameterValue paramValue)
Parameters
paramValueSqlParameterValue
Returns
WithStringBuilderBuildExpression(ISqlExpression)
protected string WithStringBuilderBuildExpression(ISqlExpression expr)
Parameters
exprISqlExpression
Returns
WithStringBuilderBuildExpression(int, ISqlExpression)
protected string WithStringBuilderBuildExpression(int precedence, ISqlExpression expr)
Parameters
precedenceintexprISqlExpression
Returns
WithStringBuilder<TContext>(Action<TContext>, TContext)
protected string WithStringBuilder<TContext>(Action<TContext> func, TContext context)
Parameters
funcAction<TContext>contextTContext
Returns
Type Parameters
TContext
WrapBooleanExpression(ISqlExpression)
protected virtual ISqlExpression WrapBooleanExpression(ISqlExpression expr)
Parameters
exprISqlExpression
Returns
WrapColumnExpression(ISqlExpression)
protected virtual ISqlExpression WrapColumnExpression(ISqlExpression expr)
Parameters
exprISqlExpression