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".