Class | Sequel::Postgres::HStoreOp |
In: |
lib/sequel/extensions/pg_hstore_ops.rb
|
Parent: | Sequel::SQL::Wrapper |
CONCAT | = | ["(".freeze, " || ".freeze, ")".freeze].freeze |
CONTAIN_ALL | = | ["(".freeze, " ?& ".freeze, ")".freeze].freeze |
CONTAIN_ANY | = | ["(".freeze, " ?| ".freeze, ")".freeze].freeze |
CONTAINS | = | ["(".freeze, " @> ".freeze, ")".freeze].freeze |
CONTAINED_BY | = | ["(".freeze, " <@ ".freeze, ")".freeze].freeze |
HAS_KEY | = | ["(".freeze, " ? ".freeze, ")".freeze].freeze |
LOOKUP | = | ["(".freeze, " -> ".freeze, ")".freeze].freeze |
RECORD_SET | = | ["(".freeze, " #= ".freeze, ")".freeze].freeze |
Delete entries from an hstore using the subtraction operator:
hstore_op - 'a' # (hstore - 'a')
# File lib/sequel/extensions/pg_hstore_ops.rb, line 84 84: def -(other) 85: other = if other.is_a?(String) && !other.is_a?(Sequel::LiteralString) 86: Sequel.cast_string(other) 87: else 88: wrap_input_array(wrap_input_hash(other)) 89: end 90: HStoreOp.new(super) 91: end
Lookup the value for the given key in an hstore:
hstore_op['a'] # (hstore -> 'a')
# File lib/sequel/extensions/pg_hstore_ops.rb, line 96 96: def [](key) 97: v = Sequel::SQL::PlaceholderLiteralString.new(LOOKUP, [value, wrap_input_array(key)]) 98: if key.is_a?(Array) || (defined?(Sequel::Postgres::PGArray) && key.is_a?(Sequel::Postgres::PGArray)) || (defined?(Sequel::Postgres::ArrayOp) && key.is_a?(Sequel::Postgres::ArrayOp)) 99: wrap_output_array(v) 100: else 101: Sequel::SQL::StringExpression.new(:NOOP, v) 102: end 103: end
Delete the matching entries from the receiver:
hstore_op.delete('a') # delete(hstore, 'a')
# File lib/sequel/extensions/pg_hstore_ops.rb, line 143 143: def delete(key) 144: HStoreOp.new(function(:delete, wrap_input_array(wrap_input_hash(key)))) 145: end
Return the receiver.
# File lib/sequel/extensions/pg_hstore_ops.rb, line 166 166: def hstore 167: self 168: end
Create a new record populated with entries from the receiver:
hstore_op.populate(:a) # populate_record(a, hstore)
# File lib/sequel/extensions/pg_hstore_ops.rb, line 189 189: def populate(record) 190: SQL::Function.new(:populate_record, record, self) 191: end