No Overload Matches this call on insert
Hello, I get an error when I try to select to a table, Here is the error I get:
here is the function where I get the error:
│ E No overload matches this call. typescript (2769) [63, 5]
│ Overload 1 of 3, '(left: Column<ColumnBaseConfig<ColumnDataType, string>, object, object>, right: unknown): SQL<unknown>', gave the following error.
│ Argument of type 'number' is not assignable to parameter of type 'Column<ColumnBaseConfig<ColumnDataType, string>, object, object>'.
│ Overload 2 of 3, '(left: Aliased<SQLiteColumn<{ name: "userId"; tableName: "waitlists"; dataType: "number"; columnType: "SQLiteInteger"; data: number; driverParam: number; notNull: true; hasDefault: false; enumValues: undefined; baseColumn: never; }, object>>, right: SQLWrapper | SQLiteColumn<...>): SQL<...>', gave the following error.
│ Argument of type 'number' is not assignable to parameter of type 'Aliased<SQLiteColumn<{ name: "userId"; tableName: "waitlists"; dataType: "number"; columnType: "SQLiteInteger"; data: number; driverParam: number; notNull: true; hasDefault: false; enumValues: undefined; baseColumn: never; }, object>>'.
│ Overload 3 of 3, '(left: SQLWrapper, right: unknown): SQL<unknown>', gave the following error.
│ Argument of type 'number' is not assignable to parameter of type 'SQLWrapper'.
│ E No overload matches this call. typescript (2769) [63, 5]
│ Overload 1 of 3, '(left: Column<ColumnBaseConfig<ColumnDataType, string>, object, object>, right: unknown): SQL<unknown>', gave the following error.
│ Argument of type 'number' is not assignable to parameter of type 'Column<ColumnBaseConfig<ColumnDataType, string>, object, object>'.
│ Overload 2 of 3, '(left: Aliased<SQLiteColumn<{ name: "userId"; tableName: "waitlists"; dataType: "number"; columnType: "SQLiteInteger"; data: number; driverParam: number; notNull: true; hasDefault: false; enumValues: undefined; baseColumn: never; }, object>>, right: SQLWrapper | SQLiteColumn<...>): SQL<...>', gave the following error.
│ Argument of type 'number' is not assignable to parameter of type 'Aliased<SQLiteColumn<{ name: "userId"; tableName: "waitlists"; dataType: "number"; columnType: "SQLiteInteger"; data: number; driverParam: number; notNull: true; hasDefault: false; enumValues: undefined; baseColumn: never; }, object>>'.
│ Overload 3 of 3, '(left: SQLWrapper, right: unknown): SQL<unknown>', gave the following error.
│ Argument of type 'number' is not assignable to parameter of type 'SQLWrapper'.
export async function getWaitlists() {
const user = await getUser();
if (!user.clerkId) throw new Error("Unauthorized")
const result = await db.select().from(waitlists).where(eq(
user.id,
waitlists.userId
))
return result;
};
export async function getWaitlists() {
const user = await getUser();
if (!user.clerkId) throw new Error("Unauthorized")
const result = await db.select().from(waitlists).where(eq(
user.id,
waitlists.userId
))
return result;
};
5 Replies
I am getting it on the user.id line. Here is my user and waitlist schema:
Here is my getUser function:
export const users = sqliteTable("users", {
id: integer("id").primaryKey().notNull().unique(),
clerkId: text("clerkId").notNull().unique(),
email: text("email").notNull(),
tier: text("tier", { enum: ["free", "pro", "enterprise"] }).default("free"),
firstName: text("firstName").notNull(),
numWaitlists: integer("numWaitlists"),
createdAt: text("created_at").default(sql`CURRENT_TIMESTAMP`),
});
export const users = sqliteTable("users", {
id: integer("id").primaryKey().notNull().unique(),
clerkId: text("clerkId").notNull().unique(),
email: text("email").notNull(),
tier: text("tier", { enum: ["free", "pro", "enterprise"] }).default("free"),
firstName: text("firstName").notNull(),
numWaitlists: integer("numWaitlists"),
createdAt: text("created_at").default(sql`CURRENT_TIMESTAMP`),
});
export const waitlists = sqliteTable("waitlists", {
id: integer("id").primaryKey().notNull().unique(),
userId: integer("userId")
.notNull()
.references(() => users.id),
limit: integer("limit"),
count: integer("count").default(0),
createdAt: text("created_at").default(sql`CURRENT_TIMESTAMP`),
updatedAt: text("updated_at").default(sql`CURRENT_TIMESTAMP`).$onUpdate(() => sql`CURRENT_TIMESTAMP`),
title: text("title").notNull(),
color: text("color"),
video: text("video"),
copy: text("copy").notNull()
});
export const waitlists = sqliteTable("waitlists", {
id: integer("id").primaryKey().notNull().unique(),
userId: integer("userId")
.notNull()
.references(() => users.id),
limit: integer("limit"),
count: integer("count").default(0),
createdAt: text("created_at").default(sql`CURRENT_TIMESTAMP`),
updatedAt: text("updated_at").default(sql`CURRENT_TIMESTAMP`).$onUpdate(() => sql`CURRENT_TIMESTAMP`),
title: text("title").notNull(),
color: text("color"),
video: text("video"),
copy: text("copy").notNull()
});
export async function getUser() {
const user = auth()
if (!user.userId) throw new Error("Unauthorized")
const clerkId = user.userId;
console.log("here")
const result = await db.select().from(users).where(eq(users.clerkId, clerkId));
console.log(result[0])
return result[0]
}
export async function getUser() {
const user = auth()
if (!user.userId) throw new Error("Unauthorized")
const clerkId = user.userId;
console.log("here")
const result = await db.select().from(users).where(eq(users.clerkId, clerkId));
console.log(result[0])
return result[0]
}
Is the error on an insert or a select?
it is on a select
yeah sorry I said insert, its actually on a select, I changed just edited the original message
What happens if you swap the order of the parameters your are passing to the eq function?
that removed the error, thanks! I was also getting it for another field and I tried swapping it around too but it didnt fix it so I just casted it as any.