Initial Commit
This commit is contained in:
594
database/perl/vendor/lib/SQL/Statement/GetInfo.pm
vendored
Normal file
594
database/perl/vendor/lib/SQL/Statement/GetInfo.pm
vendored
Normal file
@@ -0,0 +1,594 @@
|
||||
package SQL::Statement::GetInfo;
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# This module is copyright (c), 2001,2005 by Jeff Zucker.
|
||||
# This module is copyright (c), 2007-2020 by Jens Rehsack.
|
||||
# All rights reserved.
|
||||
#
|
||||
# It may be freely distributed under the same terms as Perl itself.
|
||||
# See below for help and copyright information (search for SYNOPSIS).
|
||||
#
|
||||
######################################################################
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => "all";
|
||||
|
||||
use vars qw($VERSION %info);
|
||||
$VERSION = '1.414';
|
||||
|
||||
use SQL::Statement();
|
||||
|
||||
my @Keywords = qw(
|
||||
INTEGERVAL STRING REALVAL IDENT NULLVAL PARAM OPERATOR IS AND OR ERROR
|
||||
INSERT UPDATE SELECT DELETE DROP CREATE ALL DISTINCT WHERE ORDER ASC
|
||||
DESC FROM INTO BY VALUES SET NOT TABLE CHAR VARCHAR REAL INTEGER
|
||||
PRIMARY KEY BLOB TEXT
|
||||
);
|
||||
|
||||
# FIXME: This should really use the SQL::Dialect keywords, a la:
|
||||
# return join(',', keys %{ SQL::Dialects::Foobar::get_config_as_hash()->{reserved_words} });
|
||||
sub sql_keywords
|
||||
{
|
||||
return join ',', @Keywords;
|
||||
}
|
||||
|
||||
%info = (
|
||||
20 => "N" # SQL_ACCESSIBLE_PROCEDURES
|
||||
,
|
||||
19 => "Y" # SQL_ACCESSIBLE_TABLES
|
||||
|
||||
# 0 => undef # SQL_ACTIVE_CONNECTIONS
|
||||
# 116 => undef # SQL_ACTIVE_ENVIRONMENTS
|
||||
# 1 => undef # SQL_ACTIVE_STATEMENTS
|
||||
,
|
||||
169 => 0x0000007F # SQL_AGGREGATE_FUNCTIONS
|
||||
|
||||
# SQL_AF_AVG + 1
|
||||
# SQL_AF_COUNT + 2
|
||||
# SQL_AF_MAX + 4
|
||||
# SQL_AF_MIN + 8
|
||||
# SQL_AF_SUM + 10
|
||||
# SQL_AF_DISTINCT + 20
|
||||
# SQL_AF_ALL + 40
|
||||
,
|
||||
117 => 0 # SQL_ALTER_DOMAIN -
|
||||
,
|
||||
86 => 0 # SQL_ALTER_TABLE -
|
||||
|
||||
# 10021 => undef # SQL_ASYNC_MODE
|
||||
# 120 => undef # SQL_BATCH_ROW_COUNT
|
||||
# 121 => undef # SQL_BATCH_SUPPORT
|
||||
# 82 => undef # SQL_BOOKMARK_PERSISTENCE
|
||||
,
|
||||
114 => 1 # SQL_CATALOG_LOCATION
|
||||
,
|
||||
10003 => "N" # SQL_CATALOG_NAME
|
||||
,
|
||||
41 => '.' # SQL_CATALOG_NAME_SEPARATOR
|
||||
,
|
||||
42 => "" # SQL_CATALOG_TERM
|
||||
,
|
||||
92 => 0 # SQL_CATALOG_USAGE
|
||||
|
||||
#
|
||||
# 10004 => undef # SQL_COLLATING_SEQUENCE
|
||||
,
|
||||
10004 => "ISO-8859-1" # SQL_COLLATION_SEQ
|
||||
,
|
||||
87 => "Y" # SQL_COLUMN_ALIAS
|
||||
,
|
||||
22 => 0 # SQL_CONCAT_NULL_BEHAVIOR
|
||||
|
||||
#
|
||||
# CONVERT FUNCTION NOT CURRENTLY SUPPORTED
|
||||
#
|
||||
,
|
||||
53 => 0 # SQL_CONVERT_BIGINT
|
||||
,
|
||||
54 => 0 # SQL_CONVERT_BINARY
|
||||
,
|
||||
55 => 0 # SQL_CONVERT_BIT
|
||||
,
|
||||
56 => 0 # SQL_CONVERT_CHAR
|
||||
,
|
||||
57 => 0 # SQL_CONVERT_DATE
|
||||
,
|
||||
58 => 0 # SQL_CONVERT_DECIMAL
|
||||
,
|
||||
59 => 0 # SQL_CONVERT_DOUBLE
|
||||
,
|
||||
60 => 0 # SQL_CONVERT_FLOAT
|
||||
,
|
||||
48 => 0 # SQL_CONVERT_FUNCTIONS
|
||||
,
|
||||
173 => 0 # SQL_CONVERT_GUID
|
||||
,
|
||||
61 => 0 # SQL_CONVERT_INTEGER
|
||||
,
|
||||
123 => 0 # SQL_CONVERT_INTERVAL_DAY_TIME
|
||||
,
|
||||
124 => 0 # SQL_CONVERT_INTERVAL_YEAR_MONTH
|
||||
,
|
||||
71 => 0 # SQL_CONVERT_LONGVARBINARY
|
||||
,
|
||||
62 => 0 # SQL_CONVERT_LONGVARCHAR
|
||||
,
|
||||
63 => 0 # SQL_CONVERT_NUMERIC
|
||||
,
|
||||
64 => 0 # SQL_CONVERT_REAL
|
||||
,
|
||||
65 => 0 # SQL_CONVERT_SMALLINT
|
||||
,
|
||||
66 => 0 # SQL_CONVERT_TIME
|
||||
,
|
||||
67 => 0 # SQL_CONVERT_TIMESTAMP
|
||||
,
|
||||
68 => 0 # SQL_CONVERT_TINYINT
|
||||
,
|
||||
69 => 0 # SQL_CONVERT_VARBINARY
|
||||
,
|
||||
70 => 0 # SQL_CONVERT_VARCHAR
|
||||
,
|
||||
122 => 0 # SQL_CONVERT_WCHAR
|
||||
,
|
||||
125 => 0 # SQL_CONVERT_WLONGVARCHAR
|
||||
,
|
||||
126 => 0 # SQL_CONVERT_WVARCHAR
|
||||
,
|
||||
74 => 2 # SQL_CORRELATION_NAME
|
||||
,
|
||||
127 => 0 # SQL_CREATE_ASSERTION
|
||||
,
|
||||
128 => 0 # SQL_CREATE_CHARACTER_SET
|
||||
,
|
||||
129 => 0 # SQL_CREATE_COLLATION
|
||||
,
|
||||
130 => 0 # SQL_CREATE_DOMAIN
|
||||
,
|
||||
131 => 0 # SQL_CREATE_SCHEMA
|
||||
,
|
||||
132 => 0x00000015 # SQL_CREATE_TABLE
|
||||
# SQL_CT_CREATE_TABLE => 0x00000001 +
|
||||
# SQL_CT_COMMIT_PRESERVE => 0x00000002
|
||||
# SQL_CT_COMMIT_DELETE => 0x00000004 +
|
||||
# SQL_CT_GLOBAL_TEMPORARY => 0x00000008
|
||||
# SQL_CT_LOCAL_TEMPORARY => 0x00000010 +
|
||||
# SQL_CT_CONSTRAINT_INITIALLY_DEFERRED => 0x00000020
|
||||
# SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE => 0x00000040
|
||||
# SQL_CT_CONSTRAINT_DEFERRABLE => 0x00000080
|
||||
# SQL_CT_CONSTRAINT_NON_DEFERRABLE => 0x00000100
|
||||
# SQL_CT_COLUMN_CONSTRAINT => 0x00000200
|
||||
# SQL_CT_COLUMN_DEFAULT => 0x00000400
|
||||
# SQL_CT_COLUMN_COLLATION => 0x00000800
|
||||
# SQL_CT_TABLE_CONSTRAINT => 0x00001000
|
||||
# SQL_CT_CONSTRAINT_NAME_DEFINITION => 0x00002000
|
||||
,
|
||||
133 => 0 # SQL_CREATE_TRANSLATION
|
||||
,
|
||||
134 => 0 # SQL_CREATE_VIEW
|
||||
|
||||
#
|
||||
# CURSORS NOT CURRENTLY SUPPORTED
|
||||
#
|
||||
# 23 => undef, # SQL_CURSOR_COMMIT_BEHAVIOR
|
||||
# 24 => undef, # SQL_CURSOR_ROLLBACK_BEHAVIOR
|
||||
# 10001 => undef, # SQL_CURSOR_SENSITIVITY
|
||||
#
|
||||
#, 2 => \&sql_data_source_name # SQL_DATA_SOURCE_NAME
|
||||
,
|
||||
25 => "N" # SQL_DATA_SOURCE_READ_ONLY
|
||||
,
|
||||
119 => 0 # SQL_DATETIME_LITERALS
|
||||
|
||||
#, 17 => \&sql_driver_name # SQL_DBMS_NAME
|
||||
#, 18 => \&sql_driver_ver # SQL_DBMS_VER
|
||||
# 18 => undef # SQL_DBMS_VERSION
|
||||
# 170 => undef, # SQL_DDL_INDEX
|
||||
# 26 => undef, # SQL_DEFAULT_TRANSACTION_ISOLATION
|
||||
# 26 => undef # SQL_DEFAULT_TXN_ISOLATION
|
||||
,
|
||||
10002 => "N" # SQL_DESCRIBE_PARAMETER
|
||||
|
||||
# 171 => undef # SQL_DM_VER
|
||||
# 3 => undef # SQL_DRIVER_HDBC
|
||||
# 135 => undef # SQL_DRIVER_HDESC
|
||||
# 4 => undef # SQL_DRIVER_HENV
|
||||
# 76 => undef # SQL_DRIVER_HLIB
|
||||
# 5 => undef # SQL_DRIVER_HSTMT
|
||||
#, 6 => \&sql_driver_name # SQL_DRIVER_NAME
|
||||
# 77 => undef # SQL_DRIVER_ODBC_VER
|
||||
#, 7 => \&sql_driver_ver # SQL_DRIVER_VER
|
||||
,
|
||||
136 => 0 # SQL_DROP_ASSERTION
|
||||
,
|
||||
137 => 0 # SQL_DROP_CHARACTER_SET
|
||||
,
|
||||
138 => 0 # SQL_DROP_COLLATION
|
||||
,
|
||||
139 => 0 # SQL_DROP_DOMAIN
|
||||
,
|
||||
140 => 0 # SQL_DROP_SCHEMA
|
||||
,
|
||||
141 => 1 # SQL_DROP_TABLE
|
||||
,
|
||||
142 => 0 # SQL_DROP_TRANSLATION
|
||||
,
|
||||
143 => 0 # SQL_DROP_VIEW
|
||||
|
||||
# 144 => undef # SQL_DYNAMIC_CURSOR_ATTRIBUTES1
|
||||
# 145 => undef # SQL_DYNAMIC_CURSOR_ATTRIBUTES2
|
||||
# 27 => undef # SQL_EXPRESSIONS_IN_ORDERBY
|
||||
# 8 => undef # SQL_FETCH_DIRECTION
|
||||
,
|
||||
84 => 1 # SQL_FILE_USAGE
|
||||
|
||||
# 146 => undef # SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1
|
||||
# 147 => undef # SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2
|
||||
# 81 => undef # SQL_GETDATA_EXTENSIONS
|
||||
# 88 => undef # SQL_GROUP_BY
|
||||
,
|
||||
28 => 4 # SQL_IDENTIFIER_CASE
|
||||
,
|
||||
29 => q(") # SQL_IDENTIFIER_QUOTE_CHAR
|
||||
|
||||
# 148 => undef # SQL_INDEX_KEYWORDS
|
||||
# 149 => undef # SQL_INFO_SCHEMA_VIEWS
|
||||
,
|
||||
172 => 1 # SQL_INSERT_STATEMENT
|
||||
|
||||
# 73 => undef # SQL_INTEGRITY
|
||||
# 150 => undef # SQL_KEYSET_CURSOR_ATTRIBUTES1
|
||||
# 151 => undef # SQL_KEYSET_CURSOR_ATTRIBUTES2
|
||||
,
|
||||
89 => \&sql_keywords # SQL_KEYWORDS
|
||||
,
|
||||
113 => "N" # SQL_LIKE_ESCAPE_CLAUSE
|
||||
|
||||
# 78 => undef # SQL_LOCK_TYPES
|
||||
# 34 => undef # SQL_MAXIMUM_CATALOG_NAME_LENGTH
|
||||
# 97 => undef # SQL_MAXIMUM_COLUMNS_IN_GROUP_BY
|
||||
# 98 => undef # SQL_MAXIMUM_COLUMNS_IN_INDEX
|
||||
# 99 => undef # SQL_MAXIMUM_COLUMNS_IN_ORDER_BY
|
||||
# 100 => undef # SQL_MAXIMUM_COLUMNS_IN_SELECT
|
||||
# 101 => undef # SQL_MAXIMUM_COLUMNS_IN_TABLE
|
||||
# 30 => undef # SQL_MAXIMUM_COLUMN_NAME_LENGTH
|
||||
# 1 => undef # SQL_MAXIMUM_CONCURRENT_ACTIVITIES
|
||||
# 31 => undef # SQL_MAXIMUM_CURSOR_NAME_LENGTH
|
||||
# 0 => undef # SQL_MAXIMUM_DRIVER_CONNECTIONS
|
||||
# 10005 => undef # SQL_MAXIMUM_IDENTIFIER_LENGTH
|
||||
# 102 => undef # SQL_MAXIMUM_INDEX_SIZE
|
||||
# 104 => undef # SQL_MAXIMUM_ROW_SIZE
|
||||
# 32 => undef # SQL_MAXIMUM_SCHEMA_NAME_LENGTH
|
||||
# 105 => undef # SQL_MAXIMUM_STATEMENT_LENGTH
|
||||
# 20000 => undef # SQL_MAXIMUM_STMT_OCTETS
|
||||
# 20001 => undef # SQL_MAXIMUM_STMT_OCTETS_DATA
|
||||
# 20002 => undef # SQL_MAXIMUM_STMT_OCTETS_SCHEMA
|
||||
# 106 => undef # SQL_MAXIMUM_TABLES_IN_SELECT
|
||||
# 35 => undef # SQL_MAXIMUM_TABLE_NAME_LENGTH
|
||||
# 107 => undef # SQL_MAXIMUM_USER_NAME_LENGTH
|
||||
# 10022 => undef # SQL_MAX_ASYNC_CONCURRENT_STATEMENTS
|
||||
# 112 => undef # SQL_MAX_BINARY_LITERAL_LEN
|
||||
# 34 => undef # SQL_MAX_CATALOG_NAME_LEN
|
||||
# 108 => undef # SQL_MAX_CHAR_LITERAL_LEN
|
||||
# 97 => undef # SQL_MAX_COLUMNS_IN_GROUP_BY
|
||||
# 98 => undef # SQL_MAX_COLUMNS_IN_INDEX
|
||||
# 99 => undef # SQL_MAX_COLUMNS_IN_ORDER_BY
|
||||
# 100 => undef # SQL_MAX_COLUMNS_IN_SELECT
|
||||
# 101 => undef # SQL_MAX_COLUMNS_IN_TABLE
|
||||
# 30 => undef # SQL_MAX_COLUMN_NAME_LEN
|
||||
# 1 => undef # SQL_MAX_CONCURRENT_ACTIVITIES
|
||||
# 31 => undef # SQL_MAX_CURSOR_NAME_LEN
|
||||
# 0 => undef # SQL_MAX_DRIVER_CONNECTIONS
|
||||
# 10005 => undef # SQL_MAX_IDENTIFIER_LEN
|
||||
# 102 => undef # SQL_MAX_INDEX_SIZE
|
||||
# 32 => undef # SQL_MAX_OWNER_NAME_LEN
|
||||
# 33 => undef # SQL_MAX_PROCEDURE_NAME_LEN
|
||||
# 34 => undef # SQL_MAX_QUALIFIER_NAME_LEN
|
||||
# 104 => undef # SQL_MAX_ROW_SIZE
|
||||
# 103 => undef # SQL_MAX_ROW_SIZE_INCLUDES_LONG
|
||||
# 32 => undef # SQL_MAX_SCHEMA_NAME_LEN
|
||||
# 105 => undef # SQL_MAX_STATEMENT_LEN
|
||||
# 106 => undef # SQL_MAX_TABLES_IN_SELECT
|
||||
# 35 => undef # SQL_MAX_TABLE_NAME_LEN
|
||||
# 107 => undef # SQL_MAX_USER_NAME_LEN
|
||||
# 37 => undef # SQL_MULTIPLE_ACTIVE_TXN
|
||||
# 36 => undef # SQL_MULT_RESULT_SETS
|
||||
,
|
||||
111 => "N" # SQL_NEED_LONG_DATA_LEN
|
||||
,
|
||||
75 => 1 # SQL_NON_NULLABLE_COLUMNS
|
||||
,
|
||||
85 => 1 # SQL_NULL_COLLATION
|
||||
,
|
||||
49 => 0 # SQL_NUMERIC_FUNCTIONS
|
||||
|
||||
# 9 => undef # SQL_ODBC_API_CONFORMANCE
|
||||
# 152 => undef # SQL_ODBC_INTERFACE_CONFORMANCE
|
||||
# 12 => undef # SQL_ODBC_SAG_CLI_CONFORMANCE
|
||||
# 15 => undef # SQL_ODBC_SQL_CONFORMANCE
|
||||
# 73 => undef # SQL_ODBC_SQL_OPT_IEF
|
||||
# 10 => undef # SQL_ODBC_VER
|
||||
,
|
||||
115 => 0x00000037 # SQL_OJ_CAPABILITIES
|
||||
|
||||
# 1 SQL_OJ_LEFT + left joins SUPPORTED
|
||||
# 2 SQL_OJ_RIGHT + right joins SUPPORTED
|
||||
# 4 SQL_OJ_FULL + full joins SUPPORTED
|
||||
# SQL_OJ_NESTED - nested joins not supported
|
||||
# 10 SQL_OJ_NOT_ORDERED + on clause col order not required
|
||||
# 20 SQL_OJ_INNER + inner joins SUPPORTED
|
||||
# SQL_OJ_ALL_COMPARISON_OPS - on clause comp op must be =
|
||||
,
|
||||
90 => "N" # SQL_ORDER_BY_COLUMNS_IN_SELECT
|
||||
|
||||
# 38 => undef # SQL_OUTER_JOINS
|
||||
# 115 => undef # SQL_OUTER_JOIN_CAPABILITIES
|
||||
# 39 => undef # SQL_OWNER_TERM
|
||||
# 91 => undef # SQL_OWNER_USAGE
|
||||
# 153 => undef # SQL_PARAM_ARRAY_ROW_COUNTS
|
||||
# 154 => undef # SQL_PARAM_ARRAY_SELECTS
|
||||
# 80 => undef # SQL_POSITIONED_STATEMENTS
|
||||
# 79 => undef # SQL_POS_OPERATIONS
|
||||
,
|
||||
21 => "N" # SQL_PROCEDURES
|
||||
|
||||
# 40 => undef # SQL_PROCEDURE_TERM
|
||||
# 114 => undef # SQL_QUALIFIER_LOCATION
|
||||
# 41 => undef # SQL_QUALIFIER_NAME_SEPARATOR
|
||||
# 42 => undef # SQL_QUALIFIER_TERM
|
||||
# 92 => undef # SQL_QUALIFIER_USAGE
|
||||
,
|
||||
93 => 3 # SQL_QUOTED_IDENTIFIER_CASE
|
||||
,
|
||||
11 => "N" # SQL_ROW_UPDATES
|
||||
,
|
||||
39 => "schema" # SQL_SCHEMA_TERM
|
||||
|
||||
# 91 => undef # SQL_SCHEMA_USAGE
|
||||
# 43 => undef # SQL_SCROLL_CONCURRENCY
|
||||
# 44 => undef # SQL_SCROLL_OPTIONS
|
||||
# 14 => undef # SQL_SEARCH_PATTERN_ESCAPE
|
||||
# 13 => undef # SQL_SERVER_NAME
|
||||
# 94 => undef # SQL_SPECIAL_CHARACTERS
|
||||
,
|
||||
155 => 8 # SQL_SQL92_DATETIME_FUNCTIONS
|
||||
# SQL_SDF_CURRENT_DATE => 0x00000001 +
|
||||
# SQL_SDF_CURRENT_TIME => 0x00000002 +
|
||||
# SQL_SDF_CURRENT_TIMESTAMP => 0x00000004 +
|
||||
|
||||
# 156 => undef # SQL_SQL92_FOREIGN_KEY_DELETE_RULE
|
||||
# 157 => undef # SQL_SQL92_FOREIGN_KEY_UPDATE_RULE
|
||||
# 158 => undef # SQL_SQL92_GRANT
|
||||
,
|
||||
159 => 0x00FFFFFF # SQL_SQL92_NUMERIC_VALUE_FUNCTIONS
|
||||
# All of them!
|
||||
# SQL_FN_NUM_ABS => 0x00000001 +
|
||||
# SQL_FN_NUM_ACOS => 0x00000002 +
|
||||
# SQL_FN_NUM_ASIN => 0x00000004 +
|
||||
# SQL_FN_NUM_ATAN => 0x00000008 +
|
||||
# SQL_FN_NUM_ATAN2 => 0x00000010 +
|
||||
# SQL_FN_NUM_CEILING => 0x00000020 +
|
||||
# SQL_FN_NUM_COS => 0x00000040 +
|
||||
# SQL_FN_NUM_COT => 0x00000080 +
|
||||
# SQL_FN_NUM_EXP => 0x00000100 +
|
||||
# SQL_FN_NUM_FLOOR => 0x00000200 +
|
||||
# SQL_FN_NUM_LOG => 0x00000400 +
|
||||
# SQL_FN_NUM_MOD => 0x00000800 +
|
||||
# SQL_FN_NUM_SIGN => 0x00001000 +
|
||||
# SQL_FN_NUM_SIN => 0x00002000 +
|
||||
# SQL_FN_NUM_SQRT => 0x00004000 +
|
||||
# SQL_FN_NUM_TAN => 0x00008000 +
|
||||
# SQL_FN_NUM_PI => 0x00010000 +
|
||||
# SQL_FN_NUM_RAND => 0x00020000 +
|
||||
# SQL_FN_NUM_DEGREES => 0x00040000 +
|
||||
# SQL_FN_NUM_LOG10 => 0x00080000 +
|
||||
# SQL_FN_NUM_POWER => 0x00100000 +
|
||||
# SQL_FN_NUM_RADIANS => 0x00200000 +
|
||||
# SQL_FN_NUM_ROUND => 0x00400000 +
|
||||
# SQL_FN_NUM_TRUNCATE => 0x00800000 +
|
||||
,
|
||||
160 => 0x00003E06 # SQL_SQL92_PREDICATES
|
||||
|
||||
# SQL_SP_EXISTS - -
|
||||
# SQL_SP_ISNOTNULL + + 2
|
||||
# SQL_SP_ISNULL + + 4
|
||||
# SQL_SP_MATCH_FULL - -
|
||||
# SQL_SP_MATCH_PARTIAL - -
|
||||
# SQL_SP_MATCH_UNIQUE_FULL - -
|
||||
# SQL_SP_MATCH_UNIQUE_PARTIAL - -
|
||||
# SQL_SP_OVERLAPS - -
|
||||
# SQL_SP_UNIQUE - -
|
||||
# SQL_SP_LIKE + + 200
|
||||
# SQL_SP_IN - + 400
|
||||
# SQL_SP_BETWEEN - + 800
|
||||
# SQL_SP_COMPARISON + + 1000
|
||||
# SQL_SP_QUANTIFIED_COMPARISON + + 2000
|
||||
,
|
||||
161 => 0x000001D8 # SQL_SQL92_RELATIONAL_JOIN_OPERATORS
|
||||
|
||||
# SQL_SRJO_CORRESPONDING_CLAUSE - corresponding clause not supported
|
||||
# SQL_SRJO_CROSS_JOIN - cross join not supported
|
||||
# SQL_SRJO_EXCEPT_JOIN - except join not supported
|
||||
# 8 SQL_SRJO_FULL_OUTER_JOIN + full join SUPPORTED
|
||||
# 10 SQL_SRJO_INNER_JOIN + inner join SUPPORTED
|
||||
# SQL_SRJO_INTERSECT_JOIN - intersect join not supported
|
||||
# 40 SQL_SRJO_LEFT_OUTER_JOIN + left join SUPPORTED
|
||||
# 80 SQL_SRJO_NATURAL_JOIN + natural join SUPPORTED
|
||||
# 100 SQL_SRJO_RIGHT_OUTER_JOIN + right join SUPPORTED
|
||||
# SQL_SRJO_UNION_JOIN - union join not supported
|
||||
# 162 => undef # SQL_SQL92_REVOKE
|
||||
,
|
||||
163 => 3 # SQL_SQL92_ROW_VALUE_CONSTRUCTOR
|
||||
|
||||
# SQL_SRVC_VALUE_EXPRESSION
|
||||
# SQL_SRVC_NULL
|
||||
# SQL_SRVC_DEFAULT
|
||||
# SQL_SRVC_ROW_SUBQUERY
|
||||
,
|
||||
164 => 0x000000FE # SQL_SQL92_STRING_FUNCTIONS
|
||||
|
||||
# SQL_SSF_CONVERT => 0x00000001
|
||||
# SQL_SSF_LOWER => 0x00000002 +
|
||||
# SQL_SSF_UPPER => 0x00000004 +
|
||||
# SQL_SSF_SUBSTRING => 0x00000008 +
|
||||
# SQL_SSF_TRANSLATE => 0x00000010 +
|
||||
# SQL_SSF_TRIM_BOTH => 0x00000020 +
|
||||
# SQL_SSF_TRIM_LEADING => 0x00000040 +
|
||||
# SQL_SSF_TRIM_TRAILING => 0x00000080 +
|
||||
|
||||
# 165 => undef # SQL_SQL92_VALUE_EXPRESSIONS
|
||||
# 118 => undef # SQL_SQL_CONFORMANCE
|
||||
# 166 => undef # SQL_STANDARD_CLI_CONFORMANCE
|
||||
# 167 => undef # SQL_STATIC_CURSOR_ATTRIBUTES1
|
||||
# 168 => undef # SQL_STATIC_CURSOR_ATTRIBUTES2
|
||||
# 83 => undef # SQL_STATIC_SENSITIVITY
|
||||
,
|
||||
50 => 0x00FF7FFF # SQL_STRING_FUNCTIONS
|
||||
|
||||
# SQL_FN_STR_CONCAT => 0x00000001 +
|
||||
# SQL_FN_STR_INSERT => 0x00000002 +
|
||||
# SQL_FN_STR_LEFT => 0x00000004 +
|
||||
# SQL_FN_STR_LTRIM => 0x00000008 +
|
||||
# SQL_FN_STR_LENGTH => 0x00000010 +
|
||||
# SQL_FN_STR_LOCATE => 0x00000020 +
|
||||
# SQL_FN_STR_LCASE => 0x00000040 +
|
||||
# SQL_FN_STR_REPEAT => 0x00000080 +
|
||||
# SQL_FN_STR_REPLACE => 0x00000100 +
|
||||
# SQL_FN_STR_RIGHT => 0x00000200 +
|
||||
# SQL_FN_STR_RTRIM => 0x00000400 +
|
||||
# SQL_FN_STR_SUBSTRING => 0x00000800 +
|
||||
# SQL_FN_STR_UCASE => 0x00001000 +
|
||||
# SQL_FN_STR_ASCII => 0x00002000 +
|
||||
# SQL_FN_STR_CHAR => 0x00004000 +
|
||||
# SQL_FN_STR_DIFFERENCE => 0x00008000
|
||||
# SQL_FN_STR_LOCATE_2 => 0x00010000 +
|
||||
# SQL_FN_STR_SOUNDEX => 0x00020000 +
|
||||
# SQL_FN_STR_SPACE => 0x00040000 +
|
||||
# SQL_FN_STR_BIT_LENGTH => 0x00080000 +
|
||||
# SQL_FN_STR_CHAR_LENGTH => 0x00100000 +
|
||||
# SQL_FN_STR_CHARACTER_LENGTH => 0x00200000 +
|
||||
# SQL_FN_STR_OCTET_LENGTH => 0x00400000 +
|
||||
# SQL_FN_STR_POSITION => 0x00800000 +
|
||||
|
||||
# 95 => undef # SQL_SUBQUERIES
|
||||
,
|
||||
51 => 8 # SQL_SYSTEM_FUNCTIONS
|
||||
# SQL_FN_SYS_USERNAME => 0x00000001 +
|
||||
# SQL_FN_SYS_DBNAME => 0x00000002 +
|
||||
# SQL_FN_SYS_IFNULL => 0x00000004 +
|
||||
,
|
||||
45 => "table" # SQL_TABLE_TERM
|
||||
|
||||
# 109 => undef # SQL_TIMEDATE_ADD_INTERVALS
|
||||
# 110 => undef # SQL_TIMEDATE_DIFF_INTERVALS
|
||||
,
|
||||
52 => 0x000E0203 # SQL_TIMEDATE_FUNCTIONS
|
||||
|
||||
# SQL_FN_TD_NOW => 0x00000001 +
|
||||
# SQL_FN_TD_CURDATE => 0x00000002 +
|
||||
# SQL_FN_TD_DAYOFMONTH => 0x00000004
|
||||
# SQL_FN_TD_DAYOFWEEK => 0x00000008
|
||||
# SQL_FN_TD_DAYOFYEAR => 0x00000010
|
||||
# SQL_FN_TD_MONTH => 0x00000020
|
||||
# SQL_FN_TD_QUARTER => 0x00000040
|
||||
# SQL_FN_TD_WEEK => 0x00000080
|
||||
# SQL_FN_TD_YEAR => 0x00000100
|
||||
# SQL_FN_TD_CURTIME => 0x00000200 +
|
||||
# SQL_FN_TD_HOUR => 0x00000400
|
||||
# SQL_FN_TD_MINUTE => 0x00000800
|
||||
# SQL_FN_TD_SECOND => 0x00001000
|
||||
# SQL_FN_TD_TIMESTAMPADD => 0x00002000
|
||||
# SQL_FN_TD_TIMESTAMPDIFF => 0x00004000
|
||||
# SQL_FN_TD_DAYNAME => 0x00008000
|
||||
# SQL_FN_TD_MONTHNAME => 0x00010000
|
||||
# SQL_FN_TD_CURRENT_DATE => 0x00020000 +
|
||||
# SQL_FN_TD_CURRENT_TIME => 0x00040000 +
|
||||
# SQL_FN_TD_CURRENT_TIMESTAMP => 0x00080000 +
|
||||
# SQL_FN_TD_EXTRACT => 0x00100000
|
||||
|
||||
# 46 => undef # SQL_TRANSACTION_CAPABLE
|
||||
# 72 => undef # SQL_TRANSACTION_ISOLATION_OPTION
|
||||
# 46 => undef # SQL_TXN_CAPABLE
|
||||
# 72 => undef # SQL_TXN_ISOLATION_OPTION
|
||||
# 96 => undef # SQL_UNION
|
||||
# 96 => undef # SQL_UNION_STATEMENT
|
||||
# 47 => \&sql_user_name # SQL_USER_NAME
|
||||
# 10000 => undef # SQL_XOPEN_CLI_YEAR
|
||||
);
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
NO LONGER NEEDED
|
||||
|
||||
sub sql_driver_name {
|
||||
shift->{"Driver"}->{"Name"};
|
||||
}
|
||||
|
||||
sub sql_driver_ver {
|
||||
my $dbh = shift;
|
||||
my $ver = shift;
|
||||
my $drv = 'DBD::'.$dbh->{"Driver"}->{"Name"};
|
||||
# $ver = "$drv"."::VERSION";
|
||||
# $ver = ${$ver};
|
||||
my $fmt = '%02d.%02d.%1d%1d%1d%1d'; # ODBC version string: ##.##.#####
|
||||
$ver = sprintf $fmt, split (/\./, $ver);
|
||||
return $ver . '; ss-'. $SQL::Statement::VERSION;
|
||||
}
|
||||
|
||||
sub sql_data_source_name {
|
||||
my $dbh = shift;
|
||||
return 'dbi:'.$dbh->{"Driver"}->{"Name"}.':'.$dbh->{"Name"};
|
||||
}
|
||||
sub sql_user_name {
|
||||
my $dbh = shift;
|
||||
return $dbh->{"CURRENT_USER"};
|
||||
}
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SQL::Statement::GetInfo
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# see L<DBI>
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This package contains support for C<$dbh->get_info()>.
|
||||
|
||||
=head1 INHERITANCE
|
||||
|
||||
SQL::Statement::GetInfo
|
||||
|
||||
=begin undocumented
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 sql_keywords
|
||||
|
||||
Returns the list of keywords
|
||||
|
||||
=end undocumented
|
||||
|
||||
=head1 AUTHOR & COPYRIGHT
|
||||
|
||||
This module is
|
||||
|
||||
copyright (c) 2001,2005 by Jeff Zucker and
|
||||
copyright (c) 2007-2020 by Jens Rehsack.
|
||||
|
||||
All rights reserved.
|
||||
|
||||
The module may be freely distributed under the same terms as
|
||||
Perl itself using either the "GPL License" or the "Artistic
|
||||
License" as specified in the Perl README file.
|
||||
|
||||
Jeff can be reached at: jzuckerATcpan.org
|
||||
Jens can be reached at: rehsackATcpan.org or via dbi-devATperl.org
|
||||
|
||||
=cut
|
||||
Reference in New Issue
Block a user