Skip to content

Commit 8a36f97

Browse files
committed
Merge branch 'release'
2 parents e6438b1 + 20b4548 commit 8a36f97

35 files changed

+1113
-350
lines changed

.travis.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ matrix:
1515
exclude:
1616
- r: release
1717
os: osx
18-
- r: oldrel
19-
os: linux
2018
- r: devel
2119
os: osx
2220

DESCRIPTION

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,34 @@
11
Package: fst
22
Type: Package
33
Title: Lightning Fast Serialization of Data Frames for R
4-
Description: Multithreaded serialization of compressed data frames using the 'fst' format.
5-
The 'fst' format allows for random access of stored data and compression with the
6-
LZ4 and ZSTD compressors created by Yann Collet. The ZSTD compression library is owned by
7-
Facebook Inc.
8-
Version: 0.8.2
9-
Date: 2017-12-18
4+
Description: Multithreaded serialization of compressed data frames using the
5+
'fst' format. The 'fst' format allows for random access of stored data and
6+
compression with the LZ4 and ZSTD compressors created by Yann Collet. The ZSTD
7+
compression library is owned by Facebook Inc.
8+
Version: 0.8.4
9+
Date: 2018-01-25
1010
Authors@R: c(
1111
person("Mark", "Klik", email = "[email protected]", role = c("aut", "cre", "cph")),
1212
person("Yann", "Collet", role = c("ctb", "cph"),
1313
comment = "Yann Collet is author of the bundled LZ4 and ZSTD code and copyright holder of LZ4"),
1414
person("Facebook, Inc.", role = "cph", comment = "Bundled ZSTD code"))
1515
LazyData: true
16-
Depends: R (>= 3.0.0)
17-
Imports: Rcpp
16+
Depends:
17+
R (>= 3.0.0)
18+
Imports:
19+
Rcpp
1820
LinkingTo: Rcpp
1921
SystemRequirements: little-endian platform
2022
RoxygenNote: 6.0.1
21-
Suggests: testthat, bit64, data.table, lintr, nanotime
23+
Suggests:
24+
testthat,
25+
bit64,
26+
data.table,
27+
lintr,
28+
nanotime
2229
License: AGPL-3 | file LICENSE
2330
Copyright: This package includes sources from the LZ4 library written
2431
by Yann Collet, sources of the ZSTD library owned by Facebook, Inc.
25-
and sources of the fstlib library owned by Mark Klik
32+
and sources of the fstlib library owned by Mark Klik
2633
URL: https://fstpackage.github.io
2734
BugReports: https://github.com/fstpackage/fst/issues

NAMESPACE

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,20 @@
11
# Generated by roxygen2: do not edit by hand
22

3+
S3method("$",fst_table)
4+
S3method("[",fst_table)
5+
S3method("[[",fst_table)
6+
S3method(as.data.frame,fst_table)
7+
S3method(as.list,fst_table)
8+
S3method(dim,fst_table)
9+
S3method(dimnames,fst_table)
10+
S3method(names,fst_table)
11+
S3method(print,fst_table)
312
S3method(print,fstmetadata)
13+
S3method(row.names,fst_table)
14+
S3method(str,fst_table)
415
export(compress_fst)
516
export(decompress_fst)
17+
export(fst)
618
export(fst.metadata)
719
export(hash_fst)
820
export(metadata_fst)
@@ -14,4 +26,5 @@ export(write_fst)
1426
importFrom(Rcpp,sourceCpp)
1527
importFrom(parallel,detectCores)
1628
importFrom(utils,packageVersion)
29+
importFrom(utils,str)
1730
useDynLib(fst, .registration = TRUE)

NEWS.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,29 @@
11

