@pwernersbach - That's a really cool project, and I'm glad that you shared it! I love that you use the 'not nil' annotations for your argument types and type definitions, and I've enjoyed reading through it, even though I'm not currently using InfluxDB.
I hope you don't mind a few questions, but I'd really like to learn more about how Nim is used "in the wild" since I'm using it for my own projects and would love to learn more best practices. * Could you talk a bit about the [useDB](https://github.com/philip-wernersbach/influx-mysql/blob/580d0b2dcbb2de31d1745b144c34dc003deabdda/influx_mysql/src/influx_mysql_backend.nim) macro? I can see that it's a try-with-resources for the DB connection, but could this be done as a template (like the 'withFile' example in the manual?) Is using the immediate pragma needed so that you don't have to mark all of the parameters as 'untyped', or are you doing that for the overloading resolution? * How did using nimprof work for you? Is that why / how you have the GC_disable and GC_enable in critical parts? * The problem you point to with refcounting and long link lists seems bad and I definitely see the rationale for reflists - it looks like you're using finalizers with ReadLinesFutureContext and its 'super' to manage cleanup - have you had any problems with finalizers? I'm not sure I've seen another project using Nim finalizers in production, and the [manual](http://forum.nim-lang.org///nim-lang.org/docs/manual.html#type-bound-operations-destructors) talks about using destructors differently, so I'm not sure if the new(foo, destructor) is here to stay or not. * In your [splitIndividualStatements](https://github.com/philip-wernersbach/influx-mysql/blob/master/influx_mysql/src/influxql_to_sql.nim#L97) iterator, you're checking for 'SELECT' character-by-character - could you do something like if stmts[pos + 1 .. pos + 6] == "SELECT": # Do whatever work here discard or was there a performance difference in doing character-at-a-time approach?
