Improve behavior of tsearch_readline(), and remove t_readline().
authorTom Lane <[email protected]>
Thu, 24 Sep 2020 00:26:58 +0000 (20:26 -0400)
committerTom Lane <[email protected]>
Thu, 24 Sep 2020 00:26:58 +0000 (20:26 -0400)
commit83b61319a16ceabc7ea7d1143dcc045826c112d2
tree745e72d891b21667a1444aac0890f34272fc01df
parentaca74843e40f43d0cceffd314aec6aa6f80e83d5
Improve behavior of tsearch_readline(), and remove t_readline().

Commit fbeb9da22, which added the tsearch_readline APIs, left
t_readline() in place as a compatibility measure.  But that function
has been unused and deprecated for twelve years now, so that seems
like enough time to remove it.  Doing so, and merging t_readline's
code into tsearch_readline, aids in making several useful
improvements:

* The hard-wired 4K limit on line length in tsearch data files is
removed, by using a StringInfo buffer instead of a fixed-size buffer.

* We can buy back the per-line palloc/pfree added by 3ea7e9550
in the common case where encoding conversion is not required.

* We no longer need a separate pg_verify_mbstr call, as that
functionality was folded into encoding conversion some time ago.

(We could have done some of this stuff while keeping t_readline as a
separate API, but there seems little point, since there's no reason
for anyone to still be using t_readline directly.)

Discussion: https://postgr.es/m/48A4FA71-524E-41B9-953A-FD04EF36E2E7@yesql.se
src/backend/tsearch/dict_thesaurus.c
src/backend/tsearch/ts_locale.c
src/include/tsearch/ts_locale.h