• Tom Lane's avatar
    Improve initdb's query for generating default descriptions a little. · dec10340
    Tom Lane authored
    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.
    dec10340
initdb.c 88.2 KB