odbcgen_fragments.properties

来自「derby database source code.good for you.」· PROPERTIES 代码 · 共 257 行

PROPERTIES
257
字号
## This file contains SQL fragments that are used as# part of the ODBC metadata generation process.# This file is NOT, and is NOT intended to become,# an ODBC substitute for metadata.properties.# Rather, it is a place to store fragments of ODBC# metadata statements that do not apply to JDBC# metadata, but which are used as part of the ODBC# metadata generation process (these fragments are# plugged into the ODBC versions of the queries for# which they are required).  When all is done,# the fragments in this file will show up as part# of the generated ODBC metadata queries, which# will then be appended to Derby's internal list# of metadata queries (in metadata.properties),# which will, finally, serve as the basis for# for both JDBC and ODBC metadata calls.## This file, like the ODBCMetadataGenerator class# that uses it, is ONLY USED AT BUILD TIME; and # like the ODBCMetadataGenerator class, it is NOT# included in the final org.apache.derby package# (and thus will NOT be included in the Derby jar# file).## Note: In this file, words between curly brackets# (ex "{SQL_DATA_TYPE_FOR_ODBC}") are placeholders# for other fragments in this file.  The actual# substitutions for these placeholders occur as# part of the ODBCMetadataGenerator class's work.## Finally, note that starting a line in this file# with the "\\\n" sequence allows formatting (esp.# tabs and newlines) to be preserved, so that the# generated ODBC queries are human-readable.# ----------## SQL_DATA_TYPE:# Set SQL_DATA_TYPE, which is unused by JDBC (and# thus returns NULL for JDBC), to the value as# defined by the ODBC specification.  Note that# any metadata statement requiring this fragment# must already have a column named "DATA_TYPE"# as part of the JDBC subquery's result set.## Date, time, and timestamp columns are supposed# to return a generic "SQL_DATETIME" value here;# that's defined as the value "9".  All other# types return their normal DATA_TYPE value.#SQL_DATA_TYPE_FOR_ODBC=\CASE WHEN (JDBC_SUBQUERY.DATA_TYPE IN (java.sql.Types::DATE, \\\\n	java.sql.Types::TIME, java.sql.Types::TIMESTAMP)) \\\\n		 THEN 9 \\\\n		 ELSE JDBC_SUBQUERY.DATA_TYPE END# ----------## SQL_DATETIME_SUB:# Set SQL_DATETIME_SUB, which is unused by JDBC (and# thus returns NULL for JDBC), to the value as# defined by the ODBC specification.  Note that# any metadata statement requiring this fragment# must already have a column named "DATA_TYPE"# as part of the JDBC subquery's result set.## This value is null for all types except date, time,# and timestamp.  For those, the values are defined# as follows:##	SQL_CODE_DATE       1#	SQL_CODE_TIME       2#	SQL_CODE_TIMESTAMP  3#DATETIME_SUB_FOR_ODBC=\CASE WHEN (JDBC_SUBQUERY.DATA_TYPE = java.sql.Types::DATE) \\\\n	THEN 1 \\\\n	ELSE (CASE WHEN (JDBC_SUBQUERY.DATA_TYPE = java.sql.Types::TIME) \\\\n		THEN 2 \\\\n		ELSE (CASE WHEN (JDBC_SUBQUERY.DATA_TYPE = java.sql.Types::TIMESTAMP) \\\\n			THEN 3 \\\\n			ELSE CAST (NULL AS SMALLINT) END ) END ) END# ----------## UNSIGNED_ATTRIBUTE:# Set UNSIGNED_ATTRIBUTE, which defaults to "true"# for non-numeric types in JDBC, to be NULL for# non-numeric types according the definition as# given in the ODBC specification.  Note that# any metadata statement requiring this fragment# must already have a column named "DATA_TYPE"# and a column named "UNSIGNED_ATTRIBUTE" as# part of the JDBC subquery's result set.#UNSIGNED_ATTR_FOR_ODBC=\CASE WHEN (JDBC_SUBQUERY.DATA_TYPE IN (java.sql.Types::DECIMAL, \\\\n	java.sql.Types::NUMERIC, java.sql.Types::INTEGER, \\\\n	java.sql.Types::SMALLINT, java.sql.Types::TINYINT, \\\\n	java.sql.Types::BIGINT, java.sql.Types::DOUBLE, \\\\n	java.sql.Types::FLOAT, java.sql.Types::REAL, \\\\n	java.sql.Types::DATE, java.sql.Types::TIME, \\\\n	java.sql.Types::TIMESTAMP)) \\\\n		THEN JDBC_SUBQUERY.UNSIGNED_ATTRIBUTE \\\\n		ELSE CAST (NULL AS SMALLINT) END# ----------## AUTO_UNIQUE_VAL:# Set AUTO_UNIQUE_VAL, which defaults to "false"# for non-numeric types in JDBC, to be NULL for# non-numeric types according the definition as# given in the ODBC specification.  Note that# any metadata statement requiring this fragment# must already have a column named "DATA_TYPE"# and a column named "AUTO_UNIQUE_VAL" as# part of the JDBC subquery's result set.#AUTO_UNIQUE_FOR_ODBC=\CASE WHEN (JDBC_SUBQUERY.DATA_TYPE IN (java.sql.Types::DECIMAL, \\\\n	java.sql.Types::NUMERIC, java.sql.Types::INTEGER, \\\\n	java.sql.Types::SMALLINT, java.sql.Types::TINYINT, \\\\n	java.sql.Types::BIGINT, java.sql.Types::DOUBLE, \\\\n	java.sql.Types::FLOAT, java.sql.Types::REAL, \\\\n	java.sql.Types::DATE, java.sql.Types::TIME, \\\\n	java.sql.Types::TIMESTAMP)) \\\\n		THEN JDBC_SUBQUERY.AUTO_UNIQUE_VAL \\\\n		ELSE CAST (NULL AS SMALLINT) END# ----------## NUM_PREC_RADIX:# Set NUM_PREC_RADIX, which is "10" for datetime# values in JDBC, to be "2" for datetime values# in ODBC, as given in the ODBC specification.# Note that any metadata statement requiring this# fragment must already have a column named# "DATA_TYPE" and a column named "NUM_PREC_RADIX"# as part of the JDBC subquery's result set.#RADIX_FOR_ODBC=\CASE WHEN (JDBC_SUBQUERY.DATA_TYPE IN (java.sql.Types::DATE, \\\\n	java.sql.Types::TIME, java.sql.Types::TIMESTAMP)) \\\\n		THEN CAST (2 AS SMALLINT) \\\\n		ELSE JDBC_SUBQUERY.NUM_PREC_RADIX END# ----------## DECIMAL_DIGITS:# Set DECIMAL_DIGITS to be NULL for DATE columns# in ODBC, as given in the ODBC specification.# Note that any metadata statement requiring this# fragment must already have a column named# "DATA_TYPE" and a column named "DECIMAL_DIGITS"# as part of the JDBC subquery's result set.#DECIMAL_DIGITS_FOR_ODBC=\CASE WHEN (JDBC_SUBQUERY.DATA_TYPE IN (java.sql.Types::DATE)) \\\\n		THEN CAST (NULL AS SMALLINT) \\\\n		ELSE JDBC_SUBQUERY.DECIMAL_DIGITS END# ----------## Columns that need to be added to the getProcedureColumns result# set for ODBC compliance.#GET_PROC_COLS_NEW_COLS=\CAST (NULL AS VARCHAR(254)) AS COLUMN_DEF, \\\\nCAST (({SQL_DATA_TYPE_FOR_ODBC}) AS SMALLINT) \\\\n	AS SQL_DATA_TYPE, \\\\nCAST (({DATETIME_SUB_FOR_ODBC}) AS SMALLINT) \\\\n	AS SQL_DATETIME_SUB, \\\\nCASE WHEN (JDBC_SUBQUERY.DATA_TYPE IN (java.sql.Types::CHAR, \\\\n		java.sql.Types::VARCHAR, java.sql.Types::BINARY, \\\\n		java.sql.Types::VARBINARY)) \\\\n			THEN JDBC_SUBQUERY.BUFFER_LENGTH \\\\n			ELSE CAST (NULL AS INT) END \\\\n		AS CHAR_OCTET_LENGTH, \\\\nCAST ((JDBC_SUBQUERY.PARAMETER_ID + 1) AS INT) AS ORDINAL_POSITION, \\\\nCAST ((CASE WHEN (JDBC_SUBQUERY.NULLABLE IN \\\\n		(java.sql.DatabaseMetaData::procedureNullable)) \\\\n			THEN 'YES' \\\\n			ELSE 'NO' END) \\\\n		AS VARCHAR(128)) AS IS_NULLABLE# ----------## Columns that need to be added to the getTypeInfo result# set for ODBC compliance.#GET_TYPE_INFO_NEW_COLS=\CAST (NULL AS SMALLINT) AS INTERVAL_PRECISION# ----------## In order to correctly determine the BUFFER_LENGTH# and CHAR_OCTET_LENGTH values for the ODBC version# of getColumns, we need to retrieve the max width# value of the column in question.  Since this# specific value isn't returned as part of the JDBC# metadata, we need to add it as a "helper" column# to the JDBC subquery result set.  See the# addHelperColsToSubquery method in the ODBC meta-# data generator class for more details.#GET_COLS_HELPER_COLS=, \\\\n		C.COLUMNDATATYPE.getMaximumWidthInBytes() AS COL_MAX_WIDTH_IN_BYTES# ----------## In order to correctly determine the BUFFER_LENGTH# value for the ODBC versions of the getBestRow*# queries, we need to retrieve the max width# value of the column in question.  Since this# specific value isn't returned as part of the JDBC# metadata, we need to add it as a "helper" column# to the JDBC subquery result set.  See the# addHelperColsToSubquery method in the ODBC meta-# data generator class for more details.#BEST_ROW_ID_HELPER_COLS=, \\\\n		COLS.COLUMNDATATYPE.getMaximumWidthInBytes() AS COL_MAX_WIDTH_IN_BYTES# ----------## BUFFER_LENGTH:# Set BUFFER_LENGTH, which is unused by JDBC (and# thus returns NULL for JDBC), to the value as# defined by the ODBC specification.  Note that# any metadata statement requiring this fragment# must already have a column named "DATA_TYPE"# and a "helper" column named "COL_MAX_WIDTH_IN_BYTES"# as part of the JDBC subquery's result set.#BUFFER_LEN_FOR_ODBC=\JDBC_SUBQUERY.COL_MAX_WIDTH_IN_BYTES# ----------## CHAR_OCTET_LENGTH:# Make CHAR_OCTET_LENGTH, which only applies to# char cols in JDBC, apply to both char and binary# columns per the ODBC specification.  Note that# any metadata statement requiring this fragment# must already have a column named "DATA_TYPE"# and a "helper" column named "COL_MAX_WIDTH_IN_BYTES"# as part of the JDBC subquery's result set.#CHAR_OCTET_FOR_ODBC=\CASE WHEN (JDBC_SUBQUERY.DATA_TYPE IN (java.sql.Types::CHAR, \\\\n	java.sql.Types::VARCHAR, java.sql.Types::BINARY, \\\\n	java.sql.Types::VARBINARY)) \\\\n		THEN JDBC_SUBQUERY.COL_MAX_WIDTH_IN_BYTES \\\\n		ELSE CAST(NULL AS INT) END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?