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

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

commit 2a666c8cd507a5b63829270d89b9a14ac88a176f
Author: zhoujiaqi <[email protected]>
AuthorDate: Mon Feb 17 11:30:39 2025 +0800

    [ORCA] Remove the AO version check in indexscan check
    
    In versions after CBDB after open source, the old version
    of AO table will not appear. For ORCA, it will always get
    an AO table which supports indexscan.
    
    The current commit deletes the logic about ao version in ORCA.
---
 .../gpopt/translate/CTranslatorRelcacheToDXL.cpp   | 50 +---------------------
 .../include/gpopt/metadata/CIndexDescriptor.h      |  2 -
 .../include/gpopt/metadata/CTableDescriptor.h      | 11 -----
 .../libgpopt/src/metadata/CIndexDescriptor.cpp     | 10 -----
 .../libgpopt/src/metadata/CTableDescriptor.cpp     |  3 +-
 .../src/translate/CTranslatorDXLToExpr.cpp         |  7 +--
 .../src/translate/CTranslatorExprToDXL.cpp         |  2 +-
 ...ormDynamicIndexOnlyGet2DynamicIndexOnlyScan.cpp | 11 -----
 .../xforms/CXformIndexOnlyGet2IndexOnlyScan.cpp    | 10 -----
 .../naucrates/dxl/parser/CParseHandlerMDRelation.h |  3 --
 .../include/naucrates/dxl/xml/dxltokens.h          |  1 -
 .../include/naucrates/md/CMDRelationCtasGPDB.h     |  6 ---
 .../include/naucrates/md/CMDRelationGPDB.h         |  8 +---
 .../include/naucrates/md/IMDRelation.h             | 22 ----------
 .../gporca/libnaucrates/src/md/CMDRelationGPDB.cpp | 18 +-------
 .../src/parser/CParseHandlerMDRelation.cpp         | 16 +------
 .../gporca/libnaucrates/src/xml/dxltokens.cpp      |  1 -
 .../gporca/server/src/unittest/CTestUtils.cpp      |  1 -
 .../unittest/dxl/statistics/CStatisticsTest.cpp    |  1 -
 .../gpopt/translate/CTranslatorDXLToExprTest.cpp   |  2 +-
 20 files changed, 9 insertions(+), 176 deletions(-)

diff --git a/src/backend/gpopt/translate/CTranslatorRelcacheToDXL.cpp 
b/src/backend/gpopt/translate/CTranslatorRelcacheToDXL.cpp
index 1184d5756d..2bce1f4eba 100644
--- a/src/backend/gpopt/translate/CTranslatorRelcacheToDXL.cpp
+++ b/src/backend/gpopt/translate/CTranslatorRelcacheToDXL.cpp
@@ -473,49 +473,6 @@ CTranslatorRelcacheToDXL::RetrieveExtStatsInfo(CMemoryPool 
*mp, IMDId *mdid)
                                                                                
 extstats_info_array);
 }
 
-
-//---------------------------------------------------------------------------
-//     @function:
-//             get_ao_version
-//
-//     @doc:
-//             Retrieve a relation's AORelationVersion. If table is 
partitioned then
-//             return the lowest AORelationVersion from all children. If table 
is not
-//             AO table (e.g. heap table) or a partitioned table that does not 
contain
-//             an AO table then return AORelationVersion_None.
-//
-//---------------------------------------------------------------------------
-static IMDRelation::Erelaoversion
-get_ao_version(gpdb::RelationWrapper &rel)
-{
-       // partitioned table - return lowest version of child partitions
-       if (rel->rd_partdesc)
-       {
-               IMDRelation::Erelaoversion low_ao_version =
-                       IMDRelation::MaxAORelationVersion;
-               for (int i = 0; i < rel->rd_partdesc->nparts; i++)
-               {
-                       gpdb::RelationWrapper child_rel =
-                               gpdb::GetRelation(rel->rd_partdesc->oids[i]);
-                       IMDRelation::Erelaoversion child_low_version =
-                               get_ao_version(child_rel);
-                       if (child_low_version < low_ao_version &&
-                               child_low_version != 
IMDRelation::AORelationVersion_None)
-                       {
-                               low_ao_version = child_low_version;
-                       }
-               }
-               return low_ao_version;
-       }
-       // non-partitioned AO table or leaf AO table
-       else if (RelationStorageIsAO(rel))
-       {
-               return static_cast<IMDRelation::Erelaoversion>(
-                       AORelationVersion_Get(rel.get()));
-       }
-       return IMDRelation::AORelationVersion_None;
-}
-
 //---------------------------------------------------------------------------
 //     @function:
 //             CTranslatorRelcacheToDXL::RetrieveRel
