diff options
Diffstat (limited to 'src/backend/commands/define.c')
-rw-r--r-- | src/backend/commands/define.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/src/backend/commands/define.c b/src/backend/commands/define.c index aafd7554e4e..19c317a472e 100644 --- a/src/backend/commands/define.c +++ b/src/backend/commands/define.c @@ -58,12 +58,7 @@ defGetString(DefElem *def) case T_Integer: return psprintf("%ld", (long) intVal(def->arg)); case T_Float: - - /* - * T_Float values are kept in string form, so this type cheat - * works (and doesn't risk losing precision) - */ - return strVal(def->arg); + return castNode(Float, def->arg)->val; case T_String: return strVal(def->arg); case T_TypeName: @@ -206,7 +201,7 @@ defGetInt64(DefElem *def) * strings. */ return DatumGetInt64(DirectFunctionCall1(int8in, - CStringGetDatum(strVal(def->arg)))); + CStringGetDatum(castNode(Float, def->arg)->val))); default: ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), |