summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/ansisql.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-02-18 20:33:20 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-02-18 20:33:20 +0000
commit55ce6851e08daeba3be8e8c32d9e4618e53a8d5e (patch)
tree6b6e473f166fd0f11addc7ad9b7775b7ef198bdd /lib/sqlalchemy/ansisql.py
parent38dfca8c7f69aa578299035145d1359984edcf83 (diff)
downloadsqlalchemy-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.py21
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