| 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