列类型的 Cassandra 代码?

Cassandra code for column types?

我无法理解 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 } } }

当我创建 table 时,我将 'genre' 设置为 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) 的值来定义这些类型。

google计算器可以帮助您进行十六进制和十进制的转换。示例:https://www.google.de/#q=0x000d+to+decimal