aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/jsonb_gin.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2018-05-08 15:59:01 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2018-05-08 15:59:05 -0400
commitdec10340d5ba63cf338dea256ac0fa66c649bf9e (patch)
tree4a369a08aac0a9927413d99a4851ac7b6956fd6a /src/backend/utils/adt/jsonb_gin.c
parent831f5d11ec7bb8a693c581720d014b3a5ad7d446 (diff)
downloadpostgresql-dec10340d5ba63cf338dea256ac0fa66c649bf9e.tar.gz
postgresql-dec10340d5ba63cf338dea256ac0fa66c649bf9e.zip
Improve initdb's query for generating default descriptions a little.
While poking into initdb's performance, I noticed that this query wasn't being done very intelligently. By forcing it to execute obj_description() for each pg_proc/pg_operator join row, we were essentially setting up a nestloop join to pg_description, which is not a bright query plan when there are hundreds of outer rows. Convert the check for a "deprecated" operator into a NOT EXISTS so that it can be done as a hashed antijoin. On my workstation this reduces the time for this query from ~ 35ms to ~ 10ms. Which is not a huge win, but it adds up over buildfarm runs. In passing, insert forced query breaks (\n\n, in single-user mode) after each SQL-query file that initdb sources, and after some relatively new queries in setup_privileges(). This doesn't make a lot of difference normally, but it will result in briefer, saner error messages if anything goes wrong.
Diffstat (limited to 'src/backend/utils/adt/jsonb_gin.c')
0 files changed, 0 insertions, 0 deletions