]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- re-fixed the fix to the prefixes fix
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 6 Jul 2008 00:47:56 +0000 (00:47 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 6 Jul 2008 00:47:56 +0000 (00:47 +0000)
- removed ancient descriptor() functions from dialects; replaced with Dialect.name
- removed similarly ancient sys.modules silliness in Engine.name

12 files changed:
lib/sqlalchemy/databases/access.py
lib/sqlalchemy/databases/firebird.py
lib/sqlalchemy/databases/informix.py
lib/sqlalchemy/databases/maxdb.py
lib/sqlalchemy/databases/mssql.py
lib/sqlalchemy/databases/mysql.py
lib/sqlalchemy/databases/oracle.py
lib/sqlalchemy/databases/postgres.py
lib/sqlalchemy/databases/sqlite.py
lib/sqlalchemy/databases/sybase.py
lib/sqlalchemy/engine/base.py
lib/sqlalchemy/sql/compiler.py

index 55b48e4bcd07c89ed5b2e9bde016270045035299..425c1eb69c3bc1194ae8f444d5b5cd3fdf88a7ba 100644 (file)
@@ -117,15 +117,6 @@ class AcTimeStamp(types.TIMESTAMP):
     def get_col_spec(self):
         return "TIMESTAMP"
 
-def descriptor():
-    return {'name':'access',
-    'description':'Microsoft Access',
-    'arguments':[
-        ('user',"Database user name",None),
-        ('password',"Database password",None),
-        ('db',"Path to database file",None),
-    ]}
-
 class AccessExecutionContext(default.DefaultExecutionContext):
     def _has_implicit_sequence(self, column):
         if column.primary_key and column.autoincrement:
@@ -176,7 +167,7 @@ class AccessDialect(default.DefaultDialect):
         types.CHAR: AcChar,
         types.TIMESTAMP: AcTimeStamp,
     }
-
+    name = 'access'
     supports_sane_rowcount = False
     supports_sane_multi_rowcount = False
 
index f8b4689d8a5a481eb9144308b901aa413aea18ca..c7b64a6b26f73ef298e77e61a653df145bead259 100644 (file)
@@ -262,17 +262,6 @@ ischema_names = {
       }
 
 
-def descriptor():
-    return {'name':'firebird',
-    'description':'Firebird',
-    'arguments':[
-        ('host', 'Host Server Name', None),
-        ('database', 'Database Name', None),
-        ('user', 'Username', None),
-        ('password', 'Password', None)
-    ]}
-
-
 SELECT_RE = re.compile(
     r'\s*(?:SELECT|(UPDATE|INSERT|DELETE))',
     re.I | re.UNICODE)
@@ -315,7 +304,7 @@ class FBExecutionContext(default.DefaultExecutionContext):
 
 class FBDialect(default.DefaultDialect):
     """Firebird dialect"""
-
+    name = 'firebird'
     supports_sane_rowcount = False
     supports_sane_multi_rowcount = False
     max_identifier_length = 31
index 42c46db7cd3be8b0fbf53d7ec283eefba16a0a3f..130b08c41ad3ee5da1f527ff42296a29ab0148b4 100644 (file)
@@ -178,14 +178,6 @@ ischema_names = {
     -1  : InfoText,         # CLOB
 }
 
-def descriptor():
-    return {'name':'informix',
-    'description':'Informix',
-    'arguments':[
-        ('dsn', 'Data Source Name', None),
-        ('user', 'Username', None),
-        ('password', 'Password', None)
-    ]}
 
 class InfoExecutionContext(default.DefaultExecutionContext):
     # cursor.sqlerrd
@@ -206,6 +198,7 @@ class InfoExecutionContext(default.DefaultExecutionContext):
         return informix_cursor( self.connection.connection )
 
 class InfoDialect(default.DefaultDialect):
+    name = 'informix'
     default_paramstyle = 'qmark'
     # for informix 7.31
     max_identifier_length = 18
index 262a8f0fcad3f12429dbfca79968e64b6c73a45e..b3f232a17c1392250d0deabaae0569610fa96c04 100644 (file)
@@ -466,6 +466,7 @@ class MaxDBResultProxy(engine_base.ResultProxy):
 
 
 class MaxDBDialect(default.DefaultDialect):
