[ 
https://issues.apache.org/jira/browse/DRILL-6492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16588965#comment-16588965
 ] 

ASF GitHub Bot commented on DRILL-6492:
---------------------------------------

arina-ielchiieva opened a new pull request #1439: DRILL-6492: Ensure schema / 
workspace case insensitivity in Drill
URL: https://github.com/apache/drill/pull/1439
 
 
   1. StoragePluginsRegistryImpl was updated:
   a. for backward compatibility at init to convert all existing storage 
plugins names to lower case, in case of duplicates, to log warning and skip the 
duplicate.
   b. to wrap persistent plugins registry into case insensitive store wrapper 
(CaseInsensitivePersistentStore) to ensure all given keys are converted into 
lower case when performing insert, update, delete, search operations.
   c. to load system storage plugins dynamically by @SystemStorage annotation.
   2. StoragePlugins class was updated to stored storage plugins configs by 
name in case insensitive map.
   3. SchemaUtilities.searchSchemaTree method was updated to convert all schema 
names into lower case to ensure that are they are matched case insensitively 
(all schemas are stored in Drill in lower case).
   4. FileSystemConfig was updated to store workspaces by name in case 
insensitive hash map.
   5. All plugins schema factories are now extend AbstractSchemaFactory to 
ensure that given schema name is converted to lower case.
   6. New method areTableNamesAreCaseInsensitive was added to AbstractSchema to 
indicate if schema tables names are case insensitive. By default, false. Schema 
implementation is responsible for table names case insensitive search in case 
it supports one. Currently, information_schema, sys and hive do so.
   7. System storage plugins (information_schema, sys) were refactored to 
ensure their schema, table names are case insensitive, also the annotation 
@SystemPlugin and additional constructor were added to allow dynamically load 
system plugins at storage plugin registry during init phase.
   8. MetadataProvider was updated to concert all schema filter conditions into 
lower case to ensure schema would be matched case insensitively.
   9. ShowSchemasHandler, ShowTablesHandler, DescribeTableHandler were updated 
to ensure schema / tables names (this depends if schema supports case 
insensitive table names) would be found case insensitively.
   
   Other details in 
[DRILL-6492](https://issues.apache.org/jira/browse/DRILL-6492).

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Make storage plugins names case insensitive
> -------------------------------------------
>
>                 Key: DRILL-6492
>                 URL: https://issues.apache.org/jira/browse/DRILL-6492
>             Project: Apache Drill
>          Issue Type: Improvement
>    Affects Versions: 1.13.0
>            Reporter: Arina Ielchiieva
>            Assignee: Arina Ielchiieva
>            Priority: Major
>              Labels: doc-impacting
>
> Storage plugin names to be case insensitive (DFS vs dfs, INFORMATION_SCHEMA 
> vs information_schema).
> Workspace  (schemas) names to be case insensitive (ROOT vs root, TMP vs tmp). 
> Even if user has two directories /TMP and /tmp, he can create two workspaces 
> but not both with tmp name. For example, tmp vs tmp_u.
> Table names case sensitivity are treated per plugin. For example, system 
> plugins (information_schema, sys) table names (views, tables) should be case 
> insensitive. Actually, currently for sys plugin table names are case 
> insensitive, information_schema table names are case sensitive. That needs to 
> be synchronized. For file system plugins table names must be case sensitive, 
> since under table name we imply directory / file name and their case 
> sensitivity depends on file system.
> *Documentation*
> https://drill.apache.org/docs/lexical-structure/ should be updated with 
> relevant information.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to