]> granicus.if.org Git - postgresql/commitdiff
Generate error on large integer.
authorBruce Momjian <bruce@momjian.us>
Thu, 30 Oct 1997 01:55:49 +0000 (01:55 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 30 Oct 1997 01:55:49 +0000 (01:55 +0000)
src/backend/parser/scan.l

index be5149683ff774a421f1d587e9137867351fa38f..d5cb5ea0022bfbfb477ed0b1bff24ab50a237089 100644 (file)
@@ -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);
                                }