forked from openGauss-Ecosystem/openGauss-server
printtup优化:处理空格
This commit is contained in:
parent
69348ac2c2
commit
e7e3ccb0e1
|
@ -451,14 +451,14 @@ char* output_numeric_out(Numeric num)
|
|||
int64 val64 = NUMERIC_64VALUE(num);
|
||||
scale = NUMERIC_BI_SCALE(num);
|
||||
Datum numeric_out_bi64 = bi64_out(val64, scale);
|
||||
return DatumGetCString(numeric_out_bi64);
|
||||
return DatumGetCString(numeric_out_bi64);
|
||||
} else if (NUMERIC_FLAG_IS_BI128(numFlags)) {
|
||||
int128 val128 = 0;
|
||||
errno_t rc = memcpy_s(&val128, sizeof(int128), (num)->choice.n_bi.n_data, sizeof(int128));
|
||||
securec_check(rc, "\0", "\0");
|
||||
scale = NUMERIC_BI_SCALE(num);
|
||||
Datum numeric_out_bi128 = bi128_out(val128, scale);
|
||||
return DatumGetCString(numeric_out_bi128);
|
||||
return DatumGetCString(numeric_out_bi128);
|
||||
}
|
||||
/*
|
||||
* Get the number in the variable format
|
||||
|
|
|
@ -1102,21 +1102,21 @@ void printtup(TupleTableSlot *slot, DestReceiver *self)
|
|||
if (thisState->format == 0) {
|
||||
/* Text output */
|
||||
char *outputstr = NULL;
|
||||
switch (thisState->typoutput) {
|
||||
case F_INT4OUT: /*int4out*/
|
||||
outputstr = output_int32_to_cstring(DatumGetInt32(attr));
|
||||
break;
|
||||
case F_BPCHAROUT: /*bpcharout*/
|
||||
case F_VARCHAROUT: /*varcharout*/
|
||||
outputstr = output_text_to_cstring((text*)DatumGetPointer(attr));
|
||||
break;
|
||||
case F_NUMERIC_OUT: /*numeric_out*/
|
||||
outputstr = output_numeric_out(DatumGetNumeric(attr));
|
||||
break;
|
||||
default:
|
||||
outputstr = OutputFunctionCall(&thisState->finfo, attr);
|
||||
break;
|
||||
}
|
||||
switch (thisState->typoutput) {
|
||||
case F_INT4OUT: /*int4out*/
|
||||
outputstr = output_int32_to_cstring(DatumGetInt32(attr));
|
||||
break;
|
||||
case F_BPCHAROUT: /*bpcharout*/
|
||||
case F_VARCHAROUT: /*varcharout*/
|
||||
outputstr = output_text_to_cstring((text*)DatumGetPointer(attr));
|
||||
break;
|
||||
case F_NUMERIC_OUT: /*numeric_out*/
|
||||
outputstr = output_numeric_out(DatumGetNumeric(attr));
|
||||
break;
|
||||
default:
|
||||
outputstr = OutputFunctionCall(&thisState->finfo, attr);
|
||||
break;
|
||||
}
|
||||
#ifdef ENABLE_MULTIPLE_NODES
|
||||
if (thisState->typisvarlena && self->forAnalyzeSampleTuple &&
|
||||
(typeinfo->attrs[i].atttypid == BYTEAOID || typeinfo->attrs[i].atttypid == CHAROID ||
|
||||
|
|
Loading…
Reference in New Issue