[development] SQL abstraction, was: Do not let postgresql hold back great patches
Darrel O'Pry
dopry at thing.net
Mon Dec 3 06:52:13 UTC 2007
adrian rossouw wrote:
>
> On 03 Dec 2007, at 6:38 AM, Larry Garfield wrote:
>
>>
>> #3 is what I'm pushing for in the D7 database overhaul, within
>> reason. How to
>>
>> abstract everything without making the syntax insane or the performance
>>
>> terrible is what I'm currently trying to wrap my head around. The
>> biggest
>>
>> problem is field type handling, which I want to keep away from module
>>
>> developers but varies greatly depending on the database.
>>
> and the biggest issue here is date / time types.
>
> it's fscking crazy how different these are between databases.
I could have swore that some where I mentioned creating query
constructs with the syntatical properties of SQL statements and mapping
them to phrases...
Now that I have my old servers back in hand the idea might be found at
http://darrelopry.darkstyles.doesntexist.com/node/63... While that was
specifically geared toward the idea of schema... I'm sure the idea of
mapping syntactical and grammatical abstractions to phrases can be
applied to queries themselves... and with a little introspection into
the query construct individual database engines could try to output
optimized queries to their databases.
see also mentions of this concept in machine translation projects aka
food for thought:
http://www.linguistics.pitt.edu/news-events/flyers/Aranovich.pdf
http://books.google.com/books?id=SZwjb_56JzkC&pg=PA118&lpg=PA118&dq=language+syntactical+grammatical+abstraction+translation&source=web&ots=c1YffE48ZK&sig=ftDJQ7KZbz8Pr2wb3Rxp3noA-hI
http://publications.csail.mit.edu/abstracts/abstracts05/jsylee/jsylee.html
The analysis, transfer, generation approach seems to be pretty common in
machine translation projects. Which is technically what we're doing.
There are of corners that can be cut since SQL is limited in scope and
has a strongly defined structure compared to natural language. We can
skip the analysis part, since we as developers are doing the analysis to
create the queries, the query construct is the transfer/abstraction of
the syntactical structure of the query and the generation is the
responsibility of the database specific abstraction layer.
just one approach I like... it may be way overkill...
More information about the development
mailing list