https://github.com/skalt/pg_inventory
pg_catalog queries
https://github.com/skalt/pg_inventory
database hacktoberfest postgres postgresql sql
Last synced: 12 days ago
JSON representation
pg_catalog queries
- Host: GitHub
- URL: https://github.com/skalt/pg_inventory
- Owner: SKalt
- License: apache-2.0
- Created: 2022-08-16T00:35:14.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-07T13:58:06.000Z (about 3 years ago)
- Last Synced: 2025-02-07T14:44:49.493Z (about 1 year ago)
- Topics: database, hacktoberfest, postgres, postgresql, sql
- Language: PLpgSQL
- Homepage:
- Size: 1.56 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# pg_inventory
pg_catalog queries
This contains SQL long-form queries generated from Go templates.
Each SQL query is tested against a number of example databases.
### Directory structure
```
.
├── pkg
│ └── internal
│ └── test/*.go
├── scripts
│ ├── */*.go
│ └── *.sh
├── bin/*
├── sample_dbs/*.dump.sql
├── db_object_kinds/${kind}
│ ├── ${template_name}.sql.tpl
│ ├── ${template_name}.params.toml
│ └── ${query_name}
│ ├── query.sql
│ └── tests/${sample_db_name}/${test_case_name}
│ ├── params.toml
│ ├── explain.yaml
│ └── results.tsv
├── Makefile
└── README.md
```
#### Naming Conventions
1. queries named like `${thing}_normalized/query.sql` preserve `oid`s, while queries named like `${thing}_denormalized/query.sql` join other catalogs for object names and do not contain any oids. This is important for testing, since `oid`s aren't stable across different instantiations of the same schema in a fresh server.
2. `pg_namespace` is always joined `AS ns` and referenced as `ns.nspname AS schema_name`.
3. comments are always fetched `AS "comment"`.
### Database Object Kinds
- [x] [ACCESS_METHOD](./db_object_kind/ACCESS_METHOD/)
- [x] [AGGREGATE](./db_object_kind/AGGREGATE/)
- [x] [CAST](./db_object_kind/CAST/)
- [x] [COLLATION](./db_object_kind/COLLATION/)
- [x] [COLUMN](./db_object_kind/COLUMN/README.md)
- [x] [CONSTRAINT](./db_object_kind/CONSTRAINT/)
- [x] [CONVERSION](./db_object_kind/CONVERSION/)
- [x] [DATABASE](./db_object_kind/DATABASE/)
- [x] [DOMAIN](./db_object_kind/TYPE/)
- [x] [ENUM](./db_object_kind/TYPE/)
- [x] [EVENT_TRIGGER](./db_object_kind/EVENT_TRIGGER/)
- [x] [EXTENSION](./db_object_kind/EXTENSION/)
- [x] [FOREIGN_DATA_WRAPPER](./db_object_kind/FOREIGN_DATA_WRAPPER/)
- [x] [FOREIGN_TABLE](./db_object_kind/FOREIGN_TABLE/)
- [x] [FUNCTION](./db_object_kind/PROCEDURE/)
- [x] [INDEX](./db_object_kind/INDEX/)
- [x] [LANGUAGE](./db_object_kind/LANGUAGE/)
- [x] [MATERIALIZED_VIEW](./db_object_kind/MATERIALIZED_VIEW/)
- [x] [OPERATOR](./db_object_kind/OPERATOR/)
- [x] [OPERATOR_CLASS](./db_object_kind/OPERATOR_CLASS/)
- [x] [OPERATOR_FAMILY](./db_object_kind/OPERATOR_FAMILY/)
- [x] [POLICY](./db_object_kind/POLICY/)
- [x] [PROCEDURE](./db_object_kind/PROCEDURE/)
- [ ] [PUBLICATION](./db_object_kind/PUBLICATION/)
- [x] [ROLE](./db_object_kind/ROLE/)
- [x] [RULE](./db_object_kind/RULE/)
- [x] [SCHEMA](./db_object_kind/SCHEMA/)
- [x] [SEQUENCE](./db_object_kind/SEQUENCE/)
- [x] [SERVER](./db_object_kind/SERVER/)
- [ ] [STATISTICS](./db_object_kind/STATISTICS/)
- [ ] [SUBSCRIPTION](./db_object_kind/SUBSCRIPTION/)
- [x] [TABLE](./db_object_kind/TABLE/)
- [x] [TABLESPACE](./db_object_kind/TABLESPACE/)
- [ ] [TEXT_SEARCH_CONFIGURATION](./db_object_kind/TEXT_SEARCH_CONFIGURATION/)
- [ ] [TEXT_SEARCH_DICTIONARY](./db_object_kind/TEXT_SEARCH_DICTIONARY/)
- [ ] [TEXT_SEARCH_PARSER](./db_object_kind/TEXT_SEARCH_PARSER/)
- [ ] [TEXT_SEARCH_TEMPLATE](./db_object_kind/TEXT_SEARCH_TEMPLATE/)
- [ ] [TRANSFORM](./db_object_kind/TRANSFORM/)
- [x] [TRIGGER](./db_object_kind/TRIGGER/)
- [x] [TYPE](./db_object_kind/TYPE/)
- [x] [USER_MAPPING](./db_object_kind/USER_MAPPING/)
- [x] [VIEW](./db_object_kind/VIEW/)