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

jiafengzheng pushed a commit to branch rest-api-plan-tablename-case
in repository https://gitbox.apache.org/repos/asf/doris.git

commit bbe2c6d37ed3f51a5ff86664bd81b04fd5672715
Author: jiafeng.zhang <zhang...@gmail.com>
AuthorDate: Sun Oct 8 14:14:46 2023 +0800

    [fix](fe rest api)api gets execution plan, table name case problem
---
 .../doris/httpv2/rest/TableQueryPlanAction.java     | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
index f3379355708..a9962ee15b6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
@@ -26,6 +26,7 @@ import org.apache.doris.catalog.Database;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.Table;
 import org.apache.doris.catalog.TableIf;
+import org.apache.doris.common.Config;
 import org.apache.doris.common.DorisHttpException;
 import org.apache.doris.common.MetaNotFoundException;
 import org.apache.doris.httpv2.entity.ResponseEntityBuilder;
@@ -35,8 +36,10 @@ import org.apache.doris.planner.PlanFragment;
 import org.apache.doris.planner.Planner;
 import org.apache.doris.planner.ScanNode;
 import org.apache.doris.qe.ConnectContext;
+import org.apache.doris.qe.GlobalVariable;
 import org.apache.doris.qe.OriginStatement;
 import org.apache.doris.qe.StmtExecutor;
+import org.apache.doris.qe.VariableMgr;
 import org.apache.doris.thrift.TDataSink;
 import org.apache.doris.thrift.TDataSinkType;
 import org.apache.doris.thrift.TMemoryScratchSink;
@@ -197,10 +200,20 @@ public class TableQueryPlanAction extends 
RestBaseController {
         // check consistent http requested resource with sql referenced
         // if consistent in this way, can avoid check privilege
         TableName tableAndDb = fromTables.get(0).getName();
-        if (!(tableAndDb.getDb().equals(requestDb) && 
tableAndDb.getTbl().equals(requestTable))) {
-            throw new DorisHttpException(HttpResponseStatus.BAD_REQUEST,
-                    "requested database and table must consistent with sql: 
request [ "
-                    + requestDb + "." + requestTable + "]" + "and sql [" + 
tableAndDb.toString() + "]");
+        int lower = GlobalVariable.lowerCaseTableNames;
+        //Determine whether table names are case-sensitive
+        if(lower == 0) {
+            if (!(tableAndDb.getDb().equals(requestDb) && 
tableAndDb.getTbl().equals(requestTable))) {
+                throw new DorisHttpException(HttpResponseStatus.BAD_REQUEST,
+                        "requested database and table must consistent with 
sql: request [ "
+                                + requestDb + "." + requestTable + "]" + "and 
sql [" + tableAndDb.toString () + "]");
+            }
+        } else {
+            if (!(tableAndDb.getDb().equalsIgnoreCase(requestDb) && 
tableAndDb.getTbl().equalsIgnoreCase(requestTable))) {
+                throw new DorisHttpException(HttpResponseStatus.BAD_REQUEST,
+                        "requested database and table must consistent with 
sql: request [ "
+                                + requestDb + "." + requestTable + "]" + "and 
sql [" + tableAndDb.toString () + "]");
+            }
         }
 
         // acquired Planner to get PlanNode and fragment templates


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to