blob: 84236cb55fcbceedd035f36664d39ed8b4acc449 [file] [log] [blame]
/**********************************************************************
// @@@ 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*/