Powered by Zoomin Software. For more details please contactZoomin

DataDirect JDBC ReadMe

PostgreSQL JDBC 6.0.0

  • Last Updated: May 8, 2026
  • 10 minute read
    • OpenAccess SDK
    • Documentation

     README
     Progress(R) DataDirect(R) 
     Progress(R) DataDirect(R) for JDBC(TM) for PostgreSQL(TM) Driver
     Release 6.0.0 
     February 2026


***********************************************************************
Copyright (C) 2026 Progress Software Corporation and/or its 
subsidiaries or affiliates. All Rights Reserved.

***********************************************************************


CONTENTS

Post-GA Product Announcements
Requirements
Installation Directory
Data Source and Platform Support 
Changes since 6.0.0 GA
Release 6.0.0 Features
Notes, Known Problems, and Restrictions
Documentation
Installed Files


     Post-GA Product Announcements
The readme files will no longer be updated with product announcements and new 
features after the General Availability (GA) of the product. For the latest 
updates and enhancements, please refer to the release notes 
(https://www.progress.com/datadirect-connectors/whats-new).


     Requirements

* A supported Java Virtual Machine (JVM) must be defined on your system path.

* The installer program requires a JVM that is Java SE 11 or higher, including
  Oracle JDK, OpenJDK, and IBM SDK (Java) distributions.
  
* The driver requires a JVM that is Java SE 8 or higher, including Oracle JDK,
  OpenJDK, and IBM SDK (Java) distributions.



     Installation Directory

The default installation directory for the driver is:

* Windows:
  C:\Program Files\Progress\DataDirect\JDBC

* UNIX/Linux:
  /opt/Progress/DataDirect/JDBC
  Note: For UNIX/Linux, if you do not have access to "/opt", your user's home
  directory will take the place of this directory.


    Data Source and Platform Support

For the latest data source and platform support information, refer to the 
Product Compatibility Guide: 
https://docs.progress.com/bundle/datadirect-product-compatibility/resource/
datadirect-product-compatibility.pdf  


    Progress DataDirect for JDBC for PostgreSQL (PostgreSQL driver) 

The PostgreSQL driver supports the JDBC API for SQL read-write access to the 
PostgreSQL database. Also, it supports:

* All JDBC Core functions

* The core SQL-92 grammar
	
	
	Changes since 6.0.0 GA

Enhancements
------------
* The driver supports the Geography and Geometry data types with the 
  getColumns() method.
  
  Available: 6.0.0.001767 (F002919.U001917) | 05/06/2025

* The driver has been enhanced to comply with FIPS standards for data
  encryption. As part of this enhancement, the driver was tested with
  FIPS 140-3 enabled using a Red Hat OpenJDK 21 on a Red Hat Universal Base
  Image 9 instance.


* The driver has been enhanced to support the SCRAM-SHA-256-PLUS password
  hashing mechanism for user ID/password authentication. The SCRAM-SHA-256-PLUS
  mechanism uses channel binding to establish a secure connection with 
  PostgreSQL.

* The driver has been enhanced to support Microsoft Entra ID authentication
  (formerly Azure Active Directory Authentication). Entra ID authentication is
  an alternate authentication type that allows administrators to centrally
  manage user permissions to Azure SQL Database data stores. The driver
  supports the following methods of Entra ID authentication:
  - User and password authentication
  - Service principal authentication

* The driver has been enhanced to support the TLSv1.3 cryptographic protocol.
  For details, refer to the user's guide.

* The driver has been enhanced to support MERGE against PostgreSQL 15
  and later. MERGE is a SQL command that modifies rows in the target
  table using the data from the source table. It can conditionally
  INSERT, UPDATE or DELETE rows in a single statement, eliminating
  the need to write multiple procedural statements.

  Feature details:
  - Available: Driver version 6.0.0.001277 (F002097.U001111)

* The driver has been enhanced with the new EnablePrepareThreshold and 
  PrepareThreshold connection properties, which allow you to configure the 
  behavior of server-side prepared statements. Refer to the user's guide for 
  details.

Changed Behavior
----------------
* The connection property SpyAttributes has been updated to exclude the 
  attribute load=classname, which was previously used to load the driver 
  specified by the given class name. See SpyAttributes for details.

* The installer program now requires you to install a JRE that is Java SE 11 or
  higher before running the installer. In earlier versions, the JRE used by the
  installer program was included in the product. However, to avoid potential
  security vulnerabilities, the installer program no longer includes a JRE.
  Instead, the installer program uses the JRE in your environment to allow for
  the most secure version of a JRE to be used.
 
  Note: This change does not affect the JVM requirements for the driver. For the latest 
  driver requirements, refer to the Product Compatibility Guide:
  https://docs.progress.com/bundle/datadirect-product-compatibility/resource/
  datadirect-product-compatibility.pdf



    Release 6.0.0 Features 
	
Enhancements 
------------
* The driver has been enhanced to support stored procedures for 
  PostgreSQL 11 and later.

* The CallEscapeBehavior connection property has been added to the driver. 
  It determines whether the driver calls a user-defined function or a stored 
  procedure when JDBC Call escape syntax is used in a SQL statement.

* The driver has been enhanced to support the following types of data types:
  - Network address types
  - Monetary types
  - Date/time types
  - Range types

* The driver has been enhanced to support the TXID_SNAPSHOT data type.

* The driver has been enhanced to support the SCRAM-SHA-256 authentication
  method, which uses a hashing mechanism for encrypting passwords to establish 
  a secure connection with PostgreSQL (v10.0 and higher). This method requires 
  a Java Virtual Machine (JVM) that is Java SE 8 or higher.

* The driver has been enhanced to include timestamp in the Spy and JDBC packet
  logs by default. If required, you can disable the timestamp logging by 
  specifying the following at connection: For Spy logs, set 
  spyAttributes=(log=(file)Spy.log;timestamp=no) and for JDBC packet logs,
  set ddtdbg.ProtocolTraceShowTime=false.

* Interactive SQL for JDBC (JDBCISQL) is now installed with the product. 
  JDBCISQL is a command-line interface that supports connecting your driver
  to a data source, executing SQL statements and retrieving results in a 
  terminal. This tool provides a method to quickly test your drivers in an 
  environment that does not support GUIs.

* The driver has been enhanced to support a customized version of the PostgreSQL
  COPY command. It provides an additional keyword, LOCALFILE, to allow you to 
  copy data from or to standard file-system files that are stored anywhere on 
  your network, not just on the database server. For details, refer to the 
  user's guide. 

* The driver has been enhanced to support the PostgreSQL COPY command for batch
  inserts. When BatchMechanism is set to copy, the driver leverages the
  PostgreSQL COPY command for substantial performance gains.

* The driver has been enhanced to support retrieving the values of 
  auto-generated keys.

* The driver has been enhanced to support the following data types:
  Citext, JSON, JSONB, and UUID.

* The driver has been enhanced to support the Kerberos authentication protocol
  with the following connection properties:
  - AuthenticationMethod
  - ServicePrincipalName

* The ExtendedColumnMetadata connection property has been added to the driver.
  This property determines how the driver returns column metadata when 
  retrieving results with ResultSetMetaData methods.

* The RegisterStatementPoolMonitorMBean connection property has been added to 
  the driver. Note that the driver no longer registers the Statement Pool 
  Monitor as a JMX MBean by default. You must set 
  RegisterStatementPoolMonitorMBean to true to register the Statement Pool 
  Monitor and manage statement pooling with standard JMX API calls.

Changed Behavior
----------------
* The default value for the SupportsCatalogs connection property has been 
  changed to true. Now, for catalog calls, such as getTables and getColumns, 
  the driver returns the database as catalog by default.

* Java SE 7 has reached the end of its product life cycle and will no longer 
  receive generally available security updates. As a result, the drivers will no 
  longer support JVMs that are version Java SE 7 or earlier. Support for 
  distributed versions of Java SE 7 and earlier will also end, including
  IBM SDK (Java Edition).
  

	Notes, Known Problems, and Restrictions

The following are notes, known problems, and restrictions with release 6.0.0 of
the driver.

Escaping backslashes in JDBC metadata queries
---------------------------------------------
When retrieving metadata for a table whose name contains a backslash (\), you 
must escape it using four backslashes (\\\\) in the JDBC call. For example, if 
your table is named table\name, specify it as table\\\\name. This is necessary 
because both Java and SQL treat backslashes as escape characters.

Using parameterized queries in a Prepared Statement  
---------------------------------------------------
When the EnablePrepareThreshold property is set to true and the PrepareThreshold 
property is set a value other than 1, the driver does not use the server-side 
prepare operation during connection.prepareStatement() calls for parameterized 
queries. As a result, the driver is unable to map the accurate data type for the 
following types as they can be mapped to multiple native types in the 
server.

 - Bit varying
 - Boolean
 - JSON
 - Time with time zone
 - UUID
 
To use server-side prepare operation for mapping data types, do the following:

* Set EnablePrepareThreshold to true and PrepareThreshold to 1.
* Set EnablePrepareThreshold to false for parameterized queries.
* Use the resultset metadata call before any parameterized queries.

Using Multiple Statements in a Prepared Statement
-------------------------------------------------
The PostgreSQL driver encounters the following issues when it attempts to use
multiple statements in a prepared statement:

* When attempting to call executeBatch(), the driver returns the following
  error:
  "com.ddtek.jdbc.base.BaseBatchUpdateException: [DataDirect][PostgreSQL JDBC 
  Driver][PostgreSQL]cannot insert multiple commands into a prepared statement."

