Skip site navigation (1) Skip section navigation (2)

Re: Change in datetime type casting

From: Karsten Hilbert <Karsten(dot)Hilbert(at)gmx(dot)net>
To: psycopg(at)postgresql(dot)org
Subject: Re: Change in datetime type casting
Date: 2012-06-29 14:59:16
Message-ID: 20120629145916.GC7188@hermes.hilbert.loc (view raw or flat)
Thread:
Lists: psycopg
On Fri, Jun 29, 2012 at 07:51:44AM -0700, Adrian Klaver wrote:

> >>Which begs the question why does the adapter not do str(value) when creating
> >>the ARRAY?
> >
> >Because it would give a false promise of working. If I put a date in
> >my db, I'm expecting a date to come out: any other result is an error.
> >The hstore adapter is documented to take strings mapping: results with
> >any other mapping is undefined. A better behaviour could be to
> >explicitly raise an explicit exception, but it would be less efficient
> >than trusting the user he is using the adapter as documented (see
> >HstoreAdapter._getquoted_9(): we adapt the dict.values() list, not
> >iterate on each values).
> >
> >If writing a date in and reading a string out is enough for your
> >application, you can easily write your own specialized hstore adapter
> >based on the code in extras.py.
> 
> The following change in extras.py solves the problem for dates and
> other non string types.:
> 
> class HstoreAdapter(object):
>     """Adapt a Python dict to the hstore syntax."""
>     def __init__(self, wrapped):
>         self.wrapped = wrapped
>         for k in self.wrapped:                     <--
>             self.wrapped[k] = str(self.wrapped[k]) <--
> 
> Is there a possibility it could find its way into psycopg2 proper?

It would not solve this concern voiced above:

> >Because it would give a false promise of working.

Karsten
-- 
GPG key ID E4071346 @ gpg-keyserver.de
E167 67FD A291 2BEA 73BD  4537 78B9 A9F9 E407 1346

In response to

Responses

psycopg by date

Next:From: Federico Di GregorioDate: 2012-06-29 14:59:46
Subject: Re: Change in datetime type casting
Previous:From: Adrian KlaverDate: 2012-06-29 14:51:44
Subject: Re: Change in datetime type casting

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group