gfphoenix78 opened a new pull request, #1798:
URL: https://github.com/apache/cloudberry/pull/1798

   PAX aux tables (pg_pax_blocks_<oid> in catalog mode) live in pg_ext_aux but 
used to put their TOAST companion in pg_ext_aux too — via this Cloudberry-only 
branch in
   src/backend/catalog/toasting.c:
   
       else if (IsExtAuxNamespace(rel->rd_rel->relnamespace))
           namespaceid = PG_EXTAUX_NAMESPACE;
   
   That made aux TOAST behave differently from every other Cloudberry relation. 
 For TEMP parents it was outright wrong: 
contrib/pax_storage/.../pax_aux_table.cc clamped the aux's persistence to 
PERMANENT-or-UNLOGGED, so even after the pg_ext_aux branch was removed the 
aux's TOAST still ended up as a permanent orphan in pg_toast after the parent 
disappeared via temp-namespace cleanup.
   
   Fix in two pieces:
   
   * src/backend/catalog/toasting.c
       - Drop the pg_ext_aux special case so the aux's TOAST is no longer 
steered back into pg_ext_aux.
       - Route TOAST to GetTempToastNamespace() when the rel is in a temp 
namespace OR has RELPERSISTENCE_TEMP (the PAX-aux case — TEMP persistence but 
in pg_ext_aux).  Otherwise PG_TOAST_NAMESPACE.
   
   * contrib/pax_storage/.../pax_aux_table.cc Aux now inherits the parent's 
persistence verbatim (PERMANENT / UNLOGGED / TEMP) instead of being clamped. 
The aux relation itself still lives in pg_ext_aux regardless of parent 
persistence — only its TOAST follows heap/AO namespace routing.
   
   Resulting layout (matches heap/AO):
   
     PERMANENT pax_tab    aux    in pg_ext_aux (p)
                          toast  in pg_toast (p)
                          idx    in pg_toast (p)
   
     UNLOGGED u_pax       aux    in pg_ext_aux (u)
                          toast  in pg_toast (u)
                          idx    in pg_toast (u)
   
     TEMP pax_tmp         aux    in pg_ext_aux (t)
                          toast  in pg_toast_temp_<N> (t)
                          idx    in pg_toast_temp_<N> (t)
   
   Verified:
   * CREATE TEMP TABLE ... USING pax produces the layout above.
   * PERMANENT / UNLOGGED PAX use pg_toast as before.
   * INSERT round-trip works for both temp and permanent.
   
   <!-- Thank you for your contribution to Apache Cloudberry (Incubating)! -->
   
   Fixes #ISSUE_Number
   
   ### What does this PR do?
   <!-- Brief overview of the changes, including any major features or fixes -->
   
   ### Type of Change
   - [ ] Bug fix (non-breaking change)
   - [ ] New feature (non-breaking change)
   - [ ] Breaking change (fix or feature with breaking changes)
   - [ ] Documentation update
   
   ### Breaking Changes
   <!-- Remove if not applicable. If yes, explain impact and migration path -->
   
   ### Test Plan
   <!-- How did you test these changes? -->
   - [ ] Unit tests added/updated
   - [ ] Integration tests added/updated
   - [ ] Passed `make installcheck`
   - [ ] Passed `make -C src/test installcheck-cbdb-parallel`
   
   ### Impact
   <!-- Remove sections that don't apply -->
   **Performance:**
   <!-- Any performance implications? -->
   
   **User-facing changes:**
   <!-- Any changes visible to users? -->
   
   **Dependencies:**
   <!-- New dependencies or version changes? -->
   
   ### Checklist
   - [ ] Followed [contribution 
guide](https://cloudberry.apache.org/contribute/code)
   - [ ] Added/updated documentation
   - [ ] Reviewed code for security implications
   - [ ] This PR contains AI-assisted code generation
   - [ ] Requested review from [cloudberry 
committers](https://github.com/orgs/apache/teams/cloudberry-committers)
   
   ### Additional Context
   <!-- Any other information that would help reviewers? Remove if none -->
   
   ### CI Skip Instructions
   <!--
   To skip CI builds, add the appropriate CI skip identifier to your PR title.
   The identifier must:
   - Be in square brackets []
   - Include the word "ci" and either "skip" or "no"
   - Only use for documentation-only changes or when absolutely necessary
   -->
   
   ---
   <!-- Join our community:
   - Mailing list: 
[[email protected]](https://lists.apache.org/[email protected])
 (subscribe: [email protected])
   - Discussions: https://github.com/apache/cloudberry/discussions -->
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to