From 90a886cc9073138324797525821e25e82d06915e Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sat, 29 Oct 2005 19:24:15 +0000 Subject: --- lib/sqlalchemy/databases/postgres.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'lib/sqlalchemy/databases/postgres.py') diff --git a/lib/sqlalchemy/databases/postgres.py b/lib/sqlalchemy/databases/postgres.py index f2057b909..ce81cd7d6 100644 --- a/lib/sqlalchemy/databases/postgres.py +++ b/lib/sqlalchemy/databases/postgres.py @@ -67,6 +67,16 @@ colspecs = { sqltypes.CHAR: PGChar, } +ischema_names = { + 'integer' : PGInteger, + 'character varying' : PGString, + 'character' : PGChar, + 'text' : PGText, + 'numeric' : PGNumeric, + 'timestamp without time zone' : PGDateTime, + 'bytea' : PGBinary, +} + def engine(opts, **params): return PGSQLEngine(opts, **params) @@ -191,9 +201,10 @@ class PGSQLEngine(ansisql.ANSISQLEngine): Column("column_name", String), Column("constraint_name", String), schema="information_schema") - - s = columns.select(columns.c.table_name==table.name, - from_obj=[sql.join(columns, column_constraints, + + s = columns.select(columns.c.table_name==table.name, order_by=[columns.c.ordinal_position]) + + s.append_from(sql.join(columns, column_constraints, sql.and_( columns.c.table_name==column_constraints.c.table_name, columns.c.table_schema==column_constraints.c.table_schema, @@ -204,9 +215,10 @@ class PGSQLEngine(ansisql.ANSISQLEngine): column_constraints.c.table_schema==constraints.c.table_schema, column_constraints.c.constraint_name==constraints.c.constraint_name, constraints.c.constraint_type=='PRIMARY KEY' - ), isouter=True)], - order_by=[columns.c.ordinal_position]) + ), isouter=True)), + s.append_column(constraints.c.constraint_type) + if table.schema is not None: s.append_whereclause(columns.c.table_schema==table.schema) else: -- cgit v1.2.1