PostgreSQL: Dictionary Parsing Gets Hardened

Two related commits fix a long-standing bug in Hunspell dictionary parsing that could cause crashes or silently broken compound word splitting, while a third commit tightens the REPACK command's grammar to match its documentation.

Duration: PT2M15S

Episode overview

This episode is a short developer briefing from PostgreSQL.

It explains recent repository work in plain language.

  • Show: PostgreSQL
  • Published: 2026-08-30T13:03:40Z
  • Audio duration: PT2M15S

Transcript excerpt

This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.

Good morning. It's August 30th, 2026, and this is your PostgreSQL briefing.

Today's most important work is a two-commit fix to the spell-checking code, addressing a bug that's been lurking since the flag mode handling was written.

Tom Lane and Ewan Young tackled how Postgres reads Hunspell affix files. The core problem: a setting called FLAG can appear anywhere in these files, but the parser was converting compound flags into either strings or integers based on whatever mode was active at the moment it read them. If FLAG showed up after those…

The fix keeps flags as strings until the whole file is read, then converts them once, so position in the file no longer matters. This mirrors how other affix lines were already handled. It's not a security issue, since dictionary files are trusted input, but it's a real reliability fix, and it's been backpatched all…

The companion commit, 2fb8da5, is cleanup that follows naturally from the fix - since flag mode is now guaranteed consistent across a dictionary, there's no need for each flag entry to carry its own redundant copy of that mode. Simpler structure, same behavior.

Separately, Nathan Bossart closed a small gap in the REPACK command.…

Nearby episodes from PostgreSQL

  1. Correctness Fixes for Query Planning and Shared Memory
  2. Widening Fixes and Planner Corrections Land as Backpatches
  3. Retreat and Repair
  4. Hardening Version 19 Ahead
  5. TOAST Vacuum Fix and Planner Correctness Patches
  6. Cleaning Up the Node Reading Internals
  7. Weekly Recap - Correctness Fixes and Internal Cleanup
  8. Silent Data Loss Bug Fixed in GIN Indexes