comparison src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java @ 194:1296dbcc4958

Resolved javadoc many errors and warnings, such as: [javadoc] /export/scratch1/dinther/javadev/monetdb-java/src/main/java/nl/cwi/monetdb/mcl/parser/HeaderLineParser.java:17: error: malformed HTML [javadoc] * @author Fabian Groffen <Fabian.Groffen> [javadoc] ^ [javadoc] /export/scratch1/dinther/javadev/monetdb-java/src/main/java/nl/cwi/monetdb/mcl/parser/HeaderLineParser.java:17: error: bad use of '>' [javadoc] * @author Fabian Groffen <Fabian.Groffen> [javadoc] ^ [javadoc] /export/scratch1/dinther/javadev/monetdb-java/src/main/java/nl/cwi/monetdb/mcl/parser/StartOfHeaderParser.java:23: error: malformed HTML [javadoc] * @author Fabian Groffen <Fabian.Groffen> [javadoc] ^ [javadoc] /export/scratch1/dinther/javadev/monetdb-java/src/main/java/nl/cwi/monetdb/mcl/parser/StartOfHeaderParser.java:23: error: bad use of '>' [javadoc] * @author Fabian Groffen <Fabian.Groffen> [javadoc] ^ [javadoc] /export/scratch1/dinther/javadev/monetdb-java/src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java:37: error: reference not found [javadoc] * @throws ParseException if an error occurs during parsing [javadoc] ^ [javadoc] /export/scratch1/dinther/javadev/monetdb-java/src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java:16: error: malformed HTML [javadoc] * @author Fabian Groffen <Fabian.Groffen> [javadoc] ^ [javadoc] /export/scratch1/dinther/javadev/monetdb-java/src/main/java/nl/cwi/monetdb/mcl/parser/TupleLineParser.java:16: error: bad use of '>' [javadoc] * @author Fabian Groffen <Fabian.Groffen> [javadoc] ^ [javadoc] /export/scratch1/dinther/javadev/monetdb-java/src/main/java/nl/cwi/monetdb/mcl/io/BufferedMCLReader.java:40: error: malformed HTML [javadoc] * @author Fabian Groffen <Fabian.Groffen> [javadoc] ^ [javadoc] /export/scratch1/dinther/javadev/monetdb-java/src/main/java/nl/cwi/monetdb/mcl/io/BufferedMCLReader.java:40: error: bad use of '>' [javadoc] * @author Fabian Groffen <Fabian.Groffen> [javadoc] ^ [javadoc] /export/scratch1/dinther/javadev/monetdb-java/src/main/java/nl/cwi/monetdb/mcl/io/BufferedMCLReader.java:84: warning: no @throws for java.io.UnsupportedEncodingException [javadoc] public BufferedMCLReader(InputStream in, String enc) [javadoc] ^ [javadoc] /export/scratch1/dinther/javadev/monetdb-java/src/main/java/nl/cwi/monetdb/mcl/io/BufferedMCLWriter.java:35: error: malformed HTML [javadoc] * @author Fabian Groffen <Fabian.Groffen> [javadoc] ^ [javadoc] /export/scratch1/dinther/javadev/monetdb-java/src/main/java/nl/cwi/monetdb/mcl/io/BufferedMCLWriter.java:35: error: bad use of '>' [javadoc] * @author Fabian Groffen <Fabian.Groffen> [javadoc] ^ [javadoc] /export/scratch1/dinther/javadev/monetdb-java/src/main/java/nl/cwi/monetdb/mcl/io/BufferedMCLWriter.java:59: warning: no @throws for java.io.UnsupportedEncodingException [javadoc] public BufferedMCLWriter(OutputStream in, String enc) [javadoc] ^
author Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
date Thu, 26 Oct 2017 17:40:05 +0200 (2017-10-26)
parents 4767b005a531
children 89c285fc0a49 c38d4eaf5479
comparison
equal deleted inserted replaced
193:982534c83436 194:1296dbcc4958
538 } 538 }
539 539
540 /** 540 /**
541 * Get all the "extra" characters that can be used in unquoted 541 * Get all the "extra" characters that can be used in unquoted
542 * identifier names (those beyond a-zA-Z0-9 and _) 542 * identifier names (those beyond a-zA-Z0-9 and _)
543 * MonetDB has no extra characters (verified it for chars: !@#$%^&*()~{}[]?
544 * 543 *
545 * @return a string containing the extra characters 544 * @return a string containing the extra characters
546 */ 545 */
547 @Override 546 @Override
548 public String getExtraNameCharacters() { 547 public String getExtraNameCharacters() {
548 // MonetDB has no extra characters. Verified it for chars: !@#$%^&*()~{}[]?
549 return ""; 549 return "";
550 } 550 }
551 551
552 /** 552 /**
553 * Is "ALTER TABLE" with an add column supported? 553 * Is "ALTER TABLE" with an add column supported?
1631 1631
1632 /** 1632 /**
1633 * Does a data definition statement within a transaction force 1633 * Does a data definition statement within a transaction force
1634 * the transaction to commit? I think this means something like: 1634 * the transaction to commit? I think this means something like:
1635 * 1635 *
1636 * <p><pre> 1636 * <pre>
1637 * CREATE TABLE T (A INT); 1637 * CREATE TABLE T (A INT);
1638 * INSERT INTO T (A) VALUES (2); 1638 * INSERT INTO T (A) VALUES (2);
1639 * BEGIN; 1639 * BEGIN;
1640 * UPDATE T SET A = A + 1; 1640 * UPDATE T SET A = A + 1;
1641 * CREATE TABLE X (A INT); 1641 * CREATE TABLE X (A INT);
1642 * SELECT A FROM T INTO X; 1642 * SELECT A FROM T INTO X;
1643 * COMMIT; 1643 * COMMIT;
1644 * </pre></p> 1644 * </pre>
1645 * 1645 *
1646 * does the CREATE TABLE call cause a commit? The answer is no. 1646 * does the CREATE TABLE call cause a commit? The answer is no.
1647 * 1647 *
1648 * @return true if so 1648 * @return true if so
1649 */ 1649 */
1669 * name criteria are returned. They are ordered by PROCEDURE_SCHEM, 1669 * name criteria are returned. They are ordered by PROCEDURE_SCHEM,
1670 * PROCEDURE_NAME and SPECIFIC_NAME. 1670 * PROCEDURE_NAME and SPECIFIC_NAME.
1671 * 1671 *
1672 * <p>Each procedure description has the following columns: 1672 * <p>Each procedure description has the following columns:
1673 * <ol> 1673 * <ol>
1674 * <li><b>PROCEDURE_CAT</b> String => procedure catalog (may be null) 1674 * <li><b>PROCEDURE_CAT</b> String =&gt; procedure catalog (may be null)
1675 * <li><b>PROCEDURE_SCHEM</b> String => procedure schema (may be null) 1675 * <li><b>PROCEDURE_SCHEM</b> String =&gt; procedure schema (may be null)
1676 * <li><b>PROCEDURE_NAME</b> String => procedure name 1676 * <li><b>PROCEDURE_NAME</b> String =&gt; procedure name
1677 * <li><b>Field4</b> reserved (make it null) 1677 * <li><b>Field4</b> reserved (make it null)
1678 * <li><b>Field5</b> reserved (make it null) 1678 * <li><b>Field5</b> reserved (make it null)
1679 * <li><b>Field6</b> reserved (make it null) 1679 * <li><b>Field6</b> reserved (make it null)
1680 * <li><b>REMARKS</b> String => explanatory comment on the procedure 1680 * <li><b>REMARKS</b> String =&gt; explanatory comment on the procedure
1681 * <li><b>PROCEDURE_TYPE</b> short => kind of procedure 1681 * <li><b>PROCEDURE_TYPE</b> short =&gt; kind of procedure
1682 * <ul> 1682 * <ul>
1683 * <li> procedureResultUnknown - May return a result 1683 * <li> procedureResultUnknown - May return a result
1684 * <li> procedureNoResult - Does not return a result 1684 * <li> procedureNoResult - Does not return a result
1685 * <li> procedureReturnsResult - Returns a result 1685 * <li> procedureReturnsResult - Returns a result
1686 * </ul> 1686 * </ul>
1687 * <li><b>SPECIFIC_NAME</b> String =&gt; The name which uniquely identifies this procedure within its schema.
1687 * </ol> 1688 * </ol>
1688 * <li><b>SPECIFIC_NAME</b> String => The name which uniquely identifies this procedure within its schema.
1689 * 1689 *
1690 * @param catalog - a catalog name; must match the catalog name as it is stored in the database; 1690 * @param catalog - a catalog name; must match the catalog name as it is stored in the database;
1691 * "" retrieves those without a catalog; 1691 * "" retrieves those without a catalog;
1692 * null means that the catalog name should not be used to narrow the search 1692 * null means that the catalog name should not be used to narrow the search
1693 * @param schemaPattern - a schema name pattern; must match the schema name as it is stored in the database; 1693 * @param schemaPattern - a schema name pattern; must match the schema name as it is stored in the database;
1748 * column descriptions follow in column number order. 1748 * column descriptions follow in column number order.
1749 * 1749 *
1750 * <p>Each row in the ResultSet is a parameter description or column 1750 * <p>Each row in the ResultSet is a parameter description or column
1751 * description with the following fields: 1751 * description with the following fields:
1752 * <ol> 1752 * <ol>
1753 * <li><b>PROCEDURE_CAT</b> String => procedure catalog (may be null) 1753 * <li><b>PROCEDURE_CAT</b> String =&gt; procedure catalog (may be null)
1754 * <li><b>PROCEDURE_SCHEM</b> String => procedure schema (may be null) 1754 * <li><b>PROCEDURE_SCHEM</b> String =&gt; procedure schema (may be null)
1755 * <li><b>PROCEDURE_NAME</b> String => procedure name 1755 * <li><b>PROCEDURE_NAME</b> String =&gt; procedure name
1756 * <li><b>COLUMN_NAME</b> String => column/parameter name 1756 * <li><b>COLUMN_NAME</b> String =&gt; column/parameter name
1757 * <li><b>COLUMN_TYPE</b> Short => kind of column/parameter: 1757 * <li><b>COLUMN_TYPE</b> Short =&gt; kind of column/parameter:
1758 * <ul><li>procedureColumnUnknown - nobody knows 1758 * <ul><li>procedureColumnUnknown - nobody knows
1759 * <li>procedureColumnIn - IN parameter 1759 * <li>procedureColumnIn - IN parameter
1760 * <li>procedureColumnInOut - INOUT parameter 1760 * <li>procedureColumnInOut - INOUT parameter
1761 * <li>procedureColumnOut - OUT parameter 1761 * <li>procedureColumnOut - OUT parameter
1762 * <li>procedureColumnReturn - procedure return value 1762 * <li>procedureColumnReturn - procedure return value
1763 * <li>procedureColumnResult - result column in ResultSet 1763 * <li>procedureColumnResult - result column in ResultSet
1764 * </ul> 1764 * </ul>
1765 * <li><b>DATA_TYPE</b> int => SQL type from java.sql.Types 1765 * <li><b>DATA_TYPE</b> int =&gt; SQL type from java.sql.Types
1766 * <li><b>TYPE_NAME</b> String => SQL type name, for a UDT type the type name is fully qualified 1766 * <li><b>TYPE_NAME</b> String =&gt; SQL type name, for a UDT type the type name is fully qualified
1767 * <li><b>PRECISION</b> int => precision 1767 * <li><b>PRECISION</b> int =&gt; precision
1768 * <li><b>LENGTH</b> int => length in bytes of data 1768 * <li><b>LENGTH</b> int =&gt; length in bytes of data
1769 * <li><b>SCALE</b> short => scale - null is returned for data types where SCALE is not applicable. 1769 * <li><b>SCALE</b> short =&gt; scale - null is returned for data types where SCALE is not applicable.
1770 * <li><b>RADIX</b> short => radix 1770 * <li><b>RADIX</b> short =&gt; radix
1771 * <li><b>NULLABLE</b> short => can it contain NULL? 1771 * <li><b>NULLABLE</b> short =&gt; can it contain NULL?
1772 * <ul><li>procedureNoNulls - does not allow NULL values 1772 * <ul><li>procedureNoNulls - does not allow NULL values
1773 * <li>procedureNullable - allows NULL values 1773 * <li>procedureNullable - allows NULL values
1774 * <li>procedureNullableUnknown - nullability unknown 1774 * <li>procedureNullableUnknown - nullability unknown
1775 * </ul> 1775 * </ul>
1776 * <li><b>REMARKS</b> String => comment describing parameter/column 1776 * <li><b>REMARKS</b> String =&gt; comment describing parameter/column
1777 * <li><b>COLUMN_DEF</b> String => default value for the column, which should be interpreted as a string when the value is enclosed in single quotes (may be null) 1777 * <li><b>COLUMN_DEF</b> String =&gt; default value for the column, which should be interpreted as a string when the value is enclosed in single quotes (may be null)
1778 * The string NULL (not enclosed in quotes) - if NULL was specified as the default value 1778 * The string NULL (not enclosed in quotes) - if NULL was specified as the default value
1779 * TRUNCATE (not enclosed in quotes) - if the specified default value cannot be represented without truncation 1779 * TRUNCATE (not enclosed in quotes) - if the specified default value cannot be represented without truncation
1780 * NULL - if a default value was not specified 1780 * NULL - if a default value was not specified
1781 * <li><b>SQL_DATA_TYPE</b> int => reserved for future use 1781 * <li><b>SQL_DATA_TYPE</b> int =&gt; reserved for future use
1782 * <li><b>SQL_DATETIME_SUB</b> int => reserved for future use 1782 * <li><b>SQL_DATETIME_SUB</b> int =&gt; reserved for future use
1783 * <li><b>CHAR_OCTET_LENGTH</b> int => the maximum length of binary and character based columns. For any other datatype the returned value is a NULL 1783 * <li><b>CHAR_OCTET_LENGTH</b> int =&gt; the maximum length of binary and character based columns. For any other datatype the returned value is a NULL
1784 * <li><b>ORDINAL_POSITION</b> int => the ordinal position, starting from 1, for the input and output parameters for a procedure. 1784 * <li><b>ORDINAL_POSITION</b> int =&gt; the ordinal position, starting from 1, for the input and output parameters for a procedure.
1785 * A value of 0 is returned if this row describes the procedure's return value. For result set columns, it is the ordinal position of the 1785 * A value of 0 is returned if this row describes the procedure's return value. For result set columns, it is the ordinal position of the
1786 * column in the result set starting from 1. If there are multiple result sets, the column ordinal positions are implementation defined. 1786 * column in the result set starting from 1. If there are multiple result sets, the column ordinal positions are implementation defined.
1787 * <li><b>IS_NULLABLE</b> String => ISO rules are used to determine the nullability for a column. 1787 * <li><b>IS_NULLABLE</b> String =&gt; ISO rules are used to determine the nullability for a column.
1788 * <ul><li>YES --- if the parameter can include NULLs 1788 * <ul><li>YES --- if the parameter can include NULLs
1789 * <li>NO --- if the parameter cannot include NULLs 1789 * <li>NO --- if the parameter cannot include NULLs
1790 * <li>empty string --- if the nullability for the parameter is unknown 1790 * <li>empty string --- if the nullability for the parameter is unknown
1791 * </ul> 1791 * </ul>
1792 * <li><b>SPECIFIC_NAME</b> String => the name which uniquely identifies this procedure within its schema. 1792 * <li><b>SPECIFIC_NAME</b> String =&gt; the name which uniquely identifies this procedure within its schema.
1793 * </ol> 1793 * </ol>
1794 * @param catalog - a catalog name; must match the catalog name as it is stored in the database; 1794 * @param catalog - a catalog name; must match the catalog name as it is stored in the database;
1795 * "" retrieves those without a catalog; 1795 * "" retrieves those without a catalog;
1796 * null means that the catalog name should not be used to narrow the search 1796 * null means that the catalog name should not be used to narrow the search
1797 * @param schemaPattern - a schema name pattern; must match the schema name as it is stored in the database; 1797 * @param schemaPattern - a schema name pattern; must match the schema name as it is stored in the database;
1907 * They are ordered by TABLE_TYPE, TABLE_CAT, TABLE_SCHEM and TABLE_NAME. 1907 * They are ordered by TABLE_TYPE, TABLE_CAT, TABLE_SCHEM and TABLE_NAME.
1908 * 1908 *
1909 * <p>Each table description has the following columns: 1909 * <p>Each table description has the following columns:
1910 * 1910 *
1911 * <ol> 1911 * <ol>
1912 * <li><b>TABLE_CAT</b> String => table catalog (may be null) 1912 * <li><b>TABLE_CAT</b> String =&gt; table catalog (may be null)
1913 * <li><b>TABLE_SCHEM</b> String => table schema (may be null) 1913 * <li><b>TABLE_SCHEM</b> String =&gt; table schema (may be null)
1914 * <li><b>TABLE_NAME</b> String => table name 1914 * <li><b>TABLE_NAME</b> String =&gt; table name
1915 * <li><b>TABLE_TYPE</b> String => table type. Typical types are "TABLE", 1915 * <li><b>TABLE_TYPE</b> String =&gt; table type. Typical types are "TABLE",
1916 * "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM". 1916 * "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
1917 * <li><b>REMARKS</b> String => explanatory comment on the table 1917 * <li><b>REMARKS</b> String =&gt; explanatory comment on the table
1918 * <li><b>TYPE_CAT</b> String => the types catalog (may be null) 1918 * <li><b>TYPE_CAT</b> String =&gt; the types catalog (may be null)
1919 * <li><b>TYPE_SCHEM</b> String => the types schema (may be null) 1919 * <li><b>TYPE_SCHEM</b> String =&gt; the types schema (may be null)
1920 * <li><b>TYPE_NAME</b> String => type name (may be null) 1920 * <li><b>TYPE_NAME</b> String =&gt; type name (may be null)
1921 * <li><b>SELF_REFERENCING_COL_NAME</b> String => name of the designated "identifier" column of a typed table (may be null) 1921 * <li><b>SELF_REFERENCING_COL_NAME</b> String =&gt; name of the designated "identifier" column of a typed table (may be null)
1922 * <li><b>REF_GENERATION</b> String => specifies how values in SELF_REFERENCING_COL_NAME are created. Values are "SYSTEM", "USER", "DERIVED". (may be null) 1922 * <li><b>REF_GENERATION</b> String =&gt; specifies how values in SELF_REFERENCING_COL_NAME are created. Values are "SYSTEM", "USER", "DERIVED". (may be null)
1923 * </ol> 1923 * </ol>
1924 * 1924 *
1925 * @param catalog - a catalog name; must match the catalog name as it is stored in the database; 1925 * @param catalog - a catalog name; must match the catalog name as it is stored in the database;
1926 * "" retrieves those without a catalog; null means that the 1926 * "" retrieves those without a catalog; null means that the
1927 * catalog name should not be used to narrow the search 1927 * catalog name should not be used to narrow the search
2021 * Get the schema names available in this database. The results 2021 * Get the schema names available in this database. The results
2022 * are ordered by schema name. 2022 * are ordered by schema name.
2023 * 2023 *
2024 * <P>The schema column is: 2024 * <P>The schema column is:
2025 * <OL> 2025 * <OL>
2026 * <LI><B>TABLE_SCHEM</B> String => schema name 2026 * <LI><B>TABLE_SCHEM</B> String =&gt; schema name
2027 * <LI><B>TABLE_CATALOG</B> String => catalog name (may be null) 2027 * <LI><B>TABLE_CATALOG</B> String =&gt; catalog name (may be null)
2028 * </OL> 2028 * </OL>
2029 * 2029 *
2030 * @param catalog a catalog name; must match the catalog name as it 2030 * @param catalog a catalog name; must match the catalog name as it
2031 * is stored in the database;"" retrieves those without a 2031 * is stored in the database;"" retrieves those without a
2032 * catalog; null means catalog name should not be used to 2032 * catalog; null means catalog name should not be used to
2065 * Get the catalog names available in this database. The results 2065 * Get the catalog names available in this database. The results
2066 * are ordered by catalog name. 2066 * are ordered by catalog name.
2067 * 2067 *
2068 * <P>The catalog column is: 2068 * <P>The catalog column is:
2069 * <OL> 2069 * <OL>
2070 * <LI><B>TABLE_CAT</B> String => catalog name 2070 * <LI><B>TABLE_CAT</B> String =&gt; catalog name
2071 * </OL> 2071 * </OL>
2072 * 2072 *
2073 * 2073 *
2074 * @return ResultSet each row has a single String column that is a 2074 * @return ResultSet each row has a single String column that is a
2075 * catalog name 2075 * catalog name
2086 * Get the table types available in this database. The results 2086 * Get the table types available in this database. The results
2087 * are ordered by table type. 2087 * are ordered by table type.
2088 * 2088 *
2089 * <P>The table type is: 2089 * <P>The table type is:
2090 * <OL> 2090 * <OL>
2091 * <LI><B>TABLE_TYPE</B> String => table type. Typical types are "TABLE", 2091 * <LI><B>TABLE_TYPE</B> String =&gt; table type. Typical types are "TABLE",
2092 * "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", 2092 * "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
2093 * "LOCAL TEMPORARY", "ALIAS", "SYNONYM". 2093 * "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
2094 * </OL> 2094 * </OL>
2095 * 2095 *
2096 * @return ResultSet each row has a single String column that is a 2096 * @return ResultSet each row has a single String column that is a
2124 * and column name criteria are returned. They are ordered by 2124 * and column name criteria are returned. They are ordered by
2125 * TABLE_SCHEM, TABLE_NAME and ORDINAL_POSITION. 2125 * TABLE_SCHEM, TABLE_NAME and ORDINAL_POSITION.
2126 * 2126 *
2127 * <P>Each column description has the following columns: 2127 * <P>Each column description has the following columns:
2128 * <OL> 2128 * <OL>
2129 * <LI><B>TABLE_CAT</B> String => table catalog (may be null) 2129 * <LI><B>TABLE_CAT</B> String =&gt; table catalog (may be null)
2130 * <LI><B>TABLE_SCHEM</B> String => table schema (may be null) 2130 * <LI><B>TABLE_SCHEM</B> String =&gt; table schema (may be null)
2131 * <LI><B>TABLE_NAME</B> String => table name 2131 * <LI><B>TABLE_NAME</B> String =&gt; table name
2132 * <LI><B>COLUMN_NAME</B> String => column name 2132 * <LI><B>COLUMN_NAME</B> String =&gt; column name
2133 * <LI><B>DATA_TYPE</B> int => SQL type from java.sql.Types 2133 * <LI><B>DATA_TYPE</B> int =&gt; SQL type from java.sql.Types
2134 * <LI><B>TYPE_NAME</B> String => Data source dependent type name 2134 * <LI><B>TYPE_NAME</B> String =&gt; Data source dependent type name
2135 * <LI><B>COLUMN_SIZE</B> int => column size. For char or date 2135 * <LI><B>COLUMN_SIZE</B> int =&gt; column size. For char or date
2136 * types this is the maximum number of characters, for numeric or 2136 * types this is the maximum number of characters, for numeric or
2137 * decimal types this is precision. 2137 * decimal types this is precision.
2138 * <LI><B>BUFFER_LENGTH</B> is not used. 2138 * <LI><B>BUFFER_LENGTH</B> is not used.
2139 * <LI><B>DECIMAL_DIGITS</B> int => the number of fractional digits 2139 * <LI><B>DECIMAL_DIGITS</B> int =&gt; the number of fractional digits
2140 * <LI><B>NUM_PREC_RADIX</B> int => Radix (typically either 10 or 2) 2140 * <LI><B>NUM_PREC_RADIX</B> int =&gt; Radix (typically either 10 or 2)
2141 * <LI><B>NULLABLE</B> int => is NULL allowed? 2141 * <LI><B>NULLABLE</B> int =&gt; is NULL allowed?
2142 * <UL> 2142 * <UL>
2143 * <LI> columnNoNulls - might not allow NULL values 2143 * <LI> columnNoNulls - might not allow NULL values
2144 * <LI> columnNullable - definitely allows NULL values 2144 * <LI> columnNullable - definitely allows NULL values
2145 * <LI> columnNullableUnknown - nullability unknown 2145 * <LI> columnNullableUnknown - nullability unknown
2146 * </UL> 2146 * </UL>
2147 * <LI><B>REMARKS</B> String => comment describing column (may be null) 2147 * <LI><B>REMARKS</B> String =&gt; comment describing column (may be null)
2148 * <LI><B>COLUMN_DEF</B> String => default value (may be null) 2148 * <LI><B>COLUMN_DEF</B> String =&gt; default value (may be null)
2149 * <LI><B>SQL_DATA_TYPE</B> int => unused 2149 * <LI><B>SQL_DATA_TYPE</B> int =&gt; unused
2150 * <LI><B>SQL_DATETIME_SUB</B> int => unused 2150 * <LI><B>SQL_DATETIME_SUB</B> int =&gt; unused
2151 * <LI><B>CHAR_OCTET_LENGTH</B> int => for char types the 2151 * <LI><B>CHAR_OCTET_LENGTH</B> int =&gt; for char types the
2152 * maximum number of bytes in the column 2152 * maximum number of bytes in the column
2153 * <LI><B>ORDINAL_POSITION</B> int => index of column in table 2153 * <LI><B>ORDINAL_POSITION</B> int =&gt; index of column in table
2154 * (starting at 1) 2154 * (starting at 1)
2155 * <LI><B>IS_NULLABLE</B> String => "NO" means column definitely 2155 * <LI><B>IS_NULLABLE</B> String =&gt; "NO" means column definitely
2156 * does not allow NULL values; "YES" means the column might 2156 * does not allow NULL values; "YES" means the column might
2157 * allow NULL values. An empty string means nobody knows. 2157 * allow NULL values. An empty string means nobody knows.
2158 * <LI><B>SCOPE_CATALOG</B> String => catalog of table that is the scope of a reference attribute (null if DATA_TYPE isn't REF) 2158 * <LI><B>SCOPE_CATALOG</B> String =&gt; catalog of table that is the scope of a reference attribute (null if DATA_TYPE isn't REF)
2159 * <LI><B>SCOPE_SCHEMA</B> String => schema of table that is the scope of a reference attribute (null if the DATA_TYPE isn't REF) 2159 * <LI><B>SCOPE_SCHEMA</B> String =&gt; schema of table that is the scope of a reference attribute (null if the DATA_TYPE isn't REF)
2160 * <LI><B>SCOPE_TABLE</B> String => table name that this the scope of a reference attribute (null if the DATA_TYPE isn't REF) 2160 * <LI><B>SCOPE_TABLE</B> String =&gt; table name that this the scope of a reference attribute (null if the DATA_TYPE isn't REF)
2161 * <LI><B>SOURCE_DATA_TYPE</B> short => source type of a distinct type or user-generated Ref type, SQL type from java.sql.Types (null if DATA_TYPE isn't DISTINCT or user-generated REF) 2161 * <LI><B>SOURCE_DATA_TYPE</B> short =&gt; source type of a distinct type or user-generated Ref type, SQL type from java.sql.Types (null if DATA_TYPE isn't DISTINCT or user-generated REF)
2162 * <LI><B>IS_AUTOINCREMENT</B> String => Indicates whether this column is auto incremented 2162 * <LI><B>IS_AUTOINCREMENT</B> String =&gt; Indicates whether this column is auto incremented
2163 * <UL> 2163 * <UL>
2164 * <LI> YES --- if the column is auto incremented 2164 * <LI> YES --- if the column is auto incremented
2165 * <LI> NO --- if the column is not auto incremented 2165 * <LI> NO --- if the column is not auto incremented
2166 * <LI> empty string --- if it cannot be determined whether the column is auto incremented 2166 * <LI> empty string --- if it cannot be determined whether the column is auto incremented
2167 * </UL> 2167 * </UL>
2168 * <LI><B>IS_GENERATEDCOLUMN</B> String => Indicates whether this is a generated column 2168 * <LI><B>IS_GENERATEDCOLUMN</B> String =&gt; Indicates whether this is a generated column
2169 * <UL> 2169 * <UL>
2170 * <LI> YES --- if this a generated column 2170 * <LI> YES --- if this a generated column
2171 * <LI> NO --- if this not a generated column 2171 * <LI> NO --- if this not a generated column
2172 * <LI> empty string --- if it cannot be determined whether this is a generated column 2172 * <LI> empty string --- if it cannot be determined whether this is a generated column
2173 * </UL> 2173 * </UL>
2255 * <P>Only privileges matching the column name criteria are 2255 * <P>Only privileges matching the column name criteria are
2256 * returned. They are ordered by COLUMN_NAME and PRIVILEGE. 2256 * returned. They are ordered by COLUMN_NAME and PRIVILEGE.
2257 * 2257 *
2258 * <P>Each privilige description has the following columns: 2258 * <P>Each privilige description has the following columns:
2259 * <OL> 2259 * <OL>
2260 * <LI><B>TABLE_CAT</B> String => table catalog (may be null) 2260 * <LI><B>TABLE_CAT</B> String =&gt; table catalog (may be null)
2261 * <LI><B>TABLE_SCHEM</B> String => table schema (may be null) 2261 * <LI><B>TABLE_SCHEM</B> String =&gt; table schema (may be null)
2262 * <LI><B>TABLE_NAME</B> String => table name 2262 * <LI><B>TABLE_NAME</B> String =&gt; table name
2263 * <LI><B>COLUMN_NAME</B> String => column name 2263 * <LI><B>COLUMN_NAME</B> String =&gt; column name
2264 * <LI><B>GRANTOR</B> => grantor of access (may be null) 2264 * <LI><B>GRANTOR</B> =&gt; grantor of access (may be null)
2265 * <LI><B>GRANTEE</B> String => grantee of access 2265 * <LI><B>GRANTEE</B> String =&gt; grantee of access
2266 * <LI><B>PRIVILEGE</B> String => name of access (SELECT, 2266 * <LI><B>PRIVILEGE</B> String =&gt; name of access (SELECT,
2267 * INSERT, UPDATE, REFRENCES, ...) 2267 * INSERT, UPDATE, REFRENCES, ...)
2268 * <LI><B>IS_GRANTABLE</B> String => "YES" if grantee is permitted 2268 * <LI><B>IS_GRANTABLE</B> String =&gt; "YES" if grantee is permitted
2269 * to grant to others; "NO" if not; null if unknown 2269 * to grant to others; "NO" if not; null if unknown
2270 * </OL> 2270 * </OL>
2271 * 2271 *
2272 * @param catalog a catalog name; "" retrieves those without a catalog 2272 * @param catalog a catalog name; "" retrieves those without a catalog
2273 * @param schemaPattern a schema name; "" retrieves those without a schema 2273 * @param schemaPattern a schema name; "" retrieves those without a schema
2346 * criteria are returned. They are ordered by TABLE_SCHEM, 2346 * criteria are returned. They are ordered by TABLE_SCHEM,
2347 * TABLE_NAME, and PRIVILEGE. 2347 * TABLE_NAME, and PRIVILEGE.
2348 * 2348 *
2349 * <P>Each privilege description has the following columns: 2349 * <P>Each privilege description has the following columns:
2350 * <OL> 2350 * <OL>
2351 * <LI><B>TABLE_CAT</B> String => table catalog (may be null) 2351 * <LI><B>TABLE_CAT</B> String =&gt; table catalog (may be null)
2352 * <LI><B>TABLE_SCHEM</B> String => table schema (may be null) 2352 * <LI><B>TABLE_SCHEM</B> String =&gt; table schema (may be null)
2353 * <LI><B>TABLE_NAME</B> String => table name 2353 * <LI><B>TABLE_NAME</B> String =&gt; table name
2354 * <LI><B>GRANTOR</B> => grantor of access (may be null) 2354 * <LI><B>GRANTOR</B> =&gt; grantor of access (may be null)
2355 * <LI><B>GRANTEE</B> String => grantee of access 2355 * <LI><B>GRANTEE</B> String =&gt; grantee of access
2356 * <LI><B>PRIVILEGE</B> String => name of access (SELECT, 2356 * <LI><B>PRIVILEGE</B> String =&gt; name of access (SELECT,
2357 * INSERT, UPDATE, REFRENCES, ...) 2357 * INSERT, UPDATE, REFRENCES, ...)
2358 * <LI><B>IS_GRANTABLE</B> String => "YES" if grantee is permitted 2358 * <LI><B>IS_GRANTABLE</B> String =&gt; "YES" if grantee is permitted
2359 * to grant to others; "NO" if not; null if unknown 2359 * to grant to others; "NO" if not; null if unknown
2360 * </OL> 2360 * </OL>
2361 * 2361 *
2362 * @param catalog a catalog name; "" retrieves those without a catalog 2362 * @param catalog a catalog name; "" retrieves those without a catalog
2363 * @param schemaPattern a schema name pattern; "" retrieves those without a schema 2363 * @param schemaPattern a schema name pattern; "" retrieves those without a schema
2424 * Get a description of a table's optimal set of columns that 2424 * Get a description of a table's optimal set of columns that
2425 * uniquely identifies a row. They are ordered by SCOPE. 2425 * uniquely identifies a row. They are ordered by SCOPE.
2426 * 2426 *
2427 * <P>Each column description has the following columns: 2427 * <P>Each column description has the following columns:
2428 * <OL> 2428 * <OL>
2429 * <LI><B>SCOPE</B> short => actual scope of result 2429 * <LI><B>SCOPE</B> short =&gt; actual scope of result
2430 * <UL> 2430 * <UL>
2431 * <LI> bestRowTemporary - very temporary, while using row 2431 * <LI> bestRowTemporary - very temporary, while using row
2432 * <LI> bestRowTransaction - valid for remainder of current transaction 2432 * <LI> bestRowTransaction - valid for remainder of current transaction
2433 * <LI> bestRowSession - valid for remainder of current session 2433 * <LI> bestRowSession - valid for remainder of current session
2434 * </UL> 2434 * </UL>
2435 * <LI><B>COLUMN_NAME</B> String => column name 2435 * <LI><B>COLUMN_NAME</B> String =&gt; column name
2436 * <LI><B>DATA_TYPE</B> int => SQL data type from java.sql.Types 2436 * <LI><B>DATA_TYPE</B> int =&gt; SQL data type from java.sql.Types
2437 * <LI><B>TYPE_NAME</B> String => Data source dependent type name 2437 * <LI><B>TYPE_NAME</B> String =&gt; Data source dependent type name
2438 * <LI><B>COLUMN_SIZE</B> int => precision 2438 * <LI><B>COLUMN_SIZE</B> int =&gt; precision
2439 * <LI><B>BUFFER_LENGTH</B> int => not used 2439 * <LI><B>BUFFER_LENGTH</B> int =&gt; not used
2440 * <LI><B>DECIMAL_DIGITS</B> short => scale 2440 * <LI><B>DECIMAL_DIGITS</B> short =&gt; scale
2441 * <LI><B>PSEUDO_COLUMN</B> short => is this a pseudo column 2441 * <LI><B>PSEUDO_COLUMN</B> short =&gt; is this a pseudo column
2442 * like an Oracle ROWID 2442 * like an Oracle ROWID
2443 * <UL> 2443 * <UL>
2444 * <LI> bestRowUnknown - may or may not be pseudo column 2444 * <LI> bestRowUnknown - may or may not be pseudo column
2445 * <LI> bestRowNotPseudo - is NOT a pseudo column 2445 * <LI> bestRowNotPseudo - is NOT a pseudo column
2446 * <LI> bestRowPseudo - is a pseudo column 2446 * <LI> bestRowPseudo - is a pseudo column
2512 * Get a description of a table's columns that are automatically 2512 * Get a description of a table's columns that are automatically
2513 * updated when any value in a row is updated. They are unordered. 2513 * updated when any value in a row is updated. They are unordered.
2514 * 2514 *
2515 * <P>Each column description has the following columns: 2515 * <P>Each column description has the following columns:
2516 * <OL> 2516 * <OL>
2517 * <LI><B>SCOPE</B> short => is not used 2517 * <LI><B>SCOPE</B> short =&gt; is not used
2518 * <LI><B>COLUMN_NAME</B> String => column name 2518 * <LI><B>COLUMN_NAME</B> String =&gt; column name
2519 * <LI><B>DATA_TYPE</B> int => SQL data type from java.sql.Types 2519 * <LI><B>DATA_TYPE</B> int =&gt; SQL data type from java.sql.Types
2520 * <LI><B>TYPE_NAME</B> String => Data source dependent type name 2520 * <LI><B>TYPE_NAME</B> String =&gt; Data source dependent type name
2521 * <LI><B>COLUMN_SIZE</B> int => precision 2521 * <LI><B>COLUMN_SIZE</B> int =&gt; precision
2522 * <LI><B>BUFFER_LENGTH</B> int => length of column value in bytes 2522 * <LI><B>BUFFER_LENGTH</B> int =&gt; length of column value in bytes
2523 * <LI><B>DECIMAL_DIGITS</B> short => scale 2523 * <LI><B>DECIMAL_DIGITS</B> short =&gt; scale
2524 * <LI><B>PSEUDO_COLUMN</B> short => is this a pseudo column like an Oracle ROWID 2524 * <LI><B>PSEUDO_COLUMN</B> short =&gt; is this a pseudo column like an Oracle ROWID
2525 * <UL> 2525 * <UL>
2526 * <LI> versionColumnUnknown - may or may not be pseudo column 2526 * <LI> versionColumnUnknown - may or may not be pseudo column
2527 * <LI> versionColumnNotPseudo - is NOT a pseudo column 2527 * <LI> versionColumnNotPseudo - is NOT a pseudo column
2528 * <LI> versionColumnPseudo - is a pseudo column 2528 * <LI> versionColumnPseudo - is a pseudo column
2529 * </UL> 2529 * </UL>
2561 * Get a description of a table's primary key columns. They 2561 * Get a description of a table's primary key columns. They
2562 * are ordered by COLUMN_NAME. 2562 * are ordered by COLUMN_NAME.
2563 * 2563 *
2564 * <P>Each column description has the following columns: 2564 * <P>Each column description has the following columns:
2565 * <OL> 2565 * <OL>
2566 * <LI><B>TABLE_CAT</B> String => table catalog (may be null) 2566 * <LI><B>TABLE_CAT</B> String =&gt; table catalog (may be null)
2567 * <LI><B>TABLE_SCHEM</B> String => table schema (may be null) 2567 * <LI><B>TABLE_SCHEM</B> String =&gt; table schema (may be null)
2568 * <LI><B>TABLE_NAME</B> String => table name 2568 * <LI><B>TABLE_NAME</B> String =&gt; table name
2569 * <LI><B>COLUMN_NAME</B> String => column name 2569 * <LI><B>COLUMN_NAME</B> String =&gt; column name
2570 * <LI><B>KEY_SEQ</B> short => sequence number within primary key 2570 * <LI><B>KEY_SEQ</B> short =&gt; sequence number within primary key
2571 * <LI><B>PK_NAME</B> String => primary key name (may be null) 2571 * <LI><B>PK_NAME</B> String =&gt; primary key name (may be null)
2572 * </OL> 2572 * </OL>
2573 * 2573 *
2574 * @param catalog a catalog name; "" retrieves those without a catalog 2574 * @param catalog a catalog name; "" retrieves those without a catalog
2575 * @param schema a schema name pattern; "" retrieves those 2575 * @param schema a schema name pattern; "" retrieves those
2576 * without a schema 2576 * without a schema
2658 * imported by a table). They are ordered by PKTABLE_CAT, 2658 * imported by a table). They are ordered by PKTABLE_CAT,
2659 * PKTABLE_SCHEM, PKTABLE_NAME, and KEY_SEQ. 2659 * PKTABLE_SCHEM, PKTABLE_NAME, and KEY_SEQ.
2660 * 2660 *
2661 * <P>Each primary key column description has the following columns: 2661 * <P>Each primary key column description has the following columns:
2662 * <OL> 2662 * <OL>
2663 * <LI><B>PKTABLE_CAT</B> String => primary key table catalog 2663 * <LI><B>PKTABLE_CAT</B> String =&gt; primary key table catalog
2664 * being imported (may be null) 2664 * being imported (may be null)
2665 * <LI><B>PKTABLE_SCHEM</B> String => primary key table schema 2665 * <LI><B>PKTABLE_SCHEM</B> String =&gt; primary key table schema
2666 * being imported (may be null) 2666 * being imported (may be null)
2667 * <LI><B>PKTABLE_NAME</B> String => primary key table name 2667 * <LI><B>PKTABLE_NAME</B> String =&gt; primary key table name
2668 * being imported 2668 * being imported
2669 * <LI><B>PKCOLUMN_NAME</B> String => primary key column name 2669 * <LI><B>PKCOLUMN_NAME</B> String =&gt; primary key column name
2670 * being imported 2670 * being imported
2671 * <LI><B>FKTABLE_CAT</B> String => foreign key table catalog (may be null) 2671 * <LI><B>FKTABLE_CAT</B> String =&gt; foreign key table catalog (may be null)
2672 * <LI><B>FKTABLE_SCHEM</B> String => foreign key table schema (may be null) 2672 * <LI><B>FKTABLE_SCHEM</B> String =&gt; foreign key table schema (may be null)
2673 * <LI><B>FKTABLE_NAME</B> String => foreign key table name 2673 * <LI><B>FKTABLE_NAME</B> String =&gt; foreign key table name
2674 * <LI><B>FKCOLUMN_NAME</B> String => foreign key column name 2674 * <LI><B>FKCOLUMN_NAME</B> String =&gt; foreign key column name
2675 * <LI><B>KEY_SEQ</B> short => sequence number within foreign key 2675 * <LI><B>KEY_SEQ</B> short =&gt; sequence number within foreign key
2676 * (a value of 1 represents the first column of the foreign key, a value of 2 would represent the second column within the foreign key). 2676 * (a value of 1 represents the first column of the foreign key, a value of 2 would represent the second column within the foreign key).
2677 * <LI><B>UPDATE_RULE</B> short => What happens to 2677 * <LI><B>UPDATE_RULE</B> short =&gt; What happens to
2678 * foreign key when primary is updated: 2678 * foreign key when primary is updated:
2679 * <UL> 2679 * <UL>
2680 * <LI> importedKeyNoAction - do not allow update of primary key if it has been imported 2680 * <LI> importedKeyNoAction - do not allow update of primary key if it has been imported
2681 * <LI> importedKeyCascade - change imported key to agree 2681 * <LI> importedKeyCascade - change imported key to agree
2682 * with primary key update 2682 * with primary key update
2683 * <LI> importedKeyRestrict - do not allow update of primary 2683 * <LI> importedKeyRestrict - do not allow update of primary
2684 * key if it has been imported 2684 * key if it has been imported
2685 * <LI> importedKeySetNull - change imported key to NULL if 2685 * <LI> importedKeySetNull - change imported key to NULL if
2686 * its primary key has been updated 2686 * its primary key has been updated
2687 * </UL> 2687 * </UL>
2688 * <LI><B>DELETE_RULE</B> short => What happens to 2688 * <LI><B>DELETE_RULE</B> short =&gt; What happens to
2689 * the foreign key when primary is deleted. 2689 * the foreign key when primary is deleted.
2690 * <UL> 2690 * <UL>
2691 * <LI> importedKeyNoAction - do not allow delete of primary key if it has been imported 2691 * <LI> importedKeyNoAction - do not allow delete of primary key if it has been imported
2692 * <LI> importedKeyCascade - delete rows that import a deleted key 2692 * <LI> importedKeyCascade - delete rows that import a deleted key
2693 * <LI> importedKeyRestrict - do not allow delete of primary 2693 * <LI> importedKeyRestrict - do not allow delete of primary
2694 * key if it has been imported 2694 * key if it has been imported
2695 * <LI> importedKeySetNull - change imported key to NULL if 2695 * <LI> importedKeySetNull - change imported key to NULL if
2696 * its primary key has been deleted 2696 * its primary key has been deleted
2697 * </UL> 2697 * </UL>
2698 * <LI><B>FK_NAME</B> String => foreign key name (may be null) 2698 * <LI><B>FK_NAME</B> String =&gt; foreign key name (may be null)
2699 * <LI><B>PK_NAME</B> String => primary key name (may be null) 2699 * <LI><B>PK_NAME</B> String =&gt; primary key name (may be null)
2700 * <LI><B>DEFERRABILITY</B> short => can the evaluation of foreign key constraints be deferred until commit 2700 * <LI><B>DEFERRABILITY</B> short =&gt; can the evaluation of foreign key constraints be deferred until commit
2701 * <UL> 2701 * <UL>
2702 * <LI> importedKeyInitiallyDeferred - see SQL92 for definition 2702 * <LI> importedKeyInitiallyDeferred - see SQL92 for definition
2703 * <LI> importedKeyInitiallyImmediate - see SQL92 for definition 2703 * <LI> importedKeyInitiallyImmediate - see SQL92 for definition
2704 * <LI> importedKeyNotDeferrable - see SQL92 for definition 2704 * <LI> importedKeyNotDeferrable - see SQL92 for definition
2705 * </UL> 2705 * </UL>
2741 * table's primary key columns (the foreign keys exported by a table). 2741 * table's primary key columns (the foreign keys exported by a table).
2742 * They are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and KEY_SEQ. 2742 * They are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and KEY_SEQ.
2743 * 2743 *
2744 * <P>Each foreign key column description has the following columns: 2744 * <P>Each foreign key column description has the following columns:
2745 * <OL> 2745 * <OL>
2746 * <LI><B>PKTABLE_CAT</B> String => primary key table catalog (may be null) 2746 * <LI><B>PKTABLE_CAT</B> String =&gt; primary key table catalog (may be null)
2747 * <LI><B>PKTABLE_SCHEM</B> String => primary key table schema (may be null) 2747 * <LI><B>PKTABLE_SCHEM</B> String =&gt; primary key table schema (may be null)
2748 * <LI><B>PKTABLE_NAME</B> String => primary key table name 2748 * <LI><B>PKTABLE_NAME</B> String =&gt; primary key table name
2749 * <LI><B>PKCOLUMN_NAME</B> String => primary key column name 2749 * <LI><B>PKCOLUMN_NAME</B> String =&gt; primary key column name
2750 * <LI><B>FKTABLE_CAT</B> String => foreign key table catalog (may be null) 2750 * <LI><B>FKTABLE_CAT</B> String =&gt; foreign key table catalog (may be null)
2751 * being exported (may be null) 2751 * being exported (may be null)
2752 * <LI><B>FKTABLE_SCHEM</B> String => foreign key table schema (may be null) 2752 * <LI><B>FKTABLE_SCHEM</B> String =&gt; foreign key table schema (may be null)
2753 * being exported (may be null) 2753 * being exported (may be null)
2754 * <LI><B>FKTABLE_NAME</B> String => foreign key table name 2754 * <LI><B>FKTABLE_NAME</B> String =&gt; foreign key table name
2755 * being exported 2755 * being exported
2756 * <LI><B>FKCOLUMN_NAME</B> String => foreign key column name 2756 * <LI><B>FKCOLUMN_NAME</B> String =&gt; foreign key column name
2757 * being exported 2757 * being exported
2758 * <LI><B>KEY_SEQ</B> short => sequence number within foreign key 2758 * <LI><B>KEY_SEQ</B> short =&gt; sequence number within foreign key
2759 * (a value of 1 represents the first column of the foreign key, a value of 2 would represent the second column within the foreign key). 2759 * (a value of 1 represents the first column of the foreign key, a value of 2 would represent the second column within the foreign key).
2760 * <LI><B>UPDATE_RULE</B> short => What happens to 2760 * <LI><B>UPDATE_RULE</B> short =&gt; What happens to
2761 * foreign key when primary is updated: 2761 * foreign key when primary is updated:
2762 * <UL> 2762 * <UL>
2763 * <LI> importedKeyNoAction - do not allow update of primary key if it has been imported 2763 * <LI> importedKeyNoAction - do not allow update of primary key if it has been imported
2764 * <LI> importedKeyCascade - change imported key to agree 2764 * <LI> importedKeyCascade - change imported key to agree
2765 * with primary key update 2765 * with primary key update
2766 * <LI> importedKeyRestrict - do not allow update of primary 2766 * <LI> importedKeyRestrict - do not allow update of primary
2767 * key if it has been imported 2767 * key if it has been imported
2768 * <LI> importedKeySetNull - change imported key to NULL if 2768 * <LI> importedKeySetNull - change imported key to NULL if
2769 * its primary key has been updated 2769 * its primary key has been updated
2770 * </UL> 2770 * </UL>
2771 * <LI><B>DELETE_RULE</B> short => What happens to 2771 * <LI><B>DELETE_RULE</B> short =&gt; What happens to
2772 * the foreign key when primary is deleted. 2772 * the foreign key when primary is deleted.
2773 * <UL> 2773 * <UL>
2774 * <LI> importedKeyNoAction - do not allow delete of primary key if it has been imported 2774 * <LI> importedKeyNoAction - do not allow delete of primary key if it has been imported
2775 * <LI> importedKeyCascade - delete rows that import a deleted key 2775 * <LI> importedKeyCascade - delete rows that import a deleted key
2776 * <LI> importedKeyRestrict - do not allow delete of primary 2776 * <LI> importedKeyRestrict - do not allow delete of primary
2777 * key if it has been imported 2777 * key if it has been imported
2778 * <LI> importedKeySetNull - change imported key to NULL if 2778 * <LI> importedKeySetNull - change imported key to NULL if
2779 * its primary key has been deleted 2779 * its primary key has been deleted
2780 * </UL> 2780 * </UL>
2781 * <LI><B>FK_NAME</B> String => foreign key identifier (may be null) 2781 * <LI><B>FK_NAME</B> String =&gt; foreign key identifier (may be null)
2782 * <LI><B>PK_NAME</B> String => primary key identifier (may be null) 2782 * <LI><B>PK_NAME</B> String =&gt; primary key identifier (may be null)
2783 * <LI><B>DEFERRABILITY</B> short => can the evaluation of foreign key constraints be deferred until commit 2783 * <LI><B>DEFERRABILITY</B> short =&gt; can the evaluation of foreign key constraints be deferred until commit
2784 * <UL> 2784 * <UL>
2785 * <LI> importedKeyInitiallyDeferred - see SQL92 for definition 2785 * <LI> importedKeyInitiallyDeferred - see SQL92 for definition
2786 * <LI> importedKeyInitiallyImmediate - see SQL92 for definition 2786 * <LI> importedKeyInitiallyImmediate - see SQL92 for definition
2787 * <LI> importedKeyNotDeferrable - see SQL92 for definition 2787 * <LI> importedKeyNotDeferrable - see SQL92 for definition
2788 * </UL> 2788 * </UL>
2827 * (most tables only import a foreign key from a table once.) 2827 * (most tables only import a foreign key from a table once.)
2828 * They are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and KEY_SEQ. 2828 * They are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and KEY_SEQ.
2829 * 2829 *
2830 * <P>Each foreign key column description has the following columns: 2830 * <P>Each foreign key column description has the following columns:
2831 * <OL> 2831 * <OL>
2832 * <LI><B>PKTABLE_CAT</B> String => primary key table catalog (may be null) 2832 * <LI><B>PKTABLE_CAT</B> String =&gt; primary key table catalog (may be null)
2833 * <LI><B>PKTABLE_SCHEM</B> String => primary key table schema (may be null) 2833 * <LI><B>PKTABLE_SCHEM</B> String =&gt; primary key table schema (may be null)
2834 * <LI><B>PKTABLE_NAME</B> String => primary key table name 2834 * <LI><B>PKTABLE_NAME</B> String =&gt; primary key table name
2835 * <LI><B>PKCOLUMN_NAME</B> String => primary key column name 2835 * <LI><B>PKCOLUMN_NAME</B> String =&gt; primary key column name
2836 * <LI><B>FKTABLE_CAT</B> String => foreign key table catalog (may be null) 2836 * <LI><B>FKTABLE_CAT</B> String =&gt; foreign key table catalog (may be null)
2837 * being exported (may be null) 2837 * being exported (may be null)
2838 * <LI><B>FKTABLE_SCHEM</B> String => foreign key table schema (may be null) 2838 * <LI><B>FKTABLE_SCHEM</B> String =&gt; foreign key table schema (may be null)
2839 * being exported (may be null) 2839 * being exported (may be null)
2840 * <LI><B>FKTABLE_NAME</B> String => foreign key table name 2840 * <LI><B>FKTABLE_NAME</B> String =&gt; foreign key table name
2841 * being exported 2841 * being exported
2842 * <LI><B>FKCOLUMN_NAME</B> String => foreign key column name 2842 * <LI><B>FKCOLUMN_NAME</B> String =&gt; foreign key column name
2843 * being exported 2843 * being exported
2844 * <LI><B>KEY_SEQ</B> short => sequence number within foreign key 2844 * <LI><B>KEY_SEQ</B> short =&gt; sequence number within foreign key
2845 * (a value of 1 represents the first column of the foreign key, a value of 2 would represent the second column within the foreign key). 2845 * (a value of 1 represents the first column of the foreign key, a value of 2 would represent the second column within the foreign key).
2846 * <LI><B>UPDATE_RULE</B> short => What happens to 2846 * <LI><B>UPDATE_RULE</B> short =&gt; What happens to
2847 * foreign key when primary is updated: 2847 * foreign key when primary is updated:
2848 * <UL> 2848 * <UL>
2849 * <LI> importedKeyNoAction - do not allow update of primary key if it has been imported 2849 * <LI> importedKeyNoAction - do not allow update of primary key if it has been imported
2850 * <LI> importedKeyCascade - change imported key to agree 2850 * <LI> importedKeyCascade - change imported key to agree
2851 * with primary key update 2851 * with primary key update
2852 * <LI> importedKeyRestrict - do not allow update of primary 2852 * <LI> importedKeyRestrict - do not allow update of primary
2853 * key if it has been imported 2853 * key if it has been imported
2854 * <LI> importedKeySetNull - change imported key to NULL if 2854 * <LI> importedKeySetNull - change imported key to NULL if
2855 * its primary key has been updated 2855 * its primary key has been updated
2856 * </UL> 2856 * </UL>
2857 * <LI><B>DELETE_RULE</B> short => What happens to 2857 * <LI><B>DELETE_RULE</B> short =&gt; What happens to
2858 * the foreign key when primary is deleted. 2858 * the foreign key when primary is deleted.
2859 * <UL> 2859 * <UL>
2860 * <LI> importedKeyNoAction - do not allow delete of primary key if it has been imported 2860 * <LI> importedKeyNoAction - do not allow delete of primary key if it has been imported
2861 * <LI> importedKeyCascade - delete rows that import a deleted key 2861 * <LI> importedKeyCascade - delete rows that import a deleted key
2862 * <LI> importedKeyRestrict - do not allow delete of primary 2862 * <LI> importedKeyRestrict - do not allow delete of primary
2863 * key if it has been imported 2863 * key if it has been imported
2864 * <LI> importedKeySetNull - change imported key to NULL if 2864 * <LI> importedKeySetNull - change imported key to NULL if
2865 * its primary key has been deleted 2865 * its primary key has been deleted
2866 * </UL> 2866 * </UL>
2867 * <LI><B>FK_NAME</B> String => foreign key identifier (may be null) 2867 * <LI><B>FK_NAME</B> String =&gt; foreign key identifier (may be null)
2868 * <LI><B>PK_NAME</B> String => primary key identifier (may be null) 2868 * <LI><B>PK_NAME</B> String =&gt; primary key identifier (may be null)
2869 * <LI><B>DEFERRABILITY</B> short => can the evaluation of foreign key constraints be deferred until commit 2869 * <LI><B>DEFERRABILITY</B> short =&gt; can the evaluation of foreign key constraints be deferred until commit
2870 * <UL> 2870 * <UL>
2871 * <LI> importedKeyInitiallyDeferred - see SQL92 for definition 2871 * <LI> importedKeyInitiallyDeferred - see SQL92 for definition
2872 * <LI> importedKeyInitiallyImmediate - see SQL92 for definition 2872 * <LI> importedKeyInitiallyImmediate - see SQL92 for definition
2873 * <LI> importedKeyNotDeferrable - see SQL92 for definition 2873 * <LI> importedKeyNotDeferrable - see SQL92 for definition
2874 * </UL> 2874 * </UL>
2938 * If SQL distinct or structured types are supported, then information on 2938 * If SQL distinct or structured types are supported, then information on
2939 * the individual types may be obtained from the getUDTs() method. 2939 * the individual types may be obtained from the getUDTs() method.
2940 * 2940 *
2941 * <P>Each type description has the following columns: 2941 * <P>Each type description has the following columns:
2942 * <OL> 2942 * <OL>
2943 * <LI><B>TYPE_NAME</B> String => Type name 2943 * <LI><B>TYPE_NAME</B> String =&gt; Type name
2944 * <LI><B>DATA_TYPE</B> int => SQL data type from java.sql.Types 2944 * <LI><B>DATA_TYPE</B> int =&gt; SQL data type from java.sql.Types
2945 * <LI><B>PRECISION</B> int => maximum precision 2945 * <LI><B>PRECISION</B> int =&gt; maximum precision
2946 * <LI><B>LITERAL_PREFIX</B> String => prefix used to quote a literal (may be null) 2946 * <LI><B>LITERAL_PREFIX</B> String =&gt; prefix used to quote a literal (may be null)
2947 * <LI><B>LITERAL_SUFFIX</B> String => suffix used to quote a literal (may be null) 2947 * <LI><B>LITERAL_SUFFIX</B> String =&gt; suffix used to quote a literal (may be null)
2948 * <LI><B>CREATE_PARAMS</B> String => parameters used in creating 2948 * <LI><B>CREATE_PARAMS</B> String =&gt; parameters used in creating
2949 * the type (may be null) 2949 * the type (may be null)
2950 * <LI><B>NULLABLE</B> short => can you use NULL for this type? 2950 * <LI><B>NULLABLE</B> short =&gt; can you use NULL for this type?
2951 * <UL> 2951 * <UL>
2952 * <LI> typeNoNulls - does not allow NULL values 2952 * <LI> typeNoNulls - does not allow NULL values
2953 * <LI> typeNullable - allows NULL values 2953 * <LI> typeNullable - allows NULL values
2954 * <LI> typeNullableUnknown - nullability unknown 2954 * <LI> typeNullableUnknown - nullability unknown
2955 * </UL> 2955 * </UL>
2956 * <LI><B>CASE_SENSITIVE</B> boolean=> is it case sensitive? 2956 * <LI><B>CASE_SENSITIVE</B> boolean=&gt; is it case sensitive?
2957 * <LI><B>SEARCHABLE</B> short => can you use "WHERE" based on this type: 2957 * <LI><B>SEARCHABLE</B> short =&gt; can you use "WHERE" based on this type:
2958 * <UL> 2958 * <UL>
2959 * <LI> typePredNone - No support 2959 * <LI> typePredNone - No support
2960 * <LI> typePredChar - Only supported with WHERE .. LIKE 2960 * <LI> typePredChar - Only supported with WHERE .. LIKE
2961 * <LI> typePredBasic - Supported except for WHERE .. LIKE 2961 * <LI> typePredBasic - Supported except for WHERE .. LIKE
2962 * <LI> typeSearchable - Supported for all WHERE .. 2962 * <LI> typeSearchable - Supported for all WHERE ..
2963 * </UL> 2963 * </UL>
2964 * <LI><B>UNSIGNED_ATTRIBUTE</B> boolean => is it unsigned? 2964 * <LI><B>UNSIGNED_ATTRIBUTE</B> boolean =&gt; is it unsigned?
2965 * <LI><B>FIXED_PREC_SCALE</B> boolean => can it be a money value? 2965 * <LI><B>FIXED_PREC_SCALE</B> boolean =&gt; can it be a money value?
2966 * <LI><B>AUTO_INCREMENT</B> boolean => can it be used for an 2966 * <LI><B>AUTO_INCREMENT</B> boolean =&gt; can it be used for an
2967 * auto-increment value? 2967 * auto-increment value?
2968 * <LI><B>LOCAL_TYPE_NAME</B> String => localized version of type name 2968 * <LI><B>LOCAL_TYPE_NAME</B> String =&gt; localized version of type name
2969 * (may be null) 2969 * (may be null)
2970 * <LI><B>MINIMUM_SCALE</B> short => minimum scale supported 2970 * <LI><B>MINIMUM_SCALE</B> short =&gt; minimum scale supported
2971 * <LI><B>MAXIMUM_SCALE</B> short => maximum scale supported 2971 * <LI><B>MAXIMUM_SCALE</B> short =&gt; maximum scale supported
2972 * <LI><B>SQL_DATA_TYPE</B> int => unused 2972 * <LI><B>SQL_DATA_TYPE</B> int =&gt; unused
2973 * <LI><B>SQL_DATETIME_SUB</B> int => unused 2973 * <LI><B>SQL_DATETIME_SUB</B> int =&gt; unused
2974 * <LI><B>NUM_PREC_RADIX</B> int => usually 2 or 10 2974 * <LI><B>NUM_PREC_RADIX</B> int =&gt; usually 2 or 10
2975 * </OL> 2975 * </OL>
2976 * 2976 *
2977 * @return ResultSet each row is a SQL type description 2977 * @return ResultSet each row is a SQL type description
2978 * @throws Exception if the developer made a Boo-Boo 2978 * @throws SQLException if a database error occurs
2979 */ 2979 */
2980 @Override 2980 @Override
2981 public ResultSet getTypeInfo() throws SQLException { 2981 public ResultSet getTypeInfo() throws SQLException {
2982 StringBuilder query = new StringBuilder(2300); 2982 StringBuilder query = new StringBuilder(2300);
2983 query.append("SELECT \"sqlname\" AS \"TYPE_NAME\", " + 2983 query.append("SELECT \"sqlname\" AS \"TYPE_NAME\", " +
3018 * Retrieves a description of the given table's indices and statistics. 3018 * Retrieves a description of the given table's indices and statistics.
3019 * They are ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION. 3019 * They are ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION.
3020 * 3020 *
3021 * <P>Each index column description has the following columns: 3021 * <P>Each index column description has the following columns:
3022 * <OL> 3022 * <OL>
3023 * <LI><B>TABLE_CAT</B> String => table catalog (may be null) 3023 * <LI><B>TABLE_CAT</B> String =&gt; table catalog (may be null)
3024 * <LI><B>TABLE_SCHEM</B> String => table schema (may be null) 3024 * <LI><B>TABLE_SCHEM</B> String =&gt; table schema (may be null)
3025 * <LI><B>TABLE_NAME</B> String => table name 3025 * <LI><B>TABLE_NAME</B> String =&gt; table name
3026 * <LI><B>NON_UNIQUE</B> boolean => Can index values be non-unique? 3026 * <LI><B>NON_UNIQUE</B> boolean =&gt; Can index values be non-unique?
3027 * false when TYPE is tableIndexStatistic 3027 * false when TYPE is tableIndexStatistic
3028 * <LI><B>INDEX_QUALIFIER</B> String => index catalog (may be null); 3028 * <LI><B>INDEX_QUALIFIER</B> String =&gt; index catalog (may be null);
3029 * null when TYPE is tableIndexStatistic 3029 * null when TYPE is tableIndexStatistic
3030 * <LI><B>INDEX_NAME</B> String => index name; null when TYPE is 3030 * <LI><B>INDEX_NAME</B> String =&gt; index name; null when TYPE is
3031 * tableIndexStatistic 3031 * tableIndexStatistic
3032 * <LI><B>TYPE</B> short => index type: 3032 * <LI><B>TYPE</B> short =&gt; index type:
3033 * <UL> 3033 * <UL>
3034 * <LI> tableIndexStatistic - this identifies table statistics that are 3034 * <LI> tableIndexStatistic - this identifies table statistics that are
3035 * returned in conjuction with a table's index descriptions 3035 * returned in conjuction with a table's index descriptions
3036 * <LI> tableIndexClustered - this is a clustered index 3036 * <LI> tableIndexClustered - this is a clustered index
3037 * <LI> tableIndexHashed - this is a hashed index 3037 * <LI> tableIndexHashed - this is a hashed index
3038 * <LI> tableIndexOther - this is some other style of index 3038 * <LI> tableIndexOther - this is some other style of index
3039 * </UL> 3039 * </UL>
3040 * <LI><B>ORDINAL_POSITION</B> short => column sequence number 3040 * <LI><B>ORDINAL_POSITION</B> short =&gt; column sequence number
3041 * within index; zero when TYPE is tableIndexStatistic 3041 * within index; zero when TYPE is tableIndexStatistic
3042 * <LI><B>COLUMN_NAME</B> String => column name; null when TYPE is 3042 * <LI><B>COLUMN_NAME</B> String =&gt; column name; null when TYPE is
3043 * tableIndexStatistic 3043 * tableIndexStatistic
3044 * <LI><B>ASC_OR_DESC</B> String => column sort sequence, "A" => ascending 3044 * <LI><B>ASC_OR_DESC</B> String =&gt; column sort sequence, "A" =&gt; ascending
3045 * "D" => descending, may be null if sort sequence is not supported; 3045 * "D" =&gt; descending, may be null if sort sequence is not supported;
3046 * null when TYPE is tableIndexStatistic 3046 * null when TYPE is tableIndexStatistic
3047 * <LI><B>CARDINALITY</B> int => When TYPE is tableIndexStatisic then 3047 * <LI><B>CARDINALITY</B> int =&gt; When TYPE is tableIndexStatisic then
3048 * this is the number of rows in the table; otherwise it is the 3048 * this is the number of rows in the table; otherwise it is the
3049 * number of unique values in the index. 3049 * number of unique values in the index.
3050 * <LI><B>PAGES</B> int => When TYPE is tableIndexStatisic then 3050 * <LI><B>PAGES</B> int =&gt; When TYPE is tableIndexStatisic then
3051 * this is the number of pages used for the table, otherwise it 3051 * this is the number of pages used for the table, otherwise it
3052 * is the number of pages used for the current index. 3052 * is the number of pages used for the current index.
3053 * <LI><B>FILTER_CONDITION</B> String => Filter condition, if any. 3053 * <LI><B>FILTER_CONDITION</B> String =&gt; Filter condition, if any.
3054 * (may be null) 3054 * (may be null)
3055 * </OL> 3055 * </OL>
3056 * 3056 *
3057 * @param catalog a catalog name; "" retrieves those without a catalog 3057 * @param catalog a catalog name; "" retrieves those without a catalog
3058 * @param schema a schema name pattern; "" retrieves those without a schema 3058 * @param schema a schema name pattern; "" retrieves those without a schema
3246 * They are ordered by DATA_TYPE, TYPE_CAT, TYPE_SCHEM and TYPE_NAME. 3246 * They are ordered by DATA_TYPE, TYPE_CAT, TYPE_SCHEM and TYPE_NAME.
3247 * The type name parameter may be a fully-qualified name. In this case, the catalog and schemaPattern parameters are ignored. 3247 * The type name parameter may be a fully-qualified name. In this case, the catalog and schemaPattern parameters are ignored.
3248 * 3248 *
3249 * Each type description has the following columns: 3249 * Each type description has the following columns:
3250 * 3250 *
3251 * 1 TYPE_CAT String => the type's catalog (may be null) 3251 * 1 TYPE_CAT String =&gt; the type's catalog (may be null)
3252 * 2 TYPE_SCHEM String => type's schema (may be null) 3252 * 2 TYPE_SCHEM String =&gt; type's schema (may be null)
3253 * 3 TYPE_NAME String => type name 3253 * 3 TYPE_NAME String =&gt; type name
3254 * 4 CLASS_NAME String => Java class name 3254 * 4 CLASS_NAME String =&gt; Java class name
3255 * 5 DATA_TYPE int => type value defined in java.sql.Types. One of JAVA_OBJECT, STRUCT, or DISTINCT 3255 * 5 DATA_TYPE int =&gt; type value defined in java.sql.Types. One of JAVA_OBJECT, STRUCT, or DISTINCT
3256 * 6 REMARKS String => explanatory comment on the type 3256 * 6 REMARKS String =&gt; explanatory comment on the type
3257 * 7 BASE_TYPE short => type code of the source type of a DISTINCT type or the type that implements the 3257 * 7 BASE_TYPE short =&gt; type code of the source type of a DISTINCT type or the type that implements the
3258 * user-generated reference type of the SELF_REFERENCING_COLUMN of a structured type as defined 3258 * user-generated reference type of the SELF_REFERENCING_COLUMN of a structured type as defined
3259 * in java.sql.Types (null if DATA_TYPE is not DISTINCT or not STRUCT with REFERENCE_GENERATION = USER_DEFINED) 3259 * in java.sql.Types (null if DATA_TYPE is not DISTINCT or not STRUCT with REFERENCE_GENERATION = USER_DEFINED)
3260 * 3260 *
3261 * @throws SQLException 3261 * @throws SQLException - if a database access error occurs
3262 */ 3262 */
3263 @Override 3263 @Override
3264 public ResultSet getUDTs( 3264 public ResultSet getUDTs(
3265 String catalog, 3265 String catalog,
3266 String schemaPattern, 3266 String schemaPattern,
3401 * If a UDT does not have a direct super type, it is not listed here. 3401 * If a UDT does not have a direct super type, it is not listed here.
3402 * A row of the <code>ResultSet</code> object returned by this method 3402 * A row of the <code>ResultSet</code> object returned by this method
3403 * describes the designated UDT and a direct supertype. A row has the following 3403 * describes the designated UDT and a direct supertype. A row has the following
3404 * columns: 3404 * columns:
3405 * <OL> 3405 * <OL>
3406 * <LI><B>TYPE_CAT</B> String => the UDT's catalog (may be <code>null</code>) 3406 * <LI><B>TYPE_CAT</B> String =&gt; the UDT's catalog (may be <code>null</code>)
3407 * <LI><B>TYPE_SCHEM</B> String => UDT's schema (may be <code>null</code>) 3407 * <LI><B>TYPE_SCHEM</B> String =&gt; UDT's schema (may be <code>null</code>)
3408 * <LI><B>TYPE_NAME</B> String => type name of the UDT 3408 * <LI><B>TYPE_NAME</B> String =&gt; type name of the UDT
3409 * <LI><B>SUPERTYPE_CAT</B> String => the direct super type's catalog 3409 * <LI><B>SUPERTYPE_CAT</B> String =&gt; the direct super type's catalog
3410 * (may be <code>null</code>) 3410 * (may be <code>null</code>)
3411 * <LI><B>SUPERTYPE_SCHEM</B> String => the direct super type's schema 3411 * <LI><B>SUPERTYPE_SCHEM</B> String =&gt; the direct super type's schema
3412 * (may be <code>null</code>) 3412 * (may be <code>null</code>)
3413 * <LI><B>SUPERTYPE_NAME</B> String => the direct super type's name 3413 * <LI><B>SUPERTYPE_NAME</B> String =&gt; the direct super type's name
3414 * </OL> 3414 * </OL>
3415 * 3415 *
3416 * <P><B>Note:</B> If the driver does not support type hierarchies, an 3416 * <P><B>Note:</B> If the driver does not support type hierarchies, an
3417 * empty result set is returned. 3417 * empty result set is returned.
3418 * 3418 *
3453 * sub tables. Therefore, the type description does not need to include 3453 * sub tables. Therefore, the type description does not need to include
3454 * this information for the supertable. 3454 * this information for the supertable.
3455 * 3455 *
3456 * <P>Each type description has the following columns: 3456 * <P>Each type description has the following columns:
3457 * <OL> 3457 * <OL>
3458 * <LI><B>TABLE_CAT</B> String => the type's catalog (may be <code>null</code>) 3458 * <LI><B>TABLE_CAT</B> String =&gt; the type's catalog (may be <code>null</code>)
3459 * <LI><B>TABLE_SCHEM</B> String => type's schema (may be <code>null</code>) 3459 * <LI><B>TABLE_SCHEM</B> String =&gt; type's schema (may be <code>null</code>)
3460 * <LI><B>TABLE_NAME</B> String => type name 3460 * <LI><B>TABLE_NAME</B> String =&gt; type name
3461 * <LI><B>SUPERTABLE_NAME</B> String => the direct super type's name 3461 * <LI><B>SUPERTABLE_NAME</B> String =&gt; the direct super type's name
3462 * </OL> 3462 * </OL>
3463 * 3463 *
3464 * <P><B>Note:</B> If the driver does not support type hierarchies, an 3464 * <P><B>Note:</B> If the driver does not support type hierarchies, an
3465 * empty result set is returned. 3465 * empty result set is returned.
3466 * 3466 *
3499 * does not contain inherited attributes. 3499 * does not contain inherited attributes.
3500 * <P> 3500 * <P>
3501 * The <code>ResultSet</code> object that is returned has the following 3501 * The <code>ResultSet</code> object that is returned has the following
3502 * columns: 3502 * columns:
3503 * <OL> 3503 * <OL>
3504 * <LI><B>TYPE_CAT</B> String => type catalog (may be <code>null</code>) 3504 * <LI><B>TYPE_CAT</B> String =&gt; type catalog (may be <code>null</code>)
3505 * <LI><B>TYPE_SCHEM</B> String => type schema (may be <code>null</code>) 3505 * <LI><B>TYPE_SCHEM</B> String =&gt; type schema (may be <code>null</code>)
3506 * <LI><B>TYPE_NAME</B> String => type name 3506 * <LI><B>TYPE_NAME</B> String =&gt; type name
3507 * <LI><B>ATTR_NAME</B> String => attribute name 3507 * <LI><B>ATTR_NAME</B> String =&gt; attribute name
3508 * <LI><B>DATA_TYPE</B> int => attribute type SQL type from java.sql.Types 3508 * <LI><B>DATA_TYPE</B> int =&gt; attribute type SQL type from java.sql.Types
3509 * <LI><B>ATTR_TYPE_NAME</B> String => Data source dependent type name. 3509 * <LI><B>ATTR_TYPE_NAME</B> String =&gt; Data source dependent type name.
3510 * For a UDT, the type name is fully qualified. For a REF, the type name is 3510 * For a UDT, the type name is fully qualified. For a REF, the type name is
3511 * fully qualified and represents the target type of the reference type. 3511 * fully qualified and represents the target type of the reference type.
3512 * <LI><B>ATTR_SIZE</B> int => column size. For char or date 3512 * <LI><B>ATTR_SIZE</B> int =&gt; column size. For char or date
3513 * types this is the maximum number of characters; for numeric or 3513 * types this is the maximum number of characters; for numeric or
3514 * decimal types this is precision. 3514 * decimal types this is precision.
3515 * <LI><B>DECIMAL_DIGITS</B> int => the number of fractional digits 3515 * <LI><B>DECIMAL_DIGITS</B> int =&gt; the number of fractional digits
3516 * <LI><B>NUM_PREC_RADIX</B> int => Radix (typically either 10 or 2) 3516 * <LI><B>NUM_PREC_RADIX</B> int =&gt; Radix (typically either 10 or 2)
3517 * <LI><B>NULLABLE</B> int => whether NULL is allowed 3517 * <LI><B>NULLABLE</B> int =&gt; whether NULL is allowed
3518 * <UL> 3518 * <UL>
3519 * <LI> attributeNoNulls - might not allow NULL values 3519 * <LI> attributeNoNulls - might not allow NULL values
3520 * <LI> attributeNullable - definitely allows NULL values 3520 * <LI> attributeNullable - definitely allows NULL values
3521 * <LI> attributeNullableUnknown - nullability unknown 3521 * <LI> attributeNullableUnknown - nullability unknown
3522 * </UL> 3522 * </UL>
3523 * <LI><B>REMARKS</B> String => comment describing column (may be <code>null</code>) 3523 * <LI><B>REMARKS</B> String =&gt; comment describing column (may be <code>null</code>)
3524 * <LI><B>ATTR_DEF</B> String => default value (may be <code>null</code>) 3524 * <LI><B>ATTR_DEF</B> String =&gt; default value (may be <code>null</code>)
3525 * <LI><B>SQL_DATA_TYPE</B> int => unused 3525 * <LI><B>SQL_DATA_TYPE</B> int =&gt; unused
3526 * <LI><B>SQL_DATETIME_SUB</B> int => unused 3526 * <LI><B>SQL_DATETIME_SUB</B> int =&gt; unused
3527 * <LI><B>CHAR_OCTET_LENGTH</B> int => for char types the 3527 * <LI><B>CHAR_OCTET_LENGTH</B> int =&gt; for char types the
3528 * maximum number of bytes in the column 3528 * maximum number of bytes in the column
3529 * <LI><B>ORDINAL_POSITION</B> int => index of column in table 3529 * <LI><B>ORDINAL_POSITION</B> int =&gt; index of column in table
3530 * (starting at 1) 3530 * (starting at 1)
3531 * <LI><B>IS_NULLABLE</B> String => "NO" means column definitely 3531 * <LI><B>IS_NULLABLE</B> String =&gt; "NO" means column definitely
3532 * does not allow NULL values; "YES" means the column might 3532 * does not allow NULL values; "YES" means the column might
3533 * allow NULL values. An empty string means unknown. 3533 * allow NULL values. An empty string means unknown.
3534 * <LI><B>SCOPE_CATALOG</B> String => catalog of table that is the 3534 * <LI><B>SCOPE_CATALOG</B> String =&gt; catalog of table that is the
3535 * scope of a reference attribute (<code>null</code> if DATA_TYPE isn't REF) 3535 * scope of a reference attribute (<code>null</code> if DATA_TYPE isn't REF)
3536 * <LI><B>SCOPE_SCHEMA</B> String => schema of table that is the 3536 * <LI><B>SCOPE_SCHEMA</B> String =&gt; schema of table that is the
3537 * scope of a reference attribute (<code>null</code> if DATA_TYPE isn't REF) 3537 * scope of a reference attribute (<code>null</code> if DATA_TYPE isn't REF)
3538 * <LI><B>SCOPE_TABLE</B> String => table name that is the scope of a 3538 * <LI><B>SCOPE_TABLE</B> String =&gt; table name that is the scope of a
3539 * reference attribute (<code>null</code> if the DATA_TYPE isn't REF) 3539 * reference attribute (<code>null</code> if the DATA_TYPE isn't REF)
3540 * <LI><B>SOURCE_DATA_TYPE</B> short => source type of a distinct type or user-generated 3540 * <LI><B>SOURCE_DATA_TYPE</B> short =&gt; source type of a distinct type or user-generated
3541 * Ref type,SQL type from java.sql.Types (<code>null</code> if DATA_TYPE 3541 * Ref type,SQL type from java.sql.Types (<code>null</code> if DATA_TYPE
3542 * isn't DISTINCT or user-generated REF) 3542 * isn't DISTINCT or user-generated REF)
3543 * </OL> 3543 * </OL>
3544 * @param catalog a catalog name; must match the catalog name as it 3544 * @param catalog a catalog name; must match the catalog name as it
3545 * is stored in the database; "" retrieves those without a catalog; 3545 * is stored in the database; "" retrieves those without a catalog;
3732 * Get the schema names available in this database. The results 3732 * Get the schema names available in this database. The results
3733 * are ordered by schema name. 3733 * are ordered by schema name.
3734 * 3734 *
3735 * <P>The schema column is: 3735 * <P>The schema column is:
3736 * <OL> 3736 * <OL>
3737 * <LI><B>TABLE_SCHEM</B> String => schema name 3737 * <LI><B>TABLE_SCHEM</B> String =&gt; schema name
3738 * <LI><B>TABLE_CATALOG</B> String => catalog name (may be null) 3738 * <LI><B>TABLE_CATALOG</B> String =&gt; catalog name (may be null)
3739 * </OL> 3739 * </OL>
3740 * 3740 *
3741 * @return ResultSet each row has a single String column that is a 3741 * @return ResultSet each row has a single String column that is a
3742 * schema name 3742 * schema name
3743 * @throws SQLException if a database error occurs 3743 * @throws SQLException if a database error occurs
3779 3779
3780 /** 3780 /**
3781 * Retrieves a list of the client info properties that the driver 3781 * Retrieves a list of the client info properties that the driver
3782 * supports. The result set contains the following columns 3782 * supports. The result set contains the following columns
3783 * 3783 *
3784 * 1. NAME String=> The name of the client info property 3784 * 1. NAME String =&gt; The name of the client info property
3785 * 2. MAX_LEN int=> The maximum length of the value for the 3785 * 2. MAX_LEN int =&gt; The maximum length of the value for the
3786 * property 3786 * property
3787 * 3. DEFAULT_VALUE String=> The default value of the 3787 * 3. DEFAULT_VALUE String =&gt; The default value of the
3788 * property 3788 * property
3789 * 4. DESCRIPTION String=> A description of the 3789 * 4. DESCRIPTION String =&gt; A description of the
3790 * property. This will typically contain information as 3790 * property. This will typically contain information as
3791 * to where this property is stored in the database. 3791 * to where this property is stored in the database.
3792 * 3792 *
3793 * The ResultSet is sorted by the NAME column 3793 * The ResultSet is sorted by the NAME column
3794 * 3794 *
3825 * and function name criteria are returned. They are ordered by 3825 * and function name criteria are returned. They are ordered by
3826 * FUNCTION_CAT, FUNCTION_SCHEM, FUNCTION_NAME and SPECIFIC_ NAME. 3826 * FUNCTION_CAT, FUNCTION_SCHEM, FUNCTION_NAME and SPECIFIC_ NAME.
3827 * 3827 *
3828 * Each function description has the the following columns: 3828 * Each function description has the the following columns:
3829 * 3829 *
3830 * 1. FUNCTION_CAT String => function catalog (may be null) 3830 * 1. FUNCTION_CAT String =&gt; function catalog (may be null)
3831 * 2. FUNCTION_SCHEM String => function schema (may be null) 3831 * 2. FUNCTION_SCHEM String =&gt; function schema (may be null)
3832 * 3. FUNCTION_NAME String => function name. This is the 3832 * 3. FUNCTION_NAME String =&gt; function name. This is the
3833 * name used to invoke the function 3833 * name used to invoke the function
3834 * 4. REMARKS String => explanatory comment on the function 3834 * 4. REMARKS String =&gt; explanatory comment on the function
3835 * 5. FUNCTION_TYPE short => kind of function: 3835 * 5. FUNCTION_TYPE short =&gt; kind of function:
3836 * * functionResultUnknown - Cannot determine if a return 3836 * * functionResultUnknown - Cannot determine if a return
3837 * value or table will be returned 3837 * value or table will be returned
3838 * * functionNoTable- Does not return a table 3838 * * functionNoTable- Does not return a table
3839 * * functionReturnsTable - Returns a table 3839 * * functionReturnsTable - Returns a table
3840 * 6. SPECIFIC_NAME String => the name which uniquely identifies 3840 * 6. SPECIFIC_NAME String =&gt; the name which uniquely identifies
3841 * this function within its schema. This is a user specified, 3841 * this function within its schema. This is a user specified,
3842 * or DBMS generated, name that may be different then the 3842 * or DBMS generated, name that may be different then the
3843 * FUNCTION_NAME for example with overload functions 3843 * FUNCTION_NAME for example with overload functions
3844 * 3844 *
3845 * A user may not have permission to execute any of the functions 3845 * A user may not have permission to execute any of the functions
3908 * Only descriptions matching the schema, function and parameter name criteria are returned. 3908 * Only descriptions matching the schema, function and parameter name criteria are returned.
3909 * They are ordered by FUNCTION_CAT, FUNCTION_SCHEM, FUNCTION_NAME and SPECIFIC_ NAME. 3909 * They are ordered by FUNCTION_CAT, FUNCTION_SCHEM, FUNCTION_NAME and SPECIFIC_ NAME.
3910 * Within this, the return value, if any, is first. Next are the parameter descriptions in call order. 3910 * Within this, the return value, if any, is first. Next are the parameter descriptions in call order.
3911 * The column descriptions follow in column number order. 3911 * The column descriptions follow in column number order.
3912 * 3912 *
3913 * 1. FUNCTION_CAT String => function catalog (may be null) 3913 * 1. FUNCTION_CAT String =&gt; function catalog (may be null)
3914 * 2. FUNCTION_SCHEM String => function schema (may be null) 3914 * 2. FUNCTION_SCHEM String =&gt; function schema (may be null)
3915 * 3. FUNCTION_NAME String => function name. This is the name used to invoke the function 3915 * 3. FUNCTION_NAME String =&gt; function name. This is the name used to invoke the function
3916 * 4. COLUMN_NAME String => column/parameter name 3916 * 4. COLUMN_NAME String =&gt; column/parameter name
3917 * 5. COLUMN_TYPE Short => kind of column/parameter: 3917 * 5. COLUMN_TYPE Short =&gt; kind of column/parameter:
3918 * functionColumnUnknown - nobody knows 3918 * functionColumnUnknown - nobody knows
3919 * functionColumnIn - IN parameter 3919 * functionColumnIn - IN parameter
3920 * functionColumnInOut - INOUT parameter 3920 * functionColumnInOut - INOUT parameter
3921 * functionColumnOut - OUT parameter 3921 * functionColumnOut - OUT parameter
3922 * functionColumnReturn - function return value 3922 * functionColumnReturn - function return value
3923 * functionColumnResult - Indicates that the parameter or column is a column in the ResultSet 3923 * functionColumnResult - Indicates that the parameter or column is a column in the ResultSet
3924 * 6. DATA_TYPE int => SQL type from java.sql.Types 3924 * 6. DATA_TYPE int =&gt; SQL type from java.sql.Types
3925 * 7. TYPE_NAME String => SQL type name, for a UDT type the type name is fully qualified 3925 * 7. TYPE_NAME String =&gt; SQL type name, for a UDT type the type name is fully qualified
3926 * 8. PRECISION int => precision 3926 * 8. PRECISION int =&gt; precision
3927 * 9. LENGTH int => length in bytes of data 3927 * 9. LENGTH int =&gt; length in bytes of data
3928 * 10. SCALE short => scale - null is returned for data types where SCALE is not applicable. 3928 * 10. SCALE short =&gt; scale - null is returned for data types where SCALE is not applicable.
3929 * 11. RADIX short => radix 3929 * 11. RADIX short =&gt; radix
3930 * 12. NULLABLE short => can it contain NULL. 3930 * 12. NULLABLE short =&gt; can it contain NULL.
3931 * functionNoNulls - does not allow NULL values 3931 * functionNoNulls - does not allow NULL values
3932 * functionNullable - allows NULL values 3932 * functionNullable - allows NULL values
3933 * functionNullableUnknown - nullability unknown 3933 * functionNullableUnknown - nullability unknown
3934 * 13. REMARKS String => comment describing column/parameter 3934 * 13. REMARKS String =&gt; comment describing column/parameter
3935 * 14. CHAR_OCTET_LENGTH int => the maximum length of binary and character based parameters or columns. For any other datatype the returned value is a NULL 3935 * 14. CHAR_OCTET_LENGTH int =&gt; the maximum length of binary and character based parameters or columns. For any other datatype the returned value is a NULL
3936 * 15. ORDINAL_POSITION int => the ordinal position, starting from 1, for the input and output parameters. 3936 * 15. ORDINAL_POSITION int =&gt; the ordinal position, starting from 1, for the input and output parameters.
3937 * A value of 0 is returned if this row describes the function's return value. For result set columns, it is the ordinal position of the column in the result set starting from 1. 3937 * A value of 0 is returned if this row describes the function's return value. For result set columns, it is the ordinal position of the column in the result set starting from 1.
3938 * 16. IS_NULLABLE String => ISO rules are used to determine the nullability for a parameter or column. 3938 * 16. IS_NULLABLE String =&gt; ISO rules are used to determine the nullability for a parameter or column.
3939 * YES --- if the parameter or column can include NULLs 3939 * YES --- if the parameter or column can include NULLs
3940 * NO --- if the parameter or column cannot include NULLs 3940 * NO --- if the parameter or column cannot include NULLs
3941 * empty string --- if the nullability for the parameter or column is unknown 3941 * empty string --- if the nullability for the parameter or column is unknown
3942 * 17. SPECIFIC_NAME String => the name which uniquely identifies this function within its schema. 3942 * 17. SPECIFIC_NAME String =&gt; the name which uniquely identifies this function within its schema.
3943 * This is a user specified, or DBMS generated, name that may be different then the FUNCTION_NAME for example with overload functions 3943 * This is a user specified, or DBMS generated, name that may be different then the FUNCTION_NAME for example with overload functions
3944 * 3944 *
3945 * @param catalog a catalog name; must match the catalog name as 3945 * @param catalog a catalog name; must match the catalog name as
3946 * it is stored in the database; "" retrieves those without a 3946 * it is stored in the database; "" retrieves those without a
3947 * catalog; null means that the catalog name should not be 3947 * catalog; null means that the catalog name should not be
4032 * Only column descriptions matching the catalog, schema, table and column name criteria are returned. 4032 * Only column descriptions matching the catalog, schema, table and column name criteria are returned.
4033 * They are ordered by TABLE_CAT,TABLE_SCHEM, TABLE_NAME and COLUMN_NAME. 4033 * They are ordered by TABLE_CAT,TABLE_SCHEM, TABLE_NAME and COLUMN_NAME.
4034 * 4034 *
4035 * Each column description has the following columns: 4035 * Each column description has the following columns:
4036 * 4036 *
4037 * 1. TABLE_CAT String => table catalog (may be null) 4037 * 1. TABLE_CAT String =&gt; table catalog (may be null)
4038 * 2. TABLE_SCHEM String => table schema (may be null) 4038 * 2. TABLE_SCHEM String =&gt; table schema (may be null)
4039 * 3. TABLE_NAME String => table name 4039 * 3. TABLE_NAME String =&gt; table name
4040 * 4. COLUMN_NAME String => column name 4040 * 4. COLUMN_NAME String =&gt; column name
4041 * 5. DATA_TYPE int => SQL type from java.sql.Types 4041 * 5. DATA_TYPE int =&gt; SQL type from java.sql.Types
4042 * 6. COLUMN_SIZE int => column size. 4042 * 6. COLUMN_SIZE int =&gt; column size.
4043 * 7. DECIMAL_DIGITS int => the number of fractional digits. Null is returned for data types where DECIMAL_DIGITS is not applicable. 4043 * 7. DECIMAL_DIGITS int =&gt; the number of fractional digits. Null is returned for data types where DECIMAL_DIGITS is not applicable.
4044 * 8. NUM_PREC_RADIX int => Radix (typically either 10 or 2) 4044 * 8. NUM_PREC_RADIX int =&gt; Radix (typically either 10 or 2)
4045 * 9. COLUMN_USAGE String => The allowed usage for the column. The value returned will correspond to the enum name returned by PseudoColumnUsage.name() 4045 * 9. COLUMN_USAGE String =&gt; The allowed usage for the column. The value returned will correspond to the enum name returned by PseudoColumnUsage.name()
4046 * 10. REMARKS String => comment describing column (may be null) 4046 * 10. REMARKS String =&gt; comment describing column (may be null)
4047 * 11. CHAR_OCTET_LENGTH int => for char types the maximum number of bytes in the column 4047 * 11. CHAR_OCTET_LENGTH int =&gt; for char types the maximum number of bytes in the column
4048 * 12. IS_NULLABLE String => ISO rules are used to determine the nullability for a column. 4048 * 12. IS_NULLABLE String =&gt; ISO rules are used to determine the nullability for a column.
4049 * YES --- if the column can include NULLs 4049 * YES --- if the column can include NULLs
4050 * NO --- if the column cannot include NULLs 4050 * NO --- if the column cannot include NULLs
4051 * empty string --- if the nullability for the column is unknown 4051 * empty string --- if the nullability for the column is unknown
4052 * 4052 *
4053 * @param catalog a catalog name 4053 * @param catalog a catalog name