class Sequel::Postgres::HStoreSubscriptOp
Represents hstore subscripts. This is abstracted because the subscript support depends on the database version.
Constants
- SUBSCRIPT
Attributes
expression[R]
The expression being subscripted
sub[R]
The subscript to use
Public Class Methods
new(expression, sub)
click to toggle source
Set the expression and subscript to the given arguments
# File lib/sequel/extensions/pg_hstore_ops.rb, line 336 def initialize(expression, sub) @expression = expression @sub = sub freeze end
Public Instance Methods
sequel_ast_transform(transformer)
click to toggle source
Support transforming of hstore subscripts
# File lib/sequel/extensions/pg_hstore_ops.rb, line 350 def sequel_ast_transform(transformer) self.class.new(transformer.call(@expression), transformer.call(@sub)) end
to_s_append(ds, sql)
click to toggle source
Use subscripts instead of -> operator on PostgreSQL 14+
# File lib/sequel/extensions/pg_hstore_ops.rb, line 343 def to_s_append(ds, sql) server_version = ds.db.server_version frag = server_version && server_version >= 140000 ? SUBSCRIPT : HStoreOp::LOOKUP ds.literal_append(sql, Sequel::SQL::PlaceholderLiteralString.new(frag, [@expression, @sub])) end