-
Import from actions-sync, check carefully (#474).
-
Use pkgdown branch (#473).
-
ci: Use pkgdown branch
-
ci: Updates from duckdb
-
ci: Trigger run
-
-
Install via R CMD INSTALL ., not pak (#471).
-
ci: Install via R CMD INSTALL ., not pak
-
ci: Bump version of upload-artifact action
-
-
Install local package for pkgdown builds.
-
Improve support for protected branches with fledge.
-
Improve support for protected branches, without fledge.
-
Auto-update from GitHub Actions.
Run: https://github.com/r-dbi/RPostgres/actions/runs/10425486593
- Sync with latest developments.
- Use v2 instead of master.
- Inline action.
-
Auto-update from GitHub Actions.
Run: https://github.com/r-dbi/RPostgres/actions/runs/10224248168
-
Auto-update from GitHub Actions.
Run: https://github.com/r-dbi/RPostgres/actions/runs/10200112323
- Use dev roxygen2 and decor.
- Fix on Windows, tweak lock workflow.
-
Auto-update from GitHub Actions.
Run: https://github.com/r-dbi/RPostgres/actions/runs/9728443553
-
Auto-update from GitHub Actions.
Run: https://github.com/r-dbi/RPostgres/actions/runs/9692464325
-
Avoid checking bashisms on Windows.
-
Allow NOTEs on R-devel.
-
Better commit message.
-
Bump versions, better default, consume custom matrix.
-
Recent updates.
- Merge branch 'cran-1.4.7'.
- Merge branch 'cran-1.4.7'.
- Breaking change: Avoid appending a numeric suffix to duplicate column names (#463).
dbWriteTable()
correctly handles name clashes between temporary and permanent tables (#402, #431).- Fix
dbQuoteIdentifier()
forId()
objects to no longer rely on names (#460).
- Bump preferred libpq version on MacOS to 15 (#441, #465).
- Refactor
dbListTables()
et al. (@dpprdan, #413). - Refactor
list_fields()
(#462). - Use
Id
inexists_table()
(#461).
- Use dbitemplate (@maelle, #456).
- Test for columns in
dbQuoteIdentifier()
(@dpprdan, #263, #372). - Fix tests if DBItest is not installed (#448).
- Breaking change:
dbListObjects()
only allowsId()
objects asprefix
argument (@dpprdan, #390).
- Use
NULL
in favor ofNULL::text
when quoting strings and literals, to support JSON and other text-ish types. Fixes a regression introduced in #370 (#393, #425).
-
dbQuoteLiteral()
correctly quotes 64-bit integers from the bit64 package (of class"integer64"
) (@karawoo, #435, #436). -
Breaking change:
dbListObjects()
only allowsId()
objects asprefix
argument (@dpprdan, #390).
-
Windows: update to libpq-15.3 (#442).
-
Upgrade boost to 1.81.0-1 to fix sprintf warnings (#417).
-
Suppress warning in gcc-12 (#443).
-
Tweak driver docs (@dpprdan, #433).
-
Relicense as MIT.
- Close result set.
- Replace Rcpp by cpp11 (@Antonov548, #419).
-
Upgrade boost to 1.81.0-1 to fix sprintf warnings (#417).
-
One-click setup for https://gitpod.io (@Antonov548, #407).
-
Use testthat edition 3 (#408).
- Allow connection if the
pg_type
table is missing (#394, #395, @pedrobtz). - Fix
dbExecute(immediate = TRUE)
afterdbAppendTable()
(#382, #384).
- Expand tests for
dbConnect(check_interrupts = TRUE)
(#385, @zozlak). - Ignore extended timestamp tests on i386 (#387).
- New
postgresIsTransacting()
(#351, @jakob-r). - Temporary tables are now discovered correctly for
Redshift()
connections, all DBItest tests pass (#358, @galachad).
- Make method definition more similar to S3. All
setMethod()
calls refer to top-level functions (#380).
dbWriteTable()
uses savepoints for its transactions, even if an external transaction is open. This does not affect Redshift, because savepoints are not supproted there (#342).- With
dbConnect(check_interrupts = TRUE)
, interrupting a query now gives a dedicated error message. Very short-running queries no longer take one second to complete (#344).
dbQuoteLiteral()
correctly quotes length-0 values (#355) and generates typedNULL
expressions forNA
values (#357).- The
SET DATESTYLE
query sent after connecting uses quotes for compatibility with CockroachDB (#360).
dbConnect()
executes initial queries withimmediate = TRUE
(#346).- Check Postgres starting from version 10 on GitHub Actions (#368).
- Fix build on Ubuntu 16.04 (#352).
- Mention
libssl-dev
inconfigure
script (#350).
- Avoid crash by dereferencing 0-size vector (#343).
Redshift()
connections now adhere to almost all of the DBI specification when connecting to a Redshift cluster. BLOBs are not supported on Redshift, and there are limitations with enumerating temporary and persistent tables (#215, #326).dbBegin()
,dbCommit()
anddbRollback()
gainname
argument to support savepoints. An unnamed transaction must be started beforehand (#13).dbWriteTable()
uses a transaction (#307).dbSendQuery()
gainsimmediate
argument. Multiple queries (separated by semicolons) can be passed in this mode, query parameters are not supported (#272).dbConnect(check_interrupts = TRUE)
now aborts a running query faster and more reliably when the user signals an interrupt, e.g. by pressing Ctrl+C (#336).dbAppendTable()
gainscopy
argument. If set toTRUE
, data is imported viaCOPY name FROM STDIN
(#241, @hugheylab).- Postgres
NOTICE
messages are now forwarded as proper R messages and can be captured and suppressed (#208).
dbQuoteLiteral()
converts timestamp values to input time zone, used when writing tables to Redshift (#325).
- Skip timestamp tests on i386 (#318).
dbSendQuery()
anddbQuoteLiteral()
use single dispatch (#320).dbWriteTable()
anddbAppendTable()
default tocopy = NULL
, this translates toTRUE
forPostgres()
andFALSE
forRedshift()
connections (#329).
- Order help topics on pkgdown site.
- Use
@examplesIf
in method documentation. - Document when
field.types
is used indbWriteTable()
(#206). - Document setting the tablespace before writing a table (#246).
- Tweak error message for named
params
argument todbBind()
(#266).
- Fix
dbConnect(check_interrupts = TRUE)
on Windows (#244, @zozlak). - Windows: update to libpq 13.2.0 and add UCRT support (#309, @jeroen).
- Remove BH dependency by inlining the header files (#300).
- Use Autobrew if libpq is older than version 12 (#294, @jeroen).
dbConnect()
now issuesSET datestyle to iso, mdy
to avoid translation errors for datetime values with databases configured differently (#287, @baderstine).
Inf
,-Inf
andNaN
values are returned correctly on Windows (#267).- Fix behavior with invalid time zone (#284, @ateucher).
dbConnect()
defaults totimezone_out = NULL
, this means to usetimezone
.FORCE_AUTOBREW
environment variable enforces use ofautobrew
inconfigure
(#283, @jeroen).- Fix
configure
on macOS, small tweaks (#282, #283, @jeroen). - Fix
configure
script, remove$()
not reliably detected bycheckbashisms
. configure
uses a shell script and no longer forwards tosrc/configure.bash
(#265).
dbConnect()
gainstimezone_out
argument, the defaultNULL
means to usetimezone
(#222).dbQuoteLiteral()
now quotes difftime values asinterval
(#270).- New
postgresWaitForNotify()
addsLISTEN/NOTIFY
support (#237, @lentinj).
Inf
,-Inf
andNaN
values are returned correctly on Windows (#267).DATETIME
values (=without time zone) andDATETIMETZ
values (=with time zone) are returned correctly (#190, #205, #229), also if they start before 1970 (#221).
configure
uses a shell script and no longer forwards tosrc/configure.bash
(#265).- Switch to GitHub Actions (#268, thanks @ankane).
- Now imports the lubridate package.
- Gains new
Redshift
driver for connecting to Redshift databases. Redshift databases behave almost identically to Postgres so this driver allows downstream packages to distinguish between the two (#258). - Datetime values are now passed to the database using an unambiguous time zone format (#255, @imlijunda).
- Document
Postgres()
together withdbConnect()
(#242). - Windows: update libpq to 12.2.0.
- Breaking: Translate floating-point values to
DOUBLE PRECISION
by default (#194). - Avoid aggressive rounding when passing numeric values to the database (#184).
- Avoid adding extra spaces for numerics (#216).
- Column names and error messages are UTF-8 encoded (#172).
dbWriteTable(copy = FALSE)
,sqlData()
anddbAppendTable()
now work for character columns (#209), which are always converted to UTF-8.
- Add
timezone
argument todbConnect()
(#187, @trafficonese). - Implement
dbGetInfo()
for the driver and the connection object. dbConnect()
gainscheck_interrupts
argument that allows interrupting execution safely while waiting for query results to be ready (#193, @zozlak).dbUnquoteIdentifier()
also handles unquoted identifiers of the formtable
orschema.table
, for compatibility with dbplyr. In addition, acatalog
component is supported for quoting and unquoting withId()
.dbQuoteLiteral()
available for"character"
(#209).- Windows: update libpq to 11.1.0.
- Fulfill CII badge requirements (#227, @TSchiefer).
- Hide unused symbols in shared library (#230, @troels).
- Fix partial argument matching in
dbAppendTable()
(r-dbi/DBI#249). - Fix binding for whole numbers and
POSIXt
timestamps (#191).
sqlData(copy = FALSE)
now usesdbQuoteLiteral()
(#209).- Add tests for
dbUnquoteIdentifier()
(#220, @baileych). - Improved tests for numerical precision (#203, @harvey131).
- Fix test: change from
REAL
toDOUBLE PRECISION
(#204, @harvey131). - Implement
dbAppendTable()
for own connection class, don't hijack base class implementation (r-dbi/RMariaDB#119). - Avoid including the call in errors.
- Align
DbResult
and other classes with RSQLite and RMariaDB.
- Replace
std::mem_fn()
byboost::mem_fn()
which works for older compilers.
- Replace
std::mem_fun_ref()
bystd::mem_fn()
.
- Add support for
bigint
argument todbConnect()
, supported values are"integer64"
,"integer"
,"numeric"
and"character"
. Large integers are returned as values of that type (r-dbi/DBItest#133). - Data frames resulting from a query always have unique non-empty column names (r-dbi/DBItest#137).
- New arguments
temporary
andfail_if_missing
(default:TRUE
) todbRemoveTable()
(r-dbi/DBI#141, r-dbi/DBI#197). - Using
dbCreateTable()
anddbAppendTable()
internally (r-dbi/DBI#74). - The
field.types
argument todbWriteTable()
now must be named. - Using
current_schemas(true)
also indbListObjects()
anddbListTables()
, for consistency withdbListFields()
. Objects from thepg_catalog
schema are still excluded. dbListFields()
doesn't list fields from tables found in thepg_catalog
schema.- The
dbListFields()
method now works correctly if thename
argument is a quoted identifier or of classId
, and throws an error if the table is not found (r-dbi/DBI#75). - Implement
format()
method forSqliteConnection
(r-dbi/DBI#163). - Reexporting
Id()
,DBI::dbIsReadOnly()
andDBI::dbCanConnect()
. - Now imports DBI 1.0.0.
- Breaking change:
dbGetException()
is no longer reexported from DBI. - Make "typname" information available after
dbFetch()
anddbGetQuery()
. Values of unknown type are returned as character vector of class"pq_xxx"
, where"xxx"
is the "typname" returned from PostgreSQL. In particular,JSON
andJSONB
values now have class"pq_json"
and"pq_jsonb"
, respectively. The return value ofdbColumnInfo()
gains new columns".oid"
(integer
),". known"
(logical
) and".typname"
(character
) (#114, @etiennebr). - Values of class
"integer64"
are now supported fordbWriteTable()
anddbBind()
(#178). - Schema support, as specified by DBI:
dbListObjects()
,dbUnquoteIdentifier()
andId()
. - Names in the
x
argument todbQuoteIdentifier()
are preserved in the output (r-dbi/DBI#173). - All generics defined in DBI (e.g.,
dbGetQuery()
) are now exported, even if the package doesn't provide a custom implementation (#168). - Replace non-portable
timegm()
with private implementation. - Correct reference to RPostgreSQL package (#165, @ClaytonJY).
- Only call
PQcancel()
if the query hasn't completed, fixes transactions on Amazon Redshift (#159, @mmuurr). - Fix installation on macOS.
- Check libpq version in configure script (need at least 9.0).
- Fix UBSAN warning: reference binding to null pointer (#156).
- Fix rchk warning: PROTECT internal temporary SEXP objects (#157).
- Fix severe memory leak when fetching results (#154).
Initial release, compliant to the DBI specification.
- Test almost all test cases of the DBI specification.
- Fully support parametrized queries.
- Spec-compliant transactions.
- 64-bit integers are now supported through the
bit64
package. This also means that numeric literals (as inSELECT 1
) are returned as 64-bit integers. Thebigint
argument todbConnect()
allows overriding the data type on a per-connection basis. - Correct handling of DATETIME and TIME columns.
- New default
row.names = FALSE
.