You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by GitBox <gi...@apache.org> on 2021/08/04 07:19:16 UTC

[GitHub] [incubator-doris] luozenglin opened a new pull request #6374: [BUG] Fix query failure caused by using case-insensitive system view names in information_schema.

luozenglin opened a new pull request #6374:
URL: https://github.com/apache/incubator-doris/pull/6374


   ## Proposed changes
   
   fix #6369
   
   The system view names in information_schema are case-insensitive, but you should not refer to one of these using different cases within the same statement.  
   
   The following sql is correct:
   ```
   select * from information_schema.TAbles where TAbles.ENGINE = 'Doris';
   ```
   
   The following sql is wrong because `TAbles` and `tables` are used:
   ```
   select * from information_schema.TAbles order by tables.CREATE_TIME;
   ```
   
   ## Types of changes
   
   What types of changes does your code introduce to Doris?
   _Put an `x` in the boxes that apply_
   
   - [x] Bugfix (non-breaking change which fixes an issue)
   - [ ] New feature (non-breaking change which adds functionality)
   - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
   - [ ] Documentation Update (if none of the other choices apply)
   - [ ] Code refactor (Modify the code structure, format the code, etc...)
   - [ ] Optimization. Including functional usability improvements and performance improvements.
   - [ ] Dependency. Such as changes related to third-party components.
   - [ ] Other.
   
   ## Checklist
   
   _Put an `x` in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code._
   
   - [x] I have created an issue on (Fix #6369) and described the bug/feature there in detail
   - [x] Compiling and unit tests pass locally with my changes
   - [ ] I have added tests that prove my fix is effective or that my feature works
   - [ ] If these changes need document changes, I have updated the document
   - [ ] Any dependent changes have been merged
   
   ## Further comments
   
   If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



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


[GitHub] [incubator-doris] github-actions[bot] commented on pull request #6374: [BUG] Fix query failure caused by using case-insensitive system view names in information_schema.

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on pull request #6374:
URL: https://github.com/apache/incubator-doris/pull/6374#issuecomment-893310368






-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



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


[GitHub] [incubator-doris] luozenglin commented on a change in pull request #6374: [BUG] Fix query failure caused by using case-insensitive system view names in information_schema.

Posted by GitBox <gi...@apache.org>.
luozenglin commented on a change in pull request #6374:
URL: https://github.com/apache/incubator-doris/pull/6374#discussion_r683083208



##########
File path: fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java
##########
@@ -618,10 +617,6 @@ public SlotDescriptor registerColumnRef(TableName tblName, String colName) throw
         if (newTblName == null) {

Review comment:
       When `newTblName ` is not empty, pass`newTblName ` to `resolveColumnRef()` to construct `TupleDescriptor

##########
File path: fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java
##########
@@ -553,7 +552,7 @@ public TableRef resolveTableRef(TableRef tableRef) throws AnalysisException {
             ErrorReport.reportAnalysisException(ErrorCode.ERR_BAD_TABLE_STATE, "RESTORING");
         }
 
-        TableName tblName = new TableName(database.getFullName(), table.getName());
+        TableName tblName = new TableName(dbName, tableName.getTbl());

Review comment:
       `tableName.getTbl()` stores the table name specified by the user in the `from` statement. In the case of case-sensitive table names, the value of `tableName.getTbl()` is the same as `table.getName()`. However, since the system view is not case-sensitive, `table.getName()` gets the lowercase view name, which may not be the same as the user's reference to the table name, causing the table name not to be found in registerColumnRef().




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



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


[GitHub] [incubator-doris] luozenglin commented on a change in pull request #6374: [BUG] Fix query failure caused by using case-insensitive system view names in information_schema.

Posted by GitBox <gi...@apache.org>.
luozenglin commented on a change in pull request #6374:
URL: https://github.com/apache/incubator-doris/pull/6374#discussion_r683083208



##########
File path: fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java
##########
@@ -618,10 +617,6 @@ public SlotDescriptor registerColumnRef(TableName tblName, String colName) throw
         if (newTblName == null) {

Review comment:
       When `newTblName ` is not empty, pass`newTblName ` to `resolveColumnRef()` to construct `TupleDescriptor

##########
File path: fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java
##########
@@ -553,7 +552,7 @@ public TableRef resolveTableRef(TableRef tableRef) throws AnalysisException {
             ErrorReport.reportAnalysisException(ErrorCode.ERR_BAD_TABLE_STATE, "RESTORING");
         }
 
-        TableName tblName = new TableName(database.getFullName(), table.getName());
+        TableName tblName = new TableName(dbName, tableName.getTbl());

Review comment:
       `tableName.getTbl()` stores the table name specified by the user in the `from` statement. In the case of case-sensitive table names, the value of `tableName.getTbl()` is the same as `table.getName()`. However, since the system view is not case-sensitive, `table.getName()` gets the lowercase view name, which may not be the same as the user's reference to the table name, causing the table name not to be found in registerColumnRef().




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



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


[GitHub] [incubator-doris] morningman merged pull request #6374: [BUG] Fix query failure caused by using case-insensitive system view names in information_schema.

Posted by GitBox <gi...@apache.org>.
morningman merged pull request #6374:
URL: https://github.com/apache/incubator-doris/pull/6374


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



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


[GitHub] [incubator-doris] morningman commented on a change in pull request #6374: [BUG] Fix query failure caused by using case-insensitive system view names in information_schema.

Posted by GitBox <gi...@apache.org>.
morningman commented on a change in pull request #6374:
URL: https://github.com/apache/incubator-doris/pull/6374#discussion_r682722871



##########
File path: fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java
##########
@@ -553,7 +552,7 @@ public TableRef resolveTableRef(TableRef tableRef) throws AnalysisException {
             ErrorReport.reportAnalysisException(ErrorCode.ERR_BAD_TABLE_STATE, "RESTORING");
         }
 
-        TableName tblName = new TableName(database.getFullName(), table.getName());
+        TableName tblName = new TableName(dbName, tableName.getTbl());

Review comment:
       Add comment to explain why using `tableName.getTbl()` instead of `table.getName()` here.

##########
File path: fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java
##########
@@ -618,10 +617,6 @@ public SlotDescriptor registerColumnRef(TableName tblName, String colName) throw
         if (newTblName == null) {

Review comment:
       The local variable `newTblName` seems unused now.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



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


[GitHub] [incubator-doris] morningman commented on a change in pull request #6374: [BUG] Fix query failure caused by using case-insensitive system view names in information_schema.

Posted by GitBox <gi...@apache.org>.
morningman commented on a change in pull request #6374:
URL: https://github.com/apache/incubator-doris/pull/6374#discussion_r682722871



##########
File path: fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java
##########
@@ -553,7 +552,7 @@ public TableRef resolveTableRef(TableRef tableRef) throws AnalysisException {
             ErrorReport.reportAnalysisException(ErrorCode.ERR_BAD_TABLE_STATE, "RESTORING");
         }
 
-        TableName tblName = new TableName(database.getFullName(), table.getName());
+        TableName tblName = new TableName(dbName, tableName.getTbl());

Review comment:
       Add comment to explain why using `tableName.getTbl()` instead of `table.getName()` here.

##########
File path: fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java
##########
@@ -618,10 +617,6 @@ public SlotDescriptor registerColumnRef(TableName tblName, String colName) throw
         if (newTblName == null) {

Review comment:
       The local variable `newTblName` seems unused now.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



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


[GitHub] [incubator-doris] github-actions[bot] commented on pull request #6374: [BUG] Fix query failure caused by using case-insensitive system view names in information_schema.

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on pull request #6374:
URL: https://github.com/apache/incubator-doris/pull/6374#issuecomment-893310368






-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



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