fix(sql): preserve database quoting in star expansion

Closes #6247
This commit is contained in:
t8y2 committed 2026-08-14 14:14:28 +00:00
1 parent b9e63dc57e
commit c5eea21821
2 files changed
+33 -6

No files matched your search

+6 -6
View File
@@ -1433,7 +1433,7 @@ class SqlCompletionProvider {
if (!context.exclusiveTableSuggestions && context.suggestColumns) {
this.items.push(...buildColumnItems(context, this.input.columnsByTable, this.dialect));
this.items.push(...buildSelectAllColumnItems(context, this.input.columnsByTable, this.t, this.dialect));
this.items.push(...buildSelectAllColumnItems(context, this.input.columnsByTable, this.t, this.dialect, this.databaseType));
this.items.push(...buildInsertAllColumnItems(context, this.input.columnsByTable, this.t, this.dialect, this.input.keywordCase));
}
@@ -1466,7 +1466,7 @@ class SqlCompletionProvider {
}
if (context.onStar) {
const starItem = buildStarExpansionItem(context, this.input.columnsByTable, this.t, this.dialect);
const starItem = buildStarExpansionItem(context, this.input.columnsByTable, this.t, this.dialect, this.databaseType);
if (starItem) this.items.push(starItem);
}
@@ -3518,8 +3518,8 @@ export function buildSelectStarExpansion(context: SqlCompletionContext, columnsB
.join(", ");
}
function buildStarExpansionItem(context: SqlCompletionContext, columnsByTable: Map<string, SqlCompletionColumn[]>, t?: SqlCompletionTranslations, dialect?: "mysql" | "postgres" | "sqlserver"): SqlCompletionItem | null {
const expansion = buildSelectStarExpansion(context, columnsByTable, dialect);
function buildStarExpansionItem(context: SqlCompletionContext, columnsByTable: Map<string, SqlCompletionColumn[]>, t?: SqlCompletionTranslations, dialect?: "mysql" | "postgres" | "sqlserver", databaseType?: DatabaseType): SqlCompletionItem | null {
const expansion = buildSelectStarExpansion(context, columnsByTable, dialect, context.qualifier, databaseType);
if (!expansion) return null;
const columnCount = selectStarExpansionColumns(context, columnsByTable).length;
return {
@@ -3531,7 +3531,7 @@ function buildStarExpansionItem(context: SqlCompletionContext, columnsByTable: M
};
}
function buildSelectAllColumnItems(context: SqlCompletionContext, columnsByTable: Map<string, SqlCompletionColumn[]>, t?: SqlCompletionTranslations, dialect?: "mysql" | "postgres" | "sqlserver"): SqlCompletionItem[] {
function buildSelectAllColumnItems(context: SqlCompletionContext, columnsByTable: Map<string, SqlCompletionColumn[]>, t?: SqlCompletionTranslations, dialect?: "mysql" | "postgres" | "sqlserver", databaseType?: DatabaseType): SqlCompletionItem[] {
if (!context.selectListColumnContext || context.statementKind !== "select" || context.onStar || context.referencedTables.length === 0) {
return [];
}
@@ -3554,7 +3554,7 @@ function buildSelectAllColumnItems(context: SqlCompletionContext, columnsByTable
if (!selectAllColumnItemMatchesPrefix(label, ref, columns, context.prefix)) continue;
const qualifier = context.qualifier || ref.alias || (shouldQualify ? quoteCompletionApplyIdentifier(ref.name, dialect) : undefined);
const expansion = buildSelectAllColumnExpansion(columns, qualifier, !!context.qualifier, dialect);
const expansion = buildSelectAllColumnExpansion(columns, qualifier, !!context.qualifier, dialect, databaseType);
const countText = (t?.starExpansionColumns ?? "{count} columns").replace("{count}", String(columns.length));
items.push({
label,