Bug #100324 Connector does not return numbers greater or equal 2^31 properly
Submitted: 26 Jul 2020 13:26 Modified: 30 Jul 2020 22:07
Reporter: Dieter Rehbein Email Updates:
Status: Closed Impact on me:
None 
Category:Connector for Node.js Severity:S3 (Non-critical)
Version:8.0.21 OS:MacOS (Catalina (10.15.5))
Assigned to: CPU Architecture:Any

[26 Jul 2020 13:26] Dieter Rehbein
Description:
Introduced in version 8.0.21 (version 8.0.20 worked as expected).

Select a number larger or equal 2^31 (=2147483648) than you will get wrong values.

How to repeat:
Example Query:

select 
   table_name, 
   column_name, 
   character_maximum_length 
from information_schema.columns 
where data_type='longtext' 
order by table_name, ordinal_position;

mysql command line returns 4294967295 for column character_maximum_length. Version 8.0.20 of the nodes connector did that as well.

Since 8.0.21, a value of -1 is returned (instead of 4294967295).
[27 Jul 2020 11:27] MySQL Verification Team
Hi,

Having issues reproducing this. What version of nodejs are you running?

thanks
Bogdan
[27 Jul 2020 16:32] Dieter Rehbein
I am using node js version 12.14.1 (with electron 9.1.0)
[28 Jul 2020 13:48] MySQL Verification Team
When using MYSQLX to connect from node v12.16.3 to 8.0.20 or 8.0.21 I get identical results

[arhimed@localdev msb_ndb8_0_20]$ cat b100324.js
const mysqlx = require('@mysql/xdevapi');

const options = { host: 'localhost', user: 'msandbox', password: 'msandbox', port: '18021', ssl: true };
//const options = { host: 'localhost', user: 'msandbox', password: 'msandbox', port: '18020', ssl: true };
//const options = { host: 'localhost', user: 'msandbox', password: 'msandbox', port: '30920', ssl: false };

 mysqlx.getSession(options)
  .then((session) => {
    console.log(session.inspect());

    session.sql("select table_name, column_name, character_maximum_length from information_schema.columns where data_type='longtext' order by table_name, ordinal_position").execute().then(result => {
    //session.sql("select @@version").execute().then(result => {
       const rows = result.fetchAll();
       const xx  = rows[0][2];
       console.log(xx);

       console.log(rows);

    });

  });
