On Tue, 2009-08-11 at 07:55 +0800, Russell Keith-Magee wrote:
> On Mon, Aug 10, 2009 at 10:56 PM, Alex Gaynor<alex.gay...@gmail.com> wrote:
> >
> > On Mon, Aug 10, 2009 at 7:19 AM, Waldemar Kornewald<wkornew...@gmail.com> 
> > wrote:
> >>
> >> Hi,
> >> now that 1.1 is out we can finally discuss App Engine support. Is
> >> anyone planning to work on this feature or working on it for real or
> >> are there just announcements that someone might consider doing it?
> >>
> >> BTW, I've reworked the mini-spec a little bit to improve id/key_name
> >> handling. Here's the link, as a reminder:
> >> http://code.djangoproject.com/wiki/AppEngine
> >>
> >> Bye,
> >> Waldemar Kornewald
> >> >
> >>
> >
> > As far as I know no one is working on this.  Personally, I'm of the
> > opinion that writing a basic backend (ie one that doesn't do JOIN
> > emulation) shouldn't be an overly arduos task and is probably possible
> > with no modifications to the existing Query class.  Writing a more
> > complete version (with JOIN emulation) may require some changes,
> > however I very much doubt the exact nature of these changes will
> > become apparent until someone actually starts to do the work.
> >
> > In conclusion, no on is currently working on, but for all the people
> > who seem to ask for this I've seen almost no code written, which
> > suprises me since this is something that can exist 100% external to
> > Django (and probably should).
> 
> I'm not completely convinced this is completely true with the current
> codebase, but it's certainly 95% true. The ORM was designed to be SQL
> agnostic, but there are a couple of places in where, in the name of
> 'getting the job done', some shortcuts were taken that means that
> Query assumes the presence of a SQL backend or SQL-like data
> structures. The as_sql() call on Query is the one obvious example of
> this, but there are some more subtle places where there is some
> conceptual leakage.

Hmm... I would expect a backend to completely replace the Query class,
not work around something like as_sql(). One part of making non-db
backends supportable is to introduce a way to say "instead of using
django.db.models.sql.*, use this other namespace for the Query class and
everything it uses". That's why all the SQL stuff (modulo a few bits
that haven't been done yet) is in the one namespace and the public API
is entirely outside that namespace.

A non-db backend ends up implementing at the QuerySet -> Query
internal-API layer and that's where most of the tweaking will occur, I
would imagine. The object structure for non-relational and
other-storage-system backends is quite a bit different to the object
structure required to create a relational-algebra-based tree (which is
what Query does).

[...]
> My goal for supporting these backends at a project level is _not_ to
> add them to the Django core - at least, not immediately, and certainly
> not in the v1.2 timeframe. Instead, these projects _should_ be able to
> be built and develop external to the Django core. In time, it may be
> appropriate to add them to the core - but that is a long term goal,
> not a short term goal.

Definitely agreed. I think we know enough at this point to be able to
provide fairly generic support for this kind of thing. We've been
heading in that direction for a couple of years now, with that intent.

Regards,
Malcolm


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to