gnormal / gnorm

A database-first code generator for any language
https://gnorm.org
Other
484 stars 39 forks source link

database/drives/postgres/parse.go::queryEnums query adds an enum per enum value rather than actual enum #143

Open oiime opened 2 years ago

oiime commented 2 years ago

The current query:

SELECT      n.nspname, t.typname as type
    FROM        pg_type t
    LEFT JOIN   pg_catalog.pg_namespace n ON n.oid = t.typnamespace
    JOIN        pg_enum e ON t.oid = e.enumtypid
    WHERE       (t.typrelid = 0 OR (SELECT c.relkind = 'c' FROM pg_catalog.pg_class c WHERE c.oid = t.typrelid))
    AND     NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type el WHERE el.oid = t.typelem AND el.typarray = t.oid)
    AND     n.nspname IN (%s)

Would add an entry per each enum value, not for each enum, causing duplication on generation, I'd like to make a PR replacing it with the following:

SELECT n.nspname, t.typname AS type
    FROM pg_type t 
    JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace 
    WHERE typtype='e'
    AND n.nspname IN (%s)

Would create a PR for that

oiime commented 2 years ago

@natefinch any chance to consider that? seems too minor to keep a fork for

natefinch commented 2 years ago

Ahh yeah, that looks good, thanks!