test-nested-tables-query.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. var common = require('../../common');
  2. var connection = common.createConnection();
  3. var assert = require('assert');
  4. common.useTestDb(connection);
  5. var table = 'nested_test';
  6. connection.query([
  7. 'CREATE TEMPORARY TABLE `' + table + '` (',
  8. '`id` int(11) unsigned NOT NULL AUTO_INCREMENT,',
  9. '`title` varchar(255),',
  10. 'PRIMARY KEY (`id`)',
  11. ') ENGINE=InnoDB DEFAULT CHARSET=utf8'
  12. ].join('\n'));
  13. connection.query('INSERT INTO ' + table + ' SET ?', {title: 'test'});
  14. var options1 = {
  15. nestTables: true,
  16. sql: 'SELECT * FROM ' + table
  17. };
  18. var options2 = {
  19. nestTables: '_',
  20. sql: 'SELECT * FROM ' + table
  21. };
  22. var options3 = {
  23. rowsAsArray: true,
  24. sql: 'SELECT * FROM ' + table
  25. };
  26. var rows1, rows2, rows3, rows1e, rows2e, rows3e;
  27. connection.query(options1, function(err, _rows) {
  28. if (err) throw err;
  29. rows1 = _rows;
  30. });
  31. connection.query(options2, function(err, _rows) {
  32. if (err) throw err;
  33. rows2 = _rows;
  34. });
  35. connection.query(options3, function(err, _rows) {
  36. if (err) throw err;
  37. rows3 = _rows;
  38. });
  39. connection.execute(options1, function(err, _rows) {
  40. if (err) throw err;
  41. rows1e = _rows;
  42. });
  43. connection.execute(options2, function(err, _rows) {
  44. if (err) throw err;
  45. rows2e = _rows;
  46. });
  47. connection.execute(options3, function(err, _rows) {
  48. if (err) throw err;
  49. rows3e = _rows;
  50. connection.end();
  51. });
  52. process.on('exit', function() {
  53. assert.equal(rows1.length, 1);
  54. assert.equal(rows1[0].nested_test.id, 1);
  55. assert.equal(rows1[0].nested_test.title, 'test');
  56. assert.equal(rows2.length, 1);
  57. assert.equal(rows2[0].nested_test_id, 1);
  58. assert.equal(rows2[0].nested_test_title, 'test');
  59. assert.equal(Array.isArray(rows3[0]), true);
  60. assert.equal(rows3[0][0], 1);
  61. assert.equal(rows3[0][1], 'test');
  62. assert.deepEqual(rows1, rows1e);
  63. assert.deepEqual(rows2, rows2e);
  64. assert.deepEqual(rows3, rows3e);
  65. });