コード例 #1
0
 def test_create_index_plain(self):
     t = Table('t', MetaData(), Column('x', Integer))
     i = Index("xyz", t.c.x)
     self.assert_compile(
         schema.CreateIndex(i),
         "CREATE INDEX xyz ON t (x)"
     )
コード例 #2
0
    def test_render_index_sql_literal(self):
        t, t2 = self._constraint_create_fixture()

        constraint = Index("name", t.c.a + 5)

        self.assert_compile(schema.CreateIndex(constraint),
                            "CREATE INDEX name ON tbl (a + 5)")
コード例 #3
0
    def test_index_against_text_inline(self):
        metadata = MetaData()
        idx = Index("y", text("some_function(q)"))
        Table("x", metadata, Column("q", String(50)), idx)

        self.assert_compile(schema.CreateIndex(idx),
                            "CREATE INDEX y ON x (some_function(q))")
コード例 #4
0
 def test_create_index_expr(self):
     m = MetaData()
     t1 = Table("foo", m, Column("x", Integer))
     self.assert_compile(
         schema.CreateIndex(Index("bar", t1.c.x > 5)),
         "CREATE INDEX bar ON foo ((x > 5))",
     )
コード例 #5
0
    def test_create_index_simple(self):
        m = MetaData()
        tbl = Table("testtbl", m, Column("data", String(255)))
        idx = Index("test_idx1", tbl.c.data)

        self.assert_compile(schema.CreateIndex(idx),
                            "CREATE INDEX test_idx1 ON testtbl (data)")
コード例 #6
0
ファイル: test_constraints.py プロジェクト: zzzap/sqlalchemy
    def test_index_declaration_inline(self):
        metadata = MetaData()

        t1 = Table('t1', metadata, Column('x', Integer), Column('y', Integer),
                   Index('foo', 'x', 'y'))
        self.assert_compile(schema.CreateIndex(list(t1.indexes)[0]),
                            "CREATE INDEX foo ON t1 (x, y)")
コード例 #7
0
    def test_create_index_with_arbitrary_column_element(self):
        from sqlalchemy.ext.compiler import compiles

        class _textual_index_element(sql.ColumnElement):
            """alembic's wrapper"""

            __visit_name__ = "_textual_idx_element"

            def __init__(self, table, text):
                self.table = table
                self.text = text

        @compiles(_textual_index_element)
        def _render_textual_index_column(element, compiler, **kw):
            return compiler.process(element.text, **kw)

        m = MetaData()
        tbl = Table("testtbl", m, Column("data", String(255)))
        idx = Index(
            "test_idx1",
            _textual_index_element(tbl, text("created_at desc")),
            _table=tbl,
        )

        self.assert_compile(
            schema.CreateIndex(idx),
            "CREATE INDEX test_idx1 ON testtbl (created_at desc)",
        )
コード例 #8
0
ファイル: test_compiler.py プロジェクト: walisc/sqlalchemy
    def test_create_index_simple(self):
        m = MetaData()
        tbl = Table('testtbl', m, Column('data', String(255)))
        idx = Index('test_idx1', tbl.c.data)

        self.assert_compile(schema.CreateIndex(idx),
                            'CREATE INDEX test_idx1 ON testtbl (data)')
コード例 #9
0
ファイル: test_constraints.py プロジェクト: zzzap/sqlalchemy
 def test_index_against_text_separate(self):
     metadata = MetaData()
     idx = Index('y', text("some_function(q)"))
     t = Table('x', metadata, Column('q', String(50)))
     t.append_constraint(idx)
     self.assert_compile(schema.CreateIndex(idx),
                         "CREATE INDEX y ON x (some_function(q))")
コード例 #10
0
 def test_index_extra_include_2(self):
     metadata = MetaData()
     tbl = Table('test', metadata, Column('x', Integer),
                 Column('y', Integer), Column('z', Integer))
     idx = Index("foo", tbl.c.x, mssql_include=[tbl.c.y])
     self.assert_compile(schema.CreateIndex(idx),
                         "CREATE INDEX foo ON test (x) INCLUDE (y)")
コード例 #11
0
 def test_index_ordering(self):
     metadata = MetaData()
     tbl = Table('test', metadata, Column('x', Integer),
                 Column('y', Integer), Column('z', Integer))
     idx = Index("foo", tbl.c.x.desc(), "y")
     self.assert_compile(schema.CreateIndex(idx),
                         "CREATE INDEX foo ON test (x DESC, y)")
