1. If user is giving any invalid value, default threshold(1000 unique values) value will be considered. What is the consideration behind the default value 1000. *1000 is a random value we have mentioned in design doc. CARBON_LOCALDICT_THRESHOLD is exposed to user for setting threshold value based on their usecase*
2. There is no option mentioned for the user to alter the table if the ENABLE_LOCAL_DICT and CARBON_LOCALDICT_THRESHOLD values are set. This would also help in compatibility if we want to generate local dictionary for table created in previous versions. *In new load for old table local dictionary will be generated as by default local dictionary generation is enabled. Alter command for setting CARBON_LOCALDICT_THRESHOLD and ENABLE_LOCAL_DICT property will be provided for older tables and This will be updated in desing doc. Thank you for pointing this out* 3.There should be validation provided if the user inputs ENABLE_LOCAL_DICT as false and tries to set CARBON_LOCALDICT_THRESHOLD value. *will not consider Threshold value if ENABLE_LOCAL_DICT is false* 4.Impact of alter table add/drop/change type of column is not mentioned . *There is no impact that’s why not captured in design doc's Impact analysis section* 5.Would complex types also be considered for local dictionary. * it will be handled for complex primitive no dictionary String data type columns* 6.For any column if dictionary values crosses the threshold (carbon_localdict_threshold), then it will drop dictionary for that column. Could not understand “drop dictionary for that column” * Local dictionary will not be considered for respective column* 7.For better testability information regarding generation and updation of local dictionary can be logged. *Log will be added for each level of local dictionary generation.* -- Sent from: http://apache-carbondata-dev-mailing-list-archive.1130556.n5.nabble.com/