Sha256: ac69ef7aab9744f8cca584d163cba1130a1bf68809d679febda280484c825c48

Contents?: true

Size: 552 Bytes

Versions: 1

Compression:

Stored size: 552 Bytes

Contents

require 'pg_query'
module HSQL
  # PgQuery uses Postgres' own parser to parse and then deparse each query.
  class Query < Struct.new(:ast)
    # Returns a list of queries found in the source SQL
    def self.parse(source)
      # Splits on semicolons at the end of the line, eliding any comment that
      # might be there.
      PgQuery.parse(source).parsetree.map do |ast|
        Query.new(ast)
      end
    end

    # Show the parsed query as reconstructed SQL
    def to_s
      PgQuery::Deparse.from ast
    end
    alias to_sql to_s
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hsql-0.4.1 lib/hsql/query.rb