diff options
Diffstat (limited to 'src/backend/commands/define.c')
-rw-r--r-- | src/backend/commands/define.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/backend/commands/define.c b/src/backend/commands/define.c index 9fa222f5fc0..75f77da2cff 100644 --- a/src/backend/commands/define.c +++ b/src/backend/commands/define.c @@ -165,6 +165,30 @@ defGetBoolean(DefElem *def) } /* + * Extract an int32 value from a DefElem. + */ +int32 +defGetInt32(DefElem *def) +{ + if (def->arg == NULL) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("%s requires an integer value", + def->defname))); + switch (nodeTag(def->arg)) + { + case T_Integer: + return (int32) intVal(def->arg); + default: + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("%s requires an integer value", + def->defname))); + } + return 0; /* keep compiler quiet */ +} + +/* * Extract an int64 value from a DefElem. */ int64 |