Generate error on large integer.

This commit is contained in:
Bruce Momjian 1997-10-30 01:55:49 +00:00
parent 97b1bb2281
commit d48006180c

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * 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); return (FCONST);
} }
{integer} { {integer} {
char* endptr;
errno = 0;
ScanString = pstrdup((char*)yytext); 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); return (ICONST);
} }
{real} { {real} {
@ -250,9 +255,9 @@ other .
errno = 0; errno = 0;
ScanString = pstrdup((char*)yytext); ScanString = pstrdup((char*)yytext);
yylval.dval = strtod(((char *)yytext),&endptr); yylval.dval = strtod((char *)yytext,&endptr);
if (*endptr != '\0' || errno == ERANGE) if (*endptr != '\0' || errno == ERANGE)
elog(WARN,"\tBad float8 input format\n"); elog(WARN,"\tBad float input format\n");
CheckFloat8Val(yylval.dval); CheckFloat8Val(yylval.dval);
return (FCONST); return (FCONST);
} }