我在理解 cassandra 为每种列类型提供的代码系统时遇到问题。
我正在使用 Node.js 驱动程序('cassandra-driver'),并使用 client.metadata.getTable
来检索元数据信息:
client.metadata.getTable( 'dev', 'artists', function ( err, table ) {
if ( !err ) {
table.columns.forEach( function ( column ) {
console.log( column );
});
}
});
列结果示例:
{ name: 'genre',
type:
{ code: 13,
info: null,
options: { reversed: false, frozen: false } } }
当我创建表时,我将“流派”设置为 varchar(所以我猜测 13 = varchar)。我试图理解的是所有代码数字及其类型之间的联系,而不需要猜测。我在文档和网上都没有找到有关此主题的任何内容。 有什么想法吗?
最佳答案
看看nodejs-driver/lib/types/index.js ( Node.js sources on gitHub . )
var dataTypes = {
custom: 0x0000,
ascii: 0x0001,
bigint: 0x0002,
blob: 0x0003,
boolean: 0x0004,
counter: 0x0005,
decimal: 0x0006,
double: 0x0007,
float: 0x0008,
int: 0x0009,
text: 0x000a,
timestamp: 0x000b,
uuid: 0x000c,
varchar: 0x000d,
varint: 0x000e,
timeuuid: 0x000f,
inet: 0x0010,
date: 0x0011,
time: 0x0012,
smallint: 0x0013,
tinyint: 0x0014,
list: 0x0020,
map: 0x0021,
set: 0x0022,
udt: 0x0030,
tuple: 0x0031,
所以你猜对了,13 等于 varchar。
编辑 这些值是十六进制表示形式。例如,varchar 0x000d(十六进制)等于 13(十进制)。但实际上我真的不知道为什么他们在这里使用十六进制而不是十进制。基本上,他们使用从 custom:0 (dec) 到 tuple:25 (dec) 的值来定义这些类型。
谷歌计算器可以帮助您进行十六进制和十进制之间的转换。示例:https://www.google.de/#q=0x000d+to+decimal
关于javascript - 列类型的 Cassandra 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33480053/