test-insert-bigint-big-number-strings.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. var common = require('../../common');
  2. var connection = common.createConnection({ supportBigNumbers: true, bigNumberStrings: true });
  3. var assert = require('assert');
  4. connection.query([
  5. 'CREATE TEMPORARY TABLE `bigs` (',
  6. '`id` bigint NOT NULL AUTO_INCREMENT,',
  7. '`title` varchar(255),',
  8. 'PRIMARY KEY (`id`)',
  9. ') ENGINE=InnoDB DEFAULT CHARSET=utf8'
  10. ].join('\n'));
  11. connection.query("INSERT INTO bigs SET title='test', id=123");
  12. connection.query("INSERT INTO bigs SET title='test1'", function(err, result) {
  13. if (err) throw err;
  14. assert.strictEqual(result.insertId, 124);
  15. // > 24 bits
  16. connection.query("INSERT INTO bigs SET title='test', id=123456789");
  17. connection.query("INSERT INTO bigs SET title='test2'", function(err, result) {
  18. assert.strictEqual(result.insertId, 123456790);
  19. // big int
  20. connection.query("INSERT INTO bigs SET title='test', id=9007199254740992");
  21. connection.query("INSERT INTO bigs SET title='test3'", function(err, result) {
  22. assert.strictEqual(result.insertId, "9007199254740993");
  23. connection.query("INSERT INTO bigs SET title='test', id=90071992547409924");
  24. connection.query("INSERT INTO bigs SET title='test4'", function(err, result) {
  25. assert.strictEqual(result.insertId, "90071992547409925");
  26. connection.query("select * from bigs", function(err, result) {
  27. assert.strictEqual(result[0].id, "123");
  28. assert.strictEqual(result[1].id, "124");
  29. assert.strictEqual(result[2].id, "123456789");
  30. assert.strictEqual(result[3].id, "123456790");
  31. assert.strictEqual(result[4].id, "9007199254740992");
  32. assert.strictEqual(result[5].id, "9007199254740993");
  33. assert.strictEqual(result[6].id, "90071992547409924");
  34. assert.strictEqual(result[7].id, "90071992547409925");
  35. connection.end();
  36. });
  37. });
  38. });
  39. });
  40. });