Translate PostgreSQL query to sqlalchemy

Viewed 31

How can this PostgreSQL query:

CREATE INDEX idx_lu_suggest_street_query_street ON fr_suggest_street_query (lower(f_unaccent(street))) INCLUDE (street);

be written in sqlalchemy? So far I tried:

Index(
            "idx_suggest_street_street",
            sa.func.lower(sa.func.f_unaccent("street")).label("street"),
            postgresql_ops={
                "street": "text_pattern_ops",
            },
        )

But I am missing the INCLUDE part, how can I achieve this?

UPDATE: I achieved the INCLUDE part using

postgresql_include=["street"],

Still when I am running:

SELECT
 indexname,
 indexdef
FROM
 pg_indexes
WHERE
 tablename = 'lu_suggest_street_query';

The index that is created using sqlalchemy looks like:

CREATE INDEX idx_suggest_street_street_text_pattern ON public.lu_suggest_street_query USING btree (lower(f_unaccent('street'::text))) INCLUDE (street)

But it should be:

CREATE INDEX idx_suggest_street_street_text_pattern ON public.lu_suggest_street_query USING btree (lower(f_unaccent((street)::text))) INCLUDE (street)

I need to mention that I am using sqlalchemy declarative metadata.

0 Answers
Related