Migrating from the PostgreSQL JDBC Driver to the Amazon Redshift JDBC Driver

In this article

Overview

The Redshift Snap Pack uses the Amazon Redshift JDBC driver com.amazon.redshift.jdbc42.driver as the default driver class beginning from the March 2023 release. This upgrade is backward compatible. The existing pipelines configured either with the PostgreSQL JDBC driver or the Redshift JDBC driver will continue to work as expected. The new pipelines use the Amazon Redshift JDBC driver as the default driver.

Important:

  • SnapLogic will support providing fixes for the issues you might encounter with accounts that use the PostgreSQL JDBC driver only until November 2023, after which SnapLogic will not provide support. Therefore, we recommend that you migrate from the PostgreSQL JDBC driver to the Redshift JDBC driver by November 2023.

Migrating to the Amazon Redshift JDBC driver

To migrate from the PostgreSQL to the Redshift JDBC driver as the default driver, update the JDBC Driver Class in the Account settings from org.postgresql.driver to "com.amazon.redshift.jdbc42.driver" in your existing accounts:

JDBC Driver Configuration Scenarios in Redshift Accounts

Your pipelines might use a combination of JDBC drivers, classes, and URLs of either the PostgreSQL or the Amazon Redshift JDBC. Here are the configuration scenarios that are authenticated successfully.

  • For the JDBC driver:

    • Default JAR indicates the driver that is bundled with the Snap Pack, and manual indicates the driver that you manually upload.

  • For the JDBC URL:

    • Default JAR indicate the Snap-generated URL, and manual indicates the URL that you manually specify.

JDBC Driver JAR

JDBC Driver Class

JDBC URL

Authentication

Redshift (default/manual)

com.amazon.redshift.jdbc42.driver

jdbc:redshift (default)

Authenticates successfully when the:

  • Default URL is used.

  • Default Amazon Redshift JAR file that is bundled with the Snap Pack is used.

  • Manually uploaded JAR file is used to connect to the database.

Redshift (manual)

com.amazon.redshift.jdbc42.driver

jdbc:redshift (manual)

Authenticates successfully using the manually uploaded JAR file and manually specified JDBC URL.

PostgreSQL (default/manual)

org.postgresql.driver

jdbc:postgresql (default)

Authenticates successfully when the:

  • Default URL is used.

  • Default PostgreSQL JAR that is bundled with the Snap Pack is used.

  • Manually uploaded JAR file is used to connect to the database.

PostgreSQL (manual)

org.postgresql.driver

jdbc:postgresql (default/manual)

Authenticates successfully using the manually uploaded JAR file and manually specified JDBC URL.

Redshift (manual)

org.postgresql.driver

jdbc:postgresql (default/manual)

Authenticates successfully using the default PostgreSQL JAR file.

PostgreSQL (manual)

com.amazon.redshift.jdbc42.driver

jdbc:redshift (default/manual)

Authenticates successfully using the default Redshift JAR file.


If your account configuration uses one of the following combinations of JAR files, driver classes, and JDBC URLs, then your account cannot be authenticated because of the misaligned JDBC driver class and JDBC URL.

JDBC Driver JAR

JDBC Driver Class

JDBC URL

Authentication

Redshift

com.amazon.redshift.jdbc42.driver

jdbc:postgresql

Authentication fails.

Redshift

org.postgresql.driver

jdbc:redshift

Authentication fails.

PostgreSQL

com.amazon.redshift.jdbc42.driver

jdbc:postgresql

Authentication fails.

PostgreSQL

org.postgresql.driver

jdbc:redshift

Authentication fails.

 

Behavior Change

Display of labels in the output for the Redshift Select Snap

For the Redshift Select Snap, when you configure Output fields and deselect the Match data types checkbox, the display of the label name for the timestamptz data type in the output preview varies with the two JDBC drivers. For example, consider the following configuration of the Output fields in the Redshift Select Snap.

On validation, notice the difference in the label name in the output preview. With the PostgreSQL driver, Snap displays the labels as configured in the Snap settings:

While with the Redshift JDBC driver, the Snap prefixes Redshift to the Timestamp label. This does not impact the performance of the Snap.

The behavior of the Snap remains the same when you select the Match data types checkbox, regardless of using the PostgreSQL or the Redshift driver—the label names are displayed as configured in the Snap settings.