If you'd like to contribute a patch to Impala, but aren't sure what you want to work on, you can look at Impala's newbie issues: https://issues.apache.org/jira/issues/?filter=12341668. You can find detailed instructions on submitting patches at https://cwiki.apache.org/confluence/display/IMPALA/Contributing+to+Impala. This is a walkthrough of a ticket a new contributor could take on, with hopefully enough detail to get you going but not so much to take away the fun.
How can we fix https://issues.apache.org/jira/browse/IMPALA-5362, "Preserve case-sensitivity in field titles"? First, set up your development environment, and make sure you can run the tests. In particular, you'll want to run the front-end tests and the end-to-end shell tests: (pushd fe && mvn -fae test) tests/run-tests.py shell The test case listed in the ticket uses the impala shell, so let's first look to add it to the tests for the shell. Look in tests/shell/test_shell_interactive.py. This interacts with the shell in a way most similar to how a human would, among Impala's automated tests. You will notice that a number of tests check stdout or stderr for the string they expect in the results. You can use this as well to write a test that fails in HEAD but that will pass when you are done with your patch. The column headers printed by impala-shell.sh are stored in some variables and parameters named column_names. These are fetched from ImpalaClient.get_column_names. You can continue to trace this all the way to the frontend. That code is in the fe directory. There, the terminology changes to column labels, rather than column names. If you grep around for toLowerCase, you will find that column labels are forced to lowercase in SelectListItem.toColumnLabel. That call to toLowerCase() must be there for a reason - see if you can figure out why! You may decide to keep it and add to column labels an additional string containing the original capitalization, or you may decide to eliminate the call to toLowerCase(). In the former case, you can limit the uses of the original capitalization to impala-shell.sh, but in the latter all clients will see the original capitalization. This may break other tests, including frontend tests. You may need to fix some planner tests. Some of these have a special format that you can see examples of in testdata/workloads/functional-planner/queries/PlannerTest/. Have fun! Once you're done, re-run the front-end tests and the end-to-end shell tests, as described above. Then submit your patch for review following the instructions on https://cwiki.apache.org/confluence/display/IMPALA/Contributing+to+Impala.