Skip to main content

Class: ASTDeterministicStringifier

Defined in: lang-sql/src/visitors/ast-stringifier.ts:46

Serializes a SQL AST to a deterministic string suitable for use as a stable subexpression key or plan identifier.

Implements

Constructors

Constructor

new ASTDeterministicStringifier(): ASTDeterministicStringifier

Defined in: lang-sql/src/visitors/ast-stringifier.ts:50

Returns

ASTDeterministicStringifier

Properties

uniqueId

protected uniqueId: number = 0

Defined in: lang-sql/src/visitors/ast-stringifier.ts:48

Counter incremented for each LangSwitch node to keep its synthesized key unique within this instance.

Methods

addQuotes()

protected addQuotes(str, quot): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:114

Wraps str in quot, doubling any embedded quot characters to produce a valid SQL literal or identifier.

Parameters

ParameterType
strstring
quot""" | "'"

Returns

string


processNode()

protected processNode(x): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:56

Dispatches x through the visitor; bound to this for use as an array map callback.

Parameters

ParameterType
xASTNode

Returns

string


visitAggregate()

visitAggregate(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:216

Parameters

ParameterType
nodeASTAggregate

Returns

string

Implementation of

SQLVisitor.visitAggregate


visitArray()

visitArray(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:73

Parameters

ParameterType
nodeASTArray

Returns

string

Implementation of

SQLVisitor.visitArray


visitCase()

visitCase(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:204

Parameters

ParameterType
nodeASTCase

Returns

string

Implementation of

SQLVisitor.visitCase


visitCast()

visitCast(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:83

Parameters

ParameterType
nodeASTCast

Returns

string

Implementation of

SQLVisitor.visitCast


visitExists()

visitExists(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:91

Parameters

ParameterType
nodeASTExists

Returns

string

Implementation of

SQLVisitor.visitExists


visitExpressionAlias()

visitExpressionAlias(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:125

Parameters

ParameterType
nodeASTExpressionAlias

Returns

string

Implementation of

SQLVisitor.visitExpressionAlias


visitFrameBoundary()

protected visitFrameBoundary(x, start): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:256

Renders a single window frame boundary.

Parameters

ParameterTypeDescription
xASTNode-
startbooleantrue for the start boundary (uses PRECEDING), false for the end (uses FOLLOWING).

Returns

string


visitFunction()

visitFunction(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:327

Parameters

ParameterType
nodeASTFunction

Returns

string

Implementation of

SQLVisitor.visitFunction


visitGroupByClause()

visitGroupByClause(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:176

Parameters

ParameterType
nodeGroupByClause

Returns

string

Implementation of

SQLVisitor.visitGroupByClause


visitIdentifier()

visitIdentifier(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:106

Parameters

ParameterType
nodeSQLIdentifier

Returns

string

Implementation of

SQLVisitor.visitIdentifier


visitJoinClause()

visitJoinClause(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:189

Parameters

ParameterType
nodeJoinClause

Returns

string

Implementation of

SQLVisitor.visitJoinClause


visitLangSwitch()

visitLangSwitch(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:64

Returns a synthetic placeholder lang_<lang>_<n> rather than stringifying the embedded expression, because the nested language's AST is opaque to SQL.

Parameters

ParameterType
nodeLangSwitch

Returns

string

Implementation of

SQLVisitor.visitLangSwitch


visitLiteral()

visitLiteral<U>(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:319

Type Parameters

Type Parameter
U

Parameters

ParameterType
nodeASTLiteral<U>

Returns

string

Implementation of

SQLVisitor.visitLiteral


visitNumberLiteral()

visitNumberLiteral(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:70

Parameters

ParameterType
nodeASTNumberLiteral

Returns

string

Implementation of

SQLVisitor.visitNumberLiteral


visitOperator()

visitOperator(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:322

Parameters

ParameterType
nodeASTOperator

Returns

string

Implementation of

SQLVisitor.visitOperator


visitOrderBy()

protected visitOrderBy(nodes): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:142

Serializes an array of ORDER BY items to SQL text, including ASC/DESC and NULLS FIRST/LAST.

Parameters

ParameterType
nodesOrderByItem[]

Returns

string


visitQuantifier()

visitQuantifier(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:94

Parameters

ParameterType
nodeASTQuantifier

Returns

string

Implementation of

SQLVisitor.visitQuantifier


visitRow()

visitRow(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:78

Parameters

ParameterType
nodeASTRow

Returns

string

Implementation of

SQLVisitor.visitRow


visitRowsFrom()

visitRowsFrom(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:286

Parameters

ParameterType
nodeRowsFrom

Returns

string

Implementation of

SQLVisitor.visitRowsFrom


visitSchemaPart()

protected visitSchemaPart(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:99

Converts a single schema part to SQL text; renders allAttrs as * and wraps string parts in double quotes.

Parameters

ParameterType
nodestring | number | symbol

Returns

string


visitSelectSet()

visitSelectSet(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:158

Parameters

ParameterType
nodeSelectSet

Returns

string

Implementation of

SQLVisitor.visitSelectSet


visitSelectSetOp()

visitSelectSetOp(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:153

Parameters

ParameterType
nodeSelectSetOp

Returns

string

Implementation of

SQLVisitor.visitSelectSetOp


visitSelectStatement()

visitSelectStatement(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:131

Parameters

ParameterType
nodeSelectStatement

Returns

string

Implementation of

SQLVisitor.visitSelectStatement


visitSQLIdentifier()

visitSQLIdentifier(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:110

Parameters

ParameterType
nodeSQLIdentifier

Returns

string

Implementation of

SQLVisitor.visitSQLIdentifier


visitStringLiteral()

visitStringLiteral(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:67

Parameters

ParameterType
nodeASTStringLiteral

Returns

string

Implementation of

SQLVisitor.visitStringLiteral


visitSubscript()

visitSubscript(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:86

Parameters

ParameterType
nodeASTSubscript

Returns

string

Implementation of

SQLVisitor.visitSubscript


visitTableAlias()

visitTableAlias(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:118

Parameters

ParameterType
nodeASTTableAlias

Returns

string

Implementation of

SQLVisitor.visitTableAlias


visitTableFn()

visitTableFn(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:281

Parameters

ParameterType
nodeTableFn

Returns

string

Implementation of

SQLVisitor.visitTableFn


visitTuple()

visitTuple(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:330

Parameters

ParameterType
nodeASTTuple

Returns

string

Implementation of

SQLVisitor.visitTuple


visitValues()

visitValues(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:211

Parameters

ParameterType
nodeValuesClause

Returns

string

Implementation of

SQLVisitor.visitValues


visitWindowFn()

visitWindowFn(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:271

Parameters

ParameterType
nodeASTWindowFn

Returns

string

Implementation of

SQLVisitor.visitWindowFn


visitWindowSpec()

visitWindowSpec(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:230

Parameters

ParameterType
nodeWindowSpec

Returns

string

Implementation of

SQLVisitor.visitWindowSpec


visitWithQuery()

visitWithQuery(node): string

Defined in: lang-sql/src/visitors/ast-stringifier.ts:291

Parameters

ParameterType
nodeWithQuery

Returns

string

Implementation of

SQLVisitor.visitWithQuery