[CARBONDATA-4282] Fix issues with table having complex columns related to long string, SI, local dictionary
Why is this PR needed?
1.Insert/load fails after alter add complex column if table contains long string columns.
2.create index on array of complex column (map/struct) throws null pointer exception instead of correct error message.
3.alter table property local dictionary inlcude/exclude with newly added map column is failing.
What changes were proposed in this PR?
1. The datatypes array and data row are of different order leading to ClassCastException. Made changes to add newly added complex columns after the long string columns and other dimensions in carbonTableSchemaCommon.scala
2. For complex columns, SI creation on only array of primitive types is allowed. Check if the child column is of complex type and throw an exception. Changes made in SICreationCommand.scala
3. In AlterTableUtil.scala, while validating local dictionary columns, array and struct type are present but map type is missed. Added check for complex types.
Does this PR introduce any user interface change?
No
Is any new testcase added?
Yes
This closes #4214