Update to latest Snowball sources.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: b464e51ab32fbf09cf5d9c911a8e26f491ad1f44
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2025-02-19T02:13:54Z
Releases: 18.0
Update to latest Snowball sources.

It's been some time since we did this, partly because the upstream
snowball project hasn't formally tagged a new release since 2021.
The main motivation for doing it now is to absorb a bug fix
(their commit e322673a841d9abd69994ae8cd20e191090b6ef4), which
prevents a null pointer dereference crash if SN_create_env() gets
a malloc failure at just the wrong point.  We'll patch the back
branches with only that change, but we might as well do the full
sync dance on HEAD.

Aside from a bunch of mostly-minor tweaks to existing stemmers, this
update adds a new stemmer for Estonian.  It also removes the existing
stemmer for Romanian using ISO-8859-2 encoding.  Upstream apparently
concluded that ISO-8859-2 doesn't provide an adequate representation
of some Romanian characters, and the UTF-8 implementation should be
used instead.

While at it, update the README's instructions for doing a sync,
which have not been adjusted during the addition of meson tooling.

Thanks to Maksim Korotkov for discovering the null-pointer
bug and submitting the fix to upstream snowball.

Reported-by: Maksim Korotkov <m.korotkov@postgrespro.ru>
Discussion: https://postgr.es/m/1d1a46-67ab1000-21-80c451@83151435

Files

PathChange+/−
doc/src/sgml/textsearch.sgml modified +1 −0
src/backend/snowball/dict_snowball.c modified +2 −2
src/backend/snowball/libstemmer/api.c modified +1 −1
src/backend/snowball/libstemmer/stem_ISO_8859_1_basque.c modified +21 −17
src/backend/snowball/libstemmer/stem_ISO_8859_1_catalan.c modified +15 −14
src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c modified +8 −6
src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c modified +31 −25
src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c modified +80 −74
src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c modified +19 −15
src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c modified +145 −111
src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c modified +232 −171
src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c modified +18 −18
src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c modified +16 −15
src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c modified +80 −54
src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c modified +8 −6
src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c modified +33 −32
src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c modified +25 −23
src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c modified +27 −24
src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c modified +31 −26
src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c modified +16 −15
src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c deleted +0 −965
src/backend/snowball/libstemmer/stem_KOI8_R_russian.c modified +18 −15
src/backend/snowball/libstemmer/stem_UTF_8_arabic.c modified +62 −62
src/backend/snowball/libstemmer/stem_UTF_8_armenian.c modified +14 −11
src/backend/snowball/libstemmer/stem_UTF_8_basque.c modified +21 −17
src/backend/snowball/libstemmer/stem_UTF_8_catalan.c modified +15 −14
src/backend/snowball/libstemmer/stem_UTF_8_danish.c modified +8 −6
src/backend/snowball/libstemmer/stem_UTF_8_dutch.c modified +33 −25
src/backend/snowball/libstemmer/stem_UTF_8_english.c modified +82 −76
src/backend/snowball/libstemmer/stem_UTF_8_estonian.c added +1416 −0
src/backend/snowball/libstemmer/stem_UTF_8_finnish.c modified +19 −15
src/backend/snowball/libstemmer/stem_UTF_8_french.c modified +154 −120
src/backend/snowball/libstemmer/stem_UTF_8_german.c modified +233 −172
src/backend/snowball/libstemmer/stem_UTF_8_greek.c modified +189 −187
src/backend/snowball/libstemmer/stem_UTF_8_hindi.c modified +1 −1
src/backend/snowball/libstemmer/stem_UTF_8_hungarian.c modified +16 −15
src/backend/snowball/libstemmer/stem_UTF_8_indonesian.c modified +18 −18
src/backend/snowball/libstemmer/stem_UTF_8_irish.c modified +16 −15
src/backend/snowball/libstemmer/stem_UTF_8_italian.c modified +80 −54
src/backend/snowball/libstemmer/stem_UTF_8_lithuanian.c modified +10 −17
src/backend/snowball/libstemmer/stem_UTF_8_nepali.c modified +4 −4
src/backend/snowball/libstemmer/stem_UTF_8_norwegian.c modified +8 −6
src/backend/snowball/libstemmer/stem_UTF_8_porter.c modified +33 −32
src/backend/snowball/libstemmer/stem_UTF_8_portuguese.c modified +25 −23
src/backend/snowball/libstemmer/stem_UTF_8_romanian.c modified +583 −521
src/backend/snowball/libstemmer/stem_UTF_8_russian.c modified +18 −15
src/backend/snowball/libstemmer/stem_UTF_8_serbian.c modified +19 −16
src/backend/snowball/libstemmer/stem_UTF_8_spanish.c modified +27 −24
src/backend/snowball/libstemmer/stem_UTF_8_swedish.c modified +31 −26
src/backend/snowball/libstemmer/stem_UTF_8_tamil.c modified +801 −1263
src/backend/snowball/libstemmer/stem_UTF_8_turkish.c modified +123 −120
src/backend/snowball/libstemmer/stem_UTF_8_yiddish.c modified +47 −44
src/backend/snowball/libstemmer/utilities.c modified +3 −3
src/backend/snowball/Makefile modified +1 −1
src/backend/snowball/meson.build modified +1 −1
src/backend/snowball/README modified +13 −9
src/backend/snowball/snowball_create.pl modified +1 −0
src/bin/initdb/initdb.c modified +2 −0
src/include/snowball/libstemmer/header.h modified +1 −1
src/include/snowball/libstemmer/stem_ISO_8859_2_romanian.h deleted +0 −15
src/include/snowball/libstemmer/stem_UTF_8_estonian.h added +15 −0

Documentation touched

Discussion