[arhimed@localdev msb_ndb8_0_20]$
[arhimed@localdev msb_ndb8_0_20]$ node b100324.js
{
  auth: 'PLAIN',
  pooling: false,
  ssl: true,
  host: 'localhost',
  user: 'msandbox',
  port: '18021',
  dbUser: 'msandbox',
  socket: undefined
}
4294967295
[
  [ 'CHECK_CONSTRAINTS', 'CHECK_CLAUSE', 4294967295 ],
  [ 'COLUMNS', 'DATA_TYPE', 4294967295 ],
  [ 'COLUMNS', 'GENERATION_EXPRESSION', 4294967295 ],
  [ 'EVENTS', 'EVENT_DEFINITION', 4294967295 ],
  [ 'PARAMETERS', 'DATA_TYPE', 4294967295 ],
  [ 'ROUTINES', 'DATA_TYPE', 4294967295 ],
  [ 'ROUTINES', 'DTD_IDENTIFIER', 4294967295 ],
  [ 'ROUTINES', 'ROUTINE_DEFINITION', 4294967295 ],
  [ 'STATISTICS', 'EXPRESSION', 4294967295 ],
  [ 'ST_GEOMETRY_COLUMNS', 'GEOMETRY_TYPE_NAME', 4294967295 ],
  [ 'TRIGGERS', 'ACTION_STATEMENT', 4294967295 ],
  [ 'USER_ATTRIBUTES', 'ATTRIBUTE', 4294967295 ],
  [ 'VIEWS', 'VIEW_DEFINITION', 4294967295 ],
  [ 'events_statements_current', 'SQL_TEXT', 4294967295 ],
  [ 'events_statements_current', 'DIGEST_TEXT', 4294967295 ],
  [ 'events_statements_history', 'SQL_TEXT', 4294967295 ],
  [ 'events_statements_history', 'DIGEST_TEXT', 4294967295 ],
  [ 'events_statements_history_long', 'SQL_TEXT', 4294967295 ],
  [ 'events_statements_history_long', 'DIGEST_TEXT', 4294967295 ],
  [ 'events_statements_summary_by_digest', 'DIGEST_TEXT', 4294967295 ],
  [
    'events_statements_summary_by_digest',
    'QUERY_SAMPLE_TEXT',
    4294967295
  ],
  [ 'innodb_lock_waits', 'waiting_query', 4294967295 ],
  [ 'innodb_lock_waits', 'blocking_query', 4294967295 ],
  [ 'prepared_statements_instances', 'SQL_TEXT', 4294967295 ],
  [ 'processlist', 'current_statement', 4294967295 ],
  [ 'processlist', 'last_statement', 4294967295 ],
  [ 'replication_applier_filters', 'FILTER_RULE', 4294967295 ],
  [ 'replication_applier_global_filters', 'FILTER_RULE', 4294967295 ],
  [
    'replication_connection_status',
    'RECEIVED_TRANSACTION_SET',
    4294967295
  ],
  [
    'replication_group_member_stats',
    'TRANSACTIONS_COMMITTED_ALL_MEMBERS',
    4294967295
  ],
  [ 'schema_auto_increment_columns', 'data_type', 4294967295 ],
  [ 'schema_table_lock_waits', 'waiting_query', 4294967295 ],
  [ 'session', 'current_statement', 4294967295 ],
  [ 'session', 'last_statement', 4294967295 ],
  [ 'setup_instruments', 'DOCUMENTATION', 4294967295 ],
  [ 'setup_threads', 'DOCUMENTATION', 4294967295 ],
  [ 'statement_analysis', 'query', 4294967295 ],
  [ 'statements_with_errors_or_warnings', 'query', 4294967295 ],
  [ 'statements_with_full_table_scans', 'query', 4294967295 ],
  [
    'statements_with_runtimes_in_95th_percentile',
    'query',
    4294967295
  ],
  [ 'statements_with_sorting', 'query', 4294967295 ],
  [ 'statements_with_temp_tables', 'query', 4294967295 ],
  [ 'threads', 'PROCESSLIST_INFO', 4294967295 ],
  [ 'x$processlist', 'current_statement', 4294967295 ],
  [ 'x$processlist', 'last_statement', 4294967295 ],
  [ 'x$schema_table_lock_waits', 'waiting_query', 4294967295 ],
  [ 'x$session', 'current_statement', 4294967295 ],
  [ 'x$session', 'last_statement', 4294967295 ],
  [ 'x$statement_analysis', 'query', 4294967295 ],
  [ 'x$statements_with_errors_or_warnings', 'query', 4294967295 ],
  [ 'x$statements_with_full_table_scans', 'query', 4294967295 ],
  [
    'x$statements_with_runtimes_in_95th_percentile',
    'query',
    4294967295
  ],
  [ 'x$statements_with_sorting', 'query', 4294967295 ],
  [ 'x$statements_with_temp_tables', 'query', 4294967295 ]
]
^C
[28 Jul 2020 13:58] MySQL Verification Team
same with normal connector

