]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
(no commit message)
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 29 Oct 2005 19:24:15 +0000 (19:24 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 29 Oct 2005 19:24:15 +0000 (19:24 +0000)
lib/sqlalchemy/databases/postgres.py
lib/sqlalchemy/sql.py
test/engines.py

index f2057b90986599f8c943ad4b232b49d6334df9e1..ce81cd7d6701dd4cdca01df04ccfd7ba7e1ec372 100644 (file)
@@ -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:
index 039e3cd768503c0f8b4a82a361c4409811b07a0d..2cb7d17bab7d056fb709417854591a85bf5f9848 100644 (file)
@@ -768,6 +768,8 @@ class Select(Selectable):
         for r in fromclause._get_from_objects():
             self.froms[r.id] = r
         
+    def append_join(self, joinon, right, whereclause, **params):
+        self.append_from(self.froms[joinon], right, whereclause, **params)
 
     def append_clause(self, keyword, clause):
         if type(clause) == str:
index 2d7651050af8b2241251c9de9e76b75083f0a458..291cafabd6625fd4ee9bb3632a824350061bf811 100644 (file)
@@ -54,7 +54,7 @@ class EngineTest(PersistTest):
         # clear out table registry
         db.tables.clear()
 
-#        users = Table('users', db, autoload = True)
+        users = Table('users', db, autoload = True)
         addresses = Table('email_addresses', db, autoload = True)
 
         users.drop()