struct

Parsegres::Printer

Inherits Struct < Value < Object

Serializes an AST node back to a SQL string. The output uses normalized formatting: uppercase keywords, single spaces. It round-trips the logical structure of the query, which makes it useful for query fingerprinting (e.g. replace literals with $N placeholders).

Usage: ast = Parsegres.parse(sql) ast.to_sql # => "SELECT ..."

Or directly:

Parsegres::Printer.print(ast)

Constructors

new(io : IO)
Source

Class methods

Instance methods

emit(stmt : AST::BeginStatement) : Nil
Source
emit(stmt : AST::CommitStatement) : Nil
Source
emit(stmt : AST::RollbackStatement) : Nil
Source
emit(stmt : AST::SavepointStatement) : Nil
Source
emit(stmt : AST::ReleaseSavepointStatement) : Nil
Source
emit(stmt : AST::RollbackToSavepointStatement) : Nil
Source
emit(stmt : AST::SelectStatement) : Nil
Source
emit(stmt : AST::CompoundSelect) : Nil
Source
emit(stmt : AST::InsertStatement) : Nil
Source
emit(stmt : AST::UpdateStatement) : Nil
Source
emit(stmt : AST::DeleteStatement) : Nil
Source
emit(stmt : AST::CreateTableStatement) : Nil
Source
emit(stmt : AST::DropTableStatement) : Nil
Source
emit(stmt : AST::AlterTableStatement) : Nil
Source
emit(stmt : AST::CreateIndexStatement) : Nil
Source
emit(stmt : AST::DropIndexStatement) : Nil
Source
emit(stmt : AST::CreateViewStatement) : Nil
Source
emit(stmt : AST::DropViewStatement) : Nil
Source
emit(stmt : AST::TruncateStatement) : Nil
Source
emit(stmt : AST::CreateSequenceStatement) : Nil
Source
emit(stmt : AST::AlterSequenceStatement) : Nil
Source
emit(stmt : AST::DropSequenceStatement) : Nil
Source
emit(stmt : AST::CreateSchemaStatement) : Nil
Source
emit(stmt : AST::DropSchemaStatement) : Nil
Source
emit(stmt : AST::CreateExtensionStatement) : Nil
Source
emit(stmt : AST::DropExtensionStatement) : Nil
Source
emit(stmt : AST::CreateRangeTypeStatement) : Nil
Source
emit(stmt : AST::DropTypeStatement) : Nil
Source
emit(stmt : AST::DoStatement) : Nil
Source
emit(stmt : AST::CreateRuleStatement) : Nil
Source
emit(subquery : AST::SubqueryRef) : Nil
Source
emit(expr : AST::Expr, parent_prec : Int32 = 0, right_child : Bool = false) : Nil
Source
emit(node : AST::Node) : Nil

If an AST node isn't yet supported by this statement printer, it falls into this method which will raise an UnsupportedNodeType exception.

Source

Nested types