10bet官方网站文档之家
MySQL NDB集群API开发指南
下载本手册

2.3.14 NdbDictionary类

介绍设备的相关信息ndbdictionary.类,它存储有关的元信息NDB.数据库对象,如表、列和索引。

而创建和删除数据库对象的首选方法是通过MySQL服务器,ndbdictionary.也允许开发者通过NDB API执行这些任务。

NdbDictionary类概述

父类

没有一个

子类

字典对象

的枚举对应的数字ndbdictionary.子类,参见文件/存储/ ndb / include / ndbapi / NdbDictionary.hpp在NDB群集源树中。

描述

这是一个数据字典类,支持有关表,列和索引的查询。它还提供了定义这些数据库对象并删除它们的方法。使用模拟这些对象的内部类提供两种功能。这些包括以下内部类:

  • 表格使用表格

  • 用于创建表列

  • 指数用于处理二级索引

  • 字典用于创建数据库对象和制作架构查询

  • 事件用于处理集群中的事件。

额外的对象子类为使用NDB集群磁盘数据表以及外键约束所需的表空间、日志文件组、数据文件和撤消文件建模。

使用的表和索引使用ndbdictionary.无法从MySQL Server查看。

通过从NDB群集创建的NDB API丢弃索引导致不一致的。使用NDB API可以从中丢弃一个或多个索引的表将不再可通过MySQL在此类操作之后使用。在此事件中,必须删除表,然后使用MySQL重新创建,使其可以再次访问MySQL。

方法

ndbdictionary.本身没有公共实例方法,只有用于与之合作的静态方法NdbRecord对象。操作不使用NdbRecord是通过什么方式完成的ndbdictionary.子类实例方法。的公共方法如下表所示ndbdictionary.以及每种方法的目的或使用:

表2.36 NDBDictionary类方法和描述

的名字 描述
getEmptyBitmask () 返回一个空列存在位掩码,可用于NdbRecord
getfirstattrid() 获取指定的第一个属性IDNdbRecord目的
getRecordIndexName() 获取ndbrecord引用的索引对象的名称
getRecordRowLength() 获取存储一行数据所需的字节数NdbRecord
getRecordTableName () 获取由ndbrecord引用的表对象的名称
getRecordType () 获取ndbrecord的录音带
getValuePtr () 返回一个指针,该指针指向由属性ID指定的存储数据的开头NdbRecord
一片空白() 显示列的空位是真还是假
setnull() 设置列的空白位

类型

NdbDictionary定义了两个数据结构,列在这里:

NdbDictionary: AutoGrowSpecification

摘要

介绍设备的相关信息AutoGrowSpecification数据结构。

父类

ndbdictionary.

描述

AutoGrowSpecification数据结构是否定义在ndbdictionary.类的一些方法的参数或返回值表空间LogfileGroup课程。

成员

AutoGrowSpecification是否具有下表所示的成员:

表2.37 ndbdictionary :: autogrowspecification数据结构成员名称和描述

的名字 描述
min_free ???
max_size ???
文件大小 ???
filename_pattern ???

NdbDictionary: getEmptyBitmask ()

描述

返回一个空列的存在位掩码,可以与任何一起使用NdbRecord指明没有NdbRecord列将包含在操作中。

签名
静态const unsigned char * getEmptybitmask(空白)
参数

没有一个

返回值

一个空的位掩码。

ndbdictionary :: getFirstattrid()

描述

获取由此指定的第一个属性IDNdbRecord对象。回报错误的如果没有指定属性ID。

