/* ** 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 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 */ ;