@@ -33,6 +33,9 @@ class CDistributionSpec;
3333class CLogicalSequenceProject : public CLogicalUnary
3434{
3535private:
36+ // type of sequence project
37+ COperator::ESPType m_sptype;
38+
3639 // partition by keys
3740 CDistributionSpec *m_pds;
3841
@@ -58,8 +61,8 @@ class CLogicalSequenceProject : public CLogicalUnary
5861 CLogicalSequenceProject (const CLogicalSequenceProject &) = delete ;
5962
6063 // ctor
61- CLogicalSequenceProject (CMemoryPool *mp, CDistributionSpec *pds ,
62- COrderSpecArray *pdrgpos,
64+ CLogicalSequenceProject (CMemoryPool *mp, COperator::ESPType sptype ,
65+ CDistributionSpec *pds, COrderSpecArray *pdrgpos,
6366 CWindowFrameArray *pdrgpwf);
6467
6568 // ctor for pattern
@@ -82,6 +85,13 @@ class CLogicalSequenceProject : public CLogicalUnary
8285 return " CLogicalSequenceProject" ;
8386 }
8487
88+ // window type
89+ COperator::ESPType
90+ Pspt () const
91+ {
92+ return m_sptype;
93+ }
94+
8595 // distribution spec
8696 CDistributionSpec *
8797 Pds () const
@@ -123,7 +133,8 @@ class CLogicalSequenceProject : public CLogicalUnary
123133 BOOL must_exist) override ;
124134
125135 // return true if we can pull projections up past this operator from its given child
126- BOOL FCanPullProjectionsUp (ULONG // child_index
136+ BOOL
137+ FCanPullProjectionsUp (ULONG // child_index
127138 ) const override
128139 {
129140 return false ;
@@ -180,6 +191,9 @@ class CLogicalSequenceProject : public CLogicalUnary
180191 // print
181192 IOstream &OsPrint (IOstream &os) const override ;
182193
194+ static IOstream &OsPrintWindowType (IOstream &os,
195+ COperator::ESPType wintype);
196+
183197 // remove outer references from Order By/ Partition By clauses, and return a new operator
184198 CLogicalSequenceProject *PopRemoveLocalOuterRefs (
185199 CMemoryPool *mp, CExpressionHandle &exprhdl);
0 commit comments