[ https://issues.apache.org/jira/browse/HIVE-22929?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17047308#comment-17047308 ]
Zoltan Haindrich commented on HIVE-22929: ----------------------------------------- [~kkasa] do we need the power of regexp to address the original issue? I think it was something like: {code} str.replaceAll("``","`") {code} I think a special tailored utility function would probably perform even better...could you see how this performs: {code} public String fx(String s, char c) { StringBuilder sb = new StringBuilder(); char[] cc = s.toCharArray(); char l = 0; for (int i = 0; i < cc.length; i++) { char curr = cc[i]; if (l == '`') { l = 0; continue; } else { l = curr; } sb.append(curr); } return sb.toString(); } {code} note: for performance measurements you can write tests under the itests/hive-jmh ; there are a few there already. ...I think another approach could be: since we have a lexer here (somewhere) ...we might be able to convince it to process these escapings/etc for us - not sure at what cost it could do that... I would recommend to not change this all over the place - it might not affect general performance; for example the performance gain at places like a ddltask is irrelevant...I think it's best to focus on the performance issue at hand - the impact of the same issue is usually neglegible at other places [~gopalv] Could you please provide a sample query for this? it might be interesting to take a look at it - in case it heats up something like a "String.replaceAll" function > Performance: quoted identifier parsing uses throwaway Regex via > String.replaceAll() > ----------------------------------------------------------------------------------- > > Key: HIVE-22929 > URL: https://issues.apache.org/jira/browse/HIVE-22929 > Project: Hive > Issue Type: Bug > Reporter: Gopal Vijayaraghavan > Assignee: Krisztian Kasa > Priority: Major > Attachments: HIVE-22929.1.patch, String.replaceAll.png > > > !String.replaceAll.png! > https://github.com/apache/hive/blob/master/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g#L530 > {code} > '`' ( '``' | ~('`') )* '`' { setText(getText().substring(1, > getText().length() -1 ).replaceAll("``", "`")); } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)