cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jbel...@apache.org
Subject svn commit: r1160523 - in /cassandra/drivers/java/src/org/apache/cassandra/cql/jdbc: CassandraConnection.java CassandraDatabaseMetaData.java
Date Tue, 23 Aug 2011 02:17:26 GMT
Author: jbellis
Date: Tue Aug 23 02:17:25 2011
New Revision: 1160523

URL: http://svn.apache.org/viewvc?rev=1160523&view=rev
Log:
add CassandraDatabaseMetadata
patch by Rick Shaw; reviewed by jbellis for CASSANDRA-2926

Added:
    cassandra/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraDatabaseMetaData.java
Modified:
    cassandra/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraConnection.java

Modified: cassandra/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraConnection.java
URL: http://svn.apache.org/viewvc/cassandra/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraConnection.java?rev=1160523&r1=1160522&r2=1160523&view=diff
==============================================================================
--- cassandra/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraConnection.java (original)
+++ cassandra/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraConnection.java Tue
Aug 23 02:17:25 2011
@@ -24,6 +24,7 @@ import static org.apache.cassandra.cql.j
 import static org.apache.cassandra.cql.jdbc.Utils.BAD_TIMEOUT;
 import static org.apache.cassandra.cql.jdbc.Utils.NO_INTERFACE;
 import static org.apache.cassandra.cql.jdbc.Utils.NO_TRANSACTIONS;
+import static org.apache.cassandra.cql.jdbc.Utils.PROTOCOL;
 import static org.apache.cassandra.cql.jdbc.Utils.SCHEMA_MISMATCH;
 import static org.apache.cassandra.cql.jdbc.Utils.TAG_SERVER_NAME;
 import static org.apache.cassandra.cql.jdbc.Utils.TAG_DATABASE_NAME;
@@ -31,6 +32,7 @@ import static org.apache.cassandra.cql.j
 import static org.apache.cassandra.cql.jdbc.Utils.TAG_PORT_NUMBER;
 import static org.apache.cassandra.cql.jdbc.Utils.TAG_USER;
 import static org.apache.cassandra.cql.jdbc.Utils.WAS_CLOSED_CON;
+import static org.apache.cassandra.cql.jdbc.Utils.createSubName;
 import static org.apache.cassandra.cql.jdbc.Utils.determineCurrentKeyspace;
 
 import java.sql.Connection;
@@ -106,7 +108,8 @@ class CassandraConnection extends Abstra
 
     protected long timeOfLastFailure = 0;
     protected int numFailures = 0;
-
+    protected String username = null;
+    protected String url = null;
     String currentKeyspace;
     ColumnDecoder decoder;
 
