Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Incorrect Go type generated for nullable PostgreSQL enum columns #3969

Closed
@cozyCodr

Description

Version

1.29.0

What happened?

When a PostgreSQL enum column is defined as nullable (i.e., without the NOT NULL constraint), sqlc generates interface{} instead of the configured go_type from the overrides section in sqlc.yaml. This occurs even when a go_type override is specified for that enum type.

Expected Behavior:

sqlc should respect the go_type override in sqlc.yaml even when the database column is nullable. In this example, sqlc should generate the EnumCol field with type string.

Current Behavior:

sqlc generates the EnumCol field with type interface{} when the database column is nullable.

Relevant log output

Database schema

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
DO $$
BEGIN
 IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'my_enum') THEN
 CREATE TYPE my_enum AS ENUM ('value1', 'value2');
 END IF;
END
$$;
CREATE TABLE my_table (
 id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
 enum_col my_enum DEFAULT 'value1' -- Note: No NOT NULL constraint
);

SQL queries

Configuration

version: "2"
sql:
 - engine: "postgresql"
 queries: "./db/query/"
 schema: "./db/migration/"
 gen:
 go:
 package: "db"
 out: "./db/sqlc"
 emit_json_tags: true
 overrides:
 - db_type: "my_enum"
 go_type: "string"

Playground URL

Playground URL

What operating system are you using?

Windows

What database engines are you using?

PostgreSQL

What type of code are you generating?

Go

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /