]> granicus.if.org Git - postgresql/commit
#ifdef out assorted unused GEQO code.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 4 Jun 2017 17:34:05 +0000 (13:34 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 4 Jun 2017 17:34:05 +0000 (13:34 -0400)
commit9db7d47f909482ac2b76c28f5e9a2ef48fb19b9d
treee940c41990ca01f73d28f234d283190c6a5fa364
parent0d1885266630eee1de5c43af463fe2b921451932
#ifdef out assorted unused GEQO code.

I'd always assumed that backend/optimizer/geqo/'s remarkably poor
showing on code coverage metrics was because we weren't exercising
it much in the regression tests.  But it turns out that a good chunk
of the problem is that there's a bunch of code that is physically
unreachable (because the calls to it are #ifdef'd out in geqo_main.c)
but is being built anyway.  Making the called code have #if guards
similar to the calling code saves a couple of kilobytes of executable
size and should make the coverage numbers more reflective of reality.

It's arguable that we should just delete all the unused recombination
mechanisms altogether, but I didn't feel a need to go that far today.
src/backend/optimizer/geqo/geqo_cx.c
src/backend/optimizer/geqo/geqo_erx.c
src/backend/optimizer/geqo/geqo_main.c
src/backend/optimizer/geqo/geqo_mutation.c
src/backend/optimizer/geqo/geqo_ox1.c
src/backend/optimizer/geqo/geqo_ox2.c
src/backend/optimizer/geqo/geqo_pmx.c
src/backend/optimizer/geqo/geqo_px.c
src/backend/optimizer/geqo/geqo_recombination.c
src/include/optimizer/geqo.h