diff options
author | Bruce Momjian <bruce@momjian.us> | 1997-10-30 01:55:49 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1997-10-30 01:55:49 +0000 |
commit | d48006180c876aefd3385e6e78b76fa521139faa (patch) | |
tree | 7f35a50a28cb83542936f69af792387be7f157da /src | |
parent | 97b1bb228135dee3770ea0dd1db39d85e239030c (diff) | |
download | postgresql-d48006180c876aefd3385e6e78b76fa521139faa.tar.gz postgresql-d48006180c876aefd3385e6e78b76fa521139faa.zip |
Generate error on large integer.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/parser/scan.l | 13 |
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); } |