Background: https://neon.tech/blog/avoid-mitm-attacks-with-psql-postgres-16
Enterprise DB 17.3
"C:\Program Files\PostgreSQL\17\bin\psql.exe" "postgresql://user:[email protected]/neondb?sslrootcert=system"
| \set contents `base64 < "path/to/pgconf.eu.2023/2023.pgconf.eu Zero Downtime PostgreSQL Upgrades.pdf"` | |
| insert into docs (name, fulltext) values ($$2023.pgconf.eu Zero Downtime PostgreSQL Upgrades.pdf$$, rag.text_from_pdf(decode(:'contents','base64'))); | |
| \set contents `base64 < "path/to/pgconf.eu.2023/20231215_PGConfEU_What-cant-pgBackRest-do-for-you.pdf"` | |
| insert into docs (name, fulltext) values ($$20231215_PGConfEU_What-cant-pgBackRest-do-for-you.pdf$$, rag.text_from_pdf(decode(:'contents','base64'))); | |
| \set contents `base64 < "path/to/pgconf.eu.2023/A journey into postgresql logical replication.pdf"` | |
| insert into docs (name, fulltext) values ($$A journey into postgresql logical replication.pdf$$, rag.text_from_pdf(decode(:'contents','base64'))); | |
| \set contents `base64 < "path/to/pgconf.eu.2023/Breaking Up Massive Tables with Partitioning.pdf"` | |
| insert into docs (name, fulltext) values ($$Breaking Up Massive Tables with Partitioning.pdf$$, rag.text_from_pdf(decode(:'contents','base64'))); | |
| \set contents `base64 < |
| function x509Error() { | |
| throw new Error('Could not extract signature algorithm digest from server certificate to perform channel binding') | |
| } | |
| function readASN1Length(data, index) { | |
| let length = data[index++] | |
| if (length < 0x80) return { length, index } | |
| const lengthBytes = length & 0x7f | |
| if (lengthBytes > 4) x509Error() |
Background: https://neon.tech/blog/avoid-mitm-attacks-with-psql-postgres-16
Enterprise DB 17.3
"C:\Program Files\PostgreSQL\17\bin\psql.exe" "postgresql://user:[email protected]/neondb?sslrootcert=system"