22
**If you are viewing this file on CRAN, please check latest news on GitHub [here](https://github.com/fstpackage/fst/blob/develop/NEWS.md).**
33

4+
### Changes in v0.8.4
5+
6+
The v0.8.4 release brings a `data.frame` interface to the `fst` package. Column and row selection can now be done directly from the `[` operator. In addition, it fixes some issues and prepares the package for the next build toolchain of CRAN.
7+
8+
#### New features
9+
10+
* A `data.frame` interface was added to the package. The user can create a reference obkect to a `fst` file with method `fst`. That reference can be used like a `data.frame` and will automatically make column- and row- selections in the referenced `fst` file.
11+
12+
#### Bugs solved
13+
14+
* Build issues with the dev build of R have been fixed. In particular, `fst` now builds correctly with the Clang 6.0 toolchain which will be released by CRAN shortly (thanks @kevinushey for reporting the problem and CRAN maintainers for the advance warning.
15+
16+
* An error was fixed where compressing a short factor column with 128 to 32767 levels but only a single value, returned incorrect results (issue #128, thanks @martinblostein for reporting and help fixing the problem).
17+
18+
* An error was fixed where columns f type 'ITime' were incorrectly serialized (issue #126, thanks @Giqles for reporting the problem).
19+
20+
* An error was fixed where using `fst` as a dependency in another package and building that package in RStudio, crashed RStudio. The problem was that RStudio uses a fork to build or document a package. That fork made `fst` use OpenMP library methods, which leads to crashes on macOS. After the fix, no calls to any OpenMP library method are now made from `fst` when it's run from a forked process (issue #100 and issue #109, thanks to @eipi10, @PeteHaitch, @kevinushey, @thierrygosselin, @xiaodaigh and @jzzcutler for reporting the problem and help fix it).
21+
22+
#### Documentation
23+
24+
* Documentation for method `write_fst` was improved (issue #123, thanks @krlmlr for reporting and submitting a pull request).
25+
26+
427
### Changes in v0.8.2
528

629
#### New features

R/fst.R

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,14 @@
3232
#' @param x a data frame to write to disk
3333
#' @param path path to fst file
3434
#' @param compress value in the range 0 to 100, indicating the amount of compression to use.
35+
#' Lower values mean larger file sizes.
3536
#' @param uniform_encoding If TRUE, all character vectors will be assumed to have elements with equal encoding.
3637
#' The encoding (latin1, UTF8 or native) of the first non-NA element will used as encoding for the whole column.
3738
#' This will be a correct assumption for most use cases.
3839
#' If \code{uniform.encoding} is set to FALSE, no such assumption will be made and all elements will be converted
3940
#' to the same encoding. The latter is a relatively expensive operation and will reduce write performance for
4041
#' character columns.
41-
#' @return \code{read_fst} returns a data frame with the selected columns and rows. \code{read_fst})
42+
#' @return \code{read_fst} returns a data frame with the selected columns and rows. \code{read_fst}
4243
#' invisibly returns \code{x} (so you can use this function in a pipeline).
4344
#' @examples
4445
#' # Sample dataset
@@ -97,13 +98,15 @@ metadata_fst <- function(path, old_format = FALSE) {
9798
stop("A logical value is expected for parameter 'old_format'.")
9899
}
99100

100-
metadata <- fstmetadata(normalizePath(path, mustWork = TRUE), old_format)
101+
full_path <- normalizePath(path, mustWork = TRUE)
102+
103+
metadata <- fstmetadata(full_path, old_format)
101104

102105
if (inherits(metadata, "fst_error")) {
103106
stop(metadata)
104107
}
105108

106-
colInfo <- list(path = path, nrOfRows = metadata$nrOfRows,
109+
colInfo <- list(path = full_path, nrOfRows = metadata$nrOfRows,
107110
keys = metadata$keyNames, columnNames = metadata$colNames,
108111
columnBaseTypes = metadata$colBaseType, keyColIndex = metadata$keyColIndex,
109112
columnTypes = metadata$colType)
@@ -116,7 +119,7 @@ metadata_fst <- function(path, old_format = FALSE) {
116119
#' @export
117120
print.fstmetadata <- function(x, ...) {
118121
cat("<fst file>\n")
119-
cat(x$nrOfRows, " rows, ", length(x$columnNames), " columns (", x$path,
122+
cat(x$nrOfRows, " rows, ", length(x$columnNames), " columns (", basename(x$path),
120123
")\n\n", sep = "")
121124

122125
types <- c("unknown", "character", "factor", "ordered factor", "integer", "POSIXct", "difftime",

0 commit comments

Comments
 (0)