split tablecmds.c

Nathan Bossart <nathandbossart@gmail.com>

From: Nathan Bossart <nathandbossart@gmail.com>
To: pgsql-hackers@postgresql.org
Date: 2025-12-01T17:25:13Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Split copy.c into four files.

  2. The contents of command.c, creatinh.c, define.c, remove.c and rename.c

This file has over 22,000 lines and is too large to be included in GitHub's
code search results [0].  It appears to have been given its current form in
2002 by commit 71dc300.  Previously, it was named command.c, which dates
back to the 80s.  Is it time to split it into a few different files,
similar to what was done to copy.c in 2020 by commit c532d15?

After briefly skimming through it, some areas that seem like they could
potentially be moved out are partitions, constraints, permission checks,
inheritance, foreign keys, column expressions, table rewriting, attribute
merging, TRUNCATE, and CREATE TABLE.  This is far from a concrete proposal,
but I first wanted to gauge interest in $SUBJECT.

[0] https://docs.github.com/en/search-github/github-code-search/about-github-code-search#limitations

-- 
nathan