Wednesday, July 30, 2014 8:12:52 AM UTC-7, [email protected] wrote: > > >> > Neither PostgreSQL, Oracle, nor Firebird supports autoincrement, they > >> all > >> > use sequences. I'm not sure if OpenEdge uses something similar to > >> > sequences, but if so, it should be possible to get the tests passing. > >> If > >> > there's really no way to insert a row and get back an identifier for > >> the > >> > row, then yes, it's unlikely it could pass most of the test suite. > >> > >> Thought about this too, but apparently not :-/ > >> > >> > http://stackoverflow.com/questions/9753744/properly-implementing-auto-incrementing-primary-keys-in-openedge-10-2b-using-sql > > >> > > > > Oracle has similar behavior, where the sequence name must be specified. > > Sequel's Oracle support comes with an :autosequence Database option > that > > will guess the sequence to use based on the table name, and sets the > > create_table method to have the table use that sequence. Probably not > all > > that useful in production with a pre-existing database (and therefore > off > > by default), but it allows the tests to run, and works fine for > developing > > new databases. > > OK, that sounds good actually :) > > So I had a brief look, I take it what I'd need to do is to: > > - implement Sequel::Database#last_insert_id > - implement Sequel::Database#sequence_for_table > - override Sequel::Database#execute_insert to return last_insert_id > - override Sequel::Database#alter_table_sql and > Sequel::Database#create_table_sql (e.g. in > Sequel::OpenEdge::DatabaseMethods) to drop/create sequence if necessary > > Does that look sensible, or have I missed anything? What about drop > table/drop column? > > Thanks for your ideas! :) >
There's probably other changes you'll need as well if you want to try to pass the test suite, but that sounds like a good start. If you can get the dataset_test file passing, you'll probably cover 90% of actual use cases, so I would focus on that part first. Thanks, Jeremy -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sequel-talk. For more options, visit https://groups.google.com/d/optout.
