@@ -4281,10 +4281,6 @@ SQLRETURN FetchMany_wrap(SqlHandlePtr StatementHandle, py::list& rows, int fetch
42814281 SQLSMALLINT dataType = colMeta[" DataType" ].cast <SQLSMALLINT>();
42824282 SQLULEN columnSize = colMeta[" ColumnSize" ].cast <SQLULEN>();
42834283
4284- if ((dataType == SQL_WVARCHAR || dataType == SQL_WLONGVARCHAR || dataType == SQL_VARCHAR ||
4285- dataType == SQL_LONGVARCHAR || dataType == SQL_VARBINARY ||
4286- dataType == SQL_LONGVARBINARY || dataType == SQL_SS_XML || dataType == SQL_SS_UDT) &&
4287- (columnSize == 0 || columnSize == SQL_NO_TOTAL || columnSize > SQL_MAX_LOB_SIZE)) {
42884284 if (IsLobOrVariantColumn (dataType, columnSize)) {
42894285 lobColumns.push_back (i + 1 ); // 1-based
42904286 }
@@ -4449,40 +4445,6 @@ SQLRETURN FetchAll_wrap(SqlHandlePtr StatementHandle, py::list& rows,
44494445 }
44504446 LOG (" FetchAll_wrap: Fetching data in batch sizes of %d" , fetchSize);
44514447
4452- std::vector<SQLUSMALLINT> lobColumns;
4453- for (SQLSMALLINT i = 0 ; i < numCols; i++) {
4454- auto colMeta = columnNames[i].cast <py::dict>();
4455- SQLSMALLINT dataType = colMeta[" DataType" ].cast <SQLSMALLINT>();
4456- SQLULEN columnSize = colMeta[" ColumnSize" ].cast <SQLULEN>();
4457-
4458- if ((dataType == SQL_WVARCHAR || dataType == SQL_WLONGVARCHAR || dataType == SQL_VARCHAR ||
4459- dataType == SQL_LONGVARCHAR || dataType == SQL_VARBINARY ||
4460- dataType == SQL_LONGVARBINARY || dataType == SQL_SS_XML || dataType == SQL_SS_UDT) &&
4461- (columnSize == 0 || columnSize == SQL_NO_TOTAL || columnSize > SQL_MAX_LOB_SIZE)) {
4462- lobColumns.push_back (i + 1 ); // 1-based
4463- }
4464- }
4465-
4466- // If we have LOBs → fall back to row-by-row fetch + SQLGetData_wrap
4467- if (!lobColumns.empty ()) {
4468- LOG (" FetchAll_wrap: LOB columns detected (%zu columns), using per-row "
4469- " SQLGetData path" ,
4470- lobColumns.size ());
4471- while (true ) {
4472- ret = SQLFetch_ptr (hStmt);
4473- if (ret == SQL_NO_DATA)
4474- break ;
4475- if (!SQL_SUCCEEDED (ret))
4476- return ret;
4477-
4478- py::list row;
4479- SQLGetData_wrap (StatementHandle, numCols, row, charEncoding,
4480- wcharEncoding); // <-- streams LOBs correctly
4481- rows.append (row);
4482- }
4483- return SQL_SUCCESS;
4484- }
4485-
44864448 ColumnBuffers buffers (numCols, fetchSize);
44874449
44884450 // Bind columns
0 commit comments