private void checkTablesByType(final String tableType, final Matcher<String> matcher) throws Exception { that() .with(CalciteAssert.Config.REGULAR_PLUS_METADATA) .doWithConnection(connection -> { try (ResultSet rset = connection.getMetaData().getTables(null, null, null, new String[] {tableType})) { StringBuilder buf = new StringBuilder(); while (rset.next()) { buf.append(rset.getString(3)).append(';'); } assertThat(buf.toString(), matcher); } catch (SQLException e) { throw new RuntimeException(e); } }); }
private void checkTablesByType(final String tableType, final Matcher<String> matcher) throws Exception { that() .with(CalciteAssert.Config.REGULAR_PLUS_METADATA) .doWithConnection(connection -> { try (ResultSet rset = connection.getMetaData().getTables(null, null, null, new String[] {tableType})) { StringBuilder buf = new StringBuilder(); while (rset.next()) { buf.append(rset.getString(3)).append(';'); } assertThat(buf.toString(), matcher); } catch (SQLException e) { throw new RuntimeException(e); } }); }
@Test public void testColumns() throws Exception { that() .with(CalciteAssert.Config.JDBC_FOODMART) .doWithConnection(connection -> { try { ResultSet rset = connection.getMetaData().getColumns( null, null, "sales_fact_1997", null); StringBuilder buf = new StringBuilder(); while (rset.next()) { buf.append(rset.getString(4)).append(';'); } assertEquals( "product_id;time_id;customer_id;promotion_id;store_id;store_sales;store_cost;unit_sales;", buf.toString()); } catch (SQLException e) { throw new RuntimeException(e); } }); }
@Test public void testColumns() throws Exception { that() .with(CalciteAssert.Config.JDBC_FOODMART) .doWithConnection(connection -> { try { ResultSet rset = connection.getMetaData().getColumns( null, null, "sales_fact_1997", null); StringBuilder buf = new StringBuilder(); while (rset.next()) { buf.append(rset.getString(4)).append(';'); } assertEquals( "product_id;time_id;customer_id;promotion_id;store_id;store_sales;store_cost;unit_sales;", buf.toString()); } catch (SQLException e) { throw new RuntimeException(e); } }); }
@Ignore @Test public void testTables() throws Exception { that() .with(CalciteAssert.Config.JDBC_FOODMART) .doWithConnection(connection -> { try { ResultSet rset = connection.getMetaData().getTables( null, null, null, null); StringBuilder buf = new StringBuilder(); while (rset.next()) { buf.append(rset.getString(3)).append(';'); } assertEquals( "account;agg_c_10_sales_fact_1997;agg_c_14_sales_fact_1997;agg_c_special_sales_fact_1997;agg_g_ms_pcat_sales_fact_1997;agg_l_03_sales_fact_1997;agg_l_04_sales_fact_1997;agg_l_05_sales_fact_1997;agg_lc_06_sales_fact_1997;agg_lc_100_sales_fact_1997;agg_ll_01_sales_fact_1997;agg_pl_01_sales_fact_1997;category;currency;customer;days;department;employee;employee_closure;expense_fact;inventory_fact_1997;inventory_fact_1998;position;product;product_class;products;promotion;region;reserve_employee;salary;sales_fact_1997;sales_fact_1998;sales_fact_dec_1998;store;store_ragged;time_by_day;warehouse;warehouse_class;COLUMNS;TABLES;", buf.toString()); } catch (SQLException e) { throw new RuntimeException(e); } }); }
@Ignore @Test public void testTables() throws Exception { that() .with(CalciteAssert.Config.JDBC_FOODMART) .doWithConnection(connection -> { try { ResultSet rset = connection.getMetaData().getTables( null, null, null, null); StringBuilder buf = new StringBuilder(); while (rset.next()) { buf.append(rset.getString(3)).append(';'); } assertEquals( "account;agg_c_10_sales_fact_1997;agg_c_14_sales_fact_1997;agg_c_special_sales_fact_1997;agg_g_ms_pcat_sales_fact_1997;agg_l_03_sales_fact_1997;agg_l_04_sales_fact_1997;agg_l_05_sales_fact_1997;agg_lc_06_sales_fact_1997;agg_lc_100_sales_fact_1997;agg_ll_01_sales_fact_1997;agg_pl_01_sales_fact_1997;category;currency;customer;days;department;employee;employee_closure;expense_fact;inventory_fact_1997;inventory_fact_1998;position;product;product_class;products;promotion;region;reserve_employee;salary;sales_fact_1997;sales_fact_1998;sales_fact_dec_1998;store;store_ragged;time_by_day;warehouse;warehouse_class;COLUMNS;TABLES;", buf.toString()); } catch (SQLException e) { throw new RuntimeException(e); } }); }
/** Tests a JDBC method known to be not implemented (as it happens, * {@link java.sql.DatabaseMetaData#getPrimaryKeys}) that therefore uses * empty result set. */ @Test public void testEmpty() throws Exception { that() .with(CalciteAssert.Config.JDBC_FOODMART) .doWithConnection(connection -> { try { ResultSet rset = connection.getMetaData().getPrimaryKeys( null, null, "sales_fact_1997"); assertFalse(rset.next()); } catch (SQLException e) { throw new RuntimeException(e); } }); }
/** Tests a JDBC method known to be not implemented (as it happens, * {@link java.sql.DatabaseMetaData#getPrimaryKeys}) that therefore uses * empty result set. */ @Test public void testEmpty() throws Exception { that() .with(CalciteAssert.Config.JDBC_FOODMART) .doWithConnection(connection -> { try { ResultSet rset = connection.getMetaData().getPrimaryKeys( null, null, "sales_fact_1997"); assertFalse(rset.next()); } catch (SQLException e) { throw new RuntimeException(e); } }); }
/** Test case for * <a href="https://issues.apache.org/jira/browse/CALCITE-865">[CALCITE-865] * Unknown table type causes NullPointerException in JdbcSchema</a>. The issue * occurred because of the "SYSTEM_INDEX" table type when run against * PostgreSQL. */ @Test public void testMetadataTables() throws Exception { // The troublesome tables occur in PostgreSQL's system schema. final String model = JdbcTest.FOODMART_MODEL.replace("jdbcSchema: 'foodmart'", "jdbcSchema: null"); CalciteAssert.model( model) .doWithConnection(connection -> { try { final ResultSet resultSet = connection.getMetaData().getTables(null, null, "%", null); assertFalse(CalciteAssert.toString(resultSet).isEmpty()); } catch (SQLException e) { throw new RuntimeException(e); } }); }
/** Test case for * <a href="https://issues.apache.org/jira/browse/CALCITE-865">[CALCITE-865] * Unknown table type causes NullPointerException in JdbcSchema</a>. The issue * occurred because of the "SYSTEM_INDEX" table type when run against * PostgreSQL. */ @Test public void testMetadataTables() throws Exception { // The troublesome tables occur in PostgreSQL's system schema. final String model = JdbcTest.FOODMART_MODEL.replace("jdbcSchema: 'foodmart'", "jdbcSchema: null"); CalciteAssert.model( model) .doWithConnection(connection -> { try { final ResultSet resultSet = connection.getMetaData().getTables(null, null, "%", null); assertFalse(CalciteAssert.toString(resultSet).isEmpty()); } catch (SQLException e) { throw new RuntimeException(e); } }); }
/** Tests metadata for the MySQL ANSI lexical scheme. */ @Test public void testLexMySQLANSI() throws Exception { CalciteAssert.that() .with(Lex.MYSQL_ANSI) .doWithConnection(connection -> { try { DatabaseMetaData metaData = connection.getMetaData(); assertThat(metaData.getIdentifierQuoteString(), equalTo("\"")); assertThat(metaData.supportsMixedCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesMixedCaseIdentifiers(), equalTo(true)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseIdentifiers(), equalTo(false)); assertThat(metaData.supportsMixedCaseQuotedIdentifiers(), equalTo(false)); assertThat(metaData.storesMixedCaseQuotedIdentifiers(), equalTo(true)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseQuotedIdentifiers(), equalTo(false)); } catch (SQLException e) { throw new RuntimeException(e); } }); }
/** Tests metadata for different the "SQL_SERVER" lexical scheme. */ @Test public void testLexSqlServer() throws Exception { CalciteAssert.that() .with(Lex.SQL_SERVER) .doWithConnection(connection -> { try { DatabaseMetaData metaData = connection.getMetaData(); assertThat(metaData.getIdentifierQuoteString(), equalTo("[")); assertThat(metaData.supportsMixedCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesMixedCaseIdentifiers(), equalTo(true)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseIdentifiers(), equalTo(false)); assertThat(metaData.supportsMixedCaseQuotedIdentifiers(), equalTo(false)); assertThat(metaData.storesMixedCaseQuotedIdentifiers(), equalTo(true)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseQuotedIdentifiers(), equalTo(false)); } catch (SQLException e) { throw new RuntimeException(e); } }); }
/** Tests metadata for the MySQL ANSI lexical scheme. */ @Test public void testLexMySQLANSI() throws Exception { CalciteAssert.that() .with(Lex.MYSQL_ANSI) .doWithConnection(connection -> { try { DatabaseMetaData metaData = connection.getMetaData(); assertThat(metaData.getIdentifierQuoteString(), equalTo("\"")); assertThat(metaData.supportsMixedCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesMixedCaseIdentifiers(), equalTo(true)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseIdentifiers(), equalTo(false)); assertThat(metaData.supportsMixedCaseQuotedIdentifiers(), equalTo(false)); assertThat(metaData.storesMixedCaseQuotedIdentifiers(), equalTo(true)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseQuotedIdentifiers(), equalTo(false)); } catch (SQLException e) { throw new RuntimeException(e); } }); }
/** Tests metadata for different the "SQL_SERVER" lexical scheme. */ @Test public void testLexSqlServer() throws Exception { CalciteAssert.that() .with(Lex.SQL_SERVER) .doWithConnection(connection -> { try { DatabaseMetaData metaData = connection.getMetaData(); assertThat(metaData.getIdentifierQuoteString(), equalTo("[")); assertThat(metaData.supportsMixedCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesMixedCaseIdentifiers(), equalTo(true)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseIdentifiers(), equalTo(false)); assertThat(metaData.supportsMixedCaseQuotedIdentifiers(), equalTo(false)); assertThat(metaData.storesMixedCaseQuotedIdentifiers(), equalTo(true)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseQuotedIdentifiers(), equalTo(false)); } catch (SQLException e) { throw new RuntimeException(e); } }); }
/** Tests metadata for the JAVA lexical scheme. */ @Test public void testLexJava() throws Exception { CalciteAssert.that() .with(Lex.JAVA) .doWithConnection(connection -> { try { DatabaseMetaData metaData = connection.getMetaData(); assertThat(metaData.getIdentifierQuoteString(), equalTo("`")); assertThat(metaData.supportsMixedCaseIdentifiers(), equalTo(true)); assertThat(metaData.storesMixedCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseIdentifiers(), equalTo(false)); assertThat(metaData.supportsMixedCaseQuotedIdentifiers(), equalTo(true)); assertThat(metaData.storesMixedCaseQuotedIdentifiers(), equalTo(false)); assertThat(metaData.storesUpperCaseQuotedIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseQuotedIdentifiers(), equalTo(false)); } catch (SQLException e) { throw new RuntimeException(e); } }); }
/** Tests metadata for the JAVA lexical scheme. */ @Test public void testLexJava() throws Exception { CalciteAssert.that() .with(Lex.JAVA) .doWithConnection(connection -> { try { DatabaseMetaData metaData = connection.getMetaData(); assertThat(metaData.getIdentifierQuoteString(), equalTo("`")); assertThat(metaData.supportsMixedCaseIdentifiers(), equalTo(true)); assertThat(metaData.storesMixedCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseIdentifiers(), equalTo(false)); assertThat(metaData.supportsMixedCaseQuotedIdentifiers(), equalTo(true)); assertThat(metaData.storesMixedCaseQuotedIdentifiers(), equalTo(false)); assertThat(metaData.storesUpperCaseQuotedIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseQuotedIdentifiers(), equalTo(false)); } catch (SQLException e) { throw new RuntimeException(e); } }); }
.doWithConnection(connection -> { try { DatabaseMetaData metaData = connection.getMetaData(); assertThat(metaData.getIdentifierQuoteString(), equalTo("\""));
/** Tests metadata for the MySQL lexical scheme. */ @Test public void testLexMySQL() throws Exception { CalciteAssert.that() .with(Lex.MYSQL) .doWithConnection(connection -> { try { DatabaseMetaData metaData = connection.getMetaData(); assertThat(metaData.getIdentifierQuoteString(), equalTo("`")); assertThat(metaData.supportsMixedCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesMixedCaseIdentifiers(), equalTo(true)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseIdentifiers(), equalTo(false)); assertThat(metaData.supportsMixedCaseQuotedIdentifiers(), equalTo(false)); assertThat(metaData.storesMixedCaseQuotedIdentifiers(), equalTo(true)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseQuotedIdentifiers(), equalTo(false)); } catch (SQLException e) { throw new RuntimeException(e); } }); }
/** Tests metadata for the MySQL lexical scheme. */ @Test public void testLexMySQL() throws Exception { CalciteAssert.that() .with(Lex.MYSQL) .doWithConnection(connection -> { try { DatabaseMetaData metaData = connection.getMetaData(); assertThat(metaData.getIdentifierQuoteString(), equalTo("`")); assertThat(metaData.supportsMixedCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesMixedCaseIdentifiers(), equalTo(true)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseIdentifiers(), equalTo(false)); assertThat(metaData.supportsMixedCaseQuotedIdentifiers(), equalTo(false)); assertThat(metaData.storesMixedCaseQuotedIdentifiers(), equalTo(true)); assertThat(metaData.storesUpperCaseIdentifiers(), equalTo(false)); assertThat(metaData.storesLowerCaseQuotedIdentifiers(), equalTo(false)); } catch (SQLException e) { throw new RuntimeException(e); } }); }
.doWithConnection(connection -> { try { DatabaseMetaData metaData = connection.getMetaData(); assertThat(metaData.getIdentifierQuoteString(), equalTo("`"));