| /********************************************************************** |
| // @@@ 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 CLI_H |
| #define CLI_H |
| |
| /* -*-C++-*- |
| ****************************************************************************** |
| * |
| * File: Cli.h |
| * Description: Separation of Cli.cpp into a stub and client routine. |
| * Originally done to help with NT work on single-threading |
| * access to the CLI routines. Will help to segregate |
| * other work like DLL/Library work etc. |
| * |
| * Created: 7/19/97 |
| * Language: C++ |
| * |
| * |
| * |
| ****************************************************************************** |
| */ |
| |
| #include <stdarg.h> |
| #include "Platform.h" |
| #include "SQLCLIdev.h" |
| #include "ExpLOBexternal.h" |
| #include "ComDiags.h" |
| class Statement; |
| class CliGlobals; |
| class ContextCli; |
| class Descriptor; |
| |
| // these enums are used in method, PerformTasks. |
| enum CliTasks |
| { |
| CLI_PT_CLEAR_DIAGS = 0x0001, |
| CLI_PT_EXEC = 0x0002, |
| CLI_PT_FETCH = 0x0004, |
| CLI_PT_CLOSE = 0x0008, |
| CLI_PT_GET_INPUT_DESC = 0x0010, |
| CLI_PT_GET_OUTPUT_DESC = 0x0020, |
| CLI_PT_SPECIAL_END_PROCESS = 0x0040, |
| CLI_PT_CLOSE_ON_ERROR = 0x0080, |
| CLI_PT_PROLOGUE = 0x0100, |
| CLI_PT_EPILOGUE = 0x0200, |
| CLI_PT_OPT_STMT_INFO = 0x0400, |
| CLI_PT_CLEAREXECFETCHCLOSE = 0x0800, |
| CLI_PT_SET_AQR_INFO = 0x1000 |
| }; |
| |
| // ----------------------------------------------------------------------- |
| // Internal CLI layer, common to NT and NSK platforms. On NT, this is |
| // similar to the external layer, except that no try/catch block is |
| // activated and that calls are not protected by a semaphore. On NSK, |
| // the executor segment is revealed at this time and the switch to |
| // PRIV has occurred. The internal layer has an additional argument: |
| // the CLI Globals. |
| // |
| // The main reason for giving these functions extern "C" linkage is |
| // function redirection. This makes the function names easier to |
| // handle since they don't get mangled. |
| // ----------------------------------------------------------------------- |
| |
| |
| |
| struct DiagsConditionItem { |
| Lng32 item_id; |
| char *var_ptr; |
| Lng32 length; |
| Lng32 output_entry; |
| Lng32 condition_index; |
| |
| // When MESSAGE_OCTET_LENGTH is retrieved from the diags area, |
| // its value will be dependent on the CHARACTER SET defined |
| // on the host variable to which MESSAGE_TEXT is assigned. |
| // This new data member "charset" is used to remember the |
| // CHARACTER SET defined on the host variable. |
| Lng32 charset; |
| }; |
| |
| extern "C" |
| { |
| |
| Lng32 SQLCLI_AllocDesc(/*IN*/ CliGlobals * cliGlobals, |
| /*INOUT*/ SQLDESC_ID * desc_id, |
| |
| |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor); |
| |
| Lng32 SQLCLI_AllocStmt(/*IN*/ CliGlobals * cliGlobals, |
| /*INOUT*/ SQLSTMT_ID * new_statement_id, |
| /*IN OPTIONAL*/ SQLSTMT_ID * cloned_statement); |
| |
| Lng32 SQLCLI_AllocStmtForRS(/*IN*/ CliGlobals *cliGlobals, |
| /*IN*/ SQLSTMT_ID *callStmtId, |
| /*IN*/ Lng32 resultSetIndex, |
| /*INOUT*/ SQLSTMT_ID *resultSetStmtId); |
| |
| Lng32 SQLCLI_AssocFileNumber(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ short file_number); |
| |
| Int32 SQLCLI_GetDiskMaxSize ( |
| /*IN*/ CliGlobals *cliGlobals, |
| /*IN*/ char *volname, |
| /*OUT*/ Int64 *totalCapacity, |
| /*OUT*/ Int64 *totalFreespace); |
| Int32 SQLCLI_GetListOfDisks ( |
| /*IN*/ CliGlobals *cliGlobals, |
| /*IN/OUT*/ char *diskBuffer, |
| /* OUT */ Int32 *numTSEs, |
| /* OUT */ Int32 *maxTSELength, |
| /* IN/OUT */ Int32 *diskBufferLength |
| ); |
| Lng32 SQLCLI_BreakEnabled(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ UInt32 enabled ); |
| |
| Lng32 SQLCLI_SPBreakRecvd(/*IN*/ CliGlobals * cliGlobals, |
| /*OUT*/ UInt32 *breakRecvd); |
| |
| |
| Lng32 SQLCLI_ClearDiagnostics(/*IN*/ CliGlobals *cliGlobals, |
| /*IN OPTIONAL*/ SQLSTMT_ID *statement_id); |
| |
| Lng32 SQLCLI_CloseStmt(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id); |
| |
| Lng32 SQLCLI_CreateContext(/*IN*/ CliGlobals * cliGlobals, |
| /*OUT*/ SQLCTX_HANDLE * context_handle, |
| /*IN*/ char *sqlAuthId, |
| /*IN*/ Lng32 /* for future use */); |
| |
| |
| Lng32 SQLCLI_CurrentContext(/*IN*/ CliGlobals * cliGlobals, |
| /*OUT*/ SQLCTX_HANDLE * context_handle); |
| |
| |
| Lng32 SQLCLI_DropModule(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ const SQLMODULE_ID * module_name); |
| |
| Lng32 SQLCLI_DeleteContext(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLCTX_HANDLE context_handle); |
| |
| |
| Lng32 SQLCLI_ResetContext(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLCTX_HANDLE context_handle, |
| /*IN*/ void *contextMsg); |
| |
| |
| Lng32 SQLCLI_GetUdrErrorFlags_Internal(/*IN*/ CliGlobals * cliGlobals, |
| /*OUT*/ Lng32 * udrErrorFlags); |
| |
| |
| Lng32 SQLCLI_SetUdrAttributes_Internal(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ Lng32 sqlAccessMode, |
| /*IN*/ Lng32 /* for future use */); |
| |
| |
| Lng32 SQLCLI_ResetUdrErrorFlags_Internal(/*IN*/ CliGlobals * cliGlobals); |
| |
| Lng32 SQLCLI_SetUdrRuntimeOptions_Internal(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ const char *options, |
| /*IN*/ ULng32 optionsLen, |
| /*IN*/ const char *delimiters, |
| /*IN*/ ULng32 delimsLen); |
| |
| Lng32 SQLCLI_DeallocDesc(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * desc_id); |
| |
| Lng32 SQLCLI_DeallocStmt(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id); |
| |
| Lng32 SQLCLI_DefineDesc(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /* (SQLWHAT_DESC) *IN*/ Lng32 what_descriptor, |
| /*IN*/ SQLDESC_ID * sql_descriptor); |
| |
| Lng32 SQLCLI_DescribeStmt(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor); |
| |
| Lng32 SQLCLI_DisassocFileNumber(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id); |
| |
| Lng32 SQLCLI_DropContext(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLCTX_HANDLE context_handle); |
| |
| Lng32 SQLCLI_Exec(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Lng32 num_ptr_pairs, |
| /*IN*/ va_list ap, |
| /*IN*/ SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Lng32 SQLCLI_ExecClose(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Lng32 num_ptr_pairs, |
| /*IN*/ va_list ap, |
| /*IN*/ SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Lng32 SQLCLI_ExecDirect(/*IN*/ CliGlobals *cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLDESC_ID * sql_source, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Lng32 num_ptr_pairs, |
| /*IN*/ va_list ap, |
| /*IN*/ SQLCLI_PTR_PAIRS ptr_pairs[]); |
| Lng32 SQLCLI_ExecDirect2(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLDESC_ID * sql_source, |
| /*IN*/ Lng32 prepFlags, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Lng32 num_ptr_pairs, |
| /*IN*/ va_list ap, |
| /*IN*/ SQLCLI_PTR_PAIRS ptr_pairs[] |
| ); |
| Lng32 SQLCLI_ExecDirectDealloc(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLDESC_ID * sql_source, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Lng32 num_ptr_pairs, |
| /*IN*/ va_list ap, |
| /*IN*/ SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Lng32 SQLCLI_ExecFetch(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN*/ Lng32 num_ptr_pairs, |
| /*IN*/ va_list ap, |
| /*IN*/ SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Lng32 SQLCLI_ClearExecFetchClose(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Lng32 num_input_ptr_pairs, |
| /*IN*/ Lng32 num_output_ptr_pairs, |
| /*IN*/ Lng32 num_total_ptr_pairs, |
| /*IN*/ va_list ap, |
| /*IN*/ SQLCLI_PTR_PAIRS input_ptr_pairs[], |
| /*IN*/ SQLCLI_PTR_PAIRS output_ptr_pairs[]); |
| |
| Lng32 SQLCLI_Fetch(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Lng32 num_ptr_pairs, |
| /*IN*/ va_list ap, |
| /*IN*/ SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Lng32 SQLCLI_FetchClose(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Lng32 num_ptr_pairs, |
| /*IN*/ va_list ap, |
| /*IN*/ SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| |
| Lng32 SQLCLI_FetchMultiple(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Lng32 rowset_size, |
| /*IN*/ Lng32 * rowset_status_ptr, |
| /*OUT*/ Lng32 * rowset_nfetched, |
| /*IN*/ Lng32 num_quadruple_fields, |
| /*IN*/ va_list ap, |
| /*IN*/ SQLCLI_QUAD_FIELDS quad_fields[]); |
| |
| Lng32 SQLCLI_Cancel(/*IN*/ CliGlobals * cliGlobals, |
| /*IN OPTIONAL*/ SQLSTMT_ID * statement_id); |
| |
| Lng32 SQLCLI_GetDescEntryCount(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ SQLDESC_ID * output_descriptor); |
| |
| Lng32 SQLCLI_GetDescItem(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Lng32 entry, |
| /* (SQLDESC_ITEM_ID) *IN*/ Lng32 what_to_get, |
| /*OUT OPTIONAL*/ void * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL*/ Lng32 max_string_len, |
| /*OUT OPTIONAL*/ Lng32 * len_of_item, |
| /*IN OPTIONAL*/ Lng32 start_from_offset); |
| |
| Lng32 SQLCLI_GetDescItems(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ SQLDESC_ITEM desc_items[], |
| /*IN*/ SQLDESC_ID * value_num_descriptor, |
| /*IN*/ SQLDESC_ID * output_descriptor); |
| |
| Lng32 SQLCLI_GetDescItems2(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * desc_id, |
| /*IN*/ Lng32 no_of_desc_items, |
| /*IN*/ SQLDESC_ITEM desc_items[]); |
| |
| Lng32 SQLCLI_GetDiagnosticsStmtInfo(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ Lng32 * stmt_info_items, |
| /*IN*/ SQLDESC_ID * output_descriptor); |
| |
| Lng32 SQLCLI_GetDiagnosticsStmtInfo2( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*IN OPTIONAL*/ SQLSTMT_ID * statement_id, |
| /*IN* (SQLDIAG_STMT_INFO_ITEM_ID) */ Lng32 what_to_get, |
| /*OUT OPTIONAL*/ void * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL*/ Lng32 max_string_len, |
| /*OUT OPTIONAL*/ Lng32 * len_of_item); |
| |
| Lng32 SQLCLI_GetDiagnosticsCondInfo( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDIAG_COND_INFO_ITEM * cond_info_items, |
| /*IN*/ SQLDESC_ID * cond_num_descriptor, |
| /*IN*/ SQLDESC_ID * output_descriptor, |
| /*OUT*/ IpcMessageBufferPtr message_buffer_ptr, |
| /*IN*/ IpcMessageObjSize message_obj_size, |
| /*OUT*/ IpcMessageObjSize * message_obj_size_needed, |
| /*OUT*/ IpcMessageObjType * message_obj_type, |
| /*OUT*/ IpcMessageObjVersion * message_obj_version, |
| /*IN*/ Lng32 condition_item_count, |
| /*OUT*/ Lng32 * condition_item_count_needed, |
| /*OUT*/ DiagsConditionItem * condition_item_array, |
| /*OUT*/ SQLMXLoggingArea::ExperienceLevel * emsEventEL); |
| |
| Lng32 SQLCLI_GetPackedDiagnostics( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*OUT*/ IpcMessageBufferPtr message_buffer_ptr, |
| /*IN*/ IpcMessageObjSize message_obj_size, |
| /*OUT*/ IpcMessageObjSize * message_obj_size_needed, |
| /*OUT*/ IpcMessageObjType * message_obj_type, |
| /*OUT*/ IpcMessageObjVersion * message_obj_version); |
| |
| |
| Lng32 SQLCLI_GetSQLCODE(/*IN*/ CliGlobals * cliGlobals, |
| /*OUT*/ Lng32 * theSQLCODE); |
| |
| Lng32 SQLCLI_GetDiagnosticsCondInfo2( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*IN* (SQLDIAG_COND_INFO_ITEM_ID) */ Lng32 what_to_get, |
| /*IN*/ Lng32 conditionNum, |
| /*OUT OPTIONAL*/ Lng32 * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL */ Lng32 max_string_len, |
| /*OUT OPTIONAL*/ Lng32 * len_of_item); |
| |
| Lng32 SQLCLI_GetDiagnosticsCondInfo3 ( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ Lng32 no_of_condition_items, |
| /*IN*/ SQLDIAG_COND_INFO_ITEM_VALUE |
| diag_cond_info_item_values[], |
| /*OUT*/ IpcMessageObjSize * message_obj_size_needed); |
| |
| Lng32 SQLCLI_GetDiagnosticsArea( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*OUT*/ IpcMessageBufferPtr message_buffer_ptr, |
| /*IN*/ IpcMessageObjSize message_obj_size, |
| /*OUT*/ IpcMessageObjType * message_obj_type, |
| /*OUT*/ IpcMessageObjVersion * message_obj_version); |
| |
| Lng32 SQLCLI_GetMainSQLSTATE(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * stmtId, |
| /*IN*/ Lng32 sqlcode, |
| /*OUT*/ char * sqlstate /* assumed to be char[6] */); |
| |
| |
| Lng32 SQLCLI_GetSQLSTATE(/*IN*/ CliGlobals * cliGlobals, |
| /*OUT*/ char * theSQLSTATE); |
| |
| Lng32 SQLCLI_GetCSQLSTATE(/*IN*/ CliGlobals * cliGlobals, |
| /*OUT*/ char * theSQLSTATE, |
| /*IN*/ Lng32 theSQLCODE); |
| |
| Lng32 SQLCLI_GetCobolSQLSTATE(/*IN*/ CliGlobals * cliGlobals, |
| /*OUT*/ char * theSQLSTATE, |
| /*IN*/ Lng32 theSQLCODE); |
| |
| // For internal use only -- do not document! |
| Lng32 SQLCLI_GetRootTdb_Internal(/*IN*/ CliGlobals * cliGlobals, |
| /*INOUT*/ char * roottdb_ptr, |
| /*IN*/ Int32 roottdb_len, |
| /*INOUT*/ char * srcstr_ptr, |
| /*IN*/ Int32 srcstr_len, |
| /*IN*/ SQLSTMT_ID * statement_id); |
| |
| Lng32 SQLCLI_GetRootTdbSize_Internal(/*IN*/ CliGlobals * cliGlobals, |
| /*INOUT*/ Lng32 * roottdb_size, |
| /*INOUT*/ Lng32 * srcstr_size, |
| /*IN*/ SQLSTMT_ID * statement_id); |
| |
| Lng32 SQLCLI_GetCollectStatsType_Internal( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*OUT*/ ULng32 * collectStatsType, |
| /*IN*/ SQLSTMT_ID * statement_id); |
| |
| Lng32 SQLCLI_GetTotalTcbSpace(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ char * comTdb, |
| /*IN*/ char * otherInfo); |
| |
| Lng32 SQLCLI_GetMPCatalog(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ char * ANSINameObj, |
| /*OUT*/ char * MPObjName, |
| /*IN*/ Lng32 MPObjNameMaxLen, |
| /*OUT*/ Lng32 * MPObjNameLen, |
| /*OUT*/ char * MPCatalogName, |
| /*IN*/ Lng32 MPCatalogNameMaxLen, |
| /*OUT*/ Lng32 * MPCatalogNameLen); |
| |
| Lng32 SQLCLI_GetPfsSize(/*IN*/ CliGlobals *cliGlobals, |
| /*OUT*/ Int32 *pfsSize, |
| /*OUT*/ Int32 *pfsCurUse, |
| /*OUT*/ Int32 *pfsMaxUse); |
| Lng32 SQLCLI_CleanUpPfsResources(/*IN*/ CliGlobals *cliGlobals); |
| |
| Lng32 SQLCLI_PerformTasks( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ULng32 tasks, |
| /*IN*/SQLSTMT_ID * statement_id, |
| /*IN OPTIONAL*/ SQLDESC_ID * input_descriptor, |
| /*IN OPTIONAL*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Lng32 num_input_ptr_pairs, |
| /*IN*/ Lng32 num_output_ptr_pairs, |
| /*IN*/ va_list ap, |
| /*IN*/ SQLCLI_PTR_PAIRS input_ptr_pairs[], |
| /*IN*/ SQLCLI_PTR_PAIRS output_ptr_pairs[]); |
| |
| Lng32 SQLCLI_Prepare(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLDESC_ID * sql_source); |
| |
| Lng32 SQLCLI_Prepare2(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLDESC_ID * sql_source, |
| /*INOUT*/ char * gencode_ptr, |
| /*IN*/ Lng32 gencode_len, |
| /*INOUT*/ Lng32 * ret_gencode_len, |
| /*INOUT*/ SQL_QUERY_COST_INFO *query_cost_info, |
| /*INOUT*/ SQL_QUERY_COMPILER_STATS_INFO *comp_stats_info, |
| /*INOUT*/ char * uniqueStmtId, |
| /*INOUT*/ Lng32 * uniqueStmtIdLen, |
| /*IN*/ ULng32 flags); |
| |
| Lng32 SQLCLI_GetExplainData( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*INOUT*/ char * explain_ptr, |
| /*IN*/ Int32 explain_len, |
| /*INOUT*/ Int32 * ret_explain_len); |
| |
| Lng32 SQLCLI_StoreExplainData( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ Int64 * exec_start_utc_ts, |
| /*IN*/ char * query_id, |
| /*INOUT*/ char * explain_ptr, |
| /*IN*/ Int32 explain_len); |
| |
| Lng32 SQLCLI_ResDescName(/*IN*/ CliGlobals * cliGlobals, |
| /*INOUT*/ SQLDESC_ID * statement_id, |
| /*IN OPTIONAL*/ SQLSTMT_ID * from_statement, |
| /* (SQLWHAT_DESC) *IN OPTIONAL*/ Lng32 what_desc); |
| |
| Lng32 SQLCLI_ResStmtName(/*IN*/ CliGlobals * cliGlobals, |
| /*INOUT*/ SQLSTMT_ID * statement_id); |
| |
| |
| Lng32 SQLCLI_SetCursorName(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLSTMT_ID * statement_id, |
| /*IN*/ SQLSTMT_ID * cursor_name); |
| |
| Lng32 SQLCLI_SetStmtAttr( /*IN*/ CliGlobals *cliGlobals, |
| /*IN*/ SQLSTMT_ID *statement_id, |
| /*IN* SQLATTR_TYPE */ Lng32 attrName, |
| /*IN OPTIONAL*/ Lng32 numeric_value, |
| /*IN OPTIONAL*/ char * string_value); |
| |
| Lng32 SQLCLI_GetSessionAttr( /*IN*/ CliGlobals *cliGlobals, |
| /*IN SESSIONATTR_TYPE */ Lng32 attrName, |
| /*OUT OPTIONAL*/ Lng32 * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL*/ Lng32 max_string_len, |
| /*OUT OPTIONAL*/ Lng32 * len_of_item); |
| |
| Lng32 SQLCLI_SetSessionAttr(/*IN*/ CliGlobals *cliGlobals, |
| /*IN SESSIONATTR_TYPE*/ Lng32 attrName, |
| /*IN OPTIONAL*/ Lng32 numeric_value, |
| /*IN OPTIONAL*/ char *string_value); |
| |
| Lng32 SQLCLI_GetAuthID( |
| CliGlobals * cliGlobals, |
| const char * authName, |
| Lng32 & authID); |
| |
| Lng32 SQLCLI_GetAuthName ( |
| /*IN*/ CliGlobals *cliGlobals, |
| /*IN*/ Lng32 auth_id, |
| /*OUT*/ char *string_value, |
| /*IN*/ Lng32 max_string_len, |
| /*OUT */ Lng32 &len_of_item); |
| |
| Lng32 SQLCLI_GetDatabaseUserName( /*IN*/ CliGlobals *cliGlobals, |
| /*IN*/ Lng32 user_id, |
| /*OUT*/ char *string_value, |
| /*IN*/ Lng32 max_string_len, |
| /*OUT OPTIONAL*/ Lng32 *len_of_item); |
| |
| Lng32 SQLCLI_GetDatabaseUserID( /*IN*/ CliGlobals *cliGlobals, |
| /*IN*/ char *string_value, |
| /*OUT*/ Lng32 *numeric_value); |
| |
| Int32 SQLCLI_GetAuthState ( |
| /*IN*/ CliGlobals *cliGlobals, |
| /*OUT*/ bool &authenticationEnabled, |
| /*OUT*/ bool &authorizationEnabled, |
| /*OUT*/ bool &authorizationReady, |
| /*OUT*/ bool &auditingEnabled); |
| |
| Lng32 SQLCLI_GetRoleList( |
| CliGlobals *cliGlobals, |
| Int32 &numRoles, |
| Int32 *&roleIDs); |
| |
| Lng32 SQLCLI_ResetRoleList ( |
| /*IN*/ CliGlobals *cliGlobals); |
| |
| Lng32 SQLCLI_GetUniqueQueryIdAttrs( /*IN*/ CliGlobals *cliGlobals, |
| /*IN*/ char * queryId, |
| /*IN*/ Lng32 queryIdLen, |
| /*IN*/ Lng32 no_of_attrs, |
| /*INOUT*/ UNIQUEQUERYID_ATTR queryid_attrs[]); |
| |
| Lng32 SQLCLI_GetStmtAttr( /*IN*/ CliGlobals *cliGlobals, |
| /*IN*/ SQLSTMT_ID *statement_id, |
| /*IN SQLATTR_TYPE */ Lng32 attrName, |
| /*OUT OPTIONAL*/ Lng32 * numeric_value, |
| /*OUT OPTIONAL*/ char * string_value, |
| /*IN OPTIONAL*/ Lng32 max_string_len, |
| /*OUT OPTIONAL*/ Lng32 * len_of_item); |
| |
| Lng32 SQLCLI_GetStmtAttrs( /*IN*/ CliGlobals *cliGlobals, |
| /*IN*/ SQLSTMT_ID *statement_id, |
| /*IN*/ Lng32 number_of_attrs, |
| /*INOUT*/ SQLSTMT_ATTR attrs[], |
| /*OUT OPTIONAL*/ Lng32 * num_returned); |
| |
| Lng32 SQLCLI_SetDescEntryCount(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ SQLDESC_ID * input_descriptor); |
| |
| Lng32 SQLCLI_SetDescItem(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Lng32 entry, |
| /* (SQLDESC_ITEM_ID) *IN*/ Lng32 what_to_set, |
| /*IN OPTIONAL*/ Long numeric_value, |
| /*IN OPTIONAL*/ char * string_value); |
| |
| Lng32 SQLCLI_SetDescItems(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ SQLDESC_ITEM desc_items[], |
| /*IN*/ SQLDESC_ID * value_num_descriptor, |
| /*IN*/ SQLDESC_ID * input_descriptor); |
| |
| Lng32 SQLCLI_SetDescItems2(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Lng32 no_of_desc_items, |
| /*IN*/ SQLDESC_ITEM desc_items[]); |
| |
| Lng32 SQLCLI_SetDescPointers(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Lng32 starting_entry, |
| /*IN*/ Lng32 num_ptr_pairs, |
| /*IN*/ va_list ap, |
| /*IN*/ SQLCLI_PTR_PAIRS ptr_pairs[]); |
| |
| Lng32 SQLCLI_SetRowsetDescPointers(CliGlobals * cliGlobals, |
| SQLDESC_ID * desc_id, |
| Lng32 rowset_size, |
| Lng32 * rowset_status_ptr, |
| Lng32 starting_entry, |
| Lng32 num_quadruple_fields, |
| va_list ap, |
| SQLCLI_QUAD_FIELDS quad_fields[]); |
| |
| Lng32 SQLCLI_GetRowsetNumprocessed(CliGlobals * cliGlobals, |
| SQLDESC_ID * desc_id, |
| Lng32 & rowset_nprocessed); |
| |
| Lng32 SQLCLI_SwitchContext(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLCTX_HANDLE ctxt_handle, |
| /*OUT OPTIONAL*/ SQLCTX_HANDLE * prev_ctxt_handle); |
| |
| Lng32 SQLCLI_Xact(/*IN*/ CliGlobals * cliGlobals, |
| /*IN* (SQLTRANS_COMMAND) */ Lng32 command, |
| /*OUT OPTIONAL*/ SQLDESC_ID * transid_descriptor); |
| |
| Lng32 SQLCLI_SetAuthID( |
| CliGlobals * cliGlobals, /*IN*/ |
| const char * externalUsername, /*IN*/ |
| const char * databaseUsername, /*IN*/ |
| const char * authToken, /*IN*/ |
| Int32 authTokenLen, /*IN*/ |
| Int32 effectiveUserID, /*IN*/ |
| Int32 sessionUserID); /*IN*/ |
| |
| /* temporary functions -- for use by sqlcat simulator only */ |
| |
| Lng32 SQLCLI_AllocDescInt(/*IN*/ CliGlobals * cliGlobals, |
| /*INOUT*/ SQLDESC_ID * desc_id, |
| /*IN OPTIONAL*/ Lng32 max_entries); |
| |
| Lng32 SQLCLI_GetDescEntryCountInt(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*OUT*/ Lng32 * num_entries); |
| |
| Lng32 SQLCLI_SetDescEntryCountInt(/*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * sql_descriptor, |
| /*IN*/ Lng32 num_entries); |
| |
| Lng32 SQLCLI_MergeDiagnostics(/*IN*/ CliGlobals * cliGlobals, |
| /*INOUT*/ ComDiagsArea & newDiags); |
| |
| Lng32 SQLCLI_GetRowsAffected(/*IN*/ CliGlobals * cliGlobals, |
| /*?*/ SQLSTMT_ID * statement_id, |
| /*?*/ Int64 & rowsAffected); |
| |
| //Function to get the length of the desc_items array |
| //returns the length if no error occurs, if error_occurred |
| //is 1 on return then return value indicates error |
| Lng32 SQLCLI_GetDescItemsEntryCount( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * desc_id, |
| /*IN*/ SQLDESC_ITEM desc_items[], |
| /*IN*/ SQLDESC_ID * value_num_descriptor, |
| /*IN*/ SQLDESC_ID * output_descriptor, |
| /*Out*/Int32 & error_occurred); |
| |
| Lng32 SQLCLI_SetParserFlagsForExSqlComp_Internal( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ULng32 flagbits); |
| |
| Lng32 SQLCLI_ResetParserFlagsForExSqlComp_Internal( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ULng32 flagbits); |
| |
| Lng32 SQLCLI_AssignParserFlagsForExSqlComp_Internal( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ULng32 flagbits); |
| |
| Lng32 SQLCLI_GetParserFlagsForExSqlComp_Internal( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ULng32 &flagbits); |
| |
| Lng32 SQLCLI_OutputValueIntoNumericHostvar( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*IN*/ SQLDESC_ID * output_descriptor, |
| /*IN*/ Lng32 desc_entry, |
| /*IN*/ Lng32 value); |
| |
| Lng32 SQLCLI_GetSystemVolume_Internal( |
| /*IN*/ CliGlobals * cliGlobals, |
| /*INOUT*/ char * SMDLocation, |
| /*INOUT*/ Lng32 *fsError); |
| |
| |
| // returns TRUE if the volume name is $SYSTEM |
| bool SQLCLI_IsSystemVolume_Internal (const char *const fileName); |
| |
| // returns TRUE if the volume component is 7 chars (not including $) |
| // for examples: $CHAR777 |
| bool SQLCLI_IsVolume7Chars_Internal (const char *const fileName); |
| |
| const char *const *const SQLCLI_GetListOfVolumes_Internal(); |
| short SQLCLI_GetDefaultVolume_Internal(char *const outBuf, |
| const short outBufMaxLen, |
| short &defaultVolLen); |
| |
| Lng32 SQLCLI_GetListOfAuditedVolumes_Internal(CliGlobals *cliGlobals, |
| char **volNames, |
| Lng32 *numOfVols); |
| |
| Lng32 SQLCLI_GetNumOfQualifyingVolumes_Internal(CliGlobals *cliGloblas, |
| const char *nodeName, |
| Lng32 *numOfVols); |
| |
| Lng32 SQLCLI_GetListOfQualifyingVolumes_Internal(CliGlobals *cliGloblas, |
| const char *nodeName, |
| Lng32 numOfVols, |
| char **volNames, |
| Lng32 *cpuNums, |
| Lng32 *capacities, |
| Lng32 *freespaces, |
| Lng32 *largestFragments); |
| |
| Lng32 SQLCLI_SetEnviron_Internal(/*IN*/ CliGlobals * cliGlobals, |
| char ** envvars, Lng32 propagate); |
| |
| Lng32 SQLCLI_SetCompilerVersion_Internal(CliGlobals *cliGlobals, short mxcmpVersion, char *nodeName); |
| |
| Lng32 SQLCLI_GetCompilerVersion_Internal(CliGlobals *cliGlobals, short &mxcmpVersion, char *nodeName ); |
| |
| short SQLCLI_GETANSINAME( |
| CliGlobals *cliGlobals, |
| const char *guardianName, |
| Lng32 guardianNameLen, |
| char *ansiName, |
| Lng32 ansiNameMaxLength, |
| Lng32 *returnedAnsiNameLength, |
| char *nameSpace, |
| char *partitionName, |
| Lng32 partitionNameMaxLength, |
| Lng32 *returnedPartitionNameLength); |
| |
| Lng32 SQLCLI_DecodeAndFormatKey( |
| CliGlobals *cliGlobals, |
| void * RCB_Pointer_Addr, // in |
| void * KeyAddr, // in |
| Int32 KeyLength, // in |
| void * DecodedKeyBufAddr, // in/out: where decoded key to be returned |
| void * FormattedKeyBufAddr, // in/out: formatted key to be returned |
| Int32 FormattedKeyBufLen, // in |
| Int32 * NeededKeyBufLen); // out: required buffer size to be returned |
| |
| Lng32 SQLCLI_GetPartitionKeyFromRow( |
| CliGlobals *cliGlobals, |
| void * RCB_Pointer_Addr, |
| void * Row_Addr, |
| Int32 Row_Length, |
| void * KeyAddr, |
| Int32 KeyLength); |
| |
| Lng32 SQLCLI_SetErrorCodeInRTS( |
| CliGlobals *cliGlobals, |
| SQLSTMT_ID * statement_id, |
| Lng32 sqlErrorCode); |
| |
| Lng32 SQLCLI_SetSecInvalidKeys(CliGlobals *cliGlobals, |
| /* IN */ Int32 numSiKeys, |
| /* IN */ SQL_QIKEY siKeys[]); |
| |
| Lng32 SQLCLI_GetSecInvalidKeys(CliGlobals *cliGlobals, |
| /* IN */ Int64 prevTimestamp, |
| /* IN/OUT */ SQL_QIKEY siKeys[], |
| /* IN */ Int32 maxNumSiKeys, |
| /* IN/OUT */ Int32 *returnedNumSiKeys, |
| /* IN/OUT */ Int64 *maxTimestamp); |
| |
| Lng32 SQLCLI_SetLobLock(CliGlobals *cliGlobals, |
| /* IN */ char * lobLockId |
| ); |
| Lng32 SQLCLI_CheckLobLock(CliGlobals *cliGlobals, |
| /* IN */ char *lobLockId, |
| /*OUT */ NABoolean *found |
| ); |
| Lng32 SQLCLI_GetStatistics2(CliGlobals *cliGlobals, |
| /* IN */ short statsReqType, |
| /* IN */ char *statsReqStr, |
| /* IN */ Lng32 statsReqStrLen, |
| /* IN */ short activeQueryNum, |
| /* IN */ short statsMergeType, |
| /* OUT */ short *statsCollectType, |
| /* IN/OUT */ SQLSTATS_DESC sqlstats_desc[], |
| /* IN */ Lng32 max_stats_desc, |
| /* OUT */ Lng32 *no_returned_stats_desc); |
| |
| Lng32 SQLCLI_GetStatisticsItems(CliGlobals *cliGlobals, |
| /* IN */ short statsReqType, |
| /* IN */ char *queryId, |
| /* IN */ Lng32 queryIdLen, |
| /* IN */ Lng32 no_of_stats_items, |
| /* IN/OUT */ SQLSTATS_ITEM sqlstats_items[]); |
| |
| |
| Lng32 SQLCLI_ProcessRetryQuery(CliGlobals *cliGlobals, |
| SQLSTMT_ID * statement_id, |
| Lng32 sqlcode, |
| short afterPrepare, short afterExec, |
| short afterFetch, short afterCEFC); |
| |
| Lng32 SQLCLI_LocaleToUTF8( |
| CliGlobals *cliGlobals, |
| Int32 conv_charset, |
| void * Input_Buffer_Addr, |
| Int32 Input_Buffer_Length, |
| void * Output_Buffer_Addr, |
| Int32 Output_Buffer_Length, |
| void ** First_Untranslated_Char_Addr, |
| Int32 *Output_Data_Length, |
| Int32 add_null_at_end_Flag, |
| Int32 *num_translated_char); |
| |
| Lng32 SQLCLI_LocaleToUTF16( |
| CliGlobals *cliGlobals, |
| Int32 conv_charset, |
| void * Input_Buffer_Addr, |
| Int32 Input_Buffer_Length, |
| void * Output_Buffer_Addr, |
| Int32 Output_Buffer_Length, |
| void ** First_Untranslated_Char_Addr, |
| Int32 *Output_Data_Length, |
| Int32 conv_flags, |
| Int32 add_null_at_end_Flag, |
| Int32 *num_translated_char); |
| |
| Lng32 SQLCLI_UTF8ToLocale( |
| CliGlobals *cliGlobals, |
| Int32 conv_charset, |
| void * Input_Buffer_Addr, |
| Int32 Input_Buffer_Length, |
| void * Output_Buffer_Addr, |
| Int32 Output_Buffer_Length, |
| void ** First_Untranslated_Char_Addr, |
| Int32 *Output_Data_Length, |
| Int32 add_null_at_end_Flag, |
| Int32 allow_invalids, |
| Int32 *num_translated_char, |
| void * substitution_char_addr); |
| |
| Lng32 SQLCLI_UTF16ToLocale( |
| CliGlobals *cliGlobals, |
| Int32 conv_charset, |
| void * Input_Buffer_Addr, |
| Int32 Input_Buffer_Length, |
| void * Output_Buffer_Addr, |
| Int32 Output_Buffer_Length, |
| void ** First_Untranslated_Char_Addr, |
| Int32 *Output_Data_Length, |
| Int32 conv_flags, |
| Int32 add_null_at_end_Flag, |
| Int32 allow_invalids, |
| Int32 *num_translated_char, |
| void * substitution_char_addr); |
| |
| Lng32 SQLCLI_RegisterQuery(CliGlobals *cliGlobals, |
| SQLQUERY_ID *queryId, |
| Lng32 fragId, |
| Lng32 tdbId, |
| Lng32 explainTdbId, |
| short collectStatsType, |
| Lng32 instNum, |
| Lng32 tdbType, |
| char *tdbName, |
| Lng32 tdbNameLen); |
| |
| Lng32 SQLCLI_DeregisterQuery(CliGlobals *cliGlobals, |
| SQLQUERY_ID *queryId, |
| Lng32 fragId); |
| // This method returns the pointer to the CLI ExStatistics area. |
| // The returned pointer is a read only pointer, its contents cannot be |
| // modified by the caller. |
| Lng32 SQLCLI_GetStatisticsArea_Internal |
| ( |
| /* IN */ CliGlobals *cliGlobals, |
| /* IN */ short statsReqType, |
| /* IN */ char *statsReqStr, |
| /* IN */ Lng32 statsReqStrLen, |
| /* IN */ short activeQueryNum, |
| /* IN */ short statsMergeType, |
| /*INOUT*/ const ExStatisticsArea* &exStatsArea |
| ); |
| |
| |
| Lng32 SQLCLI_GetChildQueryInfo(CliGlobals *cliGlobals, |
| SQLSTMT_ID * statement_id, |
| char * uniqueQueryId, |
| Lng32 uniqueQueryIdMaxLen, |
| Lng32 * uniqueQueryIdLen, |
| SQL_QUERY_COST_INFO *query_cost_info, |
| SQL_QUERY_COMPILER_STATS_INFO *comp_stats_info); |
| |
| Lng32 SQLCLI_LOBcliInterface |
| ( |
| /*IN*/ CliGlobals *cliGlobals, |
| /*IN*/ char * inLobHandle, |
| /*IN*/ Lng32 inLobHandleLen, |
| /*IN*/ char * blackBox, |
| /*IN*/ Int32* blackBoxLen, |
| /*OUT*/ char * outLobHandle, |
| /*OUT*/ Lng32 * outLobHandleLen, |
| /*IN*/ LOBcliQueryType qType, |
| /*IN*/ LOBcliQueryPhase qPhase, |
| /*INOUT*/ Int64 * dataOffset, /* IN: for insert, |
| OUT: for select */ |
| /*IN*/ Int64 * dataLen, /* length of data. |
| IN: for insert, out: for select */ |
| /*OUT*/ Int64 * outDescPartnKey, /* returned after insert and select */ |
| /*OUT*/ Int64 * outDescSyskey, /* returned after insert and select */ |
| /*INOUT*/ void* *inCliInterface, |
| /*IN*/ Int64 xnId, /* xn id of the parent process, if non-zero */ |
| /*IN */ NABoolean lobTrace |
| ); |
| Lng32 SQLCLI_LOB_GC_Interface |
| ( |
| /*IN*/ CliGlobals *cliGlobals, |
| /*IN*/ ExLobGlobals *lobGlobals, // can be passed or NULL |
| /*IN*/ char * handle, |
| /*IN*/ Lng32 handleLen, |
| /*IN*/ char* hdfsServer, |
| /*IN*/ Lng32 hdfsPort, |
| /*IN*/ char *lobLocation, |
| /*IN*/ Int64 lobMaxMemChunkLen, // if passed in as 0, will use default value of 1G for the in memory buffer to do compaction. |
| /*IN*/ NABoolean lobTrace |
| ); |
| |
| Lng32 SQLCLI_LOBddlInterface |
| ( |
| /*IN*/ CliGlobals *cliGlobals, |
| /*IN*/ char * schName, |
| /*IN*/ Lng32 schNameLen, |
| /*IN*/ Int64 objectUID, |
| /*IN*/ Lng32 &numLOBs, |
| /*IN*/ LOBcliQueryType qType, |
| /*IN*/ short *lobNumList, |
| /*IN*/ short *lobTypList, |
| /*IN*/ char* *lobLocList, |
| /*IN*/ char* *lobColNameList, |
| /*IN*/ char *hdfsServer, |
| /*IN*/ Int32 hdfsPort, |
| /*IN*/ Int64 lobMaxSize, |
| /*IN*/ NABoolean lobTrace |
| ); |
| |
| Int32 SQLCLI_SWITCH_TO_COMPILER_TYPE |
| ( |
| /*IN*/ CliGlobals* cliGlobals, |
| /*IN*/ Int32 cmpCntxtType |
| ); |
| |
| Int32 SQLCLI_SWITCH_TO_COMPILER |
| ( |
| /*IN*/ CliGlobals* cliGlobals, |
| /*IN*/ void* cmpCntxt |
| ); |
| |
| Int32 SQLCLI_SWITCH_BACK_COMPILER |
| ( |
| /*IN*/ CliGlobals* cliGlobals |
| ); |
| |
| Lng32 SQLCLI_SEcliInterface |
| ( |
| CliGlobals *cliGlobals, |
| |
| SECliQueryType qType, |
| |
| void* *cliInterface, /* IN: if passed in and not null, use it. |
| OUT: if returned, save it and pass it back in */ |
| |
| const char * inStrParam1 = NULL, |
| const char * inStrParam2 = NULL, |
| Lng32 inIntParam1 = -1, |
| Lng32 inIntParam2 = -1, |
| |
| char* *outStrParam1 = NULL, |
| char* *outStrParam2 = NULL, |
| Lng32 *outIntParam1 = NULL |
| |
| ); |
| |
| Lng32 SQLCLI_SeqGenCliInterface |
| ( |
| CliGlobals *cliGlobals, |
| |
| void* *cliInterface, /* IN: if passed in and not null, use it. |
| OUT: if returned, save it and pass it back in */ |
| |
| void * seqGenAttrs |
| ); |
| |
| Int32 SQLCLI_GetRoutine |
| ( |
| /* IN */ CliGlobals *cliGlobals, |
| /* IN */ const char *serializedInvocationInfo, |
| /* IN */ Int32 invocationInfoLen, |
| /* IN */ const char *serializedPlanInfo, |
| /* IN */ Int32 planInfoLen, |
| /* IN */ Int32 language, |
| /* IN */ Int32 paramStyle, |
| /* IN */ const char *externalName, |
| /* IN */ const char *containerName, |
| /* IN */ const char *externalPath, |
| /* IN */ const char *librarySqlName, |
| /* OUT */ Int32 *handle |
| ); |
| |
| Int32 SQLCLI_InvokeRoutine |
| ( |
| /* IN */ CliGlobals *cliGlobals, |
| /* IN */ Int32 handle, |
| /* IN */ Int32 phaseEnumAsInt, |
| /* IN */ const char *serializedInvocationInfo, |
| /* IN */ Int32 invocationInfoLen, |
| /* OUT */ Int32 *invocationInfoLenOut, |
| /* IN */ const char *serializedPlanInfo, |
| /* IN */ Int32 planInfoLen, |
| /* IN */ Int32 planNum, |
| /* OUT */ Int32 *planInfoLenOut, |
| /* IN */ char *inputRow, |
| /* IN */ Int32 inputRowLen, |
| /* OUT */ char *outputRow, |
| /* IN */ Int32 outputRowLen |
| ); |
| |
| Int32 SQLCLI_GetRoutineInvocationInfo |
| ( |
| /* IN */ CliGlobals *cliGlobals, |
| /* IN */ Int32 handle, |
| /* IN/OUT */ char *serializedInvocationInfo, |
| /* IN */ Int32 invocationInfoMaxLen, |
| /* OUT */ Int32 *invocationInfoLenOut, |
| /* IN/OUT */ char *serializedPlanInfo, |
| /* IN */ Int32 planInfoMaxLen, |
| /* IN */ Int32 planNum, |
| /* OUT */ Int32 *planInfoLenOut |
| ); |
| |
| Int32 SQLCLI_PutRoutine |
| ( |
| /* IN */ CliGlobals* cliGlobals, |
| /* IN */ Int32 handle |
| ); |
| |
| } // end extern "C" |
| |
| class StrTarget { |
| private: |
| CollHeap *heap_; |
| char *str_; |
| Lng32 externalCharset_; // these are really enum CharInfo::CharSet, |
| Lng32 internalCharset_; // defined in common/charinfo.h |
| Lng32 cnvExternalCharset_; // these are really enum cnv_charset, |
| Lng32 cnvInternalCharset_; // defined in common/csconvert.h |
| public: |
| StrTarget(); |
| StrTarget(Descriptor *desc, Lng32 entry); |
| ~StrTarget() |
| { |
| if (str_) |
| heap_->deallocateMemory(str_); |
| } |
| void init(Descriptor *desc, Lng32 entry); |
| void init(char *source, |
| Lng32 sourceLen, |
| Lng32 sourceType, |
| Lng32 externalCharset, |
| Lng32 internalCharset, |
| CollHeap *heap, |
| ComDiagsArea *&diagsArea); |
| char * getStr() { return str_; } |
| Lng32 getIntCharSet() { return internalCharset_; } |
| |
| }; |
| |
| #endif /* CLI_H */ |