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 92 92: def -(other) 93: other = if other.is_a?(String) && !other.is_a?(Sequel::LiteralString) 94: Sequel.cast_string(other) 95: else 96: wrap_input_array(wrap_input_hash(other)) 97: end 98: HStoreOp.new(super) 99: 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 104 104: def [](key) 105: v = Sequel::SQL::PlaceholderLiteralString.new(LOOKUP, [value, wrap_input_array(key)]) 106: 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)) 107: wrap_output_array(v) 108: else 109: Sequel::SQL::StringExpression.new(:NOOP, v) 110: end 111: end
Delete the matching entries from the receiver:
hstore_op.delete('a') # delete(hstore, 'a')
# File lib/sequel/extensions/pg_hstore_ops.rb, line 151 151: def delete(key) 152: HStoreOp.new(function(:delete, wrap_input_array(wrap_input_hash(key)))) 153: end
Return the receiver.
# File lib/sequel/extensions/pg_hstore_ops.rb, line 174 174: def hstore 175: self 176: 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 197 197: def populate(record) 198: SQL::Function.new(:populate_record, record, self) 199: end