Would dropping the non-functioning default clause from the schema be a "breaking change"?
That is from: # sqlite3 dummy.db sqlite> CREATE TABLE x( ...> id INTEGER PRIMARY KEY DEFAULT (random()), ...> val VARCHAR ...> ); sqlite> .schema CREATE TABLE x( *id INTEGER PRIMARY KEY DEFAULT (random()),* val VARCHAR ); to: # sqlite3 dummy.db sqlite> CREATE TABLE x( ...> id INTEGER PRIMARY KEY DEFAULT (random()), ...> val VARCHAR ...> ); sqlite> .schema CREATE TABLE x( *id INTEGER PRIMARY KEY*, val VARCHAR ); And would it be better, or cause more head-scratching, I dunno... John On Thu, Sep 25, 2014 at 4:07 PM, Richard Hipp <d...@sqlite.org> wrote: > On Thu, Sep 25, 2014 at 4:46 PM, Mark Lawrence <no...@null.net> wrote: > > > > > If you are going to keep this behaviour would it not make more sense to > > ensure that the table creation fails? The DEFAULT clause is pretty > > straight-forward and I don't find it intuitive to go looking for > > PRIMARY KEY documentation when it is ignored. > > > > SQLite should either fail to accept the statement or do what the table > > definition says - anything else means heartache for those debugging > > problems (which I did for hours on this issue) and those reading the > > code afterwards. > > > > That would break backwards compatibility for the millions and millions of > applications currently using SQLite. Most of those millions would be > unaffected, no doubt, but out of millions I'm sure there are a goodly > number that would break. I am unwilling to implement a breaking change > simply to make the interface more "intuitive". > > Had you brought this up in 2002, the outcome would likely have been very > different. But at this point, the behavior of INTEGER PRIMARY KEY in > SQLite is not something that can be modified. > > Sorry to disappoint. > -- > D. Richard Hipp > d...@sqlite.org > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users