README
     Progress (R) DataDirect (R)
	 
     Progress(R) DataDirect(R) for ODBC for 
     Apache Spark SQL(TM) Wire Protocol Driver 
     
     UNIX and Linux Platforms (32- and 64-bit) 
     8.0.2 Release  
     January 23, 2020


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


This README file contains information for Progress(R) DataDirect  
for ODBC for Apache Spark SQL(TM) Wire Protocol Driver. 

This README file contains information not included in the PROGRESS
DATADIRECT(R) FOR ODBC FOR APACHE SPARK SQL WIRE PROTOCOL DRIVER USER'S GUIDE
AND REFERENCE.


CONTENTS

Installation Directory
Changes Since 8.0.2 GA
Changes for 8.0.2 GA
Changes for 8.0.1 GA
Changes Since 8.0.0 GA 
Features for GA 
Driver WorkAround Options
Notes, Known Problems, and Restrictions
Documentation
Uninstalling the Driver
Installed Files
 

    Installation Directory 

* The default installation directory for the 32-bit driver is:

  /opt/Progress/DataDirect/ODBC_80

* The default installation directory for the 64-bit driver is:

  /opt/Progress/DataDirect/ODBC_80_64bit


    Changes Since 8.0.2 GA 

Certifications
--------------
* Certified with Red Hat Enterprise 8.0
  Driver version 08.01.0427 (B0547, U0390)
* Certified with Spark SQL 2.2 
  Driver version 08.01.0207 (B0293, U0193)
* Certified with Red Hat Enterprise 7.3 
  Driver version 08.01.0169 (B0259, U0174)
* Certified with Debian Linux 7.11, 8.5 
  Driver version 08.01.0088 (B0138, U0095)
* Certified with Ubuntu Linux 14.04, 16.04 
  Driver version 08.01.0088(B0138, U0095)		

Setting Unicode Encoding Type for Connections
---------------------------------------------
The Driver Manager for UNIX/Linux has been enhanced to support setting the 
Unicode encoding type for applications on a per connection basis. By passing a 
value for the SQL_ATTR_APP_UNICODE_TYPE attribute using SQLSetConnectAttr, your
application can specify the encoding at connection. This allows your 
application to pass both UTF-8 and UTF-16 encoded strings with a single 
environment handle. 

The valid values for the SQL_ATTR_APP_UNICODE_TYPE attribute are SQL_DD_CP_UTF8
and SQL_DD_CP_UTF16. The default value is SQL_DD_CP_UTF8.

This enhancement is available in build 08.02.0449 of the driver manager.

SSL Enhancement (1.1.1d) 
------------------------
The default version of the OpenSSL library, 1.0.2r, has reached the end of its
product life-cycle and has been upgraded to version 1.1.1d. In addition to
receiving full update support, version 1.1.1d fixes the following security
vulnerabilities:
 * Padding Oracle in PKCS7_dataDecode and CMS_decrypt_set1_pkey (CVE-2019-1563)
 * Windows builds with insecure path defaults (CVE-2019-1552)
 * Fork Protection (CVE-2019-1549)
 * ECDSA remote timing attack (CVE-2019-1547)
 * ChaCha20-Poly1305 with long nonces (CVE-2019-1543) 
 * Timing vulnerability in ECDSA signature generation (CVE-2018-0735) 
 
This upgrade is available in the 1.1.1 version of the OpenSSL library files, 
libivtls28.so [.a|.sl] (32-bit) and libddtls28.so [.a] (64-bit).   
 
Version 1.1.1d also addresses vulnerabilities resolved by earlier versions of 
the library.  

For more information on OpenSSL vulnerabilities resolved by this upgrade, refer
to the corresponding OpenSSL announcements at: 
https://www.openssl.org/news/vulnerabilities-1.1.1.html 
	
Note: By default, the driver will attempt to load version 1.1.1 of the library;
      however, if the library cannot be loaded, the driver will fall back to 
      version 1.0.2. 

See "Designating an OpenSSL Library" in the "Notes, Known Issues, and 
Restrictions" section for build numbers and a comparison of libraries that are
installed with the driver.

AllowedOpenSSLVersions
----------------------
Determines which version of the OpenSSL library file the driver uses for data
encryption when multiple versions are installed with the product. For example, 
when specifying a value of 1.1.1 (AllowedOpenSSLVersions=1.1.1), the driver 
uses the 1.1.1 version of the library stored in the /lib subdirectory. Refer to
the user's guide for more information.

See "Designating an OpenSSL Library" in the "Notes, Known Issues, and 
Restrictions" section for build numbers and a comparison of these libraries.

