Table of Contents

Class FirebirdMemberTranslator

Namespace
LinqToDB.Internal.DataProvider.Firebird.Translation
Assembly
linq2db.dll
public class FirebirdMemberTranslator : ProviderMemberTranslatorDefault, IMemberTranslator
Inheritance
object
FirebirdMemberTranslator
Implements
Derived
Inherited Members
Extension Methods

Methods

CreateDateMemberTranslator()

protected override IMemberTranslator CreateDateMemberTranslator()

Returns

IMemberTranslator

CreateGuidMemberTranslator()

protected override IMemberTranslator CreateGuidMemberTranslator()

Returns

IMemberTranslator

CreateSqlTypesTranslator()

protected override IMemberTranslator CreateSqlTypesTranslator()

Returns

IMemberTranslator

CreateStringMemberTranslator()

protected override IMemberTranslator CreateStringMemberTranslator()

Returns

IMemberTranslator

CreateWindowFunctionsMemberTranslator()

protected override IMemberTranslator? CreateWindowFunctionsMemberTranslator()

Returns

IMemberTranslator

TranslateGuidToString(ISqlExpression, ISqlExpressionFactory)

Builds the Firebird Cast(Lower(UUID_TO_CHAR({0})) as VarChar(36)) shape for a Guid → string conversion. Shared by the Guid.ToString() member translator and the cast(guid as string) path in FirebirdSqlExpressionConvertVisitor so both emit identical SQL.

public static ISqlExpression TranslateGuidToString(ISqlExpression guidExpr, ISqlExpressionFactory factory)

Parameters

guidExpr ISqlExpression
factory ISqlExpressionFactory

Returns

ISqlExpression

Remarks

Firebird's native UUID_TO_CHAR returns CHAR(36) — a fixed-width type that pads shorter values with trailing spaces. The inner function is typed as CHAR(36) to match that database semantic; the outer CAST then forces the result to VARCHAR(36) so a composing COALESCE(..., '') doesn't promote the whole expression to CHAR(36) and pad the empty-string branch to 36 spaces. Without the explicit CHAR typing on the inner function the optimizer (see SqlExpressionOptimizerVisitor.VisitSqlCastExpression) would treat the CAST as a no-op and elide it. Matches PostgreSQL / Sybase / SqlServer / MySql / SqlCe / SapHana Guid translators which all converge on a VARCHAR(36) result.

TranslateNewGuidMethod(ITranslationContext, TranslationFlags)

protected override ISqlExpression? TranslateNewGuidMethod(ITranslationContext translationContext, TranslationFlags translationFlags)

Parameters

translationContext ITranslationContext
translationFlags TranslationFlags

Returns

ISqlExpression