fix(kingbase): use connection identifier quotes in MySQL mode

This commit is contained in:
zipg authored and GitHub committed 2026-07-16 15:20:41 +08:00
1 parent e226a5670e
commit 36d8fabc8f
10 files changed
+284 -32

No files matched your search

@@ -855,6 +855,7 @@ async function loadServerFilterValues(columnIndex: number, searchValue: string)
const columnInfo = tableMeta.columns.find((column) => column.name === columnName);
const sql = await buildDataGridColumnDistinctValuesSql({
databaseType: resolvedDatabaseType.value,
identifierQuote: connectionStore.connectionIdentifierQuote?.(props.connectionId),
catalog: tableMeta.catalog,
database: tableMeta.database,
schema: tableMeta.schema,
@@ -1179,6 +1180,7 @@ async function applyServerColumnFilter(draft: LocalColumnFilterDraft) {
}
const condition = await buildColumnValuesFilterCondition({
databaseType: resolvedDatabaseType.value,
identifierQuote: connectionStore.connectionIdentifierQuote?.(props.connectionId),
columnName,
columnInfo: props.tableMeta?.columns.find((column) => column.name === columnName),
values,
@@ -1209,6 +1211,7 @@ async function applyTypedLocalFilterValue() {
const columnInfo = props.tableMeta?.columns.find((column) => column.name === columnName);
const condition = await buildColumnValueFilterCondition({
databaseType: resolvedDatabaseType.value,
identifierQuote: connectionStore.connectionIdentifierQuote?.(props.connectionId),
columnName,
columnInfo,
rawValue: localFilterTypedValue.value,
@@ -1301,6 +1304,7 @@ async function buildStructuredWhereFromRules(rules: StructuredFilterRule[]): Pro
condition:
(await buildDataGridContextFilterCondition({
databaseType: resolvedDatabaseType.value,
identifierQuote: connectionStore.connectionIdentifierQuote?.(props.connectionId),
columnName: rule.columnName,
columnInfo,
mode: rule.mode,
@@ -3682,6 +3686,7 @@ async function prefetchDetailSqlCondition() {
try {
const condition = await buildDataGridContextFilterCondition({
databaseType: resolvedDatabaseType.value,
identifierQuote: connectionStore.connectionIdentifierQuote?.(props.connectionId),
columnName: detail.column,
columnInfo: props.tableMeta?.columns.find((column) => column.name === detail.column),
mode: "equals",
@@ -3977,6 +3982,7 @@ async function contextFilterCondition(mode: FilterMode): Promise<string | null>
return (
(await buildDataGridContextFilterCondition({
databaseType: resolvedDatabaseType.value,
identifierQuote: connectionStore.connectionIdentifierQuote?.(props.connectionId),
columnName: contextColumn.value,
columnInfo: props.tableMeta?.columns.find((column) => column.name === contextColumn.value),
mode,
@@ -1088,6 +1088,7 @@ export function useDataGridEditor(options: UseDataGridEditorOptions) {
if (!tableMeta.value) return null;
return {
databaseType: resolvedDatabaseType.value,
identifierQuote: connectionStore.connectionIdentifierQuote?.(connectionId.value),
tableMeta: tableMeta.value,
columns: result.value.columns,
sourceColumns: sourceColumns.value,
@@ -3,9 +3,10 @@ import type { DataGridColumnInfo, DataGridContextFilterMode, GridCellValue } fro
import { buildDataGridColumnValueFilterCondition, buildDataGridColumnValuesFilterCondition } from "@/lib/dataGrid/dataGridSql";
import { normalizeWhereInput } from "@/lib/table/tableSelectSql";
export function buildColumnValueFilterCondition(options: { databaseType?: DatabaseType; columnName: string; columnInfo?: Pick<ColumnInfo, "data_type">; rawValue: string }): Promise<string | undefined> {
export function buildColumnValueFilterCondition(options: { databaseType?: DatabaseType; identifierQuote?: string; columnName: string; columnInfo?: Pick<ColumnInfo, "data_type">; rawValue: string }): Promise<string | undefined> {
return buildDataGridColumnValueFilterCondition({
databaseType: options.databaseType,
identifierQuote: options.identifierQuote,
columnName: options.columnName,
columnInfo: options.columnInfo
? {
@@ -18,9 +19,10 @@ export function buildColumnValueFilterCondition(options: { databaseType?: Databa
});
}
export function buildColumnValuesFilterCondition(options: { databaseType?: DatabaseType; columnName: string; columnInfo?: Pick<ColumnInfo, "data_type">; values: GridCellValue[] }): Promise<string | undefined> {
export function buildColumnValuesFilterCondition(options: { databaseType?: DatabaseType; identifierQuote?: string; columnName: string; columnInfo?: Pick<ColumnInfo, "data_type">; values: GridCellValue[] }): Promise<string | undefined> {
return buildDataGridColumnValuesFilterCondition({
databaseType: options.databaseType,
identifierQuote: options.identifierQuote,
columnName: options.columnName,
columnInfo: options.columnInfo
? {
@@ -23,6 +23,7 @@ export interface DataGridColumnInfo {
export interface DataGridSaveStatementOptions {
databaseType?: DatabaseType;
identifierQuote?: string;
tableMeta: DataGridTableMeta;
columns: string[];
sourceColumns?: Array<string | undefined>;
@@ -57,6 +58,7 @@ export type DataGridContextFilterMode = "equals" | "not-equals" | "is-null" | "i
export interface DataGridContextFilterConditionOptions {
databaseType?: DatabaseType;
identifierQuote?: string;
columnName: string;
mode: DataGridContextFilterMode;
value: GridCellValue;
@@ -67,6 +69,7 @@ export interface DataGridContextFilterConditionOptions {
export interface DataGridColumnValueFilterConditionOptions {
databaseType?: DatabaseType;
identifierQuote?: string;
columnName: string;
columnInfo?: DataGridColumnInfo;
rawValue: string;
@@ -74,6 +77,7 @@ export interface DataGridColumnValueFilterConditionOptions {
export interface DataGridColumnValuesFilterConditionOptions {
databaseType?: DatabaseType;
identifierQuote?: string;
columnName: string;
columnInfo?: DataGridColumnInfo;
values: GridCellValue[];
@@ -81,6 +85,7 @@ export interface DataGridColumnValuesFilterConditionOptions {
export interface DataGridColumnDistinctValuesSqlOptions {
databaseType?: DatabaseType;
identifierQuote?: string;
catalog?: string;
database?: string;
schema?: string;