Class: Arel::SqlToArel::PgQueryVisitor
- Inherits:
-
Object
- Object
- Arel::SqlToArel::PgQueryVisitor
- Defined in:
- lib/arel/sql_to_arel/pg_query_visitor.rb,
lib/arel/sql_to_arel/pg_query_visitor/frame_options.rb
Defined Under Namespace
Classes: FrameOptions
Constant Summary collapse
- PG_CATALOG =
'pg_catalog'.freeze
- MIN_MAX_EXPR =
'MinMaxExpr'.freeze
Instance Attribute Summary collapse
-
#binds ⇒ Object
readonly
Returns the value of attribute binds.
-
#object ⇒ Object
readonly
Returns the value of attribute object.
-
#sql ⇒ Object
readonly
Returns the value of attribute sql.
Instance Method Summary collapse
Instance Attribute Details
#binds ⇒ Object (readonly)
Returns the value of attribute binds.
16 17 18 |
# File 'lib/arel/sql_to_arel/pg_query_visitor.rb', line 16 def binds @binds end |
#object ⇒ Object (readonly)
Returns the value of attribute object.
15 16 17 |
# File 'lib/arel/sql_to_arel/pg_query_visitor.rb', line 15 def object @object end |
#sql ⇒ Object (readonly)
Returns the value of attribute sql.
17 18 19 |
# File 'lib/arel/sql_to_arel/pg_query_visitor.rb', line 17 def sql @sql end |
Instance Method Details
#accept(sql, binds = []) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/arel/sql_to_arel/pg_query_visitor.rb', line 19 def accept(sql, binds = []) tree = PgQuery.parse(sql).tree @object = tree @binds = binds @sql = sql Result.new visit(object.stmts, :top) rescue ::PgQuery::ParseError => e new_error = ::PgQuery::ParseError.new(e., __FILE__, __LINE__, -1) raise new_error, e., e.backtrace rescue ::StandardError => e raise e.class, e., e.backtrace if e.is_a?(Arel::SqlToArel::Error) boom e., e.backtrace end |