aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/sequence.c
diff options
context:
space:
mode:
authorDavid Rowley <drowley@postgresql.org>2021-07-13 13:56:59 +1200
committerDavid Rowley <drowley@postgresql.org>2021-07-13 13:56:59 +1200
commite0271d5f1e871dd61efc26bda8a0b556c7935901 (patch)
tree20cecbbd85fc8f5767248474993522d55e2d760d /src/backend/commands/sequence.c
parent5bd38d2f2846c7e387d04a16c4372da0de7b1221 (diff)
downloadpostgresql-e0271d5f1e871dd61efc26bda8a0b556c7935901.tar.gz
postgresql-e0271d5f1e871dd61efc26bda8a0b556c7935901.zip
Remove useless range checks on INT8 sequences
There's no point in checking if an INT8 sequence has a seqmin and seqmax value is outside the range of the minimum and maximum values for an int64 type. These both use the same underlying types so an INT8 certainly cannot be outside the minimum and maximum values supported by int64. This code is fairly harmless and it seems likely that most compilers would optimize it out anyway, never-the-less, let's remove it replacing it with a small comment to mention why the check is not needed. Author: Greg Nancarrow, with the comment revised by David Rowley Discussion: https://postgr.es/m/CAJcOf-c9KBUZ8ow_6e%3DWSfbbEyTKfqV%3DVwoFuODQVYMySHtusw%40mail.gmail.com
Diffstat (limited to 'src/backend/commands/sequence.c')
-rw-r--r--src/backend/commands/sequence.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c
index e3f9f6d53d0..d22d767d2fa 100644
--- a/src/backend/commands/sequence.c
+++ b/src/backend/commands/sequence.c
@@ -1460,9 +1460,9 @@ init_params(ParseState *pstate, List *options, bool for_identity,
seqdataform->log_cnt = 0;
}
+ /* Validate maximum value. No need to check INT8 as seqmax is an int64 */
if ((seqform->seqtypid == INT2OID && (seqform->seqmax < PG_INT16_MIN || seqform->seqmax > PG_INT16_MAX))
- || (seqform->seqtypid == INT4OID && (seqform->seqmax < PG_INT32_MIN || seqform->seqmax > PG_INT32_MAX))
- || (seqform->seqtypid == INT8OID && (seqform->seqmax < PG_INT64_MIN || seqform->seqmax > PG_INT64_MAX)))
+ || (seqform->seqtypid == INT4OID && (seqform->seqmax < PG_INT32_MIN || seqform->seqmax > PG_INT32_MAX)))
{
char bufx[100];
@@ -1497,9 +1497,9 @@ init_params(ParseState *pstate, List *options, bool for_identity,
seqdataform->log_cnt = 0;
}
+ /* Validate minimum value. No need to check INT8 as seqmin is an int64 */
if ((seqform->seqtypid == INT2OID && (seqform->seqmin < PG_INT16_MIN || seqform->seqmin > PG_INT16_MAX))
- || (seqform->seqtypid == INT4OID && (seqform->seqmin < PG_INT32_MIN || seqform->seqmin > PG_INT32_MAX))
- || (seqform->seqtypid == INT8OID && (seqform->seqmin < PG_INT64_MIN || seqform->seqmin > PG_INT64_MAX)))
+ || (seqform->seqtypid == INT4OID && (seqform->seqmin < PG_INT32_MIN || seqform->seqmin > PG_INT32_MAX)))
{
char bufm[100];