diff --git a/include/MetaInfo.h b/include/MetaInfo.h index 955c1494a45adba66af02d00328ea3c4ce39bfd2..36e3828e4659e0206517cff811487de4c4f0389b 100644 --- a/include/MetaInfo.h +++ b/include/MetaInfo.h @@ -107,12 +107,12 @@ public: virtual void setValuesOfEnumSet(std::vector& v); virtual void setValuesOfEnumSet(const char** v, size_t size); - virtual void setGenerated(bool Generated); - virtual void setHiddenRowKey(); + virtual void setGenerated(bool generated = true); + virtual void setHiddenRowKey(bool hiddenRowKey = true); virtual bool isHiddenRowKey(); - virtual void setPartitioned(); + virtual void setPartitioned(bool partitioned = true); virtual bool isPartitioned(); - virtual void setDependent(); + virtual void setDependent(bool dependent = true); virtual bool isDependent(); public: diff --git a/src/MetaInfo.cpp b/src/MetaInfo.cpp index 76447cec7667bc9ad128dc9011663b7d19350c1d..eccc3ac790c3da822ebe8a8725a751b3c742673f 100644 --- a/src/MetaInfo.cpp +++ b/src/MetaInfo.cpp @@ -406,34 +406,45 @@ void IColMeta::setFlag(unsigned char flag) { m_col->m_colMetaHeader->m_flag = flag; } -void IColMeta::setGenerated(bool Generated) +void IColMeta::setGenerated(bool generated) { - if (Generated) { + if (generated) { m_col->m_colMetaHeader->m_flag |= COL_FLAG_GENERATED; } else { - // 0xffff - COL_FLAG_GENERATED to binary 0b11111110 - m_col->m_colMetaHeader->m_flag &= (0xffff - COL_FLAG_GENERATED); + m_col->m_colMetaHeader->m_flag &= ~COL_FLAG_GENERATED; } } -void IColMeta::setHiddenRowKey() +void IColMeta::setHiddenRowKey(bool hiddenRowKey) { - m_col->m_colMetaHeader->m_flag |= COL_FLAG_HIDDEN_ROWKEY; + if (hiddenRowKey) { + m_col->m_colMetaHeader->m_flag |= COL_FLAG_HIDDEN_ROWKEY; + } else { + m_col->m_colMetaHeader->m_flag &= ~COL_FLAG_HIDDEN_ROWKEY; + } } bool IColMeta::isHiddenRowKey() { return m_col->m_colMetaHeader->m_flag & COL_FLAG_HIDDEN_ROWKEY; } -void IColMeta::setPartitioned() +void IColMeta::setPartitioned(bool partitioned) { - m_col->m_colMetaHeader->m_flag |= COL_FLAG_PARTITIONED; + if (partitioned) { + m_col->m_colMetaHeader->m_flag |= COL_FLAG_PARTITIONED; + } else{ + m_col->m_colMetaHeader->m_flag &= ~COL_FLAG_PARTITIONED; + } } bool IColMeta::isPartitioned() { return m_col->m_colMetaHeader->m_flag & COL_FLAG_PARTITIONED; } -void IColMeta::setDependent() +void IColMeta::setDependent(bool dependent) { - m_col->m_colMetaHeader->m_flag |= COL_FLAG_DEPENDENT; + if (dependent) { + m_col->m_colMetaHeader->m_flag |= COL_FLAG_DEPENDENT; + } else { + m_col->m_colMetaHeader->m_flag &= ~COL_FLAG_DEPENDENT; + } } bool IColMeta::isDependent() { diff --git a/unittest/lrTest.cpp b/unittest/lrTest.cpp index 86056db121275a1538ad5c352c2a7bdb2ecf2ab9..c7528fd0cad7c9bfd204e03ea29374013a6f297f 100644 --- a/unittest/lrTest.cpp +++ b/unittest/lrTest.cpp @@ -41,9 +41,12 @@ IColMeta* createColMeta(const char* name, int type, int length) colMeta->setEncoding(ENC); colMeta->setGenerated(false); colMeta->setGenerated(true); - colMeta->setHiddenRowKey(); - colMeta->setPartitioned(); - colMeta->setDependent(); + colMeta->setHiddenRowKey(false); + colMeta->setHiddenRowKey(true); + colMeta->setPartitioned(false); + colMeta->setPartitioned(true); + colMeta->setDependent(false); + colMeta->setDependent(true); colMeta->setOriginType("varchar"); colMeta->setPrecision(5); colMeta->setScale(3); diff --git a/unittest/memoryleakTest.cpp b/unittest/memoryleakTest.cpp index e1cbc3165dbf9a8450b7135ffcf4c683f5536c0d..1704eb388d3acdfc107e95cfdfe263c102308be0 100644 --- a/unittest/memoryleakTest.cpp +++ b/unittest/memoryleakTest.cpp @@ -38,9 +38,12 @@ IColMeta* createColMeta(const char* name, int type, int length) colMeta->setEncoding(ENC); colMeta->setGenerated(false); colMeta->setGenerated(true); - colMeta->setHiddenRowKey(); - colMeta->setPartitioned(); - colMeta->setDependent(); + colMeta->setHiddenRowKey(false); + colMeta->setHiddenRowKey(true); + colMeta->setPartitioned(false); + colMeta->setPartitioned(true); + colMeta->setDependent(false); + colMeta->setDependent(true); colMeta->setOriginType("varchar"); colMeta->setPrecision(5); colMeta->setScale(4);