Class for row-valued/composite types that are treated as arrays. By default, this is only used for generic PostgreSQL record types, as registered types use HashRow by default.
The database type for this class. May be nil if this class done not have a specific database type.
Sets the database type associated with this instance. This is used to override the class's default database type.
Create a subclass associated with a specific database type. This is done so that instances of this subclass are automatically casted to the database type when literalizing.
# File lib/sequel/extensions/pg_row.rb, line 114 def self.subclass(db_type) Class.new(self) do @db_type = db_type end end
Return the instance's database type, or the class's database type if the instance has not overridden it.
# File lib/sequel/extensions/pg_row.rb, line 126 def db_type @db_type || self.class.db_type end
Append SQL fragment related to this object to the sql.
# File lib/sequel/extensions/pg_row.rb, line 131 def sql_literal_append(ds, sql) sql << 'ROW' ds.literal_append(sql, to_a) if db_type sql << '::' ds.quote_schema_table_append(sql, db_type) end end