Documentation
¶
Index ¶
- func GenericRenderMutationPostamble(ctx Context, qc *qcode.QCode)
- type Context
- type Dialect
- type FullMutationCompiler
- type FullQueryCompiler
- type InlineChildRenderer
- type MSSQLDialect
- func (d *MSSQLDialect) BindVar(i int) string
- func (d *MSSQLDialect) ModifySelectsForMutation(qc *qcode.QCode)
- func (d *MSSQLDialect) Name() string
- func (d *MSSQLDialect) QuoteIdentifier(s string) string
- func (d *MSSQLDialect) RenderArray(ctx Context, items []string)
- func (d *MSSQLDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
- func (d *MSSQLDialect) RenderArrayRemove(ctx Context, col string, val func())
- func (d *MSSQLDialect) RenderArraySelectPrefix(ctx Context)
- func (d *MSSQLDialect) RenderArraySelectSuffix(ctx Context)
- func (d *MSSQLDialect) RenderAssign(ctx Context, col string, val string)
- func (d *MSSQLDialect) RenderBaseTable(ctx Context)
- func (d *MSSQLDialect) RenderBegin(ctx Context)
- func (d *MSSQLDialect) RenderBooleanEqualsTrue(ctx Context, paramName string)
- func (d *MSSQLDialect) RenderBooleanNotEqualsTrue(ctx Context, paramName string)
- func (d *MSSQLDialect) RenderCast(ctx Context, val func(), typ string)
- func (d *MSSQLDialect) RenderChildCursor(ctx Context, renderChild func())
- func (d *MSSQLDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
- func (d *MSSQLDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
- func (d *MSSQLDialect) RenderDelete(ctx Context, m *qcode.Mutate, where func())
- func (d *MSSQLDialect) RenderDistinctOn(ctx Context, sel *qcode.Select)
- func (d *MSSQLDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
- func (d *MSSQLDialect) RenderGeoOp(ctx Context, table, col string, ex *qcode.Exp) error
- func (d *MSSQLDialect) RenderIDCapture(ctx Context, varName string)
- func (d *MSSQLDialect) RenderInlineChild(ctx Context, r InlineChildRenderer, psel, sel *qcode.Select)
- func (d *MSSQLDialect) RenderInsert(ctx Context, m *qcode.Mutate, values func())
- func (d *MSSQLDialect) RenderJSONField(ctx Context, fieldName string, tableAlias string, colName string, isNull bool, ...)
- func (d *MSSQLDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
- func (d *MSSQLDialect) RenderJSONNullField(ctx Context, fieldName string)
- func (d *MSSQLDialect) RenderJSONPath(ctx Context, table, col string, path []string)
- func (d *MSSQLDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
- func (d *MSSQLDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
- func (d *MSSQLDialect) RenderJSONRootField(ctx Context, key string, val func())
- func (d *MSSQLDialect) RenderJSONRootSuffix(ctx Context)
- func (d *MSSQLDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
- func (d *MSSQLDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
- func (d *MSSQLDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
- func (d *MSSQLDialect) RenderLateralJoinClose(ctx Context, alias string)
- func (d *MSSQLDialect) RenderLimit(ctx Context, sel *qcode.Select)
- func (d *MSSQLDialect) RenderLinearConnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MSSQLDialect) RenderLinearDisconnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MSSQLDialect) RenderLinearInsert(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MSSQLDialect) RenderLinearUpdate(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MSSQLDialect) RenderList(ctx Context, ex *qcode.Exp)
- func (d *MSSQLDialect) RenderLiteral(ctx Context, val string, valType qcode.ValType)
- func (d *MSSQLDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
- func (d *MSSQLDialect) RenderMutationCTE(ctx Context, m *qcode.Mutate, renderBody func())
- func (d *MSSQLDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
- func (d *MSSQLDialect) RenderMutationPostamble(ctx Context, qc *qcode.QCode)
- func (d *MSSQLDialect) RenderOp(op qcode.ExpOp) (string, error)
- func (d *MSSQLDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
- func (d *MSSQLDialect) RenderQueryPrefix(ctx Context, qc *qcode.QCode)
- func (d *MSSQLDialect) RenderRecursiveAnchorWhere(ctx Context, psel *qcode.Select, ti sdata.DBTable, pkCol string) bool
- func (d *MSSQLDialect) RenderRecursiveLimit1(ctx Context)
- func (d *MSSQLDialect) RenderRecursiveOffset(ctx Context)
- func (d *MSSQLDialect) RenderReturning(ctx Context, m *qcode.Mutate)
- func (d *MSSQLDialect) RenderRootTerminator(ctx Context)
- func (d *MSSQLDialect) RenderSearchHeadline(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *MSSQLDialect) RenderSearchRank(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *MSSQLDialect) RenderSetSessionVar(ctx Context, name, value string) bool
- func (d *MSSQLDialect) RenderSetup(ctx Context)
- func (d *MSSQLDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
- func (d *MSSQLDialect) RenderTableAlias(ctx Context, alias string)
- func (d *MSSQLDialect) RenderTableName(ctx Context, sel *qcode.Select, schema, table string)
- func (d *MSSQLDialect) RenderTeardown(ctx Context)
- func (d *MSSQLDialect) RenderTryCast(ctx Context, val func(), typ string)
- func (d *MSSQLDialect) RenderTsQuery(ctx Context, ti sdata.DBTable, ex *qcode.Exp)
- func (d *MSSQLDialect) RenderUpdate(ctx Context, m *qcode.Mutate, set func(), from func(), where func())
- func (d *MSSQLDialect) RenderUpsert(ctx Context, m *qcode.Mutate, insert func(), updateSet func())
- func (d *MSSQLDialect) RenderValArrayColumn(ctx Context, ex *qcode.Exp, table string, pid int32)
- func (d *MSSQLDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
- func (d *MSSQLDialect) RenderValVar(ctx Context, ex *qcode.Exp, val string) bool
- func (d *MSSQLDialect) RenderVar(ctx Context, name string)
- func (d *MSSQLDialect) RenderVarDeclaration(ctx Context, name, typeName string)
- func (d *MSSQLDialect) RequiresBooleanAsInt() bool
- func (d *MSSQLDialect) RequiresJSONAsString() bool
- func (d *MSSQLDialect) RequiresJSONQueryWrapper() bool
- func (d *MSSQLDialect) RequiresLowercaseIdentifiers() bool
- func (d *MSSQLDialect) RequiresNullOnEmptySelect() bool
- func (d *MSSQLDialect) RequiresRecursiveCTEColumnList() bool
- func (d *MSSQLDialect) RequiresRecursiveKeyword() bool
- func (d *MSSQLDialect) RoleDummyTable() string
- func (d *MSSQLDialect) RoleLimitSuffix() string
- func (d *MSSQLDialect) RoleSelectPrefix() string
- func (d *MSSQLDialect) SetNameMap(tables []sdata.DBTable)
- func (d *MSSQLDialect) SplitQuery(query string) []string
- func (d *MSSQLDialect) SupportsConflictUpdate() bool
- func (d *MSSQLDialect) SupportsLateral() bool
- func (d *MSSQLDialect) SupportsLinearExecution() bool
- func (d *MSSQLDialect) SupportsReturning() bool
- func (d *MSSQLDialect) SupportsSubscriptionBatching() bool
- func (d *MSSQLDialect) SupportsWritableCTE() bool
- func (d *MSSQLDialect) TransformBooleanLiterals(match string) string
- func (d *MSSQLDialect) UseNamedParams() bool
- func (d *MSSQLDialect) WrapRecursiveSelect() bool
- type MariaDBDialect
- func (d *MariaDBDialect) Name() string
- func (d *MariaDBDialect) QuoteIdentifier(s string) string
- func (d *MariaDBDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
- func (d *MariaDBDialect) RenderArrayRemove(ctx Context, col string, val func())
- func (d *MariaDBDialect) RenderArraySelectPrefix(ctx Context)
- func (d *MariaDBDialect) RenderArraySelectSuffix(ctx Context)
- func (d *MariaDBDialect) RenderCast(ctx Context, val func(), typ string)
- func (d *MariaDBDialect) RenderChildCursor(ctx Context, renderChild func())
- func (d *MariaDBDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
- func (d *MariaDBDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
- func (d *MariaDBDialect) RenderGeoOp(ctx Context, table, col string, ex *qcode.Exp) error
- func (d *MariaDBDialect) RenderInlineChild(ctx Context, r InlineChildRenderer, psel, sel *qcode.Select)
- func (d *MariaDBDialect) RenderJSONField(ctx Context, fieldName string, tableAlias string, colName string, isNull bool, ...)
- func (d *MariaDBDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
- func (d *MariaDBDialect) RenderJSONNullField(ctx Context, fieldName string)
- func (d *MariaDBDialect) RenderJSONPath(ctx Context, table, col string, path []string)
- func (d *MariaDBDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
- func (d *MariaDBDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
- func (d *MariaDBDialect) RenderJSONRootField(ctx Context, key string, val func())
- func (d *MariaDBDialect) RenderJSONRootSuffix(ctx Context)
- func (d *MariaDBDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
- func (d *MariaDBDialect) RenderLateralJoinClose(ctx Context, alias string)
- func (d *MariaDBDialect) RenderLinearConnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MariaDBDialect) RenderLinearDisconnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MariaDBDialect) RenderOp(op qcode.ExpOp) (string, error)
- func (d *MariaDBDialect) RenderRecursiveAnchorWhere(ctx Context, psel *qcode.Select, ti sdata.DBTable, pkCol string) bool
- func (d *MariaDBDialect) RenderRecursiveLimit1(ctx Context)
- func (d *MariaDBDialect) RenderRecursiveOffset(ctx Context)
- func (d *MariaDBDialect) RenderReturning(ctx Context, m *qcode.Mutate)
- func (d *MariaDBDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
- func (d *MariaDBDialect) RenderTableAlias(ctx Context, alias string)
- func (d *MariaDBDialect) RenderValArrayColumn(ctx Context, ex *qcode.Exp, table string, pid int32)
- func (d *MariaDBDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
- func (d *MariaDBDialect) RequiresBooleanAsInt() bool
- func (d *MariaDBDialect) RequiresJSONAsString() bool
- func (d *MariaDBDialect) RequiresJSONQueryWrapper() bool
- func (d *MariaDBDialect) RequiresLowercaseIdentifiers() bool
- func (d *MariaDBDialect) RequiresNullOnEmptySelect() bool
- func (d *MariaDBDialect) RequiresRecursiveCTEColumnList() bool
- func (d *MariaDBDialect) RequiresRecursiveKeyword() bool
- func (d *MariaDBDialect) RoleDummyTable() string
- func (d *MariaDBDialect) RoleLimitSuffix() string
- func (d *MariaDBDialect) RoleSelectPrefix() string
- func (d *MariaDBDialect) SupportsLateral() bool
- func (d *MariaDBDialect) SupportsReturning() bool
- func (d *MariaDBDialect) SupportsSubscriptionBatching() bool
- func (d *MariaDBDialect) TransformBooleanLiterals(match string) string
- func (d *MariaDBDialect) WrapRecursiveSelect() bool
- type MongoDBDialect
- func (d *MongoDBDialect) BindVar(i int) string
- func (d *MongoDBDialect) CompileFullMutation(ctx Context, qc *qcode.QCode) bool
- func (d *MongoDBDialect) CompileFullQuery(ctx Context, qc *qcode.QCode) bool
- func (d *MongoDBDialect) ModifySelectsForMutation(qc *qcode.QCode)
- func (d *MongoDBDialect) Name() string
- func (d *MongoDBDialect) QuoteIdentifier(s string) string
- func (d *MongoDBDialect) RenderArray(ctx Context, items []string)
- func (d *MongoDBDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
- func (d *MongoDBDialect) RenderArrayRemove(ctx Context, col string, val func())
- func (d *MongoDBDialect) RenderArraySelectPrefix(ctx Context)
- func (d *MongoDBDialect) RenderArraySelectSuffix(ctx Context)
- func (d *MongoDBDialect) RenderAssign(ctx Context, col string, val string)
- func (d *MongoDBDialect) RenderBaseTable(ctx Context)
- func (d *MongoDBDialect) RenderBegin(ctx Context)
- func (d *MongoDBDialect) RenderBooleanEqualsTrue(ctx Context, paramName string)
- func (d *MongoDBDialect) RenderBooleanNotEqualsTrue(ctx Context, paramName string)
- func (d *MongoDBDialect) RenderCast(ctx Context, val func(), typ string)
- func (d *MongoDBDialect) RenderChildCursor(ctx Context, renderChild func())
- func (d *MongoDBDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
- func (d *MongoDBDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
- func (d *MongoDBDialect) RenderDelete(ctx Context, m *qcode.Mutate, where func())
- func (d *MongoDBDialect) RenderDistinctOn(ctx Context, sel *qcode.Select)
- func (d *MongoDBDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
- func (d *MongoDBDialect) RenderGeoOp(ctx Context, table, col string, ex *qcode.Exp) error
- func (d *MongoDBDialect) RenderIDCapture(ctx Context, varName string)
- func (d *MongoDBDialect) RenderInlineChild(ctx Context, renderer InlineChildRenderer, psel, sel *qcode.Select)
- func (d *MongoDBDialect) RenderInsert(ctx Context, m *qcode.Mutate, values func())
- func (d *MongoDBDialect) RenderJSONField(ctx Context, fieldName string, tableAlias string, colName string, isNull bool, ...)
- func (d *MongoDBDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
- func (d *MongoDBDialect) RenderJSONNullField(ctx Context, fieldName string)
- func (d *MongoDBDialect) RenderJSONPath(ctx Context, table, col string, path []string)
- func (d *MongoDBDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
- func (d *MongoDBDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
- func (d *MongoDBDialect) RenderJSONRootField(ctx Context, key string, val func())
- func (d *MongoDBDialect) RenderJSONRootSuffix(ctx Context)
- func (d *MongoDBDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
- func (d *MongoDBDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
- func (d *MongoDBDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
- func (d *MongoDBDialect) RenderLateralJoinClose(ctx Context, alias string)
- func (d *MongoDBDialect) RenderLimit(ctx Context, sel *qcode.Select)
- func (d *MongoDBDialect) RenderLinearConnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MongoDBDialect) RenderLinearDisconnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MongoDBDialect) RenderLinearInsert(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MongoDBDialect) RenderLinearUpdate(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MongoDBDialect) RenderList(ctx Context, ex *qcode.Exp)
- func (d *MongoDBDialect) RenderLiteral(ctx Context, val string, valType qcode.ValType)
- func (d *MongoDBDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
- func (d *MongoDBDialect) RenderMutationCTE(ctx Context, m *qcode.Mutate, renderBody func())
- func (d *MongoDBDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
- func (d *MongoDBDialect) RenderMutationPostamble(ctx Context, qc *qcode.QCode)
- func (d *MongoDBDialect) RenderOp(op qcode.ExpOp) (string, error)
- func (d *MongoDBDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
- func (d *MongoDBDialect) RenderQueryPrefix(ctx Context, qc *qcode.QCode)
- func (d *MongoDBDialect) RenderRecursiveAnchorWhere(ctx Context, psel *qcode.Select, ti sdata.DBTable, pkCol string) bool
- func (d *MongoDBDialect) RenderRecursiveLimit1(ctx Context)
- func (d *MongoDBDialect) RenderRecursiveOffset(ctx Context)
- func (d *MongoDBDialect) RenderReturning(ctx Context, m *qcode.Mutate)
- func (d *MongoDBDialect) RenderRootTerminator(ctx Context)
- func (d *MongoDBDialect) RenderSearchHeadline(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *MongoDBDialect) RenderSearchRank(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *MongoDBDialect) RenderSetSessionVar(ctx Context, name, value string) bool
- func (d *MongoDBDialect) RenderSetup(ctx Context)
- func (d *MongoDBDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
- func (d *MongoDBDialect) RenderTableAlias(ctx Context, alias string)
- func (d *MongoDBDialect) RenderTableName(ctx Context, sel *qcode.Select, schema, table string)
- func (d *MongoDBDialect) RenderTeardown(ctx Context)
- func (d *MongoDBDialect) RenderTryCast(ctx Context, val func(), typ string)
- func (d *MongoDBDialect) RenderTsQuery(ctx Context, ti sdata.DBTable, ex *qcode.Exp)
- func (d *MongoDBDialect) RenderUpdate(ctx Context, m *qcode.Mutate, set func(), from func(), where func())
- func (d *MongoDBDialect) RenderUpsert(ctx Context, m *qcode.Mutate, insert func(), updateSet func())
- func (d *MongoDBDialect) RenderValArrayColumn(ctx Context, ex *qcode.Exp, table string, pid int32)
- func (d *MongoDBDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
- func (d *MongoDBDialect) RenderValVar(ctx Context, ex *qcode.Exp, val string) bool
- func (d *MongoDBDialect) RenderVar(ctx Context, name string)
- func (d *MongoDBDialect) RenderVarDeclaration(ctx Context, name, typeName string)
- func (d *MongoDBDialect) RequiresBooleanAsInt() bool
- func (d *MongoDBDialect) RequiresJSONAsString() bool
- func (d *MongoDBDialect) RequiresJSONQueryWrapper() bool
- func (d *MongoDBDialect) RequiresLowercaseIdentifiers() bool
- func (d *MongoDBDialect) RequiresNullOnEmptySelect() bool
- func (d *MongoDBDialect) RequiresRecursiveCTEColumnList() bool
- func (d *MongoDBDialect) RequiresRecursiveKeyword() bool
- func (d *MongoDBDialect) RoleDummyTable() string
- func (d *MongoDBDialect) RoleLimitSuffix() string
- func (d *MongoDBDialect) RoleSelectPrefix() string
- func (d *MongoDBDialect) SplitQuery(query string) []string
- func (d *MongoDBDialect) SupportsConflictUpdate() bool
- func (d *MongoDBDialect) SupportsLateral() bool
- func (d *MongoDBDialect) SupportsLinearExecution() bool
- func (d *MongoDBDialect) SupportsReturning() bool
- func (d *MongoDBDialect) SupportsSubscriptionBatching() bool
- func (d *MongoDBDialect) SupportsWritableCTE() bool
- func (d *MongoDBDialect) TransformBooleanLiterals(match string) string
- func (d *MongoDBDialect) UseNamedParams() bool
- func (d *MongoDBDialect) WrapRecursiveSelect() bool
- type MySQLDialect
- func (d *MySQLDialect) BindVar(i int) string
- func (d *MySQLDialect) ModifySelectsForMutation(qc *qcode.QCode)
- func (d *MySQLDialect) Name() string
- func (d *MySQLDialect) Quote(ctx Context, col string)
- func (d *MySQLDialect) QuoteIdentifier(s string) string
- func (d *MySQLDialect) RenderArray(ctx Context, items []string)
- func (d *MySQLDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
- func (d *MySQLDialect) RenderArrayRemove(ctx Context, col string, val func())
- func (d *MySQLDialect) RenderArraySelectPrefix(ctx Context)
- func (d *MySQLDialect) RenderArraySelectSuffix(ctx Context)
- func (d *MySQLDialect) RenderAssign(ctx Context, col string, val string)
- func (d *MySQLDialect) RenderBaseTable(ctx Context)
- func (d *MySQLDialect) RenderBegin(ctx Context)
- func (d *MySQLDialect) RenderBooleanEqualsTrue(ctx Context, paramName string)
- func (d *MySQLDialect) RenderBooleanNotEqualsTrue(ctx Context, paramName string)
- func (d *MySQLDialect) RenderCast(ctx Context, val func(), typ string)
- func (d *MySQLDialect) RenderChildCursor(ctx Context, renderChild func())
- func (d *MySQLDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
- func (d *MySQLDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
- func (d *MySQLDialect) RenderDelete(ctx Context, m *qcode.Mutate, where func())
- func (d *MySQLDialect) RenderDistinctOn(ctx Context, sel *qcode.Select)
- func (d *MySQLDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
- func (d *MySQLDialect) RenderGeoOp(ctx Context, table, col string, ex *qcode.Exp) error
- func (d *MySQLDialect) RenderIDCapture(ctx Context, varName string)
- func (d *MySQLDialect) RenderInlineChild(ctx Context, renderer InlineChildRenderer, psel, sel *qcode.Select)
- func (d *MySQLDialect) RenderInsert(ctx Context, m *qcode.Mutate, values func())
- func (d *MySQLDialect) RenderJSONField(ctx Context, fieldName string, tableAlias string, colName string, isNull bool, ...)
- func (d *MySQLDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
- func (d *MySQLDialect) RenderJSONNullField(ctx Context, fieldName string)
- func (d *MySQLDialect) RenderJSONPath(ctx Context, table, col string, path []string)
- func (d *MySQLDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
- func (d *MySQLDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
- func (d *MySQLDialect) RenderJSONRootField(ctx Context, key string, val func())
- func (d *MySQLDialect) RenderJSONRootSuffix(ctx Context)
- func (d *MySQLDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
- func (d *MySQLDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
- func (d *MySQLDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
- func (d *MySQLDialect) RenderLateralJoinClose(ctx Context, alias string)
- func (d *MySQLDialect) RenderLimit(ctx Context, sel *qcode.Select)
- func (d *MySQLDialect) RenderLinearConnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MySQLDialect) RenderLinearDisconnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MySQLDialect) RenderLinearInsert(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MySQLDialect) RenderLinearUpdate(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *MySQLDialect) RenderList(ctx Context, ex *qcode.Exp)
- func (d *MySQLDialect) RenderLiteral(ctx Context, val string, valType qcode.ValType)
- func (d *MySQLDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
- func (d *MySQLDialect) RenderMutationCTE(ctx Context, m *qcode.Mutate, renderBody func())
- func (d *MySQLDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
- func (d *MySQLDialect) RenderMutationPostamble(ctx Context, qc *qcode.QCode)
- func (d *MySQLDialect) RenderOp(op qcode.ExpOp) (string, error)
- func (d *MySQLDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
- func (d *MySQLDialect) RenderQueryPrefix(ctx Context, qc *qcode.QCode)
- func (d *MySQLDialect) RenderRecursiveAnchorWhere(ctx Context, psel *qcode.Select, ti sdata.DBTable, pkCol string) bool
- func (d *MySQLDialect) RenderRecursiveLimit1(ctx Context)
- func (d *MySQLDialect) RenderRecursiveOffset(ctx Context)
- func (d *MySQLDialect) RenderReturning(ctx Context, m *qcode.Mutate)
- func (d *MySQLDialect) RenderRootTerminator(ctx Context)
- func (d *MySQLDialect) RenderSearchHeadline(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *MySQLDialect) RenderSearchRank(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *MySQLDialect) RenderSetSessionVar(ctx Context, name, value string) bool
- func (d *MySQLDialect) RenderSetup(ctx Context)
- func (d *MySQLDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
- func (d *MySQLDialect) RenderTableAlias(ctx Context, alias string)
- func (d *MySQLDialect) RenderTableName(ctx Context, sel *qcode.Select, schema, table string)
- func (d *MySQLDialect) RenderTeardown(ctx Context)
- func (d *MySQLDialect) RenderTryCast(ctx Context, val func(), typ string)
- func (d *MySQLDialect) RenderTsQuery(ctx Context, ti sdata.DBTable, ex *qcode.Exp)
- func (d *MySQLDialect) RenderUpdate(ctx Context, m *qcode.Mutate, set func(), from func(), where func())
- func (d *MySQLDialect) RenderUpsert(ctx Context, m *qcode.Mutate, insert func(), updateSet func())
- func (d *MySQLDialect) RenderValArrayColumn(ctx Context, ex *qcode.Exp, table string, pid int32)
- func (d *MySQLDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
- func (d *MySQLDialect) RenderValVar(ctx Context, ex *qcode.Exp, val string) bool
- func (d *MySQLDialect) RenderVar(ctx Context, name string)
- func (d *MySQLDialect) RenderVarDeclaration(ctx Context, name, typeName string)
- func (d *MySQLDialect) RequiresBooleanAsInt() bool
- func (d *MySQLDialect) RequiresJSONAsString() bool
- func (d *MySQLDialect) RequiresJSONQueryWrapper() bool
- func (d *MySQLDialect) RequiresLowercaseIdentifiers() bool
- func (d *MySQLDialect) RequiresNullOnEmptySelect() bool
- func (d *MySQLDialect) RequiresRecursiveCTEColumnList() bool
- func (d *MySQLDialect) RequiresRecursiveKeyword() bool
- func (d *MySQLDialect) RoleDummyTable() string
- func (d *MySQLDialect) RoleLimitSuffix() string
- func (d *MySQLDialect) RoleSelectPrefix() string
- func (d *MySQLDialect) SplitQuery(query string) (parts []string)
- func (d *MySQLDialect) SupportsConflictUpdate() bool
- func (d *MySQLDialect) SupportsLateral() bool
- func (d *MySQLDialect) SupportsLinearExecution() bool
- func (d *MySQLDialect) SupportsReturning() bool
- func (d *MySQLDialect) SupportsSubscriptionBatching() bool
- func (d *MySQLDialect) SupportsWritableCTE() bool
- func (d *MySQLDialect) TransformBooleanLiterals(match string) string
- func (d *MySQLDialect) UseNamedParams() bool
- func (d *MySQLDialect) WrapRecursiveSelect() bool
- type NameMapSetter
- type OracleDialect
- func (d *OracleDialect) BindVar(i int) string
- func (d *OracleDialect) ModifySelectsForMutation(qc *qcode.QCode)
- func (d *OracleDialect) Name() string
- func (d *OracleDialect) QuoteIdentifier(s string) string
- func (d *OracleDialect) RenderArray(ctx Context, items []string)
- func (d *OracleDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
- func (d *OracleDialect) RenderArrayRemove(ctx Context, col string, val func())
- func (d *OracleDialect) RenderArraySelectPrefix(ctx Context)
- func (d *OracleDialect) RenderArraySelectSuffix(ctx Context)
- func (d *OracleDialect) RenderAssign(ctx Context, col string, val string)
- func (d *OracleDialect) RenderBaseTable(ctx Context)
- func (d *OracleDialect) RenderBegin(ctx Context)
- func (d *OracleDialect) RenderBooleanEqualsTrue(ctx Context, paramName string)
- func (d *OracleDialect) RenderBooleanNotEqualsTrue(ctx Context, paramName string)
- func (d *OracleDialect) RenderCast(ctx Context, val func(), typ string)
- func (d *OracleDialect) RenderChildCursor(ctx Context, renderChild func())
- func (d *OracleDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
- func (d *OracleDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
- func (d *OracleDialect) RenderDelete(ctx Context, m *qcode.Mutate, where func())
- func (d *OracleDialect) RenderDistinctOn(ctx Context, sel *qcode.Select)
- func (d *OracleDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
- func (d *OracleDialect) RenderGeoOp(ctx Context, table, col string, ex *qcode.Exp) error
- func (d *OracleDialect) RenderIDCapture(ctx Context, varName string)
- func (d *OracleDialect) RenderInlineChild(ctx Context, renderer InlineChildRenderer, psel, sel *qcode.Select)
- func (d *OracleDialect) RenderInsert(ctx Context, m *qcode.Mutate, values func())
- func (d *OracleDialect) RenderJSONField(ctx Context, fieldName string, tableAlias string, colName string, isNull bool, ...)
- func (d *OracleDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
- func (d *OracleDialect) RenderJSONNullField(ctx Context, fieldName string)
- func (d *OracleDialect) RenderJSONPath(ctx Context, table, col string, path []string)
- func (d *OracleDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
- func (d *OracleDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
- func (d *OracleDialect) RenderJSONRootField(ctx Context, key string, val func())
- func (d *OracleDialect) RenderJSONRootSuffix(ctx Context)
- func (d *OracleDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
- func (d *OracleDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
- func (d *OracleDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
- func (d *OracleDialect) RenderLateralJoinClose(ctx Context, alias string)
- func (d *OracleDialect) RenderLimit(ctx Context, sel *qcode.Select)
- func (d *OracleDialect) RenderLinearConnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *OracleDialect) RenderLinearDisconnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *OracleDialect) RenderLinearInsert(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *OracleDialect) RenderLinearUpdate(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *OracleDialect) RenderList(ctx Context, ex *qcode.Exp)
- func (d *OracleDialect) RenderLiteral(ctx Context, val string, valType qcode.ValType)
- func (d *OracleDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
- func (d *OracleDialect) RenderMutationCTE(ctx Context, m *qcode.Mutate, renderBody func())
- func (d *OracleDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
- func (d *OracleDialect) RenderMutationPostamble(ctx Context, qc *qcode.QCode)
- func (d *OracleDialect) RenderOp(op qcode.ExpOp) (string, error)
- func (d *OracleDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
- func (d *OracleDialect) RenderQueryPrefix(ctx Context, qc *qcode.QCode)
- func (d *OracleDialect) RenderRecursiveAnchorWhere(ctx Context, psel *qcode.Select, ti sdata.DBTable, pkCol string) bool
- func (d *OracleDialect) RenderRecursiveLimit1(ctx Context)
- func (d *OracleDialect) RenderRecursiveOffset(ctx Context)
- func (d *OracleDialect) RenderReturning(ctx Context, m *qcode.Mutate)
- func (d *OracleDialect) RenderRootTerminator(ctx Context)
- func (d *OracleDialect) RenderSearchHeadline(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *OracleDialect) RenderSearchRank(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *OracleDialect) RenderSetSessionVar(ctx Context, name, value string) bool
- func (d *OracleDialect) RenderSetup(ctx Context)
- func (d *OracleDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
- func (d *OracleDialect) RenderTableAlias(ctx Context, alias string)
- func (d *OracleDialect) RenderTableName(ctx Context, sel *qcode.Select, schema, table string)
- func (d *OracleDialect) RenderTeardown(ctx Context)
- func (d *OracleDialect) RenderTryCast(ctx Context, val func(), typ string)
- func (d *OracleDialect) RenderTsQuery(ctx Context, ti sdata.DBTable, ex *qcode.Exp)
- func (d *OracleDialect) RenderUpdate(ctx Context, m *qcode.Mutate, set func(), from func(), where func())
- func (d *OracleDialect) RenderUpsert(ctx Context, m *qcode.Mutate, insert func(), updateSet func())
- func (d *OracleDialect) RenderValArrayColumn(ctx Context, ex *qcode.Exp, table string, pid int32)
- func (d *OracleDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
- func (d *OracleDialect) RenderValVar(ctx Context, ex *qcode.Exp, val string) bool
- func (d *OracleDialect) RenderVar(ctx Context, name string)
- func (d *OracleDialect) RenderVarDeclaration(ctx Context, name, typeName string)
- func (d *OracleDialect) RequiresBooleanAsInt() bool
- func (d *OracleDialect) RequiresJSONAsString() bool
- func (d *OracleDialect) RequiresJSONQueryWrapper() bool
- func (d *OracleDialect) RequiresLowercaseIdentifiers() bool
- func (d *OracleDialect) RequiresNullOnEmptySelect() bool
- func (d *OracleDialect) RequiresRecursiveCTEColumnList() bool
- func (d *OracleDialect) RequiresRecursiveKeyword() bool
- func (d *OracleDialect) RoleDummyTable() string
- func (d *OracleDialect) RoleLimitSuffix() string
- func (d *OracleDialect) RoleSelectPrefix() string
- func (d *OracleDialect) SplitQuery(query string) (parts []string)
- func (d *OracleDialect) SupportsConflictUpdate() bool
- func (d *OracleDialect) SupportsLateral() bool
- func (d *OracleDialect) SupportsLinearExecution() bool
- func (d *OracleDialect) SupportsReturning() bool
- func (d *OracleDialect) SupportsSubscriptionBatching() bool
- func (d *OracleDialect) SupportsWritableCTE() bool
- func (d *OracleDialect) TransformBooleanLiterals(match string) string
- func (d *OracleDialect) UseNamedParams() bool
- func (d *OracleDialect) WrapRecursiveSelect() bool
- type Param
- type PostgresDialect
- func (d *PostgresDialect) BindVar(i int) string
- func (d *PostgresDialect) ModifySelectsForMutation(qc *qcode.QCode)
- func (d *PostgresDialect) Name() string
- func (d *PostgresDialect) QuoteIdentifier(s string) string
- func (d *PostgresDialect) RenderArray(ctx Context, items []string)
- func (d *PostgresDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
- func (d *PostgresDialect) RenderArrayRemove(ctx Context, col string, val func())
- func (d *PostgresDialect) RenderArraySelectPrefix(ctx Context)
- func (d *PostgresDialect) RenderArraySelectSuffix(ctx Context)
- func (d *PostgresDialect) RenderAssign(ctx Context, col string, val string)
- func (d *PostgresDialect) RenderBaseTable(ctx Context)
- func (d *PostgresDialect) RenderBegin(ctx Context)
- func (d *PostgresDialect) RenderBooleanEqualsTrue(ctx Context, paramName string)
- func (d *PostgresDialect) RenderBooleanNotEqualsTrue(ctx Context, paramName string)
- func (d *PostgresDialect) RenderCast(ctx Context, val func(), typ string)
- func (d *PostgresDialect) RenderChildCursor(ctx Context, renderChild func())
- func (d *PostgresDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
- func (d *PostgresDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
- func (d *PostgresDialect) RenderDelete(ctx Context, m *qcode.Mutate, where func())
- func (d *PostgresDialect) RenderDistinctOn(ctx Context, sel *qcode.Select)
- func (d *PostgresDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
- func (d *PostgresDialect) RenderGeoOp(ctx Context, table, col string, ex *qcode.Exp) error
- func (d *PostgresDialect) RenderIDCapture(ctx Context, varName string)
- func (d *PostgresDialect) RenderInlineChild(ctx Context, renderer InlineChildRenderer, psel, sel *qcode.Select)
- func (d *PostgresDialect) RenderInsert(ctx Context, m *qcode.Mutate, values func())
- func (d *PostgresDialect) RenderJSONField(ctx Context, fieldName string, tableAlias string, colName string, isNull bool, ...)
- func (d *PostgresDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
- func (d *PostgresDialect) RenderJSONNullField(ctx Context, fieldName string)
- func (d *PostgresDialect) RenderJSONPath(ctx Context, table, col string, path []string)
- func (d *PostgresDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
- func (d *PostgresDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
- func (d *PostgresDialect) RenderJSONRootField(ctx Context, key string, val func())
- func (d *PostgresDialect) RenderJSONRootSuffix(ctx Context)
- func (d *PostgresDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
- func (d *PostgresDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
- func (d *PostgresDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
- func (d *PostgresDialect) RenderLateralJoinClose(ctx Context, alias string)
- func (d *PostgresDialect) RenderLimit(ctx Context, sel *qcode.Select)
- func (d *PostgresDialect) RenderLinearConnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *PostgresDialect) RenderLinearDisconnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *PostgresDialect) RenderLinearInsert(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *PostgresDialect) RenderLinearUpdate(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *PostgresDialect) RenderList(ctx Context, ex *qcode.Exp)
- func (d *PostgresDialect) RenderLiteral(ctx Context, val string, valType qcode.ValType)
- func (d *PostgresDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
- func (d *PostgresDialect) RenderMutationCTE(ctx Context, m *qcode.Mutate, renderBody func())
- func (d *PostgresDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
- func (d *PostgresDialect) RenderMutationPostamble(ctx Context, qc *qcode.QCode)
- func (d *PostgresDialect) RenderOp(op qcode.ExpOp) (string, error)
- func (d *PostgresDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
- func (d *PostgresDialect) RenderQueryPrefix(ctx Context, qc *qcode.QCode)
- func (d *PostgresDialect) RenderRecursiveAnchorWhere(ctx Context, psel *qcode.Select, ti sdata.DBTable, pkCol string) bool
- func (d *PostgresDialect) RenderRecursiveLimit1(ctx Context)
- func (d *PostgresDialect) RenderRecursiveOffset(ctx Context)
- func (d *PostgresDialect) RenderReturning(ctx Context, m *qcode.Mutate)
- func (d *PostgresDialect) RenderRootTerminator(ctx Context)
- func (d *PostgresDialect) RenderSearchHeadline(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *PostgresDialect) RenderSearchRank(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *PostgresDialect) RenderSetSessionVar(ctx Context, name, value string) bool
- func (d *PostgresDialect) RenderSetup(ctx Context)
- func (d *PostgresDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
- func (d *PostgresDialect) RenderTableAlias(ctx Context, alias string)
- func (d *PostgresDialect) RenderTableName(ctx Context, sel *qcode.Select, schema, table string)
- func (d *PostgresDialect) RenderTeardown(ctx Context)
- func (d *PostgresDialect) RenderTryCast(ctx Context, val func(), typ string)
- func (d *PostgresDialect) RenderTsQuery(ctx Context, ti sdata.DBTable, ex *qcode.Exp)
- func (d *PostgresDialect) RenderUpdate(ctx Context, m *qcode.Mutate, set func(), from func(), where func())
- func (d *PostgresDialect) RenderUpsert(ctx Context, m *qcode.Mutate, insert func(), updateSet func())
- func (d *PostgresDialect) RenderValArrayColumn(ctx Context, ex *qcode.Exp, table string, pid int32)
- func (d *PostgresDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
- func (d *PostgresDialect) RenderValVar(ctx Context, ex *qcode.Exp, val string) bool
- func (d *PostgresDialect) RenderVar(ctx Context, name string)
- func (d *PostgresDialect) RenderVarDeclaration(ctx Context, name, typeName string)
- func (d *PostgresDialect) RequiresBooleanAsInt() bool
- func (d *PostgresDialect) RequiresJSONAsString() bool
- func (d *PostgresDialect) RequiresJSONQueryWrapper() bool
- func (d *PostgresDialect) RequiresLowercaseIdentifiers() bool
- func (d *PostgresDialect) RequiresNullOnEmptySelect() bool
- func (d *PostgresDialect) RequiresRecursiveCTEColumnList() bool
- func (d *PostgresDialect) RequiresRecursiveKeyword() bool
- func (d *PostgresDialect) RoleDummyTable() string
- func (d *PostgresDialect) RoleLimitSuffix() string
- func (d *PostgresDialect) RoleSelectPrefix() string
- func (d *PostgresDialect) SplitQuery(query string) (parts []string)
- func (d *PostgresDialect) SupportsConflictUpdate() bool
- func (d *PostgresDialect) SupportsLateral() bool
- func (d *PostgresDialect) SupportsLinearExecution() bool
- func (d *PostgresDialect) SupportsReturning() bool
- func (d *PostgresDialect) SupportsSubscriptionBatching() bool
- func (d *PostgresDialect) SupportsWritableCTE() bool
- func (d *PostgresDialect) TransformBooleanLiterals(match string) string
- func (d *PostgresDialect) UseNamedParams() bool
- func (d *PostgresDialect) WrapRecursiveSelect() bool
- type SQLiteDialect
- func (d *SQLiteDialect) BindVar(i int) string
- func (d *SQLiteDialect) ModifySelectsForMutation(qc *qcode.QCode)
- func (d *SQLiteDialect) Name() string
- func (d *SQLiteDialect) Quote(ctx Context, col string)
- func (d *SQLiteDialect) QuoteIdentifier(s string) string
- func (d *SQLiteDialect) RenderArray(ctx Context, items []string)
- func (d *SQLiteDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
- func (d *SQLiteDialect) RenderArrayRemove(ctx Context, col string, val func())
- func (d *SQLiteDialect) RenderArraySelectPrefix(ctx Context)
- func (d *SQLiteDialect) RenderArraySelectSuffix(ctx Context)
- func (d *SQLiteDialect) RenderAssign(ctx Context, col string, val string)
- func (d *SQLiteDialect) RenderBaseTable(ctx Context)
- func (d *SQLiteDialect) RenderBegin(ctx Context)
- func (d *SQLiteDialect) RenderBooleanEqualsTrue(ctx Context, paramName string)
- func (d *SQLiteDialect) RenderBooleanNotEqualsTrue(ctx Context, paramName string)
- func (d *SQLiteDialect) RenderCast(ctx Context, val func(), typ string)
- func (d *SQLiteDialect) RenderChildCursor(ctx Context, renderChild func())
- func (d *SQLiteDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
- func (d *SQLiteDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
- func (d *SQLiteDialect) RenderDelete(ctx Context, m *qcode.Mutate, where func())
- func (d *SQLiteDialect) RenderDistinctOn(ctx Context, sel *qcode.Select)
- func (d *SQLiteDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
- func (d *SQLiteDialect) RenderGeoOp(ctx Context, table, col string, ex *qcode.Exp) error
- func (d *SQLiteDialect) RenderIDCapture(ctx Context, varName string)
- func (d *SQLiteDialect) RenderInlineChild(ctx Context, renderer InlineChildRenderer, psel, sel *qcode.Select)
- func (d *SQLiteDialect) RenderInsert(ctx Context, m *qcode.Mutate, values func())
- func (d *SQLiteDialect) RenderJSONField(ctx Context, fieldName string, tableAlias string, colName string, isNull bool, ...)
- func (d *SQLiteDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
- func (d *SQLiteDialect) RenderJSONNullField(ctx Context, fieldName string)
- func (d *SQLiteDialect) RenderJSONPath(ctx Context, table, col string, path []string)
- func (d *SQLiteDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
- func (d *SQLiteDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
- func (d *SQLiteDialect) RenderJSONRootField(ctx Context, key string, val func())
- func (d *SQLiteDialect) RenderJSONRootSuffix(ctx Context)
- func (d *SQLiteDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
- func (d *SQLiteDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
- func (d *SQLiteDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
- func (d *SQLiteDialect) RenderLateralJoinClose(ctx Context, alias string)
- func (d *SQLiteDialect) RenderLimit(ctx Context, sel *qcode.Select)
- func (d *SQLiteDialect) RenderLinearConnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *SQLiteDialect) RenderLinearDisconnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *SQLiteDialect) RenderLinearInsert(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *SQLiteDialect) RenderLinearUpdate(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *SQLiteDialect) RenderLinearValues(ctx Context, m *qcode.Mutate, renderRoot func())
- func (d *SQLiteDialect) RenderList(ctx Context, ex *qcode.Exp)
- func (d *SQLiteDialect) RenderLiteral(ctx Context, val string, valType qcode.ValType)
- func (d *SQLiteDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
- func (d *SQLiteDialect) RenderMutationCTE(ctx Context, m *qcode.Mutate, renderBody func())
- func (d *SQLiteDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
- func (d *SQLiteDialect) RenderMutationPostamble(ctx Context, qc *qcode.QCode)
- func (d *SQLiteDialect) RenderOp(op qcode.ExpOp) (string, error)
- func (d *SQLiteDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
- func (d *SQLiteDialect) RenderQueryPrefix(ctx Context, qc *qcode.QCode)
- func (d *SQLiteDialect) RenderRecursiveAnchorWhere(ctx Context, psel *qcode.Select, ti sdata.DBTable, pkCol string) bool
- func (d *SQLiteDialect) RenderRecursiveLimit1(ctx Context)
- func (d *SQLiteDialect) RenderRecursiveOffset(ctx Context)
- func (d *SQLiteDialect) RenderReturning(ctx Context, m *qcode.Mutate)
- func (d *SQLiteDialect) RenderRootTerminator(ctx Context)
- func (d *SQLiteDialect) RenderSearchHeadline(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *SQLiteDialect) RenderSearchRank(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *SQLiteDialect) RenderSetSessionVar(ctx Context, name, value string) bool
- func (d *SQLiteDialect) RenderSetup(ctx Context)
- func (d *SQLiteDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
- func (d *SQLiteDialect) RenderTableAlias(ctx Context, alias string)
- func (d *SQLiteDialect) RenderTableName(ctx Context, sel *qcode.Select, schema, table string)
- func (d *SQLiteDialect) RenderTeardown(ctx Context)
- func (d *SQLiteDialect) RenderTryCast(ctx Context, val func(), typ string)
- func (d *SQLiteDialect) RenderTsQuery(ctx Context, ti sdata.DBTable, ex *qcode.Exp)
- func (d *SQLiteDialect) RenderUpdate(ctx Context, m *qcode.Mutate, set func(), from func(), where func())
- func (d *SQLiteDialect) RenderUpsert(ctx Context, m *qcode.Mutate, insert func(), updateSet func())
- func (d *SQLiteDialect) RenderValArrayColumn(ctx Context, ex *qcode.Exp, table string, pid int32)
- func (d *SQLiteDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
- func (d *SQLiteDialect) RenderValVar(ctx Context, ex *qcode.Exp, val string) bool
- func (d *SQLiteDialect) RenderVar(ctx Context, name string)
- func (d *SQLiteDialect) RenderVarDeclaration(ctx Context, name, typeName string)
- func (d *SQLiteDialect) RequiresBooleanAsInt() bool
- func (d *SQLiteDialect) RequiresJSONAsString() bool
- func (d *SQLiteDialect) RequiresJSONQueryWrapper() bool
- func (d *SQLiteDialect) RequiresLowercaseIdentifiers() bool
- func (d *SQLiteDialect) RequiresNullOnEmptySelect() bool
- func (d *SQLiteDialect) RequiresRecursiveCTEColumnList() bool
- func (d *SQLiteDialect) RequiresRecursiveKeyword() bool
- func (d *SQLiteDialect) RoleDummyTable() string
- func (d *SQLiteDialect) RoleLimitSuffix() string
- func (d *SQLiteDialect) RoleSelectPrefix() string
- func (d *SQLiteDialect) SplitQuery(query string) (parts []string)
- func (d *SQLiteDialect) SupportsConflictUpdate() bool
- func (d *SQLiteDialect) SupportsLateral() bool
- func (d *SQLiteDialect) SupportsLinearExecution() bool
- func (d *SQLiteDialect) SupportsReturning() bool
- func (d *SQLiteDialect) SupportsSubscriptionBatching() bool
- func (d *SQLiteDialect) SupportsWritableCTE() bool
- func (d *SQLiteDialect) TransformBooleanLiterals(match string) string
- func (d *SQLiteDialect) UseNamedParams() bool
- func (d *SQLiteDialect) WrapRecursiveSelect() bool
- type SnowflakeDialect
- func (d *SnowflakeDialect) BindVar(i int) string
- func (d *SnowflakeDialect) ModifySelectsForMutation(qc *qcode.QCode)
- func (d *SnowflakeDialect) Name() string
- func (d *SnowflakeDialect) QuoteIdentifier(s string) string
- func (d *SnowflakeDialect) RenderArray(ctx Context, items []string)
- func (d *SnowflakeDialect) RenderBegin(ctx Context)
- func (d *SnowflakeDialect) RenderCast(ctx Context, val func(), typ string)
- func (d *SnowflakeDialect) RenderChildCursor(ctx Context, renderChild func())
- func (d *SnowflakeDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
- func (d *SnowflakeDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
- func (d *SnowflakeDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
- func (d *SnowflakeDialect) RenderGeoOp(ctx Context, table, col string, ex *qcode.Exp) error
- func (d *SnowflakeDialect) RenderIDCapture(ctx Context, varName string)
- func (d *SnowflakeDialect) RenderInlineChild(ctx Context, renderer InlineChildRenderer, psel, sel *qcode.Select)
- func (d *SnowflakeDialect) RenderJSONField(ctx Context, fieldName string, tableAlias string, colName string, isNull bool, ...)
- func (d *SnowflakeDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
- func (d *SnowflakeDialect) RenderJSONNullField(ctx Context, fieldName string)
- func (d *SnowflakeDialect) RenderJSONPath(ctx Context, table, col string, path []string)
- func (d *SnowflakeDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
- func (d *SnowflakeDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
- func (d *SnowflakeDialect) RenderJSONRootField(ctx Context, key string, val func())
- func (d *SnowflakeDialect) RenderJSONRootSuffix(ctx Context)
- func (d *SnowflakeDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
- func (d *SnowflakeDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
- func (d *SnowflakeDialect) RenderLinearConnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *SnowflakeDialect) RenderLinearDisconnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *SnowflakeDialect) RenderLinearInsert(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *SnowflakeDialect) RenderLinearUpdate(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, ...)
- func (d *SnowflakeDialect) RenderList(ctx Context, ex *qcode.Exp)
- func (d *SnowflakeDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
- func (d *SnowflakeDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
- func (d *SnowflakeDialect) RenderOp(op qcode.ExpOp) (string, error)
- func (d *SnowflakeDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
- func (d *SnowflakeDialect) RenderRecursiveAnchorWhere(ctx Context, psel *qcode.Select, ti sdata.DBTable, pkCol string) bool
- func (d *SnowflakeDialect) RenderSearchHeadline(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *SnowflakeDialect) RenderSearchRank(ctx Context, sel *qcode.Select, f qcode.Field)
- func (d *SnowflakeDialect) RenderSetup(ctx Context)
- func (d *SnowflakeDialect) RenderTeardown(ctx Context)
- func (d *SnowflakeDialect) RenderTryCast(ctx Context, val func(), typ string)
- func (d *SnowflakeDialect) RenderTsQuery(ctx Context, ti sdata.DBTable, ex *qcode.Exp)
- func (d *SnowflakeDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
- func (d *SnowflakeDialect) RenderValVar(ctx Context, ex *qcode.Exp, val string) bool
- func (d *SnowflakeDialect) RenderVar(ctx Context, name string)
- func (d *SnowflakeDialect) RenderVarDeclaration(ctx Context, name, typeName string)
- func (d *SnowflakeDialect) RequiresBooleanAsInt() bool
- func (d *SnowflakeDialect) RequiresJSONAsString() bool
- func (d *SnowflakeDialect) RequiresLowercaseIdentifiers() bool
- func (d *SnowflakeDialect) RequiresNullOnEmptySelect() bool
- func (d *SnowflakeDialect) SplitQuery(query string) (parts []string)
- func (d *SnowflakeDialect) SupportsLateral() bool
- func (d *SnowflakeDialect) SupportsLinearExecution() bool
- func (d *SnowflakeDialect) SupportsReturning() bool
- func (d *SnowflakeDialect) SupportsSubscriptionBatching() bool
- func (d *SnowflakeDialect) SupportsWritableCTE() bool
- func (d *SnowflakeDialect) UseNamedParams() bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Context ¶
type Context interface {
Write(s string) (int, error)
WriteString(s string) (int, error) // io.StringWriter
AddParam(p Param) string
// Helpers commonly used by dialects
Quote(s string)
ColWithTable(table, col string)
RenderJSONFields(sel *qcode.Select)
IsTableMutated(table string) bool
RenderExp(ti sdata.DBTable, ex *qcode.Exp)
GetStaticVar(name string) (string, bool) // Get config-level variable
GetSecPrefix() string // Get security prefix for cursor encryption
}
type Dialect ¶
type Dialect interface {
Name() string
RenderLimit(ctx Context, sel *qcode.Select)
RenderJSONRoot(ctx Context, sel *qcode.Select)
RenderJSONSelect(ctx Context, sel *qcode.Select)
RenderJSONPlural(ctx Context, sel *qcode.Select)
RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
RenderJoinTables(ctx Context, sel *qcode.Select)
RenderCursorCTE(ctx Context, sel *qcode.Select)
RenderOrderBy(ctx Context, sel *qcode.Select)
RenderDistinctOn(ctx Context, sel *qcode.Select)
RenderFromEdge(ctx Context, sel *qcode.Select) // For embedded/JSONTable vs RecordSet
RenderJSONPath(ctx Context, table, col string, path []string)
RenderList(ctx Context, ex *qcode.Exp)
RenderOp(op qcode.ExpOp) (string, error)
RenderGeoOp(ctx Context, table, col string, ex *qcode.Exp) error // GIS spatial operator rendering
RenderValPrefix(ctx Context, ex *qcode.Exp) bool
RenderTsQuery(ctx Context, ti sdata.DBTable, ex *qcode.Exp)
RenderSearchRank(ctx Context, sel *qcode.Select, f qcode.Field)
RenderSearchHeadline(ctx Context, sel *qcode.Select, f qcode.Field)
RenderValVar(ctx Context, ex *qcode.Exp, val string) bool
RenderValArrayColumn(ctx Context, ex *qcode.Exp, table string, pid int32)
RenderArray(ctx Context, items []string)
RenderLiteral(ctx Context, val string, valType qcode.ValType)
RenderBooleanEqualsTrue(ctx Context, paramName string)
RenderBooleanNotEqualsTrue(ctx Context, paramName string)
RenderJSONField(ctx Context, fieldName string, tableAlias string, colName string, isNull bool, isJSON bool)
RenderRootTerminator(ctx Context)
RenderBaseTable(ctx Context)
RenderJSONRootField(ctx Context, key string, val func())
RenderTableName(ctx Context, sel *qcode.Select, schema, table string)
RenderTableAlias(ctx Context, alias string)
RenderLateralJoinClose(ctx Context, alias string)
// Parameter Handling
BindVar(i int) string
UseNamedParams() bool
SupportsLateral() bool
// Identifier quoting - each dialect uses different quote characters
QuoteIdentifier(s string) string
// Inline child rendering for dialects without LATERAL support
// renderer provides callbacks to compiler methods
RenderInlineChild(ctx Context, renderer InlineChildRenderer, psel, sel *qcode.Select)
RenderChildCursor(ctx Context, renderChild func())
RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
// Mutation and Subscriptions
SupportsReturning() bool
SupportsWritableCTE() bool
SupportsConflictUpdate() bool
SupportsSubscriptionBatching() bool
RenderMutationCTE(ctx Context, m *qcode.Mutate, renderBody func())
RenderMutationInput(ctx Context, qc *qcode.QCode)
RenderMutationPostamble(ctx Context, qc *qcode.QCode)
RenderInsert(ctx Context, m *qcode.Mutate, values func())
RenderUpdate(ctx Context, m *qcode.Mutate, set func(), from func(), where func())
RenderDelete(ctx Context, m *qcode.Mutate, where func())
RenderUpsert(ctx Context, m *qcode.Mutate, insert func(), updateSet func())
RenderReturning(ctx Context, m *qcode.Mutate)
RenderAssign(ctx Context, col string, val string)
RenderCast(ctx Context, val func(), typ string)
RenderTryCast(ctx Context, val func(), typ string)
RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
// Linear Execution (for MySQL/SQLite)
SupportsLinearExecution() bool
RenderIDCapture(ctx Context, varName string)
RenderVar(ctx Context, name string)
RenderSetup(ctx Context)
RenderBegin(ctx Context)
RenderTeardown(ctx Context)
RenderVarDeclaration(ctx Context, name, typeName string)
RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
RenderSetSessionVar(ctx Context, name, value string) bool
RenderLinearInsert(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, renderColVal func(qcode.MColumn))
RenderLinearUpdate(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, renderColVal func(qcode.MColumn), renderWhere func())
RenderLinearConnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, renderFilter func())
RenderLinearDisconnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, renderFilter func())
ModifySelectsForMutation(qc *qcode.QCode)
RenderQueryPrefix(ctx Context, qc *qcode.QCode)
SplitQuery(query string) []string
// Role Statement rendering (moves db-specific code from core/rolestmt.go)
// These return strings since they're used outside the psql compiler context
RoleSelectPrefix() string // "SELECT TOP 1 (CASE" vs "SELECT (CASE"
RoleLimitSuffix() string // Close with/without LIMIT 1
RoleDummyTable() string // Database-specific dummy table
TransformBooleanLiterals(match string) string // "true"→"1" for MSSQL
// Driver Behavior (moves db-specific code from core/args.go and core/core.go)
RequiresJSONAsString() bool // Oracle/MSSQL need JSON as string
RequiresLowercaseIdentifiers() bool // Oracle needs lowercase schemas
RequiresBooleanAsInt() bool // Oracle needs bool as 1/0 (PL/SQL BOOLEAN can't be used in SQL)
// Recursive CTE Syntax (moves db-specific code from psql/recur.go)
RequiresRecursiveKeyword() bool // Oracle doesn't use RECURSIVE
RequiresRecursiveCTEColumnList() bool // Oracle requires explicit column alias list
RenderRecursiveOffset(ctx Context) // OFFSET 1 vs LIMIT -1 OFFSET 1 vs LIMIT 1, MAX
RenderRecursiveLimit1(ctx Context) // LIMIT 1 vs FETCH FIRST 1 ROWS ONLY
WrapRecursiveSelect() bool // SQLite needs extra SELECT * FROM (...)
// RenderRecursiveAnchorWhere renders the WHERE clause for recursive CTE anchor
// Returns true if it handled the WHERE rendering, false to use default correlation
// For Oracle/MSSQL: inline parent's WHERE expression (no outer scope correlation)
// For Postgres/MySQL: return false to use default outer scope correlation
RenderRecursiveAnchorWhere(ctx Context, psel *qcode.Select, ti sdata.DBTable, pkCol string) bool
// JSON Null Fields (moves db-specific code from psql/query.go)
RenderJSONNullField(ctx Context, fieldName string) // NULL field syntax
RenderJSONNullCursorField(ctx Context, fieldName string) // NULL cursor field syntax
RenderJSONRootSuffix(ctx Context) // FOR JSON PATH for MSSQL, empty for others
// Array Operations (moves db-specific code from psql/mutate.go)
RenderArraySelectPrefix(ctx Context) // ARRAY(SELECT vs (SELECT JSON_ARRAYAGG(
RenderArraySelectSuffix(ctx Context) // ) vs ))
RenderArrayAggPrefix(ctx Context, distinct bool) // ARRAY_AGG vs json_group_array vs JSON_ARRAYAGG
RenderArrayRemove(ctx Context, col string, val func()) // array_remove vs JSON_REMOVE
// Column rendering (moves db-specific code from psql/columns.go)
RequiresJSONQueryWrapper() bool // MariaDB needs JSON_QUERY wrapper for inline children
RequiresNullOnEmptySelect() bool // MySQL/SQLite/MariaDB need NULL when no columns rendered
}
type FullMutationCompiler ¶
type FullMutationCompiler interface {
// CompileFullMutation generates the complete mutation output.
// Returns true if it handled the compilation, false to use default SQL generation.
CompileFullMutation(ctx Context, qc *qcode.QCode) bool
}
FullMutationCompiler is an optional interface that dialects can implement to handle entire mutation compilation themselves (bypassing SQL generation). This is used by MongoDB which generates JSON mutation DSL, not SQL.
type FullQueryCompiler ¶
type FullQueryCompiler interface {
// CompileFullQuery generates the complete query output.
// Returns true if it handled the compilation, false to use default SQL generation.
CompileFullQuery(ctx Context, qc *qcode.QCode) bool
}
FullQueryCompiler is an optional interface that dialects can implement to handle entire query compilation themselves (bypassing SQL generation). This is used by MongoDB which generates JSON query DSL, not SQL.
type InlineChildRenderer ¶
type InlineChildRenderer interface {
RenderTable(sel *qcode.Select, schema, table string, alias bool)
RenderJoin(join qcode.Join)
RenderLimit(sel *qcode.Select)
RenderOrderBy(sel *qcode.Select)
RenderWhereExp(psel, sel *qcode.Select, ex interface{})
RenderInlineChild(psel, sel *qcode.Select)
RenderDefaultInlineChild(sel *qcode.Select) // For dialects that want to use the default implementation
GetChild(id int32) *qcode.Select
ColWithTable(table, col string)
Quoted(s string)
Squoted(s string)
RenderExp(ti sdata.DBTable, ex *qcode.Exp)
GetConfigVar(name string) (string, bool) // Returns config var value and whether it exists
GetSecPrefix() string
GetRootWithCursor() *qcode.Select // Returns first root select with cursor pagination
}
InlineChildRenderer is passed to dialects for rendering inline children It provides callbacks to compiler methods that dialects need
type MSSQLDialect ¶
type MSSQLDialect struct {
DBVersion int
EnableCamelcase bool
NameMap map[string]string // normalized→original identifier mapping
}
MSSQLDialect implements the Dialect interface for Microsoft SQL Server. Target version: SQL Server 2017+ (for STRING_AGG and JSON support)
Working Features ¶
Basic queries work including:
- Simple queries with limit, offset, order_by, distinct
- Parent-child and child-parent relationships
- Many-to-many via join tables (partial support)
- Aggregation (count, sum, avg, etc.)
- Fragments
- WHERE clauses with simple conditions
- Remote API joins
- Query caching (APQ)
- Allow lists and namespace support
## Basic Mutations Simple INSERT/UPDATE/DELETE mutations work:
- Single table inserts with SCOPE_IDENTITY() for auto-generated IDs
- Inserts with explicit ID values
- Transaction support
- Inline bulk inserts
Known Limitations ¶
The following features are not yet fully implemented for MSSQL:
## Nested/Related Table Mutations Mutations involving related tables fail with "t.id could not be bound". The table alias reference pattern used for nested inserts needs MSSQL-specific handling.
## Functions Table-returning functions and field functions are not discovered from schema. MSSQL uses different system tables for function metadata.
## Array Columns MSSQL does not have native array column support like PostgreSQL. WHERE IN with array columns fails.
## Cursor Pagination Cursor pagination fails with "Invalid object name '__cur'". The cursor CTE implementation needs MSSQL-specific syntax.
## Subscriptions Real-time subscriptions are not yet implemented for MSSQL.
## Synthetic Tables Virtual/synthetic table support needs more work.
## Full-Text Search MSSQL uses different full-text search syntax (CONTAINS/FREETEXT) instead of PostgreSQL's tsvector. Not yet implemented.
## JSON Column Detection MSSQL stores JSON in NVARCHAR(MAX) columns, which aren't automatically detected as JSON type during schema introspection.
## Polymorphic Relationships (Unions) Union type queries are not yet fully working.
## Variable LIMIT Dynamic LIMIT from variables may not apply correctly.
## Skip/Include Directives Some skip/include directive patterns fail.
MSSQL-Specific Implementation Notes ¶
- Uses [brackets] for identifier quoting instead of "double quotes" - Uses @p1, @p2, etc. for parameter binding - Uses OFFSET/FETCH for pagination (requires ORDER BY) - Uses FOR JSON PATH for JSON generation - Does not support LATERAL joins (uses inline subqueries) - Boolean values render as 1/0 (BIT type)
func (*MSSQLDialect) BindVar ¶
func (d *MSSQLDialect) BindVar(i int) string
BindVar returns the parameter placeholder for MSSQL. go-mssqldb uses @p1, @p2, etc. for positional parameters.
func (*MSSQLDialect) ModifySelectsForMutation ¶
func (d *MSSQLDialect) ModifySelectsForMutation(qc *qcode.QCode)
func (*MSSQLDialect) Name ¶
func (d *MSSQLDialect) Name() string
func (*MSSQLDialect) QuoteIdentifier ¶
func (d *MSSQLDialect) QuoteIdentifier(s string) string
func (*MSSQLDialect) RenderArray ¶
func (d *MSSQLDialect) RenderArray(ctx Context, items []string)
func (*MSSQLDialect) RenderArrayAggPrefix ¶
func (d *MSSQLDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
func (*MSSQLDialect) RenderArrayRemove ¶
func (d *MSSQLDialect) RenderArrayRemove(ctx Context, col string, val func())
func (*MSSQLDialect) RenderArraySelectPrefix ¶
func (d *MSSQLDialect) RenderArraySelectPrefix(ctx Context)
Array Operations
func (*MSSQLDialect) RenderArraySelectSuffix ¶
func (d *MSSQLDialect) RenderArraySelectSuffix(ctx Context)
func (*MSSQLDialect) RenderAssign ¶
func (d *MSSQLDialect) RenderAssign(ctx Context, col string, val string)
func (*MSSQLDialect) RenderBaseTable ¶
func (d *MSSQLDialect) RenderBaseTable(ctx Context)
func (*MSSQLDialect) RenderBegin ¶
func (d *MSSQLDialect) RenderBegin(ctx Context)
func (*MSSQLDialect) RenderBooleanEqualsTrue ¶
func (d *MSSQLDialect) RenderBooleanEqualsTrue(ctx Context, paramName string)
func (*MSSQLDialect) RenderBooleanNotEqualsTrue ¶
func (d *MSSQLDialect) RenderBooleanNotEqualsTrue(ctx Context, paramName string)
func (*MSSQLDialect) RenderCast ¶
func (d *MSSQLDialect) RenderCast(ctx Context, val func(), typ string)
func (*MSSQLDialect) RenderChildCursor ¶
func (d *MSSQLDialect) RenderChildCursor(ctx Context, renderChild func())
func (*MSSQLDialect) RenderChildValue ¶
func (d *MSSQLDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
func (*MSSQLDialect) RenderCursorCTE ¶
func (d *MSSQLDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
func (*MSSQLDialect) RenderDelete ¶
func (d *MSSQLDialect) RenderDelete(ctx Context, m *qcode.Mutate, where func())
func (*MSSQLDialect) RenderDistinctOn ¶
func (d *MSSQLDialect) RenderDistinctOn(ctx Context, sel *qcode.Select)
func (*MSSQLDialect) RenderFromEdge ¶
func (d *MSSQLDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
func (*MSSQLDialect) RenderGeoOp ¶
RenderGeoOp renders MSSQL Spatial operations
func (*MSSQLDialect) RenderIDCapture ¶
func (d *MSSQLDialect) RenderIDCapture(ctx Context, varName string)
func (*MSSQLDialect) RenderInlineChild ¶
func (d *MSSQLDialect) RenderInlineChild(ctx Context, r InlineChildRenderer, psel, sel *qcode.Select)
RenderInlineChild renders an inline subquery for MSSQL. MSSQL doesn't support LATERAL joins, so we generate correlated subqueries.
func (*MSSQLDialect) RenderInsert ¶
func (d *MSSQLDialect) RenderInsert(ctx Context, m *qcode.Mutate, values func())
func (*MSSQLDialect) RenderJSONField ¶
func (d *MSSQLDialect) RenderJSONField(ctx Context, fieldName string, tableAlias string, colName string, isNull bool, isJSON bool)
RenderJSONField renders a field for MSSQL's FOR JSON PATH. Unlike MySQL's json_object which uses 'key', value pairs, MSSQL FOR JSON PATH uses column aliases: col AS [key]
func (*MSSQLDialect) RenderJSONNullCursorField ¶
func (d *MSSQLDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
func (*MSSQLDialect) RenderJSONNullField ¶
func (d *MSSQLDialect) RenderJSONNullField(ctx Context, fieldName string)
JSON Null Fields
func (*MSSQLDialect) RenderJSONPath ¶
func (d *MSSQLDialect) RenderJSONPath(ctx Context, table, col string, path []string)
RenderJSONPath renders JSON path extraction for MSSQL.
func (*MSSQLDialect) RenderJSONPlural ¶
func (d *MSSQLDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
RenderJSONPlural renders JSON array aggregation for MSSQL. Uses STRING_AGG to aggregate JSON objects into an array.
func (*MSSQLDialect) RenderJSONRoot ¶
func (d *MSSQLDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
func (*MSSQLDialect) RenderJSONRootField ¶
func (d *MSSQLDialect) RenderJSONRootField(ctx Context, key string, val func())
RenderJSONRootField renders a root-level JSON field for MSSQL's FOR JSON PATH. Uses column AS [key] format instead of 'key', value format.
func (*MSSQLDialect) RenderJSONRootSuffix ¶
func (d *MSSQLDialect) RenderJSONRootSuffix(ctx Context)
func (*MSSQLDialect) RenderJSONSelect ¶
func (d *MSSQLDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
func (*MSSQLDialect) RenderJoinTables ¶
func (d *MSSQLDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
func (*MSSQLDialect) RenderLateralJoin ¶
func (d *MSSQLDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
func (*MSSQLDialect) RenderLateralJoinClose ¶
func (d *MSSQLDialect) RenderLateralJoinClose(ctx Context, alias string)
func (*MSSQLDialect) RenderLimit ¶
func (d *MSSQLDialect) RenderLimit(ctx Context, sel *qcode.Select)
RenderLimit renders pagination using OFFSET/FETCH syntax. MSSQL requires ORDER BY when using OFFSET/FETCH. If no ORDER BY is specified, we add a fallback ORDER BY (SELECT NULL).
func (*MSSQLDialect) RenderLinearConnect ¶
func (*MSSQLDialect) RenderLinearDisconnect ¶
func (*MSSQLDialect) RenderLinearInsert ¶
func (*MSSQLDialect) RenderLinearUpdate ¶
func (*MSSQLDialect) RenderList ¶
func (d *MSSQLDialect) RenderList(ctx Context, ex *qcode.Exp)
func (*MSSQLDialect) RenderLiteral ¶
func (d *MSSQLDialect) RenderLiteral(ctx Context, val string, valType qcode.ValType)
func (*MSSQLDialect) RenderMutateToRecordSet ¶
func (d *MSSQLDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
func (*MSSQLDialect) RenderMutationCTE ¶
func (d *MSSQLDialect) RenderMutationCTE(ctx Context, m *qcode.Mutate, renderBody func())
func (*MSSQLDialect) RenderMutationInput ¶
func (d *MSSQLDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
func (*MSSQLDialect) RenderMutationPostamble ¶
func (d *MSSQLDialect) RenderMutationPostamble(ctx Context, qc *qcode.QCode)
func (*MSSQLDialect) RenderOrderBy ¶
func (d *MSSQLDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
func (*MSSQLDialect) RenderQueryPrefix ¶
func (d *MSSQLDialect) RenderQueryPrefix(ctx Context, qc *qcode.QCode)
func (*MSSQLDialect) RenderRecursiveAnchorWhere ¶
func (*MSSQLDialect) RenderRecursiveLimit1 ¶
func (d *MSSQLDialect) RenderRecursiveLimit1(ctx Context)
func (*MSSQLDialect) RenderRecursiveOffset ¶
func (d *MSSQLDialect) RenderRecursiveOffset(ctx Context)
func (*MSSQLDialect) RenderReturning ¶
func (d *MSSQLDialect) RenderReturning(ctx Context, m *qcode.Mutate)
func (*MSSQLDialect) RenderRootTerminator ¶
func (d *MSSQLDialect) RenderRootTerminator(ctx Context)
func (*MSSQLDialect) RenderSearchHeadline ¶
func (*MSSQLDialect) RenderSearchRank ¶
func (*MSSQLDialect) RenderSetSessionVar ¶
func (d *MSSQLDialect) RenderSetSessionVar(ctx Context, name, value string) bool
func (*MSSQLDialect) RenderSetup ¶
func (d *MSSQLDialect) RenderSetup(ctx Context)
func (*MSSQLDialect) RenderSubscriptionUnbox ¶
func (d *MSSQLDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
func (*MSSQLDialect) RenderTableAlias ¶
func (d *MSSQLDialect) RenderTableAlias(ctx Context, alias string)
func (*MSSQLDialect) RenderTableName ¶
func (d *MSSQLDialect) RenderTableName(ctx Context, sel *qcode.Select, schema, table string)
func (*MSSQLDialect) RenderTeardown ¶
func (d *MSSQLDialect) RenderTeardown(ctx Context)
func (*MSSQLDialect) RenderTryCast ¶
func (d *MSSQLDialect) RenderTryCast(ctx Context, val func(), typ string)
func (*MSSQLDialect) RenderTsQuery ¶
func (*MSSQLDialect) RenderUpdate ¶
func (d *MSSQLDialect) RenderUpdate(ctx Context, m *qcode.Mutate, set func(), from func(), where func())
func (*MSSQLDialect) RenderUpsert ¶
func (d *MSSQLDialect) RenderUpsert(ctx Context, m *qcode.Mutate, insert func(), updateSet func())
func (*MSSQLDialect) RenderValArrayColumn ¶
func (*MSSQLDialect) RenderValPrefix ¶
func (d *MSSQLDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
func (*MSSQLDialect) RenderValVar ¶
func (*MSSQLDialect) RenderVar ¶
func (d *MSSQLDialect) RenderVar(ctx Context, name string)
func (*MSSQLDialect) RenderVarDeclaration ¶
func (d *MSSQLDialect) RenderVarDeclaration(ctx Context, name, typeName string)
func (*MSSQLDialect) RequiresBooleanAsInt ¶
func (d *MSSQLDialect) RequiresBooleanAsInt() bool
func (*MSSQLDialect) RequiresJSONAsString ¶
func (d *MSSQLDialect) RequiresJSONAsString() bool
Driver Behavior
func (*MSSQLDialect) RequiresJSONQueryWrapper ¶
func (d *MSSQLDialect) RequiresJSONQueryWrapper() bool
Column rendering
func (*MSSQLDialect) RequiresLowercaseIdentifiers ¶
func (d *MSSQLDialect) RequiresLowercaseIdentifiers() bool
func (*MSSQLDialect) RequiresNullOnEmptySelect ¶
func (d *MSSQLDialect) RequiresNullOnEmptySelect() bool
func (*MSSQLDialect) RequiresRecursiveCTEColumnList ¶
func (d *MSSQLDialect) RequiresRecursiveCTEColumnList() bool
func (*MSSQLDialect) RequiresRecursiveKeyword ¶
func (d *MSSQLDialect) RequiresRecursiveKeyword() bool
Recursive CTE Syntax
func (*MSSQLDialect) RoleDummyTable ¶
func (d *MSSQLDialect) RoleDummyTable() string
func (*MSSQLDialect) RoleLimitSuffix ¶
func (d *MSSQLDialect) RoleLimitSuffix() string
func (*MSSQLDialect) RoleSelectPrefix ¶
func (d *MSSQLDialect) RoleSelectPrefix() string
Role Statement rendering
func (*MSSQLDialect) SetNameMap ¶ added in v3.8.0
func (d *MSSQLDialect) SetNameMap(tables []sdata.DBTable)
SetNameMap builds a normalized→original name mapping from discovered tables.
func (*MSSQLDialect) SplitQuery ¶
func (d *MSSQLDialect) SplitQuery(query string) []string
func (*MSSQLDialect) SupportsConflictUpdate ¶
func (d *MSSQLDialect) SupportsConflictUpdate() bool
func (*MSSQLDialect) SupportsLateral ¶
func (d *MSSQLDialect) SupportsLateral() bool
SupportsLateral returns false for MSSQL because it doesn't support LATERAL joins. We use inline subqueries via RenderInlineChild instead.
func (*MSSQLDialect) SupportsLinearExecution ¶
func (d *MSSQLDialect) SupportsLinearExecution() bool
func (*MSSQLDialect) SupportsReturning ¶
func (d *MSSQLDialect) SupportsReturning() bool
SupportsReturning returns true because MSSQL has OUTPUT clause.
func (*MSSQLDialect) SupportsSubscriptionBatching ¶
func (d *MSSQLDialect) SupportsSubscriptionBatching() bool
func (*MSSQLDialect) SupportsWritableCTE ¶
func (d *MSSQLDialect) SupportsWritableCTE() bool
func (*MSSQLDialect) TransformBooleanLiterals ¶
func (d *MSSQLDialect) TransformBooleanLiterals(match string) string
func (*MSSQLDialect) UseNamedParams ¶
func (d *MSSQLDialect) UseNamedParams() bool
func (*MSSQLDialect) WrapRecursiveSelect ¶
func (d *MSSQLDialect) WrapRecursiveSelect() bool
type MariaDBDialect ¶
type MariaDBDialect struct {
MySQLDialect
DBVersion int
}
MariaDBDialect embeds MySQLDialect and provides MariaDB-specific behavior. MariaDB is a fork of MySQL and is largely compatible, but may have differences in JSON functions, version detection, and other features.
func (*MariaDBDialect) Name ¶
func (d *MariaDBDialect) Name() string
func (*MariaDBDialect) QuoteIdentifier ¶
func (d *MariaDBDialect) QuoteIdentifier(s string) string
func (*MariaDBDialect) RenderArrayAggPrefix ¶
func (d *MariaDBDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
func (*MariaDBDialect) RenderArrayRemove ¶
func (d *MariaDBDialect) RenderArrayRemove(ctx Context, col string, val func())
func (*MariaDBDialect) RenderArraySelectPrefix ¶
func (d *MariaDBDialect) RenderArraySelectPrefix(ctx Context)
Array Operations
func (*MariaDBDialect) RenderArraySelectSuffix ¶
func (d *MariaDBDialect) RenderArraySelectSuffix(ctx Context)
func (*MariaDBDialect) RenderCast ¶
func (d *MariaDBDialect) RenderCast(ctx Context, val func(), typ string)
RenderCast handles type casting for MariaDB. MariaDB doesn't support CAST(... AS JSON) or CAST(... AS LONGTEXT), so we need to map these to supported types.
func (*MariaDBDialect) RenderChildCursor ¶
func (d *MariaDBDialect) RenderChildCursor(ctx Context, renderChild func())
func (*MariaDBDialect) RenderChildValue ¶
func (d *MariaDBDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
func (*MariaDBDialect) RenderCursorCTE ¶
func (d *MariaDBDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
RenderCursorCTE creates a __cur CTE that parses the cursor parameter. MariaDB uses colon separator for cursors (matching RenderInlineChild cursor generation).
func (*MariaDBDialect) RenderGeoOp ¶
RenderGeoOp renders MariaDB spatial operations MariaDB uses standard WKT (longitude, latitude) order, NOT MySQL 8.0's (lat, lon)
func (*MariaDBDialect) RenderInlineChild ¶
func (d *MariaDBDialect) RenderInlineChild(ctx Context, r InlineChildRenderer, psel, sel *qcode.Select)
RenderInlineChild renders an inline subquery for MariaDB. MariaDB doesn't support LATERAL joins, so we generate flat correlated subqueries. For plural (array) results, we use a subquery to apply ORDER BY and LIMIT before aggregation.
func (*MariaDBDialect) RenderJSONField ¶
func (d *MariaDBDialect) RenderJSONField(ctx Context, fieldName string, tableAlias string, colName string, isNull bool, isJSON bool)
RenderJSONField renders a JSON field for MariaDB. For JSON columns (isJSON=true), wrap with JSON_QUERY to preserve JSON structure. MariaDB stores JSON as LONGTEXT, so without this, JSON values get stringified.
func (*MariaDBDialect) RenderJSONNullCursorField ¶
func (d *MariaDBDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
func (*MariaDBDialect) RenderJSONNullField ¶
func (d *MariaDBDialect) RenderJSONNullField(ctx Context, fieldName string)
JSON Null Fields
func (*MariaDBDialect) RenderJSONPath ¶
func (d *MariaDBDialect) RenderJSONPath(ctx Context, table, col string, path []string)
RenderJSONPath renders a JSON path extraction for MariaDB. MariaDB uses JSON_EXTRACT(col, '$.path') and we wrap it in JSON_UNQUOTE to get text. We do NOT use ->> operator to avoid syntax issues in older versions or specific contexts, even though 10.2+ supports it.
func (*MariaDBDialect) RenderJSONPlural ¶
func (d *MariaDBDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
RenderJSONPlural renders JSON array aggregation for MariaDB. Since MariaDB doesn't support LATERAL joins, we use inline subqueries and aggregate the "json" column from the inner query. Unlike MySQL, we don't CAST AS JSON since MariaDB doesn't support that syntax.
func (*MariaDBDialect) RenderJSONRoot ¶
func (d *MariaDBDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
func (*MariaDBDialect) RenderJSONRootField ¶
func (d *MariaDBDialect) RenderJSONRootField(ctx Context, key string, val func())
RenderJSONRootField renders a JSON field at the root level for MariaDB. MariaDB treats JSON as LONGTEXT, so nested JSON values get stringified unless we use JSON_QUERY to extract them as proper JSON. For scalar values like __typename, we output the value directly without JSON_QUERY.
func (*MariaDBDialect) RenderJSONRootSuffix ¶
func (d *MariaDBDialect) RenderJSONRootSuffix(ctx Context)
func (*MariaDBDialect) RenderLateralJoin ¶
func (d *MariaDBDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
func (*MariaDBDialect) RenderLateralJoinClose ¶
func (d *MariaDBDialect) RenderLateralJoinClose(ctx Context, alias string)
func (*MariaDBDialect) RenderLinearConnect ¶
func (d *MariaDBDialect) RenderLinearConnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, renderFilter func())
RenderLinearConnect overrides MySQL's version for MariaDB. MariaDB has issues with column resolution when JSON_TABLE derived table is in the same FROM clause as the target table. We restructure the query to use an explicit JOIN instead of a cartesian product.
func (*MariaDBDialect) RenderLinearDisconnect ¶
func (d *MariaDBDialect) RenderLinearDisconnect(ctx Context, m *qcode.Mutate, qc *qcode.QCode, varName string, renderFilter func())
RenderLinearDisconnect overrides MySQL's version for MariaDB.
func (*MariaDBDialect) RenderRecursiveAnchorWhere ¶
func (*MariaDBDialect) RenderRecursiveLimit1 ¶
func (d *MariaDBDialect) RenderRecursiveLimit1(ctx Context)
func (*MariaDBDialect) RenderRecursiveOffset ¶
func (d *MariaDBDialect) RenderRecursiveOffset(ctx Context)
func (*MariaDBDialect) RenderReturning ¶
func (d *MariaDBDialect) RenderReturning(ctx Context, m *qcode.Mutate)
RenderReturning renders the RETURNING clause for MariaDB 10.5+. MariaDB supports RETURNING * syntax similar to PostgreSQL.
func (*MariaDBDialect) RenderSubscriptionUnbox ¶
func (d *MariaDBDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
func (*MariaDBDialect) RenderTableAlias ¶
func (d *MariaDBDialect) RenderTableAlias(ctx Context, alias string)
func (*MariaDBDialect) RenderValArrayColumn ¶
RenderValArrayColumn handles array value columns for MariaDB. Unlike MySQL, MariaDB does not support CAST(... AS JSON), so we use JSON_TABLE to extract the array values.
func (*MariaDBDialect) RenderValPrefix ¶
func (d *MariaDBDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
func (*MariaDBDialect) RequiresBooleanAsInt ¶
func (d *MariaDBDialect) RequiresBooleanAsInt() bool
func (*MariaDBDialect) RequiresJSONAsString ¶
func (d *MariaDBDialect) RequiresJSONAsString() bool
Driver Behavior
func (*MariaDBDialect) RequiresJSONQueryWrapper ¶
func (d *MariaDBDialect) RequiresJSONQueryWrapper() bool
Column rendering
func (*MariaDBDialect) RequiresLowercaseIdentifiers ¶
func (d *MariaDBDialect) RequiresLowercaseIdentifiers() bool
func (*MariaDBDialect) RequiresNullOnEmptySelect ¶
func (d *MariaDBDialect) RequiresNullOnEmptySelect() bool
func (*MariaDBDialect) RequiresRecursiveCTEColumnList ¶
func (d *MariaDBDialect) RequiresRecursiveCTEColumnList() bool
func (*MariaDBDialect) RequiresRecursiveKeyword ¶
func (d *MariaDBDialect) RequiresRecursiveKeyword() bool
Recursive CTE Syntax
func (*MariaDBDialect) RoleDummyTable ¶
func (d *MariaDBDialect) RoleDummyTable() string
func (*MariaDBDialect) RoleLimitSuffix ¶
func (d *MariaDBDialect) RoleLimitSuffix() string
func (*MariaDBDialect) RoleSelectPrefix ¶
func (d *MariaDBDialect) RoleSelectPrefix() string
Role Statement rendering - MariaDB uses default syntax (same as Postgres)
func (*MariaDBDialect) SupportsLateral ¶
func (d *MariaDBDialect) SupportsLateral() bool
SupportsLateral returns false for MariaDB because the shared LATERAL join code path in query.go is incompatible with MariaDB's RenderJSONPlural. MariaDB uses inline subqueries via RenderInlineChild instead. Note: Subscription batching uses a separate code path (RenderSubscriptionUnbox) that handles LATERAL joins internally and is not affected by this setting.
func (*MariaDBDialect) SupportsReturning ¶
func (d *MariaDBDialect) SupportsReturning() bool
SupportsReturning returns true for MariaDB 10.5+ which added RETURNING clause support.
func (*MariaDBDialect) SupportsSubscriptionBatching ¶
func (d *MariaDBDialect) SupportsSubscriptionBatching() bool
SupportsSubscriptionBatching returns false for MariaDB. MariaDB's LATERAL support is incompatible with the inline subquery structure used when SupportsLateral() = false. Each subscription runs individually.
func (*MariaDBDialect) TransformBooleanLiterals ¶
func (d *MariaDBDialect) TransformBooleanLiterals(match string) string
func (*MariaDBDialect) WrapRecursiveSelect ¶
func (d *MariaDBDialect) WrapRecursiveSelect() bool
type MongoDBDialect ¶
type MongoDBDialect struct {
EnableCamelcase bool
// contains filtered or unexported fields
}
MongoDBDialect generates JSON query DSL instead of SQL. The JSON is parsed and executed by the mongodriver package.
func (*MongoDBDialect) BindVar ¶
func (d *MongoDBDialect) BindVar(i int) string
BindVar returns MongoDB parameter placeholder.
func (*MongoDBDialect) CompileFullMutation ¶
func (d *MongoDBDialect) CompileFullMutation(ctx Context, qc *qcode.QCode) bool
CompileFullMutation implements FullMutationCompiler interface. It generates the complete JSON mutation DSL for MongoDB, bypassing SQL generation.
func (*MongoDBDialect) CompileFullQuery ¶
func (d *MongoDBDialect) CompileFullQuery(ctx Context, qc *qcode.QCode) bool
CompileFullQuery implements FullQueryCompiler interface. It generates the complete JSON query DSL for MongoDB, bypassing SQL generation.
func (*MongoDBDialect) ModifySelectsForMutation ¶
func (d *MongoDBDialect) ModifySelectsForMutation(qc *qcode.QCode)
func (*MongoDBDialect) Name ¶
func (d *MongoDBDialect) Name() string
func (*MongoDBDialect) QuoteIdentifier ¶
func (d *MongoDBDialect) QuoteIdentifier(s string) string
func (*MongoDBDialect) RenderArray ¶
func (d *MongoDBDialect) RenderArray(ctx Context, items []string)
func (*MongoDBDialect) RenderArrayAggPrefix ¶
func (d *MongoDBDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
func (*MongoDBDialect) RenderArrayRemove ¶
func (d *MongoDBDialect) RenderArrayRemove(ctx Context, col string, val func())
func (*MongoDBDialect) RenderArraySelectPrefix ¶
func (d *MongoDBDialect) RenderArraySelectPrefix(ctx Context)
func (*MongoDBDialect) RenderArraySelectSuffix ¶
func (d *MongoDBDialect) RenderArraySelectSuffix(ctx Context)
func (*MongoDBDialect) RenderAssign ¶
func (d *MongoDBDialect) RenderAssign(ctx Context, col string, val string)
func (*MongoDBDialect) RenderBaseTable ¶
func (d *MongoDBDialect) RenderBaseTable(ctx Context)
func (*MongoDBDialect) RenderBegin ¶
func (d *MongoDBDialect) RenderBegin(ctx Context)
func (*MongoDBDialect) RenderBooleanEqualsTrue ¶
func (d *MongoDBDialect) RenderBooleanEqualsTrue(ctx Context, paramName string)
func (*MongoDBDialect) RenderBooleanNotEqualsTrue ¶
func (d *MongoDBDialect) RenderBooleanNotEqualsTrue(ctx Context, paramName string)
func (*MongoDBDialect) RenderCast ¶
func (d *MongoDBDialect) RenderCast(ctx Context, val func(), typ string)
func (*MongoDBDialect) RenderChildCursor ¶
func (d *MongoDBDialect) RenderChildCursor(ctx Context, renderChild func())
func (*MongoDBDialect) RenderChildValue ¶
func (d *MongoDBDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
func (*MongoDBDialect) RenderCursorCTE ¶
func (d *MongoDBDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
func (*MongoDBDialect) RenderDelete ¶
func (d *MongoDBDialect) RenderDelete(ctx Context, m *qcode.Mutate, where func())
func (*MongoDBDialect) RenderDistinctOn ¶
func (d *MongoDBDialect) RenderDistinctOn(ctx Context, sel *qcode.Select)
func (*MongoDBDialect) RenderFromEdge ¶
func (d *MongoDBDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
func (*MongoDBDialect) RenderGeoOp ¶
RenderGeoOp renders MongoDB geospatial operations
func (*MongoDBDialect) RenderIDCapture ¶
func (d *MongoDBDialect) RenderIDCapture(ctx Context, varName string)
func (*MongoDBDialect) RenderInlineChild ¶
func (d *MongoDBDialect) RenderInlineChild(ctx Context, renderer InlineChildRenderer, psel, sel *qcode.Select)
func (*MongoDBDialect) RenderInsert ¶
func (d *MongoDBDialect) RenderInsert(ctx Context, m *qcode.Mutate, values func())
func (*MongoDBDialect) RenderJSONField ¶
func (*MongoDBDialect) RenderJSONNullCursorField ¶
func (d *MongoDBDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
func (*MongoDBDialect) RenderJSONNullField ¶
func (d *MongoDBDialect) RenderJSONNullField(ctx Context, fieldName string)
func (*MongoDBDialect) RenderJSONPath ¶
func (d *MongoDBDialect) RenderJSONPath(ctx Context, table, col string, path []string)
func (*MongoDBDialect) RenderJSONPlural ¶
func (d *MongoDBDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
func (*MongoDBDialect) RenderJSONRoot ¶
func (d *MongoDBDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
RenderJSONRoot starts the JSON query structure
func (*MongoDBDialect) RenderJSONRootField ¶
func (d *MongoDBDialect) RenderJSONRootField(ctx Context, key string, val func())
func (*MongoDBDialect) RenderJSONRootSuffix ¶
func (d *MongoDBDialect) RenderJSONRootSuffix(ctx Context)
func (*MongoDBDialect) RenderJSONSelect ¶
func (d *MongoDBDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
func (*MongoDBDialect) RenderJoinTables ¶
func (d *MongoDBDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
func (*MongoDBDialect) RenderLateralJoin ¶
func (d *MongoDBDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
func (*MongoDBDialect) RenderLateralJoinClose ¶
func (d *MongoDBDialect) RenderLateralJoinClose(ctx Context, alias string)
func (*MongoDBDialect) RenderLimit ¶
func (d *MongoDBDialect) RenderLimit(ctx Context, sel *qcode.Select)
func (*MongoDBDialect) RenderLinearConnect ¶
func (*MongoDBDialect) RenderLinearDisconnect ¶
func (*MongoDBDialect) RenderLinearInsert ¶
func (*MongoDBDialect) RenderLinearUpdate ¶
func (*MongoDBDialect) RenderList ¶
func (d *MongoDBDialect) RenderList(ctx Context, ex *qcode.Exp)
func (*MongoDBDialect) RenderLiteral ¶
func (d *MongoDBDialect) RenderLiteral(ctx Context, val string, valType qcode.ValType)
func (*MongoDBDialect) RenderMutateToRecordSet ¶
func (d *MongoDBDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
func (*MongoDBDialect) RenderMutationCTE ¶
func (d *MongoDBDialect) RenderMutationCTE(ctx Context, m *qcode.Mutate, renderBody func())
func (*MongoDBDialect) RenderMutationInput ¶
func (d *MongoDBDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
func (*MongoDBDialect) RenderMutationPostamble ¶
func (d *MongoDBDialect) RenderMutationPostamble(ctx Context, qc *qcode.QCode)
func (*MongoDBDialect) RenderOrderBy ¶
func (d *MongoDBDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
func (*MongoDBDialect) RenderQueryPrefix ¶
func (d *MongoDBDialect) RenderQueryPrefix(ctx Context, qc *qcode.QCode)
func (*MongoDBDialect) RenderRecursiveAnchorWhere ¶
func (*MongoDBDialect) RenderRecursiveLimit1 ¶
func (d *MongoDBDialect) RenderRecursiveLimit1(ctx Context)
func (*MongoDBDialect) RenderRecursiveOffset ¶
func (d *MongoDBDialect) RenderRecursiveOffset(ctx Context)
func (*MongoDBDialect) RenderReturning ¶
func (d *MongoDBDialect) RenderReturning(ctx Context, m *qcode.Mutate)
func (*MongoDBDialect) RenderRootTerminator ¶
func (d *MongoDBDialect) RenderRootTerminator(ctx Context)
func (*MongoDBDialect) RenderSearchHeadline ¶
func (*MongoDBDialect) RenderSearchRank ¶
func (*MongoDBDialect) RenderSetSessionVar ¶
func (d *MongoDBDialect) RenderSetSessionVar(ctx Context, name, value string) bool
func (*MongoDBDialect) RenderSetup ¶
func (d *MongoDBDialect) RenderSetup(ctx Context)
func (*MongoDBDialect) RenderSubscriptionUnbox ¶
func (d *MongoDBDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
func (*MongoDBDialect) RenderTableAlias ¶
func (d *MongoDBDialect) RenderTableAlias(ctx Context, alias string)
func (*MongoDBDialect) RenderTableName ¶
func (d *MongoDBDialect) RenderTableName(ctx Context, sel *qcode.Select, schema, table string)
func (*MongoDBDialect) RenderTeardown ¶
func (d *MongoDBDialect) RenderTeardown(ctx Context)
func (*MongoDBDialect) RenderTryCast ¶
func (d *MongoDBDialect) RenderTryCast(ctx Context, val func(), typ string)
func (*MongoDBDialect) RenderTsQuery ¶
func (*MongoDBDialect) RenderUpdate ¶
func (d *MongoDBDialect) RenderUpdate(ctx Context, m *qcode.Mutate, set func(), from func(), where func())
func (*MongoDBDialect) RenderUpsert ¶
func (d *MongoDBDialect) RenderUpsert(ctx Context, m *qcode.Mutate, insert func(), updateSet func())
func (*MongoDBDialect) RenderValArrayColumn ¶
func (*MongoDBDialect) RenderValPrefix ¶
func (d *MongoDBDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
func (*MongoDBDialect) RenderValVar ¶
func (*MongoDBDialect) RenderVar ¶
func (d *MongoDBDialect) RenderVar(ctx Context, name string)
func (*MongoDBDialect) RenderVarDeclaration ¶
func (d *MongoDBDialect) RenderVarDeclaration(ctx Context, name, typeName string)
func (*MongoDBDialect) RequiresBooleanAsInt ¶
func (d *MongoDBDialect) RequiresBooleanAsInt() bool
func (*MongoDBDialect) RequiresJSONAsString ¶
func (d *MongoDBDialect) RequiresJSONAsString() bool
func (*MongoDBDialect) RequiresJSONQueryWrapper ¶
func (d *MongoDBDialect) RequiresJSONQueryWrapper() bool
func (*MongoDBDialect) RequiresLowercaseIdentifiers ¶
func (d *MongoDBDialect) RequiresLowercaseIdentifiers() bool
func (*MongoDBDialect) RequiresNullOnEmptySelect ¶
func (d *MongoDBDialect) RequiresNullOnEmptySelect() bool
func (*MongoDBDialect) RequiresRecursiveCTEColumnList ¶
func (d *MongoDBDialect) RequiresRecursiveCTEColumnList() bool
func (*MongoDBDialect) RequiresRecursiveKeyword ¶
func (d *MongoDBDialect) RequiresRecursiveKeyword() bool
func (*MongoDBDialect) RoleDummyTable ¶
func (d *MongoDBDialect) RoleDummyTable() string
func (*MongoDBDialect) RoleLimitSuffix ¶
func (d *MongoDBDialect) RoleLimitSuffix() string
func (*MongoDBDialect) RoleSelectPrefix ¶
func (d *MongoDBDialect) RoleSelectPrefix() string
func (*MongoDBDialect) SplitQuery ¶
func (d *MongoDBDialect) SplitQuery(query string) []string
func (*MongoDBDialect) SupportsConflictUpdate ¶
func (d *MongoDBDialect) SupportsConflictUpdate() bool
func (*MongoDBDialect) SupportsLateral ¶
func (d *MongoDBDialect) SupportsLateral() bool
func (*MongoDBDialect) SupportsLinearExecution ¶
func (d *MongoDBDialect) SupportsLinearExecution() bool
func (*MongoDBDialect) SupportsReturning ¶
func (d *MongoDBDialect) SupportsReturning() bool
func (*MongoDBDialect) SupportsSubscriptionBatching ¶
func (d *MongoDBDialect) SupportsSubscriptionBatching() bool
func (*MongoDBDialect) SupportsWritableCTE ¶
func (d *MongoDBDialect) SupportsWritableCTE() bool
func (*MongoDBDialect) TransformBooleanLiterals ¶
func (d *MongoDBDialect) TransformBooleanLiterals(match string) string
func (*MongoDBDialect) UseNamedParams ¶
func (d *MongoDBDialect) UseNamedParams() bool
func (*MongoDBDialect) WrapRecursiveSelect ¶
func (d *MongoDBDialect) WrapRecursiveSelect() bool
type MySQLDialect ¶
type MySQLDialect struct {
EnableCamelcase bool
}
func (*MySQLDialect) BindVar ¶
func (d *MySQLDialect) BindVar(i int) string
func (*MySQLDialect) ModifySelectsForMutation ¶
func (d *MySQLDialect) ModifySelectsForMutation(qc *qcode.QCode)
func (*MySQLDialect) Name ¶
func (d *MySQLDialect) Name() string
func (*MySQLDialect) Quote ¶
func (d *MySQLDialect) Quote(ctx Context, col string)
func (*MySQLDialect) QuoteIdentifier ¶
func (d *MySQLDialect) QuoteIdentifier(s string) string
func (*MySQLDialect) RenderArray ¶
func (d *MySQLDialect) RenderArray(ctx Context, items []string)
func (*MySQLDialect) RenderArrayAggPrefix ¶
func (d *MySQLDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
func (*MySQLDialect) RenderArrayRemove ¶
func (d *MySQLDialect) RenderArrayRemove(ctx Context, col string, val func())
func (*MySQLDialect) RenderArraySelectPrefix ¶
func (d *MySQLDialect) RenderArraySelectPrefix(ctx Context)
Array Operations
func (*MySQLDialect) RenderArraySelectSuffix ¶
func (d *MySQLDialect) RenderArraySelectSuffix(ctx Context)
func (*MySQLDialect) RenderAssign ¶
func (d *MySQLDialect) RenderAssign(ctx Context, col string, val string)
func (*MySQLDialect) RenderBaseTable ¶
func (d *MySQLDialect) RenderBaseTable(ctx Context)
func (*MySQLDialect) RenderBegin ¶
func (d *MySQLDialect) RenderBegin(ctx Context)
func (*MySQLDialect) RenderBooleanEqualsTrue ¶
func (d *MySQLDialect) RenderBooleanEqualsTrue(ctx Context, paramName string)
func (*MySQLDialect) RenderBooleanNotEqualsTrue ¶
func (d *MySQLDialect) RenderBooleanNotEqualsTrue(ctx Context, paramName string)
func (*MySQLDialect) RenderCast ¶
func (d *MySQLDialect) RenderCast(ctx Context, val func(), typ string)
func (*MySQLDialect) RenderChildCursor ¶
func (d *MySQLDialect) RenderChildCursor(ctx Context, renderChild func())
func (*MySQLDialect) RenderChildValue ¶
func (d *MySQLDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
func (*MySQLDialect) RenderCursorCTE ¶
func (d *MySQLDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
func (*MySQLDialect) RenderDelete ¶
func (d *MySQLDialect) RenderDelete(ctx Context, m *qcode.Mutate, where func())
func (*MySQLDialect) RenderDistinctOn ¶
func (d *MySQLDialect) RenderDistinctOn(ctx Context, sel *qcode.Select)
func (*MySQLDialect) RenderFromEdge ¶
func (d *MySQLDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
func (*MySQLDialect) RenderGeoOp ¶
RenderGeoOp renders MySQL spatial operations
func (*MySQLDialect) RenderIDCapture ¶
func (d *MySQLDialect) RenderIDCapture(ctx Context, varName string)
func (*MySQLDialect) RenderInlineChild ¶
func (d *MySQLDialect) RenderInlineChild(ctx Context, renderer InlineChildRenderer, psel, sel *qcode.Select)
RenderInlineChild is not used for MySQL since it supports LATERAL joins
func (*MySQLDialect) RenderInsert ¶
func (d *MySQLDialect) RenderInsert(ctx Context, m *qcode.Mutate, values func())
func (*MySQLDialect) RenderJSONField ¶
func (*MySQLDialect) RenderJSONNullCursorField ¶
func (d *MySQLDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
func (*MySQLDialect) RenderJSONNullField ¶
func (d *MySQLDialect) RenderJSONNullField(ctx Context, fieldName string)
JSON Null Fields
func (*MySQLDialect) RenderJSONPath ¶
func (d *MySQLDialect) RenderJSONPath(ctx Context, table, col string, path []string)
func (*MySQLDialect) RenderJSONPlural ¶
func (d *MySQLDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
func (*MySQLDialect) RenderJSONRoot ¶
func (d *MySQLDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
func (*MySQLDialect) RenderJSONRootField ¶
func (d *MySQLDialect) RenderJSONRootField(ctx Context, key string, val func())
func (*MySQLDialect) RenderJSONRootSuffix ¶
func (d *MySQLDialect) RenderJSONRootSuffix(ctx Context)
func (*MySQLDialect) RenderJSONSelect ¶
func (d *MySQLDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
func (*MySQLDialect) RenderJoinTables ¶
func (d *MySQLDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
func (*MySQLDialect) RenderLateralJoin ¶
func (d *MySQLDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
func (*MySQLDialect) RenderLateralJoinClose ¶
func (d *MySQLDialect) RenderLateralJoinClose(ctx Context, alias string)
func (*MySQLDialect) RenderLimit ¶
func (d *MySQLDialect) RenderLimit(ctx Context, sel *qcode.Select)
func (*MySQLDialect) RenderLinearConnect ¶
func (*MySQLDialect) RenderLinearDisconnect ¶
func (*MySQLDialect) RenderLinearInsert ¶
func (*MySQLDialect) RenderLinearUpdate ¶
func (*MySQLDialect) RenderList ¶
func (d *MySQLDialect) RenderList(ctx Context, ex *qcode.Exp)
func (*MySQLDialect) RenderLiteral ¶
func (d *MySQLDialect) RenderLiteral(ctx Context, val string, valType qcode.ValType)
func (*MySQLDialect) RenderMutateToRecordSet ¶
func (d *MySQLDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
func (*MySQLDialect) RenderMutationCTE ¶
func (d *MySQLDialect) RenderMutationCTE(ctx Context, m *qcode.Mutate, renderBody func())
RenderMutationCTE for MySQL generally mocks logic or errors, but as per plan, we just implement strict no-op or basic generation where possible. Writable CTEs are FALSE so this path shouldn't be main strategy.
func (*MySQLDialect) RenderMutationInput ¶
func (d *MySQLDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
func (*MySQLDialect) RenderMutationPostamble ¶
func (d *MySQLDialect) RenderMutationPostamble(ctx Context, qc *qcode.QCode)
func (*MySQLDialect) RenderOrderBy ¶
func (d *MySQLDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
func (*MySQLDialect) RenderQueryPrefix ¶
func (d *MySQLDialect) RenderQueryPrefix(ctx Context, qc *qcode.QCode)
func (*MySQLDialect) RenderRecursiveAnchorWhere ¶
func (*MySQLDialect) RenderRecursiveLimit1 ¶
func (d *MySQLDialect) RenderRecursiveLimit1(ctx Context)
func (*MySQLDialect) RenderRecursiveOffset ¶
func (d *MySQLDialect) RenderRecursiveOffset(ctx Context)
func (*MySQLDialect) RenderReturning ¶
func (d *MySQLDialect) RenderReturning(ctx Context, m *qcode.Mutate)
func (*MySQLDialect) RenderRootTerminator ¶
func (d *MySQLDialect) RenderRootTerminator(ctx Context)
func (*MySQLDialect) RenderSearchHeadline ¶
func (*MySQLDialect) RenderSearchRank ¶
func (*MySQLDialect) RenderSetSessionVar ¶
func (d *MySQLDialect) RenderSetSessionVar(ctx Context, name, value string) bool
RenderSetSessionVar renders the SQL to set a session variable in MySQL
func (*MySQLDialect) RenderSetup ¶
func (d *MySQLDialect) RenderSetup(ctx Context)
func (*MySQLDialect) RenderSubscriptionUnbox ¶
func (d *MySQLDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
func (*MySQLDialect) RenderTableAlias ¶
func (d *MySQLDialect) RenderTableAlias(ctx Context, alias string)
func (*MySQLDialect) RenderTableName ¶
func (d *MySQLDialect) RenderTableName(ctx Context, sel *qcode.Select, schema, table string)
func (*MySQLDialect) RenderTeardown ¶
func (d *MySQLDialect) RenderTeardown(ctx Context)
func (*MySQLDialect) RenderTryCast ¶
func (d *MySQLDialect) RenderTryCast(ctx Context, val func(), typ string)
func (*MySQLDialect) RenderTsQuery ¶
func (*MySQLDialect) RenderUpdate ¶
func (d *MySQLDialect) RenderUpdate(ctx Context, m *qcode.Mutate, set func(), from func(), where func())
func (*MySQLDialect) RenderUpsert ¶
func (d *MySQLDialect) RenderUpsert(ctx Context, m *qcode.Mutate, insert func(), updateSet func())
func (*MySQLDialect) RenderValArrayColumn ¶
func (*MySQLDialect) RenderValPrefix ¶
func (d *MySQLDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
func (*MySQLDialect) RenderValVar ¶
func (*MySQLDialect) RenderVar ¶
func (d *MySQLDialect) RenderVar(ctx Context, name string)
func (*MySQLDialect) RenderVarDeclaration ¶
func (d *MySQLDialect) RenderVarDeclaration(ctx Context, name, typeName string)
func (*MySQLDialect) RequiresBooleanAsInt ¶
func (d *MySQLDialect) RequiresBooleanAsInt() bool
func (*MySQLDialect) RequiresJSONAsString ¶
func (d *MySQLDialect) RequiresJSONAsString() bool
Driver Behavior
func (*MySQLDialect) RequiresJSONQueryWrapper ¶
func (d *MySQLDialect) RequiresJSONQueryWrapper() bool
Column rendering
func (*MySQLDialect) RequiresLowercaseIdentifiers ¶
func (d *MySQLDialect) RequiresLowercaseIdentifiers() bool
func (*MySQLDialect) RequiresNullOnEmptySelect ¶
func (d *MySQLDialect) RequiresNullOnEmptySelect() bool
func (*MySQLDialect) RequiresRecursiveCTEColumnList ¶
func (d *MySQLDialect) RequiresRecursiveCTEColumnList() bool
func (*MySQLDialect) RequiresRecursiveKeyword ¶
func (d *MySQLDialect) RequiresRecursiveKeyword() bool
Recursive CTE Syntax
func (*MySQLDialect) RoleDummyTable ¶
func (d *MySQLDialect) RoleDummyTable() string
func (*MySQLDialect) RoleLimitSuffix ¶
func (d *MySQLDialect) RoleLimitSuffix() string
func (*MySQLDialect) RoleSelectPrefix ¶
func (d *MySQLDialect) RoleSelectPrefix() string
Role Statement rendering
func (*MySQLDialect) SplitQuery ¶
func (d *MySQLDialect) SplitQuery(query string) (parts []string)
func (*MySQLDialect) SupportsConflictUpdate ¶
func (d *MySQLDialect) SupportsConflictUpdate() bool
func (*MySQLDialect) SupportsLateral ¶
func (d *MySQLDialect) SupportsLateral() bool
func (*MySQLDialect) SupportsLinearExecution ¶
func (d *MySQLDialect) SupportsLinearExecution() bool
func (*MySQLDialect) SupportsReturning ¶
func (d *MySQLDialect) SupportsReturning() bool
func (*MySQLDialect) SupportsSubscriptionBatching ¶
func (d *MySQLDialect) SupportsSubscriptionBatching() bool
func (*MySQLDialect) SupportsWritableCTE ¶
func (d *MySQLDialect) SupportsWritableCTE() bool
func (*MySQLDialect) TransformBooleanLiterals ¶
func (d *MySQLDialect) TransformBooleanLiterals(match string) string
func (*MySQLDialect) UseNamedParams ¶
func (d *MySQLDialect) UseNamedParams() bool
func (*MySQLDialect) WrapRecursiveSelect ¶
func (d *MySQLDialect) WrapRecursiveSelect() bool
type NameMapSetter ¶ added in v3.8.0
NameMapSetter is an optional interface that dialects can implement to receive a mapping of normalized→original identifier names. This is used by MSSQL to preserve PascalCase identifiers in generated SQL.
type OracleDialect ¶
func (*OracleDialect) BindVar ¶
func (d *OracleDialect) BindVar(i int) string
func (*OracleDialect) ModifySelectsForMutation ¶
func (d *OracleDialect) ModifySelectsForMutation(qc *qcode.QCode)
func (*OracleDialect) Name ¶
func (d *OracleDialect) Name() string
func (*OracleDialect) QuoteIdentifier ¶
func (d *OracleDialect) QuoteIdentifier(s string) string
func (*OracleDialect) RenderArray ¶
func (d *OracleDialect) RenderArray(ctx Context, items []string)
func (*OracleDialect) RenderArrayAggPrefix ¶
func (d *OracleDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
func (*OracleDialect) RenderArrayRemove ¶
func (d *OracleDialect) RenderArrayRemove(ctx Context, col string, val func())
func (*OracleDialect) RenderArraySelectPrefix ¶
func (d *OracleDialect) RenderArraySelectPrefix(ctx Context)
Array Operations
func (*OracleDialect) RenderArraySelectSuffix ¶
func (d *OracleDialect) RenderArraySelectSuffix(ctx Context)
func (*OracleDialect) RenderAssign ¶
func (d *OracleDialect) RenderAssign(ctx Context, col string, val string)
func (*OracleDialect) RenderBaseTable ¶
func (d *OracleDialect) RenderBaseTable(ctx Context)
func (*OracleDialect) RenderBegin ¶
func (d *OracleDialect) RenderBegin(ctx Context)
func (*OracleDialect) RenderBooleanEqualsTrue ¶
func (d *OracleDialect) RenderBooleanEqualsTrue(ctx Context, paramName string)
func (*OracleDialect) RenderBooleanNotEqualsTrue ¶
func (d *OracleDialect) RenderBooleanNotEqualsTrue(ctx Context, paramName string)
func (*OracleDialect) RenderCast ¶
func (d *OracleDialect) RenderCast(ctx Context, val func(), typ string)
func (*OracleDialect) RenderChildCursor ¶
func (d *OracleDialect) RenderChildCursor(ctx Context, renderChild func())
func (*OracleDialect) RenderChildValue ¶
func (d *OracleDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
func (*OracleDialect) RenderCursorCTE ¶
func (d *OracleDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
func (*OracleDialect) RenderDelete ¶
func (d *OracleDialect) RenderDelete(ctx Context, m *qcode.Mutate, where func())
func (*OracleDialect) RenderDistinctOn ¶
func (d *OracleDialect) RenderDistinctOn(ctx Context, sel *qcode.Select)
func (*OracleDialect) RenderFromEdge ¶
func (d *OracleDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
func (*OracleDialect) RenderGeoOp ¶
RenderGeoOp renders Oracle Spatial operations
func (*OracleDialect) RenderIDCapture ¶
func (d *OracleDialect) RenderIDCapture(ctx Context, varName string)
func (*OracleDialect) RenderInlineChild ¶
func (d *OracleDialect) RenderInlineChild(ctx Context, renderer InlineChildRenderer, psel, sel *qcode.Select)
RenderInlineChild is not used for Oracle since it supports LATERAL joins
func (*OracleDialect) RenderInsert ¶
func (d *OracleDialect) RenderInsert(ctx Context, m *qcode.Mutate, values func())
func (*OracleDialect) RenderJSONField ¶
func (*OracleDialect) RenderJSONNullCursorField ¶
func (d *OracleDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
func (*OracleDialect) RenderJSONNullField ¶
func (d *OracleDialect) RenderJSONNullField(ctx Context, fieldName string)
JSON Null Fields
func (*OracleDialect) RenderJSONPath ¶
func (d *OracleDialect) RenderJSONPath(ctx Context, table, col string, path []string)
func (*OracleDialect) RenderJSONPlural ¶
func (d *OracleDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
func (*OracleDialect) RenderJSONRoot ¶
func (d *OracleDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
func (*OracleDialect) RenderJSONRootField ¶
func (d *OracleDialect) RenderJSONRootField(ctx Context, key string, val func())
func (*OracleDialect) RenderJSONRootSuffix ¶
func (d *OracleDialect) RenderJSONRootSuffix(ctx Context)
func (*OracleDialect) RenderJSONSelect ¶
func (d *OracleDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
func (*OracleDialect) RenderJoinTables ¶
func (d *OracleDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
func (*OracleDialect) RenderLateralJoin ¶
func (d *OracleDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
func (*OracleDialect) RenderLateralJoinClose ¶
func (d *OracleDialect) RenderLateralJoinClose(ctx Context, alias string)
func (*OracleDialect) RenderLimit ¶
func (d *OracleDialect) RenderLimit(ctx Context, sel *qcode.Select)
func (*OracleDialect) RenderLinearConnect ¶
func (*OracleDialect) RenderLinearDisconnect ¶
func (*OracleDialect) RenderLinearInsert ¶
func (*OracleDialect) RenderLinearUpdate ¶
func (*OracleDialect) RenderList ¶
func (d *OracleDialect) RenderList(ctx Context, ex *qcode.Exp)
func (*OracleDialect) RenderLiteral ¶
func (d *OracleDialect) RenderLiteral(ctx Context, val string, valType qcode.ValType)
func (*OracleDialect) RenderMutateToRecordSet ¶
func (d *OracleDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
func (*OracleDialect) RenderMutationCTE ¶
func (d *OracleDialect) RenderMutationCTE(ctx Context, m *qcode.Mutate, renderBody func())
func (*OracleDialect) RenderMutationInput ¶
func (d *OracleDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
func (*OracleDialect) RenderMutationPostamble ¶
func (d *OracleDialect) RenderMutationPostamble(ctx Context, qc *qcode.QCode)
func (*OracleDialect) RenderOrderBy ¶
func (d *OracleDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
func (*OracleDialect) RenderQueryPrefix ¶
func (d *OracleDialect) RenderQueryPrefix(ctx Context, qc *qcode.QCode)
func (*OracleDialect) RenderRecursiveAnchorWhere ¶
func (*OracleDialect) RenderRecursiveLimit1 ¶
func (d *OracleDialect) RenderRecursiveLimit1(ctx Context)
func (*OracleDialect) RenderRecursiveOffset ¶
func (d *OracleDialect) RenderRecursiveOffset(ctx Context)
func (*OracleDialect) RenderReturning ¶
func (d *OracleDialect) RenderReturning(ctx Context, m *qcode.Mutate)
func (*OracleDialect) RenderRootTerminator ¶
func (d *OracleDialect) RenderRootTerminator(ctx Context)
func (*OracleDialect) RenderSearchHeadline ¶
func (*OracleDialect) RenderSearchRank ¶
func (*OracleDialect) RenderSetSessionVar ¶
func (d *OracleDialect) RenderSetSessionVar(ctx Context, name, value string) bool
func (*OracleDialect) RenderSetup ¶
func (d *OracleDialect) RenderSetup(ctx Context)
func (*OracleDialect) RenderSubscriptionUnbox ¶
func (d *OracleDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
func (*OracleDialect) RenderTableAlias ¶
func (d *OracleDialect) RenderTableAlias(ctx Context, alias string)
func (*OracleDialect) RenderTableName ¶
func (d *OracleDialect) RenderTableName(ctx Context, sel *qcode.Select, schema, table string)
func (*OracleDialect) RenderTeardown ¶
func (d *OracleDialect) RenderTeardown(ctx Context)
func (*OracleDialect) RenderTryCast ¶
func (d *OracleDialect) RenderTryCast(ctx Context, val func(), typ string)
func (*OracleDialect) RenderTsQuery ¶
func (*OracleDialect) RenderUpdate ¶
func (d *OracleDialect) RenderUpdate(ctx Context, m *qcode.Mutate, set func(), from func(), where func())
func (*OracleDialect) RenderUpsert ¶
func (d *OracleDialect) RenderUpsert(ctx Context, m *qcode.Mutate, insert func(), updateSet func())
func (*OracleDialect) RenderValArrayColumn ¶
func (*OracleDialect) RenderValPrefix ¶
func (d *OracleDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
func (*OracleDialect) RenderValVar ¶
func (*OracleDialect) RenderVar ¶
func (d *OracleDialect) RenderVar(ctx Context, name string)
func (*OracleDialect) RenderVarDeclaration ¶
func (d *OracleDialect) RenderVarDeclaration(ctx Context, name, typeName string)
func (*OracleDialect) RequiresBooleanAsInt ¶
func (d *OracleDialect) RequiresBooleanAsInt() bool
func (*OracleDialect) RequiresJSONAsString ¶
func (d *OracleDialect) RequiresJSONAsString() bool
Driver Behavior
func (*OracleDialect) RequiresJSONQueryWrapper ¶
func (d *OracleDialect) RequiresJSONQueryWrapper() bool
Column rendering
func (*OracleDialect) RequiresLowercaseIdentifiers ¶
func (d *OracleDialect) RequiresLowercaseIdentifiers() bool
func (*OracleDialect) RequiresNullOnEmptySelect ¶
func (d *OracleDialect) RequiresNullOnEmptySelect() bool
func (*OracleDialect) RequiresRecursiveCTEColumnList ¶
func (d *OracleDialect) RequiresRecursiveCTEColumnList() bool
func (*OracleDialect) RequiresRecursiveKeyword ¶
func (d *OracleDialect) RequiresRecursiveKeyword() bool
Recursive CTE Syntax
func (*OracleDialect) RoleDummyTable ¶
func (d *OracleDialect) RoleDummyTable() string
func (*OracleDialect) RoleLimitSuffix ¶
func (d *OracleDialect) RoleLimitSuffix() string
func (*OracleDialect) RoleSelectPrefix ¶
func (d *OracleDialect) RoleSelectPrefix() string
Role Statement rendering
func (*OracleDialect) SplitQuery ¶
func (d *OracleDialect) SplitQuery(query string) (parts []string)
func (*OracleDialect) SupportsConflictUpdate ¶
func (d *OracleDialect) SupportsConflictUpdate() bool
func (*OracleDialect) SupportsLateral ¶
func (d *OracleDialect) SupportsLateral() bool
func (*OracleDialect) SupportsLinearExecution ¶
func (d *OracleDialect) SupportsLinearExecution() bool
func (*OracleDialect) SupportsReturning ¶
func (d *OracleDialect) SupportsReturning() bool
func (*OracleDialect) SupportsSubscriptionBatching ¶
func (d *OracleDialect) SupportsSubscriptionBatching() bool
func (*OracleDialect) SupportsWritableCTE ¶
func (d *OracleDialect) SupportsWritableCTE() bool
func (*OracleDialect) TransformBooleanLiterals ¶
func (d *OracleDialect) TransformBooleanLiterals(match string) string
func (*OracleDialect) UseNamedParams ¶
func (d *OracleDialect) UseNamedParams() bool
func (*OracleDialect) WrapRecursiveSelect ¶
func (d *OracleDialect) WrapRecursiveSelect() bool
type PostgresDialect ¶
func (*PostgresDialect) BindVar ¶
func (d *PostgresDialect) BindVar(i int) string
func (*PostgresDialect) ModifySelectsForMutation ¶
func (d *PostgresDialect) ModifySelectsForMutation(qc *qcode.QCode)
func (*PostgresDialect) Name ¶
func (d *PostgresDialect) Name() string
func (*PostgresDialect) QuoteIdentifier ¶
func (d *PostgresDialect) QuoteIdentifier(s string) string
func (*PostgresDialect) RenderArray ¶
func (d *PostgresDialect) RenderArray(ctx Context, items []string)
func (*PostgresDialect) RenderArrayAggPrefix ¶
func (d *PostgresDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
func (*PostgresDialect) RenderArrayRemove ¶
func (d *PostgresDialect) RenderArrayRemove(ctx Context, col string, val func())
func (*PostgresDialect) RenderArraySelectPrefix ¶
func (d *PostgresDialect) RenderArraySelectPrefix(ctx Context)
Array Operations
func (*PostgresDialect) RenderArraySelectSuffix ¶
func (d *PostgresDialect) RenderArraySelectSuffix(ctx Context)
func (*PostgresDialect) RenderAssign ¶
func (d *PostgresDialect) RenderAssign(ctx Context, col string, val string)
func (*PostgresDialect) RenderBaseTable ¶
func (d *PostgresDialect) RenderBaseTable(ctx Context)
func (*PostgresDialect) RenderBegin ¶
func (d *PostgresDialect) RenderBegin(ctx Context)
func (*PostgresDialect) RenderBooleanEqualsTrue ¶
func (d *PostgresDialect) RenderBooleanEqualsTrue(ctx Context, paramName string)
func (*PostgresDialect) RenderBooleanNotEqualsTrue ¶
func (d *PostgresDialect) RenderBooleanNotEqualsTrue(ctx Context, paramName string)
func (*PostgresDialect) RenderCast ¶
func (d *PostgresDialect) RenderCast(ctx Context, val func(), typ string)
func (*PostgresDialect) RenderChildCursor ¶
func (d *PostgresDialect) RenderChildCursor(ctx Context, renderChild func())
func (*PostgresDialect) RenderChildValue ¶
func (d *PostgresDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
func (*PostgresDialect) RenderCursorCTE ¶
func (d *PostgresDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
func (*PostgresDialect) RenderDelete ¶
func (d *PostgresDialect) RenderDelete(ctx Context, m *qcode.Mutate, where func())
func (*PostgresDialect) RenderDistinctOn ¶
func (d *PostgresDialect) RenderDistinctOn(ctx Context, sel *qcode.Select)
func (*PostgresDialect) RenderFromEdge ¶
func (d *PostgresDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
func (*PostgresDialect) RenderGeoOp ¶
RenderGeoOp renders PostGIS spatial operations
func (*PostgresDialect) RenderIDCapture ¶
func (d *PostgresDialect) RenderIDCapture(ctx Context, varName string)
func (*PostgresDialect) RenderInlineChild ¶
func (d *PostgresDialect) RenderInlineChild(ctx Context, renderer InlineChildRenderer, psel, sel *qcode.Select)
RenderInlineChild is not used for PostgreSQL since it supports LATERAL joins
func (*PostgresDialect) RenderInsert ¶
func (d *PostgresDialect) RenderInsert(ctx Context, m *qcode.Mutate, values func())
func (*PostgresDialect) RenderJSONField ¶
func (*PostgresDialect) RenderJSONNullCursorField ¶
func (d *PostgresDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
func (*PostgresDialect) RenderJSONNullField ¶
func (d *PostgresDialect) RenderJSONNullField(ctx Context, fieldName string)
JSON Null Fields
func (*PostgresDialect) RenderJSONPath ¶
func (d *PostgresDialect) RenderJSONPath(ctx Context, table, col string, path []string)
func (*PostgresDialect) RenderJSONPlural ¶
func (d *PostgresDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
func (*PostgresDialect) RenderJSONRoot ¶
func (d *PostgresDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
func (*PostgresDialect) RenderJSONRootField ¶
func (d *PostgresDialect) RenderJSONRootField(ctx Context, key string, val func())
func (*PostgresDialect) RenderJSONRootSuffix ¶
func (d *PostgresDialect) RenderJSONRootSuffix(ctx Context)
func (*PostgresDialect) RenderJSONSelect ¶
func (d *PostgresDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
func (*PostgresDialect) RenderJoinTables ¶
func (d *PostgresDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
func (*PostgresDialect) RenderLateralJoin ¶
func (d *PostgresDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
func (*PostgresDialect) RenderLateralJoinClose ¶
func (d *PostgresDialect) RenderLateralJoinClose(ctx Context, alias string)
func (*PostgresDialect) RenderLimit ¶
func (d *PostgresDialect) RenderLimit(ctx Context, sel *qcode.Select)
func (*PostgresDialect) RenderLinearConnect ¶
func (*PostgresDialect) RenderLinearDisconnect ¶
func (*PostgresDialect) RenderLinearInsert ¶
func (*PostgresDialect) RenderLinearUpdate ¶
func (*PostgresDialect) RenderList ¶
func (d *PostgresDialect) RenderList(ctx Context, ex *qcode.Exp)
func (*PostgresDialect) RenderLiteral ¶
func (d *PostgresDialect) RenderLiteral(ctx Context, val string, valType qcode.ValType)
func (*PostgresDialect) RenderMutateToRecordSet ¶
func (d *PostgresDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
func (*PostgresDialect) RenderMutationCTE ¶
func (d *PostgresDialect) RenderMutationCTE(ctx Context, m *qcode.Mutate, renderBody func())
func (*PostgresDialect) RenderMutationInput ¶
func (d *PostgresDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
func (*PostgresDialect) RenderMutationPostamble ¶
func (d *PostgresDialect) RenderMutationPostamble(ctx Context, qc *qcode.QCode)
func (*PostgresDialect) RenderOp ¶
func (d *PostgresDialect) RenderOp(op qcode.ExpOp) (string, error)
func (*PostgresDialect) RenderOrderBy ¶
func (d *PostgresDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
func (*PostgresDialect) RenderQueryPrefix ¶
func (d *PostgresDialect) RenderQueryPrefix(ctx Context, qc *qcode.QCode)
func (*PostgresDialect) RenderRecursiveAnchorWhere ¶
func (*PostgresDialect) RenderRecursiveLimit1 ¶
func (d *PostgresDialect) RenderRecursiveLimit1(ctx Context)
func (*PostgresDialect) RenderRecursiveOffset ¶
func (d *PostgresDialect) RenderRecursiveOffset(ctx Context)
func (*PostgresDialect) RenderReturning ¶
func (d *PostgresDialect) RenderReturning(ctx Context, m *qcode.Mutate)
func (*PostgresDialect) RenderRootTerminator ¶
func (d *PostgresDialect) RenderRootTerminator(ctx Context)
func (*PostgresDialect) RenderSearchHeadline ¶
func (*PostgresDialect) RenderSearchRank ¶
func (*PostgresDialect) RenderSetSessionVar ¶
func (d *PostgresDialect) RenderSetSessionVar(ctx Context, name, value string) bool
RenderSetSessionVar renders the SQL to set a session variable in Postgres
func (*PostgresDialect) RenderSetup ¶
func (d *PostgresDialect) RenderSetup(ctx Context)
func (*PostgresDialect) RenderSubscriptionUnbox ¶
func (d *PostgresDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
func (*PostgresDialect) RenderTableAlias ¶
func (d *PostgresDialect) RenderTableAlias(ctx Context, alias string)
func (*PostgresDialect) RenderTableName ¶
func (d *PostgresDialect) RenderTableName(ctx Context, sel *qcode.Select, schema, table string)
func (*PostgresDialect) RenderTeardown ¶
func (d *PostgresDialect) RenderTeardown(ctx Context)
func (*PostgresDialect) RenderTryCast ¶
func (d *PostgresDialect) RenderTryCast(ctx Context, val func(), typ string)
func (*PostgresDialect) RenderTsQuery ¶
func (*PostgresDialect) RenderUpdate ¶
func (d *PostgresDialect) RenderUpdate(ctx Context, m *qcode.Mutate, set func(), from func(), where func())
func (*PostgresDialect) RenderUpsert ¶
func (d *PostgresDialect) RenderUpsert(ctx Context, m *qcode.Mutate, insert func(), updateSet func())
func (*PostgresDialect) RenderValArrayColumn ¶
func (*PostgresDialect) RenderValPrefix ¶
func (d *PostgresDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
func (*PostgresDialect) RenderValVar ¶
func (*PostgresDialect) RenderVar ¶
func (d *PostgresDialect) RenderVar(ctx Context, name string)
func (*PostgresDialect) RenderVarDeclaration ¶
func (d *PostgresDialect) RenderVarDeclaration(ctx Context, name, typeName string)
func (*PostgresDialect) RequiresBooleanAsInt ¶
func (d *PostgresDialect) RequiresBooleanAsInt() bool
func (*PostgresDialect) RequiresJSONAsString ¶
func (d *PostgresDialect) RequiresJSONAsString() bool
Driver Behavior
func (*PostgresDialect) RequiresJSONQueryWrapper ¶
func (d *PostgresDialect) RequiresJSONQueryWrapper() bool
Column rendering
func (*PostgresDialect) RequiresLowercaseIdentifiers ¶
func (d *PostgresDialect) RequiresLowercaseIdentifiers() bool
func (*PostgresDialect) RequiresNullOnEmptySelect ¶
func (d *PostgresDialect) RequiresNullOnEmptySelect() bool
func (*PostgresDialect) RequiresRecursiveCTEColumnList ¶
func (d *PostgresDialect) RequiresRecursiveCTEColumnList() bool
func (*PostgresDialect) RequiresRecursiveKeyword ¶
func (d *PostgresDialect) RequiresRecursiveKeyword() bool
Recursive CTE Syntax
func (*PostgresDialect) RoleDummyTable ¶
func (d *PostgresDialect) RoleDummyTable() string
func (*PostgresDialect) RoleLimitSuffix ¶
func (d *PostgresDialect) RoleLimitSuffix() string
func (*PostgresDialect) RoleSelectPrefix ¶
func (d *PostgresDialect) RoleSelectPrefix() string
Role Statement rendering
func (*PostgresDialect) SplitQuery ¶
func (d *PostgresDialect) SplitQuery(query string) (parts []string)
func (*PostgresDialect) SupportsConflictUpdate ¶
func (d *PostgresDialect) SupportsConflictUpdate() bool
func (*PostgresDialect) SupportsLateral ¶
func (d *PostgresDialect) SupportsLateral() bool
func (*PostgresDialect) SupportsLinearExecution ¶
func (d *PostgresDialect) SupportsLinearExecution() bool
func (*PostgresDialect) SupportsReturning ¶
func (d *PostgresDialect) SupportsReturning() bool
func (*PostgresDialect) SupportsSubscriptionBatching ¶
func (d *PostgresDialect) SupportsSubscriptionBatching() bool
func (*PostgresDialect) SupportsWritableCTE ¶
func (d *PostgresDialect) SupportsWritableCTE() bool
func (*PostgresDialect) TransformBooleanLiterals ¶
func (d *PostgresDialect) TransformBooleanLiterals(match string) string
func (*PostgresDialect) UseNamedParams ¶
func (d *PostgresDialect) UseNamedParams() bool
func (*PostgresDialect) WrapRecursiveSelect ¶
func (d *PostgresDialect) WrapRecursiveSelect() bool
type SQLiteDialect ¶
type SQLiteDialect struct {
}
func (*SQLiteDialect) BindVar ¶
func (d *SQLiteDialect) BindVar(i int) string
func (*SQLiteDialect) ModifySelectsForMutation ¶
func (d *SQLiteDialect) ModifySelectsForMutation(qc *qcode.QCode)
ModifySelectsForMutation injects WHERE clauses to filter SELECT results to only include records from INSERT/UPDATE/UPSERT mutations. This ensures CONNECT mutations' captured IDs are available in the CTE for joins, but don't affect which primary records are returned.
func (*SQLiteDialect) Name ¶
func (d *SQLiteDialect) Name() string
func (*SQLiteDialect) Quote ¶
func (d *SQLiteDialect) Quote(ctx Context, col string)
func (*SQLiteDialect) QuoteIdentifier ¶
func (d *SQLiteDialect) QuoteIdentifier(s string) string
func (*SQLiteDialect) RenderArray ¶
func (d *SQLiteDialect) RenderArray(ctx Context, items []string)
func (*SQLiteDialect) RenderArrayAggPrefix ¶
func (d *SQLiteDialect) RenderArrayAggPrefix(ctx Context, distinct bool)
func (*SQLiteDialect) RenderArrayRemove ¶
func (d *SQLiteDialect) RenderArrayRemove(ctx Context, col string, val func())
func (*SQLiteDialect) RenderArraySelectPrefix ¶
func (d *SQLiteDialect) RenderArraySelectPrefix(ctx Context)
Array Operations
func (*SQLiteDialect) RenderArraySelectSuffix ¶
func (d *SQLiteDialect) RenderArraySelectSuffix(ctx Context)
func (*SQLiteDialect) RenderAssign ¶
func (d *SQLiteDialect) RenderAssign(ctx Context, col string, val string)
func (*SQLiteDialect) RenderBaseTable ¶
func (d *SQLiteDialect) RenderBaseTable(ctx Context)
func (*SQLiteDialect) RenderBegin ¶
func (d *SQLiteDialect) RenderBegin(ctx Context)
func (*SQLiteDialect) RenderBooleanEqualsTrue ¶
func (d *SQLiteDialect) RenderBooleanEqualsTrue(ctx Context, paramName string)
func (*SQLiteDialect) RenderBooleanNotEqualsTrue ¶
func (d *SQLiteDialect) RenderBooleanNotEqualsTrue(ctx Context, paramName string)
func (*SQLiteDialect) RenderCast ¶
func (d *SQLiteDialect) RenderCast(ctx Context, val func(), typ string)
func (*SQLiteDialect) RenderChildCursor ¶
func (d *SQLiteDialect) RenderChildCursor(ctx Context, renderChild func())
func (*SQLiteDialect) RenderChildValue ¶
func (d *SQLiteDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
func (*SQLiteDialect) RenderCursorCTE ¶
func (d *SQLiteDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
func (*SQLiteDialect) RenderDelete ¶
func (d *SQLiteDialect) RenderDelete(ctx Context, m *qcode.Mutate, where func())
func (*SQLiteDialect) RenderDistinctOn ¶
func (d *SQLiteDialect) RenderDistinctOn(ctx Context, sel *qcode.Select)
func (*SQLiteDialect) RenderFromEdge ¶
func (d *SQLiteDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
func (*SQLiteDialect) RenderGeoOp ¶
RenderGeoOp renders SpatiaLite spatial operations Requires SpatiaLite extension to be loaded
func (*SQLiteDialect) RenderIDCapture ¶
func (d *SQLiteDialect) RenderIDCapture(ctx Context, varName string)
func (*SQLiteDialect) RenderInlineChild ¶
func (d *SQLiteDialect) RenderInlineChild(ctx Context, renderer InlineChildRenderer, psel, sel *qcode.Select)
RenderInlineChild for SQLite uses the default implementation from query.go RenderInlineChild for SQLite uses the default implementation from query.go
func (*SQLiteDialect) RenderInsert ¶
func (d *SQLiteDialect) RenderInsert(ctx Context, m *qcode.Mutate, values func())
func (*SQLiteDialect) RenderJSONField ¶
func (*SQLiteDialect) RenderJSONNullCursorField ¶
func (d *SQLiteDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
func (*SQLiteDialect) RenderJSONNullField ¶
func (d *SQLiteDialect) RenderJSONNullField(ctx Context, fieldName string)
JSON Null Fields
func (*SQLiteDialect) RenderJSONPath ¶
func (d *SQLiteDialect) RenderJSONPath(ctx Context, table, col string, path []string)
func (*SQLiteDialect) RenderJSONPlural ¶
func (d *SQLiteDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
func (*SQLiteDialect) RenderJSONRoot ¶
func (d *SQLiteDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
func (*SQLiteDialect) RenderJSONRootField ¶
func (d *SQLiteDialect) RenderJSONRootField(ctx Context, key string, val func())
func (*SQLiteDialect) RenderJSONRootSuffix ¶
func (d *SQLiteDialect) RenderJSONRootSuffix(ctx Context)
func (*SQLiteDialect) RenderJSONSelect ¶
func (d *SQLiteDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
func (*SQLiteDialect) RenderJoinTables ¶
func (d *SQLiteDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
func (*SQLiteDialect) RenderLateralJoin ¶
func (d *SQLiteDialect) RenderLateralJoin(ctx Context, sel *qcode.Select, multi bool)
func (*SQLiteDialect) RenderLateralJoinClose ¶
func (d *SQLiteDialect) RenderLateralJoinClose(ctx Context, alias string)
func (*SQLiteDialect) RenderLimit ¶
func (d *SQLiteDialect) RenderLimit(ctx Context, sel *qcode.Select)
func (*SQLiteDialect) RenderLinearConnect ¶
func (*SQLiteDialect) RenderLinearDisconnect ¶
func (*SQLiteDialect) RenderLinearInsert ¶
func (*SQLiteDialect) RenderLinearUpdate ¶
func (*SQLiteDialect) RenderLinearValues ¶
func (d *SQLiteDialect) RenderLinearValues(ctx Context, m *qcode.Mutate, renderRoot func())
func (*SQLiteDialect) RenderList ¶
func (d *SQLiteDialect) RenderList(ctx Context, ex *qcode.Exp)
func (*SQLiteDialect) RenderLiteral ¶
func (d *SQLiteDialect) RenderLiteral(ctx Context, val string, valType qcode.ValType)
func (*SQLiteDialect) RenderMutateToRecordSet ¶
func (d *SQLiteDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
func (*SQLiteDialect) RenderMutationCTE ¶
func (d *SQLiteDialect) RenderMutationCTE(ctx Context, m *qcode.Mutate, renderBody func())
func (*SQLiteDialect) RenderMutationInput ¶
func (d *SQLiteDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
func (*SQLiteDialect) RenderMutationPostamble ¶
func (d *SQLiteDialect) RenderMutationPostamble(ctx Context, qc *qcode.QCode)
func (*SQLiteDialect) RenderOrderBy ¶
func (d *SQLiteDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
func (*SQLiteDialect) RenderQueryPrefix ¶
func (d *SQLiteDialect) RenderQueryPrefix(ctx Context, qc *qcode.QCode)
func (*SQLiteDialect) RenderRecursiveAnchorWhere ¶
func (*SQLiteDialect) RenderRecursiveLimit1 ¶
func (d *SQLiteDialect) RenderRecursiveLimit1(ctx Context)
func (*SQLiteDialect) RenderRecursiveOffset ¶
func (d *SQLiteDialect) RenderRecursiveOffset(ctx Context)
func (*SQLiteDialect) RenderReturning ¶
func (d *SQLiteDialect) RenderReturning(ctx Context, m *qcode.Mutate)
func (*SQLiteDialect) RenderRootTerminator ¶
func (d *SQLiteDialect) RenderRootTerminator(ctx Context)
func (*SQLiteDialect) RenderSearchHeadline ¶
func (*SQLiteDialect) RenderSearchRank ¶
func (*SQLiteDialect) RenderSetSessionVar ¶
func (d *SQLiteDialect) RenderSetSessionVar(ctx Context, name, value string) bool
func (*SQLiteDialect) RenderSetup ¶
func (d *SQLiteDialect) RenderSetup(ctx Context)
func (*SQLiteDialect) RenderSubscriptionUnbox ¶
func (d *SQLiteDialect) RenderSubscriptionUnbox(ctx Context, params []Param, innerSQL string)
func (*SQLiteDialect) RenderTableAlias ¶
func (d *SQLiteDialect) RenderTableAlias(ctx Context, alias string)
func (*SQLiteDialect) RenderTableName ¶
func (d *SQLiteDialect) RenderTableName(ctx Context, sel *qcode.Select, schema, table string)
RenderTableName renders table names for SQLite. For mutated tables in mutations, omits the schema so the scoping CTE is used.
func (*SQLiteDialect) RenderTeardown ¶
func (d *SQLiteDialect) RenderTeardown(ctx Context)
func (*SQLiteDialect) RenderTryCast ¶
func (d *SQLiteDialect) RenderTryCast(ctx Context, val func(), typ string)
func (*SQLiteDialect) RenderTsQuery ¶
func (*SQLiteDialect) RenderUpdate ¶
func (d *SQLiteDialect) RenderUpdate(ctx Context, m *qcode.Mutate, set func(), from func(), where func())
func (*SQLiteDialect) RenderUpsert ¶
func (d *SQLiteDialect) RenderUpsert(ctx Context, m *qcode.Mutate, insert func(), updateSet func())
func (*SQLiteDialect) RenderValArrayColumn ¶
func (*SQLiteDialect) RenderValPrefix ¶
func (d *SQLiteDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
func (*SQLiteDialect) RenderValVar ¶
func (*SQLiteDialect) RenderVar ¶
func (d *SQLiteDialect) RenderVar(ctx Context, name string)
func (*SQLiteDialect) RenderVarDeclaration ¶
func (d *SQLiteDialect) RenderVarDeclaration(ctx Context, name, typeName string)
func (*SQLiteDialect) RequiresBooleanAsInt ¶
func (d *SQLiteDialect) RequiresBooleanAsInt() bool
func (*SQLiteDialect) RequiresJSONAsString ¶
func (d *SQLiteDialect) RequiresJSONAsString() bool
Driver Behavior
func (*SQLiteDialect) RequiresJSONQueryWrapper ¶
func (d *SQLiteDialect) RequiresJSONQueryWrapper() bool
Column rendering
func (*SQLiteDialect) RequiresLowercaseIdentifiers ¶
func (d *SQLiteDialect) RequiresLowercaseIdentifiers() bool
func (*SQLiteDialect) RequiresNullOnEmptySelect ¶
func (d *SQLiteDialect) RequiresNullOnEmptySelect() bool
func (*SQLiteDialect) RequiresRecursiveCTEColumnList ¶
func (d *SQLiteDialect) RequiresRecursiveCTEColumnList() bool
func (*SQLiteDialect) RequiresRecursiveKeyword ¶
func (d *SQLiteDialect) RequiresRecursiveKeyword() bool
Recursive CTE Syntax
func (*SQLiteDialect) RoleDummyTable ¶
func (d *SQLiteDialect) RoleDummyTable() string
func (*SQLiteDialect) RoleLimitSuffix ¶
func (d *SQLiteDialect) RoleLimitSuffix() string
func (*SQLiteDialect) RoleSelectPrefix ¶
func (d *SQLiteDialect) RoleSelectPrefix() string
Role Statement rendering
func (*SQLiteDialect) SplitQuery ¶
func (d *SQLiteDialect) SplitQuery(query string) (parts []string)
func (*SQLiteDialect) SupportsConflictUpdate ¶
func (d *SQLiteDialect) SupportsConflictUpdate() bool
func (*SQLiteDialect) SupportsLateral ¶
func (d *SQLiteDialect) SupportsLateral() bool
func (*SQLiteDialect) SupportsLinearExecution ¶
func (d *SQLiteDialect) SupportsLinearExecution() bool
func (*SQLiteDialect) SupportsReturning ¶
func (d *SQLiteDialect) SupportsReturning() bool
func (*SQLiteDialect) SupportsSubscriptionBatching ¶
func (d *SQLiteDialect) SupportsSubscriptionBatching() bool
func (*SQLiteDialect) SupportsWritableCTE ¶
func (d *SQLiteDialect) SupportsWritableCTE() bool
func (*SQLiteDialect) TransformBooleanLiterals ¶
func (d *SQLiteDialect) TransformBooleanLiterals(match string) string
func (*SQLiteDialect) UseNamedParams ¶
func (d *SQLiteDialect) UseNamedParams() bool
func (*SQLiteDialect) WrapRecursiveSelect ¶
func (d *SQLiteDialect) WrapRecursiveSelect() bool
type SnowflakeDialect ¶ added in v3.14.0
type SnowflakeDialect struct {
PostgresDialect
}
SnowflakeDialect is implementation-ready but intentionally not wired into compiler/service selection yet (single-file delivery constraint).
TODO(follow-up outside this file): 1) Add case "snowflake" in psql.NewCompiler (core/internal/psql/query.go) 2) Add case "snowflake" in core/subs.go getDialectForType 3) Add snowflake to DB type validation lists 4) Add Snowflake schema discovery SQL + service driver wiring
TODO(parity): - GIS operators are intentionally unsupported in this phase. - Postgres-specific array/json key ops are intentionally unsupported. - RelEmbedded/RenderFromEdge parity may need a Snowflake-specific approach.
func (*SnowflakeDialect) BindVar ¶ added in v3.14.0
func (d *SnowflakeDialect) BindVar(i int) string
func (*SnowflakeDialect) ModifySelectsForMutation ¶ added in v3.14.0
func (d *SnowflakeDialect) ModifySelectsForMutation(qc *qcode.QCode)
func (*SnowflakeDialect) Name ¶ added in v3.14.0
func (d *SnowflakeDialect) Name() string
func (*SnowflakeDialect) QuoteIdentifier ¶ added in v3.14.0
func (d *SnowflakeDialect) QuoteIdentifier(s string) string
func (*SnowflakeDialect) RenderArray ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderArray(ctx Context, items []string)
func (*SnowflakeDialect) RenderBegin ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderBegin(ctx Context)
func (*SnowflakeDialect) RenderCast ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderCast(ctx Context, val func(), typ string)
func (*SnowflakeDialect) RenderChildCursor ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderChildCursor(ctx Context, renderChild func())
func (*SnowflakeDialect) RenderChildValue ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderChildValue(ctx Context, sel *qcode.Select, renderChild func())
func (*SnowflakeDialect) RenderCursorCTE ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderCursorCTE(ctx Context, sel *qcode.Select)
func (*SnowflakeDialect) RenderFromEdge ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderFromEdge(ctx Context, sel *qcode.Select)
func (*SnowflakeDialect) RenderGeoOp ¶ added in v3.14.0
func (*SnowflakeDialect) RenderIDCapture ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderIDCapture(ctx Context, varName string)
func (*SnowflakeDialect) RenderInlineChild ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderInlineChild(ctx Context, renderer InlineChildRenderer, psel, sel *qcode.Select)
func (*SnowflakeDialect) RenderJSONField ¶ added in v3.14.0
func (*SnowflakeDialect) RenderJSONNullCursorField ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderJSONNullCursorField(ctx Context, fieldName string)
func (*SnowflakeDialect) RenderJSONNullField ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderJSONNullField(ctx Context, fieldName string)
func (*SnowflakeDialect) RenderJSONPath ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderJSONPath(ctx Context, table, col string, path []string)
func (*SnowflakeDialect) RenderJSONPlural ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderJSONPlural(ctx Context, sel *qcode.Select)
func (*SnowflakeDialect) RenderJSONRoot ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderJSONRoot(ctx Context, sel *qcode.Select)
func (*SnowflakeDialect) RenderJSONRootField ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderJSONRootField(ctx Context, key string, val func())
func (*SnowflakeDialect) RenderJSONRootSuffix ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderJSONRootSuffix(ctx Context)
func (*SnowflakeDialect) RenderJSONSelect ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderJSONSelect(ctx Context, sel *qcode.Select)
func (*SnowflakeDialect) RenderJoinTables ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderJoinTables(ctx Context, sel *qcode.Select)
func (*SnowflakeDialect) RenderLinearConnect ¶ added in v3.14.0
func (*SnowflakeDialect) RenderLinearDisconnect ¶ added in v3.14.0
func (*SnowflakeDialect) RenderLinearInsert ¶ added in v3.14.0
func (*SnowflakeDialect) RenderLinearUpdate ¶ added in v3.14.0
func (*SnowflakeDialect) RenderList ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderList(ctx Context, ex *qcode.Exp)
func (*SnowflakeDialect) RenderMutateToRecordSet ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderMutateToRecordSet(ctx Context, m *qcode.Mutate, n int, renderRoot func())
func (*SnowflakeDialect) RenderMutationInput ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderMutationInput(ctx Context, qc *qcode.QCode)
func (*SnowflakeDialect) RenderOp ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderOp(op qcode.ExpOp) (string, error)
func (*SnowflakeDialect) RenderOrderBy ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderOrderBy(ctx Context, sel *qcode.Select)
func (*SnowflakeDialect) RenderRecursiveAnchorWhere ¶ added in v3.14.0
func (*SnowflakeDialect) RenderSearchHeadline ¶ added in v3.14.0
func (*SnowflakeDialect) RenderSearchRank ¶ added in v3.14.0
func (*SnowflakeDialect) RenderSetup ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderSetup(ctx Context)
func (*SnowflakeDialect) RenderTeardown ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderTeardown(ctx Context)
func (*SnowflakeDialect) RenderTryCast ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderTryCast(ctx Context, val func(), typ string)
func (*SnowflakeDialect) RenderTsQuery ¶ added in v3.14.0
func (*SnowflakeDialect) RenderValPrefix ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderValPrefix(ctx Context, ex *qcode.Exp) bool
func (*SnowflakeDialect) RenderValVar ¶ added in v3.14.0
func (*SnowflakeDialect) RenderVar ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderVar(ctx Context, name string)
func (*SnowflakeDialect) RenderVarDeclaration ¶ added in v3.14.0
func (d *SnowflakeDialect) RenderVarDeclaration(ctx Context, name, typeName string)
func (*SnowflakeDialect) RequiresBooleanAsInt ¶ added in v3.14.0
func (d *SnowflakeDialect) RequiresBooleanAsInt() bool
func (*SnowflakeDialect) RequiresJSONAsString ¶ added in v3.14.0
func (d *SnowflakeDialect) RequiresJSONAsString() bool
func (*SnowflakeDialect) RequiresLowercaseIdentifiers ¶ added in v3.14.0
func (d *SnowflakeDialect) RequiresLowercaseIdentifiers() bool
func (*SnowflakeDialect) RequiresNullOnEmptySelect ¶ added in v3.14.0
func (d *SnowflakeDialect) RequiresNullOnEmptySelect() bool
func (*SnowflakeDialect) SplitQuery ¶ added in v3.14.0
func (d *SnowflakeDialect) SplitQuery(query string) (parts []string)
func (*SnowflakeDialect) SupportsLateral ¶ added in v3.14.0
func (d *SnowflakeDialect) SupportsLateral() bool
func (*SnowflakeDialect) SupportsLinearExecution ¶ added in v3.14.0
func (d *SnowflakeDialect) SupportsLinearExecution() bool
func (*SnowflakeDialect) SupportsReturning ¶ added in v3.14.0
func (d *SnowflakeDialect) SupportsReturning() bool
func (*SnowflakeDialect) SupportsSubscriptionBatching ¶ added in v3.14.0
func (d *SnowflakeDialect) SupportsSubscriptionBatching() bool
func (*SnowflakeDialect) SupportsWritableCTE ¶ added in v3.14.0
func (d *SnowflakeDialect) SupportsWritableCTE() bool
func (*SnowflakeDialect) UseNamedParams ¶ added in v3.14.0
func (d *SnowflakeDialect) UseNamedParams() bool