return colspec
+ def visit_create_index(self, create, include_schema=False):
+ index = create.element
+ preparer = self.preparer
+ text = "CREATE "
+ if index.unique:
+ text += "UNIQUE "
+
+ # handle clustering option
+ if index.kwargs.get("mssql_clustered"):
+ text += "CLUSTERED "
+
+ text += "INDEX %s ON %s (%s)" \
+ % (
+ self._prepared_index_name(index,
+ include_schema=include_schema),
+ preparer.format_table(index.table),
+ ', '.join(preparer.quote(c.name, c.quote)
+ for c in index.columns))
+ return text
+
def visit_drop_index(self, drop):
return "\nDROP INDEX %s.%s" % (
self.preparer.quote_identifier(drop.element.table.name),
"CREATE TABLE test (id INTEGER NOT NULL IDENTITY(1,1))"
)
+ def test_index_clustering(self):
+ metadata = MetaData()
+ tbl = Table('test', metadata,
+ Column('id', Integer))
+ idx = Index("foo", tbl.c.id, mssql_clustered=True)
+ self.assert_compile(schema.CreateIndex(idx),
+ "CREATE CLUSTERED INDEX foo ON test (id)"
+ )
+
class SchemaAliasingTest(fixtures.TestBase, AssertsCompiledSQL):
"""SQL server cannot reference schema-qualified tables in a SELECT statement, they
must be aliased.