@@ -553,8 +510,6 @@ CTranslatorRelcacheToDXL::RetrieveRel(CMemoryPool *mp, 
CMDAccessor *md_accessor,
        CMDName *mdname = nullptr;
        IMDRelation::Erelstoragetype rel_storage_type =
                IMDRelation::ErelstorageSentinel;
-       IMDRelation::Erelaoversion rel_ao_version =
-               IMDRelation::AORelationVersion_None;
        CMDColumnArray *mdcol_array = nullptr;
        IMDRelation::Ereldistrpolicy dist = IMDRelation::EreldistrSentinel;
        ULongPtrArray *distr_cols = nullptr;
@@ -577,9 +532,6 @@ CTranslatorRelcacheToDXL::RetrieveRel(CMemoryPool *mp, 
CMDAccessor *md_accessor,
        // get storage type
        rel_storage_type = RetrieveRelStorageType(rel.get());
 
-       // get append only table version
-       rel_ao_version = get_ao_version(rel);
-
        // get relation columns
        mdcol_array = RetrieveRelColumns(mp, md_accessor, rel.get());
        const ULONG max_cols =
@@ -673,7 +625,7 @@ CTranslatorRelcacheToDXL::RetrieveRel(CMemoryPool *mp, 
CMDAccessor *md_accessor,
        }
 
        md_rel = GPOS_NEW(mp) CMDRelationGPDB(
-               mp, mdid, mdname, is_temporary, rel_storage_type, 
rel_ao_version, dist,
+               mp, mdid, mdname, is_temporary, rel_storage_type, dist,
                mdcol_array, distr_cols, distr_op_families, part_keys, 
part_types,
                partition_oids, convert_hash_to_random, keyset_array,
                md_index_info_array, check_constraint_mdids, mdpart_constraint,
diff --git 
a/src/backend/gporca/libgpopt/include/gpopt/metadata/CIndexDescriptor.h 
b/src/backend/gporca/libgpopt/include/gpopt/metadata/CIndexDescriptor.h
index 852822c37b..c092161c13 100644
--- a/src/backend/gporca/libgpopt/include/gpopt/metadata/CIndexDescriptor.h
+++ b/src/backend/gporca/libgpopt/include/gpopt/metadata/CIndexDescriptor.h
@@ -114,8 +114,6 @@ public:
                return m_index_type;
        }
 
-       BOOL SupportsIndexOnlyScan(CTableDescriptor *ptabdesc) const;
-
        // create an index descriptor
        static CIndexDescriptor *Pindexdesc(CMemoryPool *mp,
                                                                                
const CTableDescriptor *ptabdesc,
diff --git 
a/src/backend/gporca/libgpopt/include/gpopt/metadata/CTableDescriptor.h 
b/src/backend/gporca/libgpopt/include/gpopt/metadata/CTableDescriptor.h
index 7b68dd3f15..cb5aa1583f 100644
--- a/src/backend/gporca/libgpopt/include/gpopt/metadata/CTableDescriptor.h
+++ b/src/backend/gporca/libgpopt/include/gpopt/metadata/CTableDescriptor.h
@@ -63,9 +63,6 @@ private:
        // storage type
        IMDRelation::Erelstoragetype m_erelstoragetype;
 
-       // append only table version
-       IMDRelation::Erelaoversion m_erelaoversion;
-
        // distribution columns for hash distribution
        CColumnDescriptorArray *m_pdrgpcoldescDist;
 
@@ -108,7 +105,6 @@ public:
                                         BOOL convert_hash_to_random,
                                         IMDRelation::Ereldistrpolicy 
rel_distr_policy,
                                         IMDRelation::Erelstoragetype 
erelstoragetype,
-                                        IMDRelation::Erelaoversion 
erelaoversion,
                                         ULONG ulExecuteAsUser, INT lockmode, 
ULONG acl_mode,
                                         ULONG 
assigned_query_id_for_target_rel);
 
@@ -217,13 +213,6 @@ public:
                return m_erelstoragetype;
        }
 
-       // append only table version
-       IMDRelation::Erelaoversion
-       GetRelAOVersion() const
-       {
-               return m_erelaoversion;
-       }
-
        BOOL
        IsPartitioned() const
        {
diff --git a/src/backend/gporca/libgpopt/src/metadata/CIndexDescriptor.cpp 
b/src/backend/gporca/libgpopt/src/metadata/CIndexDescriptor.cpp
index b25b286647..d68131f08e 100644
--- a/src/backend/gporca/libgpopt/src/metadata/CIndexDescriptor.cpp
+++ b/src/backend/gporca/libgpopt/src/metadata/CIndexDescriptor.cpp
@@ -142,16 +142,6 @@ CIndexDescriptor::Pindexdesc(CMemoryPool *mp, const 
CTableDescriptor *ptabdesc,
        return pindexdesc;
 }
 
-BOOL
-CIndexDescriptor::SupportsIndexOnlyScan(CTableDescriptor *ptabdesc) const
-{
-       // index only scan is not supported on GPDB 6 append-only tables.
-       return !((ptabdesc->IsAORowOrColTable() ||
-                         IMDRelation::ErelstorageMixedPartitioned ==
-                                 ptabdesc->RetrieveRelStorageType()) &&
-                        ptabdesc->GetRelAOVersion() < 
IMDRelation::AORelationVersion_GP7);
-}
-
 //---------------------------------------------------------------------------
 //     @function:
 //             CIndexDescriptor::OsPrint
diff --git a/src/backend/gporca/libgpopt/src/metadata/CTableDescriptor.cpp 
b/src/backend/gporca/libgpopt/src/metadata/CTableDescriptor.cpp
index dfca5e7bc1..15bd4e14cc 100644
--- a/src/backend/gporca/libgpopt/src/metadata/CTableDescriptor.cpp
+++ b/src/backend/gporca/libgpopt/src/metadata/CTableDescriptor.cpp
@@ -38,7 +38,7 @@ CTableDescriptor::CTableDescriptor(
        CMemoryPool *mp, IMDId *mdid, const CName &name,
        BOOL convert_hash_to_random, IMDRelation::Ereldistrpolicy 
rel_distr_policy,
        IMDRelation::Erelstoragetype erelstoragetype,
-       IMDRelation::Erelaoversion erelaoversion, ULONG ulExecuteAsUser,
+       ULONG ulExecuteAsUser,
        INT lockmode, ULONG acl_mode, ULONG assigned_query_id_for_target_rel)
        : m_mp(mp),
          m_mdid(mdid),
@@ -46,7 +46,6 @@ CTableDescriptor::CTableDescriptor(
          m_pdrgpcoldesc(nullptr),
          m_rel_distr_policy(rel_distr_policy),
          m_erelstoragetype(erelstoragetype),
-         m_erelaoversion(erelaoversion),
          m_pdrgpcoldescDist(nullptr),
          m_distr_opfamilies(nullptr),
          m_convert_hash_to_random(convert_hash_to_random),
diff --git a/src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp 
b/src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp
index 347ae4227b..22d8bb3eba 100644
--- a/src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp
+++ b/src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp
@@ -2141,13 +2141,10 @@ CTranslatorDXLToExpr::Ptabdesc(CDXLTableDescr 
*table_descr)
        IMDRelation::Erelstoragetype rel_storage_type =
                pmdrel->RetrieveRelStorageType();
 
-       // get append only table version
-       IMDRelation::Erelaoversion rel_ao_version = pmdrel->GetRelAOVersion();
-
        mdid->AddRef();
        CTableDescriptor *ptabdesc = GPOS_NEW(m_mp) CTableDescriptor(
                m_mp, mdid, CName(m_mp, &strName), 
pmdrel->ConvertHashToRandom(),
-               rel_distr_policy, rel_storage_type, rel_ao_version,
+               rel_distr_policy, rel_storage_type,
                table_descr->GetExecuteAsUserId(), table_descr->LockMode(),
                table_descr->GetAclMode(),
                table_descr->GetAssignedQueryIdForTargetRel());
@@ -2345,7 +2342,7 @@ CTranslatorDXLToExpr::PtabdescFromCTAS(CDXLLogicalCTAS 
*pdxlopCTAS)
        mdid->AddRef();
        CTableDescriptor *ptabdesc = GPOS_NEW(m_mp) CTableDescriptor(
                m_mp, mdid, CName(m_mp, &strName), 
pmdrel->ConvertHashToRandom(),
-               rel_distr_policy, rel_storage_type, 
IMDRelation::GetCurrentAOVersion(),
+               rel_distr_policy, rel_storage_type, 
                0,      // ulExecuteAsUser, use permissions of current user
                3,      // CTAS always uses a RowExclusiveLock on the table. 
See createas.c
                2,      // CTAS always requires SELECT and SELECT only privilege
diff --git a/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp 
b/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp
index 0d757f0f77..0043eceb08 100644
--- a/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp
+++ b/src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp
@@ -1270,7 +1270,7 @@ CTranslatorExprToDXL::MakeTableDescForPart(const 
IMDRelation *part,
        CTableDescriptor *table_descr = GPOS_NEW(m_mp) CTableDescriptor(
                m_mp, part_mdid, part->Mdname().GetMDName(),
                part->ConvertHashToRandom(), part->GetRelDistribution(),
-               part->RetrieveRelStorageType(), 
root_table_desc->GetRelAOVersion(),
+               part->RetrieveRelStorageType(),
                root_table_desc->GetExecuteAsUserId(), 
root_table_desc->LockMode(),
                root_table_desc->GetAclMode(),
                root_table_desc->GetAssignedQueryIdForTargetRel());
diff --git 
a/src/backend/gporca/libgpopt/src/xforms/CXformDynamicIndexOnlyGet2DynamicIndexOnlyScan.cpp
 
b/src/backend/gporca/libgpopt/src/xforms/CXformDynamicIndexOnlyGet2DynamicIndexOnlyScan.cpp
index 1d1a5f8bd4..eae73f744c 100644
--- 
a/src/backend/gporca/libgpopt/src/xforms/CXformDynamicIndexOnlyGet2DynamicIndexOnlyScan.cpp
+++ 
b/src/backend/gporca/libgpopt/src/xforms/CXformDynamicIndexOnlyGet2DynamicIndexOnlyScan.cpp
@@ -47,17 +47,6 @@ CXform::EXformPromise
 CXformDynamicIndexOnlyGet2DynamicIndexOnlyScan::Exfp(
        CExpressionHandle &exprhdl) const
 {
-       CLogicalDynamicIndexOnlyGet *popGet =
-               CLogicalDynamicIndexOnlyGet::PopConvert(exprhdl.Pop());
-       CIndexDescriptor *pindexdesc = popGet->Pindexdesc();
-       CTableDescriptor *ptabdesc = popGet->Ptabdesc();
-
-       if (!pindexdesc->SupportsIndexOnlyScan(ptabdesc))
-       {
-               // FIXME: relax btree requirement. GiST and SP-GiST indexes can 
support some operator classes, but Gin cannot
-               return CXform::ExfpNone;
-       }
-
        if (exprhdl.DeriveHasSubquery(0))
        {
                return CXform::ExfpNone;
diff --git 
a/src/backend/gporca/libgpopt/src/xforms/CXformIndexOnlyGet2IndexOnlyScan.cpp 
b/src/backend/gporca/libgpopt/src/xforms/CXformIndexOnlyGet2IndexOnlyScan.cpp
index 22df1e949c..c2918cb959 100644
--- 
a/src/backend/gporca/libgpopt/src/xforms/CXformIndexOnlyGet2IndexOnlyScan.cpp
+++ 
b/src/backend/gporca/libgpopt/src/xforms/CXformIndexOnlyGet2IndexOnlyScan.cpp
@@ -50,16 +50,6 @@ 
CXformIndexOnlyGet2IndexOnlyScan::CXformIndexOnlyGet2IndexOnlyScan(
 CXform::EXformPromise
 CXformIndexOnlyGet2IndexOnlyScan::Exfp(CExpressionHandle &exprhdl) const
 {
-       CLogicalIndexOnlyGet *popGet =
-               CLogicalIndexOnlyGet::PopConvert(exprhdl.Pop());
-       CIndexDescriptor *pindexdesc = popGet->Pindexdesc();
-       CTableDescriptor *ptabdesc = popGet->Ptabdesc();
-
-       if (!pindexdesc->SupportsIndexOnlyScan(ptabdesc))
-       {
-               return CXform::ExfpNone;
-       }
-
        if (exprhdl.DeriveHasSubquery(0))
        {
                return CXform::ExfpNone;
diff --git 
a/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerMDRelation.h
 
b/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerMDRelation.h
index 8be0aca760..6dc7b54918 100644
--- 
a/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerMDRelation.h
+++ 
b/src/backend/gporca/libnaucrates/include/naucrates/dxl/parser/CParseHandlerMDRelation.h
@@ -51,9 +51,6 @@ protected:
        // storage type
        IMDRelation::Erelstoragetype m_rel_storage_type;
 
-       // append only table version
-       IMDRelation::Erelaoversion m_rel_ao_version;
-
        // distribution policy
        IMDRelation::Ereldistrpolicy m_rel_distr_policy;
 
diff --git 
a/src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h 
b/src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h
index 9f18d6c5c7..e057b03251 100644
--- a/src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h
+++ b/src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h
@@ -750,7 +750,6 @@ enum Edxltoken
 
        EdxltokenForeignServerOid,
        EdxltokenPhysicalDynamicIndexOnlyScan,
-       EdxltokenRelAppendOnlyVersion,
 
        EdxltokenSentinel
 };
diff --git 
a/src/backend/gporca/libnaucrates/include/naucrates/md/CMDRelationCtasGPDB.h 
b/src/backend/gporca/libnaucrates/include/naucrates/md/CMDRelationCtasGPDB.h
index 710361550b..9434e9df35 100644
--- a/src/backend/gporca/libnaucrates/include/naucrates/md/CMDRelationCtasGPDB.h
+++ b/src/backend/gporca/libnaucrates/include/naucrates/md/CMDRelationCtasGPDB.h
@@ -147,12 +147,6 @@ public:
                return m_rel_storage_type;
        }
 
-       Erelaoversion
-       GetRelAOVersion() const override
-       {
-               return IMDRelation::GetCurrentAOVersion();
-       }
-
        // CTAS storage options
        CDXLCtasStorageOptions *
        GetDxlCtasStorageOption() const override
diff --git 
a/src/backend/gporca/libnaucrates/include/naucrates/md/CMDRelationGPDB.h 
b/src/backend/gporca/libnaucrates/include/naucrates/md/CMDRelationGPDB.h
index 52c790f237..40669dfad1 100644
--- a/src/backend/gporca/libnaucrates/include/naucrates/md/CMDRelationGPDB.h
+++ b/src/backend/gporca/libnaucrates/include/naucrates/md/CMDRelationGPDB.h
@@ -62,9 +62,6 @@ private:
        // storage type
        Erelstoragetype m_rel_storage_type;
 
-       // append only table version
-       Erelaoversion m_rel_ao_version;
-
        // distribution policy
        Ereldistrpolicy m_rel_distr_policy;
 
@@ -128,7 +125,7 @@ public:
        // ctor
        CMDRelationGPDB(
                CMemoryPool *mp, IMDId *mdid, CMDName *mdname, BOOL 
is_temp_table,
-               Erelstoragetype rel_storage_type, Erelaoversion rel_ao_version,
+               Erelstoragetype rel_storage_type, 
                Ereldistrpolicy rel_distr_policy, CMDColumnArray *mdcol_array,
                ULongPtrArray *distr_col_array, IMdIdArray *distr_opfamilies,
                ULongPtrArray *partition_cols_array, CharPtrArray 
*str_part_types_array,
@@ -155,9 +152,6 @@ public:
        // storage type (heap, appendonly, ...)
        Erelstoragetype RetrieveRelStorageType() const override;
 
-       // append only table version
-       Erelaoversion GetRelAOVersion() const override;
-
        // distribution policy (none, hash, random)
        Ereldistrpolicy GetRelDistribution() const override;
 
diff --git a/src/backend/gporca/libnaucrates/include/naucrates/md/IMDRelation.h 
b/src/backend/gporca/libnaucrates/include/naucrates/md/IMDRelation.h
index 872713c588..0bc4d3a9da 100644
--- a/src/backend/gporca/libnaucrates/include/naucrates/md/IMDRelation.h
+++ b/src/backend/gporca/libnaucrates/include/naucrates/md/IMDRelation.h
@@ -56,18 +56,6 @@ public:
                ErelstorageSentinel
        };
 
-       //-------------------------------------------------------------------
-       //      @doc:
-       //              Append-only table version (if append-only table)
-       //-------------------------------------------------------------------
-       enum Erelaoversion
-       {
-               AORelationVersion_None,
-               AORelationVersion_GP6,
-               AORelationVersion_GP7,
-               MaxAORelationVersion
-       };
-
        //-------------------------------------------------------------------
        //      @doc:
        //              Distribution policy of a relation
@@ -102,22 +90,12 @@ public:
                return EmdtRel;
        }
 
-       // Gets current cluster's append-only table version
-       static Erelaoversion
-       GetCurrentAOVersion()
-       {
-               return static_cast<Erelaoversion>(MaxAORelationVersion - 1);
-       }
-
        // is this a temp relation
        virtual BOOL IsTemporary() const = 0;
 
        // storage type (heap, appendonly, ...)
        virtual Erelstoragetype RetrieveRelStorageType() const = 0;
 
-       // append only table version
-       virtual Erelaoversion GetRelAOVersion() const = 0;
-
        // distribution policy (none, hash, random)
        virtual Ereldistrpolicy GetRelDistribution() const = 0;
 
diff --git a/src/backend/gporca/libnaucrates/src/md/CMDRelationGPDB.cpp 
b/src/backend/gporca/libnaucrates/src/md/CMDRelationGPDB.cpp
index ae81a3babd..3294bc00c9 100644
--- a/src/backend/gporca/libnaucrates/src/md/CMDRelationGPDB.cpp
+++ b/src/backend/gporca/libnaucrates/src/md/CMDRelationGPDB.cpp
@@ -31,7 +31,7 @@ using namespace gpmd;
 //---------------------------------------------------------------------------
 CMDRelationGPDB::CMDRelationGPDB(
        CMemoryPool *mp, IMDId *mdid, CMDName *mdname, BOOL fTemporary,
-       Erelstoragetype rel_storage_type, Erelaoversion rel_ao_version,
+       Erelstoragetype rel_storage_type,
        Ereldistrpolicy rel_distr_policy, CMDColumnArray *mdcol_array,
        ULongPtrArray *distr_col_array, IMdIdArray *distr_opfamilies,
        ULongPtrArray *partition_cols_array, CharPtrArray *str_part_types_array,
@@ -44,7 +44,6 @@ CMDRelationGPDB::CMDRelationGPDB(
          m_mdname(mdname),
          m_is_temp_table(fTemporary),
          m_rel_storage_type(rel_storage_type),
-         m_rel_ao_version(rel_ao_version),
          m_rel_distr_policy(rel_distr_policy),
          m_md_col_array(mdcol_array),
          m_dropped_cols(0),
@@ -214,12 +213,6 @@ CMDRelationGPDB::RetrieveRelStorageType() const
        return m_rel_storage_type;
 }
 
-IMDRelation::Erelaoversion
-CMDRelationGPDB::GetRelAOVersion() const
-{
-       return m_rel_ao_version;
-}
-
 //---------------------------------------------------------------------------
 //     @function:
 //             CMDRelationGPDB::GetRelDistribution
@@ -622,13 +615,6 @@ CMDRelationGPDB::Serialize(CXMLSerializer *xml_serializer) 
const
        xml_serializer->AddAttribute(
                CDXLTokens::GetDXLTokenStr(EdxltokenRelStorageType),
                IMDRelation::GetStorageTypeStr(m_rel_storage_type));
-       if (IsAORowOrColTable() ||
-               IMDRelation::ErelstorageMixedPartitioned == 
RetrieveRelStorageType())
-       {
-               xml_serializer->AddAttribute(
-                       
CDXLTokens::GetDXLTokenStr(EdxltokenRelAppendOnlyVersion),
-                       m_rel_ao_version);
-       }
        xml_serializer->AddAttribute(
                CDXLTokens::GetDXLTokenStr(EdxltokenRelDistrPolicy),
                GetDistrPolicyStr(m_rel_distr_policy));
@@ -805,8 +791,6 @@ CMDRelationGPDB::DebugPrint(IOstream &os) const
           << IMDRelation::GetStorageTypeStr(m_rel_storage_type)->GetBuffer()
           << std::endl;
 
-       os << "AO version: " << m_rel_ao_version << std::endl;
-
        os << "Distribution policy: "
           << GetDistrPolicyStr(m_rel_distr_policy)->GetBuffer() << std::endl;
 
diff --git 
a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerMDRelation.cpp 
b/src/backend/gporca/libnaucrates/src/parser/CParseHandlerMDRelation.cpp
index 3c80cd9839..9858fbdaee 100644
--- a/src/backend/gporca/libnaucrates/src/parser/CParseHandlerMDRelation.cpp
+++ b/src/backend/gporca/libnaucrates/src/parser/CParseHandlerMDRelation.cpp
@@ -41,7 +41,6 @@ CParseHandlerMDRelation::CParseHandlerMDRelation(
          m_mdname(nullptr),
          m_is_temp_table(false),
          m_rel_storage_type(IMDRelation::ErelstorageSentinel),
-         m_rel_ao_version(IMDRelation::AORelationVersion_None),
          m_rel_distr_policy(IMDRelation::EreldistrSentinel),
          m_distr_col_array(nullptr),
          m_convert_hash_to_random(false),
@@ -145,19 +144,6 @@ CParseHandlerMDRelation::StartElement(const XMLCh *const 
element_uri,
        m_rel_storage_type =
                CDXLOperatorFactory::ParseRelationStorageType(xmlszStorageType);
 
-       // parse ao version
-       m_rel_ao_version = IMDRelation::AORelationVersion_None;
-       if (IMDRelation::ErelstorageAppendOnlyCols == m_rel_storage_type ||
-               IMDRelation::ErelstorageAppendOnlyRows == m_rel_storage_type ||
-               IMDRelation::ErelstorageMixedPartitioned == m_rel_storage_type)
-       {
-               m_rel_ao_version = (IMDRelation::Erelaoversion)
-                       CDXLOperatorFactory::ExtractConvertAttrValueToUlong(
-                               m_parse_handler_mgr->GetDXLMemoryManager(), 
attrs,
-                               EdxltokenRelAppendOnlyVersion, 
EdxltokenRelation, true,
-                               IMDRelation::MaxAORelationVersion - 1);
-       }
-
        const XMLCh *xmlszPartColumns =
                attrs.getValue(CDXLTokens::XmlstrToken(EdxltokenPartKeys));
 
@@ -273,7 +259,7 @@ CParseHandlerMDRelation::EndElement(const XMLCh *const,     
 // element_uri,
 
        m_imd_obj = GPOS_NEW(m_mp) CMDRelationGPDB(
                m_mp, m_mdid, m_mdname, m_is_temp_table, m_rel_storage_type,
-               m_rel_ao_version, m_rel_distr_policy, md_col_array, 
m_distr_col_array,
+               m_rel_distr_policy, md_col_array, m_distr_col_array,
                distr_opfamilies, m_partition_cols_array, 
m_str_part_types_array,
                child_partitions, m_convert_hash_to_random, m_key_sets_arrays,
                md_index_info_array, mdid_check_constraint_array, 
m_part_constraint,
diff --git a/src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp 
b/src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp
index 514302abc9..4ae1762fe5 100644
--- a/src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp
+++ b/src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp
@@ -540,7 +540,6 @@ CDXLTokens::Init(CMemoryPool *mp)
                 GPOS_WSZ_LIT("AppendOnly, Column-oriented")},
                {EdxltokenRelStorageAppendOnlyRows,
                 GPOS_WSZ_LIT("AppendOnly, Row-oriented")},
-               {EdxltokenRelAppendOnlyVersion, 
GPOS_WSZ_LIT("AppendOnlyVersion")},
                {EdxltokenRelStorageMixedPartitioned, 
GPOS_WSZ_LIT("MixedPartitioned")},
                {EdxltokenRelStorageForeign, GPOS_WSZ_LIT("Foreign")},
                {EdxltokenRelStorageCompositeType, GPOS_WSZ_LIT("Composite")},
diff --git a/src/backend/gporca/server/src/unittest/CTestUtils.cpp 
b/src/backend/gporca/server/src/unittest/CTestUtils.cpp
index a83596fb4d..8d86c4374f 100644
--- a/src/backend/gporca/server/src/unittest/CTestUtils.cpp
+++ b/src/backend/gporca/server/src/unittest/CTestUtils.cpp
@@ -221,7 +221,6 @@ CTestUtils::PtabdescPlainWithColNameFormat(
                mp, mdid, nameTable,
                false,  // convert_hash_to_random
                IMDRelation::EreldistrRandom, IMDRelation::ErelstorageHeap,
-               IMDRelation::GetCurrentAOVersion(),
                0,       // ulExecuteAsUser
                -1,      // lockmode
                2,       // aclmode SELECT
diff --git 
a/src/backend/gporca/server/src/unittest/dxl/statistics/CStatisticsTest.cpp 
b/src/backend/gporca/server/src/unittest/dxl/statistics/CStatisticsTest.cpp
index 9cea72b698..5a63e2ad42 100644
--- a/src/backend/gporca/server/src/unittest/dxl/statistics/CStatisticsTest.cpp
+++ b/src/backend/gporca/server/src/unittest/dxl/statistics/CStatisticsTest.cpp
@@ -317,7 +317,6 @@ CStatisticsTest::PtabdescTwoColumnSource(CMemoryPool *mp,
                nameTable,
                false,  // convert_hash_to_random
                IMDRelation::EreldistrRandom, IMDRelation::ErelstorageHeap,
-               IMDRelation::GetCurrentAOVersion(),
                0,       // ulExecuteAsUser
                -1,      // lockmode
                2,       // aclmode SELECT
diff --git 
a/src/backend/gporca/server/src/unittest/gpopt/translate/CTranslatorDXLToExprTest.cpp
 
b/src/backend/gporca/server/src/unittest/gpopt/translate/CTranslatorDXLToExprTest.cpp
index 911f71fd3c..db1e455de7 100644
--- 
a/src/backend/gporca/server/src/unittest/gpopt/translate/CTranslatorDXLToExprTest.cpp
+++ 
b/src/backend/gporca/server/src/unittest/gpopt/translate/CTranslatorDXLToExprTest.cpp
@@ -253,7 +253,7 @@ public:
                        mp, mdid, CName(&strTableName), convert_hash_to_random,
                        CMDRelationGPDB::EreldistrMasterOnly,
                        CMDRelationGPDB::ErelstorageHeap,
-                       IMDRelation::GetCurrentAOVersion(), ulExecuteAsUser,
+                       ulExecuteAsUser,
                        -1, /* lockmode */
                        2,      /* aclmode SELECT */
                        0 /* UNASSIGNED_QUERYID */);


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

Reply via email to