* When a function call is a part of any of the statements used in the prepared 
  statement, the driver returns an error.

* When attempting to execute an Insert or an Update statement against a BYTEA
  type column in PostgreSQL versions before 9.0, the driver returns the
  following error:
  "java.sql.SQLSyntaxErrorException: [DataDirect][PostgreSQL JDBC Driver]
  [PostgreSQL]column "c_binary" is of type bytea but expression is of type bit.
  You will need to rewrite or cast the expression."

* When attempting to execute setBoolean() against a BOOLEAN type column, the
  driver returns the following error:
  "java.sql.SQLSyntaxErrorException: [DataDirect][PostgreSQL JDBC Driver]
  [PostgreSQL]column "c_boolean" is of type boolean but expression is of type
  bit. You will need to rewrite or cast the expression."
  Note: To work around this issue, you can use other set methods, such as
  setObject() and setString().

Using Bulk Load
---------------
If the driver returns the error "The specified connection object is not valid 
for creation of a bulk load object" while you are attempting to use the 
DataDirect Bulk Load API, ensure that postgresql.jar is listed before any other 
DataDirect drivers on your classpath.

Executing DataDirect Shell Script
---------------------------------
For UNIX/Linux users: If you receive an error message when executing any
DataDirect for JDBC shell script, make sure that the file has EXECUTE 
permission. To do this, use the chmod command. For example, to grant EXECUTE 
permission to the testforjdbc.sh file, change to the directory containing 
testforjdbc.sh and enter: 

