Class DuckDBSqlBuilder
- Namespace
- LinqToDB.Internal.DataProvider.DuckDB
- Assembly
- linq2db.dll
public class DuckDBSqlBuilder : BasicSqlBuilder<DuckDBOptions>, ISqlBuilder
- Inheritance
-
objectDuckDBSqlBuilder
- Implements
- Inherited Members
- Extension Methods
Constructors
DuckDBSqlBuilder(IDataProvider?, MappingSchema, DataOptions, ISqlOptimizer, SqlProviderFlags)
public DuckDBSqlBuilder(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
IsRecursiveCteKeywordRequired
protected override bool IsRecursiveCteKeywordRequired { get; }
Property Value
SupportsMaterializedCteHint
Providers that understand WITH cte AS MATERIALIZED (...) override this to
true. Currently: PostgreSQL 12+, SQLite 3.35+, ClickHouse 26.3+.
protected override bool SupportsMaterializedCteHint { get; }
Property Value
Methods
BuildCreateTableCommand(SqlTable)
protected override void BuildCreateTableCommand(SqlTable table)
Parameters
tableSqlTable
BuildCreateTableFieldType(SqlField)
protected override void BuildCreateTableFieldType(SqlField field)
Parameters
fieldSqlField
BuildCreateTableNullAttribute(SqlField, DefaultNullable)
protected override void BuildCreateTableNullAttribute(SqlField field, DefaultNullable defaultNullable)
Parameters
fieldSqlFielddefaultNullableDefaultNullable
BuildCreateTablePrimaryKey(SqlCreateTableStatement, string, IEnumerable<string>)
protected override void BuildCreateTablePrimaryKey(SqlCreateTableStatement createTable, string pkName, IEnumerable<string> fieldNames)
Parameters
createTableSqlCreateTableStatementpkNamestringfieldNamesIEnumerable<string>
BuildCreateTableStatement(SqlCreateTableStatement)
protected override void BuildCreateTableStatement(SqlCreateTableStatement createTable)
Parameters
createTableSqlCreateTableStatement
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).
BuildDistinctModifier(SelectQuery)
Emits the DISTINCT modifier. Overridden by providers that support DISTINCT ON (...)
(see IsDistinctOnSupported); the base emits a plain DISTINCT.
protected override void BuildDistinctModifier(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
BuildDropTableStatement(SqlDropTableStatement)
protected override void BuildDropTableStatement(SqlDropTableStatement dropTable)
Parameters
dropTableSqlDropTableStatement
BuildGetIdentity(SqlInsertClause)
protected override void BuildGetIdentity(SqlInsertClause insertClause)
Parameters
insertClauseSqlInsertClause
BuildInsertOrUpdateQuery(SqlInsertOrUpdateStatement)
protected override void BuildInsertOrUpdateQuery(SqlInsertOrUpdateStatement insertOrUpdate)
Parameters
insertOrUpdateSqlInsertOrUpdateStatement
BuildJoinType(SqlJoinedTable, SqlSearchCondition)
protected override bool BuildJoinType(SqlJoinedTable join, SqlSearchCondition condition)
Parameters
joinSqlJoinedTableconditionSqlSearchCondition
Returns
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.
BuildTruncateTableStatement(SqlTruncateTableStatement)
protected override void BuildTruncateTableStatement(SqlTruncateTableStatement truncateTable)
Parameters
truncateTableSqlTruncateTableStatement
Convert(StringBuilder, string, ConvertType)
public override StringBuilder Convert(StringBuilder sb, string value, ConvertType convertType)
Parameters
sbStringBuildervaluestringconvertTypeConvertType
Returns
CreateSqlBuilder()
protected override ISqlBuilder CreateSqlBuilder()
Returns
GetIdentityExpression(SqlTable)
public override ISqlExpression? GetIdentityExpression(SqlTable table)
Parameters
tableSqlTable
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
GetWindowNullsPlacement(SqlExtendedFunction)
Returns where the IGNORE NULLS modifier is emitted for the given value/offset window function.
Defaults to AfterClose; providers override for non-standard placement.
protected override BasicSqlBuilder.WindowNullsPlacement GetWindowNullsPlacement(SqlExtendedFunction extendedFunction)
Parameters
extendedFunctionSqlExtendedFunction
Returns
IsReserved(string)
protected override sealed bool IsReserved(string word)
Parameters
wordstring
Returns
LimitFormat(SelectQuery)
protected override string LimitFormat(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
Returns
OffsetFormat(SelectQuery)
protected override string OffsetFormat(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
Returns
PrintParameterName(StringBuilder, DbParameter)
protected override void PrintParameterName(StringBuilder sb, DbParameter parameter)
Parameters
sbStringBuilderparameterDbParameter