Here is my first weekly report with the progress of my SoC project.
Fist, some general links which may be useful for people interested on this work:
- Mercurial repositories:
- https://hg.leosoto.com/django.doj contains my changes against Django trunk
- https://hg.leosoto.com/jython.doj contains my changes against Jython trunk
- In both cases, I tend to also upload patches with my changes to
each project issue tracker.
- Test suite status:
- https://dojstatus.leosoto.com/ contains an adhoc page with the
result of my manual runs of the django test suite over jython.
Now, the status. Before the official coding period started, I did some
work with the test suite, where we were getting around 90 failures on
April . By the past week the number was about 35 , and some
easy-to-fix failures remains (such as a few tests relying on the order
on which the dicts are printed)
According to the proposed schedule, this week was for updating the
postgresql_zxjdbc to Django changes from the last time I worked on it.
The main change on the Django side was the merging of the
"queryset-refactor" branch, which should made my life simpler. In
practice, now there are more hooks available to backends for
supporting the particularities of some databases (or database
The postgresql_zxjdbc still works (for some value of "works" ;) on
django trunk, but I decided that it was worth to rework it in a more
robust and less "hacky" way. Until now, the backend used zxJDBC's
DataHandler API to intercept database calls and make appropriate
adjustments, maily datetime.* <-> java.sql.* mapping. It also used the
JDBC30DataHandler to recover the data type information lost on the
django side. Oh, and replaced '%s' for '?' for arguments in a less
than optimous way.
I'm now changing all of this hacks for proper fixes or improvementst
on the apropriate layer. java.sql.* <-> datetime.* mapping is going to
be made by default by zxJDBC, exposing this useful feature to all
jython users. Also Strings -> unicode instead of String -> str mapping
is planned. On the Django side, I'm trying to resolve the problems
where data type information is lost and just a string is received by
the backend (for cases where it is not meant to be a VARCHAR value, of
Right now, this new postgresql_zxjdbc has many regressions. Queries
against date, time and timestamp fields don't work. IP-Address fields
doesn't work at all either. So I haven't upload this code to the
public hg repository yet. Once I fix this problems on the Django side
I'm going to push the changes.
Other pending issues are a better parameter marker handling (currently
a raw replace of "%s" for "?" is done) and provide a tzinfo concrete
implementation using java.util.TimeZone.
That's all for this week. I hope the next one I will have more results
to show than problems to describe!
Leo Soto M.