<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Sql on The Public Ledger</title><link>https://blog.jbledger.com/tags/sql/</link><description>Recent content in Sql on The Public Ledger</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 12 Sep 2026 15:00:00 +0000</lastBuildDate><atom:link href="https://blog.jbledger.com/tags/sql/index.xml" rel="self" type="application/rss+xml"/><item><title>A Copilot That Says No</title><link>https://blog.jbledger.com/posts/a-copilot-that-says-no/</link><pubDate>Sat, 12 Sep 2026 15:00:00 +0000</pubDate><guid>https://blog.jbledger.com/posts/a-copilot-that-says-no/</guid><description>A natural-language-to-SQL copilot with no LLM in it: a deterministic router, 40 pre-approved SELECTs, results frozen at build time, and a refusal taxonomy — out-of-scope, untracked-agency, injection, and more, each with a named reason.</description></item><item><title>Putting the Federal Budget in a Database</title><link>https://blog.jbledger.com/posts/putting-the-federal-budget-in-a-database/</link><pubDate>Sat, 12 Sep 2026 08:00:00 +0000</pubDate><guid>https://blog.jbledger.com/posts/putting-the-federal-budget-in-a-database/</guid><description>USAspending, Treasury, and FRED — no API keys, one SQLite file, 46,042 rows, and an audit trail for every call. The spine the rest of my portfolio runs on, and the three things the public data got wrong along the way.</description></item></channel></rss>