This is an automated email from the ASF dual-hosted git repository.

cgivre pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/drill.git


The following commit(s) were added to refs/heads/gh-pages by this push:
     new 2f82542  DRILL-7920: [DOC-UPDATE] Update Documentation for REST API 
(#2224)
2f82542 is described below

commit 2f8254203f92c863f4d9702a221d0f79df8859d9
Author: Charles S. Givre <[email protected]>
AuthorDate: Wed May 12 21:57:18 2021 -0400

    DRILL-7920: [DOC-UPDATE] Update Documentation for REST API (#2224)
---
 .../rest-api/010-rest-api-introduction.md          | 83 +++++++++++++++++++++-
 1 file changed, 80 insertions(+), 3 deletions(-)

diff --git a/_docs/developer-information/rest-api/010-rest-api-introduction.md 
b/_docs/developer-information/rest-api/010-rest-api-introduction.md
index 1ad61be..21aeb41 100644
--- a/_docs/developer-information/rest-api/010-rest-api-introduction.md
+++ b/_docs/developer-information/rest-api/010-rest-api-introduction.md
@@ -61,9 +61,12 @@ Submit a query and return results.
 
 **Parameters**
 
-* queryType--SQL, PHYSICAL, or LOGICAL are valid types. Use only "SQL". Other 
types are for internal use only.  
-* query--A SQL query that runs in Drill.  
-* autoLimit--Limits the number of rows returned from the result set. (Drill 
1.16+)
+* `queryType`--SQL, PHYSICAL, or LOGICAL are valid types. Use only "SQL". 
Other types are for internal use only.  
+* `query`--A SQL query that runs in Drill.  
+* `autoLimit`--Limits the number of rows returned from the result set. (Drill 
1.16+)
+* `defaultSchema`--Sets the default schema for the query.  Equavalent to 
executing a `USE <schema>` prior to the query. (Drill 1.18+)
+
+For Drill 1.19+ Drill switched to a streaming HTTP connection for REST 
queries.  The result being that 
 
 **Request Body**
 
@@ -93,6 +96,80 @@ Submit a query and return results.
        } ]
      }
 
+**Error Reporting**
+Drill 1.19 added a streaming REST interface with the goal of reducing the 
response times from REST calls. As of Drill 1.19, error reporting is no longer 
enabled by default and in the event of a failed query, you will just get 
results as shown below:
+
+```json
+{
+    "queryId": "1fa0acc2-e507-6688-69fe-02fc627c8c47",
+    "queryState": "FAILED"
+}
+```
+To re-enable error reporting you will have to set the 
`http.rest.errors.verbose` to `true` as shown below:
+
+```json
+{
+    "query": "SELECT * FROM cp.`employee123321123321.json` LIMIT 20",
+    "queryType": "SQL",
+    "options": {
+        "drill.exec.http.rest.errors.verbose": "true"
+    }
+}
+```
+The above call will result in the response shown below.  Note that the 
response will contain the `exception`, the `errorMessage` and the `stackTrace` 
in separate fields.
+
+```json
+{
+    "queryId": "1f9c72aa-bafb-2d58-ebfa-5cd3f21f4ddd",
+    "exception": "org.apache.calcite.runtime.CalciteContextException",
+    "errorMessage": "From line 1, column 15 to line 1, column 16: Object 
'employee123321123321.json' not found within 'cp': Object 
'employee123321123321.json' not found within 'cp'",
+    "stackTrace": [
+        "org.apache.calcite.runtime.CalciteContextException: From line 1, 
column 15 to line 1, column 16: Object 'employee123321123321.json' not found 
within 'cp': Object 'employee123321123321.json' not found within 'cp'",
+        "\tat .......(:0)",
+        "\tat 
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:463)",
+        "\tat 
org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:835)",
+        "\tat 
org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:820)",
+        "\tat 
org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:4881)",
+        "\tat 
org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(IdentifierNamespace.java:127)",
+        "\tat 
org.apache.calcite.sql.validate.IdentifierNamespace.validateImpl(IdentifierNamespace.java:177)",
+        "\tat 
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)",
+        "\tat 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1009)",
+        "\tat 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:969)",
+        "\tat 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3129)",
+        "\tat 
org.apache.drill.exec.planner.sql.conversion.DrillValidator.validateFrom(DrillValidator.java:63)",
+        "\tat 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3111)",
+        "\tat 
org.apache.drill.exec.planner.sql.conversion.DrillValidator.validateFrom(DrillValidator.java:63)",
+        "\tat 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3383)",
+        "\tat 
org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60)",
+        "\tat 
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)",
+        "\tat 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1009)",
+        "\tat 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:969)",
+        "\tat org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:216)",
+        "\tat 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:944)",
+        "\tat 
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:651)",
+        "\tat 
org.apache.drill.exec.planner.sql.conversion.SqlConverter.validate(SqlConverter.java:189)",
+        "\tat 
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateNode(DefaultSqlHandler.java:641)",
+        "\tat 
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateAndConvert(DefaultSqlHandler.java:195)",
+        "\tat 
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:169)",
+        "\tat 
org.apache.drill.exec.planner.sql.DrillSqlWorker.getQueryPlan(DrillSqlWorker.java:283)",
+        "\tat 
org.apache.drill.exec.planner.sql.DrillSqlWorker.getPhysicalPlan(DrillSqlWorker.java:163)",
+        "\tat 
org.apache.drill.exec.planner.sql.DrillSqlWorker.convertPlan(DrillSqlWorker.java:128)",
+        "\tat 
org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:93)",
+        "\tat 
org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:592)",
+        "\tat 
org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:273)",
+        "\tat .......(:0)",
+        "Caused by: org.apache.calcite.sql.validate.SqlValidatorException: 
Object 'employee123321123321.json' not found within 'cp'",
+        "\tat .......(:0)",
+        "\tat 
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:463)",
+        "\tat 
org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:572)",
+        "\t... 31 more"
+    ],
+    "queryState": "FAILED"
+}
+```
+
+
+
 ## Profiles
 
 These methods get query profiles. 

Reply via email to