[arhimed@localdev msb_ndb8_0_20]$ node b100324-nox.js
[
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'CHECK_CONSTRAINTS',
    COLUMN_NAME: 'CHECK_CLAUSE',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'COLUMNS',
    COLUMN_NAME: 'DATA_TYPE',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'COLUMNS',
    COLUMN_NAME: 'GENERATION_EXPRESSION',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'EVENTS',
    COLUMN_NAME: 'EVENT_DEFINITION',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'PARAMETERS',
    COLUMN_NAME: 'DATA_TYPE',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'ROUTINES',
    COLUMN_NAME: 'DATA_TYPE',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'ROUTINES',
    COLUMN_NAME: 'DTD_IDENTIFIER',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'ROUTINES',
    COLUMN_NAME: 'ROUTINE_DEFINITION',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'STATISTICS',
    COLUMN_NAME: 'EXPRESSION',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'ST_GEOMETRY_COLUMNS',
    COLUMN_NAME: 'GEOMETRY_TYPE_NAME',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'TRIGGERS',
    COLUMN_NAME: 'ACTION_STATEMENT',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'USER_ATTRIBUTES',
    COLUMN_NAME: 'ATTRIBUTE',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'VIEWS',
    COLUMN_NAME: 'VIEW_DEFINITION',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'events_statements_current',
    COLUMN_NAME: 'SQL_TEXT',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'events_statements_current',
    COLUMN_NAME: 'DIGEST_TEXT',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'events_statements_history',
    COLUMN_NAME: 'SQL_TEXT',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'events_statements_history',
    COLUMN_NAME: 'DIGEST_TEXT',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'events_statements_history_long',
    COLUMN_NAME: 'SQL_TEXT',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'events_statements_history_long',
    COLUMN_NAME: 'DIGEST_TEXT',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'events_statements_summary_by_digest',
    COLUMN_NAME: 'DIGEST_TEXT',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'events_statements_summary_by_digest',
    COLUMN_NAME: 'QUERY_SAMPLE_TEXT',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'innodb_lock_waits',
    COLUMN_NAME: 'waiting_query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'innodb_lock_waits',
    COLUMN_NAME: 'blocking_query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'prepared_statements_instances',
    COLUMN_NAME: 'SQL_TEXT',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'processlist',
    COLUMN_NAME: 'current_statement',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'processlist',
    COLUMN_NAME: 'last_statement',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'replication_applier_filters',
    COLUMN_NAME: 'FILTER_RULE',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
[28 Jul 2020 13:58] MySQL Verification Team
RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'replication_applier_global_filters',
    COLUMN_NAME: 'FILTER_RULE',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'replication_connection_status',
    COLUMN_NAME: 'RECEIVED_TRANSACTION_SET',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'replication_group_member_stats',
    COLUMN_NAME: 'TRANSACTIONS_COMMITTED_ALL_MEMBERS',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'schema_auto_increment_columns',
    COLUMN_NAME: 'data_type',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'schema_table_lock_waits',
    COLUMN_NAME: 'waiting_query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'session',
    COLUMN_NAME: 'current_statement',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'session',
    COLUMN_NAME: 'last_statement',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'setup_instruments',
    COLUMN_NAME: 'DOCUMENTATION',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'setup_threads',
    COLUMN_NAME: 'DOCUMENTATION',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'statement_analysis',
    COLUMN_NAME: 'query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'statements_with_errors_or_warnings',
    COLUMN_NAME: 'query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'statements_with_full_table_scans',
    COLUMN_NAME: 'query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'statements_with_runtimes_in_95th_percentile',
    COLUMN_NAME: 'query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'statements_with_sorting',
    COLUMN_NAME: 'query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'statements_with_temp_tables',
    COLUMN_NAME: 'query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'threads',
    COLUMN_NAME: 'PROCESSLIST_INFO',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'x$processlist',
    COLUMN_NAME: 'current_statement',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'x$processlist',
    COLUMN_NAME: 'last_statement',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'x$schema_table_lock_waits',
    COLUMN_NAME: 'waiting_query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'x$session',
    COLUMN_NAME: 'current_statement',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'x$session',
    COLUMN_NAME: 'last_statement',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'x$statement_analysis',
    COLUMN_NAME: 'query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'x$statements_with_errors_or_warnings',
    COLUMN_NAME: 'query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'x$statements_with_full_table_scans',
    COLUMN_NAME: 'query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'x$statements_with_runtimes_in_95th_percentile',
    COLUMN_NAME: 'query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'x$statements_with_sorting',
    COLUMN_NAME: 'query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  },
  RowDataPacket {
    '@@version': '8.0.21',
    TABLE_NAME: 'x$statements_with_temp_tables',
    COLUMN_NAME: 'query',
    CHARACTER_MAXIMUM_LENGTH: 4294967295
  }
]
[arhimed@localdev msb_ndb8_0_20]$ cat b100324-nox.js
let mysql = require('mysql');