SSL Enhancement (1.0.2r) 
------------------------
Note: A newer version of the OpenSSL library, 1.1.1d, is now installed with the
product. In addition to fixing multiple new vulnerabilities, version 1.1.1d 
also addresses the vulnerabilities resolved by version 1.0.2r. 

The default OpenSSL library version has been updated to 1.0.2r, which fixes the 
following security vulnerabilities:
 * 0-byte record padding oracle (CVE-2019-1559)
 * Microarchitecture timing vulnerability in ECC scalar 
   multiplication (CVE-2018-5407)
 * Timing vulnerability in DSA signature generation (CVE-2018-0734)
 * Client DoS due to large DH parameter (CVE-2018-0732)
 * Cache timing vulnerability in RSA Key Generation (CVE-2018-0737)
 * Constructed ASN.1 types with a recursive definition could exceed the 
   stack (CVE-2018-0739)
 
This upgrade is available starting in build 08.02.0194 of the OpenSSL library 
file.  
	
SSL Enhancement (1.0.2n) 
------------------------
Note: OpenSSL library 1.0.2n has been replaced with version 1.0.2r. In addition
to fixing multiple new vulnerabilities, version 1.0.2r also addresses the 
vulnerabilities resolved by version 1.0.2n. 

Version 1.0.2n of the OpenSSL library fixes the following security 
vulnerabilities:
 * rsaz_1024_mul_avx2 overflow bug on x86_64(CVE-2017-3738)
 * Read/write after SSL object in error state (CVE-2017-3737)
 * bn_sqrx8x_internal carry bug on x86_64 (CVE-2017-3736)
 * Malformed X.509 IPAddressFamily could cause OOB read (CVE-2017-3735)	
	
SSL Enhancement (1.0.2k)
------------------------
Note: OpenSSL library 1.0.2k has been replaced with version 1.0.2r. In addition
to fixing multiple new vulnerabilities, version 1.0.2r also addresses the 
vulnerabilities resolved by version 1.0.2k. 

The default OpenSSL library version has been updated to 1.0.2k, which fixes the 
following security vulnerabilities:
 * Truncated packet could crash via OOB read (CVE-2017-3731)
 * BN_mod_exp may produce incorrect results on x86_64 (CVE-2017-3732)
 * Montgomery multiplication may produce incorrect results (CVE-2016-7055)
	
SSL Enhancement (1.0.2j) 
------------------------
Note: OpenSSL library 1.0.2j has been replaced with version 1.0.2r. In addition
to fixing multiple new vulnerabilities, version 1.0.2r also addresses the 
vulnerabilities resolved by version 1.0.2j. 

Version 1.0.2j of the OpenSSL library fixes the following security 
vulnerabilities:
 * "Missing CRL sanity check" (CVE-2016-7052)
 * "OCSP Status Request extension unbounded memory growth" (CVE-2016-6304)
 * "SWEET32 Mitigation" (CVE-2016-2183)
 * "OOB write in MDC2_Update()" (CVE-2016-6303)
 * "Malformed SHA512 ticket DoS" (CVE-2016-6302)
 * "OOB write in BN_bn2dec()" (CVE-2016-2182)
 * "OOB read in TS_OBJ_print_bio()" (CVE-2016-2180)
 * "Pointer arithmetic undefined behaviour" (CVE-2016-2177)
 * "Constant time flag not preserved in DSA signing" (CVE-2016-2178)
 * "DTLS buffered message DoS" (CVE-2016-2179)
 * "DTLS replay protection DoS" (CVE-2016-2181)
 * "Certificate message OOB reads" (CVE-2016-6306)	
	
SSL Enhancement (1.0.2h)
------------------------
Note: OpenSSL library 1.0.2h has been replaced with version 1.0.2r. In addition
to fixing multiple new vulnerabilities, version 1.0.2r also addresses the 
vulnerabilities resolved by version 1.0.2h. 

Version 1.0.2h of the OpenSSL library fixes the following security 
vulnerabilities:
 * "Padding oracle in AES-NI CBC MAC check" (CVE-2016-2107)
 * "EVP_EncodeUpdate overflow" (CVE-2016-2105)
 * "EVP_EncryptUpdate overflow" (CVE-2016-2106)
 * "ASN.1 BIO excessive memory allocation" (CVE-2016-2109)
 * "EBCDIC overread" (CVE-2016-2176)  

SSL Enhancement (1.0.2g)
------------------------
Note: OpenSSL library 1.0.2g has been replaced with version 1.0.2r. In addition
to fixing multiple new vulnerabilities, version 1.0.2r also addresses the 
vulnerabilities resolved by version 1.0.2g. 

