[ https://issues.apache.org/jira/browse/HIVE-10190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14485983#comment-14485983 ]
Reuben commented on HIVE-10190: ------------------------------- I think I maybe have a solution for this, but not sure how to test a 700+ KB query: {code} public static boolean validateASTForUnsupportedTokens(ASTNode ast) { Stack<ASTNode> fringe = new Stack<ASTNode>(); Set<String> unsupportedTokens = new HashSet<String>() {{ add("TOK_CHARSETLITERAL"); add("TOK_TABLESPLITSAMPLE"); }}; // Flat-DFS. fringe.push(ast); while (!fringe.isEmpty()) { ASTNode current = fringe.pop(); if (current.getChildCount() > 0) { for (Node child : current.getChildren()) { fringe.push((ASTNode)child); } } if (unsupportedTokens.contains(current.getText())) { return false; } } } {code} > CBO: AST mode checks for TABLESAMPLE with > AST.toString().contains("TOK_TABLESPLITSAMPLE") > ----------------------------------------------------------------------------------------- > > Key: HIVE-10190 > URL: https://issues.apache.org/jira/browse/HIVE-10190 > Project: Hive > Issue Type: Bug > Components: CBO > Affects Versions: 1.2.0 > Reporter: Gopal V > Assignee: Laljo John Pullokkaran > Priority: Trivial > Labels: perfomance > > {code} > public static boolean validateASTForUnsupportedTokens(ASTNode ast) { > String astTree = ast.toStringTree(); > // if any of following tokens are present in AST, bail out > String[] tokens = { "TOK_CHARSETLITERAL", "TOK_TABLESPLITSAMPLE" }; > for (String token : tokens) { > if (astTree.contains(token)) { > return false; > } > } > return true; > } > {code} > This is an issue for a SQL query which is bigger in AST form than in text > (~700kb). -- This message was sent by Atlassian JIRA (v6.3.4#6332)