This is an automated email from the ASF dual-hosted git repository.

yjhjstz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudberry.git


The following commit(s) were added to refs/heads/main by this push:
     new 980ed212c80 Fix: set FRAMEOPTION_BETWEEN for ORCA window frames
980ed212c80 is described below

commit 980ed212c80093982c7729de5b992b091b8f61c1
Author: Jianghua Yang <[email protected]>
AuthorDate: Mon Apr 27 21:44:56 2026 +0800

    Fix: set FRAMEOPTION_BETWEEN for ORCA window frames
    
    ORCA's window frame translation always emits a BETWEEN frame
    (start + end bound), so include FRAMEOPTION_BETWEEN alongside
    FRAMEOPTION_NONDEFAULT to match the executor's expectations.
---
 src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp 
b/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp
index 4acf13bd606..edce6bfd45a 100644
--- a/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp
+++ b/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp
@@ -3306,7 +3306,7 @@ CTranslatorDXLToPlStmt::TranslateDXLWindowAgg(
                // translate the window frame specified in the window key
                if (nullptr != window_key->GetWindowFrame())
                {
-                       window->frameOptions = FRAMEOPTION_NONDEFAULT;
+                       window->frameOptions = FRAMEOPTION_NONDEFAULT | 
FRAMEOPTION_BETWEEN;
                        window->frameOptions |= 
WindowFrameSpecToOptions(window_frame->ParseDXLFrameSpec());
                        window->frameOptions |= 
WindowFrameExclusionStrategyToOptions(
                                window_frame->ParseFrameExclusionStrategy());
@@ -3510,7 +3510,7 @@ CTranslatorDXLToPlStmt::TranslateDXLWindowHashAgg(
                // translate the window frame specified in the window key
                if (nullptr != window_key->GetWindowFrame())
                {
-                       window->frameOptions = FRAMEOPTION_NONDEFAULT;
+                       window->frameOptions = FRAMEOPTION_NONDEFAULT | 
FRAMEOPTION_BETWEEN;
                        window->frameOptions |= 
WindowFrameSpecToOptions(window_frame->ParseDXLFrameSpec());
                        window->frameOptions |= 
WindowFrameExclusionStrategyToOptions(
                                window_frame->ParseFrameExclusionStrategy());


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

Reply via email to