diff options
Diffstat (limited to 'contrib/spi/autoinc.c')
-rw-r--r-- | contrib/spi/autoinc.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/contrib/spi/autoinc.c b/contrib/spi/autoinc.c index 8592ea7ed9b..92d3e97c220 100644 --- a/contrib/spi/autoinc.c +++ b/contrib/spi/autoinc.c @@ -79,8 +79,13 @@ autoinc(PG_FUNCTION_ARGS) seqname = DirectFunctionCall1(textin, CStringGetDatum(args[i])); newvals[chnattrs] = DirectFunctionCall1(nextval, seqname); + /* nextval now returns int64; coerce down to int32 */ + newvals[chnattrs] = Int32GetDatum((int32) DatumGetInt64(newvals[chnattrs])); if (DatumGetInt32(newvals[chnattrs]) == 0) + { newvals[chnattrs] = DirectFunctionCall1(nextval, seqname); + newvals[chnattrs] = Int32GetDatum((int32) DatumGetInt64(newvals[chnattrs])); + } pfree(DatumGetTextP(seqname)); chnattrs++; i++; |