@@ -118,12 +121,13 @@ class CassandraConnection extends Abstra
     {
         statements = new ArrayList<Statement>();
         clientInfo = new Properties();
+        url = PROTOCOL + createSubName(props);
         try
         {
             String host = props.getProperty(TAG_SERVER_NAME);
             int port = Integer.parseInt(props.getProperty(TAG_PORT_NUMBER));
             String keyspace = props.getProperty(TAG_DATABASE_NAME);
-            String username = props.getProperty(TAG_USER);
+            username = props.getProperty(TAG_USER);
             String password = props.getProperty(TAG_PASSWORD);
 
             TSocket socket = new TSocket(host, port);
@@ -270,8 +274,7 @@ class CassandraConnection extends Abstra
     public DatabaseMetaData getMetaData() throws SQLException
     {
         checkNotClosed();
-        // the rationale is there is no DatabaseMetaData to return but if there was we would
return it...
-        return null;
+        return new CassandraDatabaseMetaData(this);
     }
 
     public int getTransactionIsolation() throws SQLException

Added: cassandra/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraDatabaseMetaData.java
URL: http://svn.apache.org/viewvc/cassandra/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraDatabaseMetaData.java?rev=1160523&view=auto
==============================================================================
--- cassandra/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraDatabaseMetaData.java
(added)
+++ cassandra/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraDatabaseMetaData.java
Tue Aug 23 02:17:25 2011
@@ -0,0 +1,922 @@
+/*
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ */
+package org.apache.cassandra.cql.jdbc;
+
+import static org.apache.cassandra.cql.jdbc.Utils.NO_INTERFACE;
+
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.RowIdLifetime;
+import java.sql.SQLException;
+import java.sql.SQLFeatureNotSupportedException;
+
+import org.apache.cassandra.db.DBConstants;
+import org.apache.cassandra.utils.FBUtilities;
+
+public class CassandraDatabaseMetaData implements DatabaseMetaData
+{
+    private CassandraConnection connection;
+    
+    public CassandraDatabaseMetaData(CassandraConnection connection)
+    {
+        this.connection = connection;
+    }
+    
+    public boolean isWrapperFor(Class<?> iface) throws SQLException
+    {
+        return iface.isAssignableFrom(getClass());
+    }
+
+    public <T> T unwrap(Class<T> iface) throws SQLException
+    {
+        if (iface.isAssignableFrom(getClass())) return iface.cast(this);
+        throw new SQLFeatureNotSupportedException(String.format(NO_INTERFACE, iface.getSimpleName()));
+    }      
+
+    public boolean allProceduresAreCallable() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean allTablesAreSelectable() throws SQLException
+    {
+        return true;
+    }
+
+    public boolean autoCommitFailureClosesAllResultSets() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean dataDefinitionCausesTransactionCommit() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean dataDefinitionIgnoredInTransactions() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean deletesAreDetected(int arg0) throws SQLException
+    {
+        return false;
+    }
+
+    public boolean doesMaxRowSizeIncludeBlobs() throws SQLException
+    {
+        return false;
+    }
+
+    public ResultSet getAttributes(String arg0, String arg1, String arg2, String arg3) throws
SQLException
+    {
+        return new CResultSet();
+    }
+
+    public ResultSet getBestRowIdentifier(String arg0, String arg1, String arg2, int arg3,
boolean arg4) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public String getCatalogSeparator() throws SQLException
+    {
+        return "";
+    }
+
+    public String getCatalogTerm() throws SQLException
+    {
+        return "";
+    }
+
+    public ResultSet getCatalogs() throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public ResultSet getClientInfoProperties() throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public ResultSet getColumnPrivileges(String arg0, String arg1, String arg2, String arg3)
throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public ResultSet getColumns(String arg0, String arg1, String arg2, String arg3) throws
SQLException
+    {
+        return new CResultSet();
+    }
+
+    public Connection getConnection() throws SQLException
+    {
+        return connection;
+    }
+
+    public ResultSet getCrossReference(String arg0, String arg1, String arg2, String arg3,
String arg4, String arg5) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public int getDatabaseMajorVersion() throws SQLException
+    {
+        return CassandraConnection.DB_MAJOR_VERSION;
+    }
+
+    public int getDatabaseMinorVersion() throws SQLException
+    {
+        return CassandraConnection.DB_MINOR_VERSION;
+    }
+
+    public String getDatabaseProductName() throws SQLException
+    {
+        return CassandraConnection.DB_PRODUCT_NAME;
+    }
+
+    public String getDatabaseProductVersion() throws SQLException
+    {
+        return String.format("%d.%d", CassandraConnection.DB_MAJOR_VERSION,CassandraConnection.DB_MINOR_VERSION);
+    }
+
+    public int getDefaultTransactionIsolation() throws SQLException
+    {
+        return Connection.TRANSACTION_NONE;
+    }
+
+    public int getDriverMajorVersion()
+    {
+        return CassandraDriver.DVR_MAJOR_VERSION;
+    }
+
+    public int getDriverMinorVersion()
+    {
+        return CassandraDriver.DVR_MINOR_VERSION;
+    }
+
+    public String getDriverName() throws SQLException
+    {
+        return CassandraDriver.DVR_NAME;
+    }
+
+    public String getDriverVersion() throws SQLException
+    {
+        return String.format("%d.%d.%d", CassandraDriver.DVR_MAJOR_VERSION,CassandraDriver.DVR_MINOR_VERSION,CassandraDriver.DVR_PATCH_VERSION);
+    }
+
+    public ResultSet getExportedKeys(String arg0, String arg1, String arg2) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public String getExtraNameCharacters() throws SQLException
+    {
+        return "";
+    }
+
+    public ResultSet getFunctionColumns(String arg0, String arg1, String arg2, String arg3)
throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public ResultSet getFunctions(String arg0, String arg1, String arg2) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public String getIdentifierQuoteString() throws SQLException
+    {
+        return "'";
+    }
+
+    public ResultSet getImportedKeys(String arg0, String arg1, String arg2) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public ResultSet getIndexInfo(String arg0, String arg1, String arg2, boolean arg3, boolean
arg4) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public int getJDBCMajorVersion() throws SQLException
+    {
+        return 4;
+    }
+
+    public int getJDBCMinorVersion() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxBinaryLiteralLength() throws SQLException
+    {
+        // Cassandra can represent a 2GB value, but CQL has to encode it in hex
+        return Integer.MAX_VALUE / 2;
+    }
+
+    public int getMaxCatalogNameLength() throws SQLException
+    {
+        return Short.MAX_VALUE;
+    }
+
+    public int getMaxCharLiteralLength() throws SQLException
+    {
+        return Integer.MAX_VALUE;
+    }
+
+    public int getMaxColumnNameLength() throws SQLException
+    {
+        return Short.MAX_VALUE;
+    }
+
+    public int getMaxColumnsInGroupBy() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxColumnsInIndex() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxColumnsInOrderBy() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxColumnsInSelect() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxColumnsInTable() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxConnections() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxCursorNameLength() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxIndexLength() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxProcedureNameLength() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxRowSize() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxSchemaNameLength() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxStatementLength() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxStatements() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxTableNameLength() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxTablesInSelect() throws SQLException
+    {
+        return 0;
+    }
+
+    public int getMaxUserNameLength() throws SQLException
+    {
+        return 0;
+    }
+
+    public String getNumericFunctions() throws SQLException
+    {
+        return null;
+    }
+
+    public ResultSet getPrimaryKeys(String arg0, String arg1, String arg2) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public ResultSet getProcedureColumns(String arg0, String arg1, String arg2, String arg3)
throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public String getProcedureTerm() throws SQLException
+    {
+        return "";
+    }
+
+    public ResultSet getProcedures(String arg0, String arg1, String arg2) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public int getResultSetHoldability() throws SQLException
+    {
+        return CResultSet.DEFAULT_HOLDABILITY;
+    }
+
+    public RowIdLifetime getRowIdLifetime() throws SQLException
+    {
+        return RowIdLifetime.ROWID_UNSUPPORTED;
+    }
+
+    public String getSQLKeywords() throws SQLException
+    {
+        return "";
+    }
+
+    public int getSQLStateType() throws SQLException
+    {
+        return sqlStateSQL;
+    }
+
+    public String getSchemaTerm() throws SQLException
+    {
+        return "";
+    }
+
+    public ResultSet getSchemas() throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public ResultSet getSchemas(String arg0, String arg1) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public String getSearchStringEscape() throws SQLException
+    {
+        return "\\";
+    }
+
+    public String getStringFunctions() throws SQLException
+    {
+        return "";
+    }
+
+    public ResultSet getSuperTables(String arg0, String arg1, String arg2) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public ResultSet getSuperTypes(String arg0, String arg1, String arg2) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public String getSystemFunctions() throws SQLException
+    {
+        return "";
+    }
+
+    public ResultSet getTablePrivileges(String arg0, String arg1, String arg2) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public ResultSet getTableTypes() throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public ResultSet getTables(String arg0, String arg1, String arg2, String[] arg3) throws
SQLException
+    {
+        return new CResultSet();
+    }
+
+    public String getTimeDateFunctions() throws SQLException
+    {
+        return "";
+    }
+
+    public ResultSet getTypeInfo() throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public ResultSet getUDTs(String arg0, String arg1, String arg2, int[] arg3) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public String getURL() throws SQLException
+    {
+        return connection.url;
+    }
+
+    public String getUserName() throws SQLException
+    {
+        return (connection.username==null) ? "" : connection.username;
+    }
+
+    public ResultSet getVersionColumns(String arg0, String arg1, String arg2) throws SQLException
+    {
+        return new CResultSet();
+    }
+
+    public boolean insertsAreDetected(int arg0) throws SQLException
+    {
+        return false;
+    }
+
+    public boolean isCatalogAtStart() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean isReadOnly() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean locatorsUpdateCopy() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean nullPlusNonNullIsNull() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean nullsAreSortedAtEnd() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean nullsAreSortedAtStart() throws SQLException
+    {
+        return true;
+    }
+
+    public boolean nullsAreSortedHigh() throws SQLException
+    {
+        return true;
+    }
+
+    public boolean nullsAreSortedLow() throws SQLException
+    {
+
+        return false;
+    }
+
+    public boolean othersDeletesAreVisible(int arg0) throws SQLException
+    {
+        return false;
+    }
+
+    public boolean othersInsertsAreVisible(int arg0) throws SQLException
+    {
+        return false;
+    }
+
+    public boolean othersUpdatesAreVisible(int arg0) throws SQLException
+    {
+        return false;
+    }
+
+    public boolean ownDeletesAreVisible(int arg0) throws SQLException
+    {
+        return false;
+    }
+
+    public boolean ownInsertsAreVisible(int arg0) throws SQLException
+    {
+        return false;
+    }
+
+    public boolean ownUpdatesAreVisible(int arg0) throws SQLException
+    {
+        return false;
+    }
+
+    public boolean storesLowerCaseIdentifiers() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean storesLowerCaseQuotedIdentifiers() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean storesMixedCaseIdentifiers() throws SQLException
+    {
+        return true;
+    }
+
+    public boolean storesMixedCaseQuotedIdentifiers() throws SQLException
+    {
+        return true;
+    }
+
+    public boolean storesUpperCaseIdentifiers() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean storesUpperCaseQuotedIdentifiers() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsANSI92EntryLevelSQL() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsANSI92FullSQL() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsANSI92IntermediateSQL() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsAlterTableWithAddColumn() throws SQLException
+    {
+        return true;
+    }
+
+    public boolean supportsAlterTableWithDropColumn() throws SQLException
+    {
+        return true;
+    }
+
+    public boolean supportsBatchUpdates() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsCatalogsInDataManipulation() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsCatalogsInIndexDefinitions() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsCatalogsInProcedureCalls() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsCatalogsInTableDefinitions() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsColumnAliasing() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsConvert() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsConvert(int arg0, int arg1) throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsCoreSQLGrammar() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsCorrelatedSubqueries() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsDataDefinitionAndDataManipulationTransactions() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsDataManipulationTransactionsOnly() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsDifferentTableCorrelationNames() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsExpressionsInOrderBy() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsExtendedSQLGrammar() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsFullOuterJoins() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsGetGeneratedKeys() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsGroupBy() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsGroupByBeyondSelect() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsGroupByUnrelated() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsIntegrityEnhancementFacility() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsLikeEscapeClause() throws SQLException
+    {
+
+        return false;
+    }
+
+    public boolean supportsLimitedOuterJoins() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsMinimumSQLGrammar() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsMixedCaseIdentifiers() throws SQLException
+    {
+        return true;
+    }
+
+    public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException
+    {
+        return true;
+    }
+
+    public boolean supportsMultipleOpenResults() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsMultipleResultSets() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsMultipleTransactions() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsNamedParameters() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsNonNullableColumns() throws SQLException
+    {
+
+        return false;
+    }
+
+    public boolean supportsOpenCursorsAcrossCommit() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsOpenCursorsAcrossRollback() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsOpenStatementsAcrossCommit() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsOpenStatementsAcrossRollback() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsOrderByUnrelated() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsOuterJoins() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsPositionedDelete() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsPositionedUpdate() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsResultSetConcurrency(int arg0, int arg1) throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsResultSetHoldability(int holdability) throws SQLException
+    {
+
+        return ResultSet.HOLD_CURSORS_OVER_COMMIT==holdability;
+    }
+
+    public boolean supportsResultSetType(int type) throws SQLException
+    {
+
+        return ResultSet.TYPE_FORWARD_ONLY==type;
+    }
+
+    public boolean supportsSavepoints() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsSchemasInDataManipulation() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsSchemasInIndexDefinitions() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsSchemasInProcedureCalls() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsSchemasInTableDefinitions() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsSelectForUpdate() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsStatementPooling() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsStoredProcedures() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsSubqueriesInComparisons() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsSubqueriesInExists() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsSubqueriesInIns() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsSubqueriesInQuantifieds() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsTableCorrelationNames() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsTransactionIsolationLevel(int level) throws SQLException
+    {
+
+        return Connection.TRANSACTION_NONE==level;
+    }
+
+    public boolean supportsTransactions() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsUnion() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean supportsUnionAll() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean updatesAreDetected(int arg0) throws SQLException
+    {
+        return false;
+    }
+
+    public boolean usesLocalFilePerTable() throws SQLException
+    {
+        return false;
+    }
+
+    public boolean usesLocalFiles() throws SQLException
+    {
+        return false;
+    }
+
+}



Mime
View raw message