You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Daniel Dai (JIRA)" <ji...@apache.org> on 2013/12/10 20:16:08 UTC

[jira] [Commented] (HIVE-5098) Fix metastore for SQL Server

    [ https://issues.apache.org/jira/browse/HIVE-5098?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13844562#comment-13844562 ] 

Daniel Dai commented on HIVE-5098:
----------------------------------

Here is the fix in datanucleus: http://www.datanucleus.org/servlet/jira/browse/NUCRDBMS-717

> Fix metastore for SQL Server
> ----------------------------
>
>                 Key: HIVE-5098
>                 URL: https://issues.apache.org/jira/browse/HIVE-5098
>             Project: Hive
>          Issue Type: Bug
>          Components: Metastore, Windows
>            Reporter: Daniel Dai
>            Assignee: Daniel Dai
>             Fix For: 0.13.0
>
>         Attachments: HIVE-5098-1.patch, HIVE-5098-2.patch
>
>
> We found one problem in testing SQL Server metastore. In Hive code, we use substring function with single parameter in datanucleus query (Expressiontree.java):
> {code}
> if (partitionColumnIndex == (partitionColumnCount - 1)) {
>         valString = "partitionName.substring(partitionName.indexOf(\"" + keyEqual + "\")+" + keyEqualLength + ")";
>       }
>       else {
>         valString = "partitionName.substring(partitionName.indexOf(\"" + keyEqual + "\")+" + keyEqualLength + ").substring(0, partitionName.substring(partitionName.indexOf(\"" + keyEqual + "\")+" + keyEqualLength + ").indexOf(\"/\"))";
>       }
> {code}
> SQL server does not support single parameter substring and datanucleus does not fill the gap.
> In the attached patch:
> 1. creates a new jar hive-datanucleusplugin.jar in $HIVE_HOME/lib
> 2. hive-datanucleusplugin.jar is a datanucleus plugin (include plugin.xml, MANIFEST.MF)
> 3. The plugin write a specific version of "substring" implementation for sqlserver (which avoid using single param SUBSTRING, which is not supported in SQLSever)
> 4. The plugin code only kicks in when the rmdb is sqlserver



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)