From 154b1099ec0ecf7084b9f91432e0af3a8ab5f354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Tue, 22 Dec 2020 17:40:49 +0100 Subject: [PATCH] Fix quoting of difftime values --- R/PqResult.R | 6 +++++- R/quote.R | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/R/PqResult.R b/R/PqResult.R index 2eb10808..5a9b5b2c 100644 --- a/R/PqResult.R +++ b/R/PqResult.R @@ -202,7 +202,11 @@ fix_posixt <- function(value) { difftime_to_hms <- function(value) { is_difftime <- vlapply(value, inherits, "difftime") - value[is_difftime] <- lapply(value[is_difftime], hms::as_hms) + # https://github.com/tidyverse/hms/issues/84 + value[is_difftime] <- lapply(value[is_difftime], function(x) { + mode(x) <- "double" + hms::as_hms(x) + }) value } diff --git a/R/quote.R b/R/quote.R index 3b31c3e7..8fef19ad 100644 --- a/R/quote.R +++ b/R/quote.R @@ -162,7 +162,10 @@ setMethod("dbQuoteLiteral", c("PqConnection", "POSIXt"), function(conn, x, ...) #' @export #' @rdname quote setMethod("dbQuoteLiteral", c("PqConnection", "difftime"), function(conn, x, ...) { - ret <- paste0(as.character(x), "::time") + # https://github.com/tidyverse/hms/issues/84 + mode(x) <- "double" + + ret <- paste0("'", as.character(hms::as_hms(x)), "'::interval") ret[is.na(x)] <- "NULL" SQL(ret, names = names(ret)) })