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