From 2e3f152755f36b7736975ef9bb0fdf8de3ff841a Mon Sep 17 00:00:00 2001 From: John Kerl Date: Mon, 30 Sep 2024 23:12:31 -0400 Subject: [PATCH] debug [skip ci] --- apis/r/R/SOMADataFrame.R | 3 ++ apis/r/R/utils-arrow.R | 2 + apis/r/tests/testthat/test-SOMADataFrame.R | 51 +++++++++++++++++++++- 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/apis/r/R/SOMADataFrame.R b/apis/r/R/SOMADataFrame.R index b560023d20..3a17581ce2 100644 --- a/apis/r/R/SOMADataFrame.R +++ b/apis/r/R/SOMADataFrame.R @@ -115,6 +115,8 @@ SOMADataFrame <- R6::R6Class( write = function(values) { private$check_open_for_write() + ### 3079:04 + # Prevent downcasting of int64 to int32 when materializing a column op <- options(arrow.int64_downcast = FALSE) on.exit(options(op), add = TRUE, after = FALSE) @@ -295,6 +297,7 @@ SOMADataFrame <- R6::R6Class( tiledb_create_options <- TileDBCreateOptions$new(self$platform_config) # Check compatibility of new/old data types in common columns + ### debug 3079:02 check_arrow_schema_data_types( old_schema[common_cols], new_schema[common_cols] diff --git a/apis/r/R/utils-arrow.R b/apis/r/R/utils-arrow.R index a7d3d4df3e..7dd764f784 100644 --- a/apis/r/R/utils-arrow.R +++ b/apis/r/R/utils-arrow.R @@ -313,6 +313,8 @@ check_arrow_schema_data_types <- function(from, to) { } } + ### debug 3079:03 + if (length(msgs) > 0L) { stop( "Schemas are incompatible:\n", diff --git a/apis/r/tests/testthat/test-SOMADataFrame.R b/apis/r/tests/testthat/test-SOMADataFrame.R index c5974878e9..c4b248b4ff 100644 --- a/apis/r/tests/testthat/test-SOMADataFrame.R +++ b/apis/r/tests/testthat/test-SOMADataFrame.R @@ -639,7 +639,30 @@ test_that("SOMADataFrame can be updated", { # Add a new enum and update tbl0$frobo <- factor(sample(letters[1:3], nrow(tbl0), replace = TRUE)) - expect_no_condition(sdf <- SOMADataFrameOpen(uri, mode = "WRITE")$update(tbl0)) + + # Browse[2]> tbl0 + # Table + # 10 rows x 5 columns + # $int_column + # $soma_joinid + # $string_column + # $float_column + # $frobo > + # ^^^^^^ + + ### debug 3079 + ### expect_no_condition(sdf <- SOMADataFrameOpen(uri, mode = "WRITE")$update(tbl0)) + sdf <- SOMADataFrameOpen(uri, mode = "WRITE") + sdf <- sdf$update(tbl0) + + # Browse[2]> SOMADataFrameOpen(uri)$schema() + # Schema + # int_column: int32 not null + # soma_joinid: int64 + # string_column: large_string + # float_column: bool + # frobo: dictionary + # ^^^^^^ # Verify enum was added on disk expect_s3_class( @@ -663,7 +686,31 @@ test_that("SOMADataFrame can be updated", { levels(tbl0$GetColumnByName("rlvl")$as_vector()), c("green", "red", "blue") ) - expect_no_condition(sdf <- SOMADataFrameOpen(uri, mode = "WRITE")$update(tbl0)) + ### debug 3079:01 + ### expect_no_condition(sdf <- SOMADataFrameOpen(uri, mode = "WRITE")$update(tbl0)) + + # Browse[2]> tbl0 + # Table + # 10 rows x 6 columns + # $int_column + # $soma_joinid + # $string_column + # $float_column + # $frobo > + # ^^^^^^ + + # Browse[2]> SOMADataFrameOpen(uri)$schema() + # Schema + # int_column: int32 not null + # soma_joinid: int64 + # string_column: large_string + # float_column: bool + # frobo: dictionary + # ^^^^^^ + + # The written-to sdf has binary values + + sdf <- SOMADataFrameOpen(uri, mode = "WRITE")$update(tbl0) # Verify unordered enum was added on disk expect_s3_class(