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

   ORCA represents names as wide characters; when the database LC_CTYPE cannot 
decode a multibyte name (e.g. LC_CTYPE='C' with a UTF-8 alias), clib::Vswprintf 
substitutes the generic "UNKNOWN" string and the DXL-to-PlStmt translator 
restores the original name from the query tree (commit 6b19c44262b). That 
restore only ran for Var target entries, so with the optimizer enabled
   
       SELECT '한글' AS "한글";
   
   returned a column named UNKNOWN: constants, aggregates, set operation and 
set-returning-function outputs never took the repair path.
   
   The old repair walked the entire query tree with
   update_unknown_locale_walker matching on (resorigtbl, resno). That match key 
is ambiguous: TargetEntries nested inside Aggref arguments or SubLink 
subqueries can collide with it, either clobbering an already-restored name 
(empty column header for the first of two aggregates) or restoring a name from 
the wrong query level.
   
   Replace the walker with restore_unknown_locale_resname, which scans only the 
top-level query targetList for the non-junk entry with the same resno. Only the 
topmost plan node is translated with a context that carries the original query, 
and its projection list produces the query output columns in order, so the 
positional top-level match is exact. A legitimate alias literally named 
"UNKNOWN" self-matches and the restore is a no-op. Call it for every entry 
translated by TranslateDXLProjList, for the inlined Append targetlist (UNION 
ALL), and for the ProjectSet targetlists built by SetupAliasParameter 
(set-returning functions).
   
   Extend gp_locale with alias cases for constants, expressions, aggregates, 
UNION ALL, set-returning functions, a subquery containing a same-position 
column, and a legitimate "UNKNOWN" alias.
   
   
   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