On 5-3-2016 22:28, Lester Caine wrote:
> On 05/03/16 13:32, Dimitry Sibiryakov wrote:
>>     Currently parser enforce attribute clauses to have a definite positions 
>> in the
>> statement. SQL standard doesn't require that.
>>     Do you agree that position-insensitive clauses would be more convenient?
>
> It would be nice if we did not have re-order scripts from other
> databases so
>   NOT NULL DEFAULT '30'
> has to be
>   DEFAULT '30' NOT NULL
> in Firebird.
>
> I don't think that the SQL standard ever imposed an order on these? But
> both MySQL and Postgresql seem to standardise on the DEFAULT last :(

The SQL standard specifies that the default clause follows the data type 
definition. And this is what Firebird does. The syntax in the SQL 
Standard is defined as:

<column definition> ::=
   <column name> [ <data type or domain name> ]
   [ <default clause> | <identity column specification> | <generation 
clause>
     | <system time period start column specification>
     | <system time period end column specification> ]
   [ <column constraint definition>... ]
   [ <collate clause> ]

...

<column constraint definition> ::=
   [ <constraint name definition> ] <column constraint> [ <constraint 
characteristics> ]

<column constraint> ::=
   NOT NULL
   | <unique specification>
   | <references specification>
   | <check constraint definition>

Mark
-- 
Mark Rotteveel

------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to