├── .github └── workflows │ └── ci.yml ├── .gitignore ├── Cargo.toml ├── LICENSE.txt ├── README.md ├── assets ├── styles.css └── tailwind.min.css ├── bin └── main.rs ├── docker-compose.yml.sample ├── examples └── db_settings.rs ├── live_tests.sh ├── pg-extras-diagnose-report.png ├── pg-extras-web-ui.png ├── src ├── diagnose │ ├── mod.rs │ ├── recommendation.rs │ ├── report.rs │ ├── run.rs │ └── size_parser.rs ├── lib.rs ├── queries │ ├── all_locks.rs │ ├── bloat.rs │ ├── blocking.rs │ ├── buffercache_stats.rs │ ├── buffercache_usage.rs │ ├── cache_hit.rs │ ├── calls.rs │ ├── connections.rs │ ├── db_settings.rs │ ├── duplicate_indexes.rs │ ├── extensions.rs │ ├── index_cache_hit.rs │ ├── index_scans.rs │ ├── index_size.rs │ ├── index_usage.rs │ ├── indexes.rs │ ├── locks.rs │ ├── long_running_queries.rs │ ├── mandelbrot.rs │ ├── mod.rs │ ├── null_indexes.rs │ ├── outliers.rs │ ├── records_rank.rs │ ├── seq_scans.rs │ ├── shared.rs │ ├── ssl_used.rs │ ├── table_cache_hit.rs │ ├── table_index_scans.rs │ ├── table_indexes_size.rs │ ├── table_size.rs │ ├── tables.rs │ ├── total_index_size.rs │ ├── total_table_size.rs │ ├── unused_indexes.rs │ └── vacuum_stats.rs ├── sql │ ├── all_locks.sql │ ├── bloat.sql │ ├── blocking.sql │ ├── buffercache_stats.sql │ ├── buffercache_usage.sql │ ├── cache_hit.sql │ ├── calls.sql │ ├── calls_17.sql │ ├── calls_legacy.sql │ ├── connections.sql │ ├── db_settings.sql │ ├── duplicate_indexes.sql │ ├── extensions.sql │ ├── index_cache_hit.sql │ ├── index_scans.sql │ ├── index_size.sql │ ├── index_usage.sql │ ├── indexes.sql │ ├── locks.sql │ ├── long_running_queries.sql │ ├── mandelbrot.sql │ ├── null_indexes.sql │ ├── outliers.sql │ ├── outliers_17.sql │ ├── outliers_legacy.sql │ ├── records_rank.sql │ ├── seq_scans.sql │ ├── ssl_used.sql │ ├── table_cache_hit.sql │ ├── table_index_scans.sql │ ├── table_indexes_size.sql │ ├── table_size.sql │ ├── tables.sql │ ├── total_index_size.sql │ ├── total_table_size.sql │ ├── unused_indexes.sql │ └── vacuum_stats.sql └── web │ ├── controllers │ ├── home.rs │ ├── mod.rs │ └── queries.rs │ ├── mod.rs │ └── routes.rs └── templates ├── 404.html ├── _diagnose_result.html ├── _query_selector.html ├── _result.html ├── home.html ├── layout.html └── query.html /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/README.md -------------------------------------------------------------------------------- /assets/styles.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/tailwind.min.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/assets/tailwind.min.css -------------------------------------------------------------------------------- /bin/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/bin/main.rs -------------------------------------------------------------------------------- /docker-compose.yml.sample: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/docker-compose.yml.sample -------------------------------------------------------------------------------- /examples/db_settings.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/examples/db_settings.rs -------------------------------------------------------------------------------- /live_tests.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/live_tests.sh -------------------------------------------------------------------------------- /pg-extras-diagnose-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/pg-extras-diagnose-report.png -------------------------------------------------------------------------------- /pg-extras-web-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/pg-extras-web-ui.png -------------------------------------------------------------------------------- /src/diagnose/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/diagnose/mod.rs -------------------------------------------------------------------------------- /src/diagnose/recommendation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/diagnose/recommendation.rs -------------------------------------------------------------------------------- /src/diagnose/report.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/diagnose/report.rs -------------------------------------------------------------------------------- /src/diagnose/run.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/diagnose/run.rs -------------------------------------------------------------------------------- /src/diagnose/size_parser.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/diagnose/size_parser.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/queries/all_locks.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/all_locks.rs -------------------------------------------------------------------------------- /src/queries/bloat.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/bloat.rs -------------------------------------------------------------------------------- /src/queries/blocking.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/blocking.rs -------------------------------------------------------------------------------- /src/queries/buffercache_stats.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/buffercache_stats.rs -------------------------------------------------------------------------------- /src/queries/buffercache_usage.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/buffercache_usage.rs -------------------------------------------------------------------------------- /src/queries/cache_hit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/cache_hit.rs -------------------------------------------------------------------------------- /src/queries/calls.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/calls.rs -------------------------------------------------------------------------------- /src/queries/connections.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/connections.rs -------------------------------------------------------------------------------- /src/queries/db_settings.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/db_settings.rs -------------------------------------------------------------------------------- /src/queries/duplicate_indexes.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/duplicate_indexes.rs -------------------------------------------------------------------------------- /src/queries/extensions.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/extensions.rs -------------------------------------------------------------------------------- /src/queries/index_cache_hit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/index_cache_hit.rs -------------------------------------------------------------------------------- /src/queries/index_scans.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/index_scans.rs -------------------------------------------------------------------------------- /src/queries/index_size.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/index_size.rs -------------------------------------------------------------------------------- /src/queries/index_usage.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/index_usage.rs -------------------------------------------------------------------------------- /src/queries/indexes.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/indexes.rs -------------------------------------------------------------------------------- /src/queries/locks.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/locks.rs -------------------------------------------------------------------------------- /src/queries/long_running_queries.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/long_running_queries.rs -------------------------------------------------------------------------------- /src/queries/mandelbrot.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/mandelbrot.rs -------------------------------------------------------------------------------- /src/queries/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/mod.rs -------------------------------------------------------------------------------- /src/queries/null_indexes.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/null_indexes.rs -------------------------------------------------------------------------------- /src/queries/outliers.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/outliers.rs -------------------------------------------------------------------------------- /src/queries/records_rank.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/records_rank.rs -------------------------------------------------------------------------------- /src/queries/seq_scans.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/seq_scans.rs -------------------------------------------------------------------------------- /src/queries/shared.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/shared.rs -------------------------------------------------------------------------------- /src/queries/ssl_used.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/ssl_used.rs -------------------------------------------------------------------------------- /src/queries/table_cache_hit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/table_cache_hit.rs -------------------------------------------------------------------------------- /src/queries/table_index_scans.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/table_index_scans.rs -------------------------------------------------------------------------------- /src/queries/table_indexes_size.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/table_indexes_size.rs -------------------------------------------------------------------------------- /src/queries/table_size.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/table_size.rs -------------------------------------------------------------------------------- /src/queries/tables.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/tables.rs -------------------------------------------------------------------------------- /src/queries/total_index_size.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/total_index_size.rs -------------------------------------------------------------------------------- /src/queries/total_table_size.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/total_table_size.rs -------------------------------------------------------------------------------- /src/queries/unused_indexes.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/unused_indexes.rs -------------------------------------------------------------------------------- /src/queries/vacuum_stats.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/queries/vacuum_stats.rs -------------------------------------------------------------------------------- /src/sql/all_locks.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/all_locks.sql -------------------------------------------------------------------------------- /src/sql/bloat.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/bloat.sql -------------------------------------------------------------------------------- /src/sql/blocking.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/blocking.sql -------------------------------------------------------------------------------- /src/sql/buffercache_stats.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/buffercache_stats.sql -------------------------------------------------------------------------------- /src/sql/buffercache_usage.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/buffercache_usage.sql -------------------------------------------------------------------------------- /src/sql/cache_hit.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/cache_hit.sql -------------------------------------------------------------------------------- /src/sql/calls.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/calls.sql -------------------------------------------------------------------------------- /src/sql/calls_17.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/calls_17.sql -------------------------------------------------------------------------------- /src/sql/calls_legacy.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/calls_legacy.sql -------------------------------------------------------------------------------- /src/sql/connections.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/connections.sql -------------------------------------------------------------------------------- /src/sql/db_settings.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/db_settings.sql -------------------------------------------------------------------------------- /src/sql/duplicate_indexes.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/duplicate_indexes.sql -------------------------------------------------------------------------------- /src/sql/extensions.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/extensions.sql -------------------------------------------------------------------------------- /src/sql/index_cache_hit.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/index_cache_hit.sql -------------------------------------------------------------------------------- /src/sql/index_scans.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/index_scans.sql -------------------------------------------------------------------------------- /src/sql/index_size.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/index_size.sql -------------------------------------------------------------------------------- /src/sql/index_usage.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/index_usage.sql -------------------------------------------------------------------------------- /src/sql/indexes.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/indexes.sql -------------------------------------------------------------------------------- /src/sql/locks.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/locks.sql -------------------------------------------------------------------------------- /src/sql/long_running_queries.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/long_running_queries.sql -------------------------------------------------------------------------------- /src/sql/mandelbrot.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/mandelbrot.sql -------------------------------------------------------------------------------- /src/sql/null_indexes.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/null_indexes.sql -------------------------------------------------------------------------------- /src/sql/outliers.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/outliers.sql -------------------------------------------------------------------------------- /src/sql/outliers_17.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/outliers_17.sql -------------------------------------------------------------------------------- /src/sql/outliers_legacy.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/outliers_legacy.sql -------------------------------------------------------------------------------- /src/sql/records_rank.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/records_rank.sql -------------------------------------------------------------------------------- /src/sql/seq_scans.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/seq_scans.sql -------------------------------------------------------------------------------- /src/sql/ssl_used.sql: -------------------------------------------------------------------------------- 1 | /* Check if SSL connection is used. */ 2 | 3 | SELECT ssl_is_used(); 4 | -------------------------------------------------------------------------------- /src/sql/table_cache_hit.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/table_cache_hit.sql -------------------------------------------------------------------------------- /src/sql/table_index_scans.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/table_index_scans.sql -------------------------------------------------------------------------------- /src/sql/table_indexes_size.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/table_indexes_size.sql -------------------------------------------------------------------------------- /src/sql/table_size.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/table_size.sql -------------------------------------------------------------------------------- /src/sql/tables.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/tables.sql -------------------------------------------------------------------------------- /src/sql/total_index_size.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/total_index_size.sql -------------------------------------------------------------------------------- /src/sql/total_table_size.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/total_table_size.sql -------------------------------------------------------------------------------- /src/sql/unused_indexes.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/unused_indexes.sql -------------------------------------------------------------------------------- /src/sql/vacuum_stats.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/sql/vacuum_stats.sql -------------------------------------------------------------------------------- /src/web/controllers/home.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/web/controllers/home.rs -------------------------------------------------------------------------------- /src/web/controllers/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/web/controllers/mod.rs -------------------------------------------------------------------------------- /src/web/controllers/queries.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/web/controllers/queries.rs -------------------------------------------------------------------------------- /src/web/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/web/mod.rs -------------------------------------------------------------------------------- /src/web/routes.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/src/web/routes.rs -------------------------------------------------------------------------------- /templates/404.html: -------------------------------------------------------------------------------- 1 | 404 2 | -------------------------------------------------------------------------------- /templates/_diagnose_result.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/templates/_diagnose_result.html -------------------------------------------------------------------------------- /templates/_query_selector.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/templates/_query_selector.html -------------------------------------------------------------------------------- /templates/_result.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/templates/_result.html -------------------------------------------------------------------------------- /templates/home.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/templates/home.html -------------------------------------------------------------------------------- /templates/layout.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/templates/layout.html -------------------------------------------------------------------------------- /templates/query.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pawurb/pg-extras-rs/HEAD/templates/query.html --------------------------------------------------------------------------------