let connection = mysql.createConnection({
    socket: '/tmp/mysql_sandbox8021.sock',
    host: 'localhost',
    port: 8021,
    user: 'bug',
    password: 'msandbox',
    database: 'information_schema'
});

let sql = "select @@version, table_name, column_name, character_maximum_length from information_schema.columns where data_type='longtext' order by table_name, ordinal_position";
connection.query(sql, (error, results, fields) => {
  if (error) {
    return console.error(error.message);
  }
  console.log(results);
});

connection.end();
[28 Jul 2020 13:59] MySQL Verification Team
I cannot reproduce this using 8.0.21 and node v12.16.3 using both "regular" and "X" client 

all best
Bogdan
[28 Jul 2020 18:14] Dieter Rehbein
Strange (I've tried several times switching between 8.0.21 and 8.0.19 and 8.0.20 before creating this bug-report). I will try it with Node 12.16.3 tomorrow and let you know.....
[28 Jul 2020 18:47] Dieter Rehbein
I'v tried it just now using node 12.16.3 and @mysql/xdevapi. 8.0.21

-------

dieter.rehbein@Dieters-Mini tests %  node --version
v12.16.3

-------

Testscript:

const mysqlx = require('@mysql/xdevapi');

const options = {
	host: 'localhost',
	port: 33060,
	user: 'root',
	password: '.....'
};

mysqlx.getSession(options).then(session => {

	const sql = "select table_name, column_name, character_maximum_length \
	from information_schema.columns \
	where data_type='longtext' order by table_name, ordinal_position";

	session.sql(sql).execute().then(result => {
		const rows = result.fetchAll();
		const xx = rows[0][2];
		console.log('xx=', xx);
		console.log(rows);
	});
});

---------

This is printed to the console:

dieter.rehbein@Dieters-Mini tests % node mysql-bug.js
xx= -1
[
  [ 'all_types', 'a_long_text', -1 ],
  [ 'CHECK_CONSTRAINTS', 'CHECK_CLAUSE', -1 ],
  [ 'COLUMNS', 'DATA_TYPE', -1 ],
  [ 'COLUMNS', 'GENERATION_EXPRESSION', -1 ],
  [ 'EVENTS', 'EVENT_DEFINITION', -1 ],
  [ 'events_statements_current', 'SQL_TEXT', -1 ],
  [ 'events_statements_current', 'DIGEST_TEXT', -1 ],
  [ 'events_statements_history', 'SQL_TEXT', -1 ],
  [ 'events_statements_history', 'DIGEST_TEXT', -1 ],
  [ 'events_statements_history_long', 'SQL_TEXT', -1 ],
  [ 'events_statements_history_long', 'DIGEST_TEXT', -1 ],
  [ 'events_statements_summary_by_digest', 'DIGEST_TEXT', -1 ],
  [ 'events_statements_summary_by_digest', 'QUERY_SAMPLE_TEXT', -1 ],
  [ 'innodb_lock_waits', 'waiting_query', -1 ],
  [ 'innodb_lock_waits', 'blocking_query', -1 ],
  [ 'PARAMETERS', 'DATA_TYPE', -1 ],
  [ 'prepared_statements_instances', 'SQL_TEXT', -1 ],
  [ 'processlist', 'current_statement', -1 ],
  [ 'processlist', 'last_statement', -1 ],
  [ 'replication_applier_filters', 'FILTER_RULE', -1 ],
  [ 'replication_applier_global_filters', 'FILTER_RULE', -1 ],
  [ 'replication_connection_status', 'RECEIVED_TRANSACTION_SET', -1 ],
  [
    'replication_group_member_stats',
    'TRANSACTIONS_COMMITTED_ALL_MEMBERS',
    -1
  ],
  [ 'ROUTINES', 'DATA_TYPE', -1 ],
  [ 'ROUTINES', 'DTD_IDENTIFIER', -1 ],
  [ 'ROUTINES', 'ROUTINE_DEFINITION', -1 ],
  [ 'schema_auto_increment_columns', 'data_type', -1 ],
  [ 'schema_table_lock_waits', 'waiting_query', -1 ],
  [ 'session', 'current_statement', -1 ],
  [ 'session', 'last_statement', -1 ],
  [ 'setup_instruments', 'DOCUMENTATION', -1 ],
  [ 'setup_threads', 'DOCUMENTATION', -1 ],
  [ 'ST_GEOMETRY_COLUMNS', 'GEOMETRY_TYPE_NAME', -1 ],
  [ 'statement_analysis', 'query', -1 ],
  [ 'statements_with_errors_or_warnings', 'query', -1 ],
  [ 'statements_with_full_table_scans', 'query', -1 ],
  [ 'statements_with_runtimes_in_95th_percentile', 'query', -1 ],
  [ 'statements_with_sorting', 'query', -1 ],
  [ 'statements_with_temp_tables', 'query', -1 ],
  [ 'STATISTICS', 'EXPRESSION', -1 ],
  [ 'threads', 'PROCESSLIST_INFO', -1 ],
  [ 'TRIGGERS', 'ACTION_STATEMENT', -1 ],
  [ 'VIEWS', 'VIEW_DEFINITION', -1 ],
  [ 'x$processlist', 'current_statement', -1 ],
  [ 'x$processlist', 'last_statement', -1 ],
  [ 'x$schema_table_lock_waits', 'waiting_query', -1 ],
  [ 'x$session', 'current_statement', -1 ],
  [ 'x$session', 'last_statement', -1 ],
  [ 'x$statement_analysis', 'query', -1 ],
  [ 'x$statements_with_errors_or_warnings', 'query', -1 ],
  [ 'x$statements_with_full_table_scans', 'query', -1 ],
  [ 'x$statements_with_runtimes_in_95th_percentile', 'query', -1 ],
  [ 'x$statements_with_sorting', 'query', -1 ],
  [ 'x$statements_with_temp_tables', 'query', -1 ]
]

-------------------

Output of the same test-script using @mysql/xdevapi 8.0.20:

dieter.rehbein@Dieters-Mini tests % node mysql-bug.js          
xx= 4294967295
[
  [ 'all_types', 'a_long_text', 4294967295 ],
  [ 'CHECK_CONSTRAINTS', 'CHECK_CLAUSE', 4294967295 ],
  [ 'COLUMNS', 'DATA_TYPE', 4294967295 ],
  [ 'COLUMNS', 'GENERATION_EXPRESSION', 4294967295 ],
  [ 'EVENTS', 'EVENT_DEFINITION', 4294967295 ],
  [ 'events_statements_current', 'SQL_TEXT', 4294967295 ],
  [ 'events_statements_current', 'DIGEST_TEXT', 4294967295 ],
  [ 'events_statements_history', 'SQL_TEXT', 4294967295 ],
  [ 'events_statements_history', 'DIGEST_TEXT', 4294967295 ],
  [ 'events_statements_history_long', 'SQL_TEXT', 4294967295 ],
  [ 'events_statements_history_long', 'DIGEST_TEXT', 4294967295 ],
  [ 'events_statements_summary_by_digest', 'DIGEST_TEXT', 4294967295 ],
  [
    'events_statements_summary_by_digest',
    'QUERY_SAMPLE_TEXT',
    4294967295
  ],
  [ 'innodb_lock_waits', 'waiting_query', 4294967295 ],
  [ 'innodb_lock_waits', 'blocking_query', 4294967295 ],
  [ 'PARAMETERS', 'DATA_TYPE', 4294967295 ],
  [ 'prepared_statements_instances', 'SQL_TEXT', 4294967295 ],
  [ 'processlist', 'current_statement', 4294967295 ],
  [ 'processlist', 'last_statement', 4294967295 ],
  [ 'replication_applier_filters', 'FILTER_RULE', 4294967295 ],
  [ 'replication_applier_global_filters', 'FILTER_RULE', 4294967295 ],
  [
    'replication_connection_status',
    'RECEIVED_TRANSACTION_SET',
    4294967295
  ],
  [
    'replication_group_member_stats',
    'TRANSACTIONS_COMMITTED_ALL_MEMBERS',
    4294967295
  ],
  [ 'ROUTINES', 'DATA_TYPE', 4294967295 ],
  [ 'ROUTINES', 'DTD_IDENTIFIER', 4294967295 ],
  [ 'ROUTINES', 'ROUTINE_DEFINITION', 4294967295 ],
  [ 'schema_auto_increment_columns', 'data_type', 4294967295 ],
  [ 'schema_table_lock_waits', 'waiting_query', 4294967295 ],
  [ 'session', 'current_statement', 4294967295 ],
  [ 'session', 'last_statement', 4294967295 ],
  [ 'setup_instruments', 'DOCUMENTATION', 4294967295 ],
  [ 'setup_threads', 'DOCUMENTATION', 4294967295 ],
  [ 'ST_GEOMETRY_COLUMNS', 'GEOMETRY_TYPE_NAME', 4294967295 ],
  [ 'statement_analysis', 'query', 4294967295 ],
  [ 'statements_with_errors_or_warnings', 'query', 4294967295 ],
  [ 'statements_with_full_table_scans', 'query', 4294967295 ],
  [
    'statements_with_runtimes_in_95th_percentile',
    'query',
    4294967295
  ],
  [ 'statements_with_sorting', 'query', 4294967295 ],
  [ 'statements_with_temp_tables', 'query', 4294967295 ],
  [ 'STATISTICS', 'EXPRESSION', 4294967295 ],
  [ 'threads', 'PROCESSLIST_INFO', 4294967295 ],
  [ 'TRIGGERS', 'ACTION_STATEMENT', 4294967295 ],
  [ 'VIEWS', 'VIEW_DEFINITION', 4294967295 ],
  [ 'x$processlist', 'current_statement', 4294967295 ],
  [ 'x$processlist', 'last_statement', 4294967295 ],
  [ 'x$schema_table_lock_waits', 'waiting_query', 4294967295 ],
  [ 'x$session', 'current_statement', 4294967295 ],
  [ 'x$session', 'last_statement', 4294967295 ],
  [ 'x$statement_analysis', 'query', 4294967295 ],
  [ 'x$statements_with_errors_or_warnings', 'query', 4294967295 ],
  [ 'x$statements_with_full_table_scans', 'query', 4294967295 ],
  [
    'x$statements_with_runtimes_in_95th_percentile',
    'query',
    4294967295
  ],
  [ 'x$statements_with_sorting', 'query', 4294967295 ],
  [ 'x$statements_with_temp_tables', 'query', 4294967295 ]
]
[28 Jul 2020 19:01] Dieter Rehbein
Ok, that's interesting: the problem does not exist on Windows (node version 12.18.0).

I also tried the latest LTS Version 12.18.3 on OS X => same problem.

Maybe this is a problem  the OS X-Version of nodejs.  But since the problem does not occur in @mysql/xdevapi 8.0.20, some change in the driver must have introduced this problem.
[28 Jul 2020 22:15] MySQL Verification Team
Just to check,

you have issues with MySQL Server 8.0.21 or @mysql/xdevapi:8.0.21 ?

As I do not see xdevapi 8.0.21 available on the npm, I was testing server 8.0.21

thanks
Bogdan
[28 Jul 2020 22:19] MySQL Verification Team
Hi,

Mea culpa, I misunderstood you have issues connecting to MySQL server 8.0.21 not using connector 8.0.21 (did not see it released at all and my npm was caching old one). I reinstalled the @mysql/xdevapi to 8.0.21 and reproduced the problem on Linux.

Thanks for the report
Bogdan

[arhimed@localdev msb_ndb8_0_20]$ node b100324.js
{
  auth: 'PLAIN',
  pooling: false,
  ssl: true,
  host: 'localhost',
  user: 'msandbox',
  port: '18021',
  dbUser: 'msandbox',
  socket: undefined
}
-1
[
  [ 'CHECK_CONSTRAINTS', 'CHECK_CLAUSE', -1 ],
  [ 'COLUMNS', 'DATA_TYPE', -1 ],
  [ 'COLUMNS', 'GENERATION_EXPRESSION', -1 ],
  [ 'EVENTS', 'EVENT_DEFINITION', -1 ],
  [ 'PARAMETERS', 'DATA_TYPE', -1 ],
  [ 'ROUTINES', 'DATA_TYPE', -1 ],
  [ 'ROUTINES', 'DTD_IDENTIFIER', -1 ],
  [ 'ROUTINES', 'ROUTINE_DEFINITION', -1 ],
  [ 'STATISTICS', 'EXPRESSION', -1 ],
  [ 'ST_GEOMETRY_COLUMNS', 'GEOMETRY_TYPE_NAME', -1 ],
  [ 'TRIGGERS', 'ACTION_STATEMENT', -1 ],
  [ 'USER_ATTRIBUTES', 'ATTRIBUTE', -1 ],
  [ 'VIEWS', 'VIEW_DEFINITION', -1 ],
  [ 'events_statements_current', 'SQL_TEXT', -1 ],
  [ 'events_statements_current', 'DIGEST_TEXT', -1 ],
  [ 'events_statements_history', 'SQL_TEXT', -1 ],
  [ 'events_statements_history', 'DIGEST_TEXT', -1 ],
  [ 'events_statements_history_long', 'SQL_TEXT', -1 ],
  [ 'events_statements_history_long', 'DIGEST_TEXT', -1 ],
  [ 'events_statements_summary_by_digest', 'DIGEST_TEXT', -1 ],
  [ 'events_statements_summary_by_digest', 'QUERY_SAMPLE_TEXT', -1 ],
  [ 'innodb_lock_waits', 'waiting_query', -1 ],
  [ 'innodb_lock_waits', 'blocking_query', -1 ],
  [ 'prepared_statements_instances', 'SQL_TEXT', -1 ],
  [ 'processlist', 'current_statement', -1 ],
  [ 'processlist', 'last_statement', -1 ],
  [ 'replication_applier_filters', 'FILTER_RULE', -1 ],
  [ 'replication_applier_global_filters', 'FILTER_RULE', -1 ],
  [ 'replication_connection_status', 'RECEIVED_TRANSACTION_SET', -1 ],
  [
    'replication_group_member_stats',
    'TRANSACTIONS_COMMITTED_ALL_MEMBERS',
    -1
  ],
  [ 'schema_auto_increment_columns', 'data_type', -1 ],
  [ 'schema_table_lock_waits', 'waiting_query', -1 ],
  [ 'session', 'current_statement', -1 ],
  [ 'session', 'last_statement', -1 ],
  [ 'setup_instruments', 'DOCUMENTATION', -1 ],
  [ 'setup_threads', 'DOCUMENTATION', -1 ],
  [ 'statement_analysis', 'query', -1 ],
  [ 'statements_with_errors_or_warnings', 'query', -1 ],
  [ 'statements_with_full_table_scans', 'query', -1 ],
  [ 'statements_with_runtimes_in_95th_percentile', 'query', -1 ],
  [ 'statements_with_sorting', 'query', -1 ],
  [ 'statements_with_temp_tables', 'query', -1 ],
  [ 'threads', 'PROCESSLIST_INFO', -1 ],
  [ 'x$processlist', 'current_statement', -1 ],
  [ 'x$processlist', 'last_statement', -1 ],
  [ 'x$schema_table_lock_waits', 'waiting_query', -1 ],
  [ 'x$session', 'current_statement', -1 ],
  [ 'x$session', 'last_statement', -1 ],
  [ 'x$statement_analysis', 'query', -1 ],
  [ 'x$statements_with_errors_or_warnings', 'query', -1 ],
  [ 'x$statements_with_full_table_scans', 'query', -1 ],
  [ 'x$statements_with_runtimes_in_95th_percentile', 'query', -1 ],
  [ 'x$statements_with_sorting', 'query', -1 ],
  [ 'x$statements_with_temp_tables', 'query', -1 ]
]
^C
[arhimed@localdev msb_ndb8_0_20]$
[30 Jul 2020 22:07] Philip Olson
Posted by developer:
 
Fixed as of the upcoming MySQL Connector/Node.js 8.0.22 release, and here's the proposed changelog entry from the documentation team:

Non-BIGINT values stored in BIGINT columns were not decoded properly in
result sets.

Thank you for the bug report.