Hello Tom,
That's probably a bigger change than we want to be putting in right now,
though I'm a bit tempted to go try it.
I definitely agree that the text variable solution is pretty ugly, but it
was the minimum change solution, and I do not have much time available.
Well, I felt like doing some minor hacking, so I went and adjusted the
code to work this way. I'm pretty happy with the result, what do you
think?
This is a definite improvement.
I like the lazyness between string & numeric forms, and for sorting, that
is what was needed doing to have something clean.
Applied on head, it works for me.
While testing the patch I found a minor preexisting (mine...) bug: when
string-scanning doubles, whether the whole string is consumed or not is
not checked. This means that -D x=0one is interpreted as double 0.
I came up with the attached check, but maybe there is a cleaner way to do
that.
--
Fabien.
diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c
index a484165..9673640 100644
--- a/src/bin/pgbench/pgbench.c
+++ b/src/bin/pgbench/pgbench.c
@@ -928,8 +928,10 @@ makeVariableNumeric(Variable *var)
else /* type should be double */
{
double dv;
+ int consumed;
- if (sscanf(var->value, "%lf", &dv) != 1)
+ if (sscanf(var->value, "%lf%n", &dv, &consumed) != 1 ||
+ consumed != strlen(var->value))
{
fprintf(stderr,
"malformed variable \"%s\" value: \"%s\"\n",
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers