Table of Contents

Class MySqlSqlBuilder

Namespace
LinqToDB.Internal.DataProvider.MySql
Assembly
linq2db.dll
public abstract class MySqlSqlBuilder : BasicSqlBuilder<MySqlOptions>, ISqlBuilder
Inheritance
object
MySqlSqlBuilder
Implements
Derived
Inherited Members
Extension Methods

Constructors

MySqlSqlBuilder(IDataProvider?, MappingSchema, DataOptions, ISqlOptimizer, SqlProviderFlags)

protected MySqlSqlBuilder(IDataProvider? provider, MappingSchema mappingSchema, DataOptions dataOptions, ISqlOptimizer sqlOptimizer, SqlProviderFlags sqlProviderFlags)

Parameters

provider IDataProvider
mappingSchema MappingSchema
dataOptions DataOptions
sqlOptimizer ISqlOptimizer
sqlProviderFlags SqlProviderFlags

MySqlSqlBuilder(BasicSqlBuilder)

protected MySqlSqlBuilder(BasicSqlBuilder parentBuilder)

Parameters

parentBuilder BasicSqlBuilder

Properties

ConcatStyle

SQL-emit shape for SqlConcatExpression. Defaults to Plus; override per provider.

protected override BasicSqlBuilder.ConcatBuildStyle ConcatStyle { get; }

Property Value

BasicSqlBuilder.ConcatBuildStyle

HintBuilder

protected StringBuilder? HintBuilder { get; set; }

Property Value

StringBuilder

IsNestedJoinParenthesisRequired

public override bool IsNestedJoinParenthesisRequired { get; }

Property Value

bool

IsRecursiveCteKeywordRequired

protected override bool IsRecursiveCteKeywordRequired { get; }

Property Value

bool

IsValuesSyntaxSupported

If true, provider supports list of VALUES as a source element of merge command.

protected override bool IsValuesSyntaxSupported { get; }

Property Value

bool

SupportsColumnAliasesInSource

If true, provider supports column aliases specification after table alias. E.g. as table_alias (column_alias1, column_alias2).

protected override bool SupportsColumnAliasesInSource { get; }

Property Value

bool

Methods

BuildCommand(SqlStatement, int)

protected override void BuildCommand(SqlStatement statement, int commandNumber)

Parameters

statement SqlStatement
commandNumber int

BuildCreateTableCommand(SqlTable)

protected override void BuildCreateTableCommand(SqlTable table)

Parameters

table SqlTable

BuildCreateTableIdentityAttribute1(SqlField)

protected override void BuildCreateTableIdentityAttribute1(SqlField field)

Parameters

field SqlField

BuildCreateTablePrimaryKey(SqlCreateTableStatement, string, IEnumerable<string>)

protected override void BuildCreateTablePrimaryKey(SqlCreateTableStatement createTable, string pkName, IEnumerable<string> fieldNames)

Parameters

createTable SqlCreateTableStatement
pkName string
fieldNames IEnumerable<string>

BuildDataTypeFromDataType(DbDataType, bool, bool)

protected override void BuildDataTypeFromDataType(DbDataType type, bool forCreateTable, bool canBeNull)

Parameters

type DbDataType
forCreateTable bool
canBeNull bool

Type could store NULL values (could be used for column table type generation or for databases with explicit typee nullability like ClickHouse).

BuildDeleteClause(SqlDeleteStatement)

protected override void BuildDeleteClause(SqlDeleteStatement deleteStatement)

Parameters

deleteStatement SqlDeleteStatement

BuildDropTableStatement(SqlDropTableStatement)

protected override void BuildDropTableStatement(SqlDropTableStatement dropTable)

Parameters

dropTable SqlDropTableStatement

BuildEmptyInsert(SqlInsertClause)

protected override void BuildEmptyInsert(SqlInsertClause insertClause)

Parameters

insertClause SqlInsertClause

BuildExpression(ISqlExpression, bool, bool, string?, ref bool, bool)

protected override StringBuilder BuildExpression(ISqlExpression expr, bool buildTableName, bool checkParentheses, string? alias, ref bool addAlias, bool throwExceptionIfTableNotFound = true)

Parameters

expr ISqlExpression
buildTableName bool
checkParentheses bool
alias string
addAlias bool
throwExceptionIfTableNotFound bool

Returns

StringBuilder

BuildFromClause(SqlStatement, SelectQuery)

protected override void BuildFromClause(SqlStatement statement, SelectQuery selectQuery)

Parameters

statement SqlStatement
selectQuery SelectQuery

BuildGroupByBody(GroupingType, List<ISqlExpression>)

protected override void BuildGroupByBody(GroupingType groupingType, List<ISqlExpression> items)

Parameters

groupingType GroupingType
items List<ISqlExpression>

