javascript - 列类型的 Cassandra 代码?

标签 javascript types cassandra numbers metadata

我在理解 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/

相关文章:

c++ - 为具有特定成员变量值的类创建不同类型

java - titan 图数据库中并发更新的问题

Cassandra - 选择而不复制

JavaScript 滚动检测和滚动速度

javascript - 如何在加载另一个脚本之前插入一个脚本

javascript - Jest 无法模拟特定功能

javascript - 使用javascript在MVC3中验证表单

c++ - 虽然循环在输入方面表现得很奇怪

haskell - 使用数据种类对函数类型的约束

c# - 为什么我不能在 CQL 中按主键排序?