diff --git a/src/bin/pgbench/exprparse.y b/src/bin/pgbench/exprparse.y index 8772448..04f2529 100644 --- a/src/bin/pgbench/exprparse.y +++ b/src/bin/pgbench/exprparse.y @@ -47,11 +47,11 @@ static PgBenchExpr *make_func(yyscan_t yyscanner, int fnumber, PgBenchExprList * %type elist %type expr -%type INTEGER function -%type DOUBLE +%type INTEGER_VAR function +%type DOUBLE_VAR %type VARIABLE FUNCTION -%token INTEGER DOUBLE VARIABLE FUNCTION +%token INTEGER_VAR DOUBLE_VAR VARIABLE FUNCTION /* Precedence: lowest to highest */ %left '+' '-' @@ -76,8 +76,8 @@ expr: '(' expr ')' { $$ = $2; } | expr '*' expr { $$ = make_op(yyscanner, "*", $1, $3); } | expr '/' expr { $$ = make_op(yyscanner, "/", $1, $3); } | expr '%' expr { $$ = make_op(yyscanner, "%", $1, $3); } - | INTEGER { $$ = make_integer_constant($1); } - | DOUBLE { $$ = make_double_constant($1); } + | INTEGER_VAR { $$ = make_integer_constant($1); } + | DOUBLE_VAR { $$ = make_double_constant($1); } | VARIABLE { $$ = make_variable($1); } | function '(' elist ')' { $$ = make_func(yyscanner, $1, $3); } ; diff --git a/src/bin/pgbench/exprscan.l b/src/bin/pgbench/exprscan.l index d8b706a..e954608 100644 --- a/src/bin/pgbench/exprscan.l +++ b/src/bin/pgbench/exprscan.l @@ -123,12 +123,12 @@ newline [\n] } {digit}+ { yylval->ival = strtoint64(yytext); - return INTEGER; + return INTEGER_VAR; } {digit}+(\.{digit}*)?([eE][-+]?{digit}+)? { yycolumn += yyleng; yylval->dval = atof(yytext); - return DOUBLE; + return DOUBLE_VAR; } {alpha}{alnum}* { yylval->str = pg_strdup(yytext); diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c index a2df4df..4cd5513 100644 --- a/src/bin/pgbench/pgbench.c +++ b/src/bin/pgbench/pgbench.c @@ -1043,7 +1043,7 @@ coerceToInt(PgBenchValue *pval, int64 *ival) { double dval = pval->u.dval; Assert(pval->type == PGBT_DOUBLE); - if (dval < INT64_MIN || INT64_MAX < dval) + if (dval < PG_INT64_MIN || PG_INT64_MAX < dval) { fprintf(stderr, "double to int overflow for %f\n", dval); return false;