<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>LibreDB Studio — PostgreSQL posts</title><description>Posts about PostgreSQL from the LibreDB Studio blog.</description><link>https://libredb.org/blog/engine/postgresql/</link><language>en</language><atom:link href="https://libredb.org/blog/engine/postgresql/rss.xml" rel="self" type="application/rss+xml"/><item><title>The admin-only audit trail of executed queries</title><link>https://libredb.org/blog/postgresql-query-audit-trail-admin-only/</link><guid isPermaLink="true">https://libredb.org/blog/postgresql-query-audit-trail-admin-only/</guid><description>A searchable history of statements, outcomes and error detail, readable by admins only, and on this engine it also records what the agent was permitted to run.</description><pubDate>Tue, 25 Aug 2026 09:00:00 GMT</pubDate><dc:creator>LibreDB</dc:creator><category>PostgreSQL</category><category>Engineering</category><category>Security</category></item><item><title>What a pasted managed PostgreSQL URL configures</title><link>https://libredb.org/blog/postgresql-managed-url-ssl-modes/</link><guid isPermaLink="true">https://libredb.org/blog/postgresql-managed-url-ssl-modes/</guid><description>Host-heuristic SSL turns encryption on without verifying the certificate, and two sslmode values are declined by name rather than guessed at.</description><pubDate>Thu, 20 Aug 2026 09:00:00 GMT</pubDate><dc:creator>LibreDB</dc:creator><category>PostgreSQL</category><category>Engineering</category><category>Databases</category><category>Security</category></item><item><title>Which PostgreSQL health numbers need an extension or a grant</title><link>https://libredb.org/blog/postgresql-health-panels-extension-gated/</link><guid isPermaLink="true">https://libredb.org/blog/postgresql-health-panels-extension-gated/</guid><description>A tour of the health surface organised by what is missing and why, because a panel that reads Not measured is the only version an operator can act on.</description><pubDate>Tue, 11 Aug 2026 09:00:00 GMT</pubDate><dc:creator>LibreDB</dc:creator><category>PostgreSQL</category><category>Engineering</category><category>Databases</category></item><item><title>The Explain button runs your query, the agent plan read does not</title><link>https://libredb.org/blog/postgresql-explain-analyze-executes/</link><guid isPermaLink="true">https://libredb.org/blog/postgresql-explain-analyze-executes/</guid><description>Two EXPLAIN forms with different consequences: the editor emits the executing one, and the agent path emits the planning one only.</description><pubDate>Wed, 15 Jul 2026 09:00:00 GMT</pubDate><dc:creator>LibreDB</dc:creator><category>PostgreSQL</category><category>Engineering</category><category>Databases</category></item><item><title>Foreign-key diagrams on a schema with a hundred tables</title><link>https://libredb.org/blog/postgresql-er-diagram-two-phase-introspection/</link><guid isPermaLink="true">https://libredb.org/blog/postgresql-er-diagram-two-phase-introspection/</guid><description>The schema tree renders before relationships arrive, and every introspection CTE is materialized on purpose: a 122-table read measured about 295 seconds before the change and about 2.6 seconds after.</description><pubDate>Tue, 09 Jun 2026 09:00:00 GMT</pubDate><dc:creator>LibreDB</dc:creator><category>PostgreSQL</category><category>Engineering</category><category>Databases</category></item><item><title>How the editor bounds a PostgreSQL result set</title><link>https://libredb.org/blog/postgresql-editor-automatic-row-limits/</link><guid isPermaLink="true">https://libredb.org/blog/postgresql-editor-automatic-row-limits/</guid><description>Automatic LIMIT injection applies to unbounded SELECT and CTE-SELECT statements only, and there is one statement shape it deliberately leaves alone.</description><pubDate>Wed, 22 Apr 2026 09:00:00 GMT</pubDate><dc:creator>LibreDB</dc:creator><category>PostgreSQL</category><category>Engineering</category><category>Databases</category></item><item><title>Connecting Studio to PostgreSQL running in Docker</title><link>https://libredb.org/blog/postgresql-connect-docker-container/</link><guid isPermaLink="true">https://libredb.org/blog/postgresql-connect-docker-container/</guid><description>The container-to-container case is the one that breaks: when Studio is itself a container, localhost is its own loopback and the service name is the fix.</description><pubDate>Fri, 06 Mar 2026 09:00:00 GMT</pubDate><dc:creator>LibreDB</dc:creator><category>PostgreSQL</category><category>Engineering</category><category>Databases</category></item><item><title>Where the read-only boundary lives on a PostgreSQL agent run</title><link>https://libredb.org/blog/postgresql-agent-read-only-boundary/</link><guid isPermaLink="true">https://libredb.org/blog/postgresql-agent-read-only-boundary/</guid><description>Containment is the database itself - a read-only transaction, exactly one statement on the extended protocol, then ROLLBACK and DISCARD ALL.</description><pubDate>Sun, 18 Jan 2026 09:00:00 GMT</pubDate><dc:creator>LibreDB</dc:creator><category>PostgreSQL</category><category>Engineering</category><category>Databases</category><category>Security</category></item><item><title>Creating the PostgreSQL role agent mode will accept</title><link>https://libredb.org/blog/postgresql-agent-least-privilege-role/</link><guid isPermaLink="true">https://libredb.org/blog/postgresql-agent-least-privilege-role/</guid><description>Agent AUTO mode refuses a superuser connection outright, so the deployment task is a login holding CONNECT, USAGE and SELECT and nothing else.</description><pubDate>Mon, 01 Dec 2025 09:00:00 GMT</pubDate><dc:creator>LibreDB</dc:creator><category>PostgreSQL</category><category>Engineering</category><category>Databases</category><category>Security</category></item></channel></rss>