aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1997-10-30 01:55:49 +0000
committerBruce Momjian <bruce@momjian.us>1997-10-30 01:55:49 +0000
commitd48006180c876aefd3385e6e78b76fa521139faa (patch)
tree7f35a50a28cb83542936f69af792387be7f157da /src
parent97b1bb228135dee3770ea0dd1db39d85e239030c (diff)
downloadpostgresql-d48006180c876aefd3385e6e78b76fa521139faa.tar.gz
postgresql-d48006180c876aefd3385e6e78b76fa521139faa.zip
Generate error on large integer.
Diffstat (limited to 'src')
-rw-r--r--src/backend/parser/scan.l13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l
index be5149683ff..d5cb5ea0022 100644
--- a/src/backend/parser/scan.l
+++ b/src/backend/parser/scan.l
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.24 1997/10/15 01:12:21 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.25 1997/10/30 01:55:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -241,8 +241,13 @@ other .
return (FCONST);
}
{integer} {
+ char* endptr;
+
+ errno = 0;
ScanString = pstrdup((char*)yytext);
- yylval.ival = atoi((char*)yytext);
+ yylval.ival = strtol((char *)yytext,&endptr,10);
+ if (*endptr != '\0' || errno == ERANGE)
+ elog(WARN,"\tBad integer input format\n");
return (ICONST);
}
{real} {
@@ -250,9 +255,9 @@ other .
errno = 0;
ScanString = pstrdup((char*)yytext);
- yylval.dval = strtod(((char *)yytext),&endptr);
+ yylval.dval = strtod((char *)yytext,&endptr);
if (*endptr != '\0' || errno == ERANGE)
- elog(WARN,"\tBad float8 input format\n");
+ elog(WARN,"\tBad float input format\n");
CheckFloat8Val(yylval.dval);
return (FCONST);
}