sqlc-dev / sqlc-gen-typescript

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Generated insert method takes in string but returns integer

woowenjun99 opened this issue · comments

  • In my table, I have a field that is of type INTEGER.
  • When I generate the code that takes in the field to be inserted into the database, I need to specify it as a string.
  • Upon INSERT, the value is inserted into the database as a number.
  • My SQLC command for the insert expects a return :one and the same field returns an integer.

Example

-- name: CreateOne :one
INSERT INTO table (something) VALUES ($1) RETURN *;

The function createOne is generated, but the type for something field during insert is incorrect (in this case a string rather than an integer). However, the return type is a number which is correct.

Even though it is not a big issue, it causes some inconvenience.

Can you try casting $1 to text? I think this will give you the string input type you're looking for.

-- name: CreateOne :one

INSERT INTO table (something) VALUES ($1::text) RETURN *;

Thanks for the quick reply! My schema looks something like this:

CREATE TABLE "products" (
    "id" TEXT NOT NULL,
    "quantity" INTEGER NOT NULL,

    CONSTRAINT "products_pkey" PRIMARY KEY ("id")
);

What was generated looks something like this:

export interface CreateProductArgs {
    id: string;
    quantity: string;
}

export interface CreateProductRow {
    id: string;
    quantity: number;
}

Not sure if the typing is intended

@woowenjun99 Thanks for providing your schema. I misunderstood the issue at first but have now reproduced it locally.

Can you confirm that things are now working with 0.1.2?

version: '2'
plugins:
- name: ts
  wasm:
    url: https://downloads.sqlc.dev/plugin/sqlc-gen-typescript_0.1.2.wasm
    sha256: f8b59cdd78b35fae157a95c5813cb09b1ebdd9a31acf2d7015465539986ccd2b

Hi yeap it seems to be working! TYSM