Version 1.1.2
CRAN release: 2026-10-02
- Declared support for dbplyr’s 2nd edition interface (
dbplyr_edition()), fixingdplyr::tbl()and other dbplyr-based verbs which previously failed with “uses dbplyr’s 1st edition interface, which is no longer supported” #7. - Added a
sql_translation()method soas.character()/as.integer()/as.numeric()/as.logical()/as.Date()/as.POSIXct(),^,Sys.Date()/Sys.time()andsd()/var()translate to ClickHouse’s own conversion/aggregate functions (toString,toInt64,toFloat64,toUInt8,toDate,toDateTime,pow,today,now,stddevSamp,varSamp) instead of dbplyr’s ANSI defaults, which ClickHouse doesn’t recognize. (Implemented with Claude Code) - Added
sql_table_analyze()(no-op, ClickHouse has noANALYZE) anddb_connection_describe()(shows the ClickHouse server/version instead of just the connection class name) dbplyr methods. (Implemented with Claude Code) - Added a
testthatsuite auditing dbplyr/ClickHouse SQL compatibility: offline SQL-rendering checks (no server needed) plus an opt-in live round-trip suite (setCLICKHOUSE_TEST_HOSTto run it against a real server). (Implemented with Claude Code)
Version 1.1.1
- Fixed timezone-qualified DateTime columns being reported as unsupported with
format = "TabSeparatedWithNamesAndTypes". -
format = "TabSeparatedWithNamesAndTypes"now uses the timezone embedded in a column’s type (e.g.DateTime('Europe/Paris')) when present, falling back to thesession_timezoneconnection setting otherwise.
Version 1.1.0
- Arrow timestamp conversion now uses the
session_timezoneconnection setting #6. - Tab-separated DateTime values now match Arrow timestamps when
session_timezoneis not defined.
Version 1.0.0
CRAN release: 2026-05-18
- Implemented
dbColumnInfo()forClickHouseHTTPResult: returns a data frame withnameandtypecolumns describing the R types of a query result. Works for bothArrowandTabSeparatedWithNamesAndTypesformats by parsing the buffered response content without consuming the result cursor, sodbFetch()can still be called afterwards.
Version 0.99.0
- Migrated HTTP backend from
httrtohttr2: all requests are now built using the httr2 request pipeline (request()→req_headers()→req_options()→req_perform()). - The
reset_handleparameter ofdbConnect()now maps to the httr2/curlfresh_connectoption instead of the formerhttr::handle_reset(). Its behaviour is unchanged: set to TRUE to force a new TCP connection for each request rather than reusing a pooled one. - HTTP error responses are handled manually (via
.query_success()) rather than relying on httr2’s automatic error raising, preserving existing ClickHouse exception-code detection logic. - Minimum R version bumped to 4.1 (required by the native pipe
|>used in the httr2 request pipeline).
Version 0.3.5
- Bug fix (identified and corrected by Claude):
Datecolumns returned as integers when usingformat="Arrow". Newer ClickHouse versions sendDateas Arrowdate32directly, but the internal type-casting logic contained aDate32 → int32rule that was only ever intended as an intermediate step for old ClickHouse (which sentDateasUInt16). When applied to an already correctly typeddate32column, it stripped the date semantics before conversion to R, yielding an integer instead of aDate. Fixed by rewriting the Arrow schema cast helpers (result.R) to generate the two-stepUInt16 → int32 → date32chain only when the source column is actuallyUInt16, leavingdate32andtimestampcolumns untouched.
Version 0.3.4
CRAN release: 2025-06-05
- Don’t use session by default
- Allow specifying database when manipulating tables
Version 0.3.3
CRAN release: 2024-04-18
- Managing data type according to changes in new version of data.table (1.15.0)
Version 0.3.2
CRAN release: 2023-07-04
- Add the possibility to use
httr::handle_reset()when callinghttr::POST()to allow several independent connections in the same session: when needed, set the “reset_handle” parameter to TRUE when callingdbConnect()
Version 0.3.0
CRAN release: 2023-02-16
-
extended_headersparameter indbConnect() - check current ClickHouse user in
dbConnect() - New contributor: https://github.com/eusebiu
Version 0.2.0
path parameter in dbConnect() => use of a reverse proxy
