[
https://issues.apache.org/jira/browse/TRAFODION-2308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15634070#comment-15634070
]
ASF GitHub Bot commented on TRAFODION-2308:
-------------------------------------------
Github user arvind-narain commented on a diff in the pull request:
https://github.com/apache/incubator-trafodion/pull/799#discussion_r86429324
--- Diff: core/conn/odbc/src/odbc/nsksrvrcore/srvrothers.cpp ---
@@ -6378,6 +6378,124 @@ odbc_SQLSrvr_FetchPerf_sme_(
} // odbc_SQLSrvr_FetchPerf_sme_()
+extern "C" void
+odbc_SQLSrvr_ExtractLob_sme_(
+ /* In */ CEE_tag_def objtag_
+ , /* In */ const CEE_handle_def *call_id_
+ , /* Out */ odbc_SQLsrvr_ExtractLob_exc_ *exception_
+ , /* In */ IDL_long extractLobAPI
+ , /* In */ IDL_string lobHandle
+ , /* Out */ IDL_long_long &lobDataLen
+ , /* Out */ IDL_char *& lobDataValue
+ )
+{
+ char LobExtractQuery[1000];
+ char RequestError[200] = {0};
+ SRVR_STMT_HDL *QryLobExtractSrvrStmt = NULL;
+
+ if ((QryLobExtractSrvrStmt = getSrvrStmt("", TRUE)) == NULL)
+ {
+ SendEventMsg(MSG_MEMORY_ALLOCATION_ERROR,
+ EVENTLOG_ERROR_TYPE,
+ srvrGlobal->nskProcessInfo.processId,
+ ODBCMX_SERVER,
+ srvrGlobal->srvrObjRef,
+ 2,
+ "EXTRACT LOB APIs",
+ "Allocate Statement");
+ exception_->exception_nr = odbc_SQLsrvr_ExtractLob_ParamError_exn_;
+ exception_->u.ParamError.ParamDesc =
SQLSVC_EXCEPTION_UNABLE_TO_ALLOCATE_SQL_STMT;
+ }
+
+ snprintf(LobExtractQuery, sizeof(LobExtractQuery), "EXTRACT
LOBLENGTH(LOB'%s') LOCATION %Ld", lobHandle, (Int64)&lobDataLen);
+
+ try
+ {
+
SQL_EXEC_SetParserFlagsForExSqlComp_Internal(INTERNAL_QUERY_FROM_EXEUTIL);
+
+ short retcode = QryLobExtractSrvrStmt->ExecDirect(NULL,
LobExtractQuery, EXTERNAL_STMT, TYPE_CALL, SQL_ASYNC_ENABLE_OFF, 0);
+
+ if (retcode == SQL_ERROR)
+ {
+ ERROR_DESC_def *p_buffer =
QryLobExtractSrvrStmt->sqlError.errorList._buffer; strncpy(RequestError,
p_buffer->errorText, sizeof(RequestError) - 1);
+
+ SendEventMsg(MSG_SQL_ERROR,
+ EVENTLOG_ERROR_TYPE,
+ srvrGlobal->nskProcessInfo.processId,
+ ODBCMX_SERVER,
+ srvrGlobal->srvrObjRef,
+ 2,
+ p_buffer->sqlcode,
+ RequestError);
+
+ exception_->exception_nr =
odbc_SQLsrvr_ExtractLob_ParamError_exn_;
+ exception_->u.SQLError.errorList._length =
QryLobExtractSrvrStmt->sqlError.errorList._length;
+ exception_->u.SQLError.errorList._buffer =
QryLobExtractSrvrStmt->sqlError.errorList._buffer;
+ exception_->u.ParamError.ParamDesc =
SQLSVC_EXCEPTION_EXECUTE_FAILED;
+ }
+ }
+ catch (...)
+ {
+ SendEventMsg(MSG_PROGRAMMING_ERROR,
+ EVENTLOG_ERROR_TYPE,
+ srvrGlobal->nskProcessInfo.processId,
+ ODBCMX_SERVER,
+ srvrGlobal->srvrObjRef,
+ 1,
+ "Exception in executing EXTRACT LOBLENGTH");
+
+ exception_->exception_nr = odbc_SQLsrvr_ExtractLob_ParamError_exn_;
+ exception_->u.ParamError.ParamDesc =
SQLSVC_EXCEPTION_EXECDIRECT_FAILED;
+ }
+
--- End diff --
Would you like to check for exception_->exception_nr == 0 here ?
> JDBC T4 support read LOB
> ------------------------
>
> Key: TRAFODION-2308
> URL: https://issues.apache.org/jira/browse/TRAFODION-2308
> Project: Apache Trafodion
> Issue Type: Sub-task
> Components: client-jdbc-t4, connectivity-mxosrvr
> Reporter: Weiqing Xu
> Assignee: Weiqing Xu
>
> JDBC T4 need implement some API to support CLOB and BLOB.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)