コード例 #12
0
    def test_create_index_literals(self):
        m = MetaData()
        tbl = Table('testtbl', m, Column('data', Integer))

        idx1 = Index('test_idx1', tbl.c.data + 5)
        self.assert_compile(schema.CreateIndex(idx1),
                            "CREATE INDEX test_idx1 ON testtbl ((data + 5))")
コード例 #13
0
ファイル: test_quote.py プロジェクト: lpsinger/sqlalchemy
 def test_quote_flag_propagate_index(self):
     m = MetaData()
     t = Table("t", m, Column("x", Integer, quote=True))
     idx = Index("foo", t.c.x)
     self.assert_compile(
         schema.CreateIndex(idx), 'CREATE INDEX foo ON t ("x")'
     )
コード例 #14
0
ファイル: test_compiler.py プロジェクト: ravjanga/sqlalchemy
 def test_create_index_alt_schema(self):
     m = MetaData()
     t1 = Table("foo", m, Column("x", Integer), schema="alt_schema")
     self.assert_compile(
         schema.CreateIndex(Index("bar", t1.c.x)),
         "CREATE INDEX alt_schema.bar ON alt_schema.foo (x)",
     )
コード例 #15
0
ファイル: test_compiler.py プロジェクト: zhaog/sqlalchemy
    def test_create_index_with_length_quoted(self):
        m = MetaData()
        tbl = Table('testtbl', m, Column('some quoted data',
                                String(255), key='s'))
        idx1 = Index('test_idx1', tbl.c.s, mysql_length=10)

        self.assert_compile(schema.CreateIndex(idx1),
            'CREATE INDEX test_idx1 ON testtbl (`some quoted data`(10))')
コード例 #16
0
 def test_index_where(self):
     metadata = MetaData()
     tbl = Table("test", metadata, Column("data", Integer))
     idx = Index("test_idx_data_1", tbl.c.data, mssql_where=tbl.c.data > 1)
     self.assert_compile(
         schema.CreateIndex(idx),
         "CREATE INDEX test_idx_data_1 ON test (data) WHERE data > 1",
     )
コード例 #17
0
    def test_create_index_concurrently(self):
        m = MetaData()
        tbl = Table('testtbl', m, Column('data', Integer))

        idx1 = Index('test_idx1', tbl.c.data, postgresql_concurrently=True)
        self.assert_compile(
            schema.CreateIndex(idx1),
            "CREATE INDEX CONCURRENTLY test_idx1 ON testtbl (data)")
コード例 #18
0
ファイル: test_compiler.py プロジェクト: zky001/sqlalchemy
 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)"
                         )
コード例 #19
0
    def test_functional_index(self):
        metadata = MetaData()
        x = Table('x', metadata,
                  Column('q', String(50))
                  )
        idx = Index('y', func.lower(x.c.q))

        self.assert_compile(
            schema.CreateIndex(idx),
            "CREATE INDEX y ON x (lower(q))"
        )

        self.assert_compile(
            schema.CreateIndex(idx),
            "CREATE INDEX y ON x (lower(q))",
            dialect=testing.db.dialect
        )
コード例 #20
0
    def test_create_index_expr_gets_parens(self):
        m = MetaData()
        tbl = Table('testtbl', m, Column('x', Integer), Column('y', Integer))

        idx1 = Index('test_idx1', 5 / (tbl.c.x + tbl.c.y))
        self.assert_compile(
            schema.CreateIndex(idx1),
            "CREATE INDEX test_idx1 ON testtbl ((5 / (x + y)))")
コード例 #21
0
    def test_create_index_expr_func_unary(self):
        m = MetaData()
        tbl = Table("testtbl", m, Column("data", Integer))
        idx1 = Index("test_idx1", -tbl.c.data)

        self.assert_compile(
            schema.CreateIndex(idx1),
            "CREATE INDEX test_idx1 ON testtbl ((-data))",
        )
コード例 #22
0
    def test_create_index_with_text(self):
        m = MetaData()
        tbl = Table("testtbl", m, Column("data", String(255)))
        idx = Index("test_idx1", text("created_at desc"), _table=tbl)

        self.assert_compile(
            schema.CreateIndex(idx),
            "CREATE INDEX test_idx1 ON testtbl (created_at desc)",
        )