chmod +x testforjdbc.sh

JDBC Methods
------------
The following notes on JDBC methods apply generally to Progress DataDirect for
JDBC drivers.

* The driver allows PreparedStatement.setXXX methods and ResultSet.getXXX
  methods on Blob/Clob data types, in addition to the functionality described in
  the JDBC specification. The supported conversions typically are the same as
  those for LONGVARBINARY/LONGVARCHAR, except where limited by database support.

* Calling CallableStatement.registerOutputParameter(parameterIndex, sqlType)
  with sqlType Types.NUMERIC or Types.DECIMAL sets the scale of the output
  parameter to zero (0). According to the JDBC specification, calling 
  CallableStatement.registerOutputParameter(parameterIndex, sqlType, scale) is
  the recommended method for registering NUMERIC or DECIMAL output parameters. 

* When attempting to create an updatable, scroll-sensitive result set for a
  query that contains an expression as one of the columns, the driver cannot
  satisfy the scroll-sensitive request. The driver downgrades the type of the
  result returned to scroll-insensitive.

* The driver supports retrieval of output parameters from a stored procedure
  before all result sets and/or update counts have been completely processed.
  When CallableStatement.getXXX is called, result sets and update counts that
  have not yet been processed by the application are discarded to make the
  output parameter data available. Warnings are generated when results are
  discarded.

* The preferred method for executing a stored procedure that generates result
  sets and update counts is using CallableStatement.execute(). If multiple
  results are generated using executeUpdate, the first update count is returned.
  Any result sets prior to the first update count are discarded. If multiple
  results are generated using executeQuery, the first result set is returned.
  Any update counts prior to the first result set are discarded. Warnings are
  generated when result sets or update counts are discarded. 

* The ResultSet methods getTimestamp(), getDate(), and getTime() return
  references to mutable objects. If the object reference returned from any of
  these methods is modified, re-fetching the column using the same method
  returns the modified value. The value is only modified in memory; the database
  value is not modified.
  

     Documentation	 	 

PROGRESS DATADIRECT FOR JDBC FOR POSTGRESQL DRIVER USER'S GUIDE 
---------------------------------------------------------------
The user's guide is available as an HTML help system on the DataDirect 
documentation web page:

