Table of Contents

Class DuckDBSqlBuilder

Namespace
LinqToDB.Internal.DataProvider.DuckDB
Assembly
linq2db.dll
public class DuckDBSqlBuilder : BasicSqlBuilder<DuckDBOptions>, ISqlBuilder
Inheritance
object
DuckDBSqlBuilder
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

provider IDataProvider
mappingSchema MappingSchema
dataOptions DataOptions
sqlOptimizer ISqlOptimizer
sqlProviderFlags SqlProviderFlags

Properties

ConcatStyle

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

protected override BasicSqlBuilder.ConcatBuildStyle ConcatStyle { get; }

Property Value

BasicSqlBuilder.ConcatBuildStyle

IsRecursiveCteKeywordRequired

protected override bool IsRecursiveCteKeywordRequired { get; }

Property Value

bool

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

bool

Methods

BuildCreateTableCommand(SqlTable)

protected override void BuildCreateTableCommand(SqlTable table)

Parameters

table SqlTable

BuildCreateTableFieldType(SqlField)

protected override void BuildCreateTableFieldType(SqlField field)

Parameters

field SqlField

BuildCreateTableNullAttribute(SqlField, DefaultNullable)

protected override void BuildCreateTableNullAttribute(SqlField field, DefaultNullable defaultNullable)

Parameters

field SqlField
defaultNullable DefaultNullable

BuildCreateTablePrimaryKey(SqlCreateTableStatement, string, IEnumerable<string>)

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

Parameters

createTable SqlCreateTableStatement
pkName string
fieldNames IEnumerable<string>

BuildCreateTableStatement(SqlCreateTableStatement)

protected override void BuildCreateTableStatement(SqlCreateTableStatement createTable)

Parameters

createTable SqlCreateTableStatement

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).

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

selectQuery SelectQuery

BuildDropTableStatement(SqlDropTableStatement)

protected override void BuildDropTableStatement(SqlDropTableStatement dropTable)

Parameters

dropTable SqlDropTableStatement

BuildGetIdentity(SqlInsertClause)

protected override void BuildGetIdentity(SqlInsertClause insertClause)

Parameters

insertClause SqlInsertClause

BuildInsertOrUpdateQuery(SqlInsertOrUpdateStatement)

protected override void BuildInsertOrUpdateQuery(SqlInsertOrUpdateStatement insertOrUpdate)

Parameters

insertOrUpdate SqlInsertOrUpdateStatement

BuildJoinType(SqlJoinedTable, SqlSearchCondition)

protected override bool BuildJoinType(SqlJoinedTable join, SqlSearchCondition condition)

Parameters

join SqlJoinedTable
condition SqlSearchCondition

Returns

bool

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.

BuildTruncateTableStatement(SqlTruncateTableStatement)

protected override void BuildTruncateTableStatement(SqlTruncateTableStatement truncateTable)

Parameters

truncateTable SqlTruncateTableStatement

Convert(StringBuilder, string, ConvertType)

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

Parameters

sb StringBuilder
value string
convertType ConvertType

Returns

StringBuilder

CreateSqlBuilder()

protected override ISqlBuilder CreateSqlBuilder()

Returns

ISqlBuilder

GetIdentityExpression(SqlTable)

public override ISqlExpression? GetIdentityExpression(SqlTable table)

Parameters

table SqlTable

Returns

ISqlExpression

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

parameter SqlParameter

Returns

DbDataType?

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

extendedFunction SqlExtendedFunction

Returns

BasicSqlBuilder.WindowNullsPlacement

IsReserved(string)

protected override sealed bool IsReserved(string word)

Parameters

word string

Returns

bool

LimitFormat(SelectQuery)

protected override string LimitFormat(SelectQuery selectQuery)

Parameters

selectQuery SelectQuery

Returns

string

OffsetFormat(SelectQuery)

protected override string OffsetFormat(SelectQuery selectQuery)

Parameters

selectQuery SelectQuery

Returns

string

PrintParameterName(StringBuilder, DbParameter)

protected override void PrintParameterName(StringBuilder sb, DbParameter parameter)

Parameters

sb StringBuilder
parameter DbParameter