Skip to content

Commit c9b992e

Browse files
committed
docs: add comments explaining why VectorFilter exists for pgvector columns
VectorFilter provides equality/distinct operators for vector columns on Filter types. While similarity search is done via condition types (embeddingNearby), connection-filter may still auto-generate a filter for vector columns. Without this mapping, those fields would be silently omitted from the generated SDK.
1 parent 1588296 commit c9b992e

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

graphql/codegen/src/core/codegen/orm/input-types-generator.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,10 @@ const SCALAR_FILTER_CONFIGS: ScalarFilterConfig[] = [
322322
operators: ['equality', 'distinct', 'inArray', 'comparison', 'inet'],
323323
},
324324
{ name: 'FullTextFilter', tsType: 'string', operators: ['fulltext'] },
325-
// Vector filter (for pgvector embedding fields)
325+
// VectorFilter: equality/distinct operators for vector columns on Filter types.
326+
// Similarity search uses condition types (embeddingNearby), not filters, but
327+
// connection-filter may still generate a filter for vector columns. This ensures
328+
// the generated type uses number[] rather than being silently omitted.
326329
{ name: 'VectorFilter', tsType: 'number[]', operators: ['equality', 'distinct'] },
327330
// List filters (for array fields like string[], int[], uuid[])
328331
{

graphql/codegen/src/core/codegen/scalars.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export const SCALAR_TS_MAP: Record<string, string> = {
3939
TsVector: 'string',
4040
TsQuery: 'string',
4141

42-
// Vector types (pgvector)
42+
// Vector types (pgvector) — serialized as [Float] in GraphQL
4343
Vector: 'number[]',
4444

4545
// File upload
@@ -61,6 +61,11 @@ export const SCALAR_FILTER_MAP: Record<string, string> = {
6161
BigFloat: 'BigFloatFilter',
6262
BitString: 'BitStringFilter',
6363
InternetAddress: 'InternetAddressFilter',
64+
// VectorFilter provides equality/distinct operators (isNull, equalTo, etc.) for vector
65+
// columns on Filter types. While similarity search is done via condition types
66+
// (e.g., embeddingNearby on ContactCondition), postgraphile-plugin-connection-filter
67+
// may still auto-generate a filter type for vector columns. Without this mapping,
68+
// those fields would be silently omitted from the generated SDK.
6469
Vector: 'VectorFilter',
6570
FullText: 'FullTextFilter',
6671
Interval: 'StringFilter',

0 commit comments

Comments
 (0)