English | 简体中文

api-docs / org.ktorm.expression / SqlFormatter

SqlFormatter

abstract class SqlFormatter : SqlExpressionVisitor (source code)

Implementation of SqlExpressionVisitor, visiting SQL expression trees using visitor pattern. After a visit
completes, the executable SQL string will be generated in the sql property with its execution parameters
in parameters.

Types

NameSummary

Indentation

enum class Indentation

Constructors

NameSummary

<init>

SqlFormatter(
    database: Database,
    beautifySql: Boolean,
    indentSize: Int)

Implementation of SqlExpressionVisitor, visiting SQL expression trees using visitor pattern. After a visit
completes, the executable SQL string will be generated in the sql property with its execution parameters
in parameters.

Properties

NameSummary

_builder

val _builder: StringBuilder

_depth

var _depth: Int

_parameters

val _parameters: <ERROR CLASS><ArgumentExpression<*>>

beautifySql

val beautifySql: Boolean

mark if we should output beautiful SQL strings with line-wrapping and indentation.

database

val database: Database

the current database object used to obtain metadata such as identifier quote string.

indentSize

val indentSize: Int

the indent size.

isIdentifier

val String.isIdentifier: Boolean

isIdentifierStart

val Char.isIdentifierStart: Boolean

isMixedCase

val String.isMixedCase: Boolean

parameters

val parameters: List<ArgumentExpression<*>>

return the SQL execution parameters after the visit completes.

quoted

val String.quoted: String

removeBrackets

val SqlExpression.removeBrackets: Boolean

sql

val sql: String

return the executable SQL string after the visit completes.

Functions

NameSummary

newLine

fun newLine(indent: SqlFormatter.Indentation): Unit

removeLastBlank

fun removeLastBlank(): Unit

shouldQuote

open fun shouldQuote(identifier: String): Boolean

visit

open fun visit(expr: SqlExpression): SqlExpression

Dispatch different type of expression nodes to their specific visit* functions. Custom expression types that
are unknown to Ktorm will be dispatched to visitUnknown.

visitAggregate

open fun <T : Any> visitAggregate(
    expr: AggregateExpression<T>
): AggregateExpression<T>

Function that visits an AggregateExpression.

visitArgument

open fun <T : Any> visitArgument(
    expr: ArgumentExpression<T>
): ArgumentExpression<T>

Function that visits an ArgumentExpression.

visitBetween

open fun visitBetween(
    expr: BetweenExpression
): BetweenExpression

Function that visits a BetweenExpression.

visitBinary

open fun <T : Any> visitBinary(
    expr: BinaryExpression<T>
): BinaryExpression<T>

Function that visits a BinaryExpression.

visitCaseWhen

open fun <T : Any> visitCaseWhen(
    expr: CaseWhenExpression<T>
): CaseWhenExpression<T>

Function that visits a CaseWhenExpression.

visitCasting

open fun <T : Any> visitCasting(
    expr: CastingExpression<T>
): CastingExpression<T>

Function that visits a CastingExpression.

visitColumn

open fun <T : Any> visitColumn(
    expr: ColumnExpression<T>
): ColumnExpression<T>

Function that visits a ColumnExpression.

visitColumnDeclaring

open fun <T : Any> visitColumnDeclaring(
    expr: ColumnDeclaringExpression<T>
): ColumnDeclaringExpression<T>

Function that visits a ColumnDeclaringExpression.

visitColumnDeclaringAtSelectClause

fun <T : Any> visitColumnDeclaringAtSelectClause(
    expr: ColumnDeclaringExpression<T>
): ColumnDeclaringExpression<T>

visitDelete

open fun visitDelete(
    expr: DeleteExpression
): DeleteExpression

Function that visits a DeleteExpression.

visitExists

open fun visitExists(
    expr: ExistsExpression
): ExistsExpression

Function that visits an ExistsExpression.

visitExpressionList

open fun <T : SqlExpression> visitExpressionList(
    original: List<T>,
    subVisitor: (T) -> T
): List<T>

Helper function for visiting a list of expressions.

visitFunction

open fun <T : Any> visitFunction(
    expr: FunctionExpression<T>
): FunctionExpression<T>

Function that visits a FunctionExpression.

visitInList

open fun visitInList(
    expr: InListExpression
): InListExpression

Function that visits an InListExpression.

visitInsert

open fun visitInsert(
    expr: InsertExpression
): InsertExpression

Function that visits an InsertExpression.

visitInsertFromQuery

open fun visitInsertFromQuery(
    expr: InsertFromQueryExpression
): InsertFromQueryExpression

Function that visits an InsertFromQueryExpression.

visitJoin

open fun visitJoin(expr: JoinExpression): JoinExpression

Function that visits a JoinExpression.

