Daniel Dai created HIVE-5098:
--------------------------------

             Summary: 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.12.0


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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to