If valgrind isn't found, `make valgrind` will be disabled. Otherwise it
will run valgrind to make sure the parser doesn't leak any memory. If
mercurial isn't found an error will be displayed and configure will
abort.
Close#978
Fixes#867. Close#927. Updated lexer and parser to work, added code to
coordinator to insert spaces if requested. Now the user can request the
shard spaces. `list series include spaces`
Close#768
This patch isn't backward compatible since older version allowed the use
of table names with '-' without enclosing them. With this change, '-'
characters are disallowed completely unless they were enclosed in double
quotes. The parser can be made more complicated and be more context
aware to distinguish the use of the '-' character depending on the query
being parser, but I think the approach in this patch is simpler and less
confusing from the user's point of view.
Prior to this change, empty group filling worked between t1 and t2,
where t1 is the timestamp of the earliest point and t2 is the timestamp
of the last point. This patch change the behavior of the fill() to use
the query start and end time as t1 and t2, respectively. This only
happens if the user specified the start time of the query. Otherwise,
there's a potential of filling millions of millions of groups, since the
default start time of the query is really really early.
There was one remaining reference to an incomplete struct type from c
which is value_array. The error printed by the compiler is intermittent,
meaning it compiles sometimes and print the error sometimes. Also,
value_array isn't strictly an incomplete data type since it contains a
pointer to an unknown data type but it's size could be computed.