"name": row["name"],
"unique": row["is_unique"] == 1,
"column_names": [],
- # NOTE: this is legacy, this is part of
- # dialect_options now as of #7382
- "include_columns": [],
- "dialect_options": {},
+ "dialect_options": {"mssql_include": []},
}
do = current["dialect_options"]
index_type = row["type"]
if idx_id not in indexes_by_table[tname]:
continue
index_def = indexes_by_table[tname][idx_id]
- is_colstore = index_def["dialect_options"].get("mssql_columnstore")
- is_clustered = index_def["dialect_options"].get("mssql_clustered")
+ do = index_def["dialect_options"]
+ is_colstore = do.get("mssql_columnstore")
+ is_clustered = do.get("mssql_clustered")
if not (is_colstore and is_clustered):
# a clustered columnstore index includes all columns but does
# not want them in the index definition
if row["is_included_column"] and not is_colstore:
# a noncludsted columnstore index reports that includes
# columns but requires that are listed as normal columns
- index_def["include_columns"].append(row["name"])
+ do["mssql_include"].append(row["name"])
else:
index_def["column_names"].append(row["name"])
for tname, idx_dict in indexes_by_table.items():
- for index_info in idx_dict.values():
- index_info["dialect_options"]["mssql_include"] = index_info[
- "include_columns"
- ]
result[(schema, tname)] = list(idx_dict.values())
for n in names:
"column_names": list(cols),
"name": name,
"dialect_options": mock.ANY,
- "include_columns": [],
}
if column_sorting:
res["column_sorting"] = column_sorting
expected = [
{"unique": False, "column_names": ["foo"], "name": "user_tmp_ix"}
]
- if testing.requires.index_reflects_included_columns.enabled:
- expected[0]["include_columns"] = []
eq_(
[idx for idx in indexes if idx["name"] == "user_tmp_ix"],
expected,
def completeIndex(entry):
if testing.requires.index_reflects_included_columns.enabled:
- entry["include_columns"] = []
entry["dialect_options"] = {
f"{connection.engine.name}_include": []
}
{
"name": "t_idx",
"column_names": ["x"],
- "include_columns": ["y"],
"unique": False,
"dialect_options": mock.ANY,
}
"name": "my_index",
"unique": False,
"column_names": ["q"],
- "include_columns": [],
"dialect_options": {"postgresql_include": []},
}
],
[
{
"column_names": ["q"],
- "include_columns": [],
"dialect_options": {"postgresql_include": []},
"name": mock.ANY,
"unique": False,
"column_sorting": {"data": ("desc",)},
}
if connection.dialect.server_version_info >= (11, 0):
- exp["include_columns"] = []
exp["dialect_options"] = {"postgresql_include": []}
plain = {(None, "test_regview"): []}
mat = {(None, "test_mview"): [exp]}
"(other::text || id::text)",
],
"unique": False,
- "include_columns": [],
"dialect_options": {"postgresql_include": []},
},
{
"name": "idx2",
"column_names": ["id"],
"unique": True,
- "include_columns": [],
"dialect_options": {
"postgresql_include": [],
"postgresql_where": "((name)::text = 'test'::text)",
"lower(aname::text)",
],
"unique": False,
- "include_columns": [],
"dialect_options": {"postgresql_include": []},
"column_sorting": {"lower(aname::text)": ("desc",)},
},
"column_names": ["name", None, "aname"],
"expressions": ["name", "lower(other::text)", "aname"],
"unique": False,
- "include_columns": [],
"dialect_options": {
"postgresql_include": [],
"postgresql_where": "((name)::text <> 'foo'::text)",
"name": "ix_party_name",
"column_names": ["name"],
"unique": False,
- "include_columns": [],
"dialect_options": {"postgresql_include": []},
},
]
"column_names": ["name", None],
"expressions": ["name", "upper(other::text)"],
"unique": True,
- "include_columns": [],
"dialect_options": {
"postgresql_include": [],
"postgresql_nulls_not_distinct": True,
if version < (11,):
for index in expected:
- index.pop("include_columns")
index["dialect_options"].pop("postgresql_include")
if not index["dialect_options"]:
index.pop("dialect_options")
ind = connection.dialect.get_indexes(connection, "t", None)
expected = [{"name": "idx1", "unique": False, "column_names": ["y"]}]
if testing.requires.index_reflects_included_columns.enabled:
- expected[0]["include_columns"] = []
expected[0]["dialect_options"] = {"postgresql_include": []}
eq_(ind, expected)
}
]
if testing.requires.index_reflects_included_columns.enabled:
- expected[0]["include_columns"] = []
expected[0]["dialect_options"]["postgresql_include"] = []
eq_(ind, expected)
}
]
if testing.requires.index_reflects_included_columns.enabled:
- expected[0]["include_columns"] = []
expected[0]["dialect_options"]["postgresql_include"] = []
eq_(ind, expected)
m = MetaData()
}
]
if connection.dialect.server_version_info >= (11, 0):
- expected[0]["include_columns"] = []
expected[0]["dialect_options"]["postgresql_include"] = []
eq_(ind, expected)
"postgresql_nulls_not_distinct": True,
"postgresql_include": [],
},
- "include_columns": [],
},
{
"unique": True,
"postgresql_nulls_not_distinct": True,
"postgresql_include": [],
},
- "include_columns": [],
"duplicates_constraint": "unq1",
},
]
{
"unique": False,
"column_names": ["x"],
- "include_columns": ["name"],
"dialect_options": {"postgresql_include": ["name"]},
"name": "idx1",
},
"column_names": [None, None],
"expressions": ["lower(other)", "(id * id)"],
"unique": True,
- "include_columns": ["id"],
"dialect_options": {"postgresql_include": ["id"]},
},
{
"lower(aname::text)",
],
"unique": False,
- "include_columns": ["id", "x"],
"dialect_options": {"postgresql_include": ["id", "x"]},
"column_sorting": {
"other": ("desc", "nulls_last"),
}
]
if testing.requires.index_reflects_included_columns.enabled:
- expected[0]["include_columns"] = []
expected[0]["dialect_options"]["postgresql_include"] = []
eq_(insp.get_indexes("t"), expected)