visitOrderBy

open fun visitOrderBy(
    expr: OrderByExpression
): OrderByExpression

Function that visits an OrderByExpression.

visitQuerySource

open fun visitQuerySource(
    expr: QuerySourceExpression
): QuerySourceExpression

Function that visits a QuerySourceExpression.

visitSelect

open fun visitSelect(
    expr: SelectExpression
): SelectExpression

Function that visits a SelectExpression.

visitTable

open fun visitTable(expr: TableExpression): TableExpression

Function that visits a TableExpression.

visitUnary

open fun <T : Any> visitUnary(
    expr: UnaryExpression<T>
): UnaryExpression<T>

Function that visits an UnaryExpression.

visitUnion

open fun visitUnion(expr: UnionExpression): UnionExpression

Function that visits an UnionExpression.

visitUnknown

open fun visitUnknown(expr: SqlExpression): SqlExpression

Function that visits an unknown expression.

visitUpdate

open fun visitUpdate(
    expr: UpdateExpression
): UpdateExpression

Function that visits an UpdateExpression.

visitWindowFrameBound

open fun visitWindowFrameBound(
    expr: WindowFrameBoundExpression
): WindowFrameBoundExpression

Function that visits a WindowFrameBoundExpression.

visitWindowFunction

open fun <T : Any> visitWindowFunction(
    expr: WindowFunctionExpression<T>
): WindowFunctionExpression<T>

Function that visits a WindowFunctionExpression.

visitWindowSpecification

open fun visitWindowSpecification(
    expr: WindowSpecificationExpression
): WindowSpecificationExpression

Function that visits a WindowSpecificationExpression.

write

fun write(value: String): Unit

writeColumnAssignments

fun writeColumnAssignments(
    original: List<ColumnAssignmentExpression<*>>
): Unit

writeInsertColumnNames

fun writeInsertColumnNames(
    columns: List<ColumnExpression<*>>
): Unit

writeInsertValues

fun writeInsertValues(
    assignments: List<ColumnAssignmentExpression<*>>
): Unit

writeKeyword

fun writeKeyword(keyword: String): Unit

writePagination

abstract fun writePagination(expr: QueryExpression): Unit

Inherited Functions

NameSummary

visitColumnAssignment

open fun <T : Any> visitColumnAssignment(
    expr: ColumnAssignmentExpression<T>
): ColumnAssignmentExpression<T>

Function that visits a ColumnAssignmentExpression.

visitQuery

open fun visitQuery(expr: QueryExpression): QueryExpression

Function that visits a QueryExpression.

visitScalar

open fun <T : Any> visitScalar(
    expr: ScalarExpression<T>
): ScalarExpression<T>

Function that visits a general ScalarExpression, this function dispatches different type of scalar expressions
to their specific visit* functions. Custom expression types that are unknown to Ktorm will be dispatched to
visitUnknown

visitWhenClauses

open fun <T : Any> visitWhenClauses(
    originalClauses: List<Pair<ScalarExpression<*>, ScalarExpression<T>>>
): List<Pair<ScalarExpression<*>, ScalarExpression<T>>>

Helper function for visiting when clauses of CaseWhenExpression.

Extension Functions

NameSummary

eq

infix fun <T : Any> T.eq(
    expr: ColumnDeclaring<T>
): BinaryExpression<Boolean>

Equal operator, translated to = in SQL.

neq

infix fun <T : Any> T.neq(
    expr: ColumnDeclaring<T>
): BinaryExpression<Boolean>

Not-equal operator, translated to <> in SQL.

notEq

infix fun <T : Any> T.notEq(
    expr: ColumnDeclaring<T>
): BinaryExpression<Boolean>

Not-equal operator, translated to <> in SQL.

Inheritors

NameSummary

MySqlFormatter

open class MySqlFormatter : 
    SqlFormatter,
    MySqlExpressionVisitor

SqlFormatter implementation for MySQL, formatting SQL expressions as strings with their execution arguments.

OracleFormatter

open class OracleFormatter : SqlFormatter

SqlFormatter implementation for Oracle, formatting SQL expressions as strings with their execution arguments.

PostgreSqlFormatter

open class PostgreSqlFormatter : 
    SqlFormatter,
    PostgreSqlExpressionVisitor

SqlFormatter implementation for PostgreSQL, formatting SQL expressions as strings with their execution arguments.

SQLiteFormatter

open class SQLiteFormatter : 
    SqlFormatter,
    SQLiteExpressionVisitor

SqlFormatter implementation for SQLite, formatting SQL expressions as strings with their execution arguments.

SqlServerFormatter

open class SqlServerFormatter : SqlFormatter

SqlFormatter implementation for SqlServer, formatting SQL expressions as strings with their execution arguments.