Thread: pgsql: Move inheritance expansion code into its own file
Move inheritance expansion code into its own file This commit moves expand_inherited_tables and underlings from optimizer/prep/prepunionc.c to optimizer/utils/inherit.c. Also, all of the AppendRelInfo-based expression manipulation routines are moved to optimizer/utils/appendinfo.c. No functional code changes. One exception is the introduction of make_append_rel_info, but that's still just moving around code. Also, stop including <limits.h> in prepunion.c, which no longer needs it since 3fc6e2d7f5b6. I (Álvaro) noticed this because Amit was copying that to inherit.c, which likewise doesn't need it. Author: Amit Langote Discussion: https://postgr.es/m/3be67028-a00a-502c-199a-da00eec8fb6e@lab.ntt.co.jp Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/b60c39759908bb2a2dbcfc108ec19bdbdcc278e8 Modified Files -------------- src/backend/optimizer/path/allpaths.c | 3 +- src/backend/optimizer/path/equivclass.c | 2 +- src/backend/optimizer/path/joinrels.c | 2 +- src/backend/optimizer/plan/planmain.c | 2 + src/backend/optimizer/plan/planner.c | 2 + src/backend/optimizer/prep/prepunion.c | 1204 ------------------------------- src/backend/optimizer/util/Makefile | 5 +- src/backend/optimizer/util/appendinfo.c | 826 +++++++++++++++++++++ src/backend/optimizer/util/inherit.c | 439 +++++++++++ src/backend/optimizer/util/pathnode.c | 1 + src/backend/optimizer/util/relnode.c | 1 + src/backend/partitioning/partprune.c | 1 + src/include/optimizer/appendinfo.h | 42 ++ src/include/optimizer/inherit.h | 22 + src/include/optimizer/prep.h | 18 - 15 files changed, 1343 insertions(+), 1227 deletions(-)
Alvaro Herrera <alvherre@alvh.no-ip.org> writes: > Move inheritance expansion code into its own file Hm, why does appendinfo.h need to depend on plannodes.h? I don't see anything in it that looks like it comes from there. regards, tom lane
On 2019-Jan-10, Tom Lane wrote: > Alvaro Herrera <alvherre@alvh.no-ip.org> writes: > > Move inheritance expansion code into its own file > > Hm, why does appendinfo.h need to depend on plannodes.h? > I don't see anything in it that looks like it comes from there. Yeah, probably no good reason. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services