| From: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> |
|---|---|
| To: | Nathan Bossart <nathandbossart(at)gmail(dot)com> |
| Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Álvaro Herrera <alvherre(at)kurilemu(dot)de>, pgsql-hackers(at)postgresql(dot)org, euler(at)eulerto(dot)com, andres(at)anarazel(dot)de |
| Subject: | Re: split tablecmds.c |
| Date: | 2025-12-01 23:29:49 |
| Message-ID: | E39DF820-696B-4A66-8AA7-2DC34A9C40DD@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
> On Dec 2, 2025, at 06:43, Nathan Bossart <nathandbossart(at)gmail(dot)com> wrote:
>
> On Mon, Dec 01, 2025 at 01:59:01PM -0500, Tom Lane wrote:
>> I didn't do any math about it, but that's got to be a far faster rate
>> of expansion than the overall PG code base. Maybe partitioning is
>> largely to blame? Perhaps analyzing what functionality got added
>> here in the past dozen or so years would yield some ideas for how to
>> split it.
>>
>> +1 for a split, if we can figure out a good plan.
>
> I tried to move the partitioning-related code to a new file, and it wasn't
> too bad. Note that there are a couple of internal-to-tablecmds.c things
> that need to be exported. Besides that, the attached patch is still pretty
> rough, and I'm not sure I correctly placed the line in the sand when
> determining what stays and what goes, but this at least shows the general
> shape of what's needed. (BTW git was generating an atrocious diff for
> tablecmds.c. You might need to set the diff algorithm to "minimal" if you
> are similarly affected.)
>
> src/backend/commands/Makefile | 1 +
> src/backend/commands/meson.build | 1 +
> src/backend/commands/partcmds.c | 3377 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> src/backend/commands/tablecmds.c | 3456 +--------------------------------------------------------------------------------------------
> src/backend/partitioning/partbounds.c | 1 +
> src/include/commands/partcmds.h | 53 ++
> src/include/commands/tablecmds.h | 134 +++-
> 7 files changed, 3575 insertions(+), 3448 deletions(-)
>
> --
> nathan
> <v1-0001-move-partition-code-in-tablecmds.c-to-new-file.patch>
I am just thinking if tablecmds deserves a subfolder given the large code size. If we just split the file into multiple and still place them under src/backend/commands, then it would be not easy to identify alter-table related code.
Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Peter Geoghegan | 2025-12-02 00:00:45 | Re: index prefetching |
| Previous Message | Nathan Bossart | 2025-12-01 23:04:23 | Re: show size of DSAs and dshash tables in pg_dsm_registry_allocations |