constants.js 3.4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

const SCHEMALESS_PROTOCOL = {
  TSDB_SML_UNKNOWN_PROTOCOL: 0,
  TSDB_SML_LINE_PROTOCOL: 1,
  TSDB_SML_TELNET_PROTOCOL: 2,
  TSDB_SML_JSON_PROTOCOL: 3
}
const SCHEMALESS_PRECISION = {
  TSDB_SML_TIMESTAMP_NOT_CONFIGURED : 0,
  TSDB_SML_TIMESTAMP_HOURS : 1,
  TSDB_SML_TIMESTAMP_MINUTES : 2,
  TSDB_SML_TIMESTAMP_SECONDS : 3,
  TSDB_SML_TIMESTAMP_MILLI_SECONDS : 4,
  TSDB_SML_TIMESTAMP_MICRO_SECONDS : 5,
  TSDB_SML_TIMESTAMP_NANO_SECONDS : 6
}
const typeCodesToName = {
  0: 'Null',
  1: 'Boolean',
  2: 'Tiny Int',
  3: 'Small Int',
  4: 'Int',
  5: 'Big Int',
  6: 'Float',
  7: 'Double',
  8: 'Binary',
  9: 'Timestamp',
  10: 'Nchar',
  11: 'Tinyint Unsigned',
  12: 'Smallint Unsigned',
  13: 'Int Unsigned',
  14: 'Bigint Unsigned',
}

/**
 * @function
 * @param {number} typecode - The code to get the name of the type for
 * @return {string} Name of the field type
 */
function getType(typecode) {
  return typeCodesToName[typecode];
}
S
StoneT2000 已提交
43 44 45 46
/**
 * Contains the the definitions/values assigned to various field types
 * @module FieldTypes
 */
47 48 49
/**
 * TDengine Field Types and their type codes
 * @typedef {Object} FieldTypes
S
StoneT2000 已提交
50
 * @global
51 52 53 54 55 56 57 58 59 60 61 62
 * @property {number} C_NULL - Null
 * @property {number} C_BOOL - Boolean. Note, 0x02 is the C_BOOL_NULL value.
 * @property {number} C_TINYINT - Tiny Int, values in the range [-2^7+1, 2^7-1]. Note, -2^7 has been used as the C_TINYINT_NULL value
 * @property {number} C_SMALLINT - Small Int, values in the range [-2^15+1, 2^15-1]. Note, -2^15 has been used as the C_SMALLINT_NULL value
 * @property {number} C_INT - Int, values in the range [-2^31+1, 2^31-1]. Note, -2^31 has been used as the C_INT_NULL value
 * @property {number} C_BIGINT - Big Int, values in the range [-2^59, 2^59].
 * @property {number} C_FLOAT - Float, values in the range [-3.4E38, 3.4E38], accurate up to 6-7 decimal places.
 * @property {number} C_DOUBLE - Double, values in the range [-1.7E308, 1.7E308], accurate up to 15-16 decimal places.
 * @property {number} C_BINARY - Binary, encoded in utf-8.
 * @property {number} C_TIMESTAMP - Timestamp in format "YYYY:MM:DD HH:MM:SS.MMM". Measured in number of milliseconds passed after
                                    1970-01-01 08:00:00.000 GMT.
 * @property {number} C_NCHAR - NChar field type encoded in ASCII, a wide string.
63
 *                                  
64 65
 * @property {number} C_TIMESTAMP_MILLI - The code for millisecond timestamps, as returned by libtaos.taos_result_precision(result).
 * @property {number} C_TIMESTAMP_MICRO - The code for microsecond timestamps, as returned by libtaos.taos_result_precision(result).
66 67
 */
module.exports = {
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
  C_NULL: 0,
  C_BOOL: 1,
  C_TINYINT: 2,
  C_SMALLINT: 3,
  C_INT: 4,
  C_BIGINT: 5,
  C_FLOAT: 6,
  C_DOUBLE: 7,
  C_BINARY: 8,
  C_TIMESTAMP: 9,
  C_NCHAR: 10,
  C_TINYINT_UNSIGNED: 11,
  C_SMALLINT_UNSIGNED: 12,
  C_INT_UNSIGNED: 13,
  C_BIGINT_UNSIGNED: 14,
  // NULL value definition
  // NOTE: These values should change according to C definition in tsdb.h
  C_BOOL_NULL: 2,
  C_TINYINT_NULL: -128,
  C_TINYINT_UNSIGNED_NULL: 255,
  C_SMALLINT_NULL: -32768,
  C_SMALLINT_UNSIGNED_NULL: 65535,
  C_INT_NULL: -2147483648,
  C_INT_UNSIGNED_NULL: 4294967295,
  C_BIGINT_NULL: -9223372036854775808n,
  C_BIGINT_UNSIGNED_NULL: 18446744073709551615n,
  C_FLOAT_NULL: 2146435072,
  C_DOUBLE_NULL: -9223370937343148032,
  C_NCHAR_NULL: 4294967295,
  C_BINARY_NULL: 255,
  C_TIMESTAMP_MILLI: 0,
  C_TIMESTAMP_MICRO: 1,
  getType,
  SCHEMALESS_PROTOCOL,
  SCHEMALESS_PRECISION
S
StoneT2000 已提交
103 104
}