diff --git a/packages/cli/src/context/scan/relationship-benchmarks.ts b/packages/cli/src/context/scan/relationship-benchmarks.ts index f4367b5a..a07221a3 100644 --- a/packages/cli/src/context/scan/relationship-benchmarks.ts +++ b/packages/cli/src/context/scan/relationship-benchmarks.ts @@ -6,6 +6,7 @@ import { gunzipSync } from 'node:zlib'; import Database from 'better-sqlite3'; import YAML from 'yaml'; import { z } from 'zod'; +import { getDialectForDriver } from '../connections/dialects.js'; import type { KtxLlmRuntimePort } from '../llm/runtime-port.js'; import type { KtxEnrichedRelationship, KtxEnrichedSchema, KtxRelationshipType } from './enrichment-types.js'; import { snapshotToKtxEnrichedSchema } from './local-enrichment.js'; @@ -536,6 +537,7 @@ export function ktxRelationshipBenchmarkDetectorWithLlm( const formalLinks = formalMetadata.accepted.map((relationship) => relationshipToBenchmarkLink(relationship)); const acceptedKeys = new Set(formalLinks.map(fkKey)); const sqliteDataAvailable = Boolean(input.dataPath && input.snapshot.driver === 'sqlite'); + const dialect = getDialectForDriver(input.snapshot.driver); const profilingExecutor = sqliteDataAvailable && input.mode !== 'profiling_disabled' ? new KtxRelationshipBenchmarkSqliteExecutor(input.dataPath as string) @@ -550,7 +552,7 @@ export function ktxRelationshipBenchmarkDetectorWithLlm( }) : await profileKtxRelationshipSchema({ connectionId: input.snapshot.connectionId, - driver: input.snapshot.driver, + dialect, schema: input.schema, executor: profilingExecutor, ctx: { runId: `relationship-benchmark:${input.fixtureId}:${input.mode}:profile` }, @@ -580,7 +582,7 @@ export function ktxRelationshipBenchmarkDetectorWithLlm( : Math.max(0, input.validationBudget - profiles.queryCount); const validatedBroadCandidates = await validateKtxRelationshipDiscoveryCandidates({ connectionId: input.snapshot.connectionId, - driver: input.snapshot.driver, + dialect, candidates, profiles, executor: validationExecutor, @@ -597,7 +599,7 @@ export function ktxRelationshipBenchmarkDetectorWithLlm( input.mode !== 'validation_disabled' ? await discoverKtxCompositeRelationships({ connectionId: input.snapshot.connectionId, - driver: input.snapshot.driver, + dialect, schema: input.schema, profiles, executor: validationExecutor, @@ -671,6 +673,7 @@ export function currentKtxRelationshipBenchmarkDetector(): KtxRelationshipBenchm const formalLinks = formalMetadata.accepted.map((relationship) => relationshipToBenchmarkLink(relationship)); const acceptedKeys = new Set(formalLinks.map(fkKey)); const sqliteDataAvailable = Boolean(input.dataPath && input.snapshot.driver === 'sqlite'); + const dialect = getDialectForDriver(input.snapshot.driver); const profilingExecutor = sqliteDataAvailable && input.mode !== 'profiling_disabled' ? new KtxRelationshipBenchmarkSqliteExecutor(input.dataPath as string) @@ -685,7 +688,7 @@ export function currentKtxRelationshipBenchmarkDetector(): KtxRelationshipBenchm }) : await profileKtxRelationshipSchema({ connectionId: input.snapshot.connectionId, - driver: input.snapshot.driver, + dialect, schema: input.schema, executor: profilingExecutor, ctx: { runId: `relationship-benchmark:${input.fixtureId}:${input.mode}:profile` }, @@ -702,7 +705,7 @@ export function currentKtxRelationshipBenchmarkDetector(): KtxRelationshipBenchm : Math.max(0, input.validationBudget - profiles.queryCount); const validatedBroadCandidates = await validateKtxRelationshipDiscoveryCandidates({ connectionId: input.snapshot.connectionId, - driver: input.snapshot.driver, + dialect, candidates: broadRelationshipCandidates, profiles, executor: validationExecutor, @@ -719,7 +722,7 @@ export function currentKtxRelationshipBenchmarkDetector(): KtxRelationshipBenchm input.mode !== 'validation_disabled' ? await discoverKtxCompositeRelationships({ connectionId: input.snapshot.connectionId, - driver: input.snapshot.driver, + dialect, schema: input.schema, profiles, executor: validationExecutor,