public void testColumnFamilyWildcards()

in phoenix-core/src/it/java/org/apache/phoenix/end2end/DynamicColumnWildcardIT.java [389:520]


    public void testColumnFamilyWildcards() throws SQLException {
        Connection conn = DriverManager.getConnection(getUrl());
        conn.setAutoCommit(true);
        String tableName = generateUniqueName();

        conn.createStatement().execute(generateTableCreateDDL(tableName,
                " (A INTEGER PRIMARY KEY, B VARCHAR, CF1.C INTEGER, CF2.D VARCHAR)"));
        conn.createStatement().execute("UPSERT INTO " + tableName +
                " (A, B, C, D) VALUES(10, 'test1', 2, 'test2')");
        conn.createStatement().execute("UPSERT INTO " + tableName +
                " (A, B, C, D, DYN0 INTEGER) VALUES(20, 'test3', 4, 'test4', 100)");
        conn.createStatement().execute("UPSERT INTO " + tableName +
                " (A, B, C, D, CF1.DYN1 VARCHAR, CF1.DYN2 INTEGER)" +
                " VALUES(30, 'test5', 5, 'test6', 'test7', 70)");
        conn.createStatement().execute("UPSERT INTO " + tableName +
                " (A, B, C, D, CF2.DYN1 VARCHAR, CF2.DYN2 INTEGER)" +
                " VALUES(40, 'test8', 6, 'test9', 'test10', 80)");
        conn.createStatement().execute("UPSERT INTO " + tableName +
                " (A, B, C, D, CF1.DYN3 VARCHAR, CF2.DYN4 INTEGER)" +
                " VALUES(50, 'test11', 7, 'test12', 'test13', 90)");

        ResultSet rs = conn.createStatement().executeQuery("SELECT CF1.* FROM " + tableName);
        int rsCounter = 0;
        while(rs.next()) {
            ResultSetMetaData rmd = rs.getMetaData();
            int count = rmd.getColumnCount();
            assertEquals(rsCounter <= 1 || rsCounter == 3 ?
                    1 : rsCounter == 2 ? 3 : 2, count);
            for (int i = 1; i <= count; i++) {
                if (rsCounter == 0) {
                    if (i == 1) {
                        assertEquals("C", rmd.getColumnName(i));
                        assertEquals(INTEGER, rmd.getColumnType(i));
                        assertEquals(2, rs.getObject(i));
                    }
                } else if (rsCounter == 1) {
                    if (i == 1) {
                        assertEquals("C", rmd.getColumnName(i));
                        assertEquals(INTEGER, rmd.getColumnType(i));
                        assertEquals(4, rs.getObject(i));
                    }
                } else if (rsCounter == 2) {
                    if (i == 1) {
                        assertEquals("C", rmd.getColumnName(i));
                        assertEquals(INTEGER, rmd.getColumnType(i));
                        assertEquals(5, rs.getObject(i));
                    } else if (i == 2) {
                        assertEquals("DYN1", rmd.getColumnName(i));
                        assertEquals(VARCHAR, rmd.getColumnType(i));
                        assertEquals("test7", rs.getObject(i));
                    } else if (i == 3) {
                        assertEquals("DYN2", rmd.getColumnName(i));
                        assertEquals(INTEGER, rmd.getColumnType(i));
                        assertEquals(70, rs.getObject(i));
                    }
                } else if (rsCounter == 3) {
                    if (i == 1) {
                        assertEquals("C", rmd.getColumnName(i));
                        assertEquals(INTEGER, rmd.getColumnType(i));
                        assertEquals(6, rs.getObject(i));
                    }
                } else if (rsCounter == 4) {
                    if (i == 1) {
                        assertEquals("C", rmd.getColumnName(i));
                        assertEquals(INTEGER, rmd.getColumnType(i));
                        assertEquals(7, rs.getObject(i));
                    } else if (i == 2) {
                        assertEquals("DYN3", rmd.getColumnName(i));
                        assertEquals(VARCHAR, rmd.getColumnType(i));
                        assertEquals("test13", rs.getObject(i));
                    }
                }
            }
            rsCounter++;
        }

        rs = conn.createStatement().executeQuery("SELECT CF2.* FROM " + tableName);
        rsCounter = 0;
        while(rs.next()) {
            ResultSetMetaData rmd = rs.getMetaData();
            int count = rmd.getColumnCount();
            assertEquals(rsCounter <= 2 ?
                    1 : rsCounter == 3 ? 3 : 2, count);
            for (int i = 1; i <= count; i++) {
                if (rsCounter == 0) {
                    if (i == 1) {
                        assertEquals("D", rmd.getColumnName(i));
                        assertEquals(VARCHAR, rmd.getColumnType(i));
                        assertEquals("test2", rs.getObject(i));
                    }
                } else if (rsCounter == 1) {
                    if (i == 1) {
                        assertEquals("D", rmd.getColumnName(i));
                        assertEquals(VARCHAR, rmd.getColumnType(i));
                        assertEquals("test4", rs.getObject(i));
                    }
                } else if (rsCounter == 2) {
                    if (i == 1) {
                        assertEquals("D", rmd.getColumnName(i));
                        assertEquals(VARCHAR, rmd.getColumnType(i));
                        assertEquals("test6", rs.getObject(i));
                    }
                } else if (rsCounter == 3) {
                    if (i == 1) {
                        assertEquals("D", rmd.getColumnName(i));
                        assertEquals(VARCHAR, rmd.getColumnType(i));
                        assertEquals("test9", rs.getObject(i));
                    } else if (i == 2) {
                        assertEquals("DYN1", rmd.getColumnName(i));
                        assertEquals(VARCHAR, rmd.getColumnType(i));
                        assertEquals("test10", rs.getObject(i));
                    } else if (i == 3) {
                        assertEquals("DYN2", rmd.getColumnName(i));
                        assertEquals(INTEGER, rmd.getColumnType(i));
                        assertEquals(80, rs.getObject(i));
                    }
                } else if (rsCounter == 4) {
                    if (i == 1) {
                        assertEquals("D", rmd.getColumnName(i));
                        assertEquals(VARCHAR, rmd.getColumnType(i));
                        assertEquals("test12", rs.getObject(i));
                    } else if (i == 2) {
                        assertEquals("DYN4", rmd.getColumnName(i));
                        assertEquals(INTEGER, rmd.getColumnType(i));
                        assertEquals(90, rs.getObject(i));
                    }
                }
            }
            rsCounter++;
        }

    }