diff --git a/internal/config/config.go b/internal/config/config.go index 09946c91..6db6aaf1 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -448,6 +448,7 @@ func (ucfg ArrowConfig) WithDefaults() ArrowConfig { ucfg.UseArrowBatches = true ucfg.UseArrowNativeTimestamp = true ucfg.UseArrowNativeComplexTypes = true + ucfg.UseArrowNativeDecimal = true return ucfg } diff --git a/internal/rows/arrowbased/arrowRows.go b/internal/rows/arrowbased/arrowRows.go index 4e2cf802..d39eeaac 100644 --- a/internal/rows/arrowbased/arrowRows.go +++ b/internal/rows/arrowbased/arrowRows.go @@ -216,9 +216,9 @@ func (ars *arrowRowScanner) ScanRow( col := ars.colInfo[i] dbType := col.dbType - if (dbType == cli_service.TTypeId_DECIMAL_TYPE && ars.UseArrowNativeDecimal) || - (isIntervalType(dbType) && ars.UseArrowNativeIntervalTypes) { - // not yet fully supported + // Only block interval types, allow decimals to proceed + if isIntervalType(dbType) && ars.UseArrowNativeIntervalTypes { + // interval types are not yet fully supported ars.Error().Msgf(errArrowRowsUnsupportedNativeType(dbType.String())) return dbsqlerrint.NewDriverError(ars.ctx, errArrowRowsUnsupportedNativeType(dbType.String()), nil) } diff --git a/internal/rows/arrowbased/arrowRows_test.go b/internal/rows/arrowbased/arrowRows_test.go index 336186d4..4d41f77a 100644 --- a/internal/rows/arrowbased/arrowRows_test.go +++ b/internal/rows/arrowbased/arrowRows_test.go @@ -886,7 +886,7 @@ func TestArrowRowScanner(t *testing.T) { err := ars.ScanRow(dest, 0) - if i < 3 { + if i < 4 { assert.Nil(t, err) } else { assert.NotNil(t, err)