+    name = 'maxdb'
     supports_alter = True
     supports_unicode_statements = True
     max_identifier_length = 32
@@ -1092,15 +1093,6 @@ def _autoserial_column(table):
 
     return None, None
 
-def descriptor():
-    return {'name': 'maxdb',
-    'description': 'MaxDB',
-    'arguments': [
-        ('user', "Database Username", None),
-        ('password', "Database Password", None),
-        ('database', "Database Name", None),
-        ('host', "Hostname", None)]}
-
 dialect = MaxDBDialect
 dialect.preparer = MaxDBIdentifierPreparer
 dialect.statement_compiler = MaxDBCompiler
index 4f6db935f404b7871a81871e50a849473ad47e86..112c8ead493aca53cef64c3817af5af63ed5b3b1 100644 (file)
@@ -278,16 +278,6 @@ class MSVariant(sqltypes.TypeEngine):
     def get_col_spec(self):
         return "SQL_VARIANT"
 
-def descriptor():
-    return {'name':'mssql',
-    'description':'MSSQL',
-    'arguments':[
-        ('user',"Database Username",None),
-        ('password',"Database Password",None),
-        ('db',"Database Name",None),
-        ('host',"Hostname", None),
-    ]}
-
 class MSSQLExecutionContext(default.DefaultExecutionContext):
     def __init__(self, *args, **kwargs):
         self.IINSERT = self.HASIDENT = False
@@ -369,6 +359,7 @@ class MSSQLExecutionContext_pyodbc (MSSQLExecutionContext):
             super(MSSQLExecutionContext_pyodbc, self).post_exec()
 
 class MSSQLDialect(default.DefaultDialect):
