Class: ActiveRecord::ConnectionAdapters::QualifiedColumn
- Inherits:
-
Column
- Object
- Column
- ActiveRecord::ConnectionAdapters::QualifiedColumn
- Defined in:
- lib/active_record/connection_adapters/qualified_column.rb
Overview
Like a regular database, each table in Hypertable has a fixed list of columns. However, Hypertable allows flexible schemas through the use of column qualifiers. Suppose a table is defined to have a single column called misc.
CREATE TABLE pages (
'misc'
)
In Hypertable, each traditional database column is referred to as a column family. Each column family can have a theoretically infinite number of qualified instances. An instance of a qualified column is referred to using the column_family:qualifer notation. e.g.,
misc:red misc:green misc:blue
These qualified column instances do not need to be declared as part of the table schema. The table schema itself does not provide an indication of whether a column family has been used with qualifiers. As a results, we must explicitly declare intent to use a column family in a qualified manner in our class definition. The resulting AR object models the column family as a Hash.
class Page < ActiveRecord::HyperBase
qualified_column :misc
end
p = Page.new p.ROW = ‘page_1’ p.misc = ‘www.zvents.com/’ p.misc = 127 p.save
Instance Attribute Summary collapse
-
#qualifiers ⇒ Object
Returns the value of attribute qualifiers.
Instance Method Summary collapse
- #default ⇒ Object
-
#initialize(name, default, sql_type = nil, null = true) ⇒ QualifiedColumn
constructor
A new instance of QualifiedColumn.
- #klass ⇒ Object
Constructor Details
#initialize(name, default, sql_type = nil, null = true) ⇒ QualifiedColumn
Returns a new instance of QualifiedColumn.
41 42 43 44 |
# File 'lib/active_record/connection_adapters/qualified_column.rb', line 41 def initialize(name, default, sql_type = nil, null = true) @qualifiers ||= [] super end |
Instance Attribute Details
#qualifiers ⇒ Object
Returns the value of attribute qualifiers.
39 40 41 |
# File 'lib/active_record/connection_adapters/qualified_column.rb', line 39 def qualifiers @qualifiers end |
Instance Method Details
#default ⇒ Object
50 51 52 53 54 |
# File 'lib/active_record/connection_adapters/qualified_column.rb', line 50 def default h = Hash.new h.default = @default h end |
#klass ⇒ Object
46 47 48 |
# File 'lib/active_record/connection_adapters/qualified_column.rb', line 46 def klass Hash end |