You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by ja...@apache.org on 2014/07/10 00:00:48 UTC
[5/9] git commit: DRILL-755: Show files without FROM clause should
display files in default workspace
DRILL-755: Show files without FROM clause should display files in default workspace
Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/9921547d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/9921547d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/9921547d
Branch: refs/heads/master
Commit: 9921547d31c0c9cdb8f3916f1d2d8bf51ffce7bf
Parents: b81f500
Author: Mehant Baid <me...@gmail.com>
Authored: Mon Jul 7 20:14:38 2014 -0700
Committer: Jacques Nadeau <ja...@apache.org>
Committed: Tue Jul 8 13:50:10 2014 -0700
----------------------------------------------------------------------
.../src/main/codegen/includes/parserImpls.ftl | 4 +++-
.../planner/sql/handlers/ShowFileHandler.java | 20 +++++++++++++-------
2 files changed, 16 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/9921547d/exec/java-exec/src/main/codegen/includes/parserImpls.ftl
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/codegen/includes/parserImpls.ftl b/exec/java-exec/src/main/codegen/includes/parserImpls.ftl
index 5e53ea6..1605b06 100644
--- a/exec/java-exec/src/main/codegen/includes/parserImpls.ftl
+++ b/exec/java-exec/src/main/codegen/includes/parserImpls.ftl
@@ -65,7 +65,9 @@ SqlNode SqlShowFiles() :
{
<SHOW> { pos = getPos(); }
<FILES>
- (<FROM> | <IN>) { db = CompoundIdentifier(); }
+ [
+ (<FROM> | <IN>) { db = CompoundIdentifier(); }
+ ]
{
return new SqlShowFiles(pos, db);
}
http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/9921547d/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowFileHandler.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowFileHandler.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowFileHandler.java
index 2be4b43..17e80bd 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowFileHandler.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/ShowFileHandler.java
@@ -63,13 +63,16 @@ public class ShowFileHandler extends DefaultSqlHandler {
SchemaPlus defaultSchema = context.getNewDefaultSchema();
SchemaPlus drillSchema = defaultSchema;
- // We are not sure if the full from clause is just the schema or includes table name, first try to see if the full path specified is a schema
- try {
- drillSchema = findSchema(context.getRootSchema(), defaultSchema, from.names);
- } catch (Exception e) {
- // Entire from clause is not a schema, try to obtain the schema without the last part of the specified clause.
- drillSchema = findSchema(context.getRootSchema(), defaultSchema, from.names.subList(0, from.names.size() - 1));
- fromDir = fromDir + from.names.get((from.names.size() - 1));
+ // Show files can be used without from clause, in which case we display the files in the default schema
+ if (from != null) {
+ // We are not sure if the full from clause is just the schema or includes table name, first try to see if the full path specified is a schema
+ try {
+ drillSchema = findSchema(context.getRootSchema(), defaultSchema, from.names);
+ } catch (Exception e) {
+ // Entire from clause is not a schema, try to obtain the schema without the last part of the specified clause.
+ drillSchema = findSchema(context.getRootSchema(), defaultSchema, from.names.subList(0, from.names.size() - 1));
+ fromDir = fromDir + from.names.get((from.names.size() - 1));
+ }
}
AbstractSchema tempSchema = getDrillSchema(drillSchema);
@@ -86,6 +89,9 @@ public class ShowFileHandler extends DefaultSqlHandler {
// Get the default path
defaultLocation = schema.getDefaultLocation();
} catch (Exception e) {
+ if (from == null) {
+ return DirectPlan.createDirectPlan(context, false, "Show files without FROM / IN clause can be used only after specifying a default file system schema");
+ }
return DirectPlan.createDirectPlan(context, false, String.format("Current schema '%s' is not a file system schema. " +
"Can't execute show files on this schema.", from.toString()));
}