https://docs.progress.com/category/datadirect-postgresql


     Installed Files

When you extract the contents of the installation download package to your
installer directory, you will notice the following files that are required to
install the driver:

*  Windows:
   - PROGRESS_DATADIRECT_JDBC_INSTALL.exe
   - DriverModules
     - PROGRESS_DATADIRECT_JDBC_POSTGRESQL_6.0.0_INSTALL.iam.zip
     - PROGRESS_DATADIRECT_JDBC_COMMON_6.0.0_INSTALL.iam.zip

*  Non-Windows:
   - PROGRESS_DATADIRECT_JDBC_INSTALL.jar
   - DriverModules
     - PROGRESS_DATADIRECT_JDBC_POSTGRESQL_6.0.0_INSTALL.iam.zip
     - PROGRESS_DATADIRECT_JDBC_COMMON_6.0.0_INSTALL.iam.zip

When you install the driver, the installer creates the following directories and
files in the product installation directory in the default installation
directory or in an installation directory you specify, represented by
INSTALL_DIR.


INSTALL_DIR/:
-------------
LicenseTool.jar            Product license file manager

ddprocinfo.exe             Windows executable to start the Processor Information
                           Utility

ddprocinfo                 UNIX/Linux script to start the Processor Information
                           Utility

fixes.txt                  Information on resolved issues for Progress
                           DataDirect for JDBC drivers


INSTALL_DIR/Examples/Bulk/:
---------------------------
Load From File/bulkLoadFileDemo.java
                           Java source example for bulk loading from a CSV file

Load From File/load.txt    Sample data for the example

Streaming/bulkLoadStreamingDemo.java
                           Java source example for bulk loading from a result
                           set

Threaded Streaming/bulkLoadThreadedStreamingDemo.java
                           Java source example for multi-threaded bulk loading
                           from a result set

Threaded Streaming/README.txt
                           Instructions on how to use the thread.properties file

Threaded Streaming/thread.properties
                           Properties file for the example


INSTALL_DIR/Examples/JNDI/:
---------------------------
JNDI_FILESYSTEM_Example.java
                           Example Java(TM) source file

JNDI_LDAP_Example.java     Example Java source file


INSTALL_DIR/help/: 
------------------
*.html                     HTML redirects to driver help systems


INSTALL_DIR/install/: 
---------------------
.psc_dd_inst_reg.xml       Support file for the installation logs

logs/*.*                   Log file generated upon installation


INSTALL_DIR/jdbcisql/:
----------------------
jdbcisql.bat               Batch file to start JDBC iSQL 

jdbcisql.jar               Java program to start JDBC iSQL 

jdbcisql.sh                Shell script to start JDBC iSQL 


INSTALL_DIR/lib/:
-----------------
JDBCDriverLogin.conf       Kerberos configuration file used to specify the JAAS
                           login module


INSTALL_DIR/lib/60/:
--------------------
postgresql.jar             PostgreSQL Driver and DataSource classes


INSTALL_DIR/NOTICES/:
---------------------
JDBC for PostgreSQL v6.0 notices.txt
                           Third party agreement information


INSTALL_DIR/pool manager/:
--------------------------
pool.jar                   All DataDirect Connection Pool Manager classes


INSTALL_DIR/READMES/:
---------------------
JDBC for PostgreSQL v6.0 readme.txt
                           This file
						   
						   
INSTALL_DIR/testforjdbc/:
-------------------------
Config.txt                 Configuration file for DataDirect Test

ddlogging.properties       Logging properties file

testforjdbc.bat            Batch file to start DataDirect Test

testforjdbc.sh             Shell script to start DataDirect Test

lib/testforjdbc.jar        DataDirect Test classes


INSTALL_DIR/uninstall/:
-----------------------
.com.zerog.registry.xml    Support file for the uninstaller

.psc_dd_uninst_reg.xml     Support file for the uninstaller

InstallScript.iap_xml      Support file for the uninstaller

installvariables.properties
                           Support file for the Windows uninstaller

Uninstall_JDBC.exe         Windows uninstaller

Uninstall_JDBC.lax         Support file for the Windows uninstaller

uninstaller.jar            Java uninstaller

postgresql/*.*             Support files for the uninstaller

resource/*.*               Resource files for the Windows uninstaller


February 2026
================
End of README

TitleResults for “How to create a CRG?”Also Available inAlert