- Notifications
You must be signed in to change notification settings - Fork 954
Closed
Closed
Copy link
Labels
Description
Version
1.27.0
What happened?
Sqlc not binding Postgres function's table type returning to a struct, it is directly binding into an interface{}
type as an array.
Relevant log output
[5 2024-10-07 17:42:57.801246 +0530 IST 2024-10-07 17:42:57.801246 +0530 IST]
Database schema
CREATE TABLE IF NOT EXISTS public.users ( id bigserial NOT NULL, phone text , created_at timestamp with time zone, updated_at timestamp with time zone, CONSTRAINT users_pkey PRIMARY KEY (id) ) CREATE OR REPLACE FUNCTION public.fn_authrepo_create_user( var_phone text, var_created_at timestamp with time zone, var_updated_at timestamp with time zone) RETURNS TABLE(user_id BIGINT, created_at timestamp with time zone, updated_at timestamp with time zone) LANGUAGE 'plpgsql' COST 100 VOLATILE PARALLEL UNSAFE AS $BODY$ DECLARE v_user_id BIGINT; v_created_at TIMESTAMPTZ; v_updated_at TIMESTAMPTZ; BEGIN INSERT INTO users (phone, created_at, updated_at) VALUES (var_phone, var_created_at, var_updated_at) RETURNING users.id, users.created_at, users.updated_at INTO v_user_id, v_created_at, v_updated_at; RETURN QUERY SELECT v_user_id, v_created_at, v_updated_at; END; $BODY$;
SQL queries
-- name: CreateUser :one SELECT * FROM fn_authrepo_create_user($1, $2, $3);
Configuration
version: "2" cloud: project: "<PROJECT_ID>" sql: - schema: "migrations/authdb/schema/*.sql" queries: "migrations/authdb/queries/*.sql" engine: "postgresql" gen: go: package: "authdb" out: "internal/repository/authrepo/authdb" sql_package: "pgx/v5" emit_sql_as_comment: true emit_interface: true emit_prepared_queries: true
Playground URL
https://play.sqlc.dev/p/149e4929dbc625971466f68f4c1178337f2d4fb6e6168104aa2a007ff8f2f807
What operating system are you using?
Linux
What database engines are you using?
PostgreSQL
What type of code are you generating?
Go