BuildInsertOrUpdateQuery(SqlInsertOrUpdateStatement)

protected override void BuildInsertOrUpdateQuery(SqlInsertOrUpdateStatement insertOrUpdate)

Parameters

insertOrUpdate SqlInsertOrUpdateStatement

BuildInsertQuery(SqlStatement, SqlInsertClause, bool)

protected override void BuildInsertQuery(SqlStatement statement, SqlInsertClause insertClause, bool addAlias)

Parameters

statement SqlStatement
insertClause SqlInsertClause
addAlias bool

BuildIsDistinctPredicate(IsDistinct)

protected override void BuildIsDistinctPredicate(SqlPredicate.IsDistinct expr)

Parameters

expr SqlPredicate.IsDistinct

BuildMergeStatement(SqlMergeStatement)

protected override void BuildMergeStatement(SqlMergeStatement merge)

Parameters

merge SqlMergeStatement

BuildObjectName(StringBuilder, SqlObjectName, ConvertType, bool, TableOptions, bool)

Writes database object name into provided StringBuilder instance.

public override StringBuilder BuildObjectName(StringBuilder sb, SqlObjectName name, ConvertType objectType = ConvertType.NameToQueryTable, bool escape = true, TableOptions tableOptions = TableOptions.NotSet, bool withoutSuffix = false)

Parameters

sb StringBuilder

String builder for generated object name.

name SqlObjectName

Name of database object (e.g. table, view, procedure or function).

objectType ConvertType

Type of database object, used to select proper name converter.

escape bool

If true, apply required escaping to name components. Must be true except rare cases when escaping is not needed.

tableOptions TableOptions

Table options if called for table. Used to properly generate names for temporary tables.

withoutSuffix bool

If 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

sb parameter value.

BuildOffsetLimit(SelectQuery)

protected override void BuildOffsetLimit(SelectQuery selectQuery)

Parameters

selectQuery SelectQuery

BuildSql()

protected override void BuildSql()

BuildSubQueryExtensions(SqlStatement)

protected override void BuildSubQueryExtensions(SqlStatement statement)

Parameters

statement SqlStatement

BuildTableExtensions(SqlTable, string)

protected override void BuildTableExtensions(SqlTable table, string alias)

Parameters

table SqlTable
alias string

BuildTruncateTable(SqlTruncateTableStatement)

protected override void BuildTruncateTable(SqlTruncateTableStatement truncateTable)

Parameters

truncateTable SqlTruncateTableStatement

BuildUpdateClause(SqlStatement, SelectQuery, SqlUpdateClause)

protected override void BuildUpdateClause(SqlStatement statement, SelectQuery selectQuery, SqlUpdateClause updateClause)

Parameters

statement SqlStatement
selectQuery SelectQuery
updateClause SqlUpdateClause

CanSkipRootAliases(SqlStatement)

protected override bool CanSkipRootAliases(SqlStatement statement)

Parameters

statement SqlStatement

Returns

bool

CommandCount(SqlStatement)

public override int CommandCount(SqlStatement statement)

Parameters

statement SqlStatement

Returns

int

Convert(StringBuilder, string, ConvertType)

public override StringBuilder Convert(StringBuilder sb, string value, ConvertType convertType)

Parameters

sb StringBuilder
value string
convertType ConvertType

Returns

StringBuilder

FinalizeBuildQuery(SqlStatement)

protected override void FinalizeBuildQuery(SqlStatement statement)

Parameters

statement SqlStatement

GetProviderTypeName(IDataContext, DbParameter)

protected override string? GetProviderTypeName(IDataContext dataContext, DbParameter parameter)

Parameters

dataContext IDataContext
parameter DbParameter

Returns

string

IsSqlValuesTableValueTypeRequired(SqlValuesTable, IReadOnlyList<List<ISqlExpression>>, int, int)

Checks that value in specific row and column in enumerable source requires type information generation.

protected override bool IsSqlValuesTableValueTypeRequired(SqlValuesTable source, IReadOnlyList<List<ISqlExpression>> rows, int row, int column)

Parameters

source SqlValuesTable

Merge source table.

rows IReadOnlyList<List<ISqlExpression>>

Merge source data.

row int

Index of data row to check. Could contain -1 to indicate that this is a check for empty source NULL value.

column int

Index of data column to check in row.

Returns

bool

Returns true, if generated SQL should include type information for value at specified position, otherwise false returned.

LimitFormat(SelectQuery)

protected override string LimitFormat(SelectQuery selectQuery)

Parameters

selectQuery SelectQuery

Returns

string

StartStatementQueryExtensions(SelectQuery?)

protected override void StartStatementQueryExtensions(SelectQuery? selectQuery)

Parameters

selectQuery SelectQuery