package SQL::Statement::GetInfo;
######################################################################
#
# This module is copyright (c), 2001,2005 by Jeff Zucker.
# This module is copyright (c), 2007-2017 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.412';
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-2017 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