public void testJoinView1AndTable2() throws ParseException {
String query = "select * from v1 join t2 on (v1.id1 = t2.id1)";
Driver driver = createDriver();
int rc = driver.compile(query);
Assert.assertEquals("Checking command success", 0, rc);
QueryPlan plan = driver.getPlan();
// check access columns from ColumnAccessInfo
ColumnAccessInfo columnAccessInfo = plan.getColumnAccessInfo();
List<String> cols = columnAccessInfo.getTableToColumnAccessMap().get("default@v1");
Assert.assertNull(cols);
cols = columnAccessInfo.getTableToColumnAccessMap().get("default@t1");
Assert.assertNotNull(cols);
Assert.assertEquals(2, cols.size());
Assert.assertNotNull(cols.contains("id1"));
Assert.assertNotNull(cols.contains("name1"));
cols = columnAccessInfo.getTableToColumnAccessMap().get("default@t2");
Assert.assertNotNull(cols);
Assert.assertEquals(3, cols.size());
Assert.assertNotNull(cols.contains("id2"));
Assert.assertNotNull(cols.contains("id1"));
Assert.assertNotNull(cols.contains("name1"));
// check access columns from readEntity
Map<String, List<String>> tableColsMap = getColsFromReadEntity(plan.getInputs());
cols = tableColsMap.get("default@v1");
Assert.assertNull(cols);
cols = tableColsMap.get("default@t1");
Assert.assertNotNull(cols);
Assert.assertEquals(2, cols.size());