@Override
    public Table getTable(long id, String name, List<Column> schema, String dbName, String catalogName,
                          Map<String, String> properties) throws DdlException {
        Map<String, String> newProp = new HashMap<>(properties);
        newProp.putIfAbsent(JDBCTable.JDBC_TABLENAME, "\"" + dbName + "\"" + "." + "\"" + name + "\"");
        return new JDBCTable(id, name, schema, dbName, catalogName, newProp);
    }
@Test
    public void testGetTable() throws SQLException {
        new Expectations() {
            {
                dataSource.getConnection();
                result = connection;
                minTimes = 0;

                connection.getCatalog();
                result = "t1";
                minTimes = 0;

                connection.getMetaData().getColumns("t1", "test", "tbl1", "%");
                result = columnResult;
                minTimes = 0;
            }
        };
        try {
            JDBCMetadata jdbcMetadata = new JDBCMetadata(properties, "catalog", dataSource);
            Table table = jdbcMetadata.getTable("test", "tbl1");
            Assert.assertTrue(table instanceof JDBCTable);
            Assert.assertEquals("catalog.test.tbl1", table.getUUID());
            Assert.assertEquals("tbl1", table.getName());
            Assert.assertNull(properties.get(JDBCTable.JDBC_TABLENAME));
            Assert.assertTrue(table.getColumn("a").getType().isFloat());
            Assert.assertTrue(table.getColumn("b").getType().isDouble());
            Assert.assertTrue(table.getColumn("c").getType().isDecimalV3());
            Assert.assertTrue(table.getColumn("d").getType().isStringType());
            Assert.assertTrue(table.getColumn("e").getType().isStringType());
            Assert.assertTrue(table.getColumn("f").getType().isBinaryType());
            Assert.assertTrue(table.getColumn("g").getType().isStringType());
            Assert.assertTrue(table.getColumn("h").getType().isDate());
            Assert.assertTrue(table.getColumn("i").getType().isStringType());
            Assert.assertTrue(table.getColumn("j").getType().isStringType());
            Assert.assertTrue(table.getColumn("k").getType().isStringType());
            Assert.assertTrue(table.getColumn("l").getType().isBinaryType());
        } catch (Exception e) {
            System.out.println(e.getMessage());
            Assert.fail();
        }
    }