コード例 #23
0
    def test_table_idx_explicit_nonclustered(self):
        metadata = MetaData()
        tbl = Table('test', metadata, Column('x', Integer,
                                             autoincrement=False),
                    Column('y', Integer, autoincrement=False))

        idx = Index("myidx", tbl.c.x, tbl.c.y, mssql_clustered=False)
        self.assert_compile(schema.CreateIndex(idx),
                            "CREATE NONCLUSTERED INDEX myidx ON test (x, y)")
コード例 #24
0
    def test_create_index_with_prefix(self):
        m = MetaData()
        tbl = Table('testtbl', m, Column('data', String(255)))
        idx = Index('test_idx1', tbl.c.data, mysql_length=10,
                    mysql_prefix='FULLTEXT')

        self.assert_compile(schema.CreateIndex(idx),
                            'CREATE FULLTEXT INDEX test_idx1 '
                            'ON testtbl (data(10))')
コード例 #25
0
 def create_table(self, table):
     table.dispatch.before_create(table, self.connection,
                                  checkfirst=False,
                                  _ddl_runner=self)
     self._exec(schema.CreateTable(table))
     table.dispatch.after_create(table, self.connection,
                                 checkfirst=False,
                                 _ddl_runner=self)
     for index in table.indexes:
         self._exec(schema.CreateIndex(index))
コード例 #26
0
    def test_create_index_with_length_quoted(self):
        m = MetaData()
        tbl = Table("testtbl", m,
                    Column("some quoted data", String(255), key="s"))
        idx1 = Index("test_idx1", tbl.c.s, mysql_length=10)

        self.assert_compile(
            schema.CreateIndex(idx1),
            "CREATE INDEX test_idx1 ON testtbl (`some quoted data`(10))",
        )
コード例 #27
0
    def test_create_index_bitmap_compress(self):
        m = MetaData()
        tbl = Table("testtbl", m, Column("data", Integer))
        idx1 = Index("idx1", tbl.c.data, oracle_compress=True)
        idx2 = Index("idx2", tbl.c.data, oracle_compress=1)
        idx3 = Index("idx3", tbl.c.data, oracle_bitmap=True)

        self.assert_compile(
            schema.CreateIndex(idx1),
            "CREATE INDEX idx1 ON testtbl (data) COMPRESS",
        )
        self.assert_compile(
            schema.CreateIndex(idx2),
            "CREATE INDEX idx2 ON testtbl (data) COMPRESS 1",
        )
        self.assert_compile(
            schema.CreateIndex(idx3),
            "CREATE BITMAP INDEX idx3 ON testtbl (data)",
        )
コード例 #28
0
    def test_create_index_with_using(self):
        m = MetaData()
        tbl = Table('testtbl', m, Column('data', String))

        idx1 = Index('test_idx1', tbl.c.data)
        idx2 = Index('test_idx2', tbl.c.data, postgresql_using='btree')
        idx3 = Index('test_idx3', tbl.c.data, postgresql_using='hash')

        self.assert_compile(schema.CreateIndex(idx1),
                            'CREATE INDEX test_idx1 ON testtbl '
                            '(data)',
                            dialect=postgresql.dialect())
        self.assert_compile(schema.CreateIndex(idx2),
                            'CREATE INDEX test_idx2 ON testtbl '
                            'USING btree (data)',
                            dialect=postgresql.dialect())
        self.assert_compile(schema.CreateIndex(idx3),
                            'CREATE INDEX test_idx3 ON testtbl '
                            'USING hash (data)',
                            dialect=postgresql.dialect())
コード例 #29
0
ファイル: test_compiler.py プロジェクト: zky001/sqlalchemy
    def test_create_composite_index_with_length_quoted(self):
        m = MetaData()
        tbl = Table('testtbl', m,
                    Column('some Quoted a', String(255), key='a'),
                    Column('some Quoted b', String(255), key='b'))
        idx1 = Index('test_idx1', tbl.c.a, tbl.c.b,
                     mysql_length={'some Quoted a': 10, 'some Quoted b': 20})

        self.assert_compile(schema.CreateIndex(idx1),
                            'CREATE INDEX test_idx1 ON testtbl '
                            '(`some Quoted a`(10), `some Quoted b`(20))')
コード例 #30
0
    def test_create_index_with_prefix(self):
        m = MetaData()
        tbl = Table("testtbl", m, Column("data", String(255)))
        idx = Index(
            "test_idx1", tbl.c.data, mysql_length=10, mysql_prefix="FULLTEXT"
        )

        self.assert_compile(
            schema.CreateIndex(idx),
            "CREATE FULLTEXT INDEX test_idx1 " "ON testtbl (data(10))",
        )