diff --git a/packages/cli/src/context/scan/description-generation.ts b/packages/cli/src/context/scan/description-generation.ts index 4526215d..640ae1a6 100644 --- a/packages/cli/src/context/scan/description-generation.ts +++ b/packages/cli/src/context/scan/description-generation.ts @@ -463,11 +463,11 @@ export class KtxDescriptionGenerator { } } - const sampleTable = input.connector.sampleTable; + const connector = input.connector; let sampleData: KtxTableSampleResult | null = null; let fallbackReason: 'capability_missing' | 'sampling_failed' | 'empty_sample' | null = null; - if (!sampleTable) { + if (!connector.sampleTable) { fallbackReason = 'capability_missing'; this.logger?.warn('KTX scan connector does not support table sampling; falling back to metadata-only prompt', { connectorId: input.connector.id, @@ -484,7 +484,7 @@ export class KtxDescriptionGenerator { try { sampleData = await retryAsync( () => - sampleTable( + connector.sampleTable!( { connectionId: input.connectionId, table: tableRef, @@ -684,11 +684,11 @@ export class KtxDescriptionGenerator { }); columnValues = []; } else { - const sampleColumn = input.connector.sampleColumn; + const connector = input.connector; try { const sample = await retryAsync( () => - sampleColumn( + connector.sampleColumn!( { connectionId: input.connectionId, table: tableRef, diff --git a/packages/cli/src/context/scan/relationship-profiling.ts b/packages/cli/src/context/scan/relationship-profiling.ts index 2172ac24..77f1c38d 100644 --- a/packages/cli/src/context/scan/relationship-profiling.ts +++ b/packages/cli/src/context/scan/relationship-profiling.ts @@ -227,6 +227,9 @@ function sampleAggregateSql(driver: KtxConnectionDriver, innerSql: string): stri if (driver === 'clickhouse') { return `(SELECT arrayStringConcat(groupArray(toString(value)), '\\x1F') FROM (${innerSql}) AS relationship_profile_values)`; } + if (driver === 'snowflake') { + return `(SELECT LISTAGG(CAST(value AS VARCHAR), '\\x1f') FROM (${innerSql}) AS relationship_profile_values)`; + } return `(SELECT GROUP_CONCAT(CAST(value AS TEXT), char(31)) FROM (${innerSql}) AS relationship_profile_values)`; }