nrg4878 commented on code in PR #3276:
URL: https://github.com/apache/hive/pull/3276#discussion_r877230118
##########
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/MySQLConnectorProvider.java:
##########
@@ -90,10 +90,20 @@ protected String getDataType(String dbDataType, int size) {
// map any db specific types here.
switch (dbDataType.toLowerCase())
{
+ case "bit":
+ return toHiveBitType(size);
default:
mappedType = ColumnType.VOID_TYPE_NAME;
break;
}
return mappedType;
}
+
+ private String toHiveBitType(int size) {
+ if (size <= 1) {
+ return ColumnType.BOOLEAN_TYPE_NAME;
+ } else {
+ return ColumnType.BIGINT_TYPE_NAME;
Review Comment:
absolutely agreed on the BIT(1) that the intent is to store a boolean.
for BIT(n), if we represent the value as bigint(decimal) in hive, will the
original intent have been lost? a select would return **56** which visually
doesn't represent how it is originally stored. Just thinking out loud here, in
this case are we better off representing these BITS as a string in hive. So we
see something like this **"111000"** on a select.
I think in both cases, we can apply functions (or custom UDFs) to cast this
value back to BITs.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]