@@ -64,6 +64,7 @@ std::shared_ptr<ReturnVal> CArrowChunkIterator::next()
6464 }
6565 else
6666 {
67+ SF_CHECK_PYTHON_ERR ();
6768 m_currentBatchIndex++;
6869 if (m_currentBatchIndex < m_batchCount)
6970 {
@@ -113,20 +114,15 @@ void CArrowChunkIterator::initColumnConverters()
113114
114115 returnCode = ArrowSchemaViewInit (
115116 &columnSchemaView, columnSchema, &error);
116- if (returnCode != NANOARROW_OK) {
117- std::string errorInfo = Logger::formatString (
118- " [Snowflake Exception] error initializing ArrowSchemaView : %s" ,
119- ArrowErrorMessage (&error)
120- );
121- logger->error (__FILE__, __func__, __LINE__, errorInfo.c_str ());
122- PyErr_SetString (PyExc_Exception, errorInfo.c_str ());
123- }
117+ SF_CHECK_ARROW_RC (returnCode, " [Snowflake Exception] error initializing ArrowSchemaView: %s, error code: %d" , ArrowErrorMessage (&error), returnCode);
124118
125119 ArrowArrayView* array = m_ipcArrowArrayViewVec[m_currentBatchIndex]->children [i];
126120
127121 ArrowStringView snowflakeLogicalType;
128122 const char * metadata = m_ipcArrowSchema->children [i]->metadata ;
129- ArrowMetadataGetValue (metadata, ArrowCharView (" logicalType" ), &snowflakeLogicalType);
123+ returnCode = ArrowMetadataGetValue (metadata, ArrowCharView (" logicalType" ), &snowflakeLogicalType);
124+ SF_CHECK_ARROW_RC (returnCode, " [Snowflake Exception] error getting 'logicalType' from Arrow metadata, error code: %d" , returnCode);
125+
130126 SnowflakeType::Type st = SnowflakeType::snowflakeTypeFromString (
131127 std::string (snowflakeLogicalType.data , snowflakeLogicalType.size_bytes )
132128 );
@@ -140,8 +136,10 @@ void CArrowChunkIterator::initColumnConverters()
140136 int scale = 0 ;
141137 int precision = 38 ;
142138 if (metadata != nullptr ) {
143- ArrowMetadataGetValue (metadata, ArrowCharView (" scale" ), &scaleString);
144- ArrowMetadataGetValue (metadata, ArrowCharView (" precision" ), &precisionString);
139+ returnCode = ArrowMetadataGetValue (metadata, ArrowCharView (" scale" ), &scaleString);
140+ SF_CHECK_ARROW_RC (returnCode, " [Snowflake Exception] error getting 'scale' from Arrow metadata, error code: %d" , returnCode);
141+ returnCode = ArrowMetadataGetValue (metadata, ArrowCharView (" precision" ), &precisionString);
142+ SF_CHECK_ARROW_RC (returnCode, " [Snowflake Exception] error getting 'precision' from Arrow metadata, error code: %d" , returnCode);
145143 scale = std::stoi (scaleString.data );
146144 precision = std::stoi (precisionString.data );
147145 }
@@ -274,7 +272,8 @@ void CArrowChunkIterator::initColumnConverters()
274272 int scale = 9 ;
275273 if (metadata != nullptr ) {
276274 ArrowStringView scaleString;
277- ArrowMetadataGetValue (metadata, ArrowCharView (" scale" ), &scaleString);
275+ returnCode = ArrowMetadataGetValue (metadata, ArrowCharView (" scale" ), &scaleString);
276+ SF_CHECK_ARROW_RC (returnCode, " [Snowflake Exception] error getting 'scale' from Arrow metadata, error code: %d" , returnCode);
278277 scale = std::stoi (scaleString.data );
279278 }
280279 switch (columnSchemaView.type )
@@ -307,7 +306,8 @@ void CArrowChunkIterator::initColumnConverters()
307306 int scale = 9 ;
308307 if (metadata != nullptr ) {
309308 ArrowStringView scaleString;
310- ArrowMetadataGetValue (metadata, ArrowCharView (" scale" ), &scaleString);
309+ returnCode = ArrowMetadataGetValue (metadata, ArrowCharView (" scale" ), &scaleString);
310+ SF_CHECK_ARROW_RC (returnCode, " [Snowflake Exception] error getting 'scale' from Arrow metadata, error code: %d" , returnCode);
311311 scale = std::stoi (scaleString.data );
312312 }
313313 switch (columnSchemaView.type )
@@ -365,7 +365,8 @@ void CArrowChunkIterator::initColumnConverters()
365365 int scale = 9 ;
366366 if (metadata != nullptr ) {
367367 ArrowStringView scaleString;
368- ArrowMetadataGetValue (metadata, ArrowCharView (" scale" ), &scaleString);
368+ returnCode = ArrowMetadataGetValue (metadata, ArrowCharView (" scale" ), &scaleString);
369+ SF_CHECK_ARROW_RC (returnCode, " [Snowflake Exception] error getting 'scale' from Arrow metadata, error code: %d" , returnCode);
369370 scale = std::stoi (scaleString.data );
370371 }
371372 switch (columnSchemaView.type )
@@ -407,8 +408,10 @@ void CArrowChunkIterator::initColumnConverters()
407408 int scale = 9 ;
408409 int byteLength = 16 ;
409410 if (metadata != nullptr ) {
410- ArrowMetadataGetValue (metadata, ArrowCharView (" scale" ), &scaleString);
411- ArrowMetadataGetValue (metadata, ArrowCharView (" byteLength" ), &byteLengthString);
411+ returnCode = ArrowMetadataGetValue (metadata, ArrowCharView (" scale" ), &scaleString);
412+ SF_CHECK_ARROW_RC (returnCode, " [Snowflake Exception] error getting 'scale' from Arrow metadata, error code: %d" , returnCode);
413+ returnCode = ArrowMetadataGetValue (metadata, ArrowCharView (" byteLength" ), &byteLengthString);
414+ SF_CHECK_ARROW_RC (returnCode, " [Snowflake Exception] error getting 'byteLength' from Arrow metadata, error code: %d" , returnCode);
412415 scale = std::stoi (scaleString.data );
413416 byteLength = std::stoi (byteLengthString.data );
414417 }
0 commit comments