public static void initColumns(Table tbl, List<ImportColumnDesc> columnExprs,
                                   Map<String, Pair<String, List<String>>> columnToHadoopFunction)
            throws UserException {
        initColumns(tbl, columnExprs, columnToHadoopFunction, null, null,
                null, null, null, false, false, Lists.newArrayList());
    }
@Test
    public void testSourceColumnCaseSensitive() throws UserException {
        // columns
        String c0Name = "c0";
        columns.add(new Column(c0Name, Type.INT, true, null, true, null, ""));
        columnExprs.add(new ImportColumnDesc(c0Name, null));

        String c1Name = "C1";
        columns.add(new Column(c1Name, Type.INT, true, null, true, null, ""));
        // column name in source file is c1
        String c1NameInSource = "c1";
        columnExprs.add(new ImportColumnDesc(c1NameInSource, null));

        // column mappings
        // C1 = year(c1)
        List<Expr> params1 = Lists.newArrayList();
        params1.add(new SlotRef(null, c1NameInSource));
        Expr mapping1 = new FunctionCallExpr(FunctionSet.YEAR, params1);
        columnExprs.add(new ImportColumnDesc(c1Name, mapping1));

        new Expectations() {
            {
                table.getBaseSchema();
                result = columns;
                table.getColumn(c0Name);
                result = columns.get(0);
                table.getColumn(c1Name);
                result = columns.get(1);
            }
        };

        Load.initColumns(table, columnExprs, null, exprsByName, analyzer, srcTupleDesc,
                slotDescByName, params, true, true, columnsFromPath);

        // check
        System.out.println(slotDescByName);
        Assert.assertEquals(2, slotDescByName.size());
        Assert.assertFalse(slotDescByName.containsKey(c1Name));
        Assert.assertTrue(slotDescByName.containsKey(c1NameInSource));
    }