|
|
|
|
@ -30,52 +30,6 @@ extern bool IsFunctionTransferNumDistinct(FuncExpr *funcExpr);
|
|
|
|
|
* The array collects all of the type-cast functions which can transfer number of distinct from any one of
|
|
|
|
|
* its arguments, other parameters are viewed as Const.
|
|
|
|
|
*/
|
|
|
|
|
static Oid g_typeCastFuncOids[] = {
|
|
|
|
|
/* type cast from bool */
|
|
|
|
|
BOOLTOINT1FUNCOID, BOOLTOINT2FUNCOID, BOOLTOINT4FUNCOID, BOOLTOINT8FUNCOID, BOOLTOTEXTFUNCOID,
|
|
|
|
|
|
|
|
|
|
/* type cast from int1 */
|
|
|
|
|
I1TOI2FUNCOID, I1TOI4FUNCOID, I1TOI8FUNCOID, I1TOF4FUNCOID, I1TOF8FUNCOID, INT1TOBPCHARFUNCOID,
|
|
|
|
|
INT1TOVARCHARFUNCOID, INT1TONVARCHAR2FUNCOID, INT1TOTEXTFUNCOID, INT1TONUMERICFUNCOID, INT1TOINTERVALFUNCOID,
|
|
|
|
|
|
|
|
|
|
/* type cast from int2 */
|
|
|
|
|
I2TOI1FUNCOID, INT2TOINT4FUNCOID, INT2TOFLOAT4FUNCOID, INT2TOFLOAT8FUNCOID, INT2TOBPCHAR, INT2TOTEXTFUNCOID,
|
|
|
|
|
INT2TOVARCHARFUNCOID, INT2TOINT8FUNCOID, INT2TONUMERICFUNCOID, INT2TOINTERVALFUNCOID,
|
|
|
|
|
|
|
|
|
|
/* type cast from int4 */
|
|
|
|
|
I4TOI1FUNCOID, INT4TOINT2FUNCOID, INT4TOINT8FUNCOID, INT4TOFLOAT8FUNCOID, INTEGER2CASHFUNCOID,
|
|
|
|
|
INT4TONUMERICFUNCOID, INT4TOINTERVALFUNCOID, INT4TOHEXFUNCOID, INT4TOBPCHARFUNCOID, INT4TOTEXTFUNCOID,
|
|
|
|
|
INT4TOVARCHARFUNCOID, INT4TOCHARFUNCOID, INT4TOCHRFUNCOID,
|
|
|
|
|
|
|
|
|
|
/* type cast from int8 */
|
|
|
|
|
I8TOI1FUNCOID, INT8TOINT2FUNCOID, INT8TOINT4FUNCOID, INT8TOBPCHARFUNCOID, INT8TOTEXTFUNCOID, INT8TOVARCHARFUNCOID,
|
|
|
|
|
INT8TONUMERICFUNCOID, INT8TOHEXFUNCOID,
|
|
|
|
|
|
|
|
|
|
/* type cast from float4/float8 */
|
|
|
|
|
FLOAT4TOBPCHARFUNCOID, FLOAT4TOTEXTFUNCOID, FLOAT4TOVARCHARFUNCOID, FLOAT4TOFLOAT8FUNCOID,
|
|
|
|
|
FLOAT4TONUMERICFUNCOID, FLOAT8TOBPCHARFUNCOID, FLOAT8TOINTERVALFUNCOID, FLOAT8TOTEXTFUNCOID,
|
|
|
|
|
FLOAT8TOVARCHARFUNCOID, FLOAT8TONUMERICFUNCOID, FLOAT8TOTIMESTAMPFUNCOID,
|
|
|
|
|
|
|
|
|
|
/* type cast from numeric */
|
|
|
|
|
NUMERICTOBPCHARFUNCOID, NUMERICTOTEXTFUNCOID, NUMERICTOVARCHARFUNCOID,
|
|
|
|
|
|
|
|
|
|
/* type cast from timestamp/date/time */
|
|
|
|
|
DEFAULTFORMATTIMESTAMP2CHARFUNCOID, DEFAULTFORMATTIMESTAMPTZ2CHARFUNCOID, TIMESATMPTOTEXTFUNCOID,
|
|
|
|
|
TIMESTAMPTOVARCHARFUNCOID, TIMESTAMP2TIMESTAMPTZFUNCOID, TIMESTAMPTZ2TIMESTAMPFUNCOID,
|
|
|
|
|
DATETIMESTAMPTZFUNCOID, DATETOTIMESTAMPFUNCOID, DATETOBPCHARFUNCOID, DATETOVARCHARFUNCOID, DATETOTEXTFUNCOID,
|
|
|
|
|
DATEANDTIMETOTIMESTAMPFUNCOID, DTAETIME2TIMESTAMPTZFUNCOID, TIMETOINTERVALFUNCOID, TIMESTAMPZONETOTEXTFUNCOID,
|
|
|
|
|
TIME2TIMETZFUNCOID, RELTIMETOINTERVALFUNCOID,
|
|
|
|
|
|
|
|
|
|
/* type cast from text */
|
|
|
|
|
TODATEDEFAULTFUNCOID, TODATEFUNCOID, TOTIMESTAMPFUNCOID, TOTIMESTAMPDEFAULTFUNCOID,
|
|
|
|
|
TEXTTOREGCLASSFUNCOID, TEXTTOINT1FUNCOID, TEXTTOINT2FUNCOID, TEXTTOINT4FUNCOID, TEXTTOINT8FUNCOID,
|
|
|
|
|
TEXTTONUMERICFUNCOID, TEXTTOTIMESTAMP, TIMESTAMPTONEWTIMEZONEFUNCOID, TIMESTAMPTZTONEWTIMEZONEFUNCOID,
|
|
|
|
|
HEXTORAWFUNCOID,
|
|
|
|
|
|
|
|
|
|
/* type cast from char/varchar/bpchar */
|
|
|
|
|
VARCHARTONUMERICFUNCOID, VARCHARTOINT4FUNCOID, VARCHARTOINT8FUNCOID, VARCHARTOTIMESTAMPFUNCOID,
|
|
|
|
|
BPCHARTOINT4FUNCOID, BPCHARTOINT8FUNCOID, BPCHARTONUMERICFUNCOID, BPCHARTOTIMESTAMPFUNCOID,
|
|
|
|
|
RTRIM1FUNCOID, BPCHARTEXTFUNCOID, CHARTOBPCHARFUNCOID, CHARTOTEXTFUNCOID
|
|
|
|
|
};
|
|
|
|
|
extern Oid g_typeCastFuncOids[];
|
|
|
|
|
|
|
|
|
|
#endif /* EXPR_DISTINCT_H */
|
|
|
|
|
|