2015-11-02 3 views
2

У меня возникла проблема с пониманием системы кода. Cassandra обеспечивает для каждого типа столбца. Я использую драйвер Node.js ('Cassandra-водитель) и я использую 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). То, что я пытаюсь понять, - это связь между всеми номерами кода и их типом, без угадывания. Я не нашел ничего в этом вопросе в документах и ​​в Интернете. Любые мысли?

ответ

2

Посмотрите nodejs-водителя/Lib/типов/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 (hex) равен 13 (dec). Но на самом деле я не знаю, почему они используют hex здесь вместо dec. В основном они используют значения от custom: 0 (dec) до кортежа: 25 (dec) для определения этих типов.

Калькулятор google поможет вам с конверсией между шестнадцатеричным и dec. Пример: https://www.google.de/#q=0x000d+to+decimal

+0

Спасибо! но в чем смысл этих ценностей? являются ли эти шестнадцатеричные значения? –

+0

Да, они шестнадцатеричные. Я редактировал свой комментарий. К сожалению, я не могу дать вам объяснение, почему они используют hex вместо dec – HashtagMarkus

+0

ok cool. благодаря! –