Changelog
Source:NEWS.md
Version 4.4.0
- Date 2024-11-08
- When querying with only_attributes=F in binary or arrow format via the httpapi, uses the arrow+ and binary+ formats in both the use_aio=F and use_aio=T cases, and never instead modifies the AFL by adding in the flatten operator.
- When querying with use_aio=T in text formats via the httpapi, actually uses aio_save instead of save. Adds a scidb.aio_text R option that switches the default value of use_aio flag from F to T for text formats. The behavior of the existing scidb.aio R options is unchanged; as before it switches the default value of use_aio from F to T for the binary format. The arrow format always uses aio_save irrespective of use_aio.
- The above are achieved by using new support in the aio_save operator for arrow+ and binary+ format types and for text format strings compatible with those used by save. Thus, this version requires extra-scidb-libs-23.10 to be updated to package release 5-1 or greater on the SciDB server.
- Adds test coverage for binary and text format queries using AIO by testing many existing unit test cases over a matrix of formats and use_aio settings.
- No changes made to queries via shim
Version 4.3.0
- Date 2024-10-15
- error$message is now a single string with newlines instead of a vector (#353)
- Results returned in arrow format are now returned as data.frame instead of tibble (#341)
- Tests are now run on R 4.2.3, 4.3.3, and 4.4.1; this is now configured in the workflow file itself instead of using repo vars. (#358, #360)
Version 4.2.0
- Date 2024-07-12
- Bug fixes for parallel uploads in the SciDB HTTP API (SDB-8488, SDB-8509): If the SciDB server returns HTTP status code 429 “Too Many Requests”, the client backs off and retries its request after waiting the number of seconds indicated in the response’s “Retry-After” header.
- Bug fix for “$ operator invalid” message during upload error (SDB-8524).
Version 4.1.3
- Date 2024-06-13
- Limit evaluation of R function calls in expression parsing to “c”, “paste0”, and boolean functions and predicates, in order to fix compatibility issues and allow the eventual replacement of ArrayOpR expression parsing with the expression parsing in this base package.
Version 4.1.2
- Date: 2024-05-02
- Work around SDB-8481 by setting default inactivity_timeout to NULL for SciDB HTTP Client API. The inactivity_timeout is now configurable using
options(scidb.httpapi.inactivity_timeout)
.
Version 4.1.1
- Date: 2024-03-24
- Belated news for verison 4.1: version 4.1 included support for parsing R expressions bound to new variable names via
scidb::assign_expressions(...)
andscidb::assign_expressions_to_afl(...)
, as well as adding support to parseif (cond) {a} else {b}
,if (cond) a else b
, andifelse(cond, a, b)
expressions and map them to the AFLiif
function. - Corrections to the github workflow for generating documentation, which prevented the automatic deployment of documentation for version 4.1
Version 4.1
- Date: 2024-01-15
-
When using the SciDB HTTP API against a SciDB server of version 23.10.3 or later, clients can set
Querying functions (like iquery()) take new optional arguments:options(scidb.httpapi.resumable=TRUE)
to opt-in to using the experimental “timeout and resume” feature for queries. This lets the scidb server detect when the client is actively reading from a query, allowing it to extend the lifetimes of the query and authentication token so they don’t expire while the SciDBR application is running.- progress_check_secs: after every interval of this many seconds, interrupt the query, call
progress_check_callback
if provided, and resume the query. - progress_check_callback: a callback function which is called every
progress_check_secs
seconds, of the form:function(query, page_number, response_number, cumulative_nbytes, ...)
The callback function can do things like displaying the number of bytes received so far. If the function stops execution usingstop()
, the query gets canceled.
You can set
options(scidb.httpapi.progress_check_secs)
to control the default forprogress_check_secs
. - progress_check_secs: after every interval of this many seconds, interrupt the query, call
Version 4.0.5
- Date: 2024-01-15
- Bugfixes for failures uploading data frames via the SCIDB HTTP API found in the ArrayOpR unit tests
Version 4.0.1
- Date: 2023-07-19
- Dependency fixes: R6 added to Imports; bit64 moved from Depends to Imports; glue::glue() usage replaced with paste()/paste0()
Version 4.0.0
- Date: 2023-05-05
- SciDBR can now connect directly to SciDB versions 23.2 and higher using the new SciDB HTTP API, without requiring Shim. To use it, connect using
scidbconnect()
as normal, but specify the HTTP API port number (usually 7000 + the SciDB port number; most often 8239). SciDBR will automatically determine the protocol and API to use, using the SciDB HTTP API for direct connections or the Shim API for shim connections.
Version 3.1.6
- Date: 2023-05-03
- Add tools for converting R filter expressions into corresponding AFL (https://github.com/Paradigm4/SciDBR/pull/284)
Version 3.1.5
- Date: 2023-04-10
- Fix bug – passing curl options as a list was not working in R>=4.2 (fix #279)
Version 3.1.3
- Date: 2023-01-04
- Consolidate curl handle creation code and add ability to set this via package config (fix #253)
Version 3.1.2
- Date: 2022-09-07
- Changes how as.scidb() and store() handle ‘gc’ when not specified (https://github.com/Paradigm4/SciDBR/pull/252)
- Allows ‘gc’ to clean up named arrays, and not just ‘Rarray_…’ arrays
Version 3.1.1
- Date: 2022-07-06
- Avoid protocol issue with libcurl and HTTP/2 (https://github.com/Paradigm4/SciDBR/pull/251)
Version 3.1.0
- Date: 2022-03-18
- Initial support for Arrow format (https://github.com/Paradigm4/SciDBR/pull/243)
Version 3.0.10
- Date: 2021-11-17
- Fix for datetimes returned in situations where the client and server are not in the same time zone
Version 3.0.9
- Date: 2021-10-18
- Fix for #236 (scidbr objects are not printing to console)
Version 3.0.8
- Date: 2021-09-29
- Fixed issue of munged queries (https://github.com/Paradigm4/SciDBR/issues/234) arising from potential
sprintf
bug
Version 3.0.7
- Date: 2021-09-06
- In
as.scidb
, added a new optional parameter -max_byte_size
(default value: 500MB) for uploading R vectors in a multi-part fashion into SciDB. Example:
Version 3.0.6
- Date: 2021-08-13
- In
as.R
, SciDB data frames are downloaded without the artificial dimensions
Version 3.0.5
- Date: 2021-07-20
- Fix for uploading long vectors via
as.scidb()
https://github.com/Paradigm4/SciDBR/issues/220
Version 3.0.3
- Date: 2021-05-13
- Support for uploading vectors, dense and sparse matrices as temp arrays via
as.scidb
- Partial fix for CRAN reviewer comments (https://github.com/Paradigm4/SciDBR/issues/213)
Version 2.0.0
CRAN release: 2017-04-14
- This is a major release that breaks API compatibility with previous package releases. Array objects have been removed. All SciDB arrays are now presented as virtual data frames in R. This change was informed by the most common uses we’ve seen.
- Greatly simplified the package, improved data transfer performance
- Support for SciDB 16.9 and older versions at least back to 15.7
Version 1.1-3
Support for upcoming SciDB 14.12, untested backwards support for older releases
Improved type parsing support, new binary transfer option for data frame objecs. This is much faster than UTF-8 transfer from SciDB.
Support for streaming data from SciDB.
Option to disable interrupt handling for faster large data transfers.
Added functions include order, more flexible dist, peek.
Version 1.1-2
CRAN release: 2014-04-16
SCIDB SUPPORT
Support for SciDB 14.3, untested support for older SciDB releases
Dropping arrays from other R sessions requires a non-default option facilitating multiple-user settings.
Queries can be canceled with R user interrupts now (for example with CTRL + C or ESC).
IMPROVEMENTS
Many improvements to merge and aggregate functions
N-d arrays with multiple attributes can now index with
$
Improved R save/load of R data files containing SciDB objects
NEW FEATURES
Support for Paradigm4 glm and a simple glm model matrix builder
Support for Paradigm4 truncated SVD routine
Added hist, quantile, all.equal, antijoin, a
c
(SciDB concat-like) function and many others
Version 1.1-1
CRAN release: 2014-01-25
WINDOWED AGGREGATES
- The aggregate function now supports moving and fixed window aggregates.
TLS/SSL ENCRYPTION AND AUTHENTICATION
- The package now supports TLS/SSL encrypted communication with the shim network service and authentication. The only function affected by this is
scidbconnect
– simply supply an SSL port number and username and password arguments.
LAZY EVALUATION
- Most scidb and scidbdf object can now represent array promises, un-evaluated SciDB queries equipped with a result schema and a context environment.
NEW COMPOSABLE OPERATORS
- Many new functions were introduced that closely follow underlying SciDB AFL operators. All of the new functions are composable with lazy evaluation of the underlying query using the new
scidbexpr
class. Results are only computed and stored by SciDB when required or explicitly requested.
R SPARSE MATRIX SUPPORT
- The package now maps sparse SciDB arrays to sparse R matrices. Only matrices (2-d arrays) with double-precision attributes are supported. Sparse array arithmetic uses the new P4 sparse matrix multiply operator when available.
USING RCurl NOW
- We introduced a dependency on RCurl in order to support SSL and authentication with the SciDB shim service.
NO MORE SciDB NID
- The package no longer tries to support SciDB arrays with NID dimensions, which never really worked anyway. Instead, many functions now take advantage of the new SciDB
uniq
andindex_lookup
operators if available (>=SciDB 13.6). Future package versions will take this further and introduce array dimension labeling using the new operators.
MANY NEW DATABASE-LIKE FEATURES
- Aggregate was improved, merge sort, unique, index_lookup, and other new functions were added. See the vignette for more information.
Version 1.1-0
CRAN release: 2013-04-13
SIGNIFICANT BUG FIX:
- Materializing subsetting operations could return inconsistently ordered data when results spanned SciDB array chunks across multiple SciDB instances. Data are now returned correctly in such cases.
OTHER BUG FIXES:
Fixed a bug in the processing of the start argument in the as.scidb function.
Fixed several bugs in the image function.
NEW FEATURES:
The iquery function now accepts n=Inf to efficiently download all output from query at once. The iterative=TRUE option should still be used with smaller n values to iterate over large results.
The crossprod and tcrossprod functions are now available for SciDB arrays and mixed SciDB/R objects.
A diag function is now available for SciDB matrices, returning result as a new SciDB 1-D array (vector).
Element-wise exponentiation was implemented for scidb array objects.
Implemented a sum function for scidb array objects.