Version 1.0.2g of the OpenSSL library fixes the following security 
vulnerabilities:
* "missing Memory allocation success checks in doapr_outch function in 
   crypto/bio/b_print.c" (CVE-2016-2842)
* "Cross-protocol attack on TLS using SSLv2 (DROWN)" (CVE-2016-0800)
* "memory issues in BIO_*printf functions" (CVE-2016-0799)
* "Memory leak in SRP database lookups" (CVE-2016-0798)
* "Double-free in DSA code" (CVE-2016-0705)
* "Side channel attack on modular exponentiation" (CVE-2016-0702)


Refer to the fixes.txt file in the product installation directory for a list 
of changes by component build number.

 
    Changes for 8.0.2 GA
	
SSL Enhancement (1.0.2f)
------------------------
Note: OpenSSL library 1.0.2f has been replaced with version 1.0.2r. In addition
to fixing multiple new vulnerabilities, version 1.0.2r also addresses all the 
vulnerabilities resolved by version 1.0.2f. 

The default OpenSSL library version has been updated to 1.0.2f to address 
the following security vulnerabilities:
* Provides stronger cryptographic assurance against the "Logjam" vulnerability
  (CVE-2015-4000)
* "DH small subgroups" (CVE-2016-0701)
* "SSLv2 doesn't block disabled ciphers" (CVE-2015-3197)
* "BN_mod_exp may produce incorrect results on x86_64" (CVE-2015-3193)
* "Certificate verify crash with missing PSS parameter"(CVE-2015-3194) 
* "X509_ATTRIBUTE memory leak" (CVE-2015-3195) 
 
For more information on the OpenSSL vulnerabilities resolved by this upgrade,
refer to the corresponding OpenSSL announcements at 
https://www.openssl.org/news/openssl-1.0.2-notes.html.
  
  
    Changes for 8.0.1 GA
  
Certifications
--------------
Certified with Spark SQL 1.4.x and 1.5.x 
  
New Data Type Support
---------------------
The driver has been enhanced to support the Decimal and Varchar data types.

MinLongVarchar Connection Option 
--------------------------------
The new MinLongVarcharSize connection option allows you to fetch
SQL_LONGVARCHAR columns whose size is smaller than the minimum
imposed by some third-party applications. 

VarcharThreshold Connection Option 
----------------------------------
The new VarcharThreshold connection option allows you to fetch columns
that would otherwise exceed the upper limit of the SQL_VARCHAR type for some
third-party applications. 

New Default Value for the ArraySize Connection Option 
------------------------------------------------------
The default value for the ArraySize connection option has changed to 20000.
   
For more information about these features, refer to THE PROGRESS DATADIRECT FOR
ODBC FOR APACHE SPARK SQL DRIVER USER'S GUIDE AND REFERENCE.   
  
  
    Changes Since 8.0.0 GA

New Operating System Support
---------------------------- 	
* Certified with Red Hat Enterprise 7.1 
* Certified with CentOS Linux 7.1  
* Certified with Oracle Linux 7.1 	
   
    Features for 8.0.0 GA  

The Progress DataDirect for ODBC for Apache Spark SQL Wire Protocol Driver
supports standard SQL query language for read-write access to Apache Spark SQL
data stores. By using DataDirect's Wire Protocol technology, the driver 
eliminates the need for client libraries, improving response time and 
throughput. 

Features:
	
* Supports Apache Spark SQL 1.2.x, 1.3.x

* Supports all ODBC Core and Level 1 functions. 

* Supports the core SQL-92 grammar.

* Supports the following data types:
  
  - Bigint                        maps to SQL_BIGINT
  - Boolean                       maps to SQL_BIT 
  - Date                          maps to SQL_DATE
  - Double                        maps to SQL_DOUBLE
  - Float                         maps to SQL_REAL 
  - Int                           maps to SQL_INTEGER
  - Smallint                      maps to SQL_SMALLINT
  - String                        maps to SQL_WVARCHAR and SQL_WLONGVARCHAR
  - Timestamp                     maps to SQL_TYPE_TIMESTAMP
  - Tinyint                       maps to SQL_TINYINT 
  
* Supports advanced security features, including:
  - Data encryption
  - Kerberos authentication


     Driver WorkAround Options

Progress DataDirect has included non-standard connection options 
(workarounds) for the drivers that enable you to take full advantage of 
packaged ODBC-enabled applications requiring non-standard or extended 
behavior.

Refer to the chapter "WorkAround Options" in the User's Guide and Reference
for a description of these options.
    
  
     Notes, Known Problems, and Restrictions 

