Use multi-inserts for pg_ts_config_map
authorMichael Paquier <michael@paquier.xyz>
Wed, 16 Nov 2022 05:32:09 +0000 (14:32 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 16 Nov 2022 05:32:09 +0000 (14:32 +0900)
commit63c833f4bdca3251347dd622102de0908a934330
tree0f1c2a24512b8d510c019043c15f51cebe4b0e62
parent36e0358e70498b5bf5e3e83d91ac964fc24c249e
Use multi-inserts for pg_ts_config_map

Two locations working on pg_ts_config_map are switched from
CatalogTupleInsert() to a multi-insert approach with tuple slots:
- ALTER TEXT SEARCH CONFIGURATION ADD/ALTER MAPPING when inserting new
entries.  The number of entries to insert is known in advance, so is the
number of slots needed.  Note that CatalogTupleInsertWithInfo() is now
used for the entry updates.
- CREATE TEXT SEARCH CONFIGURATION, where up to ~20-ish records could be
inserted at once.  The number of slots is not known in advance, hence
a slot initialization is delayed until a tuple is stored in it.

Like all the changes of this kind (1ff416163110c6 or e3931d01), an
insert batch is capped at 64kB.

Author: Michael Paquier, Ranier Vilela
Reviewed-by: Kyotaro Horiguchi
Discussion: https://postgr.es/m/Y3M5bovrkTQbAO4W@paquier.xyz
src/backend/commands/tsearchcmds.c