Repository: hive Updated Branches: refs/heads/master 9e27ad08f -> 80697867a
HIVE-18373: Make it easier to search for column name in a table (Madhudeep Petwal via Zoltan Haindrich) Signed-off-by: Zoltan Haindrich <k...@rxd.hu> Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/80697867 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/80697867 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/80697867 Branch: refs/heads/master Commit: 80697867afc219924c67a55a2f479b7af51ff393 Parents: 9e27ad0 Author: Madhudeep Petwal <madhudeep11pet...@gmail.com> Authored: Fri Feb 16 15:49:51 2018 +0100 Committer: Zoltan Haindrich <k...@rxd.hu> Committed: Fri Feb 16 15:50:21 2018 +0100 ---------------------------------------------------------------------- .../org/apache/hadoop/hive/ql/exec/DDLTask.java | 56 ++++++- .../hive/ql/parse/DDLSemanticAnalyzer.java | 42 ++++- .../apache/hadoop/hive/ql/parse/HiveParser.g | 4 +- .../hadoop/hive/ql/plan/ShowColumnsDesc.java | 27 ++++ .../test/queries/clientnegative/show_columns2.q | 7 +- .../test/queries/clientnegative/show_columns3.q | 3 +- .../test/queries/clientpositive/show_columns.q | 17 +- .../results/clientnegative/show_columns2.q.out | 28 +++- .../results/clientnegative/show_columns3.q.out | 2 +- .../results/clientpositive/show_columns.q.out | 160 ++++++++++++++++++- 10 files changed, 322 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/80697867/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java index 3716c15..16b9107 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java @@ -48,6 +48,8 @@ import java.util.Set; import java.util.SortedSet; import java.util.TreeMap; import java.util.TreeSet; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.concurrent.ExecutionException; import com.google.common.collect.ImmutableSet; @@ -2708,16 +2710,28 @@ public class DDLTask extends Task<DDLWork> implements Serializable { return 0; } + /** + * Write a list of the columns in the table to a file. + * + * @param db + * The database in context. + * @param showCols + * A ShowColumnsDesc for columns we're interested in. + * @return Returns 0 when execution succeeds. + * @throws HiveException + * Throws this exception if an unexpected error occurs. + */ public int showColumns(Hive db, ShowColumnsDesc showCols) throws HiveException { Table table = db.getTable(showCols.getTableName()); // write the results in the file - DataOutputStream outStream = getOutputStream(showCols.getResFile());; + DataOutputStream outStream = getOutputStream(showCols.getResFile()); try { - List<FieldSchema> cols = table.getCols(); - cols.addAll(table.getPartCols()); + List<FieldSchema> allCols = table.getCols(); + allCols.addAll(table.getPartCols()); + List<FieldSchema> cols = getColumnsByPattern(allCols,showCols.getPattern()); // In case the query is served by HiveServer2, don't pad it with spaces, // as HiveServer2 output is consumed by JDBC/ODBC clients. boolean isOutputPadded = !SessionState.get().isHiveServerQuery(); @@ -2735,6 +2749,42 @@ public class DDLTask extends Task<DDLWork> implements Serializable { } /** + * Returns a sorted list of columns matching a column pattern. + * + * @param cols + * Columns of a table. + * @param columnPattern + * we want to find columns similar to a column pattern. + * @return sorted list of columns. + */ + private List<FieldSchema> getColumnsByPattern(List<FieldSchema> cols, String columnPattern) { + + if(columnPattern == null) { + columnPattern = "*"; + } + columnPattern = columnPattern.toLowerCase(); + columnPattern = columnPattern.replaceAll("\\*", ".*"); + Pattern pattern = Pattern.compile(columnPattern); + Matcher matcher = pattern.matcher(""); + + SortedSet<FieldSchema> sortedCol = new TreeSet<>( new Comparator<FieldSchema>() { + @Override + public int compare(FieldSchema f1, FieldSchema f2) { + return f1.getName().compareTo(f2.getName()); + } + }); + + for(FieldSchema column : cols) { + matcher.reset(column.getName()); + if(matcher.matches()) { + sortedCol.add(column); + } + } + + return new ArrayList<FieldSchema>(sortedCol); + } + + /** * Write a list of the user defined functions to a file. * @param db * http://git-wip-us.apache.org/repos/asf/hive/blob/80697867/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java index 41d878f..8ad6fce 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java @@ -2556,17 +2556,45 @@ public class DDLSemanticAnalyzer extends BaseSemanticAnalyzer { } private void analyzeShowColumns(ASTNode ast) throws SemanticException { + + // table name has to be present so min child 1 and max child 4 + if (ast.getChildCount() > 4 || ast.getChildCount()<1) { + throw new SemanticException(ErrorMsg.INVALID_AST_TREE.getMsg(ast.toStringTree())); + } + String tableName = getUnescapedName((ASTNode) ast.getChild(0)); - if (ast.getChildCount() > 1) { - if (tableName.contains(".")) { - throw new SemanticException("Duplicates declaration for database name"); - } - tableName = getUnescapedName((ASTNode) ast.getChild(1)) + "." + tableName; + + ShowColumnsDesc showColumnsDesc = null; + String pattern = null; + switch(ast.getChildCount()) { + case 1: // only tablename no pattern and db + showColumnsDesc = new ShowColumnsDesc(ctx.getResFile(), tableName); + break; + case 2: // tablename and pattern + pattern = unescapeSQLString(ast.getChild(1).getText()); + showColumnsDesc = new ShowColumnsDesc(ctx.getResFile(), tableName, pattern); + break; + case 3: // specifies db + if (tableName.contains(".")) { + throw new SemanticException("Duplicates declaration for database name"); + } + tableName = getUnescapedName((ASTNode) ast.getChild(2)) + "." + tableName; + showColumnsDesc = new ShowColumnsDesc(ctx.getResFile(), tableName); + break; + case 4: // specifies db and pattern + if (tableName.contains(".")) { + throw new SemanticException("Duplicates declaration for database name"); + } + tableName = getUnescapedName((ASTNode) ast.getChild(2)) + "." + tableName; + pattern = unescapeSQLString(ast.getChild(3).getText()); + showColumnsDesc = new ShowColumnsDesc(ctx.getResFile(), tableName, pattern); + break; + default: + break; } + Table tab = getTable(tableName); inputs.add(new ReadEntity(tab)); - - ShowColumnsDesc showColumnsDesc = new ShowColumnsDesc(ctx.getResFile(), tableName); rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(), showColumnsDesc), conf)); setFetchTask(createFetchTask(showColumnsDesc.getSchema())); http://git-wip-us.apache.org/repos/asf/hive/blob/80697867/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g index 3e84fd6..e431271 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g @@ -1532,8 +1532,8 @@ showStatement | KW_SHOW KW_TABLES ((KW_FROM|KW_IN) db_name=identifier)? (KW_LIKE showStmtIdentifier|showStmtIdentifier)? -> ^(TOK_SHOWTABLES (TOK_FROM $db_name)? showStmtIdentifier?) | KW_SHOW KW_VIEWS ((KW_FROM|KW_IN) db_name=identifier)? (KW_LIKE showStmtIdentifier|showStmtIdentifier)? -> ^(TOK_SHOWVIEWS (TOK_FROM $db_name)? showStmtIdentifier?) | KW_SHOW KW_MATERIALIZED KW_VIEWS ((KW_FROM|KW_IN) db_name=identifier)? (KW_LIKE showStmtIdentifier|showStmtIdentifier)? -> ^(TOK_SHOWMATERIALIZEDVIEWS (TOK_FROM $db_name)? showStmtIdentifier?) - | KW_SHOW KW_COLUMNS (KW_FROM|KW_IN) tableName ((KW_FROM|KW_IN) db_name=identifier)? - -> ^(TOK_SHOWCOLUMNS tableName $db_name?) + | KW_SHOW KW_COLUMNS (KW_FROM|KW_IN) tableName ((KW_FROM|KW_IN) db_name=identifier)? (KW_LIKE showStmtIdentifier|showStmtIdentifier)? + -> ^(TOK_SHOWCOLUMNS tableName (TOK_FROM $db_name)? showStmtIdentifier?) | KW_SHOW KW_FUNCTIONS (KW_LIKE showFunctionIdentifier|showFunctionIdentifier)? -> ^(TOK_SHOWFUNCTIONS KW_LIKE? showFunctionIdentifier?) | KW_SHOW KW_PARTITIONS tabName=tableName partitionSpec? -> ^(TOK_SHOWPARTITIONS $tabName partitionSpec?) | KW_SHOW KW_CREATE ( http://git-wip-us.apache.org/repos/asf/hive/blob/80697867/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowColumnsDesc.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowColumnsDesc.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowColumnsDesc.java index 7c6173e..7047f56 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowColumnsDesc.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowColumnsDesc.java @@ -24,6 +24,7 @@ import org.apache.hadoop.hive.ql.plan.Explain.Level; public class ShowColumnsDesc extends DDLDesc implements Serializable { private static final long serialVersionUID = 1L; + String pattern; String tableName; String resFile; /** @@ -63,6 +64,32 @@ public class ShowColumnsDesc extends DDLDesc implements Serializable { } /** + * @param tableName name of table to show columns of + */ + public ShowColumnsDesc(Path resFile, String tableName, String pattern) { + this.resFile = resFile.toString(); + this.pattern = pattern; + this.tableName = tableName; + } + + + /** + * @return the pattern + */ + @Explain(displayName = "pattern") + public String getPattern() { + return pattern; + } + + /** + * @param pattern + * the pattern to set + */ + public void setPattern(String pattern) { + this.pattern = pattern; + } + + /** * @return the tableName */ @Explain(displayName = "table name", explainLevels = { Level.USER, Level.DEFAULT, Level.EXTENDED }) http://git-wip-us.apache.org/repos/asf/hive/blob/80697867/ql/src/test/queries/clientnegative/show_columns2.q ---------------------------------------------------------------------- diff --git a/ql/src/test/queries/clientnegative/show_columns2.q b/ql/src/test/queries/clientnegative/show_columns2.q index c55b449..508a786 100644 --- a/ql/src/test/queries/clientnegative/show_columns2.q +++ b/ql/src/test/queries/clientnegative/show_columns2.q @@ -1,2 +1,7 @@ -SHOW COLUMNS from shcol_test foo; +CREATE DATABASE test_db; +USE test_db; +CREATE TABLE foo(a INT); + +use default; +SHOW COLUMNS from test_db.foo from test_db; http://git-wip-us.apache.org/repos/asf/hive/blob/80697867/ql/src/test/queries/clientnegative/show_columns3.q ---------------------------------------------------------------------- diff --git a/ql/src/test/queries/clientnegative/show_columns3.q b/ql/src/test/queries/clientnegative/show_columns3.q index 508a786..a17d2dd 100644 --- a/ql/src/test/queries/clientnegative/show_columns3.q +++ b/ql/src/test/queries/clientnegative/show_columns3.q @@ -3,5 +3,4 @@ USE test_db; CREATE TABLE foo(a INT); use default; -SHOW COLUMNS from test_db.foo from test_db; - +SHOW COLUMNS from foo like "a*" from test_db; \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hive/blob/80697867/ql/src/test/queries/clientpositive/show_columns.q ---------------------------------------------------------------------- diff --git a/ql/src/test/queries/clientpositive/show_columns.q b/ql/src/test/queries/clientpositive/show_columns.q index 58a3a2c..fdd1ea8 100644 --- a/ql/src/test/queries/clientpositive/show_columns.q +++ b/ql/src/test/queries/clientpositive/show_columns.q @@ -8,19 +8,32 @@ SHOW COLUMNS from shcol_test; -- SHOW COLUMNS CREATE DATABASE test_db; USE test_db; -CREATE TABLE foo(a INT); +CREATE TABLE foo(col1 INT, col2 INT, col3 INT, cola INT, colb INT, colc INT, a INT, b INT, c INT); -- SHOW COLUMNS basic syntax tests USE test_db; SHOW COLUMNS from foo; SHOW COLUMNS in foo; +SHOW COLUMNS in foo 'col*'; +SHOW COLUMNS in foo "col*"; +SHOW COLUMNS from foo 'col*'; +SHOW COLUMNS from foo "col*"; +SHOW COLUMNS from foo "col1|cola"; -- SHOW COLUMNS from a database with a name that requires escaping CREATE DATABASE `database`; USE `database`; -CREATE TABLE foo(a INT); +CREATE TABLE foo(col1 INT, col2 INT, col3 INT, cola INT, colb INT, colc INT, a INT, b INT, c INT); SHOW COLUMNS from foo; +SHOW COLUMNS in foo "col*"; + +-- Non existing column pattern +SHOW COLUMNS in foo "nomatch*"; +SHOW COLUMNS in foo "col+"; +SHOW COLUMNS in foo "nomatch"; use default; SHOW COLUMNS from test_db.foo; SHOW COLUMNS from foo from test_db; +SHOW COLUMNS from foo from test_db "col*"; +SHOW COLUMNS from foo from test_db like 'col*'; http://git-wip-us.apache.org/repos/asf/hive/blob/80697867/ql/src/test/results/clientnegative/show_columns2.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientnegative/show_columns2.q.out b/ql/src/test/results/clientnegative/show_columns2.q.out index c2921eb..a84dedb 100644 --- a/ql/src/test/results/clientnegative/show_columns2.q.out +++ b/ql/src/test/results/clientnegative/show_columns2.q.out @@ -1 +1,27 @@ -FAILED: ParseException line 1:29 extraneous input 'foo' expecting EOF near '<EOF>' +PREHOOK: query: CREATE DATABASE test_db +PREHOOK: type: CREATEDATABASE +PREHOOK: Output: database:test_db +POSTHOOK: query: CREATE DATABASE test_db +POSTHOOK: type: CREATEDATABASE +POSTHOOK: Output: database:test_db +PREHOOK: query: USE test_db +PREHOOK: type: SWITCHDATABASE +PREHOOK: Input: database:test_db +POSTHOOK: query: USE test_db +POSTHOOK: type: SWITCHDATABASE +POSTHOOK: Input: database:test_db +PREHOOK: query: CREATE TABLE foo(a INT) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:test_db +PREHOOK: Output: test_db@foo +POSTHOOK: query: CREATE TABLE foo(a INT) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:test_db +POSTHOOK: Output: test_db@foo +PREHOOK: query: use default +PREHOOK: type: SWITCHDATABASE +PREHOOK: Input: database:default +POSTHOOK: query: use default +POSTHOOK: type: SWITCHDATABASE +POSTHOOK: Input: database:default +FAILED: SemanticException Duplicates declaration for database name http://git-wip-us.apache.org/repos/asf/hive/blob/80697867/ql/src/test/results/clientnegative/show_columns3.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientnegative/show_columns3.q.out b/ql/src/test/results/clientnegative/show_columns3.q.out index a84dedb..e7dcbf9 100644 --- a/ql/src/test/results/clientnegative/show_columns3.q.out +++ b/ql/src/test/results/clientnegative/show_columns3.q.out @@ -24,4 +24,4 @@ PREHOOK: Input: database:default POSTHOOK: query: use default POSTHOOK: type: SWITCHDATABASE POSTHOOK: Input: database:default -FAILED: SemanticException Duplicates declaration for database name +FAILED: ParseException line 2:32 missing EOF at 'from' near '"a*"' http://git-wip-us.apache.org/repos/asf/hive/blob/80697867/ql/src/test/results/clientpositive/show_columns.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/show_columns.q.out b/ql/src/test/results/clientpositive/show_columns.q.out index 4a67fb3..7ad2686 100644 --- a/ql/src/test/results/clientpositive/show_columns.q.out +++ b/ql/src/test/results/clientpositive/show_columns.q.out @@ -33,9 +33,9 @@ PREHOOK: Input: default@shcol_test POSTHOOK: query: SHOW COLUMNS from shcol_test POSTHOOK: type: SHOWCOLUMNS POSTHOOK: Input: default@shcol_test +ds key value -ds PREHOOK: query: CREATE DATABASE test_db PREHOOK: type: CREATEDATABASE PREHOOK: Output: database:test_db @@ -48,11 +48,11 @@ PREHOOK: Input: database:test_db POSTHOOK: query: USE test_db POSTHOOK: type: SWITCHDATABASE POSTHOOK: Input: database:test_db -PREHOOK: query: CREATE TABLE foo(a INT) +PREHOOK: query: CREATE TABLE foo(col1 INT, col2 INT, col3 INT, cola INT, colb INT, colc INT, a INT, b INT, c INT) PREHOOK: type: CREATETABLE PREHOOK: Output: database:test_db PREHOOK: Output: test_db@foo -POSTHOOK: query: CREATE TABLE foo(a INT) +POSTHOOK: query: CREATE TABLE foo(col1 INT, col2 INT, col3 INT, cola INT, colb INT, colc INT, a INT, b INT, c INT) POSTHOOK: type: CREATETABLE POSTHOOK: Output: database:test_db POSTHOOK: Output: test_db@foo @@ -69,6 +69,14 @@ POSTHOOK: query: SHOW COLUMNS from foo POSTHOOK: type: SHOWCOLUMNS POSTHOOK: Input: test_db@foo a +b +c +col1 +col2 +col3 +cola +colb +colc PREHOOK: query: SHOW COLUMNS in foo PREHOOK: type: SHOWCOLUMNS PREHOOK: Input: test_db@foo @@ -76,6 +84,70 @@ POSTHOOK: query: SHOW COLUMNS in foo POSTHOOK: type: SHOWCOLUMNS POSTHOOK: Input: test_db@foo a +b +c +col1 +col2 +col3 +cola +colb +colc +PREHOOK: query: SHOW COLUMNS in foo 'col*' +PREHOOK: type: SHOWCOLUMNS +PREHOOK: Input: test_db@foo +POSTHOOK: query: SHOW COLUMNS in foo 'col*' +POSTHOOK: type: SHOWCOLUMNS +POSTHOOK: Input: test_db@foo +col1 +col2 +col3 +cola +colb +colc +PREHOOK: query: SHOW COLUMNS in foo "col*" +PREHOOK: type: SHOWCOLUMNS +PREHOOK: Input: test_db@foo +POSTHOOK: query: SHOW COLUMNS in foo "col*" +POSTHOOK: type: SHOWCOLUMNS +POSTHOOK: Input: test_db@foo +col1 +col2 +col3 +cola +colb +colc +PREHOOK: query: SHOW COLUMNS from foo 'col*' +PREHOOK: type: SHOWCOLUMNS +PREHOOK: Input: test_db@foo +POSTHOOK: query: SHOW COLUMNS from foo 'col*' +POSTHOOK: type: SHOWCOLUMNS +POSTHOOK: Input: test_db@foo +col1 +col2 +col3 +cola +colb +colc +PREHOOK: query: SHOW COLUMNS from foo "col*" +PREHOOK: type: SHOWCOLUMNS +PREHOOK: Input: test_db@foo +POSTHOOK: query: SHOW COLUMNS from foo "col*" +POSTHOOK: type: SHOWCOLUMNS +POSTHOOK: Input: test_db@foo +col1 +col2 +col3 +cola +colb +colc +PREHOOK: query: SHOW COLUMNS from foo "col1|cola" +PREHOOK: type: SHOWCOLUMNS +PREHOOK: Input: test_db@foo +POSTHOOK: query: SHOW COLUMNS from foo "col1|cola" +POSTHOOK: type: SHOWCOLUMNS +POSTHOOK: Input: test_db@foo +col1 +cola PREHOOK: query: CREATE DATABASE `database` PREHOOK: type: CREATEDATABASE PREHOOK: Output: database:database @@ -88,11 +160,11 @@ PREHOOK: Input: database:database POSTHOOK: query: USE `database` POSTHOOK: type: SWITCHDATABASE POSTHOOK: Input: database:database -PREHOOK: query: CREATE TABLE foo(a INT) +PREHOOK: query: CREATE TABLE foo(col1 INT, col2 INT, col3 INT, cola INT, colb INT, colc INT, a INT, b INT, c INT) PREHOOK: type: CREATETABLE PREHOOK: Output: database:database PREHOOK: Output: database@foo -POSTHOOK: query: CREATE TABLE foo(a INT) +POSTHOOK: query: CREATE TABLE foo(col1 INT, col2 INT, col3 INT, cola INT, colb INT, colc INT, a INT, b INT, c INT) POSTHOOK: type: CREATETABLE POSTHOOK: Output: database:database POSTHOOK: Output: database@foo @@ -103,6 +175,44 @@ POSTHOOK: query: SHOW COLUMNS from foo POSTHOOK: type: SHOWCOLUMNS POSTHOOK: Input: database@foo a +b +c +col1 +col2 +col3 +cola +colb +colc +PREHOOK: query: SHOW COLUMNS in foo "col*" +PREHOOK: type: SHOWCOLUMNS +PREHOOK: Input: database@foo +POSTHOOK: query: SHOW COLUMNS in foo "col*" +POSTHOOK: type: SHOWCOLUMNS +POSTHOOK: Input: database@foo +col1 +col2 +col3 +cola +colb +colc +PREHOOK: query: SHOW COLUMNS in foo "nomatch*" +PREHOOK: type: SHOWCOLUMNS +PREHOOK: Input: database@foo +POSTHOOK: query: SHOW COLUMNS in foo "nomatch*" +POSTHOOK: type: SHOWCOLUMNS +POSTHOOK: Input: database@foo +PREHOOK: query: SHOW COLUMNS in foo "col+" +PREHOOK: type: SHOWCOLUMNS +PREHOOK: Input: database@foo +POSTHOOK: query: SHOW COLUMNS in foo "col+" +POSTHOOK: type: SHOWCOLUMNS +POSTHOOK: Input: database@foo +PREHOOK: query: SHOW COLUMNS in foo "nomatch" +PREHOOK: type: SHOWCOLUMNS +PREHOOK: Input: database@foo +POSTHOOK: query: SHOW COLUMNS in foo "nomatch" +POSTHOOK: type: SHOWCOLUMNS +POSTHOOK: Input: database@foo PREHOOK: query: use default PREHOOK: type: SWITCHDATABASE PREHOOK: Input: database:default @@ -116,6 +226,14 @@ POSTHOOK: query: SHOW COLUMNS from test_db.foo POSTHOOK: type: SHOWCOLUMNS POSTHOOK: Input: test_db@foo a +b +c +col1 +col2 +col3 +cola +colb +colc PREHOOK: query: SHOW COLUMNS from foo from test_db PREHOOK: type: SHOWCOLUMNS PREHOOK: Input: test_db@foo @@ -123,3 +241,35 @@ POSTHOOK: query: SHOW COLUMNS from foo from test_db POSTHOOK: type: SHOWCOLUMNS POSTHOOK: Input: test_db@foo a +b +c +col1 +col2 +col3 +cola +colb +colc +PREHOOK: query: SHOW COLUMNS from foo from test_db "col*" +PREHOOK: type: SHOWCOLUMNS +PREHOOK: Input: test_db@foo +POSTHOOK: query: SHOW COLUMNS from foo from test_db "col*" +POSTHOOK: type: SHOWCOLUMNS +POSTHOOK: Input: test_db@foo +col1 +col2 +col3 +cola +colb +colc +PREHOOK: query: SHOW COLUMNS from foo from test_db like 'col*' +PREHOOK: type: SHOWCOLUMNS +PREHOOK: Input: test_db@foo +POSTHOOK: query: SHOW COLUMNS from foo from test_db like 'col*' +POSTHOOK: type: SHOWCOLUMNS +POSTHOOK: Input: test_db@foo +col1 +col2 +col3 +cola +colb +colc