sqlc icon indicating copy to clipboard operation
sqlc copied to clipboard

public.vector doesn't emit pgvector.Vector

Open newhook opened this issue 1 year ago • 1 comments

Version

1.26.0

What happened?

My schema, generated from pg_dump, has:

embedding public.vector(1536)

This generates interface{} which won't scan correctly. Whereas

embedding vector(1536)

Generates pgvector.Vector which does.

Relevant log output

No response

Database schema

No response

SQL queries

No response

Configuration

No response

Playground URL

No response

What operating system are you using?

No response

What database engines are you using?

No response

What type of code are you generating?

No response

newhook avatar Aug 15 '24 14:08 newhook

Yeah, faced the same issue, change public.vector to vector works, also overriding it does not work in the sqlc

    gen:
      go:
        sql_package: "pgx/v5"
        out: "internal/database/models"
        package: "models"
        emit_db_tags: true
        emit_exported_queries: false
        emit_json_tags: true
        emit_prepared_queries: true
        emit_enum_valid_method: true
        emit_pointers_for_null_types: true
        emit_all_enum_values: true
        emit_sql_as_comment: true
        overrides:
          - db_type: "vector"
            go_type:
              import: "github.com/pgvector/pgvector-go"
              type: "pgvector.Vector"
              pointer: true

spa5k avatar Sep 19 '24 07:09 spa5k

same issue here, I can try fix it!

ludusrusso avatar Feb 25 '25 15:02 ludusrusso

were you able to find the fix? is it in internal/codegen/golang/postgresql_type.go? I see that its taking the case of "vector", maybe we can add another case for "public.vector"?

spa5k avatar Mar 03 '25 16:03 spa5k