aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/parser/gram.y54
1 files changed, 9 insertions, 45 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index c98c27a16d9..0de9584e531 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -1552,27 +1552,11 @@ zone_value:
t->typmods = $3;
$$ = makeStringConstCast($2, @2, t);
}
- | ConstInterval '(' Iconst ')' Sconst opt_interval
+ | ConstInterval '(' Iconst ')' Sconst
{
TypeName *t = $1;
- if ($6 != NIL)
- {
- A_Const *n = (A_Const *) linitial($6);
- if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0)
- ereport(ERROR,
- (errcode(ERRCODE_SYNTAX_ERROR),
- errmsg("time zone interval must be HOUR or HOUR TO MINUTE"),
- parser_errposition(@6)));
- if (list_length($6) != 1)
- ereport(ERROR,
- (errcode(ERRCODE_SYNTAX_ERROR),
- errmsg("interval precision specified twice"),
- parser_errposition(@1)));
- t->typmods = lappend($6, makeIntConst($3, @3));
- }
- else
- t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
- makeIntConst($3, @3));
+ t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
+ makeIntConst($3, @3));
$$ = makeStringConstCast($5, @5, t);
}
| NumericOnly { $$ = makeAConst($1, @1); }
@@ -10582,21 +10566,11 @@ SimpleTypename:
$$ = $1;
$$->typmods = $2;
}
- | ConstInterval '(' Iconst ')' opt_interval
+ | ConstInterval '(' Iconst ')'
{
$$ = $1;
- if ($5 != NIL)
- {
- if (list_length($5) != 1)
- ereport(ERROR,
- (errcode(ERRCODE_SYNTAX_ERROR),
- errmsg("interval precision specified twice"),
- parser_errposition(@1)));
- $$->typmods = lappend($5, makeIntConst($3, @3));
- }
- else
- $$->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
- makeIntConst($3, @3));
+ $$->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
+ makeIntConst($3, @3));
}
;
@@ -12923,21 +12897,11 @@ AexprConst: Iconst
t->typmods = $3;
$$ = makeStringConstCast($2, @2, t);
}
- | ConstInterval '(' Iconst ')' Sconst opt_interval
+ | ConstInterval '(' Iconst ')' Sconst
{
TypeName *t = $1;
- if ($6 != NIL)
- {
- if (list_length($6) != 1)
- ereport(ERROR,
- (errcode(ERRCODE_SYNTAX_ERROR),
- errmsg("interval precision specified twice"),
- parser_errposition(@1)));
- t->typmods = lappend($6, makeIntConst($3, @3));
- }
- else
- t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
- makeIntConst($3, @3));
+ t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
+ makeIntConst($3, @3));
$$ = makeStringConstCast($5, @5, t);
}
| TRUE_P