tldm-universe/Ardent/UV/uvodbc/getinfo.hss

196 lines
13 KiB
Plaintext
Raw Normal View History

2024-09-09 21:51:08 +00:00
/*
** getinfo.hss - SQLGetInfo() info for UniVerse ODBC Server
**
** Copyright (c) 1995 by Ardent Software, Inc.
** All Rights Reserved
** THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE
** OF Ardent Software, Inc.
** The copyright notice above does not evidence any actual or
** intended publication of source code.
*/
/* WARNING: This file is not meant to be modified by users. Modifying it
** can cause unpredictable behavior.
*/
/*
** Note: MSQuery will not behave correctly if you report a length other then
** 0 for SQL_MAX_OWNER_NAME_LEN. This note is here to remind anyone
** editing this file to only report the absolute truth. I was
** reporting SQL_MAX_OWNER_NAME_LEN as 18 in anticipation of future
** support and this caused subtle problems with MSQuery because other
** aspects of the product reported that owner name was not supported
** by this database (specifically SQLColumns() reports <NULL> for the
** TABLE_OWNER column if owners are not supported).
**
** 19 Oct 1996 DMK
** SQL_MAX_CURSOR_NAME_LEN has been changed to an arbitrary large non-zero
** number. Previously we reported zero to comply with the ODBC Spec, which
** said that zero represented no limit. However, the MS ODBC Cursor Library
** has a bug where if the driver reports zero, it calls SQLGetCursorName with
** a length of 1, and thinks that the cursor name is the empty string. Any
** attempts to prepare/execute a positioned update or delete are rejected
** with "Invalid cursor name" errors. To allow HyperStar to be used with the
** MS ODBC Cursor library, we must report a non-zero value until the library
** bug is fixed.
*/
/* 0 SQL_ACTIVE_CONNECTIONS */ ; /* Supplied by client. */
/* 1 SQL_ACTIVE_STATEMENTS */ ; /* Determined by server. */
/* 2 SQL_DATA_SOURCE_NAME */ ; /* Supplied by client. */
/* 3 SQL_DRIVER_HDBC */ ; /* Supplied by DM. */
/* 4 SQL_DRIVER_HENV */ ; /* Supplied by DM. */
/* 5 SQL_DRIVER_HSTMT */ ; /* Supplied by DM. */
/* 6 SQL_DRIVER_NAME */ ; /* Supplied by client. */
/* 7 SQL_DRIVER_VER */ ; /* Supplied by client. */
/* 8 SQL_FETCH_DIRECTION */ ; /* Supplied by client. */
/* 9 SQL_ODBC_API_CONFORMANCE */ ; /* Supplied by client. */
/* 10 SQL_ODBC_VER */ ; /* Supplied by DM. */
/* 11 SQL_ROW_UPDATES */ "N"; /* Not supported. */
/* 12 SQL_ODBC_SAG_CLI_CONFORMANCE*/ ; /* Supplied by client. */
/* 13 SQL_SERVER_NAME */ ; /* Supplied by client. */
/* 14 SQL_SEARCH_PATTERN_ESCAPE */ "\\";
/* 15 SQL_ODBC_SQL_CONFORMANCE */ 0x0001; /* SQL_OSC_CORE */
/* 16 SQL_DATABASE_NAME */ ; /* Determined by server. */
/* 17 SQL_DBMS_NAME */ "UniVerse";
/* 18 SQL_DBMS_VER */ ; /* Calculated by server. */
/* 19 SQL_ACCESSIBLE_TABLES */ "N";
/* 20 SQL_ACCESSIBLE_PROCEDURES */ "Y";
/* 21 SQL_PROCEDURES */ "Y";
/* 22 SQL_CONCAT_NULL_BEHAVIOR */ 0x0000; /* SQL_CB_NULL */
/* 23 SQL_CURSOR_COMMIT_BEHAVIOR */ 0x0001; /* SQL_CB_CLOSE */
/* 24 SQL_CURSOR_ROLLBACK_BEHAVIOR*/ 0x0001; /* SQL_CB_CLOSE */
/* 25 SQL_DATA_SOURCE_READ_ONLY */ "N";
/* 26 SQL_DEFAULT_TXN_ISOLATION */ 0x00000001; /*SQL_TXN_READ_UNCOMMITTED*/
/* 27 SQL_EXPRESSIONS_IN_ORDERBY */ "N";
/* 28 SQL_IDENTIFIER_CASE */ 0x0003; /* SQL_IC_SENSITIVE */
/* 29 SQL_IDENTIFIER_QUOTE_CHAR */ '"';
/* 30 SQL_MAX_COLUMN_NAME_LEN */ 18;
/* 31 SQL_MAX_CURSOR_NAME_LEN */ 4096; /* See note above */
/* 32 SQL_MAX_OWNER_NAME_LEN */ 0; /* Not supported. */
/* 33 SQL_MAX_PROCEDURE_NAME_LEN */ 0; /* Unknown; too unclear
to bother with. */
/* 34 SQL_MAX_QUALIFIER_NAME_LEN */ 18;
/* 35 SQL_MAX_TABLE_NAME_LEN */ 18;
/* 36 SQL_MULT_RESULT_SETS */ "N";
/* 37 SQL_MULTIPLE_ACTIVE_TXN */ "Y";
/* 38 SQL_OUTER_JOINS */ "Y"; /* Of the 4 possibilities */
/* (N,Y,P,F,) Y is closest*/
/* to the truth. It says */
/* the right thing about */
/* the nesting that we */
/* support, but we don't */
/* actually have the */
/* left-side/right-side */
/* restriction. */
/* 39 SQL_OWNER_TERM */ "Owner"; /* Not supported. */
/* 40 SQL_PROCEDURE_TERM */ "Procedure";
/* 41 SQL_QUALIFIER_NAME_SEPARATOR*/ ".";
/* 42 SQL_QUALIFIER_TERM */ "Schema";
/* 43 SQL_SCROLL_CONCURRENCY */ 0x00000000;
/* 44 SQL_SCROLL_OPTIONS */ 0x00000000;
/* 45 SQL_TABLE_TERM */ "Table";
/* 46 SQL_TXN_CAPABLE */ 0x0001; /* SQL_TC_DML */
/* 47 SQL_USER_NAME */ ; /* Supplied by client. */
/* 48 SQL_CONVERT_FUNCTIONS */ 0x00000000;
/* 49 SQL_NUMERIC_FUNCTIONS */ 0x00250000; /* SQL_FN_NUM_DEGREES
| SQL_FN_NUM_PI
| SQL_FN_NUM_RADIANS */
/* 50 SQL_STRING_FUNCTIONS */ 0x00001E5F; /* SQL_FN_STR_CONCAT
| SQL_FN_STR_INSERT
| SQL_FN_STR_LEFT
| SQL_FN_STR_LTRIM
| SQL_FN_STR_LENGTH
| SQL_FN_STR_LCASE
| SQL_FN_STR_RIGHT
| SQL_FN_STR_RTRIM
| SQL_FN_STR_SUBSTRING
| SQL_FN_STR_UCASE */
/* 51 SQL_SYSTEM_FUNCTIONS */ 0x00000003; /* SQL_FN_SYS_DBNAME
| SQL_FN_SYS_USERNAME */
/* 52 SQL_TIMEDATE_FUNCTIONS */ 0x00000000;
/* Conversion. I got this information from the functional spec of
UniVerse's CAST(), version 2.0. Notes: (1) UniVerse supports 11 SQL
types, divided into 5 categories: Integer, Exact Num, Approx Num, Char,
Date, Time. (2) If you can convert from T1 to T2, you can
convert from T2 to T1. */
/* 53 SQL_CONVERT_BIGINT */ 0x00000000; /* Not supported. */
/* 54 SQL_CONVERT_BINARY */ 0x00000000; /* Not supported. */
/* 55 SQL_CONVERT_BIT */ 0x00000000; /* Not supported. */
/* 56 SQL_CONVERT_CHAR */ 0x000181FF; /* all */
/* 57 SQL_CONVERT_DATE */ 0x00008119; /* all but Exact Num,
Approx Num, Time */
/* 58 SQL_CONVERT_DECIMAL */ 0x000001FF; /* all but Date, Time */
/* 59 SQL_CONVERT_DOUBLE */ 0x000001FF; /* all but Date, Time */
/* 60 SQL_CONVERT_FLOAT */ 0x000001FF; /* all but Date, Time */
/* 61 SQL_CONVERT_INTEGER */ 0x000181FF; /* all */
/* 62 SQL_CONVERT_LONGVARCHAR */ 0x00000000; /* Not supported. */
/* 63 SQL_CONVERT_NUMERIC */ 0x000001FF; /* all but Date, Time */
/* 64 SQL_CONVERT_REAL */ 0x000001FF; /* all but Date, Time */
/* 65 SQL_CONVERT_SMALLINT */ 0x000181FF; /* all */
/* 66 SQL_CONVERT_TIME */ 0x00010119; /* all but Exact Num,
Approx Num, Date */
/* 67 SQL_CONVERT_TIMESTAMP */ 0x00000000; /* Not supported. */
/* 68 SQL_CONVERT_TINYINT */ 0x00000000; /* Not supported. */
/* 69 SQL_CONVERT_VARBINARY */ 0x00000000; /* Not supported. */
/* 70 SQL_CONVERT_VARCHAR */ 0x000181FF; /* all */
/* 71 SQL_CONVERT_LONGVARBINARY */ 0x00000000; /* Not supported. */
/* 72 SQL_TXN_ISOLATION_OPTION */ 0x0000000F; /* SQL_TXN_REPEATABLE_READ
| SQL_TXN_READ_COMMITTED
| SQL_TXN_READ_UNCOMMITTED
| SQL_TXN_SERIALIZABLE */
/* 73 SQL_ODBC_SQL_OPT_IEF */ "Y";
/* 74 SQL_CORRELATION_NAME */ 0x0001; /* SQL_CN_DIFFERENT */
/* 75 SQL_NON_NULLABLE_COLUMNS */ 0x0001; /* SQL_NNC_NON_NULL */
/* 76 SQL_DRIVER_HLIB */ ; /* Supplied by DM. */
/* 77 SQL_DRIVER_ODBC_VER */ ; /* Supplied by client. */
/* 78 SQL_LOCK_TYPES */ 0x00000000; /* Not supported. */
/* 79 SQL_POS_OPERATIONS */ ; /* Supplied by client. */
/* 80 SQL_POSITIONED_STATEMENTS */ 0x00000000; /* Not supported. */
/* 81 SQL_GETDATA_EXTENSIONS */ ; /* Supplied by client. */
/* 82 SQL_BOOKMARK_PERSISTENCE */ ; /* Supplied by client. */
/* 83 SQL_STATIC_SENSITIVITY */ 0x00000000; /* Not supported. */
/* 84 SQL_FILE_USAGE */ ; /* Supplied by client. */
/* 85 SQL_NULL_COLLATION */ 0x0000; /* SQL_NC_HIGH */
/* 86 SQL_ALTER_TABLE */ 0x00000001; /* SQL_AT_ADD_COLUMN */
/* 87 SQL_COLUMN_ALIAS */ "Y";
/* 88 SQL_GROUP_BY */ 0x0002; /* SQL_GB_GROUP_BY */
/* _CONTAINS_SELECT */
/* 89 SQL_KEYWORDS */ "AL,AR,ASSOC,ASSOCIATED,ASSOCIATION,CALC,COL.HDG,COL.SPACES,COL.SPCS,COL.SUP,COMPILED,CONV,CONVERSION,COUNT.SUP,DATA,DBA,DBL.SPC,DEFAULT,DET.SUP,DICT,DISPLAY.NAME,DISPLAYLIKE,DISPLAYNAME,DL,DR,DYNAMIC,E.EXIST,EMPTY,EVAL,EVERY,EXISTING,EXPLAIN,EXPLICIT,FAILURE,FMT,FOOTER,FOOTING,FORMAT,GENERAL,GRAND,GRAND.TOTAL,GROUP.SIZE,HEADER,HEADING,HOME,IMPLICIT,INQUIRING,INT,LARGE.RECORD,LPTR,MARGIN,MATCHES,MATCHING,MERGE.LOAD,MINIMIZE.SPACE,MINIMUM.MODULUS,MODULO,MULTI.VALUE,MULTIVALUED,NO.INDEX,NO.PAGE,NOPAGE,NRKEY,PCT,REAL,RECORD.SIZE,REFERENCES,REPORTING,RESOURCE,ROWUNIQUE,SAID,SAMPLE,SAMPLED,SEPARATION,SEQ.NUM,SINGLE.VALUE,SINGELVALUED,SLIST,SPLIT.LOAD,SPOKEN,SUCCESS,SUPPRESS,SYNONYM,TOTAL,TYPE,UNNEST,UNORDERED,VERT,VERTICALLY";
/* 90 SQL_ORDER_BY_COLUMNS_IN_SELECT*/ "N";
/* 91 SQL_OWNER_USAGE */ 0x00000000;
/* 92 SQL_QUALIFIER_USAGE */ 0x00000001; /* SQL_QU_DML_STATEMENTS */
/* 93 SQL_QUOTED_IDENTIFIER_CASE */ 0x0003; /* SQL_IC_SENSITIVE */
/* 94 SQL_SPECIAL_CHARACTERS */ "";
/* 95 SQL_SUBQUERIES */ 0x0000001F; /* SQL_SQ_COMPARISON */
/* | SQL_SQ_EXISTS */
/* | SQL_SQ_IN */
/* | SQL_SQ_QUANTIFIED */
/* | SQL_SQ_CORRELATED */
/* _SUBQUERIES */
/* 96 SQL_UNION */ 0x00000000; /* Not supported. */
/* 97 SQL_MAX_COLUMNS_IN_GROUP_BY */ 32;
/* 98 SQL_MAX_COLUMNS_IN_INDEX */ 0;
/* 99 SQL_MAX_COLUMNS_IN_ORDER_BY */ 32;
/* 100 SQL_MAX_COLUMNS_IN_SELECT */ 0;
/* 101 SQL_MAX_COLUMNS_IN_TABLE */ 1024;
/* 102 SQL_MAX_INDEX_SIZE */ 254;
/* 103 SQL_MAX_ROW_SIZE_INCLUDES_LONG */ "N";
/* 104 SQL_MAX_ROW_SIZE */ 0;
/* 105 SQL_MAX_STATEMENT_LEN */ 0;
/* 106 SQL_MAX_TABLES_IN_SELECT */ 0;
/* 107 SQL_MAX_USER_NAME_LEN */ 0; /* Unknown. */
/* 108 SQL_MAX_CHAR_LITERAL_LEN */ 0;
/* 109 SQL_TIMEDATE_ADD_INTERVALS */ 0x00000000;
/* 110 SQL_TIMEDATE_DIFF_INTERVALS */ 0x00000000;
/* 111 SQL_NEED_LONG_DATA_LEN */ ; /* Supplied by client. */
/* 112 SQL_MAX_BINARY_LITERAL_LEN */ 0;
/* 113 SQL_LIKE_ESCAPE_CLAUSE */ "Y";
/* 114 SQL_QUALIFIER_LOCATION */ 0x0001 /* SQL_QL_START */
/* 1013 SQL_UVNLS_SQL_NULL */ ;
/* 1014 SQL_UVNLS_TEXT_MARK */ ;
/* 1015 SQL_UVNLS_SUBVALUE_MARK */ ;
/* 1016 SQL_UVNLS_VALUE_MARK */ ;
/* 1017 SQL_UVNLS_FIELD_MARK */ ;
/* 1018 SQL_UVNLS_ITEM_MARK */ ;