This project is archived and is in readonly mode.
Non-standard SQL generated in column definition for nullable columns in create table DDL (rails 2.1)
Reported by Praveen Devarao | June 12th, 2008 @ 07:21 AM
In migrations create table generates non-standard SQL which breaks functioning of sql standard compliant databases. The create table method
create_table :accounts, :force => true do |t|
t.integer :firm_id
t.integer :credit_limit
end
generates the sql as below
CREATE TABLE accounts (id ...., firm_id integer DEFAULT NULL NULL, credit_limit integer DEFAULT NULL NULL)
Focussing on 'DEFAULT NULL NULL', the last NULL is not standard SQL syntax compliant and hence will not work for DB2 and Oracle.
This can be tested here
http://developer.mimer.com/valid...
basically compliant sql syntax is 'COLNAME TYPE DEFAULT CONSTRAINTS'. Constraints is category that this falls into. 'NOT NULL' is a valid constraint, 'NULL' is not.
Comments and changes to this ticket
-
Praveen Devarao June 15th, 2008 @ 03:56 PM
- Assigned user cleared.
-
Repository August 23rd, 2008 @ 06:22 PM
- State changed from new to resolved
- Tag cleared.
(from [74c3c701f73407a5bb1a11be2b5b221fe39895d3]) Don't set "NULL" as a constraint on nullable columns [#398 state:resolved]
This is already the default and adding it breaks SQL standards compatibility. http://github.com/rails/rails/co...
-
Repository August 25th, 2008 @ 09:26 AM
(from [ddb8c9c92ed09d33ae573891a4ef0d566622f317]) Don't set "NULL" as a constraint on nullable columns [#398 state:resolved]
This is already the default and adding it breaks SQL standards compatibility.
Conflicts:
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
-
Harlan Crystal March 23rd, 2009 @ 10:27 PM
This breaks the case of:
change_column :table, :column, :null => true
(when it was previously non-null).
Discussed here, in ticket #26:
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
<h2 style="font-size: 14px">Tickets have moved to Github</h2>
The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>
People watching this ticket
Referenced by
- 398 Non-standard SQL generated in column definition for nullable columns in create table DDL (rails 2.1) (from [74c3c701f73407a5bb1a11be2b5b221fe39895d3]) Don't s...
- 398 Non-standard SQL generated in column definition for nullable columns in create table DDL (rails 2.1) (from [ddb8c9c92ed09d33ae573891a4ef0d566622f317]) Don't s...