From 5b11ce27c4aedea27a84142df3022028a5249494 Mon Sep 17 00:00:00 2001 From: JamesP Date: Sat, 5 Sep 2015 11:47:28 +1000 Subject: [PATCH] fastRows iterator doco updated to clarify what happens when break a fastRows loop --- lib/impure/db_mysql.nim | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/impure/db_mysql.nim b/lib/impure/db_mysql.nim index 34537c7f7a..fc6df72cc0 100644 --- a/lib/impure/db_mysql.nim +++ b/lib/impure/db_mysql.nim @@ -140,9 +140,13 @@ proc properFreeResult(sqlres: mysql.PRES, row: cstringArray) = iterator fastRows*(db: DbConn, query: SqlQuery, args: varargs[string, `$`]): Row {.tags: [FReadDB].} = - ## executes the query and iterates over the result dataset. This is very - ## fast, but potenially dangerous: If the for-loop-body executes another - ## query, the results can be undefined. For MySQL this is the case!. + ## executes the query and iterates over the result dataset. + ## + ## This is very fast, but potenially dangerous. Use this iterator only + ## if you require ALL the rows. + ## + ## Breaking the fastRows() iterator during a loop will cause the next + ## database query to raise an [EDb] exception ``Commands out of sync``. rawExec(db, query, args) var sqlres = mysql.useResult(db) if sqlres != nil: