[development] Do not let postgresql hold back great patches
Larry Garfield
larry at garfieldtech.com
Mon Dec 3 06:49:01 UTC 2007
On Monday 03 December 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.
Actually, that one I think I have a solution for, or the beginnings of one.
In PHP 5, there is the DateTime class to represent a date/time in some
timezone. It's great, but not a proper value object. Writing a value object
around DateTime is easy, however, and I've already done one.
So, each database driver defines internally its own format string to convert a
DateTime/DateValue class into the string format it expects for a date/time
stamp. The database driver then detects the presence of an object as an
argument to a query/prepared statement and formats it to its desired format,
which is then inserted into the query. That works for putting a date/time
value into a query (be it insert, update, delete, or select). For reading, I
believe we can use schema API to check if a field is a timestamp field and
then cast it back to a DateValue object. What the performance implication of
that is, though, I do not know. It may be something that we just have to
swallow if we want real database independence, along with always using an
object to represent a date/time (which I think we should be doing anyway).
As for in-SQL operations on the date value, like MONTH() or YEAR() in MySQL?
If someone has an idea for those that doesn't involve regexing every query I
would dearly love to hear it. :-)
--
Larry Garfield AIM: LOLG42
larry at garfieldtech.com ICQ: 6817012
"If nature has made any one thing less susceptible than all others of
exclusive property, it is the action of the thinking power called an idea,
which an individual may exclusively possess as long as he keeps it to
himself; but the moment it is divulged, it forces itself into the possession
of every one, and the receiver cannot dispossess himself of it." -- Thomas
Jefferson
More information about the development
mailing list