mariadb/storage/ndb/include/kernel/AttributeDescriptor.hpp

210 lines
5.5 KiB
C++
Raw Normal View History

/* Copyright (C) 2003 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#ifndef ATTRIBUTE_DESCRIPTOR_HPP
#define ATTRIBUTE_DESCRIPTOR_HPP
class AttributeDescriptor {
friend class Dbdict;
ndb: wl-1732 support all charsets ndb/include/kernel/AttributeDescriptor.hpp: wl-1732 support all charsets ndb/include/kernel/ndb_limits.h: wl-1732 support all charsets ndb/include/kernel/signaldata/TuxBound.hpp: wl-1732 support all charsets ndb/include/util/NdbSqlUtil.hpp: wl-1732 support all charsets ndb/src/common/util/NdbSqlUtil.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbacc/Dbacc.hpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbacc/DbaccInit.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbacc/DbaccMain.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbdict/Dbdict.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtc/Dbtc.hpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/Dbtup.hpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbDictionaryImpl.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbOperationDefine.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbOperationSearch.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbScanOperation.cpp: wl-1732 support all charsets ndb/src/ndbapi/ndberror.c: wl-1732 support all charsets ndb/test/ndbapi/Makefile.am: wl-1732 support all charsets ndb/test/ndbapi/testOIBasic.cpp: wl-1732 support all charsets ndb/tools/desc.cpp: wl-1732 support all charsets
2004-12-12 18:37:36 +01:00
friend class Dbtc;
friend class Dbacc;
friend class Dbtup;
friend class Dbtux;
friend class SimulatedBlock;
private:
static void setType(Uint32 &, Uint32 type);
static void setSize(Uint32 &, Uint32 size);
static void setArray(Uint32 &, Uint32 arraySize);
static void setNullable(Uint32 &, Uint32 nullable);
static void setDKey(Uint32 &, Uint32 dkey);
static void setPrimaryKey(Uint32 &, Uint32 dkey);
static void setDynamic(Uint32 &, Uint32 dynamicInd);
static Uint32 getType(const Uint32 &);
static Uint32 getSize(const Uint32 &);
ndb: wl-1732 support all charsets ndb/include/kernel/AttributeDescriptor.hpp: wl-1732 support all charsets ndb/include/kernel/ndb_limits.h: wl-1732 support all charsets ndb/include/kernel/signaldata/TuxBound.hpp: wl-1732 support all charsets ndb/include/util/NdbSqlUtil.hpp: wl-1732 support all charsets ndb/src/common/util/NdbSqlUtil.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbacc/Dbacc.hpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbacc/DbaccInit.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbacc/DbaccMain.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbdict/Dbdict.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtc/Dbtc.hpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/Dbtup.hpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbDictionaryImpl.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbOperationDefine.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbOperationSearch.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbScanOperation.cpp: wl-1732 support all charsets ndb/src/ndbapi/ndberror.c: wl-1732 support all charsets ndb/test/ndbapi/Makefile.am: wl-1732 support all charsets ndb/test/ndbapi/testOIBasic.cpp: wl-1732 support all charsets ndb/tools/desc.cpp: wl-1732 support all charsets
2004-12-12 18:37:36 +01:00
static Uint32 getSizeInBytes(const Uint32 &);
static Uint32 getSizeInWords(const Uint32 &);
static Uint32 getArrayType(const Uint32 &);
static Uint32 getArraySize(const Uint32 &);
static Uint32 getNullable(const Uint32 &);
static Uint32 getDKey(const Uint32 &);
static Uint32 getPrimaryKey(const Uint32 &);
static Uint32 getDynamic(const Uint32 &);
};
/**
*
* a = Array type - 2 Bits -> Max 3 (Bit 0-1)
ndb: wl-1442 mysql vs ndb datatypes: prepare ndb/include/Makefile.am: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/kernel/AttributeDescriptor.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/kernel/signaldata/DictTabInfo.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndb_constants.h: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndb_types.h: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndbapi/NdbDictionary.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/util/NdbSqlUtil.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/common/debugger/signaldata/DictTabInfo.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbdict/Dbdict.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/vm/MetaData.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/Ndb.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbDictionaryImpl.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbDictionaryImpl.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbScanOperation.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup
2004-12-26 22:40:42 +01:00
* t = Attribute type - 5 Bits -> Max 31 (Bit 2-6)
* s = Attribute size - 3 Bits -> Max 7 (Bit 8-10)
* d = Disk based - 1 Bit 11
* n = Nullable - 1 Bit 12
* k = Distribution Key Ind - 1 Bit 13
* p = Primary key attribute - 1 Bit 14
* y = Dynamic attribute - 1 Bit 15
* z = Array size - 16 Bits -> Max 65535 (Bit 16-31)
*
* 1111111111222222222233
* 01234567890123456789012345678901
ndb: wl-1442 mysql vs ndb datatypes: prepare ndb/include/Makefile.am: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/kernel/AttributeDescriptor.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/kernel/signaldata/DictTabInfo.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndb_constants.h: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndb_types.h: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndbapi/NdbDictionary.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/util/NdbSqlUtil.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/common/debugger/signaldata/DictTabInfo.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbdict/Dbdict.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/vm/MetaData.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/Ndb.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbDictionaryImpl.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbDictionaryImpl.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbScanOperation.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup
2004-12-26 22:40:42 +01:00
* aattttt sssdnkpyzzzzzzzzzzzzzzzz
* aattsss n d k pyzzzzzzzzzzzzzzzz [ old format ]
*
*/
#define AD_ARRAY_TYPE_SHIFT (0)
#define AD_ARRAY_TYPE_MASK (3)
#define AD_TYPE_SHIFT (2)
ndb: wl-1442 mysql vs ndb datatypes: prepare ndb/include/Makefile.am: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/kernel/AttributeDescriptor.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/kernel/signaldata/DictTabInfo.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndb_constants.h: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndb_types.h: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndbapi/NdbDictionary.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/util/NdbSqlUtil.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/common/debugger/signaldata/DictTabInfo.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbdict/Dbdict.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/vm/MetaData.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/Ndb.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbDictionaryImpl.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbDictionaryImpl.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbScanOperation.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup
2004-12-26 22:40:42 +01:00
#define AD_TYPE_MASK (31)
ndb: wl-1442 mysql vs ndb datatypes: prepare ndb/include/Makefile.am: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/kernel/AttributeDescriptor.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/kernel/signaldata/DictTabInfo.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndb_constants.h: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndb_types.h: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndbapi/NdbDictionary.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/util/NdbSqlUtil.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/common/debugger/signaldata/DictTabInfo.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbdict/Dbdict.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/vm/MetaData.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/Ndb.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbDictionaryImpl.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbDictionaryImpl.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbScanOperation.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup
2004-12-26 22:40:42 +01:00
#define AD_SIZE_SHIFT (8)
#define AD_SIZE_MASK (7)
ndb: wl-1732 support all charsets ndb/include/kernel/AttributeDescriptor.hpp: wl-1732 support all charsets ndb/include/kernel/ndb_limits.h: wl-1732 support all charsets ndb/include/kernel/signaldata/TuxBound.hpp: wl-1732 support all charsets ndb/include/util/NdbSqlUtil.hpp: wl-1732 support all charsets ndb/src/common/util/NdbSqlUtil.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbacc/Dbacc.hpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbacc/DbaccInit.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbacc/DbaccMain.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbdict/Dbdict.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtc/Dbtc.hpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/Dbtup.hpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbDictionaryImpl.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbOperationDefine.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbOperationSearch.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbScanOperation.cpp: wl-1732 support all charsets ndb/src/ndbapi/ndberror.c: wl-1732 support all charsets ndb/test/ndbapi/Makefile.am: wl-1732 support all charsets ndb/test/ndbapi/testOIBasic.cpp: wl-1732 support all charsets ndb/tools/desc.cpp: wl-1732 support all charsets
2004-12-12 18:37:36 +01:00
#define AD_SIZE_IN_BYTES_SHIFT (3)
#define AD_SIZE_IN_WORDS_OFFSET (31)
#define AD_SIZE_IN_WORDS_SHIFT (5)
ndb: wl-1442 mysql vs ndb datatypes: prepare ndb/include/Makefile.am: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/kernel/AttributeDescriptor.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/kernel/signaldata/DictTabInfo.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndb_constants.h: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndb_types.h: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/ndbapi/NdbDictionary.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/include/util/NdbSqlUtil.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/common/debugger/signaldata/DictTabInfo.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbdict/Dbdict.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/kernel/vm/MetaData.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/Ndb.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbDictionaryImpl.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbDictionaryImpl.hpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup ndb/src/ndbapi/NdbScanOperation.cpp: unify api/kernel types deprecate 2-bit AttributeType, use 5-bit AttributeExtType upgradable from 4.1 via nr/sr/backup
2004-12-26 22:40:42 +01:00
#define AD_NULLABLE_SHIFT (12)
#define AD_DISTR_KEY_SHIFT (13)
#define AD_PRIMARY_KEY (14)
#define AD_DYNAMIC (15)
#define AD_ARRAY_SIZE_SHIFT (16)
#define AD_ARRAY_SIZE_MASK (65535)
inline
void
AttributeDescriptor::setType(Uint32 & desc, Uint32 type){
ASSERT_MAX(type, AD_TYPE_MASK, "AttributeDescriptor::setType");
desc |= (type << AD_TYPE_SHIFT);
}
inline
void
AttributeDescriptor::setSize(Uint32 & desc, Uint32 size){
ASSERT_MAX(size, AD_SIZE_MASK, "AttributeDescriptor::setSize");
desc |= (size << AD_SIZE_SHIFT);
}
inline
void
AttributeDescriptor::setArray(Uint32 & desc, Uint32 size){
ASSERT_MAX(size, AD_ARRAY_SIZE_MASK, "AttributeDescriptor::setArray");
desc |= (size << AD_ARRAY_SIZE_SHIFT);
if(size <= 1){
desc |= (size << AD_ARRAY_TYPE_SHIFT);
} else {
desc |= (2 << AD_ARRAY_TYPE_SHIFT);
}
}
inline
void
AttributeDescriptor::setNullable(Uint32 & desc, Uint32 nullable){
ASSERT_BOOL(nullable, "AttributeDescriptor::setNullable");
desc |= (nullable << AD_NULLABLE_SHIFT);
}
inline
void
AttributeDescriptor::setDKey(Uint32 & desc, Uint32 dkey){
ASSERT_BOOL(dkey, "AttributeDescriptor::setDKey");
desc |= (dkey << AD_DISTR_KEY_SHIFT);
}
inline
void
AttributeDescriptor::setPrimaryKey(Uint32 & desc, Uint32 dkey){
ASSERT_BOOL(dkey, "AttributeDescriptor::setPrimaryKey");
desc |= (dkey << AD_PRIMARY_KEY);
}
inline
void
AttributeDescriptor::setDynamic(Uint32 & desc, Uint32 dynamic){
ASSERT_BOOL(dynamic, "AttributeDescriptor::setDynamic");
desc |= (dynamic << AD_DYNAMIC);
}
/**
* Getters
*/
inline
Uint32
AttributeDescriptor::getType(const Uint32 & desc){
return (desc >> AD_TYPE_SHIFT) & AD_TYPE_MASK;
}
inline
Uint32
AttributeDescriptor::getSize(const Uint32 & desc){
return (desc >> AD_SIZE_SHIFT) & AD_SIZE_MASK;
}
ndb: wl-1732 support all charsets ndb/include/kernel/AttributeDescriptor.hpp: wl-1732 support all charsets ndb/include/kernel/ndb_limits.h: wl-1732 support all charsets ndb/include/kernel/signaldata/TuxBound.hpp: wl-1732 support all charsets ndb/include/util/NdbSqlUtil.hpp: wl-1732 support all charsets ndb/src/common/util/NdbSqlUtil.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbacc/Dbacc.hpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbacc/DbaccInit.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbacc/DbaccMain.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbdict/Dbdict.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtc/Dbtc.hpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/Dbtup.hpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp: wl-1732 support all charsets ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbDictionaryImpl.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbOperationDefine.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbOperationSearch.cpp: wl-1732 support all charsets ndb/src/ndbapi/NdbScanOperation.cpp: wl-1732 support all charsets ndb/src/ndbapi/ndberror.c: wl-1732 support all charsets ndb/test/ndbapi/Makefile.am: wl-1732 support all charsets ndb/test/ndbapi/testOIBasic.cpp: wl-1732 support all charsets ndb/tools/desc.cpp: wl-1732 support all charsets
2004-12-12 18:37:36 +01:00
inline
Uint32
AttributeDescriptor::getSizeInBytes(const Uint32 & desc){
return (getArraySize(desc) << getSize(desc))
>> AD_SIZE_IN_BYTES_SHIFT;
}
inline
Uint32
AttributeDescriptor::getSizeInWords(const Uint32 & desc){
return ((getArraySize(desc) << getSize(desc))
+ AD_SIZE_IN_WORDS_OFFSET)
>> AD_SIZE_IN_WORDS_SHIFT;
}
inline
Uint32
AttributeDescriptor::getArrayType(const Uint32 & desc){
return (desc >> AD_ARRAY_TYPE_SHIFT) & AD_ARRAY_TYPE_MASK;
}
inline
Uint32
AttributeDescriptor::getArraySize(const Uint32 & desc){
return (desc >> AD_ARRAY_SIZE_SHIFT) & AD_ARRAY_SIZE_MASK;
}
inline
Uint32
AttributeDescriptor::getNullable(const Uint32 & desc){
return (desc >> AD_NULLABLE_SHIFT) & 1;
}
inline
Uint32
AttributeDescriptor::getDKey(const Uint32 & desc){
return (desc >> AD_DISTR_KEY_SHIFT) & 1;
}
inline
Uint32
AttributeDescriptor::getPrimaryKey(const Uint32 & desc){
return (desc >> AD_PRIMARY_KEY) & 1;
}
inline
Uint32
AttributeDescriptor::getDynamic(const Uint32 & desc){
return (desc >> AD_DYNAMIC) & 1;
}
#endif