[
https://issues.apache.org/jira/browse/HIVE-22706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17012003#comment-17012003
]
Zoltan Haindrich commented on HIVE-22706:
-----------------------------------------
now that I've dived into this I'm starting to understand how unfortunate this
is....this issue is somewhat specific to metastore tables
* for boolean columns we use "CHAR(1)" for derby; I've tried the BOOLEAN type;
but it didn't really worked (so our jpa implementation (as it is now) doesn't
like the BOOLEAN datatype)
* somehow updating the could to true/false thru the metastore/jpa way make the
CHAR(1) column contain 'N' or 'Y'
* when we access the same value thru the JDBC storage handler; we will end up
in the [getBoolean() method of the CHAR
type|https://github.com/apache/derby/blob/4253dcf4aa37dc64cf7235d494cd2f00f72e678a/java/org.apache.derby.engine/org/apache/derby/iapi/types/SQLChar.java#L343]
which interprets "0" and "false" as false other values as true
right now I'm not sure where is the logic which transforms true/false into 'Y'
and 'N' - but as a result of that conversion; we will see a bunch of 'true'
values when using the sys database...
This could be probably fixed by extending the jdbc handler
[here|https://github.com/apache/hive/blob/36f58c5f8f4d7ea65eb6ec90b84e3bec513ee0a1/jdbc-handler/src/main/java/org/apache/hive/storage/jdbc/dao/JdbcRecordIterator.java#L112]
to also accept 'N' as a false value in case the underlying BOOLEAN column is
CHAR....
> Jdbc storage handler incorrectly interprets boolean column value in derby
> -------------------------------------------------------------------------
>
> Key: HIVE-22706
> URL: https://issues.apache.org/jira/browse/HIVE-22706
> Project: Hive
> Issue Type: Bug
> Reporter: Zoltan Haindrich
> Assignee: Zoltan Haindrich
> Priority: Major
>
> in case the column value is false ; the storage handler interprets it as true
--
This message was sent by Atlassian Jira
(v8.3.4#803005)