Re: [Sqlalchemy-tickets] [sqlalchemy] #1511: [PATCH] PGEnum PostgreSQL enum type
Brought to you by:
zzzeek
From: sqlalchemy <mi...@zz...> - 2009-08-31 15:04:54
|
#1511: [PATCH] PGEnum PostgreSQL enum type -----------------------------+---------------------------------------------- Reporter: guest | Owner: zzzeek Type: enhancement | Status: new Priority: medium | Milestone: 0.6.0 Component: postgres | Severity: major - 1-3 hours Resolution: | Keywords: patch Status_field: needs review | -----------------------------+---------------------------------------------- Comment (by zzzeek): im still a little antsy on the `__metadatas` collection. its almost always harmless but there are some cases where we've had "memory leak" issues, for applications which make many engines or metadatas. Even though this is not the typical programming paradigm, it would be nice if there weren't a "surprise" memory leak if someone happened to use many metadatas and this particular type object. It would be better if we at some point added a "has_event()" type of hook to `MetaData` and `Table` for this kind of thing. another thing missing here is that there's no hook for "does this type already exist ?" (i.e. in the actual PG database). otherwise its not possible here to call `metadata.create_all()` multiple times. If the PG dialect also implemented `has_type()` the way it implements `has_table` and `has_sequence`, the hook can be placed as the "on" callable within the `CreateType`/`DropType` objects which would only create/drop the type if it didn't/did exist. also when would `create_statement()`, `drop_statement()`, `__ddl_listener()` on `SchemaDefinedType` be called ? I tried to follow each patch visually and it seems like these are still there (I may have missed something though). -- Ticket URL: <http://www.sqlalchemy.org/trac/ticket/1511#comment:3> sqlalchemy <http://www.sqlalchemy.org/> The Database Toolkit for Python |