📄 monetdatabasemetadata.java
字号:
* Compliant driver always returns true. * * @return true if so; false otherwise */ public boolean supportsSubqueriesInExists() { return(true); } /** * Are subqueries in 'in' statements supported? A JDBC * Compliant driver always returns true. * * @return true if so; false otherwise */ public boolean supportsSubqueriesInIns() { return(true); } /** * Are subqueries in quantified expressions supported? A JDBC * Compliant driver always returns true. * * (No idea what this is, but we support a good deal of * subquerying.) * * @return true if so; false otherwise */ public boolean supportsSubqueriesInQuantifieds() { return(true); } /** * Are correlated subqueries supported? A JDBC Compliant driver * always returns true. * * (a.k.a. subselect in from?) * * @return true if so; false otherwise */ public boolean supportsCorrelatedSubqueries() { return(true); } /** * Is SQL UNION supported? * since 2004-03-20 * * @return true if so */ public boolean supportsUnion() { return(true); } /** * Is SQL UNION ALL supported? * since 2004-03-20 * * @return true if so */ public boolean supportsUnionAll() { return(true); } /** * ResultSet objects (cursors) are not closed upon explicit or * implicit commit. * * @return true if so */ public boolean supportsOpenCursorsAcrossCommit() { return(true); } /** * Same as above * * @return true if so */ public boolean supportsOpenCursorsAcrossRollback() { return(true); } /** * Can statements remain open across commits? They may, but * this driver cannot guarentee that. In further reflection. * we are taking a Statement object here, so the answer is * yes, since the Statement is only a vehicle to execute some SQL * * @return true if they always remain open; false otherwise */ public boolean supportsOpenStatementsAcrossCommit() { return(true); } /** * Can statements remain open across rollbacks? They may, but * this driver cannot guarentee that. In further contemplation, * we are taking a Statement object here, so the answer is yes again. * * @return true if they always remain open; false otherwise */ public boolean supportsOpenStatementsAcrossRollback() { return(true); } /** * How many hex characters can you have in an inline binary literal * I honestly wouldn't know... * * @return the max literal length */ public int getMaxBinaryLiteralLength() { return(0); // no limit } /** * What is the maximum length for a character literal * Is there a max? * * @return the max literal length */ public int getMaxCharLiteralLength() { return(0); // no limit } /** * Whats the limit on column name length. * I take some safety here, but it's just a varchar in MonetDB * * @return the maximum column name length */ public int getMaxColumnNameLength() { return(1024); } /** * What is the maximum number of columns in a "GROUP BY" clause? * * @return the max number of columns */ public int getMaxColumnsInGroupBy() { return(0); // no limit } /** * What's the maximum number of columns allowed in an index? * * @return max number of columns */ public int getMaxColumnsInIndex() { return(0); // unlimited I guess } /** * What's the maximum number of columns in an "ORDER BY clause? * * @return the max columns */ public int getMaxColumnsInOrderBy() { return(0); // unlimited I guess } /** * What is the maximum number of columns in a "SELECT" list? * * @return the max columns */ public int getMaxColumnsInSelect() { return(0); // unlimited I guess } /** * What is the maximum number of columns in a table? * wasn't MonetDB designed for datamining? (= much columns) * * @return the max columns */ public int getMaxColumnsInTable() { return(0); } /** * How many active connections can we have at a time to this * database? Well, since it depends on Mserver, which just listens * for new connections and creates a new thread for each connection, * this number can be very high, and theoretically till the system * runs out of resources. However, knowing MonetDB is knowing that you * should handle it a little bit with care, so I give a very minimalistic * number here. * * @return the maximum number of connections */ public int getMaxConnections() { return(16); } /** * What is the maximum cursor name length * Actually we do not do named cursors, so I keep the value small as * a precaution for maybe the future. * * @return max cursor name length in bytes */ public int getMaxCursorNameLength() { return(1024); } /** * Retrieves the maximum number of bytes for an index, including all * of the parts of the index. * * @return max index length in bytes, which includes the composite * of all the constituent parts of the index; a result of zero * means that there is no limit or the limit is not known */ public int getMaxIndexLength() { return(0); // I assume it is large, but I don't know } /** * Retrieves the maximum number of characters that this database * allows in a schema name. * * @return the number of characters or 0 if there is no limit, or the * limit is unknown. */ public int getMaxSchemaNameLength() { return(1024); } /** * What is the maximum length of a procedure name * * @return the max name length in bytes */ public int getMaxProcedureNameLength() { return(1024); } /** * What is the maximum length of a catalog * * @return the max length */ public int getMaxCatalogNameLength() { return(1024); } /** * What is the maximum length of a single row? * * @return max row size in bytes */ public int getMaxRowSize() { return(0); // very long I hope... } /** * Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY * blobs? * Yes I thought so... * * @return true if so */ public boolean doesMaxRowSizeIncludeBlobs() { return(true); } /** * What is the maximum length of a SQL statement? * Till a programmer makes a mistake and causes a segmentation fault * on a string overflow... * * @return max length in bytes */ public int getMaxStatementLength() { return(0); // actually whatever fits in size_t } /** * How many active statements can we have open at one time to * this database? Basically, since each Statement downloads * the results as the query is executed, we can have many. * * @return the maximum */ public int getMaxStatements() { return(0); } /** * What is the maximum length of a table name * * @return max name length in bytes */ public int getMaxTableNameLength() { return(1024); } /** * What is the maximum number of tables that can be specified * in a SELECT? * * @return the maximum */ public int getMaxTablesInSelect() { return(0); // no limit } /** * What is the maximum length of a user name * * @return the max name length in bytes * @exception SQLException if a database access error occurs */ public int getMaxUserNameLength() { return(512); } /** * What is the database's default transaction isolation level? * We only see commited data, nonrepeatable reads and phantom * reads can occur. * * @return the default isolation level * @see Connection */ public int getDefaultTransactionIsolation() { return(Connection.TRANSACTION_SERIALIZABLE); } /** * Are transactions supported? If not, commit and rollback are noops * and the isolation level is TRANSACTION_NONE. We do support * transactions. * * @return true if transactions are supported */ public boolean supportsTransactions() { return(true); } /** * Does the database support the given transaction isolation level? * We only support TRANSACTION_READ_COMMITTED as far as I know * * @param level the values are defined in java.sql.Connection * @return true if so * @see Connection */ public boolean supportsTransactionIsolationLevel(int level) { return(level == Connection.TRANSACTION_SERIALIZABLE); } /** * Are both data definition and data manipulation transactions * supported? * Supposedly that data definition is like CREATE or ALTER TABLE * yes it is. * * @return true if so */ public boolean supportsDataDefinitionAndDataManipulationTransactions() { return(true); } /** * Are only data manipulation statements within a transaction * supported? * * @return true if so */ public boolean supportsDataManipulationTransactionsOnly() { return(false); } /** * Does a data definition statement within a transaction force * the transaction to commit? I think this means something like: * * <p><pre> * CREATE TABLE T (A INT); * INSERT INTO T (A) VALUES (2); * BEGIN; * UPDATE T SET A = A + 1; * CREATE TABLE X (A INT); * SELECT A FROM T INTO X; * COMMIT; * </pre><p> * * does the CREATE TABLE call cause a commit? The answer is no. * * @return true if so */ public boolean dataDefinitionCausesTransactionCommit() { return(false); } /** * Is a data definition statement within a transaction ignored? * * @return true if so * @exception SQLException if a database access error occurs */ public boolean dataDefinitionIgnoredInTransactions() { return(false); } /** * Get a description of stored procedures available in a catalog * Currently not applicable and not implemented, returns null * * <p>Only procedure descriptions matching the schema and procedure * name criteria are returned. They are ordered by PROCEDURE_SCHEM * and PROCEDURE_NAME * * <p>Each procedure description has the following columns: * <ol> * <li><b>PROCEDURE_CAT</b> String => procedure catalog (may be null) * <li><b>PROCEDURE_SCHEM</b> String => procedure schema (may be null) * <li><b>PROCEDURE_NAME</b> String => procedure name * <li><b>Field 4</b> reserved (make it null) * <li><b>Field 5</b> reserved (make it null) * <li><b>Field 6</b> reserved (make it null) * <li><b>REMARKS</b> String => explanatory comment on the procedure * <li><b>PROCEDURE_TYPE</b> short => kind of procedure * <ul> * <li> procedureResultUnknown - May return a result * <li> procedureNoResult - Does not return a result * <li> procedureReturnsResult - Returns a result * </ul> * </ol> * * @param catalog - a catalog name; "" retrieves those without a * catalog; null means drop catalog name from criteria * @param schemaPattern - a schema name pattern; "" retrieves those * without a schema - we ignore this parameter * @param procedureNamePattern - a procedure name pattern
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -