diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-02-18 20:33:20 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-02-18 20:33:20 +0000 |
commit | 55ce6851e08daeba3be8e8c32d9e4618e53a8d5e (patch) | |
tree | 6b6e473f166fd0f11addc7ad9b7775b7ef198bdd /lib/sqlalchemy/ansisql.py | |
parent | 38dfca8c7f69aa578299035145d1359984edcf83 (diff) | |
download | sqlalchemy-55ce6851e08daeba3be8e8c32d9e4618e53a8d5e.tar.gz |
added indexes to schema/ansisql/engine
slightly different index syntax for mysql
fixed mysql Time type to convert from a timedelta to time
tweaks to date unit tests for mysql
Diffstat (limited to 'lib/sqlalchemy/ansisql.py')
-rw-r--r-- | lib/sqlalchemy/ansisql.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/lib/sqlalchemy/ansisql.py b/lib/sqlalchemy/ansisql.py index a300dc639..ed0f829fb 100644 --- a/lib/sqlalchemy/ansisql.py +++ b/lib/sqlalchemy/ansisql.py @@ -168,6 +168,9 @@ class ANSICompiler(sql.Compiled): def visit_fromclause(self, fromclause): self.froms[fromclause] = fromclause.from_name + def visit_index(self, index): + self.strings[index] = index.name + def visit_textclause(self, textclause): if textclause.parens and len(textclause.text): self.strings[textclause] = "(" + textclause.text + ")" @@ -200,7 +203,7 @@ class ANSICompiler(sql.Compiled): def visit_function(self, func): self.strings[func] = func.name + "(" + string.join([self.get_str(c) for c in func.clauses], ', ') + ")" - + def visit_compound_select(self, cs): text = string.join([self.get_str(c) for c in cs.selects], " " + cs.keyword + " ") for tup in cs.clauses: @@ -531,12 +534,26 @@ class ANSISchemaGenerator(sqlalchemy.engine.SchemaIterator): def visit_column(self, column): pass + + def visit_index(self, index): + self.append('CREATE ') + if index.unique: + self.append('UNIQUE ') + self.append('INDEX %s ON %s (%s)' \ + % (index.name, index.table.name, + string.join([c.name for c in index.columns], ', '))) + self.execute() + class ANSISchemaDropper(sqlalchemy.engine.SchemaIterator): + def visit_index(self, index): + self.append("\nDROP INDEX " + index.name) + self.execute() + def visit_table(self, table): self.append("\nDROP TABLE " + table.fullname) self.execute() class ANSIDefaultRunner(sqlalchemy.engine.DefaultRunner): - pass
\ No newline at end of file + pass |