+    name = 'mssql'
     colspecs = {
         sqltypes.Unicode : MSNVarchar,
         sqltypes.Integer : MSInteger,
@@ -983,6 +974,7 @@ class MSSQLCompiler(compiler.DefaultCompiler):
         else:
             return super(MSSQLCompiler, self).label_select_column(select, column, asfrom)
 
+    # TODO: update this to use generic functions
     function_rewrites =  {'current_date': 'getdate',
                           'length':     'len',
                           }
index ed01b77d78afd7666495ecb08d7fb97cbbaaa16f..e2ee5330ca56d8285233aac630a6f743bcf047ec 100644 (file)
@@ -1380,16 +1380,6 @@ ischema_names = {
     'year': MSYear,
 }
 
-def descriptor():
-    return {'name':'mysql',
-    'description':'MySQL',
-    'arguments':[
-        ('username',"Database Username",None),
-        ('password',"Database Password",None),
-        ('database',"Database Name",None),
-        ('host',"Hostname", None),
-    ]}
-
 
 class MySQLExecutionContext(default.DefaultExecutionContext):
     def post_exec(self):
@@ -1413,7 +1403,7 @@ class MySQLExecutionContext(default.DefaultExecutionContext):
 
 class MySQLDialect(default.DefaultDialect):
     """Details of the MySQL dialect.  Not used directly in application code."""
-
+    name = 'mysql'
     supports_alter = True
     supports_unicode_statements = False
     # identifiers are 64, however aliases can be 255...
index 00c3c1e0158e430406f6ea41a1e584078cb4b5f1..815024a00f7c9b5aa5d74b5a2a41f4598dbc174f 100644 (file)
@@ -188,15 +188,6 @@ ischema_names = {
     'LONG' : OracleText,
 }
 
-def descriptor():
-    return {'name':'oracle',
-    'description':'Oracle',
-    'arguments':[
-        ('dsn', 'Data Source Name', None),
-        ('user', 'Username', None),
-        ('password', 'Password', None)
-    ]}
-
 class OracleExecutionContext(default.DefaultExecutionContext):
     def pre_exec(self):
         super(OracleExecutionContext, self).pre_exec()
@@ -240,6 +231,7 @@ class OracleExecutionContext(default.DefaultExecutionContext):
         return base.ResultProxy(self)
 
 class OracleDialect(default.DefaultDialect):
+    name = 'oracle'
     supports_alter = True
     supports_unicode_statements = False
     max_identifier_length = 30
index 944d8c3aaa95d1385c996522cd7c02a5e30b9d18..6e77f02d82edcd593f13471e7a94fc76c03ae9c5 100644 (file)
@@ -225,16 +225,6 @@ ischema_names = {
     'interval':PGInterval,
 }
 
-def descriptor():
-    return {'name':'postgres',
-    'description':'PostGres',
-    'arguments':[
-        ('username',"Database Username",None),
-        ('password',"Database Password",None),
-        ('database',"Database Name",None),
-        ('host',"Hostname", None),
-    ]}
-
 SERVER_SIDE_CURSOR_RE = re.compile(
     r'\s*SELECT',
     re.I | re.UNICODE)
@@ -316,6 +306,7 @@ class PGExecutionContext(default.DefaultExecutionContext):
         super(PGExecutionContext, self).post_exec()
 
 class PGDialect(default.DefaultDialect):
+    name = 'postgres'
     supports_alter = True
     supports_unicode_statements = False
     max_identifier_length = 63
index bbfb99d65a616ebd7597b1c034e6a51dc8f75e75..620713fe1c4533d8bc43391972cbb09db0cf2c0d 100644 (file)
@@ -196,13 +196,6 @@ ischema_names = {
     'VARCHAR': SLString,
 }
 
-def descriptor():
-    return {'name':'sqlite',
-    'description':'SQLite',
-    'arguments':[
-        ('database', "Database Filename",None)
-    ]}
-
 class SQLiteExecutionContext(default.DefaultExecutionContext):
     def post_exec(self):
         if self.compiled.isinsert and not self.executemany:
@@ -213,6 +206,7 @@ class SQLiteExecutionContext(default.DefaultExecutionContext):
         return SELECT_REGEXP.match(statement)
 
 class SQLiteDialect(default.DefaultDialect):
+    name = 'sqlite'
     supports_alter = False
     supports_unicode_statements = True
     default_paramstyle = 'qmark'
index 45a98bec59ed25f60af8243acfb77bbe820de578..fd5b875a24d3009c5d84cd19dae6e273318b3891 100644 (file)
@@ -350,16 +350,6 @@ class SybaseUniqueIdentifier(sqltypes.TypeEngine):
     def get_col_spec(self):
         return "UNIQUEIDENTIFIER"
 
-def descriptor():
-    return {'name':'sybase',
-    'description':'SybaseSQL',
-    'arguments':[
-        ('user',"Database Username",None),
-        ('password',"Database Password",None),
-        ('db',"Database Name",None),
-        ('host',"Hostname", None),
-    ]}
-
 class SybaseSQLExecutionContext(default.DefaultExecutionContext):
     pass
 
@@ -460,6 +450,7 @@ class SybaseSQLDialect(default.DefaultDialect):
         'java serialization' : SybaseTypeError,
     }
 
+    name = 'sybase'
     # Sybase backend peculiarities
     supports_unicode_statements = False
     supports_sane_rowcount = False
index 2ca2ac5f7150ae9ee9032de070f7202565beaab3..412c3a2f60111e89b7801ce75d0c53eab0a99784 100644 (file)
@@ -28,7 +28,10 @@ class Dialect(object):
     ExecutionContext, Compiled, DefaultGenerator, and TypeEngine.
 
     All Dialects implement the following attributes:
-
+    
+    name
+      identifying name for the dialect (i.e. 'sqlite')
+      
     positional
       True if the paramstyle for this Dialect is positional.
 
@@ -1124,8 +1127,8 @@ class Engine(Connectable):
 
     def name(self):
         "String name of the [sqlalchemy.engine#Dialect] in use by this ``Engine``."
-
-        return sys.modules[self.dialect.__module__].descriptor()['name']
+        
+        return self.dialect.name
     name = property(name)
 
     echo = log.echo_property()
index 3b82fbdd07982267ebc2f30500245cf3c61b6f1e..b6da297363a6b4ac8be8bddc1987db2277fd9abb 100644 (file)
@@ -788,7 +788,7 @@ class SchemaGenerator(DDLBase):
             if column.default is not None:
                 self.traverse_single(column.default)
 
-        self.append("\nCREATE" + " ".join(table._prefixes) + " TABLE " + self.preparer.format_table(table) + " (")
+        self.append("\n" + " ".join(['CREATE'] + table._prefixes + ['TABLE', self.preparer.format_table(table), "("]))
 
         separator = "\n"