Class InformixSqlBuilder
- Namespace
- LinqToDB.Internal.DataProvider.Informix
- Assembly
- linq2db.dll
public class InformixSqlBuilder : BasicSqlBuilder, ISqlBuilder
- Inheritance
-
objectInformixSqlBuilder
- Implements
- Inherited Members
- Extension Methods
Constructors
InformixSqlBuilder(IDataProvider?, MappingSchema, DataOptions, ISqlOptimizer, SqlProviderFlags)
public InformixSqlBuilder(IDataProvider? provider, MappingSchema mappingSchema, DataOptions dataOptions, ISqlOptimizer sqlOptimizer, SqlProviderFlags sqlProviderFlags)
Parameters
providerIDataProvidermappingSchemaMappingSchemadataOptionsDataOptionssqlOptimizerISqlOptimizersqlProviderFlagsSqlProviderFlags
Properties
ConcatStyle
SQL-emit shape for SqlConcatExpression. Defaults to Plus; override per provider.
protected override BasicSqlBuilder.ConcatBuildStyle ConcatStyle { 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 override string FakeTable { get; }
Property Value
IsValuesSyntaxSupported
If true, provider supports list of VALUES as a source element of merge command.
protected override bool IsValuesSyntaxSupported { get; }
Property Value
ParameterCastDecimalNullsOnly
Whether decimal facets are only filled in where the parameter type leaves them unset, rather than always taken from the value.
protected override bool ParameterCastDecimalNullsOnly { get; }
Property Value
SkipFormat
protected override string SkipFormat { get; }
Property Value
Methods
BuildCommand(SqlStatement, int)
protected override void BuildCommand(SqlStatement statement, int commandNumber)
Parameters
statementSqlStatementcommandNumberint
BuildCreateTableCommand(SqlTable)
protected override void BuildCreateTableCommand(SqlTable table)
Parameters
tableSqlTable
BuildCreateTableFieldType(SqlField)
protected override void BuildCreateTableFieldType(SqlField field)
Parameters
fieldSqlField
BuildCreateTablePrimaryKey(SqlCreateTableStatement, string, IEnumerable<string>)
protected override void BuildCreateTablePrimaryKey(SqlCreateTableStatement createTable, string pkName, IEnumerable<string> fieldNames)
Parameters
createTableSqlCreateTableStatementpkNamestringfieldNamesIEnumerable<string>
BuildDataTypeFromDataType(DbDataType, bool, bool)
protected override void BuildDataTypeFromDataType(DbDataType type, bool forCreateTable, bool canBeNull)
Parameters
typeDbDataTypeforCreateTableboolcanBeNullboolType could store
NULLvalues (could be used for column table type generation or for databases with explicit typee nullability like ClickHouse).
BuildDropTableStatement(SqlDropTableStatement)
protected override void BuildDropTableStatement(SqlDropTableStatement dropTable)
Parameters
dropTableSqlDropTableStatement
BuildInListPredicate(InList)
protected override void BuildInListPredicate(SqlPredicate.InList predicate)
Parameters
predicateSqlPredicate.InList
BuildInSubQueryPredicate(InSubQuery)
protected override void BuildInSubQueryPredicate(SqlPredicate.InSubQuery predicate)
Parameters
predicateSqlPredicate.InSubQuery
BuildIsDistinctPredicate(IsDistinct)
protected override void BuildIsDistinctPredicate(SqlPredicate.IsDistinct expr)
Parameters
exprSqlPredicate.IsDistinct
BuildLikePredicate(Like)
protected override void BuildLikePredicate(SqlPredicate.Like predicate)
Parameters
predicateSqlPredicate.Like
BuildMergeInto(NullabilityContext, SqlMergeStatement)
protected override void BuildMergeInto(NullabilityContext nullability, SqlMergeStatement merge)
Parameters
nullabilityNullabilityContextmergeSqlMergeStatement
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
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 be true except 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.
BuildSelectClause(SelectQuery)
protected override void BuildSelectClause(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildSql(int, SqlStatement, StringBuilder, OptimizationContext, int, ColumnAliasMode, NullabilityContext?)
protected override void BuildSql(int commandNumber, SqlStatement statement, StringBuilder sb, OptimizationContext optimizationContext, int indent, BasicSqlBuilder.ColumnAliasMode aliasMode, NullabilityContext? nullabilityContext)
Parameters
commandNumberintstatementSqlStatementsbStringBuilderoptimizationContextOptimizationContextindentintaliasModeBasicSqlBuilder.ColumnAliasModenullabilityContextNullabilityContext
BuildSqlRow(SqlRowExpression, bool, bool, bool)
protected override void BuildSqlRow(SqlRowExpression expr, bool buildTableName, bool checkParentheses, bool throwExceptionIfTableNotFound)
Parameters
exprSqlRowExpressionbuildTableNameboolcheckParenthesesboolthrowExceptionIfTableNotFoundbool
BuildTruncateTable(SqlTruncateTableStatement)
protected override void BuildTruncateTable(SqlTruncateTableStatement truncateTable)
Parameters
truncateTableSqlTruncateTableStatement
BuildTypedExpression(DbDataType, ISqlExpression)
protected override void BuildTypedExpression(DbDataType dataType, ISqlExpression value)
Parameters
dataTypeDbDataTypevalueISqlExpression
CommandCount(SqlStatement)
public override int CommandCount(SqlStatement statement)
Parameters
statementSqlStatement
Returns
Convert(StringBuilder, string, ConvertType)
public override StringBuilder Convert(StringBuilder sb, string value, ConvertType convertType)
Parameters
sbStringBuildervaluestringconvertTypeConvertType
Returns
CreateSqlBuilder()
protected override ISqlBuilder CreateSqlBuilder()
Returns
FirstFormat(SelectQuery)
protected override string FirstFormat(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
Returns
GetParameterCastType(SqlParameter)
Type used to render a SqlParameterCastExpression over parameter, or
null to render the parameter bare. Defaults to the parameter's own type; providers
that must state exact facets override it, typically via GetValueBasedParameterCastType(SqlParameter).
protected override DbDataType? GetParameterCastType(SqlParameter parameter)
Parameters
parameterSqlParameter
Returns
GetProviderTypeName(IDataContext, DbParameter)
protected override string? GetProviderTypeName(IDataContext dataContext, DbParameter parameter)
Parameters
dataContextIDataContextparameterDbParameter
Returns
IsReserved(string)
protected override bool IsReserved(string word)
Parameters
wordstring
Returns
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
sourceSqlValuesTableMerge source table.
rowsIReadOnlyList<List<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.