Skip to content

fix: compare integer64 logical tweaks by value - #532

Open
LeonidasZhak wants to merge 8 commits into
r-dbi:mainfrom
LeonidasZhak:fix/logical-return-integer64-308
Open

LeonidasZhak wants to merge 8 commits into
r-dbi:mainfrom
LeonidasZhak:fix/logical-return-integer64-308

Conversation

@LeonidasZhak

@LeonidasZhak LeonidasZhak commented Jul 1, 2026 •

Copy link
Copy Markdown

Summary

Restore this PR to a reviewable state on current main while keeping the original data_logical fix narrow.

Thanks to maintainers

Thanks for maintaining DBItest, and for the earlier discussion in #308 and #309 about keeping logical_return narrowly scoped.

Issue or motivation

data_logical still failed for a logical_return tweak that returns bit64::integer64 values, including the list-returning form discussed in #309. After this branch was refreshed against current main, the restored CI workflows also could not resolve the existing constructive Suggests dependency from the default CRAN/RSPM repository set.

Root cause

The original spec compared fetched values with expect_identical(), so a backend returning 1L/0L did not match bit64::integer64 logical-return expectations despite representing the same logical values. Separately, the generated stream-bind specs needed explicit stringsAsFactors = FALSE for character bind-value data frames. The later CI failures were dependency metadata failures: constructive is used by the package, but the GitHub Actions dependency solve runs under a repository override that does not include the package source.

Change

  • Convert data_logical expectations into scalar predicates that compare by logical value.
  • Cover both vector-returning and list-returning logical_return tweaks for bit64::integer64 values.
  • Keep generated stream-bind specs aligned with the helper by emitting explicit stringsAsFactors = FALSE.
  • Keep the roxygen-generated Arrow write-table Rd wrapping from the formatter suggestion.
  • Merge current main into this PR branch so the restored workflows and version bump from #574/#575 are included.
  • Add https://cynkra.r-universe.dev as an Additional_repositories entry, and pass cynkra/constructive to the CI dependency setup paths that otherwise ignore that repository during the initial solve.

Tests

Latest refresh on current PR head 13b43f7c:

  • RENV_CONFIG_REPOS_OVERRIDE='https://packagemanager.posit.co/cran/__linux__/noble/latest' Rscript -e 'pak::lockfile_create(c("deps::.", "any::sessioninfo", "r-lib/lintr", "local::.", "cynkra/constructive"), dependencies = c("Config/Needs/lint", "all"))' — pass.
  • RENV_CONFIG_REPOS_OVERRIDE='https://packagemanager.posit.co/cran/__linux__/noble/latest' Rscript -e 'pak::lockfile_create(c("deps::.", "any::sessioninfo", "any::rcmdcheck", "r-lib/roxygen2", "any::decor", "r-lib/pkgdown", "r-lib/covr", "any::xml2", "any::rmarkdown", "cynkra/cynkratemplate", "deps::.", "cynkra/constructive"), dependencies = c("Config/Needs/build", "Config/Needs/check", "Config/Needs/website", "Config/Needs/roxygen2", "all"))' — pass.
  • RENV_CONFIG_REPOS_OVERRIDE='https://packagemanager.posit.co/cran/__linux__/noble/latest' Rscript -e 'pak::lockfile_create(c("deps::.", "any::sessioninfo", "any::pkgbuild", "any::remotes", "decor", ".", "cynkra/constructive"), dependencies = c("Config/Needs/check", "all"))' — pass.
  • git diff --check origin/main...HEAD — pass.
  • Rscript -e 'lintr::lint_package()' — pass, no lints found; local config warns that expect_shape_linter is not in current defaults.
  • Rscript -e 'testthat::test_file("tests/testthat/test-logical-return.R", reporter = "summary")' — pass, 62 assertions.
  • Rscript -e 'testthat::test_local(reporter = "summary")' — pass, 9693 passed, 64 skipped, 0 failed.
  • R CMD build . — pass, built DBItest_1.8.3.9012.tar.gz from a fresh temporary directory.
  • _R_CHECK_CRAN_INCOMING_REMOTE_=false R CMD check --as-cran DBItest_1.8.3.9012.tar.gz — pass with 2 NOTEs: development version number and local HTML Tidy not recent enough for HTML validation.

Scope

This stays within the data_logical roundtrip spec, generated bind-spec alignment, CI dependency resolution for an existing Suggests package, and branch sync needed to keep this PR reviewable. It does not change broader integer64 comparison behavior, backend workflow design, backend-specific test semantics, or other bigint-related specs such as #311 or #412.

@LeonidasZhak
LeonidasZhak force-pushed the fix/logical-return-integer64-308 branch from 3540127 to 42815b5 Compare September 25, 2026 15:17
@github-actions

Copy link
Copy Markdown
Contributor

Formatting suggestions available

A patch file with formatting suggestions has been generated. You can apply it using one of these methods:

Method 1: Apply via gh CLI

# Download and apply the patch directly
gh run download 36153182749 --repo r-dbi/DBItest --name changes-patch && patch -p1 < changes.patch && rm changes.patch

Repo owners can also apply the patch automatically. Click the button to jump to the comment box, then post:

/apply-patch

Apply patch

Method 2: View the patch

Click to see the patch contents
diff --git a/man/spec_arrow_write_table_arrow.Rd b/man/spec_arrow_write_table_arrow.Rd
index 0aebe9c8..cf76e061 100644
--- a/man/spec_arrow_write_table_arrow.Rd
+++ b/man/spec_arrow_write_table_arrow.Rd
@@ -20,7 +20,9 @@ or invalid connection.
 An error is also raised
 if \code{name} cannot be processed with \code{\link[DBI:dbQuoteIdentifier]{dbQuoteIdentifier()}} or
 if this results in a non-scalar.
-Invalid values for the additional arguments \code{overwrite}, \code{append}, and \code{temporary} (non-scalars,
+Invalid values for the additional arguments
+\code{overwrite}, \code{append}, and \code{temporary}
+(non-scalars,
 unsupported data types,
 \code{NA},
 incompatible values,

This comment was automatically generated by the commit-suggester workflow.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant