Class DataMapper::Adapters::PostgresqlAdapter::Mappings::Table
In: lib/data_mapper/adapters/postgresql_adapter.rb
lib/data_mapper/adapters/postgresql_adapter.rb
Parent: Object

Methods

Public Instance methods

[Source]

    # File lib/data_mapper/adapters/postgresql_adapter.rb, line 68
68:           def sequence_sql
69:             @sequence_sql ||= quote_table("_id_seq").freeze
70:           end

[Source]

    # File lib/data_mapper/adapters/postgresql_adapter.rb, line 68
68:           def sequence_sql
69:             @sequence_sql ||= quote_table("_id_seq").freeze
70:           end

[Source]

    # File lib/data_mapper/adapters/postgresql_adapter.rb, line 72
72:           def to_create_table_sql
73:             schema_name = name.index('.') ? name.split('.').first : nil
74:             schema_list = @adapter.query('SELECT nspname FROM pg_namespace').join(',')
75:           
76:             sql = if schema_name and !schema_list.include?(schema_name)
77:                 "CREATE SCHEMA #{@adapter.quote_table_name(schema_name)}; " 
78:             else
79:               ''
80:             end
81:             
82:             sql << "CREATE TABLE " << to_sql
83:           
84:             sql << " (" << columns.map do |column|
85:               column.to_long_form
86:             end.join(', ') << ")"
87:           
88:             return sql
89:           end

[Source]

    # File lib/data_mapper/adapters/postgresql_adapter.rb, line 72
72:           def to_create_table_sql
73:             schema_name = name.index('.') ? name.split('.').first : nil
74:             schema_list = @adapter.query('SELECT nspname FROM pg_namespace').join(',')
75:           
76:             sql = if schema_name and !schema_list.include?(schema_name)
77:                 "CREATE SCHEMA #{@adapter.quote_table_name(schema_name)}; " 
78:             else
79:               ''
80:             end
81:             
82:             sql << "CREATE TABLE " << to_sql
83:           
84:             sql << " (" << columns.map do |column|
85:               column.to_long_form
86:             end.join(', ') << ")"
87:           
88:             return sql
89:           end

The logic of this comes from AR; it was modified for smarter typecasting

[Source]

     # File lib/data_mapper/adapters/postgresql_adapter.rb, line 92
 92:           def unquote_default(default)
 93:             # Boolean types
 94:             return true if default =~ /true/i
 95:             return false if default =~ /false/i
 96: 
 97:             # Char/String/Bytea type values
 98:             return $1 if default =~ /^'(.*)'::(bpchar|text|character varying|bytea)$/
 99: 
100:             # Numeric values
101:             return value.to_f if default =~ /^-?[0-9]+(\.[0-9]*)/
102:             return value.to_i if default =~ /^-?[0-9]+/
103: 
104:             # Fixed dates / times
105:             return Date.parse($1) if default =~ /^'(.+)'::date/
106:             return DateTime.parse($1) if default =~ /^'(.+)'::timestamp/            
107: 
108:             # Anything else is blank, some user type, or some function
109:             # and we can't know the value of that, so return nil.
110:             return nil       
111:           end

The logic of this comes from AR; it was modified for smarter typecasting

[Source]

     # File lib/data_mapper/adapters/postgresql_adapter.rb, line 92
 92:           def unquote_default(default)
 93:             # Boolean types
 94:             return true if default =~ /true/i
 95:             return false if default =~ /false/i
 96: 
 97:             # Char/String/Bytea type values
 98:             return $1 if default =~ /^'(.*)'::(bpchar|text|character varying|bytea)$/
 99: 
100:             # Numeric values
101:             return value.to_f if default =~ /^-?[0-9]+(\.[0-9]*)/
102:             return value.to_i if default =~ /^-?[0-9]+/
103: 
104:             # Fixed dates / times
105:             return Date.parse($1) if default =~ /^'(.+)'::date/
106:             return DateTime.parse($1) if default =~ /^'(.+)'::timestamp/            
107: 
108:             # Anything else is blank, some user type, or some function
109:             # and we can't know the value of that, so return nil.
110:             return nil       
111:           end

[Validate]