签名
静态BOOL GETFIRSTATTRIT(CONST NDBRecord *记录, Uint32&firstAttrId
参数

指向一个指针NdbRecord并引用属性(firstAttrID)。

返回值

布尔错误的,当无法获取到属性ID时。

NdbDictionary: getNextAttrId ()

描述

获取指定的下一个属性IDNdbRecord对象,后跟传入的属性ID。回报错误的当没有更多要返回的属性id时。

签名
getNextAttrId (const NdbRecord*记录, Uint32&attrId
参数

指向一个指针NdbRecord以及对属性ID的引用。

返回值

布尔错误的,当无法获取到属性ID时。

ndbdictionary :: getnullbitOffset()

描述

从启动时获取给定属性ID的NULL位的偏移量NdbRecord排。回报错误的如果属性ID不存在。

签名
gettnullbitoffset (const NdbRecord*记录, Uint32attrId, Uint32&字节, Uint32&少量
参数

一个NdbRecord记录在其中获取给定属性ID的空白位偏移量(attrId)。偏移量表示为字节数(字节)加上最后一个字节内的一些位(少量)。

返回值

布尔错误的如果不存在具有给定ID的属性。

NdbDictionary: getOffset ()

描述

获取给定属性ID的存储从开始的偏移量NdbRecord排。回报错误的如果不存在属性ID

签名
静态BOOL GetOffset(Const Ndbrecord *记录, Uint32attrId, Uint32&抵消
参数

抵消指定属性ID的存储开始NdbRecord排。

返回值

布尔错误的,如果找不到属性ID。

NdbDictionary: getRecordIndexName ()

描述

获取名称指数对象NdbRecord是指。

签名
static const char * getRecordIndexName(const ndbrecord *记录
参数

指向的指针NdbRecord为它取名字。

返回值

姓名(如果有的话)。否则,或者如果NdbRecord对象不属于IndexAccess类型,此方法返回null。

NdbDictionary: getRecordRowLength ()

描述

获取存储一行数据所需的字节数如下所述NdbRecord传递给此方法的结构。

签名
static Uint32 getRecordRowLength (const NdbRecord* . getRecordRowLength)记录
参数

一个NdbRecord对象。

返回值

每行所需的字节数。

ndbdictionary :: getRecordTablename()

描述

类的表对象的名称NdbRecord是指。如果记录不是,则此方法返回nullTableAccess

签名
static const char* getRecordTableName (const NdbRecord* . getRecordTableName)记录
参数

记录NdbRecord对象)用于获取表名。

返回值

表名,如果是,则为空NdbRecord对象的类型不是TableAccess

ndbdictionary :: getRecordtype()

描述

类的类型NdbRecord对象通过。

签名
getRecordType (const NdbRecord* record):
参数

一个NdbRecord对象。

返回值

RecordTypeNdbRecordIndexAccessTableAccess)。

NdbDictionary: getValuePtr ()

描述

通过查找存储在NdbRecord对象中的列的偏移量并返回行位置和偏移量的总和,返回指向属性ID指定的存储数据开始的指针。

签名

该方法同时提供row-const和non-row-const版本:

static const char* getValuePtr (const NdbRecord* . getValuePtr)记录, const char *, Uint32attrIdstatic char* getValuePtr (const NdbRecord* .记录,字符*, Uint32attrId
参数

指向一个指针NdbRecord描述行格式的对象,一个指向行起始数据的指针(常量在该方法的const版本中),以及列的属性ID,

返回值

指向行中属性开始的指针。如果属性不属于该属性,则为nullNdbRecord定义。

NdbDictionary: isNull ()

描述

指示给定列的空位是否设置为真正的错误的。从传递的情况下获得与行指针相关的空位的位置NdbRecord对象。属性的一部分,如果该列不可为空,或者该列不是NdbRecord定义,方法返回错误的

签名
const NdbRecord* . null (NdbRecord* . null)记录, const char *, Uint32attrId
参数

指向一个指针NdbRecord对象描述行格式、指向行数据开始的指针以及要检查的列的属性ID。

返回值

布尔真正的如果属性ID存在于此NdbRecord,可为空,并设置该行的空位;否则,布尔错误的

NDBDictionary :: Recordspecification.

介绍设备的相关信息RecordSpecification结构。

父类

ndbdictionary.

描述

此结构用于在创建时指定列和范围偏移量NdbRecord对象。

成员

构成此结构的元素如下表所示:

表2.38 NdbDictionary::RecordSpecification属性,包含类型和描述

的名字 类型 描述
柱子 此条目描述的列(列的最大大小定义了行的字段大小)。即使在创建一个NdbRecord对于索引,它必须指向从基础表获得的列,而不是从索引本身获得的列。
抵消 UINT32. 数据从一行开始的偏移量。对于读取blob, blob句柄(ndbblob.),而不是实际的Blob数据被写入行。这意味着必须至少有sizeof (NdbBlob *)必须在行中可用。
nullbit_byte_offset UINT32. 的字节的行开始处的偏移量少量。
nullbit_bit_in_byte UINT32. (鹿)。

nullbit_byte_offsetnullbit_bit_in_byte不用于非可用列。

有关更多信息,请参见2.3.22,“NdbRecord接口”

NdbDictionary: setNull ()

描述

将给定列的空位设置为提供的值。null位的偏移量从传递的值中获得NdbRecord对象。属性ID不是NdbRecord,或者如果它不可以,则此方法返回错误(-1)。

签名
NdbRecord是NdbRecord的缩写记录,字符*, Uint32attrIdbool,价值
参数

指向的指针记录NdbRecord描述行格式的对象;指向朝开始的指针数据;列的属性ID (attrId);和价值将空位设置为(真正的错误的)。

返回值

成功返回0;返回-1如果attrId不是部分记录,或不可为空。