我无法从Postgres数据库获取使用jooq 3.9.1的表的完整列表

时间:2018-07-24 07:13:07

标签: postgresql partitioning jooq

我正在如下创建表格:

CREATE TABLE plist1 (c1 NUMERIC, c2 VARCHAR(10)) PARTITION BY
LIST (c1)

当我尝试从Postgres数据库中读取表的完整列表时,包括我们用于分区的主表。

有趣的是,当我将独立程序与标准java.sql.connection和java.sql.DatabaseMetadata类一起使用时,我可以看到完整的表列表,如下所示:

public void getTableListFromConn() throws Exception {
    Class.forName("org.postgresql.Driver");
    Connection con = DriverManager.getConnection(
            "jdbc:postgresql://<hostname>:5432/postgres", "<username>",
            "<password>");
    System.out.println("Product name is : " + con.getMetaData().getDatabaseProductName());
    ResultSet rs = null;
    rs = con.getMetaData().getTables(null, null, null, new String[] { "TABLE" });
    int count = 0;
    while (rs.next()) {
        String catName = rs.getString("TABLE_CAT");
        String schemaName = rs.getString("TABLE_SCHEM");
        String tableName = rs.getString("TABLE_NAME");
        System.out.println("Cat : " + catName + " schemaname : " + schemaName + " tableName : " + tableName);
    }
    System.out.println("Count is : " + count);
}

从博客https://www.javacodegeeks.com/2014/08/integrating-jooq-with-postgresql-partitioning.html中,我了解到jooq不直接支持分区。

无论如何,我们可以使用JOOQ库获得表的完整列表。

1 个答案:

答案 0 :(得分:0)

我确定不是jooq的问题,而是我使用的是非常老的postgresql版本,但是从42.1.2版本开始引入了支持。

请签出以下网址 version_42.1.2