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 104 104: def -(other) 105: other = if other.is_a?(String) && !other.is_a?(Sequel::LiteralString) 106: Sequel.cast_string(other) 107: else 108: wrap_input_array(wrap_input_hash(other)) 109: end 110: HStoreOp.new(super) 111: 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 116 116: def [](key) 117: v = Sequel::SQL::PlaceholderLiteralString.new(LOOKUP, [value, wrap_input_array(key)]) 118: 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)) 119: wrap_output_array(v) 120: else 121: Sequel::SQL::StringExpression.new(:NOOP, v) 122: end 123: end
Delete the matching entries from the receiver:
hstore_op.delete('a') # delete(hstore, 'a')
# File lib/sequel/extensions/pg_hstore_ops.rb, line 163 163: def delete(key) 164: HStoreOp.new(function(:delete, wrap_input_array(wrap_input_hash(key)))) 165: end
Return the receiver.
# File lib/sequel/extensions/pg_hstore_ops.rb, line 186 186: def hstore 187: self 188: 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 209 209: def populate(record) 210: SQL::Function.new(:populate_record, record, self) 211: end