Skip to content

Commit d5a1a23

Browse files
committed
BUG23729357: Fix fetching BIT datatype
Firing a select query on a table having a BIT datatype results in the following error: ValueError: Unknown column type None Adding the check for ColumnProtoType.BIT fixes this issue. Test case was added for regression.
1 parent 0f4f593 commit d5a1a23

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

lib/mysqlx/result.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -496,8 +496,10 @@ def _map_type(self):
496496
self._col_type = ColumnType.SET
497497
elif self._proto_type == ColumnProtoType.ENUM:
498498
self._col_type = ColumnType.ENUM
499+
elif self._proto_type == ColumnProtoType.BIT:
500+
self._col_type = ColumnType.BIT
499501
else:
500-
raise ValueError("Unknown column type {0}".format(self._col_type))
502+
raise ValueError("Unknown column type {0}".format(self._proto_type))
501503

502504

503505
class Warning(object):

tests/test_mysqlx_crud.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -577,18 +577,19 @@ def test_column_metadata(self):
577577

578578
self.node_session.sql(
579579
"CREATE TABLE {0}(age INT, name VARCHAR(50), pic VARBINARY(100), "
580-
"config JSON, created DATE)".format(table_name)).execute()
581-
self.node_session.sql(
582-
"INSERT INTO {0} VALUES (21, 'Fred', NULL, NULL, '2008-07-26')"
580+
"config JSON, created DATE, active BIT)"
583581
"".format(table_name)).execute()
584582
self.node_session.sql(
585-
"INSERT INTO {0} VALUES (28, 'Barney', NULL, NULL, '2012-03-12')"
583+
"INSERT INTO {0} VALUES (21, 'Fred', NULL, NULL, '2008-07-26', 0)"
586584
"".format(table_name)).execute()
587585
self.node_session.sql(
588-
"INSERT INTO {0} VALUES (42, 'Wilma', NULL, NULL, '1975-11-11')"
586+
"INSERT INTO {0} VALUES (28, 'Barney', NULL, NULL, '2012-03-12'"
587+
", 0)".format(table_name)).execute()
588+
self.node_session.sql(
589+
"INSERT INTO {0} VALUES (42, 'Wilma', NULL, NULL, '1975-11-11', 1)"
589590
"".format(table_name)).execute()
590591
self.node_session.sql(
591-
"INSERT INTO {0} VALUES (67, 'Betty', NULL, NULL, '2015-06-21')"
592+
"INSERT INTO {0} VALUES (67, 'Betty', NULL, NULL, '2015-06-21', 0)"
592593
"".format(table_name)).execute()
593594

594595
table = self.schema.get_table("test")
@@ -615,3 +616,8 @@ def test_column_metadata(self):
615616
self.assertEqual("config", col.get_column_name())
616617
self.assertEqual("test", col.get_table_name())
617618
self.assertEqual(mysqlx.ColumnType.JSON, col.get_type())
619+
620+
col = result.columns[5]
621+
self.assertEqual("active", col.get_column_name())
622+
self.assertEqual("test", col.get_table_name())
623+
self.assertEqual(mysqlx.ColumnType.BIT, col.get_type())

0 commit comments

Comments
 (0)