Daya Venkatesan created HIVE-13625: -------------------------------------- Summary: Hive Prepared Statement when executed with escape characters in parameter fails Key: HIVE-13625 URL: https://issues.apache.org/jira/browse/HIVE-13625 Project: Hive Issue Type: Bug Reporter: Daya Venkatesan
When setting parameters to a Hive Prepared Statement, if the parameter has an odd number of escape characters, then the Statement fails. For example, I set one of the parameters to "/somepath/\044{yyyy}/\044{MM}/\044{dd}/". Here, I have escaped the dollar character with \044 because Hive gives an Atlas exception with "$" character. Now, when the parameters are getting set inside Hive, getCharIndexFromSqlByParamLocation throws an Exception. Hive records something called signal count. if (c == '\'' || c == '\\')// record the count of char "'" and char "\" { signalCount++; } And the parameter is set only if the signalCount %2 is 0. else if (c == cchar && signalCount % 2 == 0) {// check if the ? is really the parameter num++; if (num == paramLoc) { charIndex = i; break; } Since my parameter has three "\" characters, the signal Count modulo is not 0 and the parameter is not set at all throwing an exception. -- This message was sent by Atlassian JIRA (v6.3.4#6332)