Designating an OpenSSL Library
------------------------------
Although version 1.1.1d of the OpenSSL library is the most secure version of
the library, some characteristics of the library can cause connections to 
certain databases to fail. To allow you to continue using earlier versions 
until your environment is ready to migrate to version 1.1.1d, the product 
also installs earlier versions of the library.     

The following versions of the OpenSSL library have been installed with this
product, listed in order of most secure to least secure: 
* (Default) 1.1.1d (supported with file libtls28.so [.a|.sl])
* 1.0.2r (version 08.02.0194 of file libssl28.so [.a|.sl]) 
* 1.0.2d (version 08.00.0062 of file libssl28.so [.a|.sl])

When determining which version of the OpenSSL library to use, consider the 
following factors: 

For version 1.1.1d:
Upgrading to 1.1.1d provides you with a fully supported version of the OpenSSL 
library that receives feature and security updates. Versions 1.0.2 and earlier 
have reached the end of their product lifecycle and will no longer receive 
updates after 12/31/2019.  

Note: OpenSSL 1.1.1 supports TLS version 1.3; however, we do not currently 
      support TLS version 1.3 in our drivers. As a result, our drivers 
      support SSLv3, TLSv1.0, TLSv1.1 and TLSv1.2.

Upgrading to 1.1.1d fixes the following vulnerabilities in additon to 
vulnerabilities resolved by earlier versions of the library:
 * Padding Oracle in PKCS7_dataDecode and CMS_decrypt_set1_pkey (CVE-2019-1563)
 * Windows builds with insecure path defaults (CVE-2019-1552)
 * Fork Protection (CVE-2019-1549)
 * ECDSA remote timing attack (CVE-2019-1547)
 * ChaCha20-Poly1305 with long nonces (CVE-2019-1543) 
 * Timing vulnerability in ECDSA signature generation (CVE-2018-0735) 

Upgrading to version 1.1.1d includes the following risks: 
* The SSL v2 protocol is not supported. If your environment requires SSL v2, 
  the driver will be unable to connect using this library.  
* The following encryption ciphers were reported by version 1.0.2 of the 
  libaray, but not by version 1.1.1. These ciphers should be considered 
  unsupported for version 1.1.1:

  DES-CBC3-MD5	                ECDH-ECDSA-AES256-SHA
  DES-CBC3-SHA                  ECDH-ECDSA-AES256-SHA384
  DH-DSS-AES128-GCM-SHA256      ECDH-ECDSA-DES-CBC3-SHA
  DH-DSS-AES128-SHA             ECDH-ECDSA-RC4-SHA
  DH-DSS-AES128-SHA256          ECDHE-ECDSA-DES-CBC3-SHA
  DH-DSS-AES256-GCM-SHA384      ECDHE-ECDSA-RC4-SHA
  DH-DSS-AES256-SHA             ECDHE-RSA-DES-CBC3-SHA
  DH-DSS-AES256-SHA256          ECDHE-RSA-RC4-SHA
  DH-DSS-DES-CBC3-SHA           ECDH-RSA-AES128-GCM-SHA256
  DH-DSS-SEED-SHA               ECDH-RSA-AES128-SHA
  DHE-DSS-AES128-GCM-SHA256     ECDH-RSA-AES128-SHA256
  DHE-DSS-AES128-SHA            ECDH-RSA-AES256-GCM-SHA384
  DHE-DSS-AES128-SHA256         ECDH-RSA-AES256-SHA
  DHE-DSS-AES256-GCM-SHA384     ECDH-RSA-AES256-SHA384
  DHE-DSS-AES256-SHA            ECDH-RSA-DES-CBC3-SHA
  DHE-DSS-AES256-SHA256         ECDH-RSA-RC4-SHA
  DHE-DSS-SEED-SHA              EDH-DSS-DES-CBC3-SHA
  DHE-RSA-SEED-SHA              EDH-RSA-DES-CBC3-SHA
  DH-RSA-AES128-GCM-SHA256      PSK-3DES-EDE-CBC-SHA
  DH-RSA-AES128-SHA             PSK-RC4-SHA
  DH-RSA-AES128-SHA256          RC2-CBC-MD5
  DH-RSA-AES256-GCM-SHA384      RC4-MD5
  DH-RSA-AES256-SHA             RC4-SHA
  DH-RSA-AES256-SHA256          SEED-SHA
  DH-RSA-DES-CBC3-SHA           SRP-3DES-EDE-CBC-SHA
  DH-RSA-SEED-SHA               SRP-DSS-3DES-EDE-CBC-SHA
  ECDH-ECDSA-AES128-GCM-SHA256  SRP-DSS-AES-128-CBC-SHA
  ECDH-ECDSA-AES128-SHA         SRP-DSS-AES-256-CBC-SHA
  ECDH-ECDSA-AES128-SHA256      SRP-RSA-3DES-EDE-CBC-SHA
  ECDH-ECDSA-AES256-GCM-SHA384	

Upgrading to 1.0.2r fixes the following vulnerabilities:  
* 0-byte record padding oracle (CVE-2019-1559)
* Microarchitecture timing vulnerability in ECC scalar 
  multiplication (CVE-2018-5407)
* Timing vulnerability in DSA signature generation (CVE-2018-0734)
* Client DoS due to large DH parameter (CVE-2018-0732)
* Cache timing vulnerability in RSA Key Generation (CVE-2018-0737)
* Constructed ASN.1 types with a recursive definition could exceed the 
  stack (CVE-2018-0739)
* rsaz_1024_mul_avx2 overflow bug on x86_64(CVE-2017-3738)
* Read/write after SSL object in error state (CVE-2017-3737)
* bn_sqrx8x_internal carry bug on x86_64 (CVE-2017-3736)
* Malformed X.509 IPAddressFamily could cause OOB read (CVE-2017-3735)
* Truncated packet could crash via OOB read (CVE-2017-3731)
* BN_mod_exp may produce incorrect results on x86_64 (CVE-2017-3732)
* Montgomery multiplication may produce incorrect results (CVE-2016-7055)
* Missing CRL sanity check (CVE-2016-7052)
* OCSP Status Request extension unbounded memory growth(CVE-2016-6304)
* SWEET32 Mitigation (CVE-2016-2183)
* OOB write in MDC2_Update() (CVE-2016-6303)
* Malformed SHA512 ticket DoS (CVE-2016-6302)
* OOB write in BN_bn2dec() (CVE-2016-2182)
* OOB read in TS_OBJ_print_bio() (CVE-2016-2180)
* Pointer arithmetic undefined behaviour (CVE-2016-2177)
* Constant time flag not preserved in DSA signing (CVE-2016-2178)
* DTLS buffered message DoS (CVE-2016-2179)
* DTLS replay protection DoS (CVE-2016-2181)
* Certificate message OOB reads (CVE-2016-6306)
* Padding oracle in AES-NI CBC MAC check (CVE-2016-2107)
* EVP_EncodeUpdate overflow (CVE-2016-2105)
* EVP_EncryptUpdate overflow (CVE-2016-2106)
* ASN.1 BIO excessive memory allocation (CVE-2016-2109)
* EBCDIC overread (CVE-2016-2176)
* missing Memory allocation success checks in doapr_outch function
  in crypto/bio/b_print.c (CVE-2016-2842)
* Cross-protocol attack on TLS using SSLv2 (DROWN) (CVE-2016-0800)
* memory issues in BIO_*printf functions (CVE-2016-0799)
* Memory leak in SRP database lookups(CVE-2016-0798)
* Double-free in DSA code (CVE-2016-0705)
* Side channel attack on modular exponentiation (CVE-2016-0702)
* Provides stronger cryptographic assurance against the "Logjam" vulnerability
  (CVE-2015-4000)
* DH small subgroups (CVE-2016-0701)
* SSLv2 doesn't block disabled ciphers (CVE-2015-3197)
* BN_mod_exp may produce incorrect results on x86_64 (CVE-2015-3193)
* Certificate verify crash with missing PSS parameter(CVE-2015-3194) 
* X509_ATTRIBUTE memory leak (CVE-2015-3195)  

Upgrading to version 1.0.2r includes the following risk: 
* To improve protection against the "Logjam" vulnerability, the minimum
  required length for the Diffie-Hellman key exchange was increased to 1024
  bits. When accessing databases that have not been fixed to address the 
  "Logjam" vulnerability, this change can cause connections to fail with the 
  following error: "dh key too small." You can work around this issue can by
  disabling Diffie-Hellman cipher suites.

Refer to "Designating an OpenSSL library" in the User's Guide and Reference for 
instructions on using an earlier version of the OpenSSL library. 

For information on working around the Diffie-Hellman issue without designating
an earlier version of the library, see "Disabling Diffie-Hellman Cipher Suites"
in the "Notes, Known Problems, and Restrictions" section. 

For more information on the OpenSSL vulnerabilities mentioned in this section, 
refer to the corresponding OpenSSL announcements at https://www.openssl.org/.

Disabling Diffie-Hellman Cipher Suites
--------------------------------------
If your database has not been fixed to address the Logjam vulnerability, you
can still use the most recent version of the OpenSSL Library by disabling the
Diffie-Hellman cipher suites. To disable the Diffie-Hellman cipher suites, 
specify the following value for the undocumented CipherList connection option:

CipherList=DEFAULT:-DH 

If you have already specified a value for CipherList, add the following to the 
existing value: 

:-DH 

The option-value pair for undocumented options can be specified in the 
odbc.ini, connection string, or the Extended Options field of the GUI. For 
details, refer to "Configuring and Connecting to Data Sources" in driver's 
User's Guide and Reference. 

Varchar Data Type
-----------------
When returning result set metadata for Varchar columns, the Spark Thrift server
reports the column type as (12) STRING and the precision as 2147483647. This 
issue can cause the settings of the following connection options to produce 
unexpected results: MaxStringSize, MinLongVarcharSize, StringDescribeType, 
and VarcharThreshold. For the latest information about this issue, refer to 
the Apache JIRA SPARK-5918 issue Web page:  
https://issues.apache.org/jira/browse/SPARK-5918.	 
	 
Support for Multiple Simultaneous Connections 
---------------------------------------------
For Spark SQL versions 1.5 and earlier, the Spark SQL Thrift supports only a
single connection from a single application (client) per instance. Multiple 
connections can result in a number of unexpected behaviors, including
corrupting data or crashing the Thrift server. While Spark SQL 1.4 resolved 
some issues related to this limitation, all of the multi-connect issues are 
not expected to be fixed until Spark SQL 1.6 or later. Refer to
https://github.com/apache/spark/pull/8909 for more information.     

Rand() Function
---------------
For Spark SQL version 1.4, the rand() function is not supported. If the rand() 
function is used, the driver throws the following exception:
org.apache.spark.sql.AnalysisException: For input string: "TOK_TABLE_OR_COL";

Date/Time Hour() Function
-------------------------
For Spark SQL version 1.5, the Spark Thrift server returns (-17) for the hour()
function.

ODBC Development on UNIX and Linux Platforms
--------------------------------------------
All of the Release 8.0 Core Components (header files, etc.) needed for 
development of ODBC applications on UNIX and Linux are installed into 
the /include directory created by the product installer.

Please read the notices.txt file in the installation directory for 
licensing information regarding the ODBC Core Components. Contact your 
Progress DataDirect representative if you have any questions.

Developers using programming languages other than C++:
The DataDirect ODBC Driver Manager is a C++ shared library. The ODBC 
Driver Manager can be used with any language that supports loading a 
C++ shared library; however, if you are using a programming language 
other than C++, you must take additional steps to ensure that the C++ 
libraries are initialized properly when loaded. If you are not using 
C++, consult your compiler documentation for instructions on using C++ 
shared libraries with your application.
  
LANG Environment Setting on UNIX and Linux Platforms
----------------------------------------------------
A default installation of the product on UNIX and Linux assumes that 
the value of the LANG environment setting is en_US. If your locale is 
not set to en_US, the drivers may not return error messages properly. 
In this case, you must create a symbolic link in the 
/locale directory that has the same value as the LANG 
environment setting. This link must point to the 
/locale/en_US directory.
 
SQLColAttribute(s)
------------------
The column attributes 1001 and 1002, which were assigned as DataDirect- 
specific attributes, were inadvertently used as system attributes by
the Microsoft 3.0 ODBC implementation. Applications using those 
attributes must now use 1901 and 1902, respectively.
 
SQLDriverConnect
----------------
SQLDriverConnect using options other than SQL_DRIVER_NOPROMPT is 
supported only on systems that include the Motif libraries 
libivmback.so, libddmback.so, libivmbackw.so, or libddmbackw.so and 
vscnctdlg.so.
 
SQL_C_NUMERIC
-------------
Because of inconsistencies in the ODBC specification, users attempting 
to use SQL_C_NUMERIC parameters must set the precision and scale values 
of the corresponding structure and the descriptor fields in the 
Application Parameter Descriptor.

For AIX Users
-------------
Some IBM AIX C compilers, such as xlc 3.1.4, do not support the use 
of C++ build binaries. C developers on AIX should consult their 
compiler documentation and verify that their AIX C compiler supports 
the use of C++ shared libraries or the application could be unstable.


     Documentation

THE PROGRESS DATADIRECT FOR ODBC FOR APACHE SPARK SQL
WIRE PROTOCOL DRIVER USER'S GUIDE AND REFERENCE
-----------------------------------------------------
This guide is provided in PDF and HTML versions. 

The PDF version is available on the Progress DataDirect Web site. 

NOTE: To download Adobe Reader, visit the Adobe Web site at 
http://www.adobe.com.

The HTML version of the book is installed in the SparkSQLHelp subdirectory of
your product installation directory. You can access the help by opening the 
index.html file.


    Uninstalling the Driver 

You can uninstall the product or individual drivers through the Uninstall 
DataDirect for ODBC 8.0 option in the DataDirect program group.


    Installed Files the 32-bit Driver

This file list assumes a full installation of the driver and 
documentation.

The installer copies the following files and subdirectories to the 
product installation directory, by default:

/opt/Progress/DataDirect/ODBC_80:


odbc.csh                         Setup script for C shell
odbc.ini                         Sample odbc.ini file
odbcinst.ini                     Sample odbcinst.ini file
odbc.sh                          Setup script for Bourne shell
IVODBC.LIC                       DataDirect license file
fixes.txt                        List of fixes since last release
license.txt                      Progress DataDirect license agreement

/bin:
ivtestlib                        Test application to check that required 
                                 libraries are present and loadable
								 
/help: 
spark_connect.txt                Help text for the Apache Spark SQL WP driver 
                                 SQLDriverConnect dialog 
/help/SparkSQLHelp:
index.html                       HTML help system entry file
*.*                              Support folders for the HTML help system

/include:
odbcinst.h                       Include files
qesqlext.h
sql.h
sqlext.h
sqltypes.h
sqlucode.h
sqlunx.h

/lib:
The following library files all have the extension .so, except when 
installed on HP-UX PA-RISC, in which case the extension is .sl.

ivspark28.so                     Apache Spark SQL WP driver  
ivtrc28.so                       Progress DataDirect trace library
libivcurl28.so                   Library used for HTTP connections [.a on AIX]
libivicu28.so                    Unicode conversion tables [.a on AIX]
libivmback.so                    SQLDriverConnect Motif library 
libivmbackw.so                   SQLDriverConnect Motif library [.a on AIX]
libivssl28.so                    TLS/SSL support file (OpenSSL library 
                                 version 1.0.2r) [.a on AIX]
libivtls28.so                    TLS/SSL support file (OpenSSL library 
                                 version 1.1.1d) [.a on AIX]
libodbc.so                       ODBC Driver Manager [.a on AIX]
libodbcinst.so                   ODBC Installer [.a on AIX]
odbc.so                          ODBC Driver Manager (dynamically loadable) 
                                 [AIX only]
odbccurs.so                      ODBC Cursor library 
odbcinst.so                      ODBC Installer (dynamically loadable) 
                                 [AIX only]
vscnctdlg.so                     ODBC library for Motif operations

/lib/OpenSSL:
/1.0.2d/libivssl28.so            TLS/SSL support file (OpenSSL library 
                                 version 1.0.2d) [.a on AIX]  

/1.0.2r/libivssl28.so            TLS/SSL support file (OpenSSL library 
                                 version 1.0.2r) [.a on AIX] 

/latest/libivssl28.so            TLS/SSL support file (OpenSSL library 
                                 version 1.1.1d) [.a on AIX] 

/locale/en_US/LC_MESSAGES:
ivmbackw.mo                      Motif library message file
ivmbackw.po                      Motif library message source
ivspark28.mo                     Apache Spark SQL WP driver message file
ivspark28.po                     Apache Spark SQL WP driver message file source
odbc.mo                          ODBC Driver Manager message file
odbc.po                          ODBC Driver Manager message source


/NOTICES:
ODBC for Apache Spark SQL 
v8.0 notices.txt                 Third-party vendor license agreements	


/READMES:
ODBC for Apache Spark SQL 
v8.0 readme.txt	                 This file

/samples:
/bulk/bulk                       Bulk application
/bulk/bulk.c                     Bulk example source
/bulk/bulk.mak                   Bulk example make file
/bulk/bulk.txt                   Bulk example description
/bulk/ddlogging.properties       Log configuration file for the 
                                 Apache Spark SQL WP driver

/bulkstrm/bulk.cpp               Bulk streaming example source
/bulkstrm/bulk.hpp               Bulk streaming example header
/bulkstrm/bulkstrm               Bulk streaming example application
/bulkstrm/bulkstrm.txt           Bulk streaming example description
/bulkstrm/main.cpp               Bulk streaming example source
/bulkstrm/msgprintf.hpp          Bulk streaming example header
/bulkstrm/streambulk.mak         Bulk streaming example make file
/bulkstrm/ddlogging.properties   Log configuration file for the 
                                 Apache Spark SQL WP driver

/example/example                 Example application
/example/example.c               Example source
/example/example.h               Example header
/example/example.mak             Example make file
/example/example.txt             Example description
/example/ddlogging.properties    Log configuration file for the 
                                 Apache Spark SQL WP driver

