From 53fb2a0957fa99d5336d78c2d7b46e3820b6d00c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Sun, 5 May 2024 15:57:18 +0200 Subject: [PATCH] Use as.integer() from extension --- R/relational-duckdb.R | 1 - R/relational.R | 7 ++++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/R/relational-duckdb.R b/R/relational-duckdb.R index 3c378b045..19ae3a2e3 100644 --- a/R/relational-duckdb.R +++ b/R/relational-duckdb.R @@ -38,7 +38,6 @@ duckplyr_macros <- c( # "as.Date" = '(x) AS strptime(x, \'%Y-%m-%d\')', "grepl" = "(pattern, x) AS (CASE WHEN x IS NULL THEN FALSE ELSE regexp_matches(x, pattern) END)", - "as.integer" = "(x) AS CAST(x AS int32)", "if_else" = "(test, yes, no) AS (CASE WHEN test THEN yes ELSE no END)", "|" = "(x, y) AS (x OR y)", "&" = "(x, y) AS (x AND y)", diff --git a/R/relational.R b/R/relational.R index 0f0158a71..8174e880b 100644 --- a/R/relational.R +++ b/R/relational.R @@ -225,6 +225,7 @@ rel_translate <- function( "/" = "___divide", "log10" = "___log10", "log" = "___log", + "as.integer" = "r_base::as.integer", NULL ) @@ -263,6 +264,9 @@ rel_translate <- function( if (name %in% names(aliases)) { name <- aliases[[name]] + if (grepl("^r_base::", name)) { + meta_ext_register() + } } # name <- aliases[name] %|% name @@ -309,7 +313,8 @@ rel_translate <- function( ) if (name == "row_number") { - fun <- relexpr_function("as.integer", list(fun)) + fun <- relexpr_function("r_base::as.integer", list(fun)) + meta_ext_register() } } fun