|
|
Archives of the TeradataForum
Message Posted: Fri, 29 Aug 2003 @ 12:57:37 GMT
Subj: | | Re: ON CHAR(19)=DEC(18,0) |
|
From: | | Geoffrey Rommel |
| In fact, an explain (when d1 is dec(16,0) or less) shows that c1 is casted to float with a format literal. It seems that DEC(x.0)
with x>16 makes the parser create a format literal that is rejected by the code creator later. | |
I would ask the GSC about this, but here's my two cents. When comparing character columns to numeric, the optimizer has to convert
them to compatible numeric data types. Since, generally speaking, it doesn't know what to expect in character columns, the preferred
conversion is to float -- but then the decimal(18) column has to be converted to float also. A decimal(18) column has 63 bits of precision
and therefore cannot be converted to a float (which has only 52 bits of precision). Apparently the optimizer recognizes this and refuses
even to generate a parse tree; thus, you are getting no output from "explain".
| |