Changes:
When creating emulated temp tables (Oracle, Spark, BigQuery), will first attempt to drop (if exist). This is to clean up any orphan tables from a previous (unsuccesful) run.
Adding tentative support for InterSystems IRIS. Could still be removed.
Bugfixes:
IF OBJECT_ID('tempdb..#table', 'U') IS NOT NULL DROP TABLE #table;
Changes:
DATEADD()
from
DATE_ADD()
to DATEADD()
as required by some
but not all Databricks instances.Bugfixes:
Fixed DuckDb translation of
CAST(CONCATENATE(...) AS DATE)
.
Fix Snowflake and DataBricks translation of
CAST(... AS DATE)
when ...
is a
literal.
Changes:
Adding translation for bitwise AND operator
(&
).
Changing temp table field name maximum length to 63-8 for throwing warnings (was 30-8). Oracle changed it’s limit from 30 to 128 in version 12.2, which was released in 2021. The new limit comes from PostgreSQL, which by default allows for 63 characters. All other supported DBMSs allow for longer names.
Bugfixes:
For SQLite, now translating
ALTER TABLE ALTER COLUMN BIGINT
to dummy statement
(SELECT 0;
), since all integer types are the same on
SQLite.
Fixed translation of ALTER TABLE ALTER COLUMN
on
PostgreSQL.
More robust detection of string concatenation for BigQuery.
Changes:
Bugfixes:
Fix translation of NEWID()
for DuckDB.
Fix LEFT()
and RIGHT()
translation on
Spark.
Fix some date functions on SQLite.
Fix DROP TABLE IF EXISTS
and
CREATE TABLE IF EXISTS
translation for Synapse.
Changes:
Adding support for ALTER TABLE ADD COLUMN
for
PostgreSQL, even though it is not correct OhdsiSql (because it is not
valid SQL Server SQL).
Removing translation of DELETE
and
INSERT
rules for DataBricks as no longer needed.
Bugfixes:
ALTER TABLE ADD CONTRAINT
on
Postgres, which was broken by v1.16.0.Changes:
Adding support for ALTER TABLE ADD
for SQLite and
PostgreSQL.
The render()
, translate()
, and
translateSingleStatement()
functions now preserve
attributes of the SQL object.
Adding support for IIF
for Synapse.
Translating double quotes to backticks for BigQuery.
Bugfixes:
Fix translation of drvd()
for Snowflake.
Fix translation of ‘a.b.c…d’ pattern for Snowflake.
Bugfixes:
DATEADD()
for DuckDB when number
to add is not an integer.Bugfixes:
Fixed translation of DATEADD()
for DuckDB when
number to add is an expression instead of a verbatim number.
Fixed Synapse option in the SqlDeveloper Shiny app.
Changes:
FROM (VALUES ...) AS drvd(...)
for PostgreSQL, SQL Server, Oracle, RedShift, SQLite, DuckDb, BigQuery,
and Spark.Bugfixes:
Correct translation when referring to temp table field for DBMSs
that don’t support temp tables
(e.g. SELECT #tmp.name FROM #tmp;
).
Fixing ‘…’ in table aliases generated by
dbplyr
.
Changes:
Adding translation of DATEPART()
for Spark.
Adding translation of CEILING()
for Spark.
Bugfixes:
Fixing translation of CAST(AS DATE)
on Oracle and
Netezza when thing to cast is not a literal string.
Fixing translation of ALTER TABLE
for
PostgreSQL.
Bugfixes:
DROP TABLE IF EXISTS
on
Netezza.Changes:
Added translation of charindex
for
BigQuery.
SQLite translation of RAND()
now returns value
between 0 and 1 for consistency with other platforms.
Bugfixes:
DATEADD()
.Bugfixes:
Fixed translation of WITH ... INSERT
on
Snowflake.
Fixed translation of some functions on Snowflake casting to
NUMERIC
instead of FLOAT
.
Changes:
Adding translation of TRY_CAST()
.
The loadRenderTranslateSql()
function now also looks
in the sql
folder of the package, so SQL files no longer
have to be in the sql/sql_server
subfolder.
Ensuring result of YEAR()
, MONTH()
,
DAY()
, and DATEPART()
equivalents return
integers on SQLite.
Ensuring interval is integer on BigQuery.
Changes:
Removing parentheses around subqueries for UNION
and
UNION ALL
on SQLite, which otherwise would cause an
error.
Preventing translating SQL twice by adding attribute to output string.
Bugfixes:
INTERSECT
on BigQuery.Changes:
Added translation for SELECT *,
pattern for
Oracle.
Switched Oracle translation of SELECT TOP
from
WHERE ROWNUM <=
to
FETCH FIRST ROWS ONLY
.
Added translation of DATEPART()
to all
dialects.
Added translation patterns to avoid alias conflicts when using
dbplyr
on BigQuery.
Adding translation of SQL Server’s IIF()
shorthand
for all dialects.
As a temporary workaround for older SQL Server instances,
translating DROP TABLE IF EXISTS
and
CREATE TABLE IF NOT EXISTS
to old syntax.
Bugfixes:
Fixed erroneously identifying parts of quoted text as start of SQL comments.
Fixed translation of INSERT INTO
with more than one
CTE for Spark.
Fixed translation of SELECT TOP
on all platforms
when using DISTINCT
.
Changes:
Added translation to Snowflake.
Added translation to Synapse.
Added translation to DuckDb.
Bugfixes:
NEWID()
on BigQuery.Bugfixes:
Fixed error about missing checkmate
package.
Fixed error about targetDialect
types not matching
(character != factor) on older R versions (< 4).
Fixed warning about deprecated icon in Shiny app.
Changes:
Bugfixes:
Fixed translation of CREATE TABLE
statements
specifying a field can be NULL on BigQuery.
Fixes translation of CAST('20000101' AS DATE)
on
Oracle.
Changes:
Added additional logic for INSERT
statements on
Spark, including the new sparkHandleInsert()
function.
Supporting DROP TABLE IF EXISTS
translation across
all dialects.
Adding translation rule for CAST(... AS DATE)
for
SQLite.
Added snakeCaseToCamelCaseNames()
and
camelCaseToSnakeCaseNames()
functions.
Changes:
Added rules for translating implicit string concatenation to BigQuery.
Added getTempTablePrefix()
function.
Changes:
listSupportedDialects()
function.Bugfixes:
DATEFROMPARTS
and DATETIMEFROMPARTS
translation for newer SQLite versions by first converting to
INT
before converting to TEXT
.Changes:
Changes:
Added Apache Spark dialect (“spark”).
Adding automated check whether correct Java Jar file is loaded, throws warning if not.
Adding translation of CEILING()
for SQLite.
Bugfixes:
Fixing setting of global tempEmulationSchema
option.
Workaround for SUBSTR()
function bug in newer
versions of SQLite (by explicitly casting string to type
STRING
).
Changes:
Deprecating oracleTempSchema
argument in various
functions in favor of tempEmulationSchema
schema, which can
also be set globally using the sqlRenderTempEmulationSchema
option.
Adding translation of DATEDIFF(YEAR, …) and DATEDIFF(MONTH, …) to all dialects.
Updated createRWrapperForSql()
to latest SqlRender
standards.
Bugfixes:
Fixed translation of CTE without FROM or UNION in BigQuery.
Fixed translation of CONVERT(DATE…) in SQLite.
Fixed translation of DATEDIFF with literals in SQLite.
Bugfixes:
Changes:
loadRenderTranslateSql()
cannot find the SQL file in the
specified package.Bugfixes:
On SQLite, DATEADD
and CONVERT
functions now cast to REAL
(used to represent DATE /
DATETIME).
On SQLite, DATEADD
function now works when amount to
add is not a verbatim number.
Changes:
Adding rules for modulus operator for BigQuery.
Deleting UPDATE STATISTICS statement for BigQuery.
Bugfixes:
CAST(@a as DATE)
for ‘YYYYMMDD’ string dates on
BigQuery.Changes:
Adding support for Apache Hive LLAP.
Adding functions to convert camelCase to Title Case. (camelCaseToTitleCase)
Changes:
Added rules for SQLite for LEFT and RIGHT functions.
SQLite now dropping schema name when creating and dropping index (as this throws an error if left).
No longer automatically casting literal to TEXT in RedShift CTE. Users are required to do explicit casts instead.
BigQuery insertTable()
now also uses CTAS
hack.
Added translation rules for HASHBYTES
.
Bugfixes:
Fixing GETDATE translation for SQLite.
When calling render
, the replacement value can now
contain a $ sign. (Previously this caused an error).
isNumeric can now also be applied to numeric fields in Postgres.
Better handling of illegal characters in Impala.
Changes:
Bugfixes:
Changes:
Bugfixes:
Changes:
Major overhaul of BigQuery translation.
Added support for SQLite.
ISNUMERIC
translation implemented for Impala,
Netezza, and BigQuery.
Performance improvement for Impala temp tables
(CREATE TABLE ... STORED AS PARQUET
).
Adding functions render
and translate
that output strings instead of lists. Deprecating renderSql
and translateSql
.
Added function translateSingleStatement
.
Bugfixes:
Dropping WHERE clause when translating CREATE INDEX for PDW.
Fixed PDW’s equivalent of CREATE TABLE IF NOT EXISTS.
Changes:
Bugfixes:
Changes:
Bugfixes:
Changes:
Improved support for Netezza.
Added random distribution hints for PDW, RedShift, Netezza.
Improved MPP index translation for PDW and Netezza.
Warnings about missing parameters when rendering SQL can now be turned off.
Bugfixes:
Changes:
Better handling of ‘FROM DUAL’ for Oracle.
Improved support for Netezza and Impala.
Changes:
Bigquery support for mismatched string and int arguments in coalesce.
Translate decimal to float for BigQuery.
Created rules to add dummy ‘group by’ for Oracle statements combining ‘case’ and ‘count’ to prevent Oracle from crashing.
Adding ‘UNBOUNDED PRECEDING’ to RedShift windowing functions.
Changes:
Added a Shiny app for developing parameterized SQL, and view how this would be rendered and translated into the various supported dialects.
Added support for Google BigQuery.
Added many more rules for Amazon RedShift, including support for optimization hints.
Added rules for DELETE FROM translation for Impala.
Bugfixes:
Changes:
Bugfixes:
Fixed bug when trying to split SQL where reserved word ‘end’ is used as a field name.
Fixes for Impala translations.
Fixed translation issues for Oracle involving ‘FROM DUAL’.
Added workaround for Oracle bug for intervals greater than 99 days.
Fixed bug when trying to split SQL where last line has comment but no EOL.
Changes:
Added ability to use regular expression in translation patterns. This allowed SELECT TOP n to be translated.
Deprecated sourceDialect
argument.
Added translation for CONCAT
function with >2
arguments to Oracle (which only allows 2 arguments)
Added hints for translation optimization to massive parallel platforms like RedShift
Throw warnings when translateSql()
is called with
variable names that are not in the SQL
Throw warnings when table names are too long for Oracle
Bugfixes:
Changes:
Bugfixes:
Changes: initial submission to CRAN