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

lijibing pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new fc0078e07ca branch-3.0: [fix](show)show tables should be case 
insensitive when lowerCaseTableNames is 1 or 2. #46030 (#46057)
fc0078e07ca is described below

commit fc0078e07ca8ca3bfc92e9e8bd981b6251ef945c
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Fri Dec 27 00:06:26 2024 +0800

    branch-3.0: [fix](show)show tables should be case insensitive when 
lowerCaseTableNames is 1 or 2. #46030 (#46057)
    
    Cherry-picked from #46030
    
    Co-authored-by: James <lijib...@selectdb.com>
---
 .../src/main/java/org/apache/doris/qe/ShowExecutor.java     | 13 +++++++++----
 .../src/test/java/org/apache/doris/qe/ShowExecutorTest.java | 13 +++++++++++++
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java
index 381ab1a4aa3..babfe4e2265 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java
@@ -965,8 +965,7 @@ public class ShowExecutor {
                 .getDbOrAnalysisException(showTableStmt.getDb());
         PatternMatcher matcher = null;
         if (showTableStmt.getPattern() != null) {
-            matcher = 
PatternMatcherWrapper.createMysqlPattern(showTableStmt.getPattern(),
-                    CaseSensibility.TABLE.getCaseSensibility());
+            matcher = 
PatternMatcherWrapper.createMysqlPattern(showTableStmt.getPattern(), 
isShowTablesCaseSensitive());
         }
         for (TableIf tbl : db.getTables()) {
             if 
(tbl.getName().startsWith(FeConstants.TEMP_MATERIZLIZE_DVIEW_PREFIX)) {
@@ -1005,6 +1004,13 @@ public class ShowExecutor {
         resultSet = new ShowResultSet(showTableStmt.getMetaData(), rows);
     }
 
+    public boolean isShowTablesCaseSensitive() {
+        if (GlobalVariable.lowerCaseTableNames == 0) {
+            return CaseSensibility.TABLE.getCaseSensibility();
+        }
+        return false;
+    }
+
     // Show table status statement.
     private void handleShowTableStatus() throws AnalysisException {
         ShowTableStatusStmt showStmt = (ShowTableStatusStmt) stmt;
@@ -1015,8 +1021,7 @@ public class ShowExecutor {
         if (db != null) {
             PatternMatcher matcher = null;
             if (showStmt.getPattern() != null) {
-                matcher = 
PatternMatcherWrapper.createMysqlPattern(showStmt.getPattern(),
-                        CaseSensibility.TABLE.getCaseSensibility());
+                matcher = 
PatternMatcherWrapper.createMysqlPattern(showStmt.getPattern(), 
isShowTablesCaseSensitive());
             }
             for (TableIf table : db.getTables()) {
                 if (matcher != null && !matcher.match(table.getName())) {
diff --git a/fe/fe-core/src/test/java/org/apache/doris/qe/ShowExecutorTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/qe/ShowExecutorTest.java
index 37d02afaae0..fe15109dce9 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/qe/ShowExecutorTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/qe/ShowExecutorTest.java
@@ -49,6 +49,7 @@ import org.apache.doris.catalog.SinglePartitionInfo;
 import org.apache.doris.catalog.Table;
 import org.apache.doris.catalog.TableIf.TableType;
 import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.CaseSensibility;
 import org.apache.doris.common.PatternMatcher;
 import org.apache.doris.common.UserException;
 import org.apache.doris.common.jmockit.Deencapsulation;
@@ -684,4 +685,16 @@ public class ShowExecutorTest {
         Assert.assertEquals("Global", 
resultSet.getMetaData().getColumn(6).getName());
         Assert.assertEquals("Enable", 
resultSet.getMetaData().getColumn(7).getName());
     }
+
+    @Test
+    public void testIsShowTablesCaseSensitive() {
+        ShowSqlBlockRuleStmt stmt = new 
ShowSqlBlockRuleStmt("test_case_sensitive");
+        ShowExecutor executor = new ShowExecutor(ctx, stmt);
+        GlobalVariable.lowerCaseTableNames = 0;
+        Assert.assertEquals(CaseSensibility.TABLE.getCaseSensibility(), 
executor.isShowTablesCaseSensitive());
+        GlobalVariable.lowerCaseTableNames = 1;
+        Assert.assertEquals(false, executor.isShowTablesCaseSensitive());
+        GlobalVariable.lowerCaseTableNames = 2;
+        Assert.assertEquals(false, executor.isShowTablesCaseSensitive());
+    }
 }


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

Reply via email to