@@ -1,4 +1,4 @@
|
||||
import { and, desc, eq, inArray, isNull, or, sql } from "drizzle-orm";
|
||||
import { and, arrayContains, desc, eq, inArray, isNull, or } from "drizzle-orm";
|
||||
import { db } from "@/lib/db/client";
|
||||
import {
|
||||
memories,
|
||||
@@ -465,7 +465,13 @@ const memoryList: ToolDef = {
|
||||
}
|
||||
|
||||
if (parsed.data.tags && parsed.data.tags.length > 0) {
|
||||
where.push(sql`${memories.tags} @> ${parsed.data.tags}::text[]`);
|
||||
// Require ALL listed tags (array containment). Use Drizzle's
|
||||
// arrayContains so the JS array binds as a single text[] param
|
||||
// (via the column's toDriver) rather than being expanded into
|
||||
// positional params — a raw `${tags}::text[]` template expands to
|
||||
// `($1)::text[]` / `($1,$2)::text[]`, which Postgres rejects as a
|
||||
// malformed array literal / record cast.
|
||||
where.push(arrayContains(memories.tags, parsed.data.tags));
|
||||
}
|
||||
|
||||
const rows = await db
|
||||
|
||||
Reference in New Issue
Block a user