| |
| |
| /********************************************************************** |
| // @@@ START COPYRIGHT @@@ |
| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| // @@@ END COPYRIGHT @@@ |
| **********************************************************************/ |
| #ifndef SQLCLI_HDR |
| #define SQLCLI_HDR |
| |
| /* -*-C-*- |
| ****************************************************************************** |
| * |
| * File: SQLCLI.h |
| * Description: Declarations for the NonStop SQL CLI |
| * Language: C and C++. The comment style herein must be C, not C++. |
| * |
| ****************************************************************************** |
| */ |
| |
| |
| /* Size specific types used here */ |
| typedef int Int32; |
| typedef unsigned int UInt32; |
| typedef long Int64; |
| |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif |
| |
| typedef Int32 SQLCTX_HANDLE; |
| |
| #if !defined(_MSC_VER) && !defined(_int64) |
| /* _int64 is an MSVC builtin definition, but may be used elsewhere */ |
| /* #define _int64 long long */ |
| typedef long long _int64; |
| #endif |
| |
| /* Internal structure definitions version */ |
| #define SQLCLI_CURRENT_VERSION 1 |
| #define SQLCLI_STATEMENT_VERSION_1 1 |
| #define SQLCLI_STATEMENT_VERSION_2 2 |
| |
| /* Functional conformance version */ |
| #define CLI_VERSION 100L |
| |
| /* structure to identify a module */ |
| struct SQLMODULE_ID_t { |
| Int32 version; |
| const char * module_name; |
| _int64 creation_timestamp; |
| const char * charset; /* charset (encoded in ASCII, and null terminated) */ |
| /* of the module name. */ |
| Int32 module_name_len; /* length of the module name (in bytes) */ |
| }; |
| |
| |
| /* typedef the structure so that C compilers can use it without the 'struct' */ |
| typedef struct SQLMODULE_ID_t SQLMODULE_ID; |
| |
| /* specifies the way of naming an object in the CLI */ |
| enum SQLOBJ_ID_NAME_MODE { |
| stmt_name = 1, /* statement name as char string */ |
| cursor_name = 2, /* cursor name as char string */ |
| desc_name = 3, /* descriptor name as char string */ |
| queryid_str = 4, /* Query id as char string */ |
| string_data = 50, /* string data passed in without a */ |
| /* descriptor. Used in certain cli calls */ |
| /* improve performance. */ |
| stmt_handle = 101, /* statement handle (generated by CLI) */ |
| desc_handle = 102, /* descriptor handle (generated by CLI) */ |
| stmt_via_desc = 201, /* descriptor for a statement name */ |
| curs_via_desc = 202, /* descriptor for a cursor name */ |
| desc_via_desc = 203 /* descriptor for a descriptor name */ |
| }; |
| |
| /* generic structure to pass names to the SQLCLI */ |
| struct SQLCLI_OBJ_ID { |
| Int32 version; /* set to SQLCLI_CURRENT_VERSION if no tag */ |
| Int32 name_mode; /* see enum SQLOBJ_ID_NAME_MODE below */ |
| const SQLMODULE_ID * module; /* module name (leading part of name) */ |
| const char * identifier; /* actual identifier (one part name) */ |
| void * handle; /* handle, in addition or instead of a name */ |
| const char * charset; /* charset (encoded in ASCII, and null terminated) */ |
| /* of the identifier. */ |
| Int32 identifier_len; /* length of the identifier (in bytes) */ |
| Int32 tag; /* added in R1.8, used when version==SQLCLI_STATEMENT_VERSION_2 */ |
| /* tag must be non-zero for nowaited operation */ |
| /* and zero for waited. */ |
| }; |
| |
| |
| /* structure to pass a statement identifier to the CLI */ |
| |
| typedef struct SQLCLI_OBJ_ID SQLSTMT_ID; |
| typedef struct SQLCLI_OBJ_ID SQLCLI_STMT_ID; |
| |
| /* structure to pass a descriptor name or handle to the CLI. */ |
| typedef struct SQLCLI_OBJ_ID SQLDESC_ID; |
| |
| /* specifies whether a descriptor is an input or output descriptor */ |
| enum SQLWHAT_DESC { |
| SQLWHAT_INPUT_DESC = 1, |
| SQLWHAT_OUTPUT_DESC = 2 |
| }; |
| |
| /* specifies a particular item in a descriptor entry */ |
| enum SQLDESC_ITEM_ID { |
| |
| SQLDESC_TYPE = 1, /* (numeric) data type, ANSI */ |
| SQLDESC_DATETIME_CODE = 2, /* (numeric) datetime code a la ANSI */ |
| |
| SQLDESC_LENGTH = 3, /* (numeric) length in chars, bits, ... */ |
| SQLDESC_OCTET_LENGTH = 4, /* (numeric) length in bytes */ |
| SQLDESC_PRECISION = 5, /* (numeric) precision (decimal or binary) */ |
| SQLDESC_SCALE = 7, /* (numeric) scale of the number */ |
| SQLDESC_INT_LEAD_PREC = 8, /* (numeric) interval leading field precis. */ |
| |
| SQLDESC_NULLABLE = 9, /* (numeric) 0 = NOT NULL, 1 = nullable */ |
| |
| SQLDESC_CHAR_SET = 10, /* (numeric) 1 part charset enum */ |
| SQLDESC_CHAR_SET_CAT = 11, /* (string ) catalog part of the char set */ |
| SQLDESC_CHAR_SET_SCH = 12, /* (string ) schema part of the char set */ |
| SQLDESC_CHAR_SET_NAM = 13, /* (string ) 1 part charset name */ |
| SQLDESC_COLLATION = 14, /* (numeric) collation code */ |
| SQLDESC_COLL_CAT = 15, /* (string ) catalog of the coll name */ |
| SQLDESC_COLL_SCH = 16, /* (string ) schema part of the coll name */ |
| SQLDESC_COLL_NAM = 17, /* (string ) 1 part collation name */ |
| |
| SQLDESC_NAME = 18, /* (string ) column name */ |
| SQLDESC_UNNAMED = 19, /* (numeric) 0 = named, 1 = unnamed col. */ |
| SQLDESC_HEADING = 20, /* (string ) heading of the column */ |
| |
| SQLDESC_IND_TYPE = 21, /* (numeric) data type of the indicator var */ |
| SQLDESC_VAR_PTR = 22, /* (numeric) pointer to the data */ |
| SQLDESC_IND_PTR = 23, /* (numeric) pointer to an indicator var. */ |
| |
| SQLDESC_RET_LEN = 24, /* (numeric) actual char length of the data */ |
| SQLDESC_RET_OCTET_LEN = 25, /* (numeric) actual byte len of the data */ |
| SQLDESC_VAR_DATA = 26, /* (string ) the actual data */ |
| SQLDESC_IND_DATA = 27, /* (numeric) value of the indicator */ |
| SQLDESC_TYPE_FS = 28, /* (numeric) data type, SQL/MP FS internal */ |
| |
| SQLDESC_IND_LENGTH = 29, /* (numeric) Length in chars of the ind var */ |
| SQLDESC_ROWSET_VAR_LAYOUT_SIZE = 30, |
| SQLDESC_ROWSET_IND_LAYOUT_SIZE = 31, |
| SQLDESC_ROWSET_SIZE = 32, |
| SQLDESC_ROWSET_HANDLE = 33, |
| SQLDESC_ROWSET_NUM_PROCESSED = 34, |
| SQLDESC_ROWSET_ADD_NUM_PROCESSED = 35, |
| SQLDESC_ROWSET_STATUS_PTR = 36, |
| |
| SQLDESC_TABLE_NAME = 37, |
| SQLDESC_SCHEMA_NAME = 38, |
| SQLDESC_CATALOG_NAME = 39, |
| |
| SQLDESC_PARAMETER_MODE = 40, /* (numeric) the parameter mode |
| defined in enum PARAMETER_MODE */ |
| SQLDESC_ORDINAL_POSITION = 41, /* (numeric) the formal parameter |
| ordinal position */ |
| SQLDESC_PARAMETER_INDEX = 42, /* (numeric) the actual parameter |
| position */ |
| SQLDESC_DESCRIPTOR_TYPE = 43, /* specify either the wide or narrow |
| descriptor type. |
| static descriptors default to wide, |
| dynamic descritpors default to |
| narrow. */ |
| SQLDESC_ROWSET_TYPE = 44, /* of type enum ROWSET_TYPE. |
| Defined in SQLCLIdev.h(not |
| externalized yet) |
| Specifies if this is a row-wise |
| column-wise rowset */ |
| |
| SQLDESC_ROWWISE_ROWSET_SIZE = 45, /* number of rows in this rowset */ |
| SQLDESC_ROWWISE_ROWSET_ROW_LEN = 46, /* length of each row */ |
| SQLDESC_ROWWISE_ROWSET_PTR = 47, /* ptr to the start of rowset */ |
| SQLDESC_TEXT_FORMAT = 48, /* (string) Datatype in text format */ |
| #ifdef _DEBUG |
| SQLDESC_ROWWISE_VAR_OFFSET = 49, /* testing logic offset of value in Attribute */ |
| SQLDESC_ROWWISE_IND_OFFSET = 50, /* testing logic offset of indicator in Attributes */ |
| #endif |
| SQLDESC_CASEINSENSITIVE = 51, /* (numeric) 0 = casesensitive, 1 = caseinsensitive */ |
| SQLDESC_DATA_OFFSET = 52, /* offset to actual data in the row */ |
| SQLDESC_NULL_IND_OFFSET = 53, /* offset to null indicator in the row */ |
| SQLDESC_VC_IND_LENGTH = 54, /* (numeric) Length of varchar length indicator */ |
| SQLDESC_ALIGNED_LENGTH = 55, /* total aligned length: data + null + vclen + filler */ |
| SQLDESC_ROWWISE_ROWSET_PARTN_NUM = 56 /* partition num where rwrs buffer need to go to */ |
| }; |
| |
| enum DESCRIPTOR_TYPE { |
| DESCRIPTOR_TYPE_WIDE = 0, |
| DESCRIPTOR_TYPE_NARROW = 1 |
| }; |
| |
| enum PARAMETER_MODE { |
| PARAMETER_MODE_UNDEFINED = 0, |
| PARAMETER_MODE_IN = 1, |
| PARAMETER_MODE_INOUT = 2, |
| PARAMETER_MODE_OUT = 4 |
| }; |
| |
| /* specifies the character set names corresponding to SQLDESC_CHAR_SET_NAM */ |
| #ifndef SQLCHARSETSTRING_DEFINED |
| #define SQLCHARSETSTRING_DEFINED 1 |
| |
| #define SQLCHARSETSTRING_ISO88591 "ISO88591" |
| #define SQLCHARSETSTRING_KANJI "KANJI" |
| #define SQLCHARSETSTRING_KSC5601 "KSC5601" |
| #define SQLCHARSETSTRING_UNICODE "UCS2" |
| #define SQLCHARSETSTRING_LATIN "LATIN" |
| #define SQLCHARSETSTRING_EUCJP "EUCJP" |
| #define SQLCHARSETSTRING_GB2312 "GB2312" |
| #define SQLCHARSETSTRING_GBK "GBK" |
| #define SQLCHARSETSTRING_GB18030 "GB18030" |
| #define SQLCHARSETSTRING_MB_KSC5601 "MB_KSC5601" |
| #define SQLCHARSETSTRING_SJIS "SJIS" |
| #define SQLCHARSETSTRING_UTF8 "UTF8" |
| #define SQLCHARSETSTRING_BIG5 "BIG5" |
| #define SQLCHARSETSTRING_UCS2 SQLCHARSETSTRING_UNICODE |
| #define SQLCHARSETSTRING_ISO_MAPPING "ISO_MAPPING" |
| #endif /* SQLCHARSETSTRING_DEFINED */ |
| |
| /* specifies the supported character sets (for numeric value version of |
| SQL_EXEC_GETDESCITEM() and SQL_EXEC_SETDESCITEM() corresponding to SQLDESC_CHAR_SET) |
| */ |
| #ifndef SQLCHARSET_CODE_DEFINED |
| #define SQLCHARSET_CODE_DEFINED |
| |
| enum SQLCHARSET_CODE { |
| SQLCHARSETCODE_UNKNOWN = 0, |
| SQLCHARSETCODE_ISO88591 = 1, |
| SQLCHARSETCODE_KANJI = -1, |
| SQLCHARSETCODE_KSC5601 = -2, |
| SQLCHARSETCODE_SJIS = 10, |
| SQLCHARSETCODE_UCS2 = 11, |
| SQLCHARSETCODE_EUCJP = 12, |
| SQLCHARSETCODE_BIG5 = 13, |
| SQLCHARSETCODE_GB18030 = 14, |
| SQLCHARSETCODE_UTF8 = 15, |
| SQLCHARSETCODE_MB_KSC5601 = 16, |
| SQLCHARSETCODE_GB2312 = 17, |
| SQLCHARSETCODE_GBK = 18, |
| |
| /* specifies that the user input string is in the same charset that is |
| set as the value of the ISO_MAPPING default in the defaults table. |
| Cli will pass in the input string as is to mxcmp without any translation. |
| It will also tell mxcmp to treat any unprefixed literals in the |
| input string as iso88591. */ |
| SQLCHARSETCODE_ISO_MAPPING = 9999 |
| }; |
| #endif /* SQLCHARSET_CODE_DEFINED */ |
| |
| /* specifies the supported character set conversions that are allowed */ |
| #ifndef SQLCONVCHARSET_CODE_DEFINED |
| #define SQLCONVCHARSET_CODE_DEFINED |
| |
| enum SQLCONVCHARSET_CODE { |
| SQLCONVCHARSETCODE_UNKNOWN = 0, |
| SQLCONVCHARSETCODE_UTF8 = 1, |
| SQLCONVCHARSETCODE_UTF16 = 2, |
| SQLCONVCHARSETCODE_UTF32 = 3, |
| SQLCONVCHARSETCODE_ISO88591 = 4, |
| SQLCONVCHARSETCODE_SJIS = 5, |
| SQLCONVCHARSETCODE_EUCJP = 6, |
| SQLCONVCHARSETCODE_KSC = 7, |
| SQLCONVCHARSETCODE_BIG5 = 8, |
| SQLCONVCHARSETCODE_2312 = 9, |
| SQLCONVCHARSETCODE_GB18030 = 10, |
| SQLCONVCHARSETCODE_GBK = 11 |
| }; |
| #endif /* SQLCONVCHARSET_CODE_DEFINED */ |
| |
| #define SQLCONV_REVERSE_INBYTES 2 |
| |
| /* specifies the collation names corresponding to SQLDESC_COLL_NAM */ |
| #ifndef SQLCOLLATIONSTRING_DEFINED |
| #define SQLCOLLATIONSTRING_DEFINED 1 |
| |
| #define SQLCOLLATIONSTRING_DEFAULT "DEFAULT" |
| #define SQLCOLLATIONSTRING_CZECH "CZECH" |
| #define SQLCOLLATIONSTRING_CZECH_CI "CZECH_CI" |
| #endif /* SQLCOLLATIONSTRING_DEFINED */ |
| |
| /* struct to hold one item of a descriptor entry */ |
| typedef struct { |
| Int32 item_id; /* which item (see SQLDESC_ITEM_ID) */ |
| Int32 value_num_desc_entry; /* value num's input descriptor entry num */ |
| Int32 entry; /* number of the entry */ |
| long num_val_or_len; /* numeric value or length of string */ |
| char * string_val; /* string value (if not a numeric value) */ |
| } SQLDESC_ITEM; |
| |
| /* ANSI datatype values for item descriptor areas |
| * - see ANSI-92 Spec. Section 17.1 - Table 18 |
| * - includes tandem extensions (negative values) |
| */ |
| enum SQLTYPE_CODE { |
| /* CHAR/CHARACTER */ |
| SQLTYPECODE_CHAR = 1, |
| |
| /* NUMERIC */ |
| SQLTYPECODE_NUMERIC = 2, |
| SQLTYPECODE_NUMERIC_UNSIGNED = -201, |
| |
| /* DECIMAL */ |
| SQLTYPECODE_DECIMAL = 3, |
| |
| /* DECIMAL Tandem extensions */ |
| SQLTYPECODE_DECIMAL_UNSIGNED = -301, |
| SQLTYPECODE_DECIMAL_LARGE = -302, |
| SQLTYPECODE_DECIMAL_LARGE_UNSIGNED = -303, |
| |
| /* INTEGER/INT */ |
| SQLTYPECODE_INTEGER = 4, |
| |
| /* INTEGER/INT Tandem extensions */ |
| SQLTYPECODE_INTEGER_UNSIGNED = -401, |
| SQLTYPECODE_LARGEINT = -402, |
| |
| /* SMALLINT */ |
| SQLTYPECODE_SMALLINT = 5, |
| |
| /* SMALLINT Tandem extensions */ |
| SQLTYPECODE_SMALLINT_UNSIGNED = -502, |
| |
| /* Bit Precision int, Tandem extensions */ |
| SQLTYPECODE_BPINT_UNSIGNED = -503, |
| |
| /* IEEE FLOAT (precision,scale) |
| * Internally converted to REAL or DOUBLE depending on |
| * precision |
| */ |
| SQLTYPECODE_IEEE_FLOAT = 6, |
| |
| /* IEEE REAL |
| * Tandem note: precision == 22 |
| */ |
| SQLTYPECODE_IEEE_REAL = 7, |
| |
| /* IEEE DOUBLE PRECISION |
| * Tandem note: precision == 54 |
| */ |
| SQLTYPECODE_IEEE_DOUBLE = 8, |
| |
| /* Tandem FLOAT (precision,scale) |
| * Internally converted to REAL or DOUBLE depending on |
| * precision |
| */ |
| SQLTYPECODE_TDM_FLOAT = -411, |
| SQLTYPECODE_FLOAT = SQLTYPECODE_TDM_FLOAT, |
| |
| /* Tandem REAL |
| * Tandem note: precision == 22 |
| */ |
| SQLTYPECODE_TDM_REAL = -412, |
| SQLTYPECODE_REAL = SQLTYPECODE_TDM_REAL, |
| |
| /* Tandem DOUBLE PRECISION |
| * Tandem note: precision == 54 |
| */ |
| SQLTYPECODE_TDM_DOUBLE = -413, |
| SQLTYPECODE_DOUBLE = SQLTYPECODE_TDM_DOUBLE, |
| |
| /* DATE,TIME,TIMESTAMP */ |
| SQLTYPECODE_DATETIME = 9, |
| |
| /* TIMESTAMP */ |
| SQLTYPECODE_INTERVAL = 10, |
| |
| /* no ANSI value 11 */ |
| |
| /* VARCHAR/CHARACTER VARYING */ |
| SQLTYPECODE_VARCHAR = 12, |
| |
| /* SQL/MP stype VARCHAR with length prefix: Tandem Extension */ |
| SQLTYPECODE_VARCHAR_WITH_LENGTH = -601, |
| |
| /* LONG VARCHAR/ODBC CHARACTER VARYING */ |
| SQLTYPECODE_VARCHAR_LONG = -1, /* ## NEGATIVE??? */ |
| |
| /* no ANSI value 13 */ |
| |
| /* BIT */ |
| SQLTYPECODE_BIT = 14, /* not supported */ |
| |
| /* BIT VARYING */ |
| SQLTYPECODE_BITVAR = 15 /* not supported */ |
| }; |
| |
| /* #ifndef SQLDTCODE_DATE */ |
| /* specifies the type of datetime data type */ |
| enum SQLDATETIME_CODE { |
| SQLDTCODE_DATE = 1, |
| SQLDTCODE_TIME = 2, |
| SQLDTCODE_TIMESTAMP = 3, |
| SQLDTCODE_MPDATETIME = 4 |
| }; |
| /* #endif */ |
| |
| /* specifies the type of interval data type */ |
| enum SQLINTERVAL_CODE { |
| SQLINTCODE_YEAR = 1, |
| SQLINTCODE_MONTH = 2, |
| SQLINTCODE_DAY = 3, |
| SQLINTCODE_HOUR = 4, |
| SQLINTCODE_MINUTE = 5, |
| SQLINTCODE_SECOND = 6, |
| SQLINTCODE_YEAR_MONTH = 7, |
| SQLINTCODE_DAY_HOUR = 8, |
| SQLINTCODE_DAY_MINUTE = 9, |
| SQLINTCODE_DAY_SECOND = 10, |
| SQLINTCODE_HOUR_MINUTE = 11, |
| SQLINTCODE_HOUR_SECOND = 12, |
| SQLINTCODE_MINUTE_SECOND = 13 |
| }; |
| |
| /* type codes from SQL/MP include file sql.h, for TYPE_FS |
| descriptor fields (with additional SQL/MX datatypes) */ |
| |
| #ifndef _SQLDT_ASCII_F |
| |
| #define _SQLDT_ASCII_F 0 /* CHAR datatype */ |
| #define _SQLDT_ASCII_F_UP 1 /* CHAR datatype, UPSHIFTed */ |
| #define _SQLDT_DOUBLE_F 2 /* DOUBLE CHAR datatype */ |
| #define _SQLDT_ASCII_V 64 /* VARCHAR datatype */ |
| #define _SQLDT_ASCII_V_UP 65 /* VARCHAR datatype, UPSHIFted */ |
| #define _SQLDT_DOUBLE_V 66 /* DOUBLE VARCHAR datatype */ |
| #define _SQLDT_16BIT_S 130 /* 16 bit signed binary number */ |
| /* SMALLINT, NUMERIC(1-4, <scale>) */ |
| #define _SQLDT_16BIT_U 131 /* 16 bit unsigned binary number */ |
| /* unsigned NUMERIC(1-4, <scale>) */ |
| #define _SQLDT_32BIT_S 132 /* 32 bit signed binary number */ |
| /* INTEGER, NUMERIC(5-9, <scale>) */ |
| #define _SQLDT_32BIT_U 133 /* 32 bit unsigned binary number */ |
| /* unsigned NUMERIC(5-9, <scale>) */ |
| #define _SQLDT_64BIT_S 134 /* 64 bit signed binary number */ |
| /* LARGEINT, NUMERIC(10-18,<scale>) */ |
| #define _SQLDT_TDM_REAL 140 /* 32 bit TANDEM FLOAT */ |
| #define _SQLDT_TDM_DOUBLE 141 /* 64 bit TANDEM FLOAT */ |
| #define _SQLDT_IEEE_REAL 142 /* 32 bit IEEE FLOAT (SQL/MX only) */ |
| #define _SQLDT_IEEE_DOUBLE 143 /* 64 bit IEEE FLOAT (SQL/MX only) */ |
| #define _SQLDT_DEC_U 150 /* DECIMAL datatype: unsigned */ |
| #define _SQLDT_DEC_LSS 151 /* DECIMAL datatype: */ |
| /* leading sign is separate */ |
| #define _SQLDT_DEC_LSE 152 /* DECIMAL datatype: */ |
| /* leading sign is embedded */ |
| #define _SQLDT_DEC_TSS 153 /* DECIMAL datatype: */ |
| /* trailing sign separate */ |
| #define _SQLDT_DEC_TSE 154 /* DECIMAL datatype: */ |
| /* trailing sign embedded */ |
| #define _SQLDT_NUM_BIG_U 155 /* BigNum unsigned NUMERIC datatype */ |
| /* NUMERIC(N) where N > 9 */ |
| #define _SQLDT_NUM_BIG_S 156 /* BigNum signed NUMERIC datatype */ |
| /* NUMERIC(N) where N > 18 */ |
| #define _SQLDT_DATETIME 192 /* DATETIME datatype */ |
| |
| /* |
| * INTERVAL datatype: |
| */ |
| #define _SQLDT_INT_Y_Y 195 /* YEAR TO YEAR */ |
| #define _SQLDT_INT_MO_MO 196 /* MONTH TO MONTH */ |
| #define _SQLDT_INT_Y_MO 197 /* YEAR TO MONTH */ |
| #define _SQLDT_INT_D_D 198 /* DAY TO DAY */ |
| #define _SQLDT_INT_H_H 199 /* HOUR TO HOUR */ |
| #define _SQLDT_INT_D_H 200 /* DAY TO HOUR */ |
| #define _SQLDT_INT_MI_MI 201 /* MINUTE TO MINUTE */ |
| #define _SQLDT_INT_H_MI 202 /* HOUR TO MINUTE */ |
| #define _SQLDT_INT_D_MI 203 /* DAY TO MINUTE */ |
| #define _SQLDT_INT_S_S 204 /* SECOND TO SECOND */ |
| #define _SQLDT_INT_MI_S 205 /* MINUTE TO SECOND */ |
| #define _SQLDT_INT_H_S 206 /* HOUR TO SECOND */ |
| #define _SQLDT_INT_D_S 207 /* DAY TO SECOND */ |
| #define _SQLDT_INT_F_F 208 /* FRACTION TO FRACTION */ |
| #define _SQLDT_INT_S_F 209 /* SECOND TO FRACTION */ |
| #define _SQLDT_INT_MI_F 210 /* MINUTE TO FRACTION */ |
| #define _SQLDT_INT_H_F 211 /* HOUR TO FRACTION */ |
| #define _SQLDT_INT_D_F 212 /* DAY TO FRACTION */ |
| |
| #endif /* ifndef _SQLDT_ASCII_F */ |
| |
| |
| /* constant char strings that can be used to indicate charset sets for |
| object and module names (from common/charinfo.cpp) |
| */ |
| #define MAX_CHAR_SET_STRING_LENGTH 128 |
| |
| |
| /* specifies a particular statement information item in the diagnostics area */ |
| enum SQLDIAG_STMT_INFO_ITEM_ID { |
| |
| /* ANSI */ |
| SQLDIAG_NUMBER = 1, /* (numeric) number of conditions stored */ |
| SQLDIAG_MORE = 2, /* (string ) Y = all conditions not stored */ |
| SQLDIAG_COMMAND_FUNC = 3, /* (string ) type of statement executed */ |
| SQLDIAG_DYNAMIC_FUNC = 4, /* (string ) type of prepared stmt executed */ |
| SQLDIAG_ROW_COUNT = 5, /* (numeric) number of rows affected */ |
| |
| /* SQL/MX */ |
| SQLDIAG_AVERAGE_STREAM_WAIT = 101, /* (numeric) avg wait time for stream */ |
| SQLDIAG_ROWSET_ROW_COUNT = 102, /* (numeric) array containing number |
| of rows affected by each rowset row */ |
| |
| /* SQL/MP */ |
| SQLDIAG_COST = 201, /* (numeric) estimated query cost */ |
| SQLDIAG_FIRST_FSCODE = 202, /* (numeric) first file system error */ |
| SQLDIAG_LAST_FSCODE = 203, /* (numeric) last file system error */ |
| SQLDIAG_LAST_SYSKEY = 204 /* (numeric) SYSKEY of last record inserted */ |
| }; |
| |
| /* specifies a particular condition information item in the diagnostics area */ |
| enum SQLDIAG_COND_INFO_ITEM_ID { |
| |
| /* ANSI */ |
| SQLDIAG_COND_NUMBER = 1, /* (numeric) condition number */ |
| SQLDIAG_RET_SQLSTATE = 2, /* (string ) returned SQLSTATE */ |
| SQLDIAG_CLASS_ORIG = 3, /* (string ) class origin, e.g. ISO 9075 */ |
| SQLDIAG_SUBCLASS_ORIG = 4, /* (string ) subclass origin, e.g. ISO 9075 */ |
| SQLDIAG_SERVER_NAME = 5, /* (string ) SQL server name */ |
| SQLDIAG_CONNECT_NAME = 6, /* (string ) connection name */ |
| SQLDIAG_CONSTR_CAT = 7, /* (string ) constraint catalog name */ |
| SQLDIAG_CONSTR_SCHEMA = 8, /* (string ) constraint schema name */ |
| SQLDIAG_CONSTR_NAME = 9, /* (string ) constraint name */ |
| SQLDIAG_CATALOG_NAME = 10, /* (string ) catalog name */ |
| SQLDIAG_SCHEMA_NAME = 11, /* (string ) schema name */ |
| SQLDIAG_TABLE_NAME = 12, /* (string ) table name */ |
| SQLDIAG_COLUMN_NAME = 13, /* (string ) column name */ |
| SQLDIAG_CURSOR_NAME = 14, /* (string ) cursor name */ |
| SQLDIAG_MSG_TEXT = 15, /* (string ) message text */ |
| SQLDIAG_MSG_LEN = 16, /* (numeric) message length in characters */ |
| SQLDIAG_MSG_OCTET_LEN = 17, /* (numeric) message length in bytes */ |
| SQLDIAG_TRIGGER_CAT = 18, /* (string ) trigger catalog name */ |
| SQLDIAG_TRIGGER_SCHEMA = 19, /* (string ) trigger schema name */ |
| SQLDIAG_TRIGGER_NAME = 20, /* (string ) trigger name */ |
| |
| /* ODBC */ |
| SQLDIAG_COLUMN_NUMBER = 101, /* (numeric) column number */ |
| SQLDIAG_NATIVE = 102, /* (numeric) native error code */ |
| SQLDIAG_ROW_NUMBER = 103, /* (numeric) row number */ |
| |
| /* SQL/MP */ |
| SQLDIAG_SOURCE_FILE = 201, /* (string ) source file name */ |
| SQLDIAG_LINE_NUMBER = 202, /* (numeric) source code line number */ |
| SQLDIAG_SUBSYSTEM_ID = 203, /* (string ) component that issued error */ |
| SQLDIAG_SQLCODE = 204, /* (numeric) SQLCODE of this condition */ |
| SQLDIAG_NSK_CODE = 205 /* (numeric) NSK code FExxx from NSK/FS/DP2 */ |
| }; |
| |
| /* struct to specify one condition information item of a diagnostics entry */ |
| typedef struct { |
| Int32 item_id; /* item id (SQLDIAG_COND_INFO_ITEM_ID) */ |
| Int32 cond_number_desc_entry; /* cond. num's input descriptor entry num */ |
| } SQLDIAG_COND_INFO_ITEM; |
| |
| /* struct to hold one item value of a diagnostic condition */ |
| typedef struct { |
| /* which condition and which item in that condition */ |
| SQLDIAG_COND_INFO_ITEM item_id_and_cond_number; |
| /* numeric value or length of string */ |
| Int32 * num_val_or_len; |
| /* string value (if not a numeric value) */ |
| char * string_val; |
| } SQLDIAG_COND_INFO_ITEM_VALUE; |
| |
| /* struct to return query cost information to caller after prepare of a stmt */ |
| typedef struct { |
| double cpuTime; |
| double ioTime; |
| double msgTime; |
| double idleTime; |
| double numSeqIOs; |
| double numRandIOs; |
| double totalTime; |
| double cardinality; |
| double estimatedTotalMem; |
| short resourceUsage; |
| } SQL_QUERY_COST_INFO; |
| |
| #define COMPILER_ID_LEN 28 |
| #define COMPILE_INFO_LEN 4096 |
| typedef struct { |
| _int64 compileStartTime; |
| _int64 compileEndTime; |
| char compilerId[COMPILER_ID_LEN]; |
| _int64 cmpCpuTotal; |
| _int64 cmpCpuBinder; |
| _int64 cmpCpuNormalizer; |
| _int64 cmpCpuAnalyzer; |
| _int64 cmpCpuOptimizer; |
| _int64 cmpCpuGenerator; |
| UInt32 metadataCacheHits; |
| UInt32 metadataCacheLookups; |
| Int32 queryCacheState; |
| UInt32 histogramCacheHits; |
| UInt32 histogramCacheLookups; |
| _int64 stmtHeapSize; |
| _int64 cxtHeapSize; |
| Int32 optTasks; |
| Int32 optContexts; |
| short isRecompile; |
| char compileInfo[COMPILE_INFO_LEN]; |
| Int32 compileInfoLen; |
| } SQL_COMPILATION_STATS_DATA; |
| |
| /* struct to return details about a query after prepare. |
| Will be used by caller(mxcs/wms) to determine how/when/if to run the |
| query */ |
| typedef struct { |
| UInt32 affinityNumber; |
| Int32 dop; /* degree of parallel execution */ |
| short xnNeeded; |
| short mandatoryCrossProduct; |
| short missingStats; |
| short numOfJoins; |
| short fullScanOnTable; |
| short highDp2MxBufferUsage; |
| double rowsAccessedForFullScan; |
| double dp2RowsAccessed; |
| double dp2RowsUsed; |
| SQL_COMPILATION_STATS_DATA compilationStats; |
| unsigned short statsCollectionType; /* see SQLSTATS_TYPE */ |
| unsigned short numOfUdrs; |
| unsigned short numOfBmos; |
| unsigned short overflowMode; |
| double overflowSize; |
| short queryType; |
| short subqueryType; |
| char filler[28]; |
| } SQL_QUERY_COMPILER_STATS_INFO; |
| |
| /* struct to hold statistics to be returned. */ |
| typedef struct { |
| _int64 prepareTime; |
| _int64 fixupTime; |
| _int64 freeupTime; |
| _int64 returnedRowsIOTime; |
| _int64 elapsedTime; |
| _int64 rowsAffected; |
| short compilerCacheHit; |
| short executorCacheHit; |
| } SQL_QUERY_STATISTICS; |
| |
| /* specifies an SQL transaction command */ |
| enum SQLTRANS_COMMAND { |
| /* The only commands currently supported are transaction */ |
| /* status and quiesce (prepare for a REPLY call). */ |
| /* Use static SQL or a dynamic prepare or execute immediate to */ |
| /* perform all other SQL transaction statements. */ |
| SQLTRANS_BEGIN = 1, |
| SQLTRANS_COMMIT = 2, |
| SQLTRANS_ROLLBACK = 3, |
| /* SQLTRANS_ROLLBACK_WAITED = 4, */ |
| SQLTRANS_STATUS = 5, |
| /* SQLTRANS_SET = 6, */ |
| SQLTRANS_QUIESCE = 7, |
| /* currently, called only by mxci after a BREAK key is hit |
| to abort any implicit transactions started by cli */ |
| SQLTRANS_ROLLBACK_IMPLICIT_XN = 8, |
| |
| SQLTRANS_BEGIN_WITH_DP2_XNS = 9 |
| }; |
| |
| /* specifies the type/format of an AUTHID */ |
| enum SQLAUTHID_TYPE { |
| SQLAUTHID_TYPE_ASCII_USERNAME = 7777, |
| SQLAUTHID_TYPE_ASCII_USERROLE = 7799, |
| SQLAUTHID_TYPE_ASCII_SID = 8888, |
| SQLAUTHID_TYPE_INVALID = 9999 |
| }; |
| |
| /* struct to specify an array of pointer pairs without using a va list.*/ |
| struct SQLCLI_PTR_PAIRS { |
| void * var_ptr; /* pointer to the data variable */ |
| void * ind_ptr; /* pointer to indicator variable; -1 is NULL */ |
| }; |
| |
| /* struct to specify an array of quad fields without using a va list. */ |
| struct SQLCLI_QUAD_FIELDS { |
| Int32 var_layout; /* data variable layout size */ |
| void * var_ptr; /* pointer to the data variable */ |
| Int32 ind_layout; /* indicator variable layout size */ |
| void * ind_ptr; /* pointer to indicator variable; -1 is NULL */ |
| }; |
| |
| /* For the GetStmtAttr and SetStmtAttr interfaces. */ |
| enum SQLATTRCURSOR_TYPE { |
| SQL_READONLY_CURSOR = 0, |
| SQL_UPDATABLE_CURSOR = 1 |
| }; |
| |
| enum SQLATTR_TYPE { |
| SQL_ATTR_CURSOR_HOLDABLE = -3, |
| SQL_ATTR_INPUT_ARRAY_MAXSIZE = -2, |
| SQL_ATTR_QUERY_TYPE = -4, |
| SQL_ATTR_ROWSET_ATOMICITY = -5, |
| SQL_ATTR_NOT_ATOMIC_FAILURE_LIMIT = -6, |
| SQL_ATTR_XN_NEEDED = -7, |
| SQL_ATTR_UNIQUE_STMT_ID = -8, |
| SQL_ATTR_UNIQUE_QUERY_ID = -8, |
| SQL_ATTR_MAX_RESULT_SETS = -9, |
| SQL_ATTR_UNIQUE_STMT_ID_NO_DIAGS = -10, |
| SQL_ATTR_RS_PROXY_SYNTAX = -11, |
| SQL_ATTR_CONSUMER_QUERY_TEXT = -12, |
| SQL_ATTR_CONSUMER_CPU = -13, |
| SQL_ATTR_COPY_STMT_ID_TO_DIAGS = -14, |
| SQL_ATTR_PARENT_QID = -15, |
| SQL_ATTR_CURSOR_UPDATABLE = -16, |
| SQL_ATTR_SUBQUERY_TYPE = -17 |
| }; |
| |
| /* A container for a single statement attribute. For use with |
| the SQL_EXEC_GetStmtAttrs function that returns multiple |
| attributes in one call. */ |
| typedef struct { |
| Int32 attr_type; /* IN: which attr, from the */ |
| /* SQLATTR_TYPE enum */ |
| Int32 index; /* IN: optional index if attr */ |
| /* is a collection */ |
| Int32 *numeric_value; /* INOUT: if attr is numeric, address */ |
| /* of target buffer for the */ |
| /* attr value */ |
| char *string_value; /* INOUT: if attr is string, address */ |
| /* of target buffer for the */ |
| /* attr value */ |
| Int32 max_string_len; /* IN: if attr is string, max len */ |
| /* of buffer pointed to by */ |
| /* string_val */ |
| Int32 *len_of_item; /* INOUT OPTIONAL: if attr is string, */ |
| /* address of target buffer to */ |
| /* hold actual len of item */ |
| /* returned. If error returned */ |
| /* because string_value buffer */ |
| /* too small then len_of_item */ |
| /* holds the required size */ |
| } SQLSTMT_ATTR; |
| |
| enum SQLATTRHOLDABLE_TYPE { |
| SQL_NONHOLDABLE = 0, |
| SQL_HOLDABLE = 1 |
| }; |
| |
| enum SESSIONATTR_TYPE { |
| SESSION_ATTR_ID = 1, |
| SESSION_PARENT_QID = 2, |
| SESSION_DATABASE_USER_NAME = 3, |
| SESSION_DATABASE_USER_ID = 4, |
| SESSION_SESSION_USER_ID = 5, |
| SESSION_DATABASE_USER = 6, |
| SESSION_EXTERNAL_USER_NAME = 7 |
| }; |
| |
| /* this list and their values must be the same as the |
| enum QueryType in comexe/ComTdbRoot.h */ |
| enum SQLATTRQUERY_TYPE { |
| SQL_OTHER = -1, |
| SQL_UNKNOWN = 0, |
| SQL_SELECT_UNIQUE = 1, |
| SQL_SELECT_NON_UNIQUE = 2, |
| SQL_INSERT_UNIQUE = 3, |
| SQL_INSERT_NON_UNIQUE = 4, |
| SQL_UPDATE_UNIQUE = 5, |
| SQL_UPDATE_NON_UNIQUE = 6, |
| SQL_DELETE_UNIQUE = 7, |
| SQL_DELETE_NON_UNIQUE = 8, |
| SQL_CONTROL = 9, |
| SQL_SET_TRANSACTION = 10, |
| SQL_SET_CATALOG = 11, |
| SQL_SET_SCHEMA = 12, |
| SQL_CALL_NO_RESULT_SETS = 13, |
| SQL_CALL_WITH_RESULT_SETS = 14, |
| SQL_SP_RESULT_SET = 15, |
| SQL_INSERT_RWRS = 16, |
| |
| /* same value as RWRS insert. identifier rowset_sidetree is obsolete and |
| will be removed in future when no callers use this identifier.*/ |
| SQL_INSERT_ROWSET_SIDETREE = 16, |
| |
| /* utilities, like DUP, POPULATE, etc...implemented in catman. See |
| sqlcomp/parser.cpp for complete list */ |
| SQL_CAT_UTIL = 17, |
| |
| /* complex util statements implemented in executor by converting them |
| to multiple sql queries. See optimizer/RelMisc.h, class ExeUtilExpr */ |
| SQL_EXE_UTIL = 18 |
| |
| }; |
| |
| enum SQLATTR_SUBQUERY_TYPE |
| { |
| SQL_STMT_NA = 0, |
| SQL_STMT_CTAS = 1, |
| SQL_STMT_REPLICATE = 2 |
| }; |
| |
| |
| enum SQLATTRATOMIC_TYPE { |
| SQL_NOT_SPECIFIED = 0, |
| SQL_ATOMIC = 1, |
| SQL_NOT_ATOMIC = 2 |
| }; |
| |
| enum SQLSTMT_STATE_TYPE { |
| SQLSTMT_STATE_INITIAL = 0, |
| SQLSTMT_STATE_OPEN = 1, |
| SQLSTMT_STATE_EOF = 2, |
| SQLSTMT_STATE_CLOSE = 3, |
| SQLSTMT_STATE_DEALLOCATED = 4, |
| SQLSTMT_STATE_FETCH = 5, |
| SQLSTMT_STATE_CLOSE_TABLES = 6, |
| SQLSTMT_STATE_PREPARE = 7, |
| SQLSTMT_STATE_PROCESS_ENDED = 8, |
| SQLSTMT_RELEASE_TRANS = 9, |
| SQLSTMT_SUSPENDED = 10, |
| SQLSTMT_STATE_UNKNOWN |
| }; |
| |
| enum SQLSTATS_TYPE { |
| SQLCLI_SAME_STATS = 999, |
| SQLCLI_NO_STATS = 0, |
| /* SQLCLI_DEFAULT_STATS means the statistics is merged based on the statistics view type */ |
| SQLCLI_DEFAULT_STATS = 0, |
| SQLCLI_ACCUMULATED_STATS = 2, |
| SQLCLI_PERTABLE_STATS = 3, |
| SQLCLI_ALL_STATS = 4, |
| SQLCLI_OPERATOR_STATS = 5, |
| SQLCLI_CPU_OFFENDER_STATS = 6, |
| SQLCLI_QID_DETAIL_STATS = 7, |
| SQLCLI_DISK_OFFENDER_STATS = 8, |
| SQLCLI_RMS_INFO_STATS = 9, |
| SQLCLI_PROGRESS_STATS = 10 |
| }; |
| |
| /* For the GetUniqueQueryIdAttrs interfaces. */ |
| |
| enum UNIQUEQUERYID_ATTR_TYPE { |
| /* segment number */ |
| UNIQUEQUERYID_SEGMENTNUM = 0, |
| |
| /* segment name: max 10 bytes */ |
| UNIQUEQUERYID_SEGMENTNAME = 1, |
| |
| /* cpu number */ |
| UNIQUEQUERYID_CPU = 2, |
| |
| /* pin of master exe process */ |
| UNIQUEQUERYID_PIN = 3, |
| |
| /* starttime of master exe process */ |
| UNIQUEQUERYID_EXESTARTTIME = 4, |
| |
| /* unique session number */ |
| UNIQUEQUERYID_SESSIONNUM = 5, |
| |
| /* null terminated user name: max 32 bytes */ |
| UNIQUEQUERYID_USERNAME = 6, |
| |
| /* null terminated session name: max 24 bytes */ |
| UNIQUEQUERYID_SESSIONNAME = 7, |
| |
| /* unique query num within a process */ |
| UNIQUEQUERYID_QUERYNUM = 8, |
| |
| /* null terminated user statement name: max 110 bytes */ |
| UNIQUEQUERYID_STMTNAME = 9, |
| |
| /* null terminated session id: max 104 bytes */ |
| UNIQUEQUERYID_SESSIONID = 10 |
| }; |
| |
| typedef struct { |
| Int32 attr_type; /* IN: which attr (UNIQUEQUERYID_ATTR_TYPE) */ |
| _int64 num_val_or_len; /* IN: if string value, max length of string |
| to return in string_val |
| Note: string_val buffer size should be one more than |
| num_val_or_len to allow for a null terminator |
| OUT: if numeric value, the value. |
| if string value, the actual length of string_val returned */ |
| char * string_val; /* OUT: if string value, null terminated string */ |
| } UNIQUEQUERYID_ATTR; |
| |
| #define MAX_TDB_NAME_LEN 35 |
| |
| enum STATS_REQ_TYPE { |
| SQLCLI_STATS_REQ_NONE = -1, |
| SQLCLI_STATS_REQ_STMT = 0, |
| SQLCLI_STATS_REQ_CPU = 1, |
| SQLCLI_STATS_REQ_PID = 2, |
| SQLCLI_STATS_REQ_QID = 3, |
| SQLCLI_STATS_REQ_QID_CURRENT = 4, |
| SQLCLI_STATS_REQ_CPU_OFFENDER = 5, |
| SQLCLI_STATS_REQ_QID_DETAIL = 6, |
| SQLCLI_STATS_REQ_DISK_OFFENDER = 7, |
| SQLCLI_STATS_REQ_RMS_INFO = 8 |
| }; |
| |
| enum SCRATCH_OVERFLOW_MODE { |
| SQLCLI_OFM_DISK_TYPE = 0, |
| SQLCLI_OFM_SSD_TYPE = 1, |
| SQLCLI_OFM_MMAP_TYPE = 2 |
| }; |
| |
| typedef struct { |
| short tdb_id; |
| short stats_type; |
| char tdb_name[MAX_TDB_NAME_LEN+1]; |
| } SQLSTATS_DESC; |
| |
| /* SQLSTATS_DESC stats type returned for various SQLSTATS_TYPE |
| SQLSTATS_TYPE Returned SQLSTATS_DESC_STATS_TYPEs |
| |
| SQLCLI_ACCUMULATED_STATS SQLSTATS_DESC_MASTER_STATS |
| SQLSTATS_DESC_MEAS_STATS |
| |
| SQLCLI_PERTABLE_STATS SQLSTATS_DESC_MASTER_STATS |
| SQLSTATS_DESC_ROOT_OPER_STATS |
| SQLSTATS_DESC_PERTABLE_STATS as many as the no. of tables in the query |
| |
| SQLCLI_OPERATOR_STATS SQLSTATS_DESC_MASTER_STATS |
| SQLSTATS_DESC_ROOT_OPER_STATS for every ESP root or master root |
| SQLSTATS_DESC_PERTABLE_STATS for all DP2 operators |
| SQLSTATS_DESC_PERTABLE_STATS for all PA operators |
| SQLSTATS_DESC_BMO_STATS for sort, hash join and hash group by operators |
| SQLSTATS_DESC_UDR_BASE_STATS for UDR |
| SQLSTATS_DESC_OPER_STATS for the rest |
| |
| */ |
| enum SQLSTATS_DESC_STATS_TYPE { |
| SQLSTATS_DESC_OPER_STATS = 0, |
| SQLSTATS_DESC_ROOT_OPER_STATS = 1, |
| SQLSTATS_DESC_DP2_LEAF_STATS = 2, |
| SQLSTATS_DESC_DP2_INSERT_STATS = 3, |
| SQLSTATS_DESC_PARTITION_ACCESS_STATS = 4, |
| SQLSTATS_DESC_GROUP_BY_STATS = 5, |
| SQLSTATS_DESC_HASH_JOIN_STATS = 6, |
| SQLSTATS_DESC_PROBE_CACHE_STATS = 7, |
| SQLSTATS_DESC_ESP_STATS = 8, |
| SQLSTATS_DESC_SPLIT_TOP_STATS = 9, |
| SQLSTATS_DESC_MEAS_STATS = 10, |
| SQLSTATS_DESC_PERTABLE_STATS = 11, |
| SQLSTATS_DESC_SORT_STATS = 12, |
| SQLSTATS_DESC_UDR_STATS = 13, |
| SQLSTATS_DESC_NO_OP = 14, |
| SQLSTATS_DESC_MASTER_STATS = 15 , |
| SQLSTATS_DESC_RMS_STATS = 16, |
| SQLSTATS_DESC_BMO_STATS = 17, |
| SQLSTATS_DESC_UDR_BASE_STATS = 18, |
| SQLSTATS_DESC_REPLICATE_STATS = 19, |
| SQLSTATS_DESC_REPLICATOR_STATS = 20 |
| }; |
| |
| |
| enum SQLSTATS_ITEM_ID { |
| /* SQLSTATS_ITEM_ID for SQLSTATS_DESC_MASTER_STATS */ |
| SQLSTATS_QUERY_ID = 0, |
| SQLSTATS_COMP_START_TIME = 1, |
| SQLSTATS_COMP_END_TIME = 2, |
| SQLSTATS_COMP_TIME = 3, |
| SQLSTATS_EXECUTE_START_TIME = 4, |
| SQLSTATS_FIRST_ROW_RET_TIME = 5, |
| SQLSTATS_EXECUTE_END_TIME = 6, |
| SQLSTATS_EXECUTE_TIME = 7, |
| SQLSTATS_FIXUP_TIME = 8, |
| SQLSTATS_STMT_STATE = 9, |
| SQLSTATS_ROWS_AFFECTED = 10, |
| SQLSTATS_SQL_ERROR_CODE = 11, |
| SQLSTATS_STATS_ERROR_CODE = 12, |
| SQLSTATS_QUERY_TYPE = 13, |
| SQLSTATS_PARENT_QUERY_ID = 14, |
| SQLSTATS_NUM_SQLPROCS = 15, |
| SQLSTATS_NUM_CPUS = 16, |
| SQLSTATS_SOURCE_STR = 17, |
| SQLSTATS_MASTER_PRIORITY = 18, |
| SQLSTATS_TRANSID = 19, |
| SQLSTATS_CHILD_QUERY_ID = 200, |
| SQLSTATS_RECLAIM_SPACE_COUNT = 201, |
| SQLSTATS_SUBQUERY_TYPE = 202, |
| SQLSTATS_PARENT_QUERY_SYSTEM = 203, |
| /* The following 3 enums are moved from operator level stats |
| to here, however, the enum values are not changed to provide |
| backward compatibility */ |
| SQLSTATS_AQR_LAST_ERROR= 86, |
| SQLSTATS_AQR_NUM_RETRIES=87, |
| SQLSTATS_AQR_DELAY_BEFORE_RETRY=88, |
| /* SQLSTATS_ITEM_ID for SQLSTATS_DESC_MASTER_STATS and SQLSTATS_DESC_PERTABLE_STATS */ |
| SQLSTATS_EST_ROWS_ACCESSED = 20, |
| SQLSTATS_EST_ROWS_USED = 21, |
| SQLSTATS_SOURCE_STR_LEN = 22, |
| SQLSTATS_ROWS_RETURNED = 23, |
| SQLSTATS_ROWS_RETURNED_TIME = 24, |
| /* SQLSTATS_ITEM_ID for SQLSTATS_DESC_MEAS_STATS and SQLSTATS_DESC_PERTABLE_STATS */ |
| SQLSTATS_ACT_ROWS_ACCESSED = 30, |
| SQLSTATS_ACT_ROWS_USED = 31, |
| SQLSTATS_MSG_COUNT = 32, |
| SQLSTATS_MSG_BYTES = 33, |
| SQLSTATS_STATS_BYTES = 34, |
| SQLSTATS_DISK_IOS = 35, |
| SQLSTATS_LOCK_WAITS = 36, |
| SQLSTATS_LOCK_ESCALATIONS = 37, |
| SQLSTATS_DP2_CPU_BUSY_TIME = 38, |
| |
| SQLSTATS_SQL_CPU_BUSY_TIME = 50, |
| SQLSTATS_SQL_SPACE_ALLOC = 51, |
| SQLSTATS_SQL_SPACE_USED = 52, |
| SQLSTATS_SQL_HEAP_ALLOC = 53, |
| SQLSTATS_SQL_HEAP_USED = 54, |
| SQLSTATS_EID_SPACE_ALLOC = 55, |
| SQLSTATS_EID_SPACE_USED = 56, |
| SQLSTATS_EID_HEAP_ALLOC = 57, |
| SQLSTATS_EID_HEAP_USED = 58, |
| SQLSTATS_OPENS = 59, |
| SQLSTATS_OPEN_TIME = 60, |
| SQLSTATS_PROCESS_CREATED = 61, |
| SQLSTATS_PROCESS_CREATE_TIME = 62, |
| SQLSTATS_REQ_MSG_CNT = 63, |
| SQLSTATS_REQ_MSG_BYTES = 64, |
| SQLSTATS_REPLY_MSG_CNT = 65, |
| SQLSTATS_REPLY_MSG_BYTES = 66, |
| SQLSTATS_PHYS_MEM_IN_USE = 67, |
| |
| /* SQLSTATS_ITEM_ID for SQLSTATS_DESC_PERTABLE_STATS */ |
| SQLSTATS_TABLE_ANSI_NAME = 70, |
| /* SQLSTATS_ITEM_ID for Operator level Stats */ |
| SQLSTATS_EXPLAIN_NODE_ID = 80, |
| SQLSTATS_NUM_CALLS = 81, |
| SQLSTATS_TDB_ID = 82, |
| SQLSTATS_TDB_NAME = 83, |
| SQLSTATS_LEFT_CHILD = 84, |
| SQLSTATS_RIGHT_CHILD = 85, |
| /* enum 86, 87 and 88 are moved to master stats */ |
| SQLSTATS_PARENT_TDB_ID = 89, |
| SQLSTATS_FRAG_NUM = 90, |
| SQLSTATS_OPER_CPU_TIME =91, |
| SQLSTATS_INST_NUM = 92, |
| SQLSTATS_INST_ID = 93, |
| SQLSTATS_DETAIL = 94, |
| /* SQLSTATS_ITEM_ID for RMS_STATS */ |
| SQLSTATS_RMS_VER = 100, |
| SQLSTATS_NODE_NAME = 101, |
| SQLSTATS_CPU = 102, |
| SQLSTATS_SSCP_PID = 103, |
| SQLSTATS_SSCP_PRIORITY = 104, |
| SQLSTATS_SSCP_TIMESTAMP = 105, |
| SQLSTATS_SSMP_PID = 106, |
| SQLSTATS_SSMP_PRIORITY = 107, |
| SQLSTATS_SSMP_TIMESTAMP = 108, |
| SQLSTATS_STORE_SRC_LEN = 109, |
| SQLSTATS_RMS_ENV_TYPE = 110, |
| SQLSTATS_STATS_HEAP_ALLOC = 111, |
| SQLSTATS_STATS_HEAP_USED = 112, |
| SQLSTATS_STATS_HEAP_HIGH_WM = 113, |
| SQLSTATS_PROCESSES_REGD = 114, |
| SQLSTATS_QUERIES_REGD = 115, |
| SQLSTATS_RMS_SEMAPHORE_PID = 116, |
| SQLSTATS_SSCPS_OPENED = 117, |
| SQLSTATS_SSCPS_DELETED_OPENS = 118, |
| SQLSTATS_LAST_GC_TIME = 119, |
| SQLSTATS_QUERIES_GCED_IN_LAST_RUN = 120, |
| SQLSTATS_TOTAL_QUERIES_GCED = 121, |
| SQLSTATS_SSMP_REQ_MSG_CNT = 122, |
| SQLSTATS_SSMP_REQ_MSG_BYTES = 123, |
| SQLSTATS_SSMP_REPLY_MSG_CNT = 124, |
| SQLSTATS_SSMP_REPLY_MSG_BYTES = 125, |
| SQLSTATS_SSCP_REQ_MSG_CNT = 126, |
| SQLSTATS_SSCP_REQ_MSG_BYTES = 127, |
| SQLSTATS_SSCP_REPLY_MSG_CNT = 128, |
| SQLSTATS_SSCP_REPLY_MSG_BYTES = 129, |
| SQLSTATS_RMS_STATS_RESET_TIMESTAMP = 130, |
| /* SQLSTATS_ITEM_ID for BMO_STATS */ |
| SQLSTATS_BMO_HEAP_USED = 150, |
| SQLSTATS_BMO_HEAP_ALLOC = 151, |
| SQLSTATS_BMO_HEAP_WM = 152, |
| SQLSTATS_BMO_SPACE_BUFFER_SIZE = 153, |
| SQLSTATS_BMO_SPACE_BUFFER_COUNT = 154, |
| SQLSTATS_OVEFLOW_PHASE_STARTTIME = 155, |
| SQLSTATS_OVERFLOW_PHASE = 156, |
| SQLSTATS_SCRATCH_FILE_COUNT = 157, |
| SQLSTATS_SCRATCH_BUFFER_BLOCK_SIZE = 158, |
| SQLSTATS_SCRATCH_BUFFER_BLOCKS_READ = 159, |
| SQLSTATS_SCRATCH_BUFFER_BLOCKS_WRITTEN = 160, |
| SQLSTATS_SCRATCH_OVERFLOW_MODE = 161, |
| SQLSTATS_SCRATCH_READ_COUNT = 162, |
| SQLSTATS_SCRATCH_WRITE_COUNT = 163, |
| /* SQLSTATS_ITEM_ID for UDR_BASE_STATS */ |
| SQLSTATS_UDR_CPU_BUSY_TIME = 170, |
| SQLSTATS_RECENT_REQ_TS = 171, |
| SQLSTATS_RECENT_REPLY_TS = 172, |
| SQLSTATS_UDR_SERVER_ID = 173, |
| SQLSTATS_CANCEL_TIME_ID = 174, |
| SQLSTATS_QUERY_SUSPENDED = 175, |
| SQLSTATS_SUSPEND_TIME_ID = 176, |
| /* SQLSTATS_ITEM_ID for REPLICATE_STATS */ |
| SQLSTATS_REPL_ANSI_NAME = 180, |
| SQLSTATS_REPL_SOURCE_SYSTEM = 181, |
| SQLSTATS_REPL_TARGET_SYSTEM = 182, |
| SQLSTATS_REPL_OBJECT_TYPE = 183, |
| SQLSTATS_REPL_TYPE = 184, |
| SQLSTATS_REPL_NUM_PARTNS = 185, |
| SQLSTATS_REPL_PHASE0_START_TIME = 186, |
| SQLSTATS_REPL_PHASE0_END_TIME = 187, |
| SQLSTATS_REPL_PHASE0_ELAPSED_TIME = 188, |
| SQLSTATS_REPL_PHASE1_START_TIME = 189, |
| SQLSTATS_REPL_PHASE1_END_TIME = 190, |
| SQLSTATS_REPL_PHASE1_ELAPSED_TIME = 191, |
| SQLSTATS_REPL_PHASE2_START_TIME = 192, |
| SQLSTATS_REPL_PHASE2_END_TIME = 193, |
| SQLSTATS_REPL_PHASE2_ELAPSED_TIME = 194, |
| SQLSTATS_REPL_PHASE3_START_TIME = 195, |
| SQLSTATS_REPL_PHASE3_END_TIME = 196, |
| SQLSTATS_REPL_PHASE3_ELAPSED_TIME = 197, |
| SQLSTATS_REPL_PHASE4_START_TIME = 198, |
| SQLSTATS_REPL_PHASE4_END_TIME = 199, |
| SQLSTATS_REPL_PHASE4_ELAPSED_TIME = 220, |
| SQLSTATS_REPL_PHASE5_START_TIME = 221, |
| SQLSTATS_REPL_PHASE5_END_TIME = 222, |
| SQLSTATS_REPL_PHASE5_ELAPSED_TIME = 223, |
| SQLSTATS_REPL_PHASE6_START_TIME = 224, |
| SQLSTATS_REPL_PHASE6_END_TIME = 225, |
| SQLSTATS_REPL_PHASE6_ELAPSED_TIME = 226, |
| SQLSTATS_REPL_ROWS_READ = 227, |
| SQLSTATS_REPL_TOTAL_BLOCKS = 228, |
| SQLSTATS_REPL_BLOCKS_REPLICATED = 229, |
| SQLSTATS_REPL_PERCENT_DONE = 230, |
| SQLSTATS_REPL_AVG_COMP_RATIO = 231, |
| SQLSTATS_REPL_AVG_COMP_TIME = 232, |
| SQLSTATS_REPL_AVG_UNCOMP_TIME = 233, |
| SQLSTATS_REPL_STATUS = 234, |
| SQLSTATS_REPL_SOURCE_FILE_NAME = 235, |
| SQLSTATS_REPL_TARGET_FILE_NAME = 236, |
| SQLSTATS_REPL_BLOCK_LEN = 237, |
| SQLSTATS_REPL_TOTAL_COMPRESS_TIME = 238, |
| SQLSTATS_REPL_TOTAL_COMPRESS_BYTES = 239, |
| SQLSTATS_REPL_TOTAL_UNCOMPRESS_TIME = 240, |
| SQLSTATS_REPL_TOTAL_UNCOMPRESS_BYTES = 241, |
| SQLSTATS_REPL_CONCURRENCY = 242, |
| SQLSTATS_REPL_COMPLETED_PARTNS = 243, |
| SQLSTATS_REPL_BLOCKS_READ = 244 |
| }; |
| |
| typedef struct { |
| short tdb_id; |
| short stats_type; |
| short statsItem_id; /* SQLSTATS_ITEM_ID */ |
| _int64 int64_value; |
| double double_value; |
| char *str_value; |
| Int32 str_max_len; |
| Int32 str_ret_len; |
| Int32 error_code; |
| } SQLSTATS_ITEM; |
| |
| |
| /* used in call to SQLCLI_Prepare2 */ |
| enum PREPARE_FLAGS |
| { |
| /* A standalone and not an explicitely PREPAREd query */ |
| PREPARE_STANDALONE_QUERY = 0x0001, |
| |
| /* prepare being issued as part of an internal AQR */ |
| PREPARE_AUTO_QUERY_RETRY = 0x0002, |
| |
| /* prepare for old style automatic recomp */ |
| PREPARE_RECOMP = 0x0004, |
| |
| /* prepare should deallocate and reload cache in mxcmp */ |
| PREPARE_WITH_DECACHE = 0x0008, |
| |
| /* prepare should not use query text cache */ |
| PREPARE_NO_TEXT_CACHE = 0x0010, |
| |
| /* set when prepare is redriven for nowaited case */ |
| PREPARE_NOT_A_NEW_OPERATION = 0x0020 |
| }; |
| |
| Int32 SQL_EXEC_AllocDesc ( |
| /*INOUT*/ SQLDESC_ID * desc_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor); |
| |
| Int32 SQL_EXEC_ALLOCDESC ( |
| /*INOUT*/ SQLDESC_ID * desc_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor); |
| |
| Int32 SQL_EXEC_AllocDescBasic ( |
| /*INOUT*/ SQLDESC_ID * desc_id, |
| /*IN OPTIONAL*/ Int32 max_entries); |
| |
| |
| |
| Int32 SQL_EXEC_AssocFileNumber ( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ short file_number); |
| |
| Int32 SQL_EXEC_ASSOCFILENUMBER ( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ short file_number); |
| Int32 SQL_EXEC_GetDiskMaxSize ( |
| /*IN*/ char *volname, |
| /*OUT*/ Int64 *totalCapacity, |
| /*OUT*/ Int64 *totalFreespace); |
| Int32 SQL_EXEC_GetListOfDisks ( |
| /*IN/OUT*/ char *diskBuf, |
| /* OUT */ Int32 *numTSEs, |
| /* OUT */ Int32 *maxTSELength, |
| /* IN/OUT */ Int32 *diskBufLength |
| ); |
| |
| |
| Int32 SQL_EXEC_AllocStmt ( |
| /*INOUT*/ SQLSTMT_ID * new_statement_id, |
| /*IN OPTIONAL*/ SQLSTMT_ID * cloned_statement); |
| |
| Int32 SQL_EXEC_ALLOCSTMT ( |
| /*INOUT*/ SQLSTMT_ID * new_statement_id, |
| /*IN OPTIONAL*/ SQLSTMT_ID * cloned_statement); |
| |
| Int32 SQL_EXEC_AllocStmtForRS ( |
| /*IN*/ SQLSTMT_ID *callStmtId, |
| /*IN*/ Int32 resultSetIndex, |
| /*INOUT*/ SQLSTMT_ID *resultSetStmtId); |
| |
| Int32 SQL_EXEC_ALLOCSTMTFORRS ( |
| /*IN*/ SQLSTMT_ID *callStmtId, |
| /*IN*/ Int32 resultSetIndex, |
| /*INOUT*/ SQLSTMT_ID *resultSetStmtId); |
| |
| Int32 SQL_EXEC_ClearDiagnostics (/*IN*/ SQLSTMT_ID *statement_id); |
| |
| Int32 SQL_EXEC_CLEARDIAGNOSTICS (/*IN*/ SQLSTMT_ID *statement_id); |
| |
| Int32 SQL_EXEC_CLI_VERSION (); |
| |
| Int32 SQL_EXEC_CloseStmt ( |
| /*IN*/ SQLSTMT_ID * statement_id); |
| |
| Int32 SQL_EXEC_CLOSESTMT ( |
| /*IN*/ SQLSTMT_ID * statement_id); |
| |
| |
| Int32 SQL_EXEC_CreateContext(/*OUT*/ SQLCTX_HANDLE * context_handle, |
| /*IN OPTIONAL*/ char* sqlAuthId, |
| /*IN OPTIONAL*/ Int32 suppressAutoXactStart); |
| |
| Int32 SQL_EXEC_CREATECONTEXT(/*OUT*/ SQLCTX_HANDLE * context_handle, |
| /*IN OPTIONAL*/ char* sqlAuthId, |
| /*IN OPTIONAL*/ Int32 suppressAutoXactStart); |
| |
| |
| Int32 SQL_EXEC_CurrentContext(/*OUT*/ SQLCTX_HANDLE * contextHandle); |
| |
| |
| Int32 SQL_EXEC_CURRENTCONTEXT(/*OUT*/ SQLCTX_HANDLE * contextHandle); |
| |
| |
| Int32 SQL_EXEC_DeleteContext(/*IN*/ SQLCTX_HANDLE contextHandle); |
| |
| |
| Int32 SQL_EXEC_DELETECONTEXT(/*IN*/ SQLCTX_HANDLE contextHandle); |
| |
| |
| Int32 SQL_EXEC_ResetContext(/*IN*/ SQLCTX_HANDLE contextHandle, /*IN*/ void *contextMsg); |
| |
| |
| Int32 SQL_EXEC_RESETCONTEXT(/*IN*/ SQLCTX_HANDLE contextHandle, /*IN*/ void *contextMsg); |
| |
| Int32 SQL_EXEC_DeallocDesc ( |
| /*IN*/ SQLDESC_ID * desc_id ); |
| |
| Int32 SQL_EXEC_DEALLOCDESC ( |
| /*IN*/ SQLDESC_ID * desc_id ); |
| |
| Int32 SQL_EXEC_DeallocStmt ( |
| /*IN*/ SQLSTMT_ID * statement_id); |
| |
| Int32 SQL_EXEC_DEALLOCSTMT ( |
| /*IN*/ SQLSTMT_ID * statement_id); |
| |
| Int32 SQL_EXEC_DefineDesc ( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN* (SQLWHAT_DESC) */ Int32 what_descriptor, |
| /*IN*/ SQLDESC_ID * sql_descriptor); |
| |
| Int32 SQL_EXEC_DEFINEDESC ( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN* (SQLWHAT_DESC) */ Int32 what_descriptor, |
| /*IN*/ SQLDESC_ID * sql_descriptor); |
| |
| Int32 SQL_EXEC_DescribeStmt ( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor); |
| |
| Int32 SQL_EXEC_DESCRIBESTMT ( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor); |
| |
| Int32 SQL_EXEC_DisassocFileNumber(/*IN*/ SQLSTMT_ID * statement_id); |
| |
| Int32 SQL_EXEC_DISASSOCFILENUMBER(/*IN*/ SQLSTMT_ID * statement_id); |
| |
| Int32 SQL_EXEC_DropContext ( |
| /*IN*/ SQLCTX_HANDLE context_handle ); |
| |
| Int32 SQL_EXEC_DROPCONTEXT ( |
| /*IN*/ SQLCTX_HANDLE context_handle ); |
| |
| Int32 SQL_EXEC_Exec ( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| ...); |
| |
| Int32 SQL_EXEC_EXEC ( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| /*IN*/ struct SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Int32 SQL_EXEC_ExecClose ( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| ...); |
| |
| Int32 SQL_EXEC_EXECCLOSE ( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| /*IN*/ struct SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Int32 SQL_EXEC_ExecDirect( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLDESC_ID * sql_source, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| ...); |
| |
| Int32 SQL_EXEC_EXECDIRECT ( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLDESC_ID * sql_source, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| /*IN*/ struct SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Int32 SQL_EXEC_ExecDirectDealloc( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLDESC_ID * sql_source, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| ...); |
| |
| Int32 SQL_EXEC_EXECDIRECTDEALLOC( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLDESC_ID * sql_source, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| /*IN*/ struct SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Int32 SQL_EXEC_ExecFetch( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| ...); |
| |
| Int32 SQL_EXEC_EXECFETCH( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| /*IN*/ struct SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Int32 SQL_EXEC_ClearExecFetchClose( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Int32 num_input_ptr_pairs, |
| /*IN*/ Int32 num_output_ptr_pairs, |
| /*IN*/ Int32 num_total_ptr_pairs, |
| ...); |
| |
| Int32 SQL_EXEC_CLEAREXECFETCHCLOSE( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Int32 num_input_ptr_pairs, |
| /*IN*/ Int32 num_output_ptr_pairs, |
| /*IN*/ Int32 num_total_ptr_pairs, |
| /*IN*/ struct SQLCLI_PTR_PAIRS input_ptr_pairs[], |
| /*IN*/ struct SQLCLI_PTR_PAIRS output_ptr_pairs[]); |
| |
| Int32 SQL_EXEC_Fetch( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| ...); |
| |
| Int32 SQL_EXEC_FETCH( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| /*IN*/ struct SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Int32 SQL_EXEC_FetchClose( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| ...); |
| |
| Int32 SQL_EXEC_FETCHCLOSE( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Int32 num_ptr_pairs, |
| /*IN*/ struct SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Int32 SQL_EXEC_FetchMultiple(/*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Int32 rowset_size, |
| /*IN*/ Int32 * rowset_status_ptr, |
| /*OUT*/ Int32 * rowset_nfetched, |
| /*IN*/ Int32 num_quadruple_fields, |
| ...); |
| Int32 SQL_EXEC_FETCHMULTIPLE(/*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Int32 rowset_size, |
| /*IN*/ Int32 * rowset_status_ptr, |
| /*OUT*/ Int32 * rowset_nfetched, |
| /*IN*/ Int32 num_quadruple_fields, |
| /*IN*/ struct SQLCLI_QUAD_FIELDS quad_fields[]); |
| Int32 SQL_EXEC_Cancel ( |
| /*IN OPTIONAL*/ SQLSTMT_ID * statement_id); |
| |
| Int32 SQL_EXEC_CANCEL ( |
| /*IN OPTIONAL*/ SQLSTMT_ID * statement_id); |
| |
| Int32 SQL_EXEC_GetDescEntryCount( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ SQLDESC_ID * output_descriptor); |
| |
| Int32 SQL_EXEC_GETDESCENTRYCOUNT( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ SQLDESC_ID * output_descriptor); |
| |
| |
| Int32 SQL_EXEC_GetDescEntryCountBasic( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*OUT*/ Int32 * num_entries); |
| Int32 SQL_EXEC_GetDescItem( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Int32 entry, |
| /*IN* (SQLDESC_ITEM_ID) */ Int32 what_to_get, |
| /*OUT OPTIONAL*/ void * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL*/ Int32 max_string_len, |
| /*OUT OPTIONAL*/ Int32 * len_of_item, |
| /*IN OPTIONAL*/ Int32 start_from_offset); |
| |
| Int32 SQL_EXEC_GETDESCITEM( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Int32 entry, |
| /*IN* (SQLDESC_ITEM_ID) */ Int32 what_to_get, |
| /*OUT OPTIONAL*/ void * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL*/ Int32 max_string_len, |
| /*OUT OPTIONAL*/ Int32 * len_of_item, |
| /*IN OPTIONAL*/ Int32 start_from_offset); |
| |
| Int32 SQL_EXEC_GetDescItems( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ SQLDESC_ITEM desc_items[], |
| /*IN*/ SQLDESC_ID * value_num_descriptor, |
| /*IN*/ SQLDESC_ID * output_descriptor); |
| |
| Int32 SQL_EXEC_GETDESCITEMS( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ SQLDESC_ITEM desc_items[], |
| /*IN*/ SQLDESC_ID * value_num_descriptor, |
| /*IN*/ SQLDESC_ID * output_descriptor); |
| |
| Int32 SQL_EXEC_GetDescItems2( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Int32 no_of_desc_items, |
| /*IN*/ SQLDESC_ITEM desc_items[]); |
| |
| Int32 SQL_EXEC_GETDESCITEMS2( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Int32 no_of_desc_items, |
| /*IN*/ SQLDESC_ITEM desc_items[]); |
| |
| Int32 SQL_EXEC_GetDiagnosticsStmtInfo( |
| /*IN*/ Int32 *stmt_info_items, |
| /*IN*/ SQLDESC_ID * output_descriptor); |
| |
| Int32 SQL_EXEC_GETDIAGNOSTICSSTMTINFO( |
| /*IN*/ Int32 *stmt_info_items, |
| /*IN*/ SQLDESC_ID * output_descriptor); |
| |
| Int32 SQL_EXEC_GetDiagnosticsStmtInfo2( |
| /*IN OPTIONAL*/ SQLSTMT_ID * statement_id, |
| /*IN* (SQLDIAG_STMT_INFO_ITEM_ID) */ Int32 what_to_get, |
| /*OUT OPTIONAL*/ void * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL*/ Int32 max_string_len, |
| /*OUT OPTIONAL*/ Int32 * len_of_item); |
| |
| Int32 SQL_EXEC_GETDIAGNOSTICSSTMTINFO2( |
| /*IN OPTIONAL*/ SQLSTMT_ID * statement_id, |
| /*IN* (SQLDIAG_STMT_INFO_ITEM_ID) */ Int32 what_to_get, |
| /*OUT OPTIONAL*/ void * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL*/ Int32 max_string_len, |
| /*OUT OPTIONAL*/ Int32 * len_of_item); |
| |
| Int32 SQL_EXEC_GetDiagnosticsCondInfo( |
| /*IN*/ SQLDIAG_COND_INFO_ITEM *cond_info_items, |
| /*IN*/ SQLDESC_ID * cond_num_descriptor, |
| /*IN*/ SQLDESC_ID * output_descriptor); |
| |
| Int32 SQL_EXEC_GETDIAGNOSTICSCONDINFO( |
| /*IN*/ SQLDIAG_COND_INFO_ITEM *cond_info_items, |
| /*IN*/ SQLDESC_ID * cond_num_descriptor, |
| /*IN*/ SQLDESC_ID * output_descriptor); |
| |
| Int32 SQL_EXEC_GetDiagnosticsCondInfo2( |
| /*IN* (SQLDIAG_COND_INFO_ITEM_ID) */ Int32 what_to_get, |
| /*IN*/ Int32 conditionNum, |
| /*OUT OPTIONAL*/ Int32 * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL */ Int32 max_string_len, |
| /*OUT OPTIONAL*/ Int32 * len_of_item); |
| |
| Int32 SQL_EXEC_GETDIAGNOSTICSCONDINFO2( |
| /*IN* (SQLDIAG_COND_INFO_ITEM_ID) */ Int32 what_to_get, |
| /*IN*/ Int32 conditionNum, |
| /*OUT OPTIONAL*/ Int32 * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL */ Int32 max_string_len, |
| /*OUT OPTIONAL*/ Int32 * len_of_item); |
| |
| Int32 SQL_EXEC_GetDiagnosticsCondInfo3 ( |
| /*IN*/ Int32 no_of_condition_items, |
| /*IN*/ SQLDIAG_COND_INFO_ITEM_VALUE |
| diag_cond_info_item_values[]); |
| |
| Int32 SQL_EXEC_GETDIAGNOSTICSCONDINFO3 ( |
| /*IN*/ Int32 no_of_condition_items, |
| /*IN*/ SQLDIAG_COND_INFO_ITEM_VALUE |
| diag_cond_info_item_values[]); |
| |
| /* This function retrieves the SQLSTATE from the statement diagnostics area |
| if possible */ |
| Int32 SQL_EXEC_GetMainSQLSTATE( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ Int32 sqlcode, |
| /*OUT*/ char * sqlstate /* assumed to be char[6] */); |
| |
| Int32 SQL_EXEC_GETMAINSQLSTATE( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ Int32 sqlcode, |
| /*OUT*/ char * sqlstate /* assumed to be char[6] */); |
| |
| Int32 SQL_EXEC_GetCSQLSTATE( |
| /*OUT*/ char * sqlstate /* assumed to be char[6] */, |
| /*IN*/ Int32 sqlcode); |
| |
| Int32 SQL_EXEC_GETCSQLSTATE( |
| /*OUT*/ char * sqlstate /* assumed to be char[6] */, |
| /*IN*/ Int32 sqlcode); |
| |
| Int32 SQL_EXEC_GetCobolSQLSTATE( |
| /*OUT*/ char * sqlstate /* assumed to be char[5] */, |
| /*IN*/ Int32 sqlcode); |
| |
| Int32 SQL_EXEC_GETCOBOLSQLSTATE( |
| /*OUT*/ char * sqlstate /* assumed to be char[5] */, |
| /*IN*/ Int32 sqlcode); |
| |
| Int32 SQL_EXEC_GetSQLSTATE( |
| /*OUT*/ char * sqlstate /* assumed to be char[6] */); |
| |
| Int32 SQL_EXEC_GETSQLSTATE( |
| /*OUT*/ char * sqlstate /* assumed to be char[6] */); |
| |
| Int32 SQL_EXEC_GetSessionAttr( |
| /*IN* (SESSIONATTR_TYPE) */ Int32 attrName, |
| /*OUT OPTIONAL*/ Int32 * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL*/ Int32 max_string_len, |
| /*OUT OPTIONAL*/ Int32 * len_of_item); |
| |
| Int32 SQL_EXEC_GetUniqueQueryIdAttrs ( |
| /*IN*/ char * uniqueQueryId, |
| /*IN*/ Int32 uniqueQueryIdLen, |
| /*IN*/ Int32 no_of_attrs, |
| /*INOUT*/ UNIQUEQUERYID_ATTR unique_queryid_attrs[]); |
| |
| Int32 SQL_EXEC_GetStmtAttr( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN* (SQLATTR_TYPE) */ Int32 attrName, |
| /*OUT OPTIONAL*/ Int32 * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL*/ Int32 max_string_len, |
| /*OUT OPTIONAL*/ Int32 * len_of_item); |
| |
| Int32 SQL_EXEC_GETSTMTATTR( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN* (SQLATTR_TYPE) */ Int32 attrName, |
| /*OUT OPTIONAL*/ Int32 * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL*/ Int32 max_string_len, |
| /*OUT OPTIONAL*/ Int32 * len_of_item); |
| |
| Int32 SQL_EXEC_GetStmtAttrs( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ Int32 number_of_attrs, |
| /*INOUT*/ SQLSTMT_ATTR attrs[], |
| /*OUT OPTIONAL*/ Int32 * num_returned); |
| |
| Int32 SQL_EXEC_GETSTMTATTRS( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ Int32 number_of_attrs, |
| /*INOUT*/ SQLSTMT_ATTR attrs[], |
| /*OUT OPTIONAL*/ Int32 * num_returned); |
| |
| Int32 SQL_EXEC_GETMPCATALOG( |
| /*IN*/ char * AnsiObjName, |
| /*INOUT*/ char * MPObjName, |
| /*IN*/ Int32 MPObjNameMaxLen, |
| /*INOUT*/ Int32 * MPObjNameLen, |
| /*OUT*/ char * MPCatalogName, |
| /*IN*/ Int32 MPCatalogNameMaxLen, |
| /*OUT*/ Int32 * MPCatalogNameLen); |
| |
| Int32 SQL_EXEC_GetPfsSize( |
| /*OUT*/ Int32 *pfsSize, |
| /*OUT*/ Int32 *pfsCurUse, |
| /*OUT*/ Int32 *pfsMaxUse); |
| |
| Int32 SQL_EXEC_CleanUpPfsResources(); |
| |
| Int32 SQL_EXEC_GoAway( |
| /*IN*/ SQLDESC_ID * tableNameDesc); |
| |
| Int32 SQL_EXEC_GOAWAY( |
| /*IN*/ SQLDESC_ID * tableNameDesc); |
| |
| Int32 SQL_EXEC_Prepare( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLDESC_ID * sql_source); |
| |
| Int32 SQL_EXEC_PREPARE( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLDESC_ID * sql_source); |
| |
| Int32 SQL_EXEC_Prepare2( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLDESC_ID * sql_source, |
| /*INOUT*/ char * gencode_ptr, |
| /*IN*/ Int32 gencode_len, |
| /*INOUT*/ Int32 * ret_gencode_len, |
| /*INOUT*/ SQL_QUERY_COST_INFO *query_cost_info, |
| /*INOUT*/ SQL_QUERY_COMPILER_STATS_INFO *comp_stats_info, |
| /*INOUT*/ char * uniqueQueryId, |
| /*INOUT*/ Int32 * uniqueQueryIdLen, |
| /*IN*/ UInt32 flags); |
| |
| Int32 SQL_EXEC_ResDescName( |
| /*INOUT*/ SQLDESC_ID * statement_id, |
| /*IN OPTIONAL*/ SQLSTMT_ID * from_statement, |
| /*IN OPTIONAL (SQLWHAT_DESC) */ Int32 what_desc); |
| |
| Int32 SQL_EXEC_RESDESCNAME( |
| /*INOUT*/ SQLDESC_ID * statement_id, |
| /*IN OPTIONAL*/ SQLSTMT_ID * from_statement, |
| /*IN OPTIONAL (SQLWHAT_DESC) */ Int32 what_desc); |
| |
| Int32 SQL_EXEC_ResStmtName( |
| /*INOUT*/ SQLSTMT_ID * statement_id); |
| |
| Int32 SQL_EXEC_RESSTMTNAME( |
| /*INOUT*/ SQLSTMT_ID * statement_id); |
| |
| Int32 SQL_EXEC_SetCursorName( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLSTMT_ID * cursor_name); |
| |
| |
| Int32 SQL_EXEC_SETCURSORNAME( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLSTMT_ID * cursor_name); |
| |
| Int32 SQL_EXEC_SetDescEntryCount( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ SQLDESC_ID * input_descriptor); |
| |
| Int32 SQL_EXEC_SETDESCENTRYCOUNT( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ SQLDESC_ID * input_descriptor); |
| |
| Int32 SQL_EXEC_SetDescEntryCountBasic( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Int32 num_entries); |
| |
| Int32 SQL_EXEC_SetDescItem( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Int32 entry, |
| /*IN* (SQLDESC_ITEM_ID) */ Int32 what_to_set, |
| /*IN OPTIONAL*/ long numeric_value, |
| /*IN OPTIONAL*/ char * string_value); |
| |
| Int32 SQL_EXEC_SETDESCITEM( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Int32 entry, |
| /*IN* (SQLDESC_ITEM_ID) */ Int32 what_to_set, |
| /*IN OPTIONAL*/ long numeric_value, |
| /*IN OPTIONAL*/ char * string_value); |
| |
| Int32 SQL_EXEC_SetDescItems( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ SQLDESC_ITEM desc_items[], |
| /*IN*/ SQLDESC_ID * value_num_descriptor, |
| /*IN*/ SQLDESC_ID * input_descriptor); |
| |
| Int32 SQL_EXEC_SETDESCITEMS( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ SQLDESC_ITEM desc_items[], |
| /*IN*/ SQLDESC_ID * value_num_descriptor, |
| /*IN*/ SQLDESC_ID * input_descriptor); |
| |
| Int32 SQL_EXEC_SetDescItems2( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Int32 no_of_desc_items, |
| /*IN*/ SQLDESC_ITEM desc_items[]); |
| |
| Int32 SQL_EXEC_SETDESCITEMS2( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Int32 no_of_desc_items, |
| /*IN*/ SQLDESC_ITEM desc_items[]); |
| |
| Int32 SQL_EXEC_SetDescPointers( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Int32 starting_entry, |
| /*IN*/ Int32 num_ptr_pairs, |
| ...); |
| |
| Int32 SQL_EXEC_SETDESCPOINTERS( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Int32 starting_entry, |
| /*IN*/ Int32 num_ptr_pairs, |
| /*IN*/ struct SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Int32 SQL_EXEC_SetRowsetDescPointers(SQLDESC_ID * desc_id, |
| Int32 rowset_size, |
| Int32 *rowset_status_ptr, |
| Int32 starting_entry, |
| Int32 num_quadruple_fields, |
| ...); |
| |
| Int32 SQL_EXEC_SETROWSETDESCPOINTERS(SQLDESC_ID * desc_id, |
| Int32 rowset_size, |
| Int32 *rowset_status_ptr, |
| Int32 starting_entry, |
| Int32 num_quadruple_fields, |
| struct SQLCLI_QUAD_FIELDS quad_fields[]); |
| |
| Int32 SQL_EXEC_SetStmtAttr( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN* (SQLATTR_TYPE) */ Int32 attrName, |
| /*IN OPTIONAL*/ Int32 numeric_value, |
| /*IN OPTIONAL*/ char * string_value); |
| |
| |
| Int32 SQL_EXEC_SETSTMTATTR( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN* (SQLATTR_TYPE) */ Int32 attrName, |
| /*IN OPTIONAL*/ Int32 numeric_value, |
| /*IN OPTIONAL*/ char * string_value); |
| |
| Int32 SQL_EXEC_SwitchContext( |
| /*IN*/ SQLCTX_HANDLE context_handle, |
| /*OUT OPTIONAL*/ SQLCTX_HANDLE * prev_context_handle); |
| |
| Int32 SQL_EXEC_SWITCHCONTEXT( |
| /*IN*/ SQLCTX_HANDLE context_handle, |
| /*OUT OPTIONAL*/ SQLCTX_HANDLE * prev_context_handle); |
| |
| Int32 SQL_EXEC_Xact( |
| /*IN* (SQLTRANS_COMMAND) */ Int32 command, |
| /*OUT OPTIONAL*/ SQLDESC_ID * transid_descriptor); |
| |
| Int32 SQL_EXEC_XACT( |
| /*IN* (SQLTRANS_COMMAND) */ Int32 command, |
| /*OUT OPTIONAL*/ SQLDESC_ID * transid_descriptor); |
| |
| Int32 SQL_EXEC_SetAuthIDNew( |
| /*IN*/ char * authID, |
| /*IN*/ char * credentials, |
| /* OUT Logon role name */ char * logonRoleName, |
| /* OUT Logon role name len */ short * logonRoleNameLen, |
| /* OUT User redef time */ Int64 * redefTime); |
| |
| Int32 SQL_EXEC_SetAuthID( |
| /*IN*/ char * authID, |
| /*IN SQLAUTHID_TYPE */ Int32 authIDType, |
| /* OUT Primary role name */ char * primaryRoleName, |
| /* OUT Primary role name len */ short * primaryRoleNameLen, |
| /* OUT User redef time */ Int64 * redefTime); |
| |
| Int32 SQL_EXEC_SETAUTHID( |
| /*IN*/ char * authID, |
| /*IN SQLAUTHID_TYPE */ Int32 authIDType, |
| /* OUT OPTIONAL primaryRole*/ char *primaryRole, |
| /* OUT OPTIONAL role len*/ short *primaryRoleLen, |
| /* OUT OPTIONAL userRedefTime*/ Int64 *redefTime); |
| |
| |
| Int32 SQL_EXEC_DecodeAndFormatKey( |
| /*IN*/void * RCB_Pointer_Addr, |
| /*IN*/void * KeyAddr, |
| /*IN*/Int32 KeyLength, |
| /*INOUT*/void * DecodedKeyBufAddr, |
| /*INOUT*/void * FormattedKeyBufAddr, |
| /*IN*/Int32 FormattedKeyBufLen, |
| /*OUT*/Int32 * NeededKeyBufLen ); |
| |
| Int32 SQL_EXEC_GetPartitionKeyFromRow( |
| /*IN*/void * RCB_Pointer_Addr, |
| /*IN*/void * Row_Addr, |
| /*IN*/Int32 Row_Length, |
| /*INOUT*/void * KeyAddr, |
| /*IN*/Int32 KeyLength); |
| |
| Int32 SQL_EXEC_LocaleToUTF8 ( |
| /*IN*/Int32 conv_charset, |
| /*IN*/void * Input_Buffer_Addr, |
| /*IN*/Int32 Input_Buffer_Length, |
| /*IN/OUT*/void * Output_Buffer_Addr, |
| /*IN*/Int32 Output_Buffer_Length, |
| /*OUT*/void ** First_Untranslated_Char_Addr, |
| /*OUT*/Int32 * Output_Data_Length, |
| /*IN*/Int32 add_null_at_end_Flag, |
| /*OUT*/Int32 * num_translated_char |
| ); |
| |
| Int32 SQL_EXEC_UTF8ToLocale( |
| /*IN*/Int32 conv_charset, |
| /*IN*/void * Input_Buffer_Addr, |
| /*IN*/Int32 Input_Buffer_Length, |
| /*IN/OUT*/void * Output_Buffer_Addr, |
| /*IN*/Int32 Output_Buffer_Length, |
| /*OUT*/void ** First_Untranslated_Char_Addr, |
| /*OUT*/Int32 * Output_Data_Length, |
| /*IN*/Int32 add_null_at_end_Flag, |
| /*IN*/Int32 allow_invalids, |
| /*OUT*/Int32 * num_translated_char, |
| /*IN*/void * substitution_char_addr |
| ); |
| |
| Int32 SQL_EXEC_LocaleToUTF16 ( |
| /*IN*/Int32 conv_charset, |
| /*IN*/void * Input_Buffer_Addr, |
| /*IN*/Int32 Input_Buffer_Length, |
| /*IN/OUT*/void * Output_Buffer_Addr, |
| /*IN*/Int32 Output_Buffer_Length, |
| /*OUT*/void ** First_Untranslated_Char_Addr, |
| /*OUT*/Int32 * Output_Data_Length, |
| /*IN*/Int32 conv_flags, |
| /*IN*/Int32 add_null_at_end_Flag, |
| /*OUT*/Int32 * num_translated_char |
| ); |
| |
| Int32 SQL_EXEC_UTF16ToLocale( |
| /*IN*/Int32 conv_charset, |
| /*IN*/void * Input_Buffer_Addr, |
| /*IN*/Int32 Input_Buffer_Length, |
| /*IN/OUT*/void * Output_Buffer_Addr, |
| /*IN*/Int32 Output_Buffer_Length, |
| /*OUT*/void ** First_Untranslated_Char_Addr, |
| /*OUT*/Int32 * Output_Data_Length, |
| /*IN*/Int32 conv_flags, |
| /*IN*/Int32 add_null_at_end_Flag, |
| /*IN*/Int32 allow_invalids, |
| /*OUT*/Int32 * num_translated_char, |
| /*IN*/void * substitution_char_addr |
| ); |
| Int32 SQL_EXEC_GetStatistics2( |
| /* IN */ short statsReqType, |
| /* IN */ char *statsReqStr, |
| /* IN */ Int32 statsReqStrLen, |
| /* IN */ short activeQueryNum, |
| /* IN */ short statsMergeType, |
| /* OUT */ short *statsCollectType, |
| /* IN/OUT */ SQLSTATS_DESC sqlstats_desc[], |
| /* IN */ Int32 max_stats_desc, |
| /* OUT */ Int32 *no_returned_stats_desc); |
| |
| Int32 SQL_EXEC_GetStatisticsItems( |
| /* IN */ short statsReqType, |
| /* IN */ char *queryId, |
| /* IN */ Int32 queryIdLen, |
| /* IN */ Int32 no_of_stats_items, |
| /* IN/OUT */ SQLSTATS_ITEM sqlstats_items[]); |
| |
| Int32 SQL_EXEC_GetChildQueryInfo( |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*INOUT*/ char * uniqueQueryId, |
| /*IN */ Int32 uniqueQueryIdMaxLen, |
| /*INOUT*/ Int32 * uniqueQueryIdLen, |
| /*INOUT*/ SQL_QUERY_COST_INFO *query_cost_info, |
| /*INOUT*/ SQL_QUERY_COMPILER_STATS_INFO *comp_stats_info); |
| |
| |
| #ifdef __cplusplus |
| } |
| |
| /* temporary functions -- for use by sqlcat simulator only */ |
| |
| Int32 SQL_EXEC_AllocDesc ( |
| /*INOUT*/ SQLDESC_ID * desc_id, |
| /*IN OPTIONAL*/ Int32 max_entries); |
| |
| Int32 SQL_EXEC_GetDescEntryCount( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*OUT*/ Int32 * num_entries); |
| |
| Int32 SQL_EXEC_SetDescEntryCount( |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Int32 num_entries); |
| |
| |
| |
| #endif /*__cplusplus*/ |
| |
| #endif /*SQLCLI_HDR*/ |
| |
| |
| |
| static Int32 __SQL_internal_retcode; |
| extern SQLMODULE_ID __SQL_mod_199222286715188012; |
| /********************************************************************** |
| **********************************************************************/ |
| /* -*-C++-*- |
| ************************************************************************ |
| * |
| * File: QRQueries.sql |
| * Description: SQL operations for Query Rewrite queries |
| * |
| * Created: 04/01/2009 |
| * Language: C++ |
| * |
| * |
| ***************************************************************************** |
| */ |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <string.h> |
| #include "QRQueries.h" |
| #include "Platform.h" //64-bit project |
| #include "NAWinNT.h" |
| #include "wstr.h" |
| #include "csconvert.h" |
| |
| |
| /* EXEC SQL |
| MODULE HP_SYSTEM_CATALOG.SYSTEM_SCHEMA.MVQR_N29_000 NAMES ARE ISO88591; |
| */ |
| |
| |
| /* For STREAM_TIMEOUT for stream reading from the REWRITE_PUBLISH table */ |
| /* EXEC SQL CONTROl QUERY DEFAULT STREAM_TIMEOUT '500'; */ |
| |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| |
| static THREAD_P Int32 SQLCODE; |
| static Int32 result; |
| |
| #define MAX_NODE_NAME 9 |
| #define MAX_CATSYS_NAME 50 // + "CATSYS" = 41+1+1 = 43 |
| #define MAX_SCHEMATA_NAME 50 // + "SCHEMATA" = 43+1+1 = 45 |
| #define MAX_1_PART_INTERNAL_NAME_LEN 128 |
| #define MAX_1_PART_INTERNAL_NAME_LEN_PLUS_1 129 |
| /* |
| #define MAX_SMD_TABLE_NAME 290 // 258+.HP_DEFINITION_SCHEMA.yyyyyyyy=258+20+10+2 = 290 |
| #define MAX_CATALOG_NAME 260 // Allows for double quotes in delimited |
| #define MAX_CATALOG_DEFINITION_NAME 290 // Allows for double quotes in delimited |
| */ |
| /* SeaQuest - begin */ |
| #define MAX_SMD_TABLE_NAME 546 // 514+.HP_DEFINITION_SCHEMA.yyyyyyyy=514+20+10+2 = 546 |
| #define MAX_CATALOG_NAME 516 // Allows for double quotes in delimited |
| #define MAX_CATALOG_DEFINITION_NAME 546 // Allows for double quotes in delimited |
| /* SeaQuest - end */ |
| #define MAX_SCHEMA_VERSION 5 |
| #define MAX_SYSTEM_DEFAULTS 66 |
| #define MAX_ATTR_VALUE 9 |
| #define MAX_TABLE_ATTR 3 |
| /* |
| #define MAX_MV_TEXT 3001 |
| */ |
| /* SeaQuest Unicode - begin */ |
| #define MAX_MV_UTF8_TEXT_IN_BYTES 12001 |
| #define MAX_MV_UCS2_TEXT_SIZE 3000 |
| #define MAX_MV_UCS2_TEXT_SIZE_PLUS_1 3001 |
| /* SeaQuest Unicode - end */ |
| #define MAX_REWRITE_TABLE 50 |
| #define MAX_OPERATION_TYPE 3 |
| /* |
| #define MAX_OBJECT_NAME 500 |
| */ |
| /* SeaQuest Unicode - begin */ |
| #define MAX_OBJECT_NAME_IN_NAWCHARS 500 |
| #define MAX_OBJECT_NAME 2001 |
| /* SeaQuest Unicode - end */ |
| #define MAX_DEFAULTS_VALUE 1000 |
| /* SeaQuest Unicode - begin */ |
| #define MAX_DEFAULTS_UTF8_VALUE_IN_BYTES 4001 |
| #define MAX_UTF8_CMD_LEN_IN_BYTES_PLUS_1 4001 |
| /* SeaQuest Unicode - end */ |
| |
| |
| struct QRMVDataStruct |
| { |
| _int64 objectUID_; |
| _int64 redefTime_; |
| _int64 refreshedAt_; |
| Int32 hasIgnoreChanges_; |
| char mvText_[MAX_MV_UTF8_TEXT_IN_BYTES]; |
| }; |
| |
| struct MVQR_PublishStruct |
| { |
| _int64 operationTimestamp_; |
| _int64 redefTime_; |
| _int64 refreshedAt_; |
| _int64 objectUID_; |
| _int64 catalogUID_; |
| char objectName_[MAX_OBJECT_NAME]; |
| char objectNewName_[MAX_OBJECT_NAME]; |
| Int32 descriptorIndex_; |
| char operationType_[MAX_OPERATION_TYPE]; |
| char ignoreChangesUsed_[MAX_OPERATION_TYPE]; |
| short nullindObjectNewName_; |
| short nullindIgnoreChangesUsed_; |
| short nullindDescriptorIndex_; |
| }; |
| |
| /* char */ THREAD_P char catsysName_[MAX_CATSYS_NAME]; |
| THREAD_P char schemataName_[MAX_CATSYS_NAME]; |
| THREAD_P char systemDefaults_[MAX_SYSTEM_DEFAULTS]; |
| |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| #define QRMVDataStruct QRMVData |
| #define MVQR_PublishStruct MVQR_Publish |
| |
| /********************************************************* |
| // FIX_CHAR macro |
| // Strips trailing blanks from string |
| // |
| *********************************************************/ |
| #define FIX_CHAR(AAA) \ |
| { \ |
| AAA[sizeof(AAA) -1] = '\0'; \ |
| char *tmp = strrchr(AAA, ' '); \ |
| if (tmp) \ |
| { \ |
| while(tmp > AAA && *(tmp-1) == ' ') tmp--; \ |
| *tmp = '\0'; \ |
| } \ |
| } |
| |
| /********************************************************* |
| // FIX_CHAR2 macro |
| // Appends zero-teminator to string retaining maximum size |
| // |
| *********************************************************/ |
| #define FIX_CHAR2(AAA) AAA[sizeof(AAA) -1] = '\0' |
| |
| /********************************************************* |
| // Strip trailing NAWchar blanks |
| *********************************************************/ |
| static void StripTrailingBlanks(NAWchar *x, const Int32 bufSizeInNAWchars) |
| { |
| Int32 i=bufSizeInNAWchars-1; |
| x[i]=0; /* Make sure there is a NULL terminator*/ |
| i -= 1; |
| Int32 more=1/*TRUE*/; |
| while(more) |
| { |
| if(x[i]==' ') |
| x[i]=0; |
| else |
| more=0/*FALSE*/; |
| i -= 1; |
| } |
| } |
| |
| /********************************************************* |
| // Initialization method: set the full name of the CATSYS table. |
| *********************************************************/ |
| void QRQueries::setCatsysName(char *name) |
| { |
| strcpy(catsysName_, name); |
| } |
| |
| /********************************************************* |
| // Initialization method: set the full name of the SCHEMATA table. |
| *********************************************************/ |
| void QRQueries::setSchemataName(char *name) |
| { |
| strcpy(schemataName_, name); |
| } |
| |
| /********************************************************* |
| // Initialization method: set the full name of the system DEFAULTS table. |
| *********************************************************/ |
| void QRQueries::setSystemDefaultsName(char *name) |
| { |
| strcpy(systemDefaults_, name); |
| } |
| |
| /********************************************************* |
| // |
| // QRQueries::beginTransaction() |
| // |
| *********************************************************/ |
| Int32 QRQueries::beginTransaction() |
| { |
| /* EXEC SQL BEGIN WORK; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, stmt_name, &__SQL_mod_199222286715188012, "SQLMX_DEFAULT_STATEMENT_6", |
| 0, 0, |
| 25}; |
| if (SQLCODE = SQL_EXEC_ClearExecFetchClose(&__SQL_id0,(long)0,(long)0,0,0 |
| ,0));} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // |
| // QRQueries::commitTransaction() |
| // |
| *********************************************************/ |
| Int32 QRQueries::commitTransaction() |
| { |
| /* EXEC SQL COMMIT WORK; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, stmt_name, &__SQL_mod_199222286715188012, "SQLMX_DEFAULT_STATEMENT_7", |
| 0, 0, |
| 25}; |
| if (SQLCODE = SQL_EXEC_ClearExecFetchClose(&__SQL_id0,(long)0,(long)0,0,0 |
| ,0));} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // |
| // QRQueries::rollbackTransaction() |
| // |
| *********************************************************/ |
| Int32 QRQueries::rollbackTransaction() |
| { |
| /* EXEC SQL ROLLBACK WORK; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, stmt_name, &__SQL_mod_199222286715188012, "SQLMX_DEFAULT_STATEMENT_8", |
| 0, 0, |
| 25}; |
| if (SQLCODE = SQL_EXEC_ClearExecFetchClose(&__SQL_id0,(long)0,(long)0,0,0 |
| ,0));} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // |
| // QRQueries::openSystemDefault |
| // |
| *********************************************************/ |
| Lng32 QRQueries::openSystemDefault(const char* defaultName) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| /* char CHARACTER SET IS ISO88591 */ char defName[MAX_DEFAULTS_VALUE]; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| memset (defName, ' ', MAX_DEFAULTS_VALUE); |
| memcpy (defName, defaultName, strlen(defaultName)); |
| |
| /* EXEC SQL DECLARE ObtainSystemDefaults CURSOR FOR |
| select translate(attr_value using ucs2toutf8), octet_length(translate(attr_value using ucs2toutf8)) |
| from :systemDefaults_ prototype 'HP_SYSTEM_CATALOG.SYSTEM_DEFAULTS_SCHEMA.SYSTEM_DEFAULTS' |
| where attribute = :defName; */ |
| |
| /* EXEC SQL OPEN ObtainSystemDefaults; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINSYSTEMDEFAULTS",0, |
| 0, |
| 20}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "SQLMX_DEFAULT_STATEMENT_10_0_IVAR",0, 0, |
| 33}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Exec(&__SQL_id0,&__SQL_id1,2,&(systemDefaults_[0]),(long)0, |
| &(defName[0]),(long)0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::fetchSystemDefault |
| *********************************************************/ |
| Lng32 QRQueries::fetchSystemDefault(char* value) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| char defaultValue[MAX_DEFAULTS_UTF8_VALUE_IN_BYTES]; |
| Int32 textSize; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| /* EXEC SQL FETCH ObtainSystemDefaults INTO :defaultValue, |
| :textSize; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINSYSTEMDEFAULTS",0, |
| 0, |
| 20}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "OBTAINSYSTEMDEFAULTS_0_OVAR",0, 0, |
| 27}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Fetch(&__SQL_id0,&__SQL_id1,2,&(defaultValue[0]),(long)0, |
| &(textSize),(long)0)) != 0);} |
| |
| if (SQLCODE == 0) |
| { |
| assertLogAndThrow(CAT_SQL_COMP_QR_COMMON, LL_ERROR, |
| textSize < MAX_DEFAULTS_VALUE, QRDatabaseException, |
| "System default value is too large"); |
| memcpy(value, defaultValue, textSize); |
| value[textSize] = '\0'; |
| } |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::closeSystemDefault |
| *********************************************************/ |
| Int32 QRQueries::closeSystemDefault() |
| { |
| /* EXEC SQL CLOSE ObtainSystemDefaults; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINSYSTEMDEFAULTS",0, |
| 0, |
| 20}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_CloseStmt(&__SQL_id0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // |
| // QRQueries::openCatalogName |
| // |
| *********************************************************/ |
| Lng32 QRQueries::openCatalogName(_int64 catalogUID) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| _int64 catUID; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| catUID = catalogUID; |
| |
| /* EXEC SQL DECLARE ObtainCatalogName CURSOR FOR |
| SELECT rtrim(cat_name) from :catsysName_ prototype 'HP_SYSTEM_CATALOG.SYSTEM_SCHEMA.CATSYS' |
| where cat_uid = :catUID |
| FOR READ COMMITTED ACCESS IN SHARE MODE; */ |
| |
| /* EXEC SQL OPEN ObtainCatalogName; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINCATALOGNAME",0, 0, |
| 17}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "SQLMX_DEFAULT_STATEMENT_14_0_IVAR",0, 0, |
| 33}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Exec(&__SQL_id0,&__SQL_id1,2,&(catsysName_[0]),(long)0,&(catUID) |
| ,(long)0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::fetchCatalogName |
| *********************************************************/ |
| Lng32 QRQueries::fetchCatalogName(NAString& catalogName) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| /* char CHARACTER SET IS UCS2 */ wchar_t catName[MAX_1_PART_INTERNAL_NAME_LEN_PLUS_1]; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| /* memset (catName, ' ', MAX_CATALOG_NAME); */ |
| wc_str_pad(catName, MAX_1_PART_INTERNAL_NAME_LEN); |
| ((NAWchar*)catName)[MAX_1_PART_INTERNAL_NAME_LEN] = 0; |
| |
| /* EXEC SQL FETCH ObtainCatalogName INTO :catName; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINCATALOGNAME",0, 0, |
| 17}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, "OBTAINCATALOGNAME_0_OVAR",0 |
| , 0, |
| 24}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Fetch(&__SQL_id0,&__SQL_id1,1,&(catName),(long)0)) != 0);} |
| |
| if (SQLCODE == 0) |
| { |
| /* FIX_CHAR(catName); */ |
| StripTrailingBlanks(catName, MAX_1_PART_INTERNAL_NAME_LEN_PLUS_1); |
| char tmpCatName[MAX_CATALOG_NAME+1]; |
| tmpCatName[MAX_CATALOG_NAME] = 0; |
| char * p1stUnstranslatedChar = NULL; |
| UInt32 outStrLenInBytes = 0; |
| UInt32 charCount = 0; /* number of characters translated/converted */ |
| Int32 cnvErrStatus = 0; |
| char *pSubstitutionChar = NULL; /* Use ? */ |
| Int32 convFlags = 0; |
| cnvErrStatus = UTF16ToLocale |
| ( cnv_version1 /* in - const enum cnv_version version */ |
| , (const char *)catName /* in - const char *in_bufr */ |
| , NAWstrlen(catName)*BYTES_PER_NAWCHAR /* in - const int in_len */ |
| , tmpCatName /* out - const char *out_bufr */ |
| , MAX_CATALOG_NAME /* in - const int out_len */ |
| , cnv_UTF8 /* in - enum cnv_charset charset */ |
| , p1stUnstranslatedChar /* out - char * & first_untranslated_char */ |
| , &outStrLenInBytes /* out - unsigned int *output_data_len_p */ |
| , convFlags /* in - const int cnv_flags */ |
| , (Int32)TRUE /* in - const int addNullAtEnd_flag */ |
| , (Int32)TRUE /* in - const int allow_invalids */ |
| , &charCount /* out - unsigned int * translated_char_cnt_p */ |
| , pSubstitutionChar /* in - const char *substitution_char */ |
| ); |
| /* Conversion from UTF16 to UTF8 should always be successful */ |
| catalogName = tmpCatName; |
| } |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::closeCatalogName |
| *********************************************************/ |
| Int32 QRQueries::closeCatalogName() |
| { |
| /* EXEC SQL CLOSE ObtainCatalogName; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINCATALOGNAME",0, 0, |
| 17}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_CloseStmt(&__SQL_id0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // |
| // QRQueries::openCatalogUID |
| // |
| *********************************************************/ |
| Lng32 QRQueries::openCatalogUID(const char *catalogName) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| /* char */ char catName[MAX_CATALOG_NAME]; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| memset (catName, ' ', MAX_CATALOG_NAME); |
| memcpy (catName, catalogName, strlen(catalogName)); |
| |
| /* EXEC SQL DECLARE ObtainCatalogUID CURSOR FOR |
| SELECT cat_uid from :catsysName_ prototype 'HP_SYSTEM_CATALOG.SYSTEM_SCHEMA.CATSYS' |
| where cat_name = translate(:catName using utf8toucs2) |
| FOR READ COMMITTED ACCESS IN SHARE MODE; */ |
| |
| /* EXEC SQL OPEN ObtainCatalogUID; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINCATALOGUID",0, 0, |
| 16}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "SQLMX_DEFAULT_STATEMENT_18_0_IVAR",0, 0, |
| 33}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Exec(&__SQL_id0,&__SQL_id1,2,&(catsysName_[0]),(long)0, |
| &(catName[0]),(long)0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::fetchCatalogUID |
| *********************************************************/ |
| Lng32 QRQueries::fetchCatalogUID(_int64& catalogUID) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| _int64 catUID; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| /* EXEC SQL FETCH ObtainCatalogUID INTO |
| :catUID; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINCATALOGUID",0, 0, |
| 16}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, "OBTAINCATALOGUID_0_OVAR",0 |
| , 0, |
| 23}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Fetch(&__SQL_id0,&__SQL_id1,1,&(catUID),(long)0)) != 0);} |
| |
| catalogUID = catUID; |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::closeCatalogUID |
| *********************************************************/ |
| Int32 QRQueries::closeCatalogUID() |
| { |
| /* EXEC SQL CLOSE ObtainCatalogUID; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINCATALOGUID",0, 0, |
| 16}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_CloseStmt(&__SQL_id0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // |
| // QRQueries::openVersion |
| // |
| *********************************************************/ |
| Lng32 QRQueries::openVersion(_int64 catalogUID) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| _int64 catUID; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| catUID = catalogUID; |
| |
| /* EXEC SQL DECLARE ObtainSystemSchemaVersion CURSOR FOR |
| SELECT DISTINCT schema_version from :schemataName_ prototype 'HP_SYSTEM_CATALOG.SYSTEM_SCHEMA.SCHEMATA' |
| where CAT_UID = :catUID |
| FOR READ COMMITTED ACCESS IN SHARE MODE; */ |
| |
| /* EXEC SQL OPEN ObtainSystemSchemaVersion; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, |
| "OBTAINSYSTEMSCHEMAVERSION",0, 0, |
| 25}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "SQLMX_DEFAULT_STATEMENT_22_0_IVAR",0, 0, |
| 33}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Exec(&__SQL_id0,&__SQL_id1,2,&(schemataName_[0]),(long)0, |
| &(catUID),(long)0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::fetchVersion |
| *********************************************************/ |
| Lng32 QRQueries::fetchVersion(Int32& version) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| Int32 ver; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| /* EXEC SQL FETCH ObtainSystemSchemaVersion INTO :ver; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, |
| "OBTAINSYSTEMSCHEMAVERSION",0, 0, |
| 25}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "OBTAINSYSTEMSCHEMAVERSION_0_OVAR",0, 0, |
| 32}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Fetch(&__SQL_id0,&__SQL_id1,1,&(ver),(long)0)) != 0);} |
| |
| version = ver; |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::closeVersion |
| *********************************************************/ |
| Int32 QRQueries::closeVersion() |
| { |
| /* EXEC SQL CLOSE ObtainSystemSchemaVersion; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, |
| "OBTAINSYSTEMSCHEMAVERSION",0, 0, |
| 25}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_CloseStmt(&__SQL_id0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // |
| // QRQueries::openCatalogNames |
| // |
| *********************************************************/ |
| Lng32 QRQueries::openCatalogNames() |
| { |
| /* EXEC SQL DECLARE ObtainCatalogNames CURSOR FOR |
| SELECT rtrim(cat_name) from :catsysName_ prototype 'HP_SYSTEM_CATALOG.SYSTEM_SCHEMA.CATSYS' |
| FOR READ COMMITTED ACCESS IN SHARE MODE ORDER BY 1; */ |
| |
| /* EXEC SQL OPEN ObtainCatalogNames; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINCATALOGNAMES",0, 0 |
| , |
| 18}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "SQLMX_DEFAULT_STATEMENT_26_0_IVAR",0, 0, |
| 33}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Exec(&__SQL_id0,&__SQL_id1,1,&(catsysName_[0]),(long)0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::fetchCatalogNames |
| *********************************************************/ |
| Lng32 QRQueries::fetchCatalogNames(NAString& catalogName) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| /* char CHARACTER SET IS UCS2 */ wchar_t catName[MAX_1_PART_INTERNAL_NAME_LEN_PLUS_1]; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| wc_str_pad(catName, MAX_1_PART_INTERNAL_NAME_LEN); |
| ((NAWchar*)catName)[MAX_1_PART_INTERNAL_NAME_LEN] = 0; |
| |
| /* EXEC SQL FETCH ObtainCatalogNames INTO :catName; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINCATALOGNAMES",0, 0 |
| , |
| 18}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, "OBTAINCATALOGNAMES_0_OVAR", |
| 0, 0, |
| 25}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Fetch(&__SQL_id0,&__SQL_id1,1,&(catName),(long)0)) != 0);} |
| |
| if (SQLCODE == 0) |
| { |
| /* FIX_CHAR(catName); */ |
| StripTrailingBlanks(catName, MAX_1_PART_INTERNAL_NAME_LEN_PLUS_1); |
| char tmpCatName[MAX_CATALOG_NAME+1]; |
| tmpCatName[MAX_CATALOG_NAME] = 0; |
| char * p1stUnstranslatedChar = NULL; |
| UInt32 outStrLenInBytes = 0; |
| UInt32 charCount = 0; /* number of characters translated/converted */ |
| Int32 cnvErrStatus = 0; |
| char *pSubstitutionChar = NULL; /* Use ? */ |
| Int32 convFlags = 0; |
| cnvErrStatus = UTF16ToLocale |
| ( cnv_version1 /* in - const enum cnv_version version */ |
| , (const char *)catName /* in - const char *in_bufr */ |
| , NAWstrlen(catName)*BYTES_PER_NAWCHAR /* in - const int in_len */ |
| , tmpCatName /* out - const char *out_bufr */ |
| , MAX_CATALOG_NAME /* in - const int out_len */ |
| , cnv_UTF8 /* in - enum cnv_charset charset */ |
| , p1stUnstranslatedChar /* out - char * & first_untranslated_char */ |
| , &outStrLenInBytes /* out - unsigned int *output_data_len_p */ |
| , convFlags /* in - const int cnv_flags */ |
| , (Int32)TRUE /* in - const int addNullAtEnd_flag */ |
| , (Int32)TRUE /* in - const int allow_invalids */ |
| , &charCount /* out - unsigned int * translated_char_cnt_p */ |
| , pSubstitutionChar /* in - const char *substitution_char */ |
| ); |
| /* Conversion from UTF16 to UTF8 should always be successful */ |
| catalogName = tmpCatName; |
| } |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::closeCatalogNames |
| *********************************************************/ |
| Int32 QRQueries::closeCatalogNames() |
| { |
| /* EXEC SQL CLOSE ObtainCatalogNames; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINCATALOGNAMES",0, 0 |
| , |
| 18}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_CloseStmt(&__SQL_id0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // |
| // QRQueries::openMvUIDs |
| // |
| *********************************************************/ |
| Lng32 QRQueries::openMvInformation(const NAString& definitionSchema) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| char objectsTable[MAX_SMD_TABLE_NAME]; |
| char mvsTable[MAX_SMD_TABLE_NAME]; |
| char mvsUsedTable[MAX_SMD_TABLE_NAME]; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| memset (objectsTable, ' ', MAX_SMD_TABLE_NAME); |
| strcpy (objectsTable, definitionSchema); |
| strcat (objectsTable, ".OBJECTS"); |
| |
| memset (mvsTable, ' ', MAX_SMD_TABLE_NAME); |
| strcpy (mvsTable, definitionSchema); |
| strcat (mvsTable, ".MVS"); |
| |
| memset (mvsUsedTable, ' ', MAX_SMD_TABLE_NAME); |
| strcpy (mvsUsedTable, definitionSchema); |
| strcat (mvsUsedTable, ".MVS_USED"); |
| |
| /* EXEC SQL DECLARE ObtainMvUID CURSOR FOR |
| select object_uid, redef_time, refreshed_at, sum(is_IC) has_IC |
| from (select o1.object_uid, |
| o1.redef_time, |
| refreshed_at, |
| case table_attributes when 'NO' then 0 |
| when 'IC' then 1 |
| end as is_IC |
| from :objectsTable prototype 'HP_SYSTEM_CATALOG.HP_DEFINITION_SCHEMA.OBJECTS' o1, |
| :objectsTable prototype 'HP_SYSTEM_CATALOG.HP_DEFINITION_SCHEMA.OBJECTS' o2, |
| :mvsTable prototype 'HP_SYSTEM_CATALOG.HP_DEFINITION_SCHEMA.MVS' mvs, |
| :mvsUsedTable prototype 'HP_SYSTEM_CATALOG.HP_DEFINITION_SCHEMA.MVS_USED' mvs_used |
| where o1.object_type = _iso88591'MV' and |
| o1.object_uid = mvs.mv_uid and |
| o1.object_uid = mvs_used.mv_uid and |
| mvs_used.used_object_uid = o2.object_uid and |
| mvs.REWRITE_ENABLED = 'Y' |
| FOR SKIP CONFLICT ACCESS IN SHARE MODE |
| ) T (object_uid, redef_time, refreshed_at, is_IC) |
| group by object_uid, redef_time, refreshed_at; */ |
| |
| /* EXEC SQL OPEN ObtainMvUID; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINMVUID",0, 0, |
| 11}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "SQLMX_DEFAULT_STATEMENT_30_0_IVAR",0, 0, |
| 33}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Exec(&__SQL_id0,&__SQL_id1,3,&(objectsTable[0]),(long)0, |
| &(mvsTable[0]),(long)0,&(mvsUsedTable[0]),(long)0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::fetchMvUIDs |
| *********************************************************/ |
| Lng32 QRQueries::fetchMvInformation(QRMVData *data) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| QRMVDataStruct *hostVarP = data; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| /* EXEC SQL FETCH ObtainMvUID INTO :hostVarP->objectUID_, |
| :hostVarP->redefTime_, |
| :hostVarP->refreshedAt_, |
| :hostVarP->hasIgnoreChanges_; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINMVUID",0, 0, |
| 11}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, "OBTAINMVUID_0_OVAR",0, 0, |
| 18}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Fetch(&__SQL_id0,&__SQL_id1,4,&(hostVarP->objectUID_),(long)0, |
| &(hostVarP->redefTime_),(long)0,&(hostVarP->refreshedAt_),(long)0, |
| &(hostVarP->hasIgnoreChanges_),(long)0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::closeMvUIDs |
| *********************************************************/ |
| Lng32 QRQueries::closeMvInformation() |
| { |
| /* EXEC SQL CLOSE ObtainMvUID; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINMVUID",0, 0, |
| 11}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_CloseStmt(&__SQL_id0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // |
| // QRQueries::openMvDescriptorText |
| // |
| *********************************************************/ |
| Lng32 QRQueries::openMvDescriptorText(const NAString& textTable, |
| _int64 objectUID) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| char txtTbl[MAX_SMD_TABLE_NAME]; |
| _int64 objUID; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| memset (txtTbl, ' ', MAX_SMD_TABLE_NAME); |
| memcpy (txtTbl, textTable, strlen(textTable)); |
| |
| objUID = objectUID; |
| |
| /* EXEC SQL DECLARE ObtainMvDescriptorText CURSOR FOR |
| select TEXT, character_length(TEXT) |
| from :txtTbl prototype 'HP_SYSTEM_CATALOG.HP_DEFINITION_SCHEMA.TEXT' t |
| where t.object_uid = :objUID and |
| t.object_sub_id = -2 |
| FOR READ COMMITTED ACCESS IN SHARE MODE order by sequence_num; */ |
| |
| /* EXEC SQL OPEN ObtainMvDescriptorText; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINMVDESCRIPTORTEXT",0 |
| , 0, |
| 22}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "SQLMX_DEFAULT_STATEMENT_34_0_IVAR",0, 0, |
| 33}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Exec(&__SQL_id0,&__SQL_id1,2,&(txtTbl[0]),(long)0,&(objUID), |
| (long)0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::fetchMvDescriptorText |
| *********************************************************/ |
| Int32 QRQueries::fetchMvDescriptorText(QRMVData *data) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| QRMVDataStruct *hostVarP = data; |
| Int32 textSizeInNAWchars = 0; |
| /* char CHARACTER SET IS UCS2 */ wchar_t mvDescText[MAX_MV_UCS2_TEXT_SIZE_PLUS_1]; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| mvDescText[MAX_MV_UCS2_TEXT_SIZE] = 0; |
| /* EXEC SQL FETCH ObtainMvDescriptorText INTO :mvDescText |
| ,:textSizeInNAWchars; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINMVDESCRIPTORTEXT",0 |
| , 0, |
| 22}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "OBTAINMVDESCRIPTORTEXT_0_OVAR",0, 0, |
| 29}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Fetch(&__SQL_id0,&__SQL_id1,2,&(mvDescText),(long)0, |
| &(textSizeInNAWchars),(long)0)) != 0);} |
| if (textSizeInNAWchars <= 0) |
| { |
| hostVarP->mvText_[0] = 0; |
| return SQLCODE; |
| } |
| |
| hostVarP->mvText_[MAX_MV_UTF8_TEXT_IN_BYTES - 1] = 0; |
| |
| char * p1stUnstranslatedChar = NULL; |
| UInt32 outStrLenInBytes = 0; |
| UInt32 charCount = 0; /* number of characters translated/converted */ |
| Int32 cnvErrStatus = 0; |
| char *pSubstitutionChar = NULL; /* Use ? */ |
| Int32 convFlags = 0; |
| cnvErrStatus = UTF16ToLocale |
| ( cnv_version1 /* in - const enum cnv_version version */ |
| , (const char *)mvDescText /* in - const char *in_bufr */ |
| , textSizeInNAWchars*BYTES_PER_NAWCHAR /* in - const int in_len */ |
| , hostVarP->mvText_ /* out - const char *out_bufr */ |
| , MAX_MV_UTF8_TEXT_IN_BYTES /* in - const int out_len */ |
| , cnv_UTF8 /* in - enum cnv_charset charset */ |
| , p1stUnstranslatedChar /* out - char * & first_untranslated_char */ |
| , &outStrLenInBytes /* out - unsigned int *output_data_len_p */ |
| , convFlags /* in - const int cnv_flags */ |
| , (Int32)TRUE /* in - const int addNullAtEnd_flag */ |
| , (Int32)TRUE /* in - const int allow_invalids */ |
| , &charCount /* out - unsigned int * translated_char_cnt_p */ |
| , pSubstitutionChar /* in - const char *substitution_char */ |
| ); |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::closeMvDescriptorText |
| *********************************************************/ |
| Int32 QRQueries::closeMvDescriptorText() |
| { |
| /* EXEC SQL CLOSE ObtainMvDescriptorText; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINMVDESCRIPTORTEXT",0 |
| , 0, |
| 22}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_CloseStmt(&__SQL_id0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // |
| // QRQueries::openRewritePublish |
| // |
| *********************************************************/ |
| Lng32 QRQueries::openRewritePublish(const char* rewriteTableName) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| char rewriteTable[MAX_REWRITE_TABLE]; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| memset (rewriteTable, ' ', MAX_REWRITE_TABLE); |
| memcpy (rewriteTable, rewriteTableName, strlen(rewriteTableName)); |
| |
| /* EXEC SQL DECLARE ObtainRewritePublish CURSOR FOR |
| SELECT operation_timestamp, |
| redef_time, |
| refresh_at_time, |
| object_uid, |
| catalog_uid, |
| object_name, |
| object_new_name, |
| descriptor_index, |
| operation_type, |
| ignore_changes_used |
| FROM (delete from :rewriteTable prototype 'HP_SYSTEM_CATALOG.SYSTEM_SCHEMA.REWRITE_PUBLISH' |
| FOR SKIP CONFLICT ACCESS) as T |
| ORDER BY OPERATION_TIMESTAMP; */ |
| |
| /* EXEC SQL OPEN ObtainRewritePublish; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINREWRITEPUBLISH",0, |
| 0, |
| 20}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "SQLMX_DEFAULT_STATEMENT_38_0_IVAR",0, 0, |
| 33}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Exec(&__SQL_id0,&__SQL_id1,1,&(rewriteTable[0]),(long)0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::fetchRewritePublish |
| *********************************************************/ |
| Lng32 QRQueries::fetchRewritePublish(MVQR_Publish *publish) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| MVQR_PublishStruct *hostVarP = publish; |
| /* char CHARACTER SET UCS2 */ wchar_t objectName [MAX_OBJECT_NAME_IN_NAWCHARS+1]; /* plus 1 extra NAWchar */ |
| /* char CHARACTER SET UCS2 */ wchar_t objectNewName[MAX_OBJECT_NAME_IN_NAWCHARS+1]; /* plus 1 extra NAWchar */ |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| /* SeaQuest Unicode - begin */ |
| wc_str_pad((NAWchar*)objectName , MAX_OBJECT_NAME_IN_NAWCHARS); |
| wc_str_pad((NAWchar*)objectNewName, MAX_OBJECT_NAME_IN_NAWCHARS); |
| ((NAWchar*)objectName )[MAX_OBJECT_NAME_IN_NAWCHARS] = 0; // add a NULL terminator |
| ((NAWchar*)objectNewName)[MAX_OBJECT_NAME_IN_NAWCHARS] = 0; // add a NULL terminator |
| /* SeaQuest Unicode - end */ |
| |
| /* EXEC SQL FETCH ObtainRewritePublish INTO |
| :hostVarP->operationTimestamp_, |
| :hostVarP->redefTime_, |
| :hostVarP->refreshedAt_, |
| :hostVarP->objectUID_, |
| :hostVarP->catalogUID_, |
| :objectName, |
| :objectNewName INDICATOR :hostVarP->nullindObjectNewName_, |
| :hostVarP->descriptorIndex_ INDICATOR :hostVarP->nullindDescriptorIndex_, |
| :hostVarP->operationType_, |
| :hostVarP->ignoreChangesUsed_ INDICATOR :hostVarP->nullindIgnoreChangesUsed_; |
| */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINREWRITEPUBLISH",0, |
| 0, |
| 20}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "OBTAINREWRITEPUBLISH_0_OVAR",0, 0, |
| 27}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Fetch(&__SQL_id0,&__SQL_id1,10,&(hostVarP->operationTimestamp_), |
| (long)0,&(hostVarP->redefTime_),(long)0,&(hostVarP->refreshedAt_),(long)0 |
| ,&(hostVarP->objectUID_),(long)0,&(hostVarP->catalogUID_),(long)0, |
| &(objectName),(long)0,&(objectNewName),&(hostVarP->nullindObjectNewName_) |
| ,&(hostVarP->descriptorIndex_),&(hostVarP->nullindDescriptorIndex_), |
| &(hostVarP->operationType_[0]),(long)0,&(hostVarP->ignoreChangesUsed_[0]) |
| ,&(hostVarP->nullindIgnoreChangesUsed_))) != 0);} |
| |
| if ((SQLCODE >= 0) && (SQLCODE != 100)) |
| { |
| /* Old - Keep it here for comparison purposes |
| FIX_CHAR(hostVarP->objectName_); |
| FIX_CHAR(hostVarP->objectNewName_); |
| */ |
| /* SeaQuest Unicode - begin */ |
| NAWchar tmpObjName[MAX_OBJECT_NAME_IN_NAWCHARS+1]; /* plus 1 extra NAWchar */ |
| NAWstrncpy(tmpObjName, (const NAWchar *)objectName, |
| MAX_OBJECT_NAME_IN_NAWCHARS-1); |
| tmpObjName[MAX_OBJECT_NAME_IN_NAWCHARS-1] = 0; |
| StripTrailingBlanks (tmpObjName, (Int32)MAX_OBJECT_NAME_IN_NAWCHARS); |
| |
| char * p1stUnstranslatedChar = NULL; |
| UInt32 outStrLenInBytes = 0; |
| UInt32 charCount = 0; /* number of characters translated/converted */ |
| Int32 cnvErrStatus = 0; |
| char *pSubstitutionChar = NULL; /* Use ? as the substitute character for invalid chars - the default*/ |
| Int32 convFlags = 0; |
| cnvErrStatus = UTF16ToLocale |
| ( cnv_version1 /* in - const enum cnv_version version */ |
| , (const char *)tmpObjName /* in - const char *in_bufr */ |
| , NAWstrlen(tmpObjName)*BYTES_PER_NAWCHAR /* in - const int in_len */ |
| , hostVarP->objectName_ /* out - const char *out_bufr */ |
| , MAX_OBJECT_NAME /* in - const int out_len */ |
| , cnv_UTF8 /* in - enum cnv_charset charset */ |
| , p1stUnstranslatedChar /* out - char * & first_untranslated_char */ |
| , &outStrLenInBytes /* out - unsigned int *output_data_len_p */ |
| , convFlags /* in - const int cnv_flags */ |
| , (Int32)TRUE /* in - const int addNullAtEnd_flag */ |
| , (Int32)TRUE /* in - const int allow_invalids */ |
| , &charCount /* out - unsigned int * translated_char_cnt_p */ |
| , pSubstitutionChar /* in - const char *substitution_char */ |
| ); |
| |
| NAWstrncpy(tmpObjName, (const NAWchar *)objectNewName, |
| MAX_OBJECT_NAME_IN_NAWCHARS-1); |
| tmpObjName[MAX_OBJECT_NAME_IN_NAWCHARS-1] = 0; |
| StripTrailingBlanks (tmpObjName, (Int32)MAX_OBJECT_NAME_IN_NAWCHARS); |
| |
| p1stUnstranslatedChar = NULL; |
| outStrLenInBytes = 0; |
| charCount = 0; /* number of characters translated/converted */ |
| cnvErrStatus = 0; |
| pSubstitutionChar = NULL; /* Use ? */ |
| convFlags = 0; |
| cnvErrStatus = UTF16ToLocale |
| ( cnv_version1 /* in - const enum cnv_version version */ |
| , (const char *)tmpObjName /* in - const char *in_bufr */ |
| , NAWstrlen(tmpObjName)*BYTES_PER_NAWCHAR /* in - const int in_len */ |
| , hostVarP->objectNewName_ /* out - const char *out_bufr */ |
| , MAX_OBJECT_NAME /* in - const int out_len */ |
| , cnv_UTF8 /* in - enum cnv_charset charset */ |
| , p1stUnstranslatedChar /* out - char * & first_untranslated_char */ |
| , &outStrLenInBytes /* out - unsigned int *output_data_len_p */ |
| , convFlags /* in - const int cnv_flags */ |
| , (Int32)TRUE /* in - const int addNullAtEnd_flag */ |
| , (Int32)TRUE /* in - const int allow_invalids */ |
| , &charCount /* out - unsigned int * translated_char_cnt_p */ |
| , pSubstitutionChar /* in - const char *substitution_char */ |
| ); |
| /* SeaQuest Unicode - end */ |
| FIX_CHAR(hostVarP->operationType_); |
| FIX_CHAR(hostVarP->ignoreChangesUsed_); |
| } |
| |
| /*----- FOR DEBUGGING DIAG USE THID |
| //=================================================================== |
| long backSQLCODE = SQLCODE; |
| |
| EXEC SQL BEGIN DECLARE SECTION; |
| long i,num, hv_cond_num,hv_sqlcode; |
| char hv_sqlstate[6]; |
| char hv_message_text[256]; |
| EXEC SQL END DECLARE SECTION; |
| |
| memset (hv_sqlstate, ' ', 6); |
| memset (hv_message_text, ' ', 256); |
| |
| exec sql get diagnostics :num = NUMBER; |
| |
| FILE *myf = fopen ("mymvqrlog", "ac"); |
| |
| if (num > 0) |
| fprintf(myf, "---========= BEGIN OPEN DIAGS =========---\n"); |
| |
| for (i=1;i<=num;i++) { |
| exec sql get diagnostics exception :i |
| :hv_cond_num = CONDITION_NUMBER, |
| :hv_sqlstate = RETURNED_SQLSTATE, |
| :hv_message_text = MESSAGE_TEXT, |
| :hv_sqlcode = SQLCODE; |
| |
| hv_sqlstate[5] = 0; |
| fprintf(myf, "condition number: %d\n", hv_cond_num); |
| fprintf(myf, "sqlstate: %s\n", hv_sqlstate); |
| fprintf(myf, "message text: %s\n", hv_message_text); |
| fprintf(myf, "sqlcode: %ld\n", hv_sqlcode); |
| fprintf(myf, "\n"); |
| } |
| if (num > 0) |
| fprintf(myf, "---========= END OPEN DIAGS =========---\n"); |
| |
| fclose (myf); |
| |
| return backSQLCODE; |
| |
| //=================================================================== |
| ----------------- END DEBUG DIAG ---*/ |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::closeRewritePublish |
| *********************************************************/ |
| Int32 QRQueries::closeRewritePublish() |
| { |
| /* EXEC SQL CLOSE ObtainRewritePublish; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINREWRITEPUBLISH",0, |
| 0, |
| 20}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_CloseStmt(&__SQL_id0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| |
| /********************************************************* |
| // |
| // QRQueries::openMVNames |
| // |
| *********************************************************/ |
| Lng32 QRQueries::openMVNames(const NAString& definitionSchema) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| char objectsTable[MAX_SMD_TABLE_NAME]; |
| char mvsTable[MAX_SMD_TABLE_NAME]; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| memset (objectsTable, ' ', MAX_SMD_TABLE_NAME); |
| strcpy (objectsTable, definitionSchema); |
| strcat (objectsTable, ".OBJECTS"); |
| |
| memset (mvsTable, ' ', MAX_SMD_TABLE_NAME); |
| strcpy (mvsTable, definitionSchema); |
| strcat (mvsTable, ".MVS"); |
| |
| /* EXEC SQL DECLARE ObtainMVNames CURSOR FOR |
| SELECT translate(rtrim(o.object_name) using ucs2toutf8), |
| translate(rtrim(sch.schema_name) using ucs2toutf8) |
| FROM :objectsTable prototype 'HP_SYSTEM_CATALOG.HP_DEFINITION_SCHEMA.OBJECTS' o, |
| :schemataName_ prototype 'HP_SYSTEM_CATALOG.SYSTEM_SCHEMA.SCHEMATA' sch, |
| :mvsTable prototype 'HP_SYSTEM_CATALOG.HP_DEFINITION_SCHEMA.MVS' mvs |
| WHERE o.object_type = _iso88591'MV' and |
| o.object_uid = mvs.mv_uid and |
| o.schema_uid = sch.schema_uid and |
| mvs.REWRITE_ENABLED = _iso88591'Y' |
| ORDER BY 1 |
| FOR SKIP CONFLICT ACCESS IN SHARE MODE; */ |
| |
| /* EXEC SQL OPEN ObtainMVNames; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINMVNAMES",0, 0, |
| 13}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "SQLMX_DEFAULT_STATEMENT_42_0_IVAR",0, 0, |
| 33}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Exec(&__SQL_id0,&__SQL_id1,3,&(objectsTable[0]),(long)0, |
| &(schemataName_[0]),(long)0,&(mvsTable[0]),(long)0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::fetchMVNames |
| *********************************************************/ |
| Lng32 QRQueries::fetchMVNames(NAString& objectName, NAString& schemaName) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| char objName[MAX_OBJECT_NAME]; |
| char schName[MAX_OBJECT_NAME]; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| /* EXEC SQL FETCH ObtainMVNames INTO :objName, |
| :schName; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINMVNAMES",0, 0, |
| 13}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, "OBTAINMVNAMES_0_OVAR",0, 0 |
| , |
| 20}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Fetch(&__SQL_id0,&__SQL_id1,2,&(objName[0]),(long)0, |
| &(schName[0]),(long)0)) != 0);} |
| |
| if (SQLCODE == 0) |
| { |
| FIX_CHAR(objName); |
| objectName = objName; |
| FIX_CHAR(schName); |
| schemaName = schName; |
| } |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::closeMVNames |
| *********************************************************/ |
| Lng32 QRQueries::closeMVNames() |
| { |
| /* EXEC SQL CLOSE ObtainMVNames; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, cursor_name, &__SQL_mod_199222286715188012, "OBTAINMVNAMES",0, 0, |
| 13}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_CloseStmt(&__SQL_id0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::setParserFlags |
| *********************************************************/ |
| Lng32 QRQueries::setParserFlags() |
| { |
| /* EXEC SQL set parserflags 3; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, stmt_name, &__SQL_mod_199222286715188012, "SQLMX_DEFAULT_STATEMENT_45" |
| ,0, 0, |
| 26}; |
| if (SQLCODE = SQL_EXEC_ClearExecFetchClose(&__SQL_id0,(long)0,(long)0,0,0 |
| ,0));} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::controlQueryDefault |
| *********************************************************/ |
| Lng32 QRQueries::controlQueryDefault(const NAString& cqdName, |
| const NAString& cqdValue) |
| { |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| /* char */ char cqdText[MAX_UTF8_CMD_LEN_IN_BYTES_PLUS_1]; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| sprintf(cqdText, "CONTROL QUERY DEFAULT %.200s '%.200s';", |
| cqdName.data(), |
| cqdValue.data() ); |
| |
| /* EXEC SQL PREPARE cqdStmt FROM :cqdText; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, stmt_name, &__SQL_mod_199222286715188012, "CQDSTMT",0, 0, |
| 7}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "SQLMX_DEFAULT_STATEMENT_46_0_ANON",0, 0, |
| 33}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_SetDescPointers(&__SQL_id1,1,1,&(cqdText[0]),(long)0)) != 0 ||( |
| SQL_EXEC_DeallocStmt(&__SQL_id0) && (0)) ||(SQLCODE = |
| SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_AllocStmt(&__SQL_id0,(long)0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Prepare(&__SQL_id0,&__SQL_id1)) != 0);} |
| if (SQLCODE) |
| return SQLCODE; |
| |
| /* EXEC SQL EXECUTE cqdStmt; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, stmt_name, &__SQL_mod_199222286715188012, "CQDSTMT",0, 0, |
| 7}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_ExecFetch(&__SQL_id0,(long)0,0)) != 0);} |
| |
| return SQLCODE; |
| } |
| |
| /********************************************************* |
| // QRQueries::reDescribeMV |
| *********************************************************/ |
| Lng32 QRQueries::reDescribeMV(const NAString& mvName, NABoolean rePublish) |
| { |
| #if 0 |
| /* EXEC SQL BEGIN DECLARE SECTION; */ |
| /* char */ char catRequestText[MAX_UTF8_CMD_LEN_IN_BYTES_PLUS_1]; |
| /* EXEC SQL END DECLARE SECTION; */ |
| |
| sprintf(catRequestText, "CREATE TANDEM_CAT_REQUEST&1 %d 2 @%.200s@ @%d@;", |
| MV_QR_CREATE_DESC, mvName.data(), |
| (rePublish ? 1 : 0) ); |
| |
| /* EXEC SQL PREPARE catRequestStmt FROM :catRequestText; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, stmt_name, &__SQL_mod_199222286715188012, "CATREQUESTSTMT",0, 0, |
| 14}; |
| static struct SQLCLI_OBJ_ID __SQL_id1 = { |
| 1, desc_name, &__SQL_mod_199222286715188012, |
| "SQLMX_DEFAULT_STATEMENT_48_0_ANON",0, 0, |
| 33}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_SetDescPointers(&__SQL_id1,1,1,&(catRequestText[0]),(long)0)) |
| != 0 ||(SQL_EXEC_DeallocStmt(&__SQL_id0) && (0)) ||(SQLCODE = |
| SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_AllocStmt(&__SQL_id0,(long)0)) != 0 ||(SQLCODE = |
| SQL_EXEC_Prepare(&__SQL_id0,&__SQL_id1)) != 0);} |
| if (SQLCODE) |
| return SQLCODE; |
| |
| /* EXEC SQL EXECUTE catRequestStmt; */ |
| { |
| static struct SQLCLI_OBJ_ID __SQL_id0 = { |
| 1, stmt_name, &__SQL_mod_199222286715188012, "CATREQUESTSTMT",0, 0, |
| 14}; |
| if ((SQLCODE = SQL_EXEC_ClearDiagnostics(&__SQL_id0)) != 0 ||(SQLCODE = |
| SQL_EXEC_ExecFetch(&__SQL_id0,(long)0,0)) != 0);} |
| |
| return SQLCODE; |
| #endif |
| return 0; |
| } |
| |
| #ifdef __linux__ |
| SQLMODULE_ID __SQL_mod_199222286715188012 = { |
| /* version */ 1, |
| /* module name */ "HP_SYSTEM_CATALOG.SYSTEM_SCHEMA.MVQR_N29_000", |
| /* timestamp */ 199222286715188012LL, |
| /* char set */ "ISO88591", |
| /* name len */ 44 }; |
| #else |
| SQLMODULE_ID __SQL_mod_199222286715188012 = { |
| /* version */ 1, |
| /* module name */ "HP_SYSTEM_CATALOG.SYSTEM_SCHEMA.MVQR_N29_000", |
| /* timestamp */ 199222286715188012, |
| /* char set */ "ISO88591", |
| /* name len */ 44 }; |
| #endif |
| |
| /* #pragma sql module identification function */ |
| |
| unsigned char* |
| QRQueries_cpp199222286715188012() |
| { |
| static unsigned char buffer[] = { |
| 45,45,66,69,71,73,78,95,83,81,76,47,77,88,43 |
| ,109,79,68,85,108,201,32,100,101,102,42,48,49,50,51 |
| ,52,53,54,55,56,57,97,98,99,103,104,105,106,107,110 |
| ,111,112,113,114,115,116,117,118,119,120,121,122,65,67,70 |
| ,72,74,75,80,82,84,86,87,89,90,33,35,36,37,39 |
| ,40,41,44,46,58,59,60,61,62,63,64,91,92,93,94 |
| ,96,123,124,125,126,0,44,72,80,95,83,89,83,84,69 |
| ,77,95,67,65,84,65,76,79,71,46,83,89,83,84,69 |
| ,77,95,83,67,72,69,77,65,46,77,86,81,82,95,78 |
| ,50,57,95,48,48,48,45,45,45,32,72,101,119,108,101 |
| ,116,116,45,80,97,99,107,97,114,100,32,78,111,110,83 |
| ,116,111,112,40,84,77,41,32,83,81,76,47,77,88,32 |
| ,67,47,67,43,43,32,80,114,101,112,114,111,99,101,115 |
| ,115,111,114,32,50,46,53,32,103,101,110,101,114,97,116 |
| ,101,100,32,109,111,100,117,108,101,32,100,101,102,105,110 |
| ,105,116,105,111,110,32,102,105,108,101,46,10,10,77,79 |
| ,68,85,76,69,32,72,80,95,83,89,83,84,69,77,95 |
| ,67,65,84,65,76,79,71,46,83,89,83,84,69,77,95 |
| ,83,67,72,69,77,65,46,77,86,81,82,95,78,50,57 |
| ,95,48,48,48,32,78,65,77,69,83,32,65,82,69,32 |
| ,73,83,79,56,56,53,57,49,59,10,84,73,77,69,83 |
| ,84,65,77,80,32,68,69,70,73,78,73,84,73,79,78 |
| ,32,40,49,57,57,50,50,50,50,56,54,55,49,53,49 |
| ,56,56,48,49,50,41,59,10,83,79,85,82,67,69,95 |
| ,70,73,76,69,32,39,92,92,115,113,119,115,50,52,92 |
| ,47,104,111,109,101,47,100,117,106,117,115,116,105,110,47 |
| ,115,113,108,95,54,52,98,105,116,95,99,111,109,112,105 |
| ,108,101,47,115,113,108,47,113,109,115,99,111,109,109,111 |
| ,110,47,81,82,81,117,101,114,105,101,115,46,115,113,108 |
| ,39,59,10,10,45,45,45,45,45,45,45,45,45,32,83 |
| ,84,65,84,69,77,69,78,84,32,73,78,68,69,88,32 |
| ,48,32,45,45,45,45,45,45,45,45,45,10,80,82,79 |
| ,67,69,68,85,82,69,32,83,81,76,77,88,95,68,69 |
| ,70,65,85,76,84,95,83,84,65,84,69,77,69,78,84 |
| ,95,50,32,40,41,10,32,67,79,78,84,82,79,76,32 |
| ,81,85,69,82,89,32,68,69,70,65,85,76,84,32,67 |
| ,79,77,80,95,66,79,79,76,95,53,56,32,32,39,79 |
| ,78,39,59,10,10,45,45,45,45,45,45,45,45,45,32 |
| ,83,84,65,84,69,77,69,78,84,32,73,78,68,69,88 |
| ,32,49,32,45,45,45,45,45,45,45,45,45,10,80,82 |
| ,79,67,69,68,85,82,69,32,83,81,76,77,88,95,68 |
| ,69,70,65,85,76,84,95,83,84,65,84,69,77,69,78 |
| ,84,95,51,32,40,41,10,32,67,79,78,84,82,79,76 |
| ,32,81,85,69,82,89,32,68,69,70,65,85,76,84,32 |
| ,73,83,79,95,77,65,80,80,73,78,71,32,32,32,39 |
| ,73,83,79,56,56,53,57,49,39,59,10,10,45,45,45 |
| ,45,45,45,45,45,45,32,83,84,65,84,69,77,69,78 |
| ,84,32,73,78,68,69,88,32,50,32,45,45,45,45,45 |
| ,45,45,45,45,10,80,82,79,67,69,68,85,82,69,32 |
| ,83,81,76,77,88,95,68,69,70,65,85,76,84,95,83 |
| ,84,65,84,69,77,69,78,84,95,52,32,40,41,10,32 |
| ,67,79,78,84,82,79,76,32,81,85,69,82,89,32,68 |
| ,69,70,65,85,76,84,32,68,69,70,65,85,76,84,95 |
| ,67,72,65,82,83,69,84,32,32,39,73,83,79,56,56 |
| ,53,57,49,39,59,10,10,45,45,45,45,45,45,45,45 |
| ,45,32,83,84,65,84,69,77,69,78,84,32,73,78,68 |
| ,69,88,32,51,32,45,45,45,45,45,45,45,45,45,10 |
| ,80,82,79,67,69,68,85,82,69,32,83,81,76,77,88 |
| ,95,68,69,70,65,85,76,84,95,83,84,65,84,69,77 |
| ,69,78,84,95,53,32,40,41,10,32,67,79,78,84,82 |
| ,79,108,32,81,85,69,82,89,32,68,69,70,65,85,76 |
| ,84,32,83,84,82,69,65,77,95,84,73,77,69,79,85 |
| ,84,32,39,53,48,48,39,59,10,10,45,45,45,45,45 |
| ,45,45,45,45,32,83,84,65,84,69,77,69,78,84,32 |
| ,73,78,68,69,88,32,52,32,45,45,45,45,45,45,45 |
| ,45,45,10,80,82,79,67,69,68,85,82,69,32,83,81 |
| ,76,77,88,95,68,69,70,65,85,76,84,95,83,84,65 |
| ,84,69,77,69,78,84,95,54,32,40,41,10,32,66,69 |
| ,71,73,78,32,87,79,82,75,59,10,10,45,45,45,45 |
| ,45,45,45,45,45,32,83,84,65,84,69,77,69,78,84 |
| ,32,73,78,68,69,88,32,53,32,45,45,45,45,45,45 |
| ,45,45,45,10,80,82,79,67,69,68,85,82,69,32,83 |
| ,81,76,77,88,95,68,69,70,65,85,76,84,95,83,84 |
| ,65,84,69,77,69,78,84,95,55,32,40,41,10,32,67 |
| ,79,77,77,73,84,32,87,79,82,75,59,10,10,45,45 |
| ,45,45,45,45,45,45,45,32,83,84,65,84,69,77,69 |
| ,78,84,32,73,78,68,69,88,32,54,32,45,45,45,45 |
| ,45,45,45,45,45,10,80,82,79,67,69,68,85,82,69 |
| ,32,83,81,76,77,88,95,68,69,70,65,85,76,84,95 |
| ,83,84,65,84,69,77,69,78,84,95,56,32,40,41,10 |
| ,32,82,79,76,76,66,65,67,75,32,87,79,82,75,59 |
| ,10,10,45,45,45,45,45,45,45,45,45,32,83,84,65 |
| ,84,69,77,69,78,84,32,73,78,68,69,88,32,55,32 |
| ,45,45,45,45,45,45,45,45,45,10,80,82,79,67,69 |
| ,68,85,82,69,32,79,66,84,65,73,78,83,89,83,84 |
| ,69,77,68,69,70,65,85,76,84,83,32,40,34,115,121 |
| ,115,116,101,109,68,101,102,97,117,108,116,115,95,34,32 |
| ,67,72,65,82,65,67,84,69,82,40,54,53,41,44,34 |
| ,100,101,102,78,97,109,101,34,10,32,67,72,65,82,65 |
| ,67,84,69,82,40,57,57,57,41,32,67,72,65,82,65 |
| ,67,84,69,82,32,83,69,84,32,73,83,79,56,56,53 |
| ,57,49,41,10,32,68,69,67,76,65,82,69,32,79,98 |
| ,116,97,105,110,83,121,115,116,101,109,68,101,102,97,117 |
| ,108,116,115,32,67,85,82,83,79,82,32,70,79,82,10 |
| ,32,32,32,32,115,101,108,101,99,116,32,116,114,97,110 |
| ,115,108,97,116,101,40,97,116,116,114,95,118,97,108,117 |
| ,101,32,117,115,105,110,103,32,117,99,115,50,116,111,117 |
| ,116,102,56,41,44,32,111,99,116,101,116,95,108,101,110 |
| ,103,116,104,40,116,114,97,110,115,108,97,116,101,40,97 |
| ,116,116,114,95,118,97,108,117,101,32,117,115,105,110,103 |
| ,32,117,99,115,50,116,111,117,116,102,56,41,41,10,32 |
| ,32,32,32,102,114,111,109,32,58,34,115,121,115,116,101 |
| ,109,68,101,102,97,117,108,116,115,95,34,32,112,114,111 |
| ,116,111,116,121,112,101,32,39,72,80,95,83,89,83,84 |
| ,69,77,95,67,65,84,65,76,79,71,46,83,89,83,84 |
| ,69,77,95,68,69,70,65,85,76,84,83,95,83,67,72 |
| ,69,77,65,46,83,89,83,84,69,77,95,68,69,70,65 |
| ,85,76,84,83,39,10,32,32,32,32,32,119,104,101,114 |
| ,101,32,97,116,116,114,105,98,117,116,101,32,61,32,58 |
| ,34,100,101,102,78,97,109,101,34,59,10,10,65,76,76 |
| ,79,67,65,84,69,32,83,84,65,84,73,67,32,73,78 |
| ,80,85,84,32,68,69,83,67,82,73,80,84,79,82,32 |
| ,83,81,76,77,88,95,68,69,70,65,85,76,84,95,83 |
| ,84,65,84,69,77,69,78,84,95,49,48,95,48,95,73 |
| ,86,65,82,32,70,79,82,32,10,67,85,82,83,79,82 |
| ,32,83,81,76,77,88,95,68,69,70,65,85,76,84,95 |
| ,83,84,65,84,69,77,69,78,84,95,49,48,32,40,67 |
| ,72,65,82,65,67,84,69,82,40,54,53,41,32,78,79 |
| ,84,32,78,85,76,76,44,67,72,65,82,65,67,84,69 |
| ,82,40,57,57,57,41,10,32,67,72,65,82,65,67,84 |
| ,69,82,32,83,69,84,32,73,83,79,56,56,53,57,49 |
| ,32,78,79,84,32,78,85,76,76,41,59,10,10,65,76 |
| ,76,79,67,65,84,69,32,83,84,65,84,73,67,32,79 |
| ,85,84,80,85,84,32,68,69,83,67,82,73,80,84,79 |
| ,82,32,79,66,84,65,73,78,83,89,83,84,69,77,68 |
| ,69,70,65,85,76,84,83,95,48,95,79,86,65,82,32 |
| ,70,79,82,32,67,85,82,83,79,82,32,10,79,66,84 |
| ,65,73,78,83,89,83,84,69,77,68,69,70,65,85,76 |
| ,84,83,32,40,67,72,65,82,65,67,84,69,82,40,52 |
| ,48,48,48,41,32,78,79,84,32,78,85,76,76,44,73 |
| ,78,84,69,71,69,82,32,78,79,84,32,78,85,76,76 |
| ,41,59,10,10,45,45,45,45,45,45,45,45,45,32,83 |
| ,84,65,84,69,77,69,78,84,32,73,78,68,69,88,32 |
| ,56,32,45,45,45,45,45,45,45,45,45,10,80,82,79 |
| ,67,69,68,85,82,69,32,79,66,84,65,73,78,67,65 |
| ,84,65,76,79,71,78,65,77,69,32,40,34,99,97,116 |
| ,115,121,115,78,97,109,101,95,34,32,67,72,65,82,65 |
| ,67,84,69,82,40,52,57,41,44,34,99,97,116,85,73 |
| ,68,34,32,10,76,65,82,71,69,73,78,84,41,10,32 |
| ,68,69,67,76,65,82,69,32,79,98,116,97,105,110,67 |
| ,97,116,97,108,111,103,78,97,109,101,32,67,85,82,83 |
| ,79,82,32,70,79,82,10,32,32,32,83,69,76,69,67 |
| ,84,32,114,116,114,105,109,40,99,97,116,95,110,97,109 |
| ,101,41,32,102,114,111,109,32,58,34,99,97,116,115,121 |
| ,115,78,97,109,101,95,34,32,112,114,111,116,111,116,121 |
| ,112,101,32,39,72,80,95,83,89,83,84,69,77,95,67 |
| ,65,84,65,76,79,71,46,83,89,83,84,69,77,95,83 |
| ,67,72,69,77,65,46,67,65,84,83,89,83,39,10,32 |
| ,32,32,32,119,104,101,114,101,32,99,97,116,95,117,105 |
| ,100,32,61,32,58,34,99,97,116,85,73,68,34,32,10 |
| ,32,32,32,70,79,82,32,82,69,65,68,32,67,79,77 |
| ,77,73,84,84,69,68,32,65,67,67,69,83,83,32,73 |
| ,78,32,83,72,65,82,69,32,77,79,68,69,59,10,10 |
| ,65,76,76,79,67,65,84,69,32,83,84,65,84,73,67 |
| ,32,73,78,80,85,84,32,68,69,83,67,82,73,80,84 |
| ,79,82,32,83,81,76,77,88,95,68,69,70,65,85,76 |
| ,84,95,83,84,65,84,69,77,69,78,84,95,49,52,95 |
| ,48,95,73,86,65,82,32,70,79,82,32,10,67,85,82 |
| ,83,79,82,32,83,81,76,77,88,95,68,69,70,65,85 |
| ,76,84,95,83,84,65,84,69,77,69,78,84,95,49,52 |
| ,32,40,67,72,65,82,65,67,84,69,82,40,52,57,41 |
| ,32,78,79,84,32,78,85,76,76,44,76,65,82,71,69 |
| ,73,78,84,32,78,79,84,32,10,78,85,76,76,41,59 |
| ,10,10,65,76,76,79,67,65,84,69,32,83,84,65,84 |
| ,73,67,32,79,85,84,80,85,84,32,68,69,83,67,82 |
| ,73,80,84,79,82,32,79,66,84,65,73,78,67,65,84 |
| ,65,76,79,71,78,65,77,69,95,48,95,79,86,65,82 |
| ,32,70,79,82,32,67,85,82,83,79,82,32,10,79,66 |
| ,84,65,73,78,67,65,84,65,76,79,71,78,65,77,69 |
| ,32,40,67,72,65,82,65,67,84,69,82,40,49,50,56 |
| ,41,32,67,72,65,82,65,67,84,69,82,32,83,69,84 |
| ,32,85,67,83,50,32,78,79,84,32,78,85,76,76,41 |
| ,59,10,10,45,45,45,45,45,45,45,45,45,32,83,84 |
| ,65,84,69,77,69,78,84,32,73,78,68,69,88,32,57 |
| ,32,45,45,45,45,45,45,45,45,45,10,80,82,79,67 |
| ,69,68,85,82,69,32,79,66,84,65,73,78,67,65,84 |
| ,65,76,79,71,85,73,68,32,40,34,99,97,116,115,121 |
| ,115,78,97,109,101,95,34,32,67,72,65,82,65,67,84 |
| ,69,82,40,52,57,41,44,34,99,97,116,78,97,109,101 |
| ,34,32,10,67,72,65,82,65,67,84,69,82,40,53,49 |
| ,53,41,41,10,32,68,69,67,76,65,82,69,32,79,98 |
| ,116,97,105,110,67,97,116,97,108,111,103,85,73,68,32 |
| ,67,85,82,83,79,82,32,70,79,82,10,32,32,32,32 |
| ,83,69,76,69,67,84,32,99,97,116,95,117,105,100,32 |
| ,102,114,111,109,32,58,34,99,97,116,115,121,115,78,97 |
| ,109,101,95,34,32,112,114,111,116,111,116,121,112,101,32 |
| ,39,72,80,95,83,89,83,84,69,77,95,67,65,84,65 |
| ,76,79,71,46,83,89,83,84,69,77,95,83,67,72,69 |
| ,77,65,46,67,65,84,83,89,83,39,10,32,32,32,32 |
| ,119,104,101,114,101,32,99,97,116,95,110,97,109,101,32 |
| ,61,32,116,114,97,110,115,108,97,116,101,40,58,34,99 |
| ,97,116,78,97,109,101,34,32,117,115,105,110,103,32,117 |
| ,116,102,56,116,111,117,99,115,50,41,10,32,70,79,82 |
| ,32,82,69,65,68,32,67,79,77,77,73,84,84,69,68 |
| ,32,65,67,67,69,83,83,32,73,78,32,83,72,65,82 |
| ,69,32,77,79,68,69,59,10,10,65,76,76,79,67,65 |
| ,84,69,32,83,84,65,84,73,67,32,73,78,80,85,84 |
| ,32,68,69,83,67,82,73,80,84,79,82,32,83,81,76 |
| ,77,88,95,68,69,70,65,85,76,84,95,83,84,65,84 |
| ,69,77,69,78,84,95,49,56,95,48,95,73,86,65,82 |
| ,32,70,79,82,32,10,67,85,82,83,79,82,32,83,81 |
| ,76,77,88,95,68,69,70,65,85,76,84,95,83,84,65 |
| ,84,69,77,69,78,84,95,49,56,32,40,67,72,65,82 |
| ,65,67,84,69,82,40,52,57,41,32,78,79,84,32,78 |
| ,85,76,76,44,67,72,65,82,65,67,84,69,82,40,53 |
| ,49,53,41,32,10,78,79,84,32,78,85,76,76,41,59 |
| ,10,10,65,76,76,79,67,65,84,69,32,83,84,65,84 |
| ,73,67,32,79,85,84,80,85,84,32,68,69,83,67,82 |
| ,73,80,84,79,82,32,79,66,84,65,73,78,67,65,84 |
| ,65,76,79,71,85,73,68,95,48,95,79,86,65,82,32 |
| ,70,79,82,32,67,85,82,83,79,82,32,10,79,66,84 |
| ,65,73,78,67,65,84,65,76,79,71,85,73,68,32,40 |
| ,76,65,82,71,69,73,78,84,32,78,79,84,32,78,85 |
| ,76,76,41,59,10,10,45,45,45,45,45,45,45,45,45 |
| ,32,83,84,65,84,69,77,69,78,84,32,73,78,68,69 |
| ,88,32,49,48,32,45,45,45,45,45,45,45,45,45,10 |
| ,80,82,79,67,69,68,85,82,69,32,79,66,84,65,73 |
| ,78,83,89,83,84,69,77,83,67,72,69,77,65,86,69 |
| ,82,83,73,79,78,32,40,34,115,99,104,101,109,97,116 |
| ,97,78,97,109,101,95,34,32,67,72,65,82,65,67,84 |
| ,69,82,40,52,57,41,44,10,34,99,97,116,85,73,68 |
| ,34,32,76,65,82,71,69,73,78,84,41,10,32,68,69 |
| ,67,76,65,82,69,32,79,98,116,97,105,110,83,121,115 |
| ,116,101,109,83,99,104,101,109,97,86,101,114,115,105,111 |
| ,110,32,67,85,82,83,79,82,32,70,79,82,10,32,32 |
| ,32,32,83,69,76,69,67,84,32,68,73,83,84,73,78 |
| ,67,84,32,115,99,104,101,109,97,95,118,101,114,115,105 |
| ,111,110,32,102,114,111,109,32,58,34,115,99,104,101,109 |
| ,97,116,97,78,97,109,101,95,34,32,112,114,111,116,111 |
| ,116,121,112,101,32,39,72,80,95,83,89,83,84,69,77 |
| ,95,67,65,84,65,76,79,71,46,83,89,83,84,69,77 |
| ,95,83,67,72,69,77,65,46,83,67,72,69,77,65,84 |
| ,65,39,10,32,32,32,32,119,104,101,114,101,32,67,65 |
| ,84,95,85,73,68,32,61,32,58,34,99,97,116,85,73 |
| ,68,34,10,32,32,70,79,82,32,82,69,65,68,32,67 |
| ,79,77,77,73,84,84,69,68,32,65,67,67,69,83,83 |
| ,32,73,78,32,83,72,65,82,69,32,77,79,68,69,59 |
| ,10,10,65,76,76,79,67,65,84,69,32,83,84,65,84 |
| ,73,67,32,73,78,80,85,84,32,68,69,83,67,82,73 |
| ,80,84,79,82,32,83,81,76,77,88,95,68,69,70,65 |
| ,85,76,84,95,83,84,65,84,69,77,69,78,84,95,50 |
| ,50,95,48,95,73,86,65,82,32,70,79,82,32,10,67 |
| ,85,82,83,79,82,32,83,81,76,77,88,95,68,69,70 |
| ,65,85,76,84,95,83,84,65,84,69,77,69,78,84,95 |
| ,50,50,32,40,67,72,65,82,65,67,84,69,82,40,52 |
| ,57,41,32,78,79,84,32,78,85,76,76,44,76,65,82 |
| ,71,69,73,78,84,32,78,79,84,32,10,78,85,76,76 |
| ,41,59,10,10,65,76,76,79,67,65,84,69,32,83,84 |
| ,65,84,73,67,32,79,85,84,80,85,84,32,68,69,83 |
| ,67,82,73,80,84,79,82,32,79,66,84,65,73,78,83 |
| ,89,83,84,69,77,83,67,72,69,77,65,86,69,82,83 |
| ,73,79,78,95,48,95,79,86,65,82,32,70,79,82,32 |
| ,10,67,85,82,83,79,82,32,79,66,84,65,73,78,83 |
| ,89,83,84,69,77,83,67,72,69,77,65,86,69,82,83 |
| ,73,79,78,32,40,73,78,84,69,71,69,82,32,78,79 |
| ,84,32,78,85,76,76,41,59,10,10,45,45,45,45,45 |
| ,45,45,45,45,32,83,84,65,84,69,77,69,78,84,32 |
| ,73,78,68,69,88,32,49,49,32,45,45,45,45,45,45 |
| ,45,45,45,10,80,82,79,67,69,68,85,82,69,32,79 |
| ,66,84,65,73,78,67,65,84,65,76,79,71,78,65,77 |
| ,69,83,32,40,34,99,97,116,115,121,115,78,97,109,101 |
| ,95,34,32,67,72,65,82,65,67,84,69,82,40,52,57 |
| ,41,41,10,32,68,69,67,76,65,82,69,32,79,98,116 |
| ,97,105,110,67,97,116,97,108,111,103,78,97,109,101,115 |
| ,32,67,85,82,83,79,82,32,70,79,82,10,32,32,32 |
| ,32,83,69,76,69,67,84,32,114,116,114,105,109,40,99 |
| ,97,116,95,110,97,109,101,41,32,102,114,111,109,32,58 |
| ,34,99,97,116,115,121,115,78,97,109,101,95,34,32,112 |
| ,114,111,116,111,116,121,112,101,32,39,72,80,95,83,89 |
| ,83,84,69,77,95,67,65,84,65,76,79,71,46,83,89 |
| ,83,84,69,77,95,83,67,72,69,77,65,46,67,65,84 |
| ,83,89,83,39,10,32,32,32,32,70,79,82,32,82,69 |
| ,65,68,32,67,79,77,77,73,84,84,69,68,32,65,67 |
| ,67,69,83,83,32,73,78,32,83,72,65,82,69,32,77 |
| ,79,68,69,32,79,82,68,69,82,32,66,89,32,49,59 |
| ,10,10,65,76,76,79,67,65,84,69,32,83,84,65,84 |
| ,73,67,32,73,78,80,85,84,32,68,69,83,67,82,73 |
| ,80,84,79,82,32,83,81,76,77,88,95,68,69,70,65 |
| ,85,76,84,95,83,84,65,84,69,77,69,78,84,95,50 |
| ,54,95,48,95,73,86,65,82,32,70,79,82,32,10,67 |
| ,85,82,83,79,82,32,83,81,76,77,88,95,68,69,70 |
| ,65,85,76,84,95,83,84,65,84,69,77,69,78,84,95 |
| ,50,54,32,40,67,72,65,82,65,67,84,69,82,40,52 |
| ,57,41,32,78,79,84,32,78,85,76,76,41,59,10,10 |
| ,65,76,76,79,67,65,84,69,32,83,84,65,84,73,67 |
| ,32,79,85,84,80,85,84,32,68,69,83,67,82,73,80 |
| ,84,79,82,32,79,66,84,65,73,78,67,65,84,65,76 |
| ,79,71,78,65,77,69,83,95,48,95,79,86,65,82,32 |
| ,70,79,82,32,67,85,82,83,79,82,32,10,79,66,84 |
| ,65,73,78,67,65,84,65,76,79,71,78,65,77,69,83 |
| ,32,40,67,72,65,82,65,67,84,69,82,40,49,50,56 |
| ,41,32,67,72,65,82,65,67,84,69,82,32,83,69,84 |
| ,32,85,67,83,50,32,78,79,84,32,78,85,76,76,41 |
| ,59,10,10,45,45,45,45,45,45,45,45,45,32,83,84 |
| ,65,84,69,77,69,78,84,32,73,78,68,69,88,32,49 |
| ,50,32,45,45,45,45,45,45,45,45,45,10,80,82,79 |
| ,67,69,68,85,82,69,32,79,66,84,65,73,78,77,86 |
| ,85,73,68,32,40,34,111,98,106,101,99,116,115,84,97 |
| ,98,108,101,34,32,67,72,65,82,65,67,84,69,82,40 |
| ,53,52,53,41,44,34,109,118,115,84,97,98,108,101,34 |
| ,32,10,67,72,65,82,65,67,84,69,82,40,53,52,53 |
| ,41,44,34,109,118,115,85,115,101,100,84,97,98,108,101 |
| ,34,32,67,72,65,82,65,67,84,69,82,40,53,52,53 |
| ,41,41,10,32,68,69,67,76,65,82,69,32,79,98,116 |
| ,97,105,110,77,118,85,73,68,32,67,85,82,83,79,82 |
| ,32,70,79,82,10,32,32,32,32,115,101,108,101,99,116 |
| ,32,111,98,106,101,99,116,95,117,105,100,44,32,114,101 |
| ,100,101,102,95,116,105,109,101,44,32,114,101,102,114,101 |
| ,115,104,101,100,95,97,116,44,32,115,117,109,40,105,115 |
| ,95,73,67,41,32,104,97,115,95,73,67,10,32,32,32 |
| ,32,102,114,111,109,32,40,115,101,108,101,99,116,32,111 |
| ,49,46,111,98,106,101,99,116,95,117,105,100,44,32,10 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,111,49,46,114,101,100,101,102,95,116,105,109,101 |
| ,44,32,10,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,32,32,114,101,102,114,101,115,104,101,100,95 |
| ,97,116,44,32,32,10,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,32,32,32,32,99,97,115,101,32,116,97,98 |
| ,108,101,95,97,116,116,114,105,98,117,116,101,115,32,119 |
| ,104,101,110,32,39,78,79,39,32,116,104,101,110,32,48 |
| ,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,32,32,32,32,32,32,32,119,104,101,110,32 |
| ,39,73,67,39,32,116,104,101,110,32,49,10,32,32,32 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,32,32,101,110,100,32,97,115,32,105,115,95 |
| ,73,67,10,32,32,32,32,32,32,32,32,32,32,102,114 |
| ,111,109,32,32,58,34,111,98,106,101,99,116,115,84,97 |
| ,98,108,101,34,32,112,114,111,116,111,116,121,112,101,32 |
| ,39,72,80,95,83,89,83,84,69,77,95,67,65,84,65 |
| ,76,79,71,46,72,80,95,68,69,70,73,78,73,84,73 |
| ,79,78,95,83,67,72,69,77,65,46,79,66,74,69,67 |
| ,84,83,39,32,32,111,49,44,10,32,32,32,32,32,32 |
| ,32,32,32,32,32,32,32,32,32,32,58,34,111,98,106 |
| ,101,99,116,115,84,97,98,108,101,34,32,112,114,111,116 |
| ,111,116,121,112,101,32,39,72,80,95,83,89,83,84,69 |
| ,77,95,67,65,84,65,76,79,71,46,72,80,95,68,69 |
| ,70,73,78,73,84,73,79,78,95,83,67,72,69,77,65 |
| ,46,79,66,74,69,67,84,83,39,32,111,50,44,10,32 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,58,34,109,118,115,84,97,98,108,101,34,32,112,114,111 |
| ,116,111,116,121,112,101,32,39,72,80,95,83,89,83,84 |
| ,69,77,95,67,65,84,65,76,79,71,46,72,80,95,68 |
| ,69,70,73,78,73,84,73,79,78,95,83,67,72,69,77 |
| ,65,46,77,86,83,39,32,109,118,115,44,32,32,32,32 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,58,34,109,118,115,85,115,101,100,84,97,98,108 |
| ,101,34,32,112,114,111,116,111,116,121,112,101,32,39,72 |
| ,80,95,83,89,83,84,69,77,95,67,65,84,65,76,79 |
| ,71,46,72,80,95,68,69,70,73,78,73,84,73,79,78 |
| ,95,83,67,72,69,77,65,46,77,86,83,95,85,83,69 |
| ,68,39,32,109,118,115,95,117,115,101,100,32,32,32,32 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,10,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,119,104,101,114,101,32,111,49,46,111,98,106,101,99 |
| ,116,95,116,121,112,101,32,61,32,95,105,115,111,56,56 |
| ,53,57,49,39,77,86,39,32,97,110,100,32,10,32,32 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,111,49,46,111,98,106,101,99,116,95,117,105 |
| ,100,32,61,32,109,118,115,46,109,118,95,117,105,100,32 |
| ,97,110,100,32,32,10,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,32,32,32,32,32,32,32,32,111,49,46,111 |
| ,98,106,101,99,116,95,117,105,100,32,61,32,109,118,115 |
| ,95,117,115,101,100,46,109,118,95,117,105,100,32,97,110 |
| ,100,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,32,32,32,32,10,32,32,32,32,32,32,32 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,109,118 |
| ,115,95,117,115,101,100,46,117,115,101,100,95,111,98,106 |
| ,101,99,116,95,117,105,100,32,61,32,111,50,46,111,98 |
| ,106,101,99,116,95,117,105,100,32,97,110,100,10,32,32 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,109,118,115,46,82,69,87,82,73,84,69,95 |
| ,69,78,65,66,76,69,68,32,61,32,39,89,39,10,32 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,70,79,82,32,83,75,73,80,32,67,79,78,70,76,73 |
| ,67,84,32,65,67,67,69,83,83,32,73,78,32,83,72 |
| ,65,82,69,32,77,79,68,69,10,32,32,32,32,32,32 |
| ,32,32,32,32,41,32,84,32,40,111,98,106,101,99,116 |
| ,95,117,105,100,44,32,114,101,100,101,102,95,116,105,109 |
| ,101,44,32,114,101,102,114,101,115,104,101,100,95,97,116 |
| ,44,32,105,115,95,73,67,41,10,32,32,32,32,103,114 |
| ,111,117,112,32,98,121,32,111,98,106,101,99,116,95,117 |
| ,105,100,44,32,114,101,100,101,102,95,116,105,109,101,44 |
| ,32,114,101,102,114,101,115,104,101,100,95,97,116,59,10 |
| ,10,65,76,76,79,67,65,84,69,32,83,84,65,84,73 |
| ,67,32,73,78,80,85,84,32,68,69,83,67,82,73,80 |
| ,84,79,82,32,83,81,76,77,88,95,68,69,70,65,85 |
| ,76,84,95,83,84,65,84,69,77,69,78,84,95,51,48 |
| ,95,48,95,73,86,65,82,32,70,79,82,32,10,67,85 |
| ,82,83,79,82,32,83,81,76,77,88,95,68,69,70,65 |
| ,85,76,84,95,83,84,65,84,69,77,69,78,84,95,51 |
| ,48,32,40,67,72,65,82,65,67,84,69,82,40,53,52 |
| ,53,41,32,78,79,84,32,78,85,76,76,44,67,72,65 |
| ,82,65,67,84,69,82,40,53,52,53,41,10,32,78,79 |
| ,84,32,78,85,76,76,44,67,72,65,82,65,67,84,69 |
| ,82,40,53,52,53,41,32,78,79,84,32,78,85,76,76 |
| ,41,59,10,10,65,76,76,79,67,65,84,69,32,83,84 |
| ,65,84,73,67,32,79,85,84,80,85,84,32,68,69,83 |
| ,67,82,73,80,84,79,82,32,79,66,84,65,73,78,77 |
| ,86,85,73,68,95,48,95,79,86,65,82,32,70,79,82 |
| ,32,67,85,82,83,79,82,32,10,79,66,84,65,73,78 |
| ,77,86,85,73,68,32,40,76,65,82,71,69,73,78,84 |
| ,32,78,79,84,32,78,85,76,76,44,76,65,82,71,69 |
| ,73,78,84,32,78,79,84,32,78,85,76,76,44,76,65 |
| ,82,71,69,73,78,84,32,78,79,84,32,78,85,76,76 |
| ,44,10,73,78,84,69,71,69,82,32,78,79,84,32,78 |
| ,85,76,76,41,59,10,10,45,45,45,45,45,45,45,45 |
| ,45,32,83,84,65,84,69,77,69,78,84,32,73,78,68 |
| ,69,88,32,49,51,32,45,45,45,45,45,45,45,45,45 |
| ,10,80,82,79,67,69,68,85,82,69,32,79,66,84,65 |
| ,73,78,77,86,68,69,83,67,82,73,80,84,79,82,84 |
| ,69,88,84,32,40,34,116,120,116,84,98,108,34,32,67 |
| ,72,65,82,65,67,84,69,82,40,53,52,53,41,44,34 |
| ,111,98,106,85,73,68,34,32,10,76,65,82,71,69,73 |
| ,78,84,41,10,32,68,69,67,76,65,82,69,32,79,98 |
| ,116,97,105,110,77,118,68,101,115,99,114,105,112,116,111 |
| ,114,84,101,120,116,32,67,85,82,83,79,82,32,70,79 |
| ,82,32,10,32,32,32,32,32,32,32,32,32,32,115,101 |
| ,108,101,99,116,32,84,69,88,84,44,32,99,104,97,114 |
| ,97,99,116,101,114,95,108,101,110,103,116,104,40,84,69 |
| ,88,84,41,10,32,32,32,32,102,114,111,109,32,32,58 |
| ,34,116,120,116,84,98,108,34,32,112,114,111,116,111,116 |
| ,121,112,101,32,39,72,80,95,83,89,83,84,69,77,95 |
| ,67,65,84,65,76,79,71,46,72,80,95,68,69,70,73 |
| ,78,73,84,73,79,78,95,83,67,72,69,77,65,46,84 |
| ,69,88,84,39,32,116,10,32,32,32,32,119,104,101,114 |
| ,101,32,116,46,111,98,106,101,99,116,95,117,105,100,32 |
| ,61,32,58,34,111,98,106,85,73,68,34,32,97,110,100 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,32,32,32,10,32,32,32,32,32,32,32,32 |
| ,32,32,32,32,32,32,116,46,111,98,106,101,99,116,95 |
| ,115,117,98,95,105,100,32,61,32,45,50,32,32,32,32 |
| ,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,10,32,32,32,32,32,32,32,32,70,79,82 |
| ,32,82,69,65,68,32,67,79,77,77,73,84,84,69,68 |
| ,32,65,67,67,69,83,83,32,73,78,32,83,72,65,82 |
| ,69,32,77,79,68,69,32,111,114,100,101,114,32,98,121 |
| ,32,115,101,113,117,101,110,99,101,95,110,117,109,59,10 |
| ,10,65,76,76,79,67,65,84,69,32,83,84,65,84,73 |
| ,67,32,73,78,80,85,84,32,68,69,83,67,82,73,80 |
| ,84,79,82,32,83,81,76,77,88,95,68,69,70,65,85 |
| ,76,84,95,83,84,65,84,69,77,69,78,84,95,51,52 |
| ,95,48,95,73,86,65,82,32,70,79,82,32,10,67,85 |
| ,82,83,79,82,32,83,81,76,77,88,95,68,69,70,65 |
| ,85,76,84,95,83,84,65,84,69,77,69,78,84,95,51 |
| ,52,32,40,67,72,65,82,65,67,84,69,82,40,53,52 |
| ,53,41,32,78,79,84,32,78,85,76,76,44,76,65,82 |
| ,71,69,73,78,84,32,78,79,84,32,10,78,85,76,76 |
| ,41,59,10,10,65,76,76,79,67,65,84,69,32,83,84 |
| ,65,84,73,67,32,79,85,84,80,85,84,32,68,69,83 |
| ,67,82,73,80,84,79,82,32,79,66,84,65,73,78,77 |
| ,86,68,69,83,67,82,73,80,84,79,82,84,69,88,84 |
| ,95,48,95,79,86,65,82,32,70,79,82,32,10,67,85 |
| ,82,83,79,82,32,79,66,84,65,73,78,77,86,68,69 |
| ,83,67,82,73,80,84,79,82,84,69,88,84,32,40,67 |
| ,72,65,82,65,67,84,69,82,40,51,48,48,48,41,32 |
| ,67,72,65,82,65,67,84,69,82,32,83,69,84,32,85 |
| ,67,83,50,32,78,79,84,32,10,78,85,76,76,44,73 |
| ,78,84,69,71,69,82,32,78,79,84,32,78,85,76,76 |
| ,41,59,10,10,45,45,45,45,45,45,45,45,45,32,83 |
| ,84,65,84,69,77,69,78,84,32,73,78,68,69,88,32 |
| ,49,52,32,45,45,45,45,45,45,45,45,45,10,80,82 |
| ,79,67,69,68,85,82,69,32,79,66,84,65,73,78,82 |
| ,69,87,82,73,84,69,80,85,66,76,73,83,72,32,40 |
| ,34,114,101,119,114,105,116,101,84,97,98,108,101,34,32 |
| ,67,72,65,82,65,67,84,69,82,40,52,57,41,41,10 |
| ,32,68,69,67,76,65,82,69,32,79,98,116,97,105,110 |
| ,82,101,119,114,105,116,101,80,117,98,108,105,115,104,32 |
| ,67,85,82,83,79,82,32,70,79,82,10,32,32,32,32 |
| ,83,69,76,69,67,84,32,111,112,101,114,97,116,105,111 |
| ,110,95,116,105,109,101,115,116,97,109,112,44,32,10,32 |
| ,32,32,32,32,32,32,32,32,32,32,114,101,100,101,102 |
| ,95,116,105,109,101,44,32,10,32,32,32,32,32,32,32 |
| ,32,32,32,32,114,101,102,114,101,115,104,95,97,116,95 |
| ,116,105,109,101,44,32,10,32,32,32,32,32,32,32,32 |
| ,32,32,32,111,98,106,101,99,116,95,117,105,100,44,10 |
| ,32,32,32,32,32,32,32,32,32,32,32,99,97,116,97 |
| ,108,111,103,95,117,105,100,44,32,10,32,32,32,32,32 |
| ,32,32,32,32,32,32,111,98,106,101,99,116,95,110,97 |
| ,109,101,44,10,32,32,32,32,32,32,32,32,32,32,32 |
| ,111,98,106,101,99,116,95,110,101,119,95,110,97,109,101 |
| ,44,10,32,32,32,32,32,32,32,32,32,32,32,100,101 |
| ,115,99,114,105,112,116,111,114,95,105,110,100,101,120,44 |
| ,10,32,32,32,32,32,32,32,32,32,32,32,111,112,101 |
| ,114,97,116,105,111,110,95,116,121,112,101,44,32,10,32 |
| ,32,32,32,32,32,32,32,32,32,32,105,103,110,111,114 |
| ,101,95,99,104,97,110,103,101,115,95,117,115,101,100,10 |
| ,32,32,32,32,70,82,79,77,32,40,100,101,108,101,116 |
| ,101,32,102,114,111,109,32,58,34,114,101,119,114,105,116 |
| ,101,84,97,98,108,101,34,32,112,114,111,116,111,116,121 |
| ,112,101,32,39,72,80,95,83,89,83,84,69,77,95,67 |
| ,65,84,65,76,79,71,46,83,89,83,84,69,77,95,83 |
| ,67,72,69,77,65,46,82,69,87,82,73,84,69,95,80 |
| ,85,66,76,73,83,72,39,10,32,32,32,32,32,32,32 |
| ,32,32,32,70,79,82,32,83,75,73,80,32,67,79,78 |
| ,70,76,73,67,84,32,65,67,67,69,83,83,41,32,97 |
| ,115,32,84,10,32,32,32,32,79,82,68,69,82,32,66 |
| ,89,32,79,80,69,82,65,84,73,79,78,95,84,73,77 |
| ,69,83,84,65,77,80,59,10,10,65,76,76,79,67,65 |
| ,84,69,32,83,84,65,84,73,67,32,73,78,80,85,84 |
| ,32,68,69,83,67,82,73,80,84,79,82,32,83,81,76 |
| ,77,88,95,68,69,70,65,85,76,84,95,83,84,65,84 |
| ,69,77,69,78,84,95,51,56,95,48,95,73,86,65,82 |
| ,32,70,79,82,32,10,67,85,82,83,79,82,32,83,81 |
| ,76,77,88,95,68,69,70,65,85,76,84,95,83,84,65 |
| ,84,69,77,69,78,84,95,51,56,32,40,67,72,65,82 |
| ,65,67,84,69,82,40,52,57,41,32,78,79,84,32,78 |
| ,85,76,76,41,59,10,10,65,76,76,79,67,65,84,69 |
| ,32,83,84,65,84,73,67,32,79,85,84,80,85,84,32 |
| ,68,69,83,67,82,73,80,84,79,82,32,79,66,84,65 |
| ,73,78,82,69,87,82,73,84,69,80,85,66,76,73,83 |
| ,72,95,48,95,79,86,65,82,32,70,79,82,32,67,85 |
| ,82,83,79,82,32,10,79,66,84,65,73,78,82,69,87 |
| ,82,73,84,69,80,85,66,76,73,83,72,32,40,76,65 |
| ,82,71,69,73,78,84,32,78,79,84,32,78,85,76,76 |
| ,44,76,65,82,71,69,73,78,84,32,78,79,84,32,78 |
| ,85,76,76,44,76,65,82,71,69,73,78,84,32,78,79 |
| ,84,32,10,78,85,76,76,44,76,65,82,71,69,73,78 |
| ,84,32,78,79,84,32,78,85,76,76,44,76,65,82,71 |
| ,69,73,78,84,32,78,79,84,32,78,85,76,76,44,67 |
| ,72,65,82,65,67,84,69,82,40,53,48,48,41,10,32 |
| ,67,72,65,82,65,67,84,69,82,32,83,69,84,32,85 |
| ,67,83,50,32,78,79,84,32,78,85,76,76,44,67,72 |
| ,65,82,65,67,84,69,82,40,53,48,48,41,32,67,72 |
| ,65,82,65,67,84,69,82,32,83,69,84,32,85,67,83 |
| ,50,32,78,85,76,76,44,10,73,78,84,69,71,69,82 |
| ,32,78,85,76,76,44,67,72,65,82,65,67,84,69,82 |
| ,40,50,41,32,78,79,84,32,78,85,76,76,44,67,72 |
| ,65,82,65,67,84,69,82,40,50,41,32,78,85,76,76 |
| ,41,59,10,10,45,45,45,45,45,45,45,45,45,32,83 |
| ,84,65,84,69,77,69,78,84,32,73,78,68,69,88,32 |
| ,49,53,32,45,45,45,45,45,45,45,45,45,10,80,82 |
| ,79,67,69,68,85,82,69,32,79,66,84,65,73,78,77 |
| ,86,78,65,77,69,83,32,40,34,111,98,106,101,99,116 |
| ,115,84,97,98,108,101,34,32,67,72,65,82,65,67,84 |
| ,69,82,40,53,52,53,41,44,34,115,99,104,101,109,97 |
| ,116,97,78,97,109,101,95,34,32,10,67,72,65,82,65 |
| ,67,84,69,82,40,52,57,41,44,34,109,118,115,84,97 |
| ,98,108,101,34,32,67,72,65,82,65,67,84,69,82,40 |
| ,53,52,53,41,41,10,32,68,69,67,76,65,82,69,32 |
| ,79,98,116,97,105,110,77,86,78,97,109,101,115,32,67 |
| ,85,82,83,79,82,32,70,79,82,10,32,32,32,32,83 |
| ,69,76,69,67,84,32,116,114,97,110,115,108,97,116,101 |
| ,40,114,116,114,105,109,40,111,46,111,98,106,101,99,116 |
| ,95,110,97,109,101,41,32,117,115,105,110,103,32,117,99 |
| ,115,50,116,111,117,116,102,56,41,44,10,32,32,32,32 |
| ,32,32,32,32,32,32,32,116,114,97,110,115,108,97,116 |
| ,101,40,114,116,114,105,109,40,115,99,104,46,115,99,104 |
| ,101,109,97,95,110,97,109,101,41,32,117,115,105,110,103 |
| ,32,117,99,115,50,116,111,117,116,102,56,41,10,32,32 |
| ,32,32,70,82,79,77,32,32,32,58,34,111,98,106,101 |
| ,99,116,115,84,97,98,108,101,34,32,32,112,114,111,116 |
| ,111,116,121,112,101,32,39,72,80,95,83,89,83,84,69 |
| ,77,95,67,65,84,65,76,79,71,46,72,80,95,68,69 |
| ,70,73,78,73,84,73,79,78,95,83,67,72,69,77,65 |
| ,46,79,66,74,69,67,84,83,39,32,32,111,44,10,32 |
| ,32,32,32,32,32,32,32,32,32,32,58,34,115,99,104 |
| ,101,109,97,116,97,78,97,109,101,95,34,32,112,114,111 |
| ,116,111,116,121,112,101,32,39,72,80,95,83,89,83,84 |
| ,69,77,95,67,65,84,65,76,79,71,46,83,89,83,84 |
| ,69,77,95,83,67,72,69,77,65,46,83,67,72,69,77 |
| ,65,84,65,39,32,32,32,32,32,32,32,32,32,32,32 |
| ,32,32,32,32,32,32,32,115,99,104,44,10,32,32,32 |
| ,32,32,32,32,32,32,32,32,58,34,109,118,115,84,97 |
| ,98,108,101,34,32,32,32,32,32,32,112,114,111,116,111 |
| ,116,121,112,101,32,39,72,80,95,83,89,83,84,69,77 |
| ,95,67,65,84,65,76,79,71,46,72,80,95,68,69,70 |
| ,73,78,73,84,73,79,78,95,83,67,72,69,77,65,46 |
| ,77,86,83,39,32,32,32,32,32,32,109,118,115,10,32 |
| ,32,32,32,87,72,69,82,69,32,32,111,46,111,98,106 |
| ,101,99,116,95,116,121,112,101,32,61,32,95,105,115,111 |
| ,56,56,53,57,49,39,77,86,39,32,97,110,100,32,10 |
| ,32,32,32,32,32,32,32,32,32,32,32,111,46,111,98 |
| ,106,101,99,116,95,117,105,100,32,61,32,109,118,115,46 |
| ,109,118,95,117,105,100,32,97,110,100,32,32,10,32,32 |
| ,32,32,32,32,32,32,32,32,32,111,46,115,99,104,101 |
| ,109,97,95,117,105,100,32,61,32,115,99,104,46,115,99 |
| ,104,101,109,97,95,117,105,100,32,97,110,100,10,32,32 |
| ,32,32,32,32,32,32,32,32,32,109,118,115,46,82,69 |
| ,87,82,73,84,69,95,69,78,65,66,76,69,68,32,61 |
| ,32,95,105,115,111,56,56,53,57,49,39,89,39,10,32 |
| ,32,32,32,79,82,68,69,82,32,66,89,32,49,10,32 |
| ,32,32,32,70,79,82,32,83,75,73,80,32,67,79,78 |
| ,70,76,73,67,84,32,65,67,67,69,83,83,32,73,78 |
| ,32,83,72,65,82,69,32,77,79,68,69,59,10,10,65 |
| ,76,76,79,67,65,84,69,32,83,84,65,84,73,67,32 |
| ,73,78,80,85,84,32,68,69,83,67,82,73,80,84,79 |
| ,82,32,83,81,76,77,88,95,68,69,70,65,85,76,84 |
| ,95,83,84,65,84,69,77,69,78,84,95,52,50,95,48 |
| ,95,73,86,65,82,32,70,79,82,32,10,67,85,82,83 |
| ,79,82,32,83,81,76,77,88,95,68,69,70,65,85,76 |
| ,84,95,83,84,65,84,69,77,69,78,84,95,52,50,32 |
| ,40,67,72,65,82,65,67,84,69,82,40,53,52,53,41 |
| ,32,78,79,84,32,78,85,76,76,44,67,72,65,82,65 |
| ,67,84,69,82,40,52,57,41,32,10,78,79,84,32,78 |
| ,85,76,76,44,67,72,65,82,65,67,84,69,82,40,53 |
| ,52,53,41,32,78,79,84,32,78,85,76,76,41,59,10 |
| ,10,65,76,76,79,67,65,84,69,32,83,84,65,84,73 |
| ,67,32,79,85,84,80,85,84,32,68,69,83,67,82,73 |
| ,80,84,79,82,32,79,66,84,65,73,78,77,86,78,65 |
| ,77,69,83,95,48,95,79,86,65,82,32,70,79,82,32 |
| ,67,85,82,83,79,82,32,10,79,66,84,65,73,78,77 |
| ,86,78,65,77,69,83,32,40,67,72,65,82,65,67,84 |
| ,69,82,40,50,48,48,48,41,32,78,79,84,32,78,85 |
| ,76,76,44,67,72,65,82,65,67,84,69,82,40,50,48 |
| ,48,48,41,32,78,79,84,32,78,85,76,76,41,59,10 |
| ,10,45,45,45,45,45,45,45,45,45,32,83,84,65,84 |
| ,69,77,69,78,84,32,73,78,68,69,88,32,49,54,32 |
| ,45,45,45,45,45,45,45,45,45,10,80,82,79,67,69 |
| ,68,85,82,69,32,83,81,76,77,88,95,68,69,70,65 |
| ,85,76,84,95,83,84,65,84,69,77,69,78,84,95,52 |
| ,53,32,40,41,10,32,115,101,116,32,112,97,114,115,101 |
| ,114,102,108,97,103,115,32,51,59,10,10,65,76,76,79 |
| ,67,65,84,69,32,83,84,65,84,73,67,32,68,69,83 |
| ,67,82,73,80,84,79,82,32,83,81,76,77,88,95,68 |
| ,69,70,65,85,76,84,95,83,84,65,84,69,77,69,78 |
| ,84,95,52,54,95,48,95,65,78,79,78,32,40,10,67 |
| ,72,65,82,65,67,84,69,82,40,52,48,48,48,41,32 |
| ,32,32,78,79,84,32,78,85,76,76,41,59,10,10,65 |
| ,76,76,79,67,65,84,69,32,83,84,65,84,73,67,32 |
| ,68,69,83,67,82,73,80,84,79,82,32,83,81,76,77 |
| ,88,95,68,69,70,65,85,76,84,95,83,84,65,84,69 |
| ,77,69,78,84,95,52,56,95,48,95,65,78,79,78,32 |
| ,40,10,67,72,65,82,65,67,84,69,82,40,52,48,48 |
| ,48,41,32,32,32,78,79,84,32,78,85,76,76,41,59 |
| ,10,10,45,45,70,73,78,105,115,95,83,81,76,47,77 |
| ,88,43,109,79,68,85,108,69,32,100,101,102,42,57,56 |
| ,55,54,53,52,51,50,49,48,90,89,87,86,84,82,80 |
| ,75,74,72,71,67,66,65,122,121,120,119,118,117,116,114 |
| ,113,112,111,110,107,106,104,103,102,99,98,97,126,123,124 |
| ,125,96,94,91,92,93,64,63,60,61,62,59,58,46,44 |
| ,40,41,39,37,36,35,33 }; |
| return buffer; |
| } /*QRQueries_cpp199222286715188012*/ |