Executing (default): SELECT
CASE WHEN (seq.sequence_name IS NOT NULL) THEN TRUE ELSE FALSE END AS is_sequence,
EXISTS( -- primary key
SELECT
x.indisprimary
FROM pg_attribute a
LEFT OUTER JOIN pg_index x
ON a.attnum = ANY (x.indkey) AND a.attrelid = x.indrelid
- WHERE a.attrelid = 'public.Artist'::regclass AND a.attnum > 0
+ WHERE a.attrelid = 'public."Artist"'::regclass AND a.attnum > 0
AND c.ordinal_position = a.attnum AND x.indisprimary IS TRUE
) AS is_primary,
c.*,
pgd.description
FROM information_schema.columns c
INNER JOIN pg_catalog.pg_statio_all_tables as st
ON c.table_schema = st.schemaname AND c.table_name = st.relname
LEFT OUTER JOIN pg_catalog.pg_description pgd
ON pgd.objoid = st.relid AND pgd.objsubid = c.ordinal_position
LEFT OUTER JOIN ( -- Sequences (auto increment) metadata
SELECT seqclass.relname AS sequence_name,
pn.nspname AS schema_name,
depclass.relname AS table_name,
attrib.attname AS column_name
FROM pg_class AS seqclass
JOIN pg_sequence AS seq
ON (seq.seqrelid = seqclass.relfilenode)
JOIN pg_depend AS dep
ON (seq.seqrelid = dep.objid)
JOIN pg_class AS depclass
ON (dep.refobjid = depclass.relfilenode)
JOIN pg_attribute AS attrib
ON (attrib.attnum = dep.refobjsubid AND attrib.attrelid = dep.refobjid)
JOIN pg_namespace pn
ON seqclass.relnamespace = pn.oid
WHERE pn.nspname = 'public' AND depclass.relname = 'Artist'
) seq
ON c.table_schema = seq.schema_name AND c.table_name = seq.table_name AND
c.column_name = seq.column_name
WHERE c.table_schema = 'public' AND c.table_name = 'Artist'
ORDER BY c.ordinal_position;
DatabaseError [SequelizeDatabaseError]: relation "public.artist" does not exist
at Query.formatError (/xxx/node_modules/.pnpm/sequelize@6.6.2_pg@8.6.0/node_modules/sequelize/lib/dialects/postgres/query.js:386:16)
at Query.run (/xxx/node_modules/.pnpm/sequelize@6.6.2_pg@8.6.0/node_modules/sequelize/lib/dialects/postgres/query.js:87:18)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at /xxx/node_modules/.pnpm/sequelize@6.6.2_pg@8.6.0/node_modules/sequelize/lib/sequelize.js:619:16
at DialectPostgres.fetchColumnsMetadata (/xxx/node_modules/.pnpm/sequelize-typescript-generator@5.0.1_pg@8.6.0+reflect-metadata@0.1.13/node_modules/sequelize-typescript-generator/build/dialects/DialectPostgres.js:186:25)
at DialectPostgres.buildTablesMetadata (/xxx/node_modules/.pnpm/sequelize-typescript-generator@5.0.1_pg@8.6.0+reflect-metadata@0.1.13/node_modules/sequelize-typescript-generator/build/dialects/Dialect.js:48:41)
at ModelBuilder.build (/xxx/node_modules/.pnpm/sequelize-typescript-generator@5.0.1_pg@8.6.0+reflect-metadata@0.1.13/node_modules/sequelize-typescript-generator/build/builders/ModelBuilder.js:208:32)
at generateEntities (/xxx/xxx/groups/typescript-orm-benchmarks/packages/orm/sequelize-typescript/src/scripts/generate-entities.ts:44:5)
at Object.cli (/xxx/xxx/groups/typescript-orm-benchmarks/packages/orm/sequelize-typescript/src/scripts/generate-entities.ts:12:3) {
I am using the chinook database that uses table names starting with uppercase letters.
They need to be escaped when cast as an object identifier here: