Virtual Schemas: Pushdown of DOUBLE Literals has Limited Precision

Details

Detail name Value
Changelog Number 11255
Type Bug
Status Resolved
Affected Versions Exasol 6.1.0, Exasol 6.2.0, Exasol 7.0.0
Fix Versions Exasol 7.0.6
Resolution Date 2021-02-18

Description

Virtual Schemas will push down queries into the source system. During the pushdown literals of the data type DOUBLE PRECISION are unintentionally limited to six decimal places.

Example

This DOUBLE literal will be pushed down as 0.000000, i.e. zero, to the source database:

SELECT 1.234E-34 
FROM virtual_schema.virtual_table;

Workaround

  • Small numbers may be converted to a fitting DECIMAL type to preserve some precision. Both of these queries lead to the same DECIMAL pushdown with 36 decimal places:
  • For big numbers the limit of six decimal places should not be significant.
SELECT CAST(1.234E-34 AS DECIMAL(36, 36)) 
FROM virtual_schema.virtual_table;

SELECT 0.000000000000000000000000000000000123
FROM virtual_schema.virtual_table;

Fix

The Virtual Schema will handle DOUBLE PRECISION literals without limiting the number of decimal places.

Changed behavior

In the Virtual Schema API the format of the value of literal_double expressions changed from "0.000000" to "0.0000000000000000e+00".