Parsegres::Printer
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
Class methods
Instance methods
emit(stmt : AST::BeginStatement) : Nil
Sourceemit(stmt : AST::CommitStatement) : Nil
Sourceemit(stmt : AST::RollbackStatement) : Nil
Sourceemit(stmt : AST::SavepointStatement) : Nil
Sourceemit(stmt : AST::ReleaseSavepointStatement) : Nil
Sourceemit(stmt : AST::RollbackToSavepointStatement) : Nil
Sourceemit(stmt : AST::SelectStatement) : Nil
Sourceemit(stmt : AST::CompoundSelect) : Nil
Sourceemit(stmt : AST::InsertStatement) : Nil
Sourceemit(stmt : AST::UpdateStatement) : Nil
Sourceemit(stmt : AST::DeleteStatement) : Nil
Sourceemit(stmt : AST::CreateTableStatement) : Nil
Sourceemit(stmt : AST::DropTableStatement) : Nil
Sourceemit(stmt : AST::AlterTableStatement) : Nil
Sourceemit(stmt : AST::CreateIndexStatement) : Nil
Sourceemit(stmt : AST::DropIndexStatement) : Nil
Sourceemit(stmt : AST::CreateViewStatement) : Nil
Sourceemit(stmt : AST::DropViewStatement) : Nil
Sourceemit(stmt : AST::TruncateStatement) : Nil
Sourceemit(stmt : AST::CreateSequenceStatement) : Nil
Sourceemit(stmt : AST::AlterSequenceStatement) : Nil
Sourceemit(stmt : AST::DropSequenceStatement) : Nil
Sourceemit(stmt : AST::CreateSchemaStatement) : Nil
Sourceemit(stmt : AST::DropSchemaStatement) : Nil
Sourceemit(stmt : AST::CreateExtensionStatement) : Nil
Sourceemit(stmt : AST::DropExtensionStatement) : Nil
Sourceemit(stmt : AST::CreateRangeTypeStatement) : Nil
Sourceemit(stmt : AST::DropTypeStatement) : Nil
Sourceemit(stmt : AST::DoStatement) : Nil
Sourceemit(stmt : AST::CreateRuleStatement) : Nil
Sourceemit(subquery : AST::SubqueryRef) : Nil
Sourceemit(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.