/tools:
ddextu                           License Extender utility
ddprocinfo                       Processor Information utility
    
	
	Installed Files for the 64-bit Driver

This file list assumes a full installation of all drivers and 
documentation. 

The installer copies the following files and subdirectories to the 
product installation directory, by default:

/opt/Progress/DataDirect/ODBC_80_64bit:

odbc.csh                         Setup script for C shell
odbc.ini                         Sample odbc.ini file
odbcinst.ini                     Sample odbcinst.ini file
odbc.sh                          Setup script for Bourne shell
DDODBC.LIC                       DataDirect license file
fixes.txt                        List of fixes since last release
license.txt                      Progress DataDirect license agreement

/bin:
ddtestlib                        Test application to check that required 
                                 libraries are present and loadable

/help: 
spark_connect.txt                Help text for the Apache Spark SQL WP driver 
                                 SQLDriverConnect dialog 
/help/SparkSQLHelp:
index.html                       HTML help system entry file
*.*                              Support folders for the HTML help system

/include:
odbcinst.h                       Include files
qesqlext.h
sql.h
sqlext.h
sqltypes.h
sqlucode.h
sqlunx.h

/lib:
ddspark28.so                     Apache Spark SQL WP driver  
ddtrc28.so                       Progress DataDirect trace library
libddcurl28.so                   Library used for HTTP connections [.a on AIX]
libddicu28.so                    Unicode conversion tables  [.a on AIX]
libddmback.so                    SQLDriverConnect Motif library 
libddmbackw.so                   SQLDriverConnect Motif library [.a on AIX]
libddssl28.so                    TLS/SSL support file(OpenSSL library 
                                 version 1.0.2r) [.a on AIX]
libddtls28.so                    TLS/SSL support file(OpenSSL library 
                                 version 1.1.1d) [.a on AIX]
libodbc.so                       ODBC Driver Manager [.a on AIX]
libodbcinst.so                   ODBC Installer [.a on AIX]
odbc.so                          ODBC Driver Manager (dynamically loadable) 
                                 [AIX only]
odbccurs.so                      ODBC Cursor library 
odbcinst.so                      ODBC Installer (dynamically loadable) 
                                 [AIX only]
vscnctdlg.so                     ODBC library for Motif operations

/lib/OpenSSL:
/1.0.2d/libddssl28.so            TLS/SSL support file (OpenSSL library 
                                 version 1.0.2d) [.a on AIX]  

/1.0.2r/libddssl28.so            TLS/SSL support file (OpenSSL library 
                                 version 1.0.2r) [.a on AIX] 

latest/libddssl28.so             TLS/SSL support file (OpenSSL library 
                                 version 1.1.1d) [.a on AIX] 

/locale/en_US/LC_MESSAGES:
ddmbackw.mo                      Motif library message file
ddmbackw.po                      Motif library message source
ddspark28.mo                     Apache Spark SQL WP driver message file
ddspark28.po                     Apache Spark SQL WP driver message file source
odbc.mo                          ODBC Driver Manager message file
odbc.po                          ODBC Driver Manager message source

/notices:
ODBC for Apache Spark SQL
v8.0 notices.txt	         Third-party vendor license agreements	

/readmes:
ODBC for Apache Spark SQL
v8.0 readme.txt	                 This file

/samples:
/bulk/bulk                       Bulk application
/bulk/bulk.c                     Bulk example source
/bulk/bulk.mak                   Bulk example make file
/bulk/bulk.txt                   Bulk example description
/bulk/ddlogging.properties       Log configuration file for the 
			         Apache Spark SQL WP driver 

/bulkstrm/bulk.cpp        	 Bulk streaming example source
/bulkstrm/bulk.hpp        	 Bulk streaming example header
/bulkstrm/bulkstrm               Bulk streaming example application
/bulkstrm/bulkstrm.txt           Bulk streaming example description
/bulkstrm/main.cpp               Bulk streaming example source
/bulkstrm/msgprintf.hpp          Bulk streaming example header
/bulkstrm/streambulk.mak         Bulk streaming example make file
/bulkstrm/ddlogging.properties   Log configuration file for the 
                                 Apache Spark SQL WP driver 

/example/ddlogging.properties    Log configuration file for the 
                                 Apache Spark SQL WP driver
/example/example                 Example application
/example/example.c               Example source
/example/example.h               Example header
/example/example.mak             Example make file
/example/example64.txt           Example description
/example/ddlogging.properties    Log configuration file for the 
                                 Apache Spark SQL WP driver

/tools:
ddextu                           License Extender utility
ddprocinfo                       Processor Information utility	
		
		

~~~~~~~~~~~~~~
January 23, 2020
End of README.TXT