Class | DataMapper::Adapters::PostgresqlAdapter::Mappings::Column |
In: |
lib/data_mapper/adapters/postgresql_adapter.rb
lib/data_mapper/adapters/postgresql_adapter.rb |
Parent: | Object |
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 163 163: def alter! 164: result = super 165: reset_alter_state! 166: result 167: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 163 163: def alter! 164: result = super 165: reset_alter_state! 166: result 167: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 155 155: def check_declaration 156: "CHECK (" << check << ")" 157: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 155 155: def check_declaration 156: "CHECK (" << check << ")" 157: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 174 174: def default=(value) 175: @default_changed = true 176: super 177: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 174 174: def default=(value) 175: @default_changed = true 176: super 177: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 169 169: def reset_alter_state! 170: @type_changed = false 171: @default_changed = false 172: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 169 169: def reset_alter_state! 170: @type_changed = false 171: @default_changed = false 172: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 151 151: def serial_declaration 152: "SERIAL" 153: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 151 151: def serial_declaration 152: "SERIAL" 153: end
size is still required, as length in postgres behaves slightly differently
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 246 246: def size 247: case self.type 248: #strings in postgres can be unlimited length 249: when :string then return (@options.has_key?(:length) || @options.has_key?(:size) ? @size : nil) 250: else nil 251: end 252: end
size is still required, as length in postgres behaves slightly differently
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 246 246: def size 247: case self.type 248: #strings in postgres can be unlimited length 249: when :string then return (@options.has_key?(:length) || @options.has_key?(:size) ? @size : nil) 250: else nil 251: end 252: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 184 184: def to_alter_form 185: sql = to_sql.dup 186: 187: changes = 0 188: 189: if @type_changed 190: changes += 1 191: sql << " TYPE " << type_declaration 192: case self.type 193: when :integer then sql << " USING #{to_sql}::integer" 194: when :datetime then 195: sql << " USING timestamp with time zone" 196: end 197: end 198: 199: if @default_changed 200: sql << ", " if changes += 1 > 1 201: 202: if default.blank? || default_declaration.blank? 203: sql << " DROP DEFAULT" 204: else 205: sql << " " << default_declaration 206: end 207: end 208: 209: sql 210: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 184 184: def to_alter_form 185: sql = to_sql.dup 186: 187: changes = 0 188: 189: if @type_changed 190: changes += 1 191: sql << " TYPE " << type_declaration 192: case self.type 193: when :integer then sql << " USING #{to_sql}::integer" 194: when :datetime then 195: sql << " USING timestamp with time zone" 196: end 197: end 198: 199: if @default_changed 200: sql << ", " if changes += 1 > 1 201: 202: if default.blank? || default_declaration.blank? 203: sql << " DROP DEFAULT" 204: else 205: sql << " " << default_declaration 206: end 207: end 208: 209: sql 210: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 159 159: def to_alter_sql 160: "ALTER TABLE " << table.to_sql << " ALTER COLUMN " << to_alter_form 161: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 159 159: def to_alter_sql 160: "ALTER TABLE " << table.to_sql << " ALTER COLUMN " << to_alter_form 161: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 212 212: def to_long_form 213: @to_long_form || begin 214: @to_long_form = "#{to_sql}" 215: 216: if serial? && !serial_declaration.blank? 217: @to_long_form << " #{serial_declaration}" 218: if key? && !primary_key_declaration.blank? 219: @to_long_form << " #{primary_key_declaration}" 220: end 221: else 222: @to_long_form << " #{type_declaration}" 223: 224: unless nullable? || not_null_declaration.blank? 225: @to_long_form << " #{not_null_declaration}" 226: end 227: 228: if default && !default_declaration.blank? 229: @to_long_form << " #{default_declaration}" 230: end 231: 232: if unique? && !unique_declaration.blank? 233: @to_long_form << " #{unique_declaration}" 234: end 235: 236: if check && !check_declaration.blank? 237: @to_long_form << " #{check_declaration}" 238: end 239: end 240: 241: @to_long_form 242: end 243: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 212 212: def to_long_form 213: @to_long_form || begin 214: @to_long_form = "#{to_sql}" 215: 216: if serial? && !serial_declaration.blank? 217: @to_long_form << " #{serial_declaration}" 218: if key? && !primary_key_declaration.blank? 219: @to_long_form << " #{primary_key_declaration}" 220: end 221: else 222: @to_long_form << " #{type_declaration}" 223: 224: unless nullable? || not_null_declaration.blank? 225: @to_long_form << " #{not_null_declaration}" 226: end 227: 228: if default && !default_declaration.blank? 229: @to_long_form << " #{default_declaration}" 230: end 231: 232: if unique? && !unique_declaration.blank? 233: @to_long_form << " #{unique_declaration}" 234: end 235: 236: if check && !check_declaration.blank? 237: @to_long_form << " #{check_declaration}" 238: end 239: end 240: 241: @to_long_form 242: end 243: end
# File lib/data_mapper/adapters/postgresql_adapter.rb, line 179 179: def type=(value) 180: @type_changed = true 181: super 182: end