| 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