I posted the following message to the SQLObject mailing list a couple
of weeks ago.  I have since decided that it would probably be a good
idea to send this to the TG list as well since most of you probably
aren't on the SO list.  Sorry to those of you who get this twice.

-----

Like so many who have gone before me, I recently undertook the task of
getting the trunk of SQLObject to work with Oracle.  I've made some
pretty good progress, so this morning I added a branch to the
Subversion repository called trunk-oracle that includes Oracle
support.  If you are at all interested in using SQLObject with Oracle,
please take a look at it, use it, test it, try to break it, etc.  I've
got it to the point that it meets all of my needs, but I also think
it's very close to being good enough to add back into the trunk.

Right now, test_blob.py, test_picklecol.py, and test_unicode.py don't
pass.  These are features that we didn't need at work, so I'm going to
have to tackle them in my limited spare time at home unless someone
else solves them first.

I also had to make a couple of hacks along the way, so I'm going to
list my worst offenses here.  If anyone has a better idea on how to go
about something, please either let me know or just go in and change
it.

1) Oracle imposes a 30-character limit on object names (tables,
sequences, indices, etc.), so that proved to be a bit of a burden
along the way.  I finally decided that, where applicable, this should
be left as a documentation issue (i.e. don't make your object names
too long).  That works in most cases, but still leaves the issue of
intermediate tables for joins.  Unless all of your object names are
cryptically short, you're probably going to run into an issue with the
intermediate table names.  My solution was to md5 the long names and
then truncate that to an acceptable length.  I realize that this isn't
foolproof, but the odds of a name collision are still pretty low, and
it hasn't given me any issues yet.  I also had to take the same
approach on long constraint names.

2) Some of the unit tests were failing because the right data was
coming back, but in the wrong order.  To fix the problem, I changed
the tests to sort the data before the comparison takes place.  I
really don't like changing unit tests if I can help it, but since
order isn't guaranteed anyway, I went ahead and did it.

3) Lastly, I don't have access to an instance of most of the databases
that SQLObject supports, so I've only really tested my code against
Oracle.  Since most of my changes are in Oracle-specific areas of the
code, I don't anticipate many problems, but it would still be nice to
get some reassurance from others that everything still works.  I've
got a local Postgres database that I can try out, and obviously I can
hit SQLite, but I'm hoping that I don't have to do too much about the
rest.

Sorry for the length of this e-mail, but I wanted to make sure that I
got all of the relvant information out in the open.  Please let me
know if you have any questions or comments.  Hopefully someone else
will find all of this useful too :)

Eric

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/turbogears
-~----------~----~----~----~------~----~------~--~---

Reply via email to