[MCOL-4144] Error when using upper case database names Created: 2020-07-02 Updated: 2021-04-26 Resolved: 2020-09-28 |
|
| Status: | Closed |
| Project: | MariaDB ColumnStore |
| Component/s: | N/A |
| Affects Version/s: | 1.5.3 |
| Fix Version/s: | 5.4.1 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Anders Karlsson | Assignee: | Gagan Goel (Inactive) |
| Resolution: | Fixed | Votes: | 2 |
| Labels: | None | ||
| Environment: |
Linux CentOS 7.7 |
||
| Issue Links: |
|
||||||||||||
| Description |
|
When using a database names with uppercase letters, you get an error about tables not being joined when selecting from a table in said database:
|
| Comments |
| Comment by David Hall (Inactive) [ 2020-07-30 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Columnstore has always assumed lower_case_table_names = 0. This had been the default for MDS at some point in the past. This is not the case today. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by David Hall (Inactive) [ 2020-09-08 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
lower_case_table_names=1 has been added to the columnstore.cnf for 1.5. This Jira remains open for fixing the code to handle code sensitive table names. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by David Hall (Inactive) [ 2020-09-21 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Enabled lower_case_table_names such that works pretty much as Server does for values of 1 and 0. lower_case_table_names=2 will be treated as lower_case_table_names=1 in the Engine. Removed lower_case_table_names=1 from the default columnstore.cnf. QA: There are a lot of variations that could occur. Alter Table, sub-queries, joins, Update, Delete. Each exercises a different part of the code, and the lower_case_table_names flag is used there. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by David Hall (Inactive) [ 2020-09-21 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
As regards our nightly regression tests. There are a number of tests that assume lower_case_table_names=1. Case is used indiscriminately. We must either fix the tests or always ensure that the flag is set before running the tests. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Gagan Goel (Inactive) [ 2020-09-25 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
One correction to David.Hall's comment above: lower_case_table_names=2 will be treated as lower_case_table_names=0 on case-sensitive file systems. This will be true for linux platforms. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Gagan Goel (Inactive) [ 2020-09-25 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Following tests are executed to demonstrate how case-sensitivity is handled with this fix:
Output with the default value (0) of lower_case_table_names. This is also the output for lower_case_table_names=2 (which behaves similar to =0 on linux):
Output with lower_case_table_names=1:
These results match outputs from InnoDB. Also verified that when lower_case_table_names=0 and tables are created in upper case, and the server is restarted with lower_case_table_names=1, then the tables are not reachable. This is expected behaviour in InnoDB. |