test-execute-nocolumndef.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. var common = require('../../common');
  2. var connection = common.createConnection();
  3. var assert = require('assert');
  4. // https://github.com/sidorares/node-mysql2/issues/130
  5. // https://github.com/sidorares/node-mysql2/issues/37
  6. // binary protocol examples where `prepare` returns no column definitions but execute() does return fields/rows
  7. var rows;
  8. var fields;
  9. connection.execute('explain SELECT 1', function(err, _rows, _fields) {
  10. if (err) throw err;
  11. rows = _rows
  12. fields = _fields;
  13. connection.end();
  14. });
  15. var expectedRows;
  16. var expectedFields;
  17. process.on('exit', function() {
  18. assert.deepEqual(rows, expectedRows);
  19. var fi = fields.map(function(c) { return c.inspect() });
  20. assert.deepEqual(fi, expectedFields);
  21. });
  22. expectedFields = [{ catalog: 'def',
  23. schema: '',
  24. table: '',
  25. orgTable: '',
  26. name: 'id',
  27. orgName: '',
  28. characterSet: 63,
  29. columnLength: 3,
  30. columnType: 8,
  31. flags: 161,
  32. decimals: 0 },
  33. { catalog: 'def',
  34. schema: '',
  35. table: '',
  36. orgTable: '',
  37. name: 'select_type',
  38. orgName: '',
  39. characterSet: 33,
  40. columnLength: 57,
  41. columnType: 253,
  42. flags: 1,
  43. decimals: 31 },
  44. { catalog: 'def',
  45. schema: '',
  46. table: '',
  47. orgTable: '',
  48. name: 'table',
  49. orgName: '',
  50. characterSet: 33,
  51. columnLength: 192,
  52. columnType: 253,
  53. flags: 0,
  54. decimals: 31 },
  55. { catalog: 'def',
  56. schema: '',
  57. table: '',
  58. orgTable: '',
  59. name: 'type',
  60. orgName: '',
  61. characterSet: 33,
  62. columnLength: 30,
  63. columnType: 253,
  64. flags: 0,
  65. decimals: 31 },
  66. { catalog: 'def',
  67. schema: '',
  68. table: '',
  69. orgTable: '',
  70. name: 'possible_keys',
  71. orgName: '',
  72. characterSet: 33,
  73. columnLength: 12288,
  74. columnType: 253,
  75. flags: 0,
  76. decimals: 31 },
  77. { catalog: 'def',
  78. schema: '',
  79. table: '',
  80. orgTable: '',
  81. name: 'key',
  82. orgName: '',
  83. characterSet: 33,
  84. columnLength: 192,
  85. columnType: 253,
  86. flags: 0,
  87. decimals: 31 },
  88. { catalog: 'def',
  89. schema: '',
  90. table: '',
  91. orgTable: '',
  92. name: 'key_len',
  93. orgName: '',
  94. characterSet: 33,
  95. columnLength: 12288,
  96. columnType: 253,
  97. flags: 0,
  98. decimals: 31 },
  99. { catalog: 'def',
  100. schema: '',
  101. table: '',
  102. orgTable: '',
  103. name: 'ref',
  104. orgName: '',
  105. characterSet: 33,
  106. columnLength: 3072,
  107. columnType: 253,
  108. flags: 0,
  109. decimals: 31 },
  110. { catalog: 'def',
  111. schema: '',
  112. table: '',
  113. orgTable: '',
  114. name: 'rows',
  115. orgName: '',
  116. characterSet: 63,
  117. columnLength: 10,
  118. columnType: 8,
  119. flags: 160,
  120. decimals: 0 },
  121. { catalog: 'def',
  122. schema: '',
  123. table: '',
  124. orgTable: '',
  125. name: 'Extra',
  126. orgName: '',
  127. characterSet: 33,
  128. columnLength: 765,
  129. columnType: 253,
  130. flags: 1,
  131. decimals: 31 }];
  132. expectedRows = [ {id: 1,
  133. select_type: 'SIMPLE',
  134. table: null,
  135. type: null,
  136. possible_keys: null,
  137. key: null,
  138. key_len: null,
  139. ref: null,
  140. rows: null,
  141. Extra: 'No tables used' }];