@@ -76,6 +76,41 @@ class SimpleItems(Base):
7676 )
7777
7878
79+ def test_index_with_kwargs (generator : CodeGenerator ) -> None :
80+ simple_items = Table (
81+ "simple_items" ,
82+ generator .metadata ,
83+ Column ("id" , INTEGER , primary_key = True ),
84+ Column ("name" , VARCHAR ),
85+ )
86+ simple_items .indexes .add (
87+ Index ("idx_name" , simple_items .c .name , postgresql_using = "gist" , mysql_length = 10 )
88+ )
89+
90+ validate_code (
91+ generator .generate (),
92+ """\
93+ from typing import Optional
94+
95+ from sqlalchemy import Index, Integer, String
96+ from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
97+
98+ class Base(DeclarativeBase):
99+ pass
100+
101+
102+ class SimpleItems(Base):
103+ __tablename__ = 'simple_items'
104+ __table_args__ = (
105+ Index('idx_name', 'name', mysql_length=10, postgresql_using='gist'),
106+ )
107+
108+ id: Mapped[int] = mapped_column(Integer, primary_key=True)
109+ name: Mapped[Optional[str]] = mapped_column(String)
110+ """ ,
111+ )
112+
113+
79114def test_constraints (generator : CodeGenerator ) -> None :
80115 Table (
81116 "simple_items" ,
@@ -1971,8 +2006,8 @@ class Base(DeclarativeBase):
19712006class SpatialTable(Base):
19722007 __tablename__ = 'spatial_table'
19732008 __table_args__ = (
1974- Index('idx_spatial_table_geog', 'geog'),
1975- Index('idx_spatial_table_geom', 'geom')
2009+ Index('idx_spatial_table_geog', 'geog', postgresql_using='gist' ),
2010+ Index('idx_spatial_table_geom', 'geom', postgresql_using='gist' )
19762011 )
19772012
19782013 id: Mapped[int] = mapped_column(Integer, primary_key=True)
0 commit comments