public static String[] getColumnNames(String query) throws Exception {
try {
Queue<String> tokenQueue = new LexicalAnalyser(query).getTokens();
if (tokenQueue.size() > 0) {
SyntaxAnalyser sa = new SyntaxAnalyser(tokenQueue);
List<String> columns = sa.processSelectStatement();
return columns.toArray(new String[columns.size()]);
} else {
return new String[0];
}
} catch (Exception e) {