| Class | Sequel::Postgres::PGRow::HashRow |
| In: |
lib/sequel/extensions/pg_row.rb
|
| Parent: | DelegateClass(Hash) |
Class for row-valued/composite types that are treated as hashes. Types registered via Database#register_row_type will use this class by default.
| new | -> | call |
| Alias new to call, so that the class itself can be used directly as a converter. | ||
| __getobj__ | -> | to_hash |
| Return the underlying hash for this delegate object. | ||
| columns | [RW] | The columns associated with this class. |
| columns | [W] | Sets the columns associated with this instance. This is used to override the class‘s default columns. |
| db_type | [RW] | The database type for this class. May be nil if this class done not have a specific database type. |
| db_type | [W] | Sets the database type associated with this instance. This is used to override the class‘s default database type. |
Check that the HashRow has valid columns. This should be used before all attempts to literalize the object, since literalization depends on the columns to get the column order.
# File lib/sequel/extensions/pg_row.rb, line 195
195: def check_columns!
196: if columns.nil? || columns.empty?
197: raise Error, 'cannot literalize HashRow without columns'
198: end
199: end
Append SQL fragment related to this object to the sql.
# File lib/sequel/extensions/pg_row.rb, line 202
202: def sql_literal_append(ds, sql)
203: check_columns!
204: sql << 'ROW'
205: ds.literal_append(sql, values_at(*columns))
206: if db_type
207: sql << '::'
208: ds.quote_schema_table_append(sql, db_type)
209: end
210: end