There seems to be a compiler problem probably.

When I rewrite db_mysql like this:
    
    
    iterator instantRows*(db: DbConn; columns: var DbColumns; query: SqlQuery;
                          args: varargs[string, `$`]): InstantRow =
      ## Same as fastRows but returns a handle that can be used to get column 
text
      ## on demand using []. Returned handle is valid only within the iterator 
body.
      rawExec(db, query, args)
      var sqlres = mysql.useResult(db)
      if sqlres != nil:
        let L = int(mysql.numFields(sqlres))
        setColumnInfo(columns, sqlres, L)
        var row: cstringArray
        while true:
          row = mysql.fetchRow(sqlres)
          if row == nil: break
          for f in 0.. <L:
            if row[f] == nil: # HERE the nil check is working
              row[f] = "NULL".cstring
          yield InstantRow(row: row, len: L) # after being added into the 
InstantRow type the "nil" seems to bring a problem I don't understand
        properFreeResult(sqlres, row)
    

Reply via email to