feat(data-grid): support manual reference display values

This commit is contained in:
zipg authored and GitHub committed 2026-08-23 01:38:50 +08:00
1 parent b74d49e982
commit 4a1f3e7141
24 files changed
+893 -90

No files matched your search

+14 -1
View File
@@ -2688,6 +2688,7 @@ fn sqlserver_indexes_sql_with_filter_definition(schema: &str, table: &str, inclu
} else {
"CAST(NULL AS NVARCHAR(MAX)) AS filter_definition"
};
let unfiltered_predicate = if include_filter_definition { " AND i.has_filter = 0" } else { "" };
let object_id = sqlserver_object_id_expression(schema, table);
format!(
"SELECT i.name, \
@@ -2697,7 +2698,7 @@ fn sqlserver_indexes_sql_with_filter_definition(schema: &str, table: &str, inclu
WHERE ic2.object_id = i.object_id AND ic2.index_id = i.index_id AND ic2.is_included_column = 0 \
ORDER BY ic2.key_ordinal \
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 1, '') AS columns, \
i.is_unique, i.is_primary_key, i.type_desc, \
CAST(CASE WHEN i.is_unique = 1 AND i.is_disabled = 0 AND i.is_hypothetical = 0{unfiltered_predicate} THEN 1 ELSE 0 END AS bit) AS is_unique, i.is_primary_key, i.type_desc, \
STUFF((SELECT ',' + c3.name \
FROM sys.index_columns ic3 \
JOIN sys.columns c3 ON ic3.object_id = c3.object_id AND ic3.column_id = c3.column_id \
@@ -3973,11 +3974,23 @@ mod tests {
assert!(sql.contains("MS_Description"));
}
#[test]
fn sqlserver_index_metadata_only_reports_usable_unique_indexes() {
let sql = sqlserver_indexes_sql("dbo", "orders");
assert!(sql.contains("i.has_filter = 0"));
for sql in [sql, sqlserver_legacy_indexes_sql("dbo", "orders")] {
assert!(sql.contains("i.is_unique = 1"));
assert!(sql.contains("i.is_disabled = 0"));
assert!(sql.contains("i.is_hypothetical = 0"));
}
}
#[test]
fn sqlserver_legacy_indexes_sql_omits_filtered_index_metadata() {
let sql = sqlserver_legacy_indexes_sql("dbo", "orders");
assert!(!sql.contains("i.filter_definition"));
assert!(!sql.contains("i.has_filter"));
assert!(sql.contains("CAST(NULL AS NVARCHAR(MAX)) AS filter_definition"));
assert!(sql.contains("ep.value AS index_comment"));
}