Re: [DBD-SQLite] Removing the on-by-default referential integrity.

2009-11-12 Thread Adam Kennedy
Apologies, I've been very distracted.

Adam K

On Fri, Nov 13, 2009 at 9:23 AM, Darren Duncan dar...@darrenduncan.net wrote:
 Adam Kennedy wrote on Nov 3:

 Righto, so I'm going to roll an official release candidate dev
 version now, and we code freeze at this point (just docs and test
 tweaks allowed between now and final).

 I'll let the last dev release cook for 3 or 4 days, then do the prod one.

 Adam, when were you planning to do this?  The Oct 28 dev release is still
 the latest. -- Darren Duncan


___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


Re: [DBD-SQLite] Removing the on-by-default referential integrity.

2009-11-03 Thread Adam Kennedy
The foreign key support has already broken code of mine, I was using
the SQLite foreign key constraint syntax, so that ORM code generators
could detect the table relationships and generate various methods.

I really want to see at least one release where it's optional, so
there's a window of time for people to do optional upgrading, rather
than immediately forcing everything to fail.

Adam K

2009/11/3 Darren Duncan dar...@darrenduncan.net:
 Adam Kennedy wrote:

 For the first production release of DBD::SQLite with foreign keys,
 it's starting to make me nervous that we will enable it by default.

 As things currently stand, nobody that is using SQLite has ever seen
 this feature before. They haven't had the chance to work with it at
 all before we shove it down their throats.

 I think I'd like to follow SQLite itself for now and default it off.

 Thoughts?

 Doing what you say would follow the policy of SQLite itself.  I believe they
 are also strongly considering turning it on by default within the near
 future.

 For DBD::SQLite, I have a few thoughts.

 1.  DBD::SQLite serves a smaller ecosystem than SQLite itself, and I think
 it is safer for us to sooner push through changes like having foreign keys
 enforcement enabled by default.

 2.  Having foreign keys enabled by default would only affect people that are
 explicitly writing foreign key constraints into their SQL.  So in general,
 why would people write those constraints but not expect them to be enforced?
  Maybe for documentation purposes, but in that case presumably they also had
 other means to keep their data clean, and if enforcing foreign keys becomes
 active that should not cause an immediate break if their replacement
 practices were doing their job.

 3.  I would support foreign key enforcement being turned off by default only
 if we make it very clear that the disabled-by-default state is meant only to
 be temporary and transitional, and that DBD::SQLite will have the feature
 enabled by default within a certain time frame, such as within 2 months, or
 alternately:  Make the public release 1.27 have foreign keys disabled by
 default, and have the very next public release (and all developer releases)
 have it enabled by default; they only exception is if another public release
 has to go out very soon to fix a critical bug, in which case it goes out
 with say a disabled 1.28, and then the same policy stands otherwise.

 So essentially, just 1 disabled-by-default stable release is fine, so people
 who expect to be able to write foreign key constraints that aren't enforced
 can get the bug fixes we have to date, and aren't forced to have one to get
 the other; however, enabled-by-default should be the default thereafter.

 I see an advantage of disabled-by-default if we want to have a test suite
 for the feature added, and you want to ship a stable 1.27 right now.

 -- Darren Duncan

 ___
 DBD-SQLite mailing list
 DBD-SQLite@lists.scsys.co.uk
 http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


Re: [DBD-SQLite] Removing the on-by-default referential integrity.

2009-11-03 Thread Adam Kennedy
Righto, so I'm going to roll an official release candidate dev
version now, and we code freeze at this point (just docs and test
tweaks allowed between now and final).

I'll let the last dev release cook for 3 or 4 days, then do the prod one.

Adam K

2009/11/4 Kenichi Ishigaki kishig...@gmail.com:
 OK. Agreed.

 Kenichi

 On Tue, 03 Nov 2009 21:28:59 -0800, Darren Duncan dar...@darrenduncan.net 
 wrote:

Kenichi Ishigaki wrote:
 Our tests are hardly thorough and complete, and while I tried
 to write a test for foreign keys, I was hit by a weird bug
 that suggested the internal sqlite3 object and the DBI/DBD::SQLite
 handle objects were holding different statuses; the same statement
 works fine when issued one by one with do, and fails with consecutive
 executes. This may not be a showstopper, but is certainly annoying.
 (I haven't added the test yet, thoguh. I don't want it to be disabled
 again like the one I added just before 1.26_05).

 Anyway, I agree to comment out the pragma to turn off the default
 foreign keys support tentatively. But I do insist we should wait
 at least for two weeks, until the sqlite team release the next
 monthly update.

If you mean we should wait 2 weeks and then issue the 1.27-stable as soon as
SQLite 3.6.20 comes out and include that, for the main reason that this would
include the first batch of fixes (if any) to SQLite itself following its
foreign-keys major update, then that sounds reasonable, so our testers of
foreign keys get those fixes.  Especially relevant if the changes to add 
foreign
key enforcement might have broken something unrelated to foreign keys.  But we
should wait no longer than 3.6.20 to issue our own stable release.  And our
stable would have foreign keys disabled by default. -- Darren Duncan

___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


 ___
 DBD-SQLite mailing list
 DBD-SQLite@lists.scsys.co.uk
 http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


___
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite