
net.snowflake.client.jdbcapi.DatabaseMetaDataIT Maven / Gradle / Ivy
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package net.snowflake.client.jdbcapi;
import net.snowflake.client.jdbc.ErrorCode;
import org.junit.Test;
import org.junit.Before;
import org.junit.After;
import static org.junit.Assert.*;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author hyu
*/
public class DatabaseMetaDataIT extends BaseJDBCTest
{
private Connection connection;
private Statement statement;
private DatabaseMetaData databaseMetaData;
private ResultSet resultSet;
@Before
public void setUp() throws SQLException{
Connection con = getConnection();
Statement st = con.createStatement();
st.execute("create or replace database JDBC_DB1");
st.execute("create or replace schema JDBC_SCHEMA11");
st.execute("create or replace table JDBC_TBL111(colA string, colB decimal, colC timestamp)");
st.execute("create or replace schema JDBC_SCHEMA12");
st.execute("create or replace table JDBC_TBL121(colA varchar)");
st.execute("create or replace table JDBC_TBL122(colA NUMBER(20, 2) AUTOINCREMENT comment " +
"'cmt colA', colB NUMBER(20, 2) DEFAULT(3) NOT NULL, colC NUMBER(20,2) IDENTITY(20, 2))");
st.execute("create or replace database JDBC_DB2");
st.execute("create or replace schema JDBC_SCHEMA21");
st.execute("create or replace table JDBC_TBL211(colA string)");
// st.execute("create or replace table JDBC_TBL211(colA string(25) NOT NULL DEFAULT 'defstring')");
st.close();
con.close();
}
@After
public void tearDown() throws SQLException{
Connection con = getConnection();
Statement st = con.createStatement();
st.execute("drop database if exists JDBC_DB1");
st.execute("drop database if exists JDBC_DB2");
st.close();
con.close();
}
@Test
public void testCatalog() throws SQLException{
connection = getConnection();
statement = connection.createStatement();
databaseMetaData = connection.getMetaData();
resultSet = databaseMetaData.getCatalogs();
assertEquals(".", databaseMetaData.getCatalogSeparator());
assertEquals("database", databaseMetaData.getCatalogTerm());
ArrayList actual = new ArrayList<>();
while(resultSet.next()){
actual.add(resultSet.getString(1));
}
String getAlldbFromInfoSchema = "select database_name from information_schema.databases";
ArrayList expected = getInfoViaSQLCmd(getAlldbFromInfoSchema);
//compareTwoLists(expected, actual);
statement.close();
connection.close();
}
@Test
public void testGetColumn() throws SQLException{
String getAllColumsCount = "select count(*) from db.information_schema.columns";
connection = getConnection();
statement = connection.createStatement();
databaseMetaData = connection.getMetaData();
resultSet = databaseMetaData.getColumns(null, null, null, null);
assertEquals(getAllObjectCountInDBViaInforSchema(getAllColumsCount), getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getColumns(null, "JDBC_SCHEMA11", null, null);
assertEquals(3, getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getColumns(null, "JDBC_SCH_MA11", null, null);
assertEquals(3, getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getColumns(null, "JDBC%", null, null);
assertEquals(8, getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getColumns(null, "JDBC_SCHEMA1_", null, null);
assertEquals(7, getSizeOfResultSet(resultSet));
// test if return the correct info
resultSet = databaseMetaData.getColumns("JDBC_DB1", "JDBC_SCHEMA12", "JDBC_TBL122", "COLA");
resultSet.next();
//fetchResultSet(resultSet, true);
assertEquals("JDBC_DB1", resultSet.getString("TABLE_CAT"));
assertEquals("JDBC_SCHEMA12", resultSet.getString("TABLE_SCHEM"));
assertEquals("JDBC_TBL122", resultSet.getString("TABLE_NAME"));
assertEquals("COLA", resultSet.getString("COLUMN_NAME"));
assertEquals(Types.DECIMAL, resultSet.getInt("DATA_TYPE"));
assertEquals("NUMBER", resultSet.getString("TYPE_NAME"));
assertEquals("20", resultSet.getString("COLUMN_SIZE"));
assertEquals("2", resultSet.getString("DECIMAL_DIGITS"));
assertEquals(DatabaseMetaData.columnNullable, resultSet.getInt("NULLABLE"));
assertEquals("cmt colA", resultSet.getString("REMARKS"));
assertEquals("", resultSet.getString("COLUMN_DEF"));
assertEquals("YES", resultSet.getString("IS_NULLABLE"));
assertEquals("YES", resultSet.getString("IS_AUTOINCREMENT"));
resultSet.close();
// more on default and autoincrement
resultSet = databaseMetaData.getColumns("JDBC_DB1", "JDBC_SCHEMA12", "JDBC_TBL122", "COLB");
resultSet.next();
assertEquals(DatabaseMetaData.columnNoNulls, resultSet.getInt(11));
assertEquals("3", resultSet.getString(13));
assertEquals("NO", resultSet.getString(23));
resultSet.close();
resultSet = databaseMetaData.getColumns("JDBC_DB1", "JDBC_SCHEMA1_", null, "COL_");
resultSet = databaseMetaData.getColumns("JDBC_DB1", "JDBC_SCHEMA12", "JDBC_TBL122", "COLC");
resultSet.next();
assertEquals("", resultSet.getString(13));
assertEquals("YES", resultSet.getString(23));
// SNOW-24558 Metadata request with special characters in table name
statement.execute("create or replace table \"@@specialchartable$1234\"(colA int)");
resultSet = databaseMetaData.getColumns(null, null, "@@specialchartable$%", null);
assertEquals(1, getSizeOfResultSet(resultSet));
resultSet.close();
connection.close();
}
@Test
public void testGetFunctions() throws SQLException
{
connection = getConnection();
statement = connection.createStatement();
statement.execute("create or replace function JDBC_DB1.JDBC_SCHEMA11.FUNC111 " +
"(a number, b number) RETURNS NUMBER COMMENT='mutiply numbers' as 'a*b'");
statement.execute("create or replace function JDBC_DB1.JDBC_SCHEMA12.FUNC121 " +
"(a number, b number) RETURNS NUMBER COMMENT='mutiply numbers' as 'a*b'");
statement.execute("create or replace function JDBC_DB1.JDBC_SCHEMA12.FUNC122 " +
"(a number, b number) RETURNS NUMBER COMMENT='mutiply numbers' as 'a*b'");
statement.execute("create or replace function JDBC_DB2.JDBC_SCHEMA21.FUNC211 " +
"(a number, b number) RETURNS NUMBER COMMENT='mutiply numbers' as 'a*b'");
statement.execute("create or replace function JDBC_DB2.JDBC_SCHEMA21.FUNC212 " +
"() RETURNS TABLE(colA varchar) as 'select COLA from JDBC_DB2.JDBC_SCHEMA21.JDBC_TBL211'");
databaseMetaData = connection.getMetaData();
// test each column return the right value
resultSet = databaseMetaData.getFunctions("JDBC_DB1", "JDBC_SCHEMA11", "FUNC111");
resultSet.next();
assertEquals("JDBC_DB1", resultSet.getString("FUNCTION_CAT"));
assertEquals("JDBC_SCHEMA11", resultSet.getString("FUNCTION_SCHEM"));
assertEquals("FUNC111", resultSet.getString("FUNCTION_NAME"));
assertEquals("mutiply numbers", resultSet.getString("REMARKS"));
assertEquals(DatabaseMetaData.functionNoTable, resultSet.getInt("FUNCTION_TYPE"));
assertEquals("FUNC111", resultSet.getString("SPECIFIC_NAME"));
assertTrue(!resultSet.next());
// test a table function
resultSet = databaseMetaData.getFunctions("JDBC_DB2", "JDBC_SCHEMA21", "FUNC212");
resultSet.next();
assertEquals(DatabaseMetaData.functionReturnsTable, resultSet.getInt("FUNCTION_TYPE"));
assertFalse(resultSet.next());
// test a builtin function
resultSet = databaseMetaData.getFunctions(null, null, "AND");
resultSet.next();
assertEquals("", resultSet.getString("FUNCTION_CAT"));
assertEquals("", resultSet.getString("FUNCTION_SCHEM"));
assertEquals("AND", resultSet.getString("FUNCTION_NAME"));
assertEquals(DatabaseMetaData.functionNoTable, resultSet.getInt("FUNCTION_TYPE"));
assertEquals("AND", resultSet.getString("SPECIFIC_NAME"));
assertTrue(!resultSet.next());
// test pattern
resultSet = databaseMetaData.getFunctions(null, null, "FUNC%");
assertEquals(5, getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getFunctions(null, "JDBC_SCHEMA1_", "_UNC%");
assertEquals(3, getSizeOfResultSet(resultSet));
//resultSet = databaseMetaData.getFunctions("JDBC_DB1", "AAAAAAAAAAA", "AAAAAAA");
try {
resultSet = databaseMetaData.getFunctions("JDBC_DB3", "JDBC_SCHEMA1_", "_UNC%");
} catch (SQLException e)
{
assertEquals(2003, e.getErrorCode());
}
resultSet = databaseMetaData.getFunctions("JDBC_DB1", "JDBC_SCHEMA__", "_UNC%");
assertEquals(3, getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getFunctions("JDBC_DB1", "JDBC_SCHEMA1_", "_UNC11_");
assertEquals(1, getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getFunctions("JDBC_DB1", null, "_UNC11_");
assertEquals(1, getSizeOfResultSet(resultSet));
resultSet.close();
statement.close();
connection.close();
}
@Test
public void testGetConnection() throws SQLException{
connection = getConnection();
databaseMetaData = connection.getMetaData();
assertEquals(connection, databaseMetaData.getConnection());
connection.close();
}
@Test
public void testDatabaseAndDriverInfo() throws SQLException{
connection = getConnection();
databaseMetaData = connection.getMetaData();
assertEquals("Snowflake", databaseMetaData.getDatabaseProductName());
assertEquals(1, databaseMetaData.getJDBCMajorVersion());
assertEquals(0, databaseMetaData.getJDBCMinorVersion());
assertEquals("Snowflake", databaseMetaData.getDriverName());
}
@Test
public void testGetSchema() throws SQLException{
String getSchemaCount = "select count(*) from db.information_schema.schemata";
connection = getConnection();
databaseMetaData = connection.getMetaData();
assertEquals("schema", databaseMetaData.getSchemaTerm());
resultSet = databaseMetaData.getSchemas();
assertEquals(getAllObjectCountInDBViaInforSchema(getSchemaCount), getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getSchemas(null, null);
assertEquals(getAllObjectCountInDBViaInforSchema(getSchemaCount), getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getSchemas("JDBC_DB1", "%");
resultSet.next();
assertEquals("INFORMATION_SCHEMA", resultSet.getString(1));
assertEquals("JDBC_DB1", resultSet.getString(2));
resultSet.next();
assertEquals("JDBC_SCHEMA11", resultSet.getString(1));
assertEquals("JDBC_DB1", resultSet.getString(2));
resultSet.next();
assertEquals("JDBC_SCHEMA12", resultSet.getString(1));
assertEquals("JDBC_DB1", resultSet.getString(2));
resultSet.next();
assertEquals("PUBLIC", resultSet.getString(1));
assertEquals("JDBC_DB1", resultSet.getString(2));
resultSet = databaseMetaData.getSchemas("JDBC_DB1", "JDBC%");
assertEquals(2, getSizeOfResultSet(resultSet));
connection.close() ;
}
@Test
public void testGetTables() throws SQLException{
String getAllTable = "select count(*) from db.information_schema.tables";
String getAllBaseTable = "select count(*) from db.information_schema."
+ "tables where table_type = 'BASE TABLE'";
String getAllView = "select count(*) from db.information_schema."
+ "tables where table_type = 'VIEW'";
connection = getConnection();
databaseMetaData = connection.getMetaData();
try{
resultSet = databaseMetaData.getTables(null, null, null, new String[]{"ALIAS"});
}
catch(SQLException e)
{
assertEquals(ErrorCode.FEATURE_UNSUPPORTED.getSqlState(), e.getSQLState());
assertEquals(ErrorCode.FEATURE_UNSUPPORTED.getMessageCode().intValue(), e.getErrorCode());
}
resultSet = databaseMetaData.getTables(null, null, null, new String[]{"SYSTEM_TABLE"});
assertEquals(0, getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getTables(null, null, null, null);
assertEquals(getAllObjectCountInDBViaInforSchema(getAllTable), getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getTables(null, null, null, new String[]{"VIEW", "SYSTEM_TABLE"});
assertEquals(getAllObjectCountInDBViaInforSchema(getAllView), getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getTables(null, null, null, new String[]{"TABLE", "SYSTEM_TABLE"});
assertEquals(getAllObjectCountInDBViaInforSchema(getAllBaseTable), getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getTables(null, null, null, new String[]{"TABLE", "VIEW", "SYSTEM_TABLE"});
assertEquals(getAllObjectCountInDBViaInforSchema(getAllTable), getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getTables(null, null, null, new String[]{"TABLE", "VIEW"});
assertEquals(getAllObjectCountInDBViaInforSchema(getAllTable), getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getTables(null, null, null, new String[]{"TABLE"});
assertEquals(getAllObjectCountInDBViaInforSchema(getAllBaseTable), getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getTables(null, null, null, new String[]{"VIEW"});
assertEquals(getAllObjectCountInDBViaInforSchema(getAllView), getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getTables("JDBC_DB1", "JDBC_SCHEMA11", null, new String[]{"TABLE"});
assertEquals(1, getSizeOfResultSet(resultSet));
// snow-26032. JDBC should strip backslash before sending the show functions to server
resultSet = databaseMetaData.getTables("JDBC_DB1", "JDBC\\_SCHEMA11", "%", new String[]{"TABLE"});
assertEquals(1, getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getTables("JDBC_DB1", "JDBC%", null, new String[]{"TABLE"});
assertEquals(3, getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getTables("JDBC_DB1", "JDBC_SCH%", "J_BC_TBL122", new String[]{"TABLE"});
resultSet.next();
assertEquals("JDBC_DB1", resultSet.getString(1));
assertEquals("JDBC_SCHEMA12", resultSet.getString(2));
assertEquals("JDBC_TBL122", resultSet.getString(3));
assertEquals("TABLE", resultSet.getString(4));
assertEquals("", resultSet.getString(5));
resultSet = databaseMetaData.getTables("JDBC_DB1", null, "JDBC_TBL211", new String[]{"TABLE"});
assertEquals(0, getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getTableTypes();
resultSet.next();
assertEquals("TABLE", resultSet.getString(1));
resultSet.next();
assertEquals("VIEW", resultSet.getString(1));
connection.close();
}
@Test
public void testGetMetaDataUseConnectionCtx() throws SQLException
{
Connection connection = getConnection();
Statement statement = connection.createStatement();
// setup: reset session db and schema, enable the parameter
statement.execute("use database JDBC_DB1");
statement.execute("use schema JDBC_SCHEMA11");
statement.execute("alter SESSION set CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX=true");
DatabaseMetaData databaseMetaData = connection.getMetaData();
// this should only return JDBC_SCHEMA11
ResultSet resultSet = databaseMetaData.getSchemas(null, null);
assertEquals(1, getSizeOfResultSet(resultSet));
// only returns tables in JDBC_DB1.JDBC_SCHEMA11
resultSet = databaseMetaData.getTables(null, null, null, null);
assertEquals(1, getSizeOfResultSet(resultSet));
statement.execute("use schema JDBC_SCHEMA12");
resultSet = databaseMetaData.getTables(null, null, null, null);
assertEquals(2, getSizeOfResultSet(resultSet));
resultSet = databaseMetaData.getColumns(null, null, null, null);
assertEquals(4, getSizeOfResultSet(resultSet));
}
private int getAllObjectCountInDBViaInforSchema(String SQLCmdTemplate) throws SQLException{
int objectCount = 0;
Connection con = getConnection();
Statement st = con.createStatement();
st.execute("alter session set ENABLE_BUILTIN_SCHEMAS = true");
ResultSet dbNameRS = st.executeQuery("select database_name from information_schema.databases");
while(dbNameRS.next()){
String databaseName = dbNameRS.getString(1);
String execSQLCmd = SQLCmdTemplate.replaceAll("db", databaseName);
ResultSet object = st.executeQuery(execSQLCmd);
object.next();
objectCount += object.getInt(1);
}
return objectCount;
}
// SNOW-1595
@Test
public void testGetObjectsDoesNotExists() throws SQLException
{
connection = getConnection();
databaseMetaData = connection.getMetaData();
resultSet = databaseMetaData.getSchemas("DB_NOT_EXIST", "SCHEMA_NOT_EXIST");
assertTrue(!resultSet.next());
resultSet = databaseMetaData.getTables("DB_NOT_EXIST", "SCHEMA_NOT_EXIST", "%", null);
assertTrue(!resultSet.next());
resultSet = databaseMetaData.getTables("JDBC_DB1", "SCHEMA\\_NOT\\_EXIST", "%", null);
assertTrue(!resultSet.next());
resultSet = databaseMetaData.getColumns("DB_NOT_EXIST", "SCHEMA_NOT_EXIST", "%", "%");
assertTrue(!resultSet.next());
resultSet = databaseMetaData.getColumns("JDBC_DB1", "SCHEMA\\_NOT\\_EXIST", "%", "%");
assertTrue(!resultSet.next());
resultSet = databaseMetaData.getColumns("JDBC_DB1", "JDBC\\_SCHEMA11", "TBL\\_NOT\\_EXIST", "%");
assertTrue(!resultSet.next());
connection.close();
}
@Test
public void testTypeInfo() throws SQLException{
connection = getConnection();
databaseMetaData = connection.getMetaData();
resultSet = databaseMetaData.getTypeInfo();
resultSet.next();
assertEquals("NUMBER", resultSet.getString(1));
resultSet.next();
assertEquals("INTEGER", resultSet.getString(1));
resultSet.next();
assertEquals("DOUBLE", resultSet.getString(1));
resultSet.next();
assertEquals("VARCHAR", resultSet.getString(1));
resultSet.next();
assertEquals("DATE", resultSet.getString(1));
resultSet.next();
assertEquals("TIME", resultSet.getString(1));
resultSet.next();
assertEquals("TIMESTAMP", resultSet.getString(1));
resultSet.next();
assertEquals("BOOLEAN", resultSet.getString(1));
connection.close();
}
@Test
public void testInfoThatAlwaysReturnSameValue() throws SQLException{
connection = getConnection();
databaseMetaData = connection.getMetaData();
assertEquals(false, databaseMetaData.allProceduresAreCallable());
assertEquals(true, databaseMetaData.allTablesAreSelectable());
assertEquals(true, databaseMetaData.dataDefinitionCausesTransactionCommit());
assertEquals(false, databaseMetaData.dataDefinitionIgnoredInTransactions());
assertEquals(false, databaseMetaData.deletesAreDetected(1));
assertEquals(true, databaseMetaData.doesMaxRowSizeIncludeBlobs());
assertEquals(Connection.TRANSACTION_READ_COMMITTED, databaseMetaData.getDefaultTransactionIsolation());
assertEquals("$", databaseMetaData.getExtraNameCharacters());
assertEquals("\"", databaseMetaData.getIdentifierQuoteString());
assertEquals(0, getSizeOfResultSet(databaseMetaData.getIndexInfo(null, null, null, true, true)));
assertEquals(0, databaseMetaData.getMaxBinaryLiteralLength());
assertEquals(255, databaseMetaData.getMaxCatalogNameLength());
assertEquals(16777216, databaseMetaData.getMaxCharLiteralLength());
assertEquals(255, databaseMetaData.getMaxColumnNameLength());
assertEquals(0, databaseMetaData.getMaxColumnsInGroupBy());
assertEquals(0, databaseMetaData.getMaxColumnsInIndex());
assertEquals(0, databaseMetaData.getMaxColumnsInOrderBy());
assertEquals(0, databaseMetaData.getMaxColumnsInSelect());
assertEquals(0, databaseMetaData.getMaxColumnsInTable());
assertEquals(0, databaseMetaData.getMaxConnections());
assertEquals(0, databaseMetaData.getMaxCursorNameLength());
assertEquals(0, databaseMetaData.getMaxIndexLength());
assertEquals(0, databaseMetaData.getMaxProcedureNameLength());
assertEquals(0, databaseMetaData.getMaxRowSize());
assertEquals(255, databaseMetaData.getMaxSchemaNameLength());
assertEquals(0, databaseMetaData.getMaxStatementLength());
assertEquals(0, databaseMetaData.getMaxStatements());
assertEquals(255, databaseMetaData.getMaxTableNameLength());
assertEquals(0, databaseMetaData.getMaxTablesInSelect());
assertEquals(255, databaseMetaData.getMaxUserNameLength());
//assertEquals("", databaseMetaData.getNumericFunctions());
assertEquals(0, getSizeOfResultSet(databaseMetaData.getProcedures(null, null, null)));
assertEquals("procedure", databaseMetaData.getProcedureTerm());
//assertEquals("", databaseMetaData.getStringFunctions());
//assertEquals("", databaseMetaData.getSystemFunctions());
assertEquals(0, getSizeOfResultSet(databaseMetaData.getTablePrivileges(null, null, null)));
//assertEquals("", databaseMetaData.getTimeDateFunctions());
assertEquals("snowman", databaseMetaData.getUserName());
assertEquals(false, databaseMetaData.insertsAreDetected(1));
assertEquals(true, databaseMetaData.isCatalogAtStart());
assertEquals(false, databaseMetaData.isReadOnly());
assertEquals(true, databaseMetaData.nullPlusNonNullIsNull());
assertEquals(false, databaseMetaData.nullsAreSortedAtEnd());
assertEquals(false, databaseMetaData.nullsAreSortedAtStart());
assertEquals(true, databaseMetaData.nullsAreSortedHigh());
assertEquals(false, databaseMetaData.nullsAreSortedLow());
assertEquals(false, databaseMetaData.othersDeletesAreVisible(1));
assertEquals(false, databaseMetaData.othersInsertsAreVisible(1));
assertEquals(false, databaseMetaData.othersUpdatesAreVisible(1));
assertEquals(false, databaseMetaData.ownDeletesAreVisible(1));
assertEquals(false, databaseMetaData.ownInsertsAreVisible(1));
assertEquals(false, databaseMetaData.ownUpdatesAreVisible(1));
assertEquals(false, databaseMetaData.storesLowerCaseIdentifiers());
assertEquals(false, databaseMetaData.storesLowerCaseQuotedIdentifiers());
assertEquals(false, databaseMetaData.storesMixedCaseIdentifiers());
assertEquals(true, databaseMetaData.storesMixedCaseQuotedIdentifiers());
assertEquals(true, databaseMetaData.storesUpperCaseIdentifiers());
assertEquals(false, databaseMetaData.storesUpperCaseQuotedIdentifiers());
assertEquals(true, databaseMetaData.supportsAlterTableWithAddColumn());
assertEquals(true, databaseMetaData.supportsAlterTableWithDropColumn());
assertEquals(true, databaseMetaData.supportsANSI92EntryLevelSQL());
assertEquals(false, databaseMetaData.supportsANSI92FullSQL());
assertEquals(false, databaseMetaData.supportsANSI92IntermediateSQL());
assertEquals(true, databaseMetaData.supportsBatchUpdates());
assertEquals(true, databaseMetaData.supportsCatalogsInDataManipulation());
assertEquals(false, databaseMetaData.supportsCatalogsInIndexDefinitions());
assertEquals(false, databaseMetaData.supportsCatalogsInPrivilegeDefinitions());
assertEquals(false, databaseMetaData.supportsCatalogsInProcedureCalls());
assertEquals(true, databaseMetaData. supportsCatalogsInTableDefinitions());
assertEquals(true, databaseMetaData.supportsColumnAliasing());
assertEquals(false, databaseMetaData.supportsConvert());
assertEquals(false, databaseMetaData.supportsConvert(1, 2));
assertEquals(false, databaseMetaData.supportsCoreSQLGrammar());
assertEquals(true, databaseMetaData.supportsCorrelatedSubqueries());
assertEquals(true, databaseMetaData.supportsDataDefinitionAndDataManipulationTransactions());
assertEquals(false, databaseMetaData.supportsDataManipulationTransactionsOnly());
assertEquals(false, databaseMetaData.supportsDifferentTableCorrelationNames());
assertEquals(true, databaseMetaData.supportsExpressionsInOrderBy());
assertEquals(false, databaseMetaData.supportsExtendedSQLGrammar());
assertEquals(true, databaseMetaData.supportsFullOuterJoins());
assertEquals(false, databaseMetaData.supportsGetGeneratedKeys());
assertEquals(true, databaseMetaData.supportsGroupBy());
assertEquals(true, databaseMetaData.supportsGroupByBeyondSelect());
assertEquals(false, databaseMetaData.supportsGroupByUnrelated());
assertEquals(false, databaseMetaData.supportsIntegrityEnhancementFacility());
assertEquals(false, databaseMetaData.supportsLikeEscapeClause());
assertEquals(true, databaseMetaData.supportsLimitedOuterJoins());
assertEquals(false, databaseMetaData.supportsMinimumSQLGrammar());
assertEquals(false, databaseMetaData.supportsMixedCaseIdentifiers());
assertEquals(true, databaseMetaData.supportsMixedCaseQuotedIdentifiers());
assertEquals(false, databaseMetaData.supportsMultipleOpenResults());
assertEquals(false, databaseMetaData.supportsMultipleResultSets());
assertEquals(true, databaseMetaData.supportsMultipleTransactions());
assertEquals(false, databaseMetaData.supportsNamedParameters());
assertEquals(true, databaseMetaData.supportsNonNullableColumns());
assertEquals(false, databaseMetaData.supportsOpenCursorsAcrossCommit());
assertEquals(false, databaseMetaData.supportsOpenCursorsAcrossRollback());
assertEquals(false, databaseMetaData.supportsOpenStatementsAcrossCommit());
assertEquals(false, databaseMetaData.supportsOpenStatementsAcrossRollback());
assertEquals(true, databaseMetaData.supportsOrderByUnrelated());
assertEquals(true, databaseMetaData.supportsOuterJoins());
assertEquals(false, databaseMetaData.supportsPositionedDelete());
assertEquals(false, databaseMetaData.supportsPositionedUpdate());
assertEquals(true, databaseMetaData.supportsResultSetConcurrency(ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_READ_ONLY));
assertEquals(true, databaseMetaData.supportsResultSetType(ResultSet.TYPE_FORWARD_ONLY));
assertEquals(false, databaseMetaData.supportsResultSetHoldability(0));
assertEquals(false, databaseMetaData.supportsSavepoints());
assertEquals(true, databaseMetaData.supportsSchemasInDataManipulation());
assertEquals(false, databaseMetaData.supportsSchemasInIndexDefinitions());
assertEquals(false, databaseMetaData.supportsSchemasInPrivilegeDefinitions());
assertEquals(false, databaseMetaData.supportsSchemasInProcedureCalls());
assertEquals(true, databaseMetaData.supportsSchemasInTableDefinitions());
assertEquals(false, databaseMetaData.supportsSelectForUpdate());
//assertEquals(false, databaseMetaData.supportsStatementPooling());
//assertEquals(false, databaseMetaData.supportsStoredFunctionsUsingCallSyntax());
assertEquals(true, databaseMetaData.supportsSubqueriesInComparisons());
assertEquals(true, databaseMetaData.supportsSubqueriesInExists());
assertEquals(true, databaseMetaData.supportsSubqueriesInIns());
assertEquals(false, databaseMetaData.supportsSubqueriesInQuantifieds());
assertEquals(true, databaseMetaData.supportsTableCorrelationNames());
assertEquals(true, databaseMetaData.supportsTransactionIsolationLevel(Connection.TRANSACTION_READ_COMMITTED));
assertEquals(true, databaseMetaData.supportsUnion());
assertEquals(true, databaseMetaData.supportsUnionAll());
assertEquals(false, databaseMetaData.updatesAreDetected(1));
assertEquals(false, databaseMetaData.usesLocalFilePerTable());
assertEquals(false, databaseMetaData.usesLocalFiles());
connection.close();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy