On Apr 18, 2012, at 10:47 AM, Will wrote:

> 
> Yes, I knew about the adapters.  A coworker of mine came up with this:
> 
>    ...
> s = Session()
> c = s.connection()
> 
> cast_time = lambda value, cur: Time.parse(value)
> TIME = c.dialect.dbapi.extensions.new_type((1083,), "TIME", cast_time)
>   c.dialect.dbapi.extensions.register_type(TIME)
> 
> I should have mentioned that in the first place.  I was wondering, what's the 
> recommended way to modify the dialect settings globally, so they are used 
> whenever a new engine/connection is created?

Since you're doing things that are psycopg2 specific, you could just import 
psycopg2:

from psycopg2 import extensions
extensions.register_type(...)

if you wanted to keep it local to an engine, you could do a "connect" event to 
add connection scope:

from psycopg2 import extensions

@event.listens_for(myengine, "connect")
def setup_time_type(dbapi_conn, conn_rec):
    extensions.register_type(TIME, dbapi_conn)




> 
> On Wednesday, April 18, 2012 10:17:43 AM UTC-4, Michael Bayer wrote:
> 
> On Apr 18, 2012, at 9:36 AM, Will wrote:
> 
>> The postgresql Time type supports times from "00:00:00" to "24:00:00" in 
>> accordance with ISO 8601.  The python datetime.time class does not currently 
>> support "24:00:00" but it would be useful to have SQLAlchemy support that.  
> 
> puzzled, looking at 
> http://docs.python.org/library/datetime.html#datetime.time:
> 
> All arguments are optional. tzinfo may be None, or an instance of a tzinfo 
> subclass. The remaining arguments may be ints or longs, in the following 
> ranges:
> 
> 0 <= hour < 24
> 0 <= minute < 60
> 0 <= second < 60
> 0 <= microsecond < 1000000.
> ?
> 
> the coercion of PG's date/time fields into Python objects are a product of 
> psycopg2.   If psycopg2 isn't doing what you want here, you'd want to check 
> with that product - psycopg2 has a comprehensive system of modifying it's 
> typing behavior: 
> http://initd.org/psycopg/docs/extensions.html#sql-adaptation-protocol-objects
> 
> 
>> I'm using SQLAlchemy 0.6.8 and was wondering if there is a way to allow it 
>> to support the "24:00:00" midnight notation.
> 
> SQLAlchemy doesn't deal with string notations when it talks to Postgresql 
> regarding date and time types.    Psycopg2 handles the details of string 
> formatting.
> 
>> 
>> I've tried to make a custom type that would support it, but it seems that 
>> psycopg2 will return a datetime.time class even if I define the custom type 
>> to implement the Text type.
> 
> right, this is all psycopg2.   You'd need to establish this behavior using 
> psycopg2 only first, by registering adapters as described in the above 
> document.    Once you set that up SQLAlchemy just passes that data right 
> through.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/sqlalchemy/-/Oa13nLlwW5YJ.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/sqlalchemy?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to