r-dbi / RSQLite

R interface for SQLite
https://rsqlite.r-dbi.org
GNU Lesser General Public License v2.1
325 stars 78 forks source link

Stabilize parallel writes to database tables #280

Closed gjgetzinger closed 3 years ago

gjgetzinger commented 5 years ago

I would like to utilize sqlite3_busy_handler() and squlite3_busy_timeout() to check if a database is locked and to retry RSQLite::dbWriteTable once the database is no longer locked. Is there any implementation of this in RSQLite?

georgevbsantiago commented 5 years ago

I missed a feature for that purpose. Example: When handling HTML files, I used the furrr package to parallelize the parser and handle data from the HTML file. It happens that, in parallel execution, there was a constant error in one of the nodes when trying to access SQLite. To get around this, I created the following function (in a Web Scraping project) to handle SQLite access errors by the nodes executed by furrr:

connect_sgbd <- function(sgbd = "sqlite") {

    if(sgbd == "sqlite") {

        conexao_segura_sqlite <- purrr::safely(DBI::dbConnect)

        sqlite_bd <- conexao_segura_sqlite(RSQLite::SQLite(),
                                           dbname = file.path("bd_sqlite",
                                                              "bd_tcm_despesas_municipios.db"))

        while(is.null(sqlite_bd$result) == TRUE) {

            print("Banco de Dados bloqueado - Tentando conectar novamente...")

            log_data_time <- log_data_hora()

            # Grava uma log em CSV, caso haja problemas em conectar com o SGBD
            tibble::tibble(data_time = log_data_time,
                           nm_log_erro = "Erro ao acesso o SQLite",
                           sgbd = "sqlite") %>%
            readr::write_delim(file.path("bd_sqlite",
                                         "log_sgbd.csv"),
                               delim = ";",
                               append = TRUE)

            # Tentar novamente a conexão com o BD
            sqlite_bd <- conexao_segura_sqlite(RSQLite::SQLite(),
                                               dbname = file.path("bd_sqlite",
                                                                  "bd_tcm_despesas_municipios.db"))
        }

        return(sqlite_bd$result)

    }

}

As you can see from the code above, the process node run by furrr keeps trying to access SQLite until it succeeds. So I tried with this script not to interrupt the execution of the nodes and then to complete all Web Scraping handling tasks.

If there was a native function to handle SQLite access errors it would be very useful.

krlmlr commented 5 years ago

@gjgetzinger: Thanks. This does look useful, would you like to contribute a pull request?

@georgevbsantiago: Sorry, I don't understand this. Could you please translate?

gjgetzinger commented 5 years ago

@krlmlr Sure. Would it be ok if I implemented the feature in R? I don't have much of any experience with C++.

krlmlr commented 5 years ago

I'm not sure if this can be done with R alone. We'll need an entry point in R, but it seems that a part of the functionality will need to be in C/C++.

dernst commented 5 years ago

@gjgetzinger If you just want a time-out wouldn't PRAGMA busy_timeout work? (https://www.sqlite.org/pragma.html#pragma_busy_timeout)

georgevbsantiago commented 3 years ago

With the release of furrr 0.2, parallelization will be easier to perform in R (for basic users). But how to use furrr 0.2 (ex: furrr :: future_walk) to write results in RSQLite without hitting the blocking error?

georgevbsantiago commented 3 years ago

I am trying several alternatives to prevent "Error: database is locked" when running in parallel.

In the reprex below, although print 1 to 30 appears, there are loops that are not registered in SQLite. I still don't know why this failure.

Any suggestions to face this problem?

Reprex example below:

Thanks

library(DBI)
library(RSQLite)
library(furrr)
#> Warning: package 'furrr' was built under R version 4.0.3
#> Carregando pacotes exigidos: future
library(future)
library(magrittr)
#> Warning: package 'magrittr' was built under R version 4.0.3
library(purrr)
#> 
#> Attaching package: 'purrr'
#> The following object is masked from 'package:magrittr':
#> 
#>     set_names

n_teste <- 1:30

connect_sgbd <- function() {

        tentativas <- purrr::rate_delay(pause = 0.3,
                                        max_times = 10)

        insist_sqlite <- purrr::insistently(DBI::dbConnect,
                                            tentativas,
                                            quiet = FALSE)

        conexao <- insist_sqlite(RSQLite::SQLite(),
                                 dbname = file.path("bd_test.db"))

        return(conexao)

}

teste_write_sqlite <- function(n_teste) {

        tb_teste_iris <- iris %>%
                dplyr::mutate(n_loop = n_teste)

        tentativas <- purrr::rate_delay(pause = 0.3,
                                        max_times = 10)

        insist_write_sqlite <- purrr::insistently(DBI::dbWriteTable,
                                                  tentativas,
                                                  quiet = FALSE)

        conn <- connect_sgbd()

        insist_write_sqlite(conn,
                            "tb_teste_iris",
                            tb_teste_iris,
                            append = TRUE)

        DBI::dbDisconnect(conn)

        print(n_teste)

}

future::plan("multisession",
             workers = 5)

furrr::future_walk(n_teste, teste_write_sqlite, .progress = TRUE)
#> [1] 1
#> [1] 2
#> [1] 3
#> [1] 4
#> [1] 5
#> [1] 6
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".
#> [1] 7
#> [1] 8
#> [1] 9
#> [1] 10
#> [1] 11
#> [1] 12
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".
#> [1] 13
#> [1] 14
#> [1] 15
#> [1] 16
#> [1] 17
#> [1] 18
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".
#> [1] 19
#> [1] 20
#> [1] 21
#> [1] 22
#> [1] 23
#> [1] 24
#> Warning: Couldn't set synchronous mode: database is locked
#> Use `synchronous` = NULL to turn off this warning.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Couldn't set synchronous mode: database is locked
#> Use `synchronous` = NULL to turn off this warning.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".
#> [1] 25
#> [1] 26
#> [1] 27
#> [1] 28
#> [1] 29
#> [1] 30
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Error: database is locked
#> Retrying in 0.3 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".

Created on 2020-12-20 by the reprex package (v0.3.0) `

georgevbsantiago commented 3 years ago

Example of another execution of the above code. See the SQLite database here: bd_test.zip

As noted in the comment above, although print 1 to 30 appears on the console, the iris data was not written to SQLite in loops 2, 3, 5, 9, 16, 19, 26

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
[1] 18
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
[1] 19
[1] 20
[1] 21
[1] 22
[1] 23
[1] 24
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
[1] 25
[1] 26
[1] 27
[1] 28
[1] 29
[1] 30
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
Error: database is locked
Retrying in 0.3 seconds.
There were 25 warnings (use warnings() to see them)
> 
georgevbsantiago commented 3 years ago

Another attempt. But it failed. The messages indicate success in all loops, but the database shows 4050 to 4200 lines, when there should be 4500 lines

library(DBI)
library(RSQLite)
library(furrr)
#> Warning: package 'furrr' was built under R version 4.0.3
#> Carregando pacotes exigidos: future
library(future)
library(magrittr)
#> Warning: package 'magrittr' was built under R version 4.0.3
library(purrr)
#> 
#> Attaching package: 'purrr'
#> The following object is masked from 'package:magrittr':
#> 
#>     set_names

n_teste <- 1:30

connect_sgbd <- function() {

        conexao <- DBI::dbConnect(RSQLite::SQLite(),
                                  dbname = file.path("bd_test.db"))

        return(conexao)

}

teste_write_sqlite <- function(n_teste) {

        tb_teste_iris <- iris %>%
                dplyr::mutate(n_loop = n_teste)

        tentativas <- purrr::rate_delay(pause = 2,
                                        max_times = 20)

        insist_write_sqlite <- purrr::insistently(DBI::dbWriteTable,
                                                  tentativas,
                                                  quiet = FALSE)

        safely_write_sqlite <- purrr::safely(insist_write_sqlite)

        conn <- connect_sgbd()

        safely_write_sqlite_teste <- safely_write_sqlite(conn,
                                                         "tb_teste_iris",
                                                         tb_teste_iris,
                                                         append = TRUE)

        if(is.null(safely_write_sqlite_teste$error) == FALSE){

                DBI::dbDisconnect(conn)

                return(
                        print(paste(n_teste, "-", "Failed to write"))
                )

        }

        DBI::dbDisconnect(conn)

        print(paste(n_teste, "-", safely_write_sqlite_teste$result))

}

future::plan("multisession",
             workers = 5)

furrr::future_walk(n_teste, teste_write_sqlite, .progress = TRUE)
#> [1] "1 - TRUE"
#> [1] "2 - TRUE"
#> [1] "3 - TRUE"
#> [1] "4 - TRUE"
#> [1] "5 - TRUE"
#> [1] "6 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".
#> [1] "7 - TRUE"
#> [1] "8 - TRUE"
#> [1] "9 - TRUE"
#> [1] "10 - TRUE"
#> [1] "11 - TRUE"
#> [1] "12 - TRUE"
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 2 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".
#> [1] "13 - TRUE"
#> [1] "14 - TRUE"
#> [1] "15 - TRUE"
#> [1] "16 - TRUE"
#> [1] "17 - TRUE"
#> [1] "18 - TRUE"
#> Warning: Couldn't set synchronous mode: database is locked
#> Use `synchronous` = NULL to turn off this warning.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".
#> [1] "19 - TRUE"
#> [1] "20 - TRUE"
#> [1] "21 - TRUE"
#> [1] "22 - TRUE"
#> [1] "23 - TRUE"
#> [1] "24 - TRUE"
#> Warning: Couldn't set synchronous mode: database is locked
#> Use `synchronous` = NULL to turn off this warning.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".
#> [1] "25 - TRUE"
#> [1] "26 - TRUE"
#> [1] "27 - TRUE"
#> [1] "28 - TRUE"
#> [1] "29 - TRUE"
#> [1] "30 - TRUE"
#> Warning: Couldn't set synchronous mode: database is locked
#> Use `synchronous` = NULL to turn off this warning.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".

Created on 2020-12-22 by the reprex package (v0.3.0)

krlmlr commented 3 years ago

Thanks.

The solution here appears to be BEGIN IMMEDIATE TRANSACTION, which either succeeds and locks the database, or fails with SQLITE_BUSY. We don't need the busy handler.

I wonder if dbBegin() should issue BEGIN IMMEDIATE TRANSACTION -- currently it sends the equivalent of BEGIN DEFERRED TRANSACTION, which blocks writing the database.

I suspect the oddities observed by @georgevbsantiago are due to the usage of savepoints -- multiple sessions overwriting each others' savepoints are a recipe for disaster. At the very least we need to use different names for the savepoints.

We need to work in transactions so that writes are fast. We can use sqlite3_get_autocommit() to check if an external transaction has started, and use a normal transaction if not, further avoiding conflicts.

CC @gaborcsardi @richfitz.

library(DBI)
library(RSQLite)
library(furrr)
#> Loading required package: future
library(future)
library(magrittr)
library(purrr)
#> 
#> Attaching package: 'purrr'
#> The following object is masked from 'package:magrittr':
#> 
#>     set_names

n_teste <- 1:1000

unlink("bd_test.db")

connect_sgbd <- function() {
  conexao <- DBI::dbConnect(RSQLite::SQLite(),
    dbname = file.path("bd_test.db")
  )

  return(conexao)
}

teste_write_sqlite <- function(n_teste) {
  tb_teste_iris <- iris[1, ] %>%
    dplyr::mutate(n_loop = n_teste)

  tentativas <- purrr::rate_delay(
    pause = 2,
    max_times = 20
  )

  insist_execute_sqlite <- purrr::insistently(
    DBI::dbExecute, tentativas,
    quiet = FALSE
  )

  conn <- connect_sgbd()
  on.exit(dbDisconnect(conn))

  tryCatch(
    {
      insist_execute_sqlite(conn, "BEGIN IMMEDIATE TRANSACTION")
      # Rollback on failure
      on.exit(try(dbExecute(conn, "ROLLBACK TRANSACTION")))
      out <- dbWriteTable(conn, "tb_teste_iris", tb_teste_iris, append = TRUE)
      dbExecute(conn, "COMMIT TRANSACTION")

      # Don't rollback on success
      on.exit(NULL)
      print(paste(n_teste, "-", out))
    },
    error = function(e) {
      print(paste(n_teste, "-", conditionMessage(e)))
    }
  )
}

future::plan("multisession",
  workers = 8
)

options(future.rng.onMisuse = "ignore")

furrr::future_walk(n_teste, teste_write_sqlite, .progress = TRUE)
#> [1] "1 - TRUE"
#> [1] "2 - TRUE"
#> [1] "3 - TRUE"
#> [1] "4 - TRUE"
#> [1] "5 - TRUE"
#> [1] "6 - TRUE"
#> [1] "7 - TRUE"
#> [1] "8 - TRUE"
#> [1] "9 - TRUE"
#> [1] "10 - TRUE"
#> [1] "11 - TRUE"
#> [1] "12 - TRUE"
#> [1] "13 - TRUE"
#> [1] "14 - TRUE"
#> [1] "15 - TRUE"
#> [1] "16 - TRUE"
#> [1] "17 - TRUE"
#> [1] "18 - TRUE"
#> [1] "19 - TRUE"
#> [1] "20 - TRUE"
#> [1] "21 - TRUE"
#> [1] "22 - TRUE"
#> [1] "23 - TRUE"
#> [1] "24 - TRUE"
#> [1] "25 - TRUE"
#> [1] "26 - TRUE"
#> [1] "27 - TRUE"
#> [1] "28 - TRUE"
#> [1] "29 - TRUE"
#> [1] "30 - TRUE"
#> [1] "31 - TRUE"
#> [1] "32 - TRUE"
#> [1] "33 - TRUE"
#> [1] "34 - TRUE"
#> [1] "35 - TRUE"
#> [1] "36 - TRUE"
#> [1] "37 - TRUE"
#> [1] "38 - TRUE"
#> [1] "39 - TRUE"
#> [1] "40 - TRUE"
#> [1] "41 - TRUE"
#> [1] "42 - TRUE"
#> [1] "43 - TRUE"
#> [1] "44 - TRUE"
#> [1] "45 - TRUE"
#> [1] "46 - TRUE"
#> [1] "47 - TRUE"
#> [1] "48 - TRUE"
#> [1] "49 - TRUE"
#> [1] "50 - TRUE"
#> [1] "51 - TRUE"
#> [1] "52 - TRUE"
#> [1] "53 - TRUE"
#> [1] "54 - TRUE"
#> [1] "55 - TRUE"
#> [1] "56 - TRUE"
#> [1] "57 - TRUE"
#> [1] "58 - TRUE"
#> [1] "59 - TRUE"
#> [1] "60 - TRUE"
#> [1] "61 - TRUE"
#> [1] "62 - TRUE"
#> [1] "63 - TRUE"
#> [1] "64 - TRUE"
#> [1] "65 - TRUE"
#> [1] "66 - TRUE"
#> [1] "67 - TRUE"
#> [1] "68 - TRUE"
#> [1] "69 - TRUE"
#> [1] "70 - TRUE"
#> [1] "71 - TRUE"
#> [1] "72 - TRUE"
#> [1] "73 - TRUE"
#> [1] "74 - TRUE"
#> [1] "75 - TRUE"
#> [1] "76 - TRUE"
#> [1] "77 - TRUE"
#> [1] "78 - TRUE"
#> [1] "79 - TRUE"
#> [1] "80 - TRUE"
#> [1] "81 - TRUE"
#> [1] "82 - TRUE"
#> [1] "83 - TRUE"
#> [1] "84 - TRUE"
#> [1] "85 - TRUE"
#> [1] "86 - TRUE"
#> [1] "87 - TRUE"
#> [1] "88 - TRUE"
#> [1] "89 - TRUE"
#> [1] "90 - TRUE"
#> [1] "91 - TRUE"
#> [1] "92 - TRUE"
#> [1] "93 - TRUE"
#> [1] "94 - TRUE"
#> [1] "95 - TRUE"
#> [1] "96 - TRUE"
#> [1] "97 - TRUE"
#> [1] "98 - TRUE"
#> [1] "99 - TRUE"
#> [1] "100 - TRUE"
#> [1] "101 - TRUE"
#> [1] "102 - TRUE"
#> [1] "103 - TRUE"
#> [1] "104 - TRUE"
#> [1] "105 - TRUE"
#> [1] "106 - TRUE"
#> [1] "107 - TRUE"
#> [1] "108 - TRUE"
#> [1] "109 - TRUE"
#> [1] "110 - TRUE"
#> [1] "111 - TRUE"
#> [1] "112 - TRUE"
#> [1] "113 - TRUE"
#> [1] "114 - TRUE"
#> [1] "115 - TRUE"
#> [1] "116 - TRUE"
#> [1] "117 - TRUE"
#> [1] "118 - TRUE"
#> [1] "119 - TRUE"
#> [1] "120 - TRUE"
#> [1] "121 - TRUE"
#> [1] "122 - TRUE"
#> [1] "123 - TRUE"
#> [1] "124 - TRUE"
#> [1] "125 - TRUE"
#> [1] "126 - TRUE"
#> [1] "127 - TRUE"
#> [1] "128 - TRUE"
#> [1] "129 - TRUE"
#> [1] "130 - TRUE"
#> [1] "131 - TRUE"
#> [1] "132 - TRUE"
#> [1] "133 - TRUE"
#> [1] "134 - TRUE"
#> [1] "135 - TRUE"
#> [1] "136 - TRUE"
#> [1] "137 - TRUE"
#> [1] "138 - TRUE"
#> [1] "139 - TRUE"
#> [1] "140 - TRUE"
#> [1] "141 - TRUE"
#> [1] "142 - TRUE"
#> [1] "143 - TRUE"
#> [1] "144 - TRUE"
#> [1] "145 - TRUE"
#> [1] "146 - TRUE"
#> [1] "147 - TRUE"
#> [1] "148 - TRUE"
#> [1] "149 - TRUE"
#> [1] "150 - TRUE"
#> [1] "151 - TRUE"
#> [1] "152 - TRUE"
#> [1] "153 - TRUE"
#> [1] "154 - TRUE"
#> [1] "155 - TRUE"
#> [1] "156 - TRUE"
#> [1] "157 - TRUE"
#> [1] "158 - TRUE"
#> [1] "159 - TRUE"
#> [1] "160 - TRUE"
#> [1] "161 - TRUE"
#> [1] "162 - TRUE"
#> [1] "163 - TRUE"
#> [1] "164 - TRUE"
#> [1] "165 - TRUE"
#> [1] "166 - TRUE"
#> [1] "167 - TRUE"
#> [1] "168 - TRUE"
#> [1] "169 - TRUE"
#> [1] "170 - TRUE"
#> [1] "171 - TRUE"
#> [1] "172 - TRUE"
#> [1] "173 - TRUE"
#> [1] "174 - TRUE"
#> [1] "175 - TRUE"
#> [1] "176 - TRUE"
#> [1] "177 - TRUE"
#> [1] "178 - TRUE"
#> [1] "179 - TRUE"
#> [1] "180 - TRUE"
#> [1] "181 - TRUE"
#> [1] "182 - TRUE"
#> [1] "183 - TRUE"
#> [1] "184 - TRUE"
#> [1] "185 - TRUE"
#> [1] "186 - TRUE"
#> [1] "187 - TRUE"
#> [1] "188 - TRUE"
#> [1] "189 - TRUE"
#> [1] "190 - TRUE"
#> [1] "191 - TRUE"
#> [1] "192 - TRUE"
#> [1] "193 - TRUE"
#> [1] "194 - TRUE"
#> [1] "195 - TRUE"
#> [1] "196 - TRUE"
#> [1] "197 - TRUE"
#> [1] "198 - TRUE"
#> [1] "199 - TRUE"
#> [1] "200 - TRUE"
#> [1] "201 - TRUE"
#> [1] "202 - TRUE"
#> [1] "203 - TRUE"
#> [1] "204 - TRUE"
#> [1] "205 - TRUE"
#> [1] "206 - TRUE"
#> [1] "207 - TRUE"
#> [1] "208 - TRUE"
#> [1] "209 - TRUE"
#> [1] "210 - TRUE"
#> [1] "211 - TRUE"
#> [1] "212 - TRUE"
#> [1] "213 - TRUE"
#> [1] "214 - TRUE"
#> [1] "215 - TRUE"
#> [1] "216 - TRUE"
#> [1] "217 - TRUE"
#> [1] "218 - TRUE"
#> [1] "219 - TRUE"
#> [1] "220 - TRUE"
#> [1] "221 - TRUE"
#> [1] "222 - TRUE"
#> [1] "223 - TRUE"
#> [1] "224 - TRUE"
#> [1] "225 - TRUE"
#> [1] "226 - TRUE"
#> [1] "227 - TRUE"
#> [1] "228 - TRUE"
#> [1] "229 - TRUE"
#> [1] "230 - TRUE"
#> [1] "231 - TRUE"
#> [1] "232 - TRUE"
#> [1] "233 - TRUE"
#> [1] "234 - TRUE"
#> [1] "235 - TRUE"
#> [1] "236 - TRUE"
#> [1] "237 - TRUE"
#> [1] "238 - TRUE"
#> [1] "239 - TRUE"
#> [1] "240 - TRUE"
#> [1] "241 - TRUE"
#> [1] "242 - TRUE"
#> [1] "243 - TRUE"
#> [1] "244 - TRUE"
#> [1] "245 - TRUE"
#> [1] "246 - TRUE"
#> [1] "247 - TRUE"
#> [1] "248 - TRUE"
#> [1] "249 - TRUE"
#> [1] "250 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "251 - TRUE"
#> [1] "252 - TRUE"
#> [1] "253 - TRUE"
#> [1] "254 - TRUE"
#> [1] "255 - TRUE"
#> [1] "256 - TRUE"
#> [1] "257 - TRUE"
#> [1] "258 - TRUE"
#> [1] "259 - TRUE"
#> [1] "260 - TRUE"
#> [1] "261 - TRUE"
#> [1] "262 - TRUE"
#> [1] "263 - TRUE"
#> [1] "264 - TRUE"
#> [1] "265 - TRUE"
#> [1] "266 - TRUE"
#> [1] "267 - TRUE"
#> [1] "268 - TRUE"
#> [1] "269 - TRUE"
#> [1] "270 - TRUE"
#> [1] "271 - TRUE"
#> [1] "272 - TRUE"
#> [1] "273 - TRUE"
#> [1] "274 - TRUE"
#> [1] "275 - TRUE"
#> [1] "276 - TRUE"
#> [1] "277 - TRUE"
#> [1] "278 - TRUE"
#> [1] "279 - TRUE"
#> [1] "280 - TRUE"
#> [1] "281 - TRUE"
#> [1] "282 - TRUE"
#> [1] "283 - TRUE"
#> [1] "284 - TRUE"
#> [1] "285 - TRUE"
#> [1] "286 - TRUE"
#> [1] "287 - TRUE"
#> [1] "288 - TRUE"
#> [1] "289 - TRUE"
#> [1] "290 - TRUE"
#> [1] "291 - TRUE"
#> [1] "292 - TRUE"
#> [1] "293 - TRUE"
#> [1] "294 - TRUE"
#> [1] "295 - TRUE"
#> [1] "296 - TRUE"
#> [1] "297 - TRUE"
#> [1] "298 - TRUE"
#> [1] "299 - TRUE"
#> [1] "300 - TRUE"
#> [1] "301 - TRUE"
#> [1] "302 - TRUE"
#> [1] "303 - TRUE"
#> [1] "304 - TRUE"
#> [1] "305 - TRUE"
#> [1] "306 - TRUE"
#> [1] "307 - TRUE"
#> [1] "308 - TRUE"
#> [1] "309 - TRUE"
#> [1] "310 - TRUE"
#> [1] "311 - TRUE"
#> [1] "312 - TRUE"
#> [1] "313 - TRUE"
#> [1] "314 - TRUE"
#> [1] "315 - TRUE"
#> [1] "316 - TRUE"
#> [1] "317 - TRUE"
#> [1] "318 - TRUE"
#> [1] "319 - TRUE"
#> [1] "320 - TRUE"
#> [1] "321 - TRUE"
#> [1] "322 - TRUE"
#> [1] "323 - TRUE"
#> [1] "324 - TRUE"
#> [1] "325 - TRUE"
#> [1] "326 - TRUE"
#> [1] "327 - TRUE"
#> [1] "328 - TRUE"
#> [1] "329 - TRUE"
#> [1] "330 - TRUE"
#> [1] "331 - TRUE"
#> [1] "332 - TRUE"
#> [1] "333 - TRUE"
#> [1] "334 - TRUE"
#> [1] "335 - TRUE"
#> [1] "336 - TRUE"
#> [1] "337 - TRUE"
#> [1] "338 - TRUE"
#> [1] "339 - TRUE"
#> [1] "340 - TRUE"
#> [1] "341 - TRUE"
#> [1] "342 - TRUE"
#> [1] "343 - TRUE"
#> [1] "344 - TRUE"
#> [1] "345 - TRUE"
#> [1] "346 - TRUE"
#> [1] "347 - TRUE"
#> [1] "348 - TRUE"
#> [1] "349 - TRUE"
#> [1] "350 - TRUE"
#> [1] "351 - TRUE"
#> [1] "352 - TRUE"
#> [1] "353 - TRUE"
#> [1] "354 - TRUE"
#> [1] "355 - TRUE"
#> [1] "356 - TRUE"
#> [1] "357 - TRUE"
#> [1] "358 - TRUE"
#> [1] "359 - TRUE"
#> [1] "360 - TRUE"
#> [1] "361 - TRUE"
#> [1] "362 - TRUE"
#> [1] "363 - TRUE"
#> [1] "364 - TRUE"
#> [1] "365 - TRUE"
#> [1] "366 - TRUE"
#> [1] "367 - TRUE"
#> [1] "368 - TRUE"
#> [1] "369 - TRUE"
#> [1] "370 - TRUE"
#> [1] "371 - TRUE"
#> [1] "372 - TRUE"
#> [1] "373 - TRUE"
#> [1] "374 - TRUE"
#> [1] "375 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "376 - TRUE"
#> [1] "377 - TRUE"
#> [1] "378 - TRUE"
#> [1] "379 - TRUE"
#> [1] "380 - TRUE"
#> [1] "381 - TRUE"
#> [1] "382 - TRUE"
#> [1] "383 - TRUE"
#> [1] "384 - TRUE"
#> [1] "385 - TRUE"
#> [1] "386 - TRUE"
#> [1] "387 - TRUE"
#> [1] "388 - TRUE"
#> [1] "389 - TRUE"
#> [1] "390 - TRUE"
#> [1] "391 - TRUE"
#> [1] "392 - TRUE"
#> [1] "393 - TRUE"
#> [1] "394 - TRUE"
#> [1] "395 - TRUE"
#> [1] "396 - TRUE"
#> [1] "397 - TRUE"
#> [1] "398 - TRUE"
#> [1] "399 - TRUE"
#> [1] "400 - TRUE"
#> [1] "401 - TRUE"
#> [1] "402 - TRUE"
#> [1] "403 - TRUE"
#> [1] "404 - TRUE"
#> [1] "405 - TRUE"
#> [1] "406 - TRUE"
#> [1] "407 - TRUE"
#> [1] "408 - TRUE"
#> [1] "409 - TRUE"
#> [1] "410 - TRUE"
#> [1] "411 - TRUE"
#> [1] "412 - TRUE"
#> [1] "413 - TRUE"
#> [1] "414 - TRUE"
#> [1] "415 - TRUE"
#> [1] "416 - TRUE"
#> [1] "417 - TRUE"
#> [1] "418 - TRUE"
#> [1] "419 - TRUE"
#> [1] "420 - TRUE"
#> [1] "421 - TRUE"
#> [1] "422 - TRUE"
#> [1] "423 - TRUE"
#> [1] "424 - TRUE"
#> [1] "425 - TRUE"
#> [1] "426 - TRUE"
#> [1] "427 - TRUE"
#> [1] "428 - TRUE"
#> [1] "429 - TRUE"
#> [1] "430 - TRUE"
#> [1] "431 - TRUE"
#> [1] "432 - TRUE"
#> [1] "433 - TRUE"
#> [1] "434 - TRUE"
#> [1] "435 - TRUE"
#> [1] "436 - TRUE"
#> [1] "437 - TRUE"
#> [1] "438 - TRUE"
#> [1] "439 - TRUE"
#> [1] "440 - TRUE"
#> [1] "441 - TRUE"
#> [1] "442 - TRUE"
#> [1] "443 - TRUE"
#> [1] "444 - TRUE"
#> [1] "445 - TRUE"
#> [1] "446 - TRUE"
#> [1] "447 - TRUE"
#> [1] "448 - TRUE"
#> [1] "449 - TRUE"
#> [1] "450 - TRUE"
#> [1] "451 - TRUE"
#> [1] "452 - TRUE"
#> [1] "453 - TRUE"
#> [1] "454 - TRUE"
#> [1] "455 - TRUE"
#> [1] "456 - TRUE"
#> [1] "457 - TRUE"
#> [1] "458 - TRUE"
#> [1] "459 - TRUE"
#> [1] "460 - TRUE"
#> [1] "461 - TRUE"
#> [1] "462 - TRUE"
#> [1] "463 - TRUE"
#> [1] "464 - TRUE"
#> [1] "465 - TRUE"
#> [1] "466 - TRUE"
#> [1] "467 - TRUE"
#> [1] "468 - TRUE"
#> [1] "469 - TRUE"
#> [1] "470 - TRUE"
#> [1] "471 - TRUE"
#> [1] "472 - TRUE"
#> [1] "473 - TRUE"
#> [1] "474 - TRUE"
#> [1] "475 - TRUE"
#> [1] "476 - TRUE"
#> [1] "477 - TRUE"
#> [1] "478 - TRUE"
#> [1] "479 - TRUE"
#> [1] "480 - TRUE"
#> [1] "481 - TRUE"
#> [1] "482 - TRUE"
#> [1] "483 - TRUE"
#> [1] "484 - TRUE"
#> [1] "485 - TRUE"
#> [1] "486 - TRUE"
#> [1] "487 - TRUE"
#> [1] "488 - TRUE"
#> [1] "489 - TRUE"
#> [1] "490 - TRUE"
#> [1] "491 - TRUE"
#> [1] "492 - TRUE"
#> [1] "493 - TRUE"
#> [1] "494 - TRUE"
#> [1] "495 - TRUE"
#> [1] "496 - TRUE"
#> [1] "497 - TRUE"
#> [1] "498 - TRUE"
#> [1] "499 - TRUE"
#> [1] "500 - TRUE"
#> [1] "501 - TRUE"
#> [1] "502 - TRUE"
#> [1] "503 - TRUE"
#> [1] "504 - TRUE"
#> [1] "505 - TRUE"
#> [1] "506 - TRUE"
#> [1] "507 - TRUE"
#> [1] "508 - TRUE"
#> [1] "509 - TRUE"
#> [1] "510 - TRUE"
#> [1] "511 - TRUE"
#> [1] "512 - TRUE"
#> [1] "513 - TRUE"
#> [1] "514 - TRUE"
#> [1] "515 - TRUE"
#> [1] "516 - TRUE"
#> [1] "517 - TRUE"
#> [1] "518 - TRUE"
#> [1] "519 - TRUE"
#> [1] "520 - TRUE"
#> [1] "521 - TRUE"
#> [1] "522 - TRUE"
#> [1] "523 - TRUE"
#> [1] "524 - TRUE"
#> [1] "525 - TRUE"
#> [1] "526 - TRUE"
#> [1] "527 - TRUE"
#> [1] "528 - TRUE"
#> [1] "529 - TRUE"
#> [1] "530 - TRUE"
#> [1] "531 - TRUE"
#> [1] "532 - TRUE"
#> [1] "533 - TRUE"
#> [1] "534 - TRUE"
#> [1] "535 - TRUE"
#> [1] "536 - TRUE"
#> [1] "537 - TRUE"
#> [1] "538 - TRUE"
#> [1] "539 - TRUE"
#> [1] "540 - TRUE"
#> [1] "541 - TRUE"
#> [1] "542 - TRUE"
#> [1] "543 - TRUE"
#> [1] "544 - TRUE"
#> [1] "545 - TRUE"
#> [1] "546 - TRUE"
#> [1] "547 - TRUE"
#> [1] "548 - TRUE"
#> [1] "549 - TRUE"
#> [1] "550 - TRUE"
#> [1] "551 - TRUE"
#> [1] "552 - TRUE"
#> [1] "553 - TRUE"
#> [1] "554 - TRUE"
#> [1] "555 - TRUE"
#> [1] "556 - TRUE"
#> [1] "557 - TRUE"
#> [1] "558 - TRUE"
#> [1] "559 - TRUE"
#> [1] "560 - TRUE"
#> [1] "561 - TRUE"
#> [1] "562 - TRUE"
#> [1] "563 - TRUE"
#> [1] "564 - TRUE"
#> [1] "565 - TRUE"
#> [1] "566 - TRUE"
#> [1] "567 - TRUE"
#> [1] "568 - TRUE"
#> [1] "569 - TRUE"
#> [1] "570 - TRUE"
#> [1] "571 - TRUE"
#> [1] "572 - TRUE"
#> [1] "573 - TRUE"
#> [1] "574 - TRUE"
#> [1] "575 - TRUE"
#> [1] "576 - TRUE"
#> [1] "577 - TRUE"
#> [1] "578 - TRUE"
#> [1] "579 - TRUE"
#> [1] "580 - TRUE"
#> [1] "581 - TRUE"
#> [1] "582 - TRUE"
#> [1] "583 - TRUE"
#> [1] "584 - TRUE"
#> [1] "585 - TRUE"
#> [1] "586 - TRUE"
#> [1] "587 - TRUE"
#> [1] "588 - TRUE"
#> [1] "589 - TRUE"
#> [1] "590 - TRUE"
#> [1] "591 - TRUE"
#> [1] "592 - TRUE"
#> [1] "593 - TRUE"
#> [1] "594 - TRUE"
#> [1] "595 - TRUE"
#> [1] "596 - TRUE"
#> [1] "597 - TRUE"
#> [1] "598 - TRUE"
#> [1] "599 - TRUE"
#> [1] "600 - TRUE"
#> [1] "601 - TRUE"
#> [1] "602 - TRUE"
#> [1] "603 - TRUE"
#> [1] "604 - TRUE"
#> [1] "605 - TRUE"
#> [1] "606 - TRUE"
#> [1] "607 - TRUE"
#> [1] "608 - TRUE"
#> [1] "609 - TRUE"
#> [1] "610 - TRUE"
#> [1] "611 - TRUE"
#> [1] "612 - TRUE"
#> [1] "613 - TRUE"
#> [1] "614 - TRUE"
#> [1] "615 - TRUE"
#> [1] "616 - TRUE"
#> [1] "617 - TRUE"
#> [1] "618 - TRUE"
#> [1] "619 - TRUE"
#> [1] "620 - TRUE"
#> [1] "621 - TRUE"
#> [1] "622 - TRUE"
#> [1] "623 - TRUE"
#> [1] "624 - TRUE"
#> [1] "625 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "626 - TRUE"
#> [1] "627 - TRUE"
#> [1] "628 - TRUE"
#> [1] "629 - TRUE"
#> [1] "630 - TRUE"
#> [1] "631 - TRUE"
#> [1] "632 - TRUE"
#> [1] "633 - TRUE"
#> [1] "634 - TRUE"
#> [1] "635 - TRUE"
#> [1] "636 - TRUE"
#> [1] "637 - TRUE"
#> [1] "638 - TRUE"
#> [1] "639 - TRUE"
#> [1] "640 - TRUE"
#> [1] "641 - TRUE"
#> [1] "642 - TRUE"
#> [1] "643 - TRUE"
#> [1] "644 - TRUE"
#> [1] "645 - TRUE"
#> [1] "646 - TRUE"
#> [1] "647 - TRUE"
#> [1] "648 - TRUE"
#> [1] "649 - TRUE"
#> [1] "650 - TRUE"
#> [1] "651 - TRUE"
#> [1] "652 - TRUE"
#> [1] "653 - TRUE"
#> [1] "654 - TRUE"
#> [1] "655 - TRUE"
#> [1] "656 - TRUE"
#> [1] "657 - TRUE"
#> [1] "658 - TRUE"
#> [1] "659 - TRUE"
#> [1] "660 - TRUE"
#> [1] "661 - TRUE"
#> [1] "662 - TRUE"
#> [1] "663 - TRUE"
#> [1] "664 - TRUE"
#> [1] "665 - TRUE"
#> [1] "666 - TRUE"
#> [1] "667 - TRUE"
#> [1] "668 - TRUE"
#> [1] "669 - TRUE"
#> [1] "670 - TRUE"
#> [1] "671 - TRUE"
#> [1] "672 - TRUE"
#> [1] "673 - TRUE"
#> [1] "674 - TRUE"
#> [1] "675 - TRUE"
#> [1] "676 - TRUE"
#> [1] "677 - TRUE"
#> [1] "678 - TRUE"
#> [1] "679 - TRUE"
#> [1] "680 - TRUE"
#> [1] "681 - TRUE"
#> [1] "682 - TRUE"
#> [1] "683 - TRUE"
#> [1] "684 - TRUE"
#> [1] "685 - TRUE"
#> [1] "686 - TRUE"
#> [1] "687 - TRUE"
#> [1] "688 - TRUE"
#> [1] "689 - TRUE"
#> [1] "690 - TRUE"
#> [1] "691 - TRUE"
#> [1] "692 - TRUE"
#> [1] "693 - TRUE"
#> [1] "694 - TRUE"
#> [1] "695 - TRUE"
#> [1] "696 - TRUE"
#> [1] "697 - TRUE"
#> [1] "698 - TRUE"
#> [1] "699 - TRUE"
#> [1] "700 - TRUE"
#> [1] "701 - TRUE"
#> [1] "702 - TRUE"
#> [1] "703 - TRUE"
#> [1] "704 - TRUE"
#> [1] "705 - TRUE"
#> [1] "706 - TRUE"
#> [1] "707 - TRUE"
#> [1] "708 - TRUE"
#> [1] "709 - TRUE"
#> [1] "710 - TRUE"
#> [1] "711 - TRUE"
#> [1] "712 - TRUE"
#> [1] "713 - TRUE"
#> [1] "714 - TRUE"
#> [1] "715 - TRUE"
#> [1] "716 - TRUE"
#> [1] "717 - TRUE"
#> [1] "718 - TRUE"
#> [1] "719 - TRUE"
#> [1] "720 - TRUE"
#> [1] "721 - TRUE"
#> [1] "722 - TRUE"
#> [1] "723 - TRUE"
#> [1] "724 - TRUE"
#> [1] "725 - TRUE"
#> [1] "726 - TRUE"
#> [1] "727 - TRUE"
#> [1] "728 - TRUE"
#> [1] "729 - TRUE"
#> [1] "730 - TRUE"
#> [1] "731 - TRUE"
#> [1] "732 - TRUE"
#> [1] "733 - TRUE"
#> [1] "734 - TRUE"
#> [1] "735 - TRUE"
#> [1] "736 - TRUE"
#> [1] "737 - TRUE"
#> [1] "738 - TRUE"
#> [1] "739 - TRUE"
#> [1] "740 - TRUE"
#> [1] "741 - TRUE"
#> [1] "742 - TRUE"
#> [1] "743 - TRUE"
#> [1] "744 - TRUE"
#> [1] "745 - TRUE"
#> [1] "746 - TRUE"
#> [1] "747 - TRUE"
#> [1] "748 - TRUE"
#> [1] "749 - TRUE"
#> [1] "750 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "751 - TRUE"
#> [1] "752 - TRUE"
#> [1] "753 - TRUE"
#> [1] "754 - TRUE"
#> [1] "755 - TRUE"
#> [1] "756 - TRUE"
#> [1] "757 - TRUE"
#> [1] "758 - TRUE"
#> [1] "759 - TRUE"
#> [1] "760 - TRUE"
#> [1] "761 - TRUE"
#> [1] "762 - TRUE"
#> [1] "763 - TRUE"
#> [1] "764 - TRUE"
#> [1] "765 - TRUE"
#> [1] "766 - TRUE"
#> [1] "767 - TRUE"
#> [1] "768 - TRUE"
#> [1] "769 - TRUE"
#> [1] "770 - TRUE"
#> [1] "771 - TRUE"
#> [1] "772 - TRUE"
#> [1] "773 - TRUE"
#> [1] "774 - TRUE"
#> [1] "775 - TRUE"
#> [1] "776 - TRUE"
#> [1] "777 - TRUE"
#> [1] "778 - TRUE"
#> [1] "779 - TRUE"
#> [1] "780 - TRUE"
#> [1] "781 - TRUE"
#> [1] "782 - TRUE"
#> [1] "783 - TRUE"
#> [1] "784 - TRUE"
#> [1] "785 - TRUE"
#> [1] "786 - TRUE"
#> [1] "787 - TRUE"
#> [1] "788 - TRUE"
#> [1] "789 - TRUE"
#> [1] "790 - TRUE"
#> [1] "791 - TRUE"
#> [1] "792 - TRUE"
#> [1] "793 - TRUE"
#> [1] "794 - TRUE"
#> [1] "795 - TRUE"
#> [1] "796 - TRUE"
#> [1] "797 - TRUE"
#> [1] "798 - TRUE"
#> [1] "799 - TRUE"
#> [1] "800 - TRUE"
#> [1] "801 - TRUE"
#> [1] "802 - TRUE"
#> [1] "803 - TRUE"
#> [1] "804 - TRUE"
#> [1] "805 - TRUE"
#> [1] "806 - TRUE"
#> [1] "807 - TRUE"
#> [1] "808 - TRUE"
#> [1] "809 - TRUE"
#> [1] "810 - TRUE"
#> [1] "811 - TRUE"
#> [1] "812 - TRUE"
#> [1] "813 - TRUE"
#> [1] "814 - TRUE"
#> [1] "815 - TRUE"
#> [1] "816 - TRUE"
#> [1] "817 - TRUE"
#> [1] "818 - TRUE"
#> [1] "819 - TRUE"
#> [1] "820 - TRUE"
#> [1] "821 - TRUE"
#> [1] "822 - TRUE"
#> [1] "823 - TRUE"
#> [1] "824 - TRUE"
#> [1] "825 - TRUE"
#> [1] "826 - TRUE"
#> [1] "827 - TRUE"
#> [1] "828 - TRUE"
#> [1] "829 - TRUE"
#> [1] "830 - TRUE"
#> [1] "831 - TRUE"
#> [1] "832 - TRUE"
#> [1] "833 - TRUE"
#> [1] "834 - TRUE"
#> [1] "835 - TRUE"
#> [1] "836 - TRUE"
#> [1] "837 - TRUE"
#> [1] "838 - TRUE"
#> [1] "839 - TRUE"
#> [1] "840 - TRUE"
#> [1] "841 - TRUE"
#> [1] "842 - TRUE"
#> [1] "843 - TRUE"
#> [1] "844 - TRUE"
#> [1] "845 - TRUE"
#> [1] "846 - TRUE"
#> [1] "847 - TRUE"
#> [1] "848 - TRUE"
#> [1] "849 - TRUE"
#> [1] "850 - TRUE"
#> [1] "851 - TRUE"
#> [1] "852 - TRUE"
#> [1] "853 - TRUE"
#> [1] "854 - TRUE"
#> [1] "855 - TRUE"
#> [1] "856 - TRUE"
#> [1] "857 - TRUE"
#> [1] "858 - TRUE"
#> [1] "859 - TRUE"
#> [1] "860 - TRUE"
#> [1] "861 - TRUE"
#> [1] "862 - TRUE"
#> [1] "863 - TRUE"
#> [1] "864 - TRUE"
#> [1] "865 - TRUE"
#> [1] "866 - TRUE"
#> [1] "867 - TRUE"
#> [1] "868 - TRUE"
#> [1] "869 - TRUE"
#> [1] "870 - TRUE"
#> [1] "871 - TRUE"
#> [1] "872 - TRUE"
#> [1] "873 - TRUE"
#> [1] "874 - TRUE"
#> [1] "875 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "876 - TRUE"
#> [1] "877 - TRUE"
#> [1] "878 - TRUE"
#> [1] "879 - TRUE"
#> [1] "880 - TRUE"
#> [1] "881 - TRUE"
#> [1] "882 - TRUE"
#> [1] "883 - TRUE"
#> [1] "884 - TRUE"
#> [1] "885 - TRUE"
#> [1] "886 - TRUE"
#> [1] "887 - TRUE"
#> [1] "888 - TRUE"
#> [1] "889 - TRUE"
#> [1] "890 - TRUE"
#> [1] "891 - TRUE"
#> [1] "892 - TRUE"
#> [1] "893 - TRUE"
#> [1] "894 - TRUE"
#> [1] "895 - TRUE"
#> [1] "896 - TRUE"
#> [1] "897 - TRUE"
#> [1] "898 - TRUE"
#> [1] "899 - TRUE"
#> [1] "900 - TRUE"
#> [1] "901 - TRUE"
#> [1] "902 - TRUE"
#> [1] "903 - TRUE"
#> [1] "904 - TRUE"
#> [1] "905 - TRUE"
#> [1] "906 - TRUE"
#> [1] "907 - TRUE"
#> [1] "908 - TRUE"
#> [1] "909 - TRUE"
#> [1] "910 - TRUE"
#> [1] "911 - TRUE"
#> [1] "912 - TRUE"
#> [1] "913 - TRUE"
#> [1] "914 - TRUE"
#> [1] "915 - TRUE"
#> [1] "916 - TRUE"
#> [1] "917 - TRUE"
#> [1] "918 - TRUE"
#> [1] "919 - TRUE"
#> [1] "920 - TRUE"
#> [1] "921 - TRUE"
#> [1] "922 - TRUE"
#> [1] "923 - TRUE"
#> [1] "924 - TRUE"
#> [1] "925 - TRUE"
#> [1] "926 - TRUE"
#> [1] "927 - TRUE"
#> [1] "928 - TRUE"
#> [1] "929 - TRUE"
#> [1] "930 - TRUE"
#> [1] "931 - TRUE"
#> [1] "932 - TRUE"
#> [1] "933 - TRUE"
#> [1] "934 - TRUE"
#> [1] "935 - TRUE"
#> [1] "936 - TRUE"
#> [1] "937 - TRUE"
#> [1] "938 - TRUE"
#> [1] "939 - TRUE"
#> [1] "940 - TRUE"
#> [1] "941 - TRUE"
#> [1] "942 - TRUE"
#> [1] "943 - TRUE"
#> [1] "944 - TRUE"
#> [1] "945 - TRUE"
#> [1] "946 - TRUE"
#> [1] "947 - TRUE"
#> [1] "948 - TRUE"
#> [1] "949 - TRUE"
#> [1] "950 - TRUE"
#> [1] "951 - TRUE"
#> [1] "952 - TRUE"
#> [1] "953 - TRUE"
#> [1] "954 - TRUE"
#> [1] "955 - TRUE"
#> [1] "956 - TRUE"
#> [1] "957 - TRUE"
#> [1] "958 - TRUE"
#> [1] "959 - TRUE"
#> [1] "960 - TRUE"
#> [1] "961 - TRUE"
#> [1] "962 - TRUE"
#> [1] "963 - TRUE"
#> [1] "964 - TRUE"
#> [1] "965 - TRUE"
#> [1] "966 - TRUE"
#> [1] "967 - TRUE"
#> [1] "968 - TRUE"
#> [1] "969 - TRUE"
#> [1] "970 - TRUE"
#> [1] "971 - TRUE"
#> [1] "972 - TRUE"
#> [1] "973 - TRUE"
#> [1] "974 - TRUE"
#> [1] "975 - TRUE"
#> [1] "976 - TRUE"
#> [1] "977 - TRUE"
#> [1] "978 - TRUE"
#> [1] "979 - TRUE"
#> [1] "980 - TRUE"
#> [1] "981 - TRUE"
#> [1] "982 - TRUE"
#> [1] "983 - TRUE"
#> [1] "984 - TRUE"
#> [1] "985 - TRUE"
#> [1] "986 - TRUE"
#> [1] "987 - TRUE"
#> [1] "988 - TRUE"
#> [1] "989 - TRUE"
#> [1] "990 - TRUE"
#> [1] "991 - TRUE"
#> [1] "992 - TRUE"
#> [1] "993 - TRUE"
#> [1] "994 - TRUE"
#> [1] "995 - TRUE"
#> [1] "996 - TRUE"
#> [1] "997 - TRUE"
#> [1] "998 - TRUE"
#> [1] "999 - TRUE"
#> [1] "1000 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.

con <- dbConnect(RSQLite::SQLite(), dbname = file.path("bd_test.db"))
dbGetQuery(con, "SELECT n_loop FROM tb_teste_iris ORDER BY n_loop")
#>      n_loop
#> 1         1
#> 2         2
#> 3         3
#> 4         4
#> 5         5
#> 6         6
#> 7         7
#> 8         8
#> 9         9
#> 10       10
#> 11       11
#> 12       12
#> 13       13
#> 14       14
#> 15       15
#> 16       16
#> 17       17
#> 18       18
#> 19       19
#> 20       20
#> 21       21
#> 22       22
#> 23       23
#> 24       24
#> 25       25
#> 26       26
#> 27       27
#> 28       28
#> 29       29
#> 30       30
#> 31       31
#> 32       32
#> 33       33
#> 34       34
#> 35       35
#> 36       36
#> 37       37
#> 38       38
#> 39       39
#> 40       40
#> 41       41
#> 42       42
#> 43       43
#> 44       44
#> 45       45
#> 46       46
#> 47       47
#> 48       48
#> 49       49
#> 50       50
#> 51       51
#> 52       52
#> 53       53
#> 54       54
#> 55       55
#> 56       56
#> 57       57
#> 58       58
#> 59       59
#> 60       60
#> 61       61
#> 62       62
#> 63       63
#> 64       64
#> 65       65
#> 66       66
#> 67       67
#> 68       68
#> 69       69
#> 70       70
#> 71       71
#> 72       72
#> 73       73
#> 74       74
#> 75       75
#> 76       76
#> 77       77
#> 78       78
#> 79       79
#> 80       80
#> 81       81
#> 82       82
#> 83       83
#> 84       84
#> 85       85
#> 86       86
#> 87       87
#> 88       88
#> 89       89
#> 90       90
#> 91       91
#> 92       92
#> 93       93
#> 94       94
#> 95       95
#> 96       96
#> 97       97
#> 98       98
#> 99       99
#> 100     100
#> 101     101
#> 102     102
#> 103     103
#> 104     104
#> 105     105
#> 106     106
#> 107     107
#> 108     108
#> 109     109
#> 110     110
#> 111     111
#> 112     112
#> 113     113
#> 114     114
#> 115     115
#> 116     116
#> 117     117
#> 118     118
#> 119     119
#> 120     120
#> 121     121
#> 122     122
#> 123     123
#> 124     124
#> 125     125
#> 126     126
#> 127     127
#> 128     128
#> 129     129
#> 130     130
#> 131     131
#> 132     132
#> 133     133
#> 134     134
#> 135     135
#> 136     136
#> 137     137
#> 138     138
#> 139     139
#> 140     140
#> 141     141
#> 142     142
#> 143     143
#> 144     144
#> 145     145
#> 146     146
#> 147     147
#> 148     148
#> 149     149
#> 150     150
#> 151     151
#> 152     152
#> 153     153
#> 154     154
#> 155     155
#> 156     156
#> 157     157
#> 158     158
#> 159     159
#> 160     160
#> 161     161
#> 162     162
#> 163     163
#> 164     164
#> 165     165
#> 166     166
#> 167     167
#> 168     168
#> 169     169
#> 170     170
#> 171     171
#> 172     172
#> 173     173
#> 174     174
#> 175     175
#> 176     176
#> 177     177
#> 178     178
#> 179     179
#> 180     180
#> 181     181
#> 182     182
#> 183     183
#> 184     184
#> 185     185
#> 186     186
#> 187     187
#> 188     188
#> 189     189
#> 190     190
#> 191     191
#> 192     192
#> 193     193
#> 194     194
#> 195     195
#> 196     196
#> 197     197
#> 198     198
#> 199     199
#> 200     200
#> 201     201
#> 202     202
#> 203     203
#> 204     204
#> 205     205
#> 206     206
#> 207     207
#> 208     208
#> 209     209
#> 210     210
#> 211     211
#> 212     212
#> 213     213
#> 214     214
#> 215     215
#> 216     216
#> 217     217
#> 218     218
#> 219     219
#> 220     220
#> 221     221
#> 222     222
#> 223     223
#> 224     224
#> 225     225
#> 226     226
#> 227     227
#> 228     228
#> 229     229
#> 230     230
#> 231     231
#> 232     232
#> 233     233
#> 234     234
#> 235     235
#> 236     236
#> 237     237
#> 238     238
#> 239     239
#> 240     240
#> 241     241
#> 242     242
#> 243     243
#> 244     244
#> 245     245
#> 246     246
#> 247     247
#> 248     248
#> 249     249
#> 250     250
#> 251     251
#> 252     252
#> 253     253
#> 254     254
#> 255     255
#> 256     256
#> 257     257
#> 258     258
#> 259     259
#> 260     260
#> 261     261
#> 262     262
#> 263     263
#> 264     264
#> 265     265
#> 266     266
#> 267     267
#> 268     268
#> 269     269
#> 270     270
#> 271     271
#> 272     272
#> 273     273
#> 274     274
#> 275     275
#> 276     276
#> 277     277
#> 278     278
#> 279     279
#> 280     280
#> 281     281
#> 282     282
#> 283     283
#> 284     284
#> 285     285
#> 286     286
#> 287     287
#> 288     288
#> 289     289
#> 290     290
#> 291     291
#> 292     292
#> 293     293
#> 294     294
#> 295     295
#> 296     296
#> 297     297
#> 298     298
#> 299     299
#> 300     300
#> 301     301
#> 302     302
#> 303     303
#> 304     304
#> 305     305
#> 306     306
#> 307     307
#> 308     308
#> 309     309
#> 310     310
#> 311     311
#> 312     312
#> 313     313
#> 314     314
#> 315     315
#> 316     316
#> 317     317
#> 318     318
#> 319     319
#> 320     320
#> 321     321
#> 322     322
#> 323     323
#> 324     324
#> 325     325
#> 326     326
#> 327     327
#> 328     328
#> 329     329
#> 330     330
#> 331     331
#> 332     332
#> 333     333
#> 334     334
#> 335     335
#> 336     336
#> 337     337
#> 338     338
#> 339     339
#> 340     340
#> 341     341
#> 342     342
#> 343     343
#> 344     344
#> 345     345
#> 346     346
#> 347     347
#> 348     348
#> 349     349
#> 350     350
#> 351     351
#> 352     352
#> 353     353
#> 354     354
#> 355     355
#> 356     356
#> 357     357
#> 358     358
#> 359     359
#> 360     360
#> 361     361
#> 362     362
#> 363     363
#> 364     364
#> 365     365
#> 366     366
#> 367     367
#> 368     368
#> 369     369
#> 370     370
#> 371     371
#> 372     372
#> 373     373
#> 374     374
#> 375     375
#> 376     376
#> 377     377
#> 378     378
#> 379     379
#> 380     380
#> 381     381
#> 382     382
#> 383     383
#> 384     384
#> 385     385
#> 386     386
#> 387     387
#> 388     388
#> 389     389
#> 390     390
#> 391     391
#> 392     392
#> 393     393
#> 394     394
#> 395     395
#> 396     396
#> 397     397
#> 398     398
#> 399     399
#> 400     400
#> 401     401
#> 402     402
#> 403     403
#> 404     404
#> 405     405
#> 406     406
#> 407     407
#> 408     408
#> 409     409
#> 410     410
#> 411     411
#> 412     412
#> 413     413
#> 414     414
#> 415     415
#> 416     416
#> 417     417
#> 418     418
#> 419     419
#> 420     420
#> 421     421
#> 422     422
#> 423     423
#> 424     424
#> 425     425
#> 426     426
#> 427     427
#> 428     428
#> 429     429
#> 430     430
#> 431     431
#> 432     432
#> 433     433
#> 434     434
#> 435     435
#> 436     436
#> 437     437
#> 438     438
#> 439     439
#> 440     440
#> 441     441
#> 442     442
#> 443     443
#> 444     444
#> 445     445
#> 446     446
#> 447     447
#> 448     448
#> 449     449
#> 450     450
#> 451     451
#> 452     452
#> 453     453
#> 454     454
#> 455     455
#> 456     456
#> 457     457
#> 458     458
#> 459     459
#> 460     460
#> 461     461
#> 462     462
#> 463     463
#> 464     464
#> 465     465
#> 466     466
#> 467     467
#> 468     468
#> 469     469
#> 470     470
#> 471     471
#> 472     472
#> 473     473
#> 474     474
#> 475     475
#> 476     476
#> 477     477
#> 478     478
#> 479     479
#> 480     480
#> 481     481
#> 482     482
#> 483     483
#> 484     484
#> 485     485
#> 486     486
#> 487     487
#> 488     488
#> 489     489
#> 490     490
#> 491     491
#> 492     492
#> 493     493
#> 494     494
#> 495     495
#> 496     496
#> 497     497
#> 498     498
#> 499     499
#> 500     500
#> 501     501
#> 502     502
#> 503     503
#> 504     504
#> 505     505
#> 506     506
#> 507     507
#> 508     508
#> 509     509
#> 510     510
#> 511     511
#> 512     512
#> 513     513
#> 514     514
#> 515     515
#> 516     516
#> 517     517
#> 518     518
#> 519     519
#> 520     520
#> 521     521
#> 522     522
#> 523     523
#> 524     524
#> 525     525
#> 526     526
#> 527     527
#> 528     528
#> 529     529
#> 530     530
#> 531     531
#> 532     532
#> 533     533
#> 534     534
#> 535     535
#> 536     536
#> 537     537
#> 538     538
#> 539     539
#> 540     540
#> 541     541
#> 542     542
#> 543     543
#> 544     544
#> 545     545
#> 546     546
#> 547     547
#> 548     548
#> 549     549
#> 550     550
#> 551     551
#> 552     552
#> 553     553
#> 554     554
#> 555     555
#> 556     556
#> 557     557
#> 558     558
#> 559     559
#> 560     560
#> 561     561
#> 562     562
#> 563     563
#> 564     564
#> 565     565
#> 566     566
#> 567     567
#> 568     568
#> 569     569
#> 570     570
#> 571     571
#> 572     572
#> 573     573
#> 574     574
#> 575     575
#> 576     576
#> 577     577
#> 578     578
#> 579     579
#> 580     580
#> 581     581
#> 582     582
#> 583     583
#> 584     584
#> 585     585
#> 586     586
#> 587     587
#> 588     588
#> 589     589
#> 590     590
#> 591     591
#> 592     592
#> 593     593
#> 594     594
#> 595     595
#> 596     596
#> 597     597
#> 598     598
#> 599     599
#> 600     600
#> 601     601
#> 602     602
#> 603     603
#> 604     604
#> 605     605
#> 606     606
#> 607     607
#> 608     608
#> 609     609
#> 610     610
#> 611     611
#> 612     612
#> 613     613
#> 614     614
#> 615     615
#> 616     616
#> 617     617
#> 618     618
#> 619     619
#> 620     620
#> 621     621
#> 622     622
#> 623     623
#> 624     624
#> 625     625
#> 626     626
#> 627     627
#> 628     628
#> 629     629
#> 630     630
#> 631     631
#> 632     632
#> 633     633
#> 634     634
#> 635     635
#> 636     636
#> 637     637
#> 638     638
#> 639     639
#> 640     640
#> 641     641
#> 642     642
#> 643     643
#> 644     644
#> 645     645
#> 646     646
#> 647     647
#> 648     648
#> 649     649
#> 650     650
#> 651     651
#> 652     652
#> 653     653
#> 654     654
#> 655     655
#> 656     656
#> 657     657
#> 658     658
#> 659     659
#> 660     660
#> 661     661
#> 662     662
#> 663     663
#> 664     664
#> 665     665
#> 666     666
#> 667     667
#> 668     668
#> 669     669
#> 670     670
#> 671     671
#> 672     672
#> 673     673
#> 674     674
#> 675     675
#> 676     676
#> 677     677
#> 678     678
#> 679     679
#> 680     680
#> 681     681
#> 682     682
#> 683     683
#> 684     684
#> 685     685
#> 686     686
#> 687     687
#> 688     688
#> 689     689
#> 690     690
#> 691     691
#> 692     692
#> 693     693
#> 694     694
#> 695     695
#> 696     696
#> 697     697
#> 698     698
#> 699     699
#> 700     700
#> 701     701
#> 702     702
#> 703     703
#> 704     704
#> 705     705
#> 706     706
#> 707     707
#> 708     708
#> 709     709
#> 710     710
#> 711     711
#> 712     712
#> 713     713
#> 714     714
#> 715     715
#> 716     716
#> 717     717
#> 718     718
#> 719     719
#> 720     720
#> 721     721
#> 722     722
#> 723     723
#> 724     724
#> 725     725
#> 726     726
#> 727     727
#> 728     728
#> 729     729
#> 730     730
#> 731     731
#> 732     732
#> 733     733
#> 734     734
#> 735     735
#> 736     736
#> 737     737
#> 738     738
#> 739     739
#> 740     740
#> 741     741
#> 742     742
#> 743     743
#> 744     744
#> 745     745
#> 746     746
#> 747     747
#> 748     748
#> 749     749
#> 750     750
#> 751     751
#> 752     752
#> 753     753
#> 754     754
#> 755     755
#> 756     756
#> 757     757
#> 758     758
#> 759     759
#> 760     760
#> 761     761
#> 762     762
#> 763     763
#> 764     764
#> 765     765
#> 766     766
#> 767     767
#> 768     768
#> 769     769
#> 770     770
#> 771     771
#> 772     772
#> 773     773
#> 774     774
#> 775     775
#> 776     776
#> 777     777
#> 778     778
#> 779     779
#> 780     780
#> 781     781
#> 782     782
#> 783     783
#> 784     784
#> 785     785
#> 786     786
#> 787     787
#> 788     788
#> 789     789
#> 790     790
#> 791     791
#> 792     792
#> 793     793
#> 794     794
#> 795     795
#> 796     796
#> 797     797
#> 798     798
#> 799     799
#> 800     800
#> 801     801
#> 802     802
#> 803     803
#> 804     804
#> 805     805
#> 806     806
#> 807     807
#> 808     808
#> 809     809
#> 810     810
#> 811     811
#> 812     812
#> 813     813
#> 814     814
#> 815     815
#> 816     816
#> 817     817
#> 818     818
#> 819     819
#> 820     820
#> 821     821
#> 822     822
#> 823     823
#> 824     824
#> 825     825
#> 826     826
#> 827     827
#> 828     828
#> 829     829
#> 830     830
#> 831     831
#> 832     832
#> 833     833
#> 834     834
#> 835     835
#> 836     836
#> 837     837
#> 838     838
#> 839     839
#> 840     840
#> 841     841
#> 842     842
#> 843     843
#> 844     844
#> 845     845
#> 846     846
#> 847     847
#> 848     848
#> 849     849
#> 850     850
#> 851     851
#> 852     852
#> 853     853
#> 854     854
#> 855     855
#> 856     856
#> 857     857
#> 858     858
#> 859     859
#> 860     860
#> 861     861
#> 862     862
#> 863     863
#> 864     864
#> 865     865
#> 866     866
#> 867     867
#> 868     868
#> 869     869
#> 870     870
#> 871     871
#> 872     872
#> 873     873
#> 874     874
#> 875     875
#> 876     876
#> 877     877
#> 878     878
#> 879     879
#> 880     880
#> 881     881
#> 882     882
#> 883     883
#> 884     884
#> 885     885
#> 886     886
#> 887     887
#> 888     888
#> 889     889
#> 890     890
#> 891     891
#> 892     892
#> 893     893
#> 894     894
#> 895     895
#> 896     896
#> 897     897
#> 898     898
#> 899     899
#> 900     900
#> 901     901
#> 902     902
#> 903     903
#> 904     904
#> 905     905
#> 906     906
#> 907     907
#> 908     908
#> 909     909
#> 910     910
#> 911     911
#> 912     912
#> 913     913
#> 914     914
#> 915     915
#> 916     916
#> 917     917
#> 918     918
#> 919     919
#> 920     920
#> 921     921
#> 922     922
#> 923     923
#> 924     924
#> 925     925
#> 926     926
#> 927     927
#> 928     928
#> 929     929
#> 930     930
#> 931     931
#> 932     932
#> 933     933
#> 934     934
#> 935     935
#> 936     936
#> 937     937
#> 938     938
#> 939     939
#> 940     940
#> 941     941
#> 942     942
#> 943     943
#> 944     944
#> 945     945
#> 946     946
#> 947     947
#> 948     948
#> 949     949
#> 950     950
#> 951     951
#> 952     952
#> 953     953
#> 954     954
#> 955     955
#> 956     956
#> 957     957
#> 958     958
#> 959     959
#> 960     960
#> 961     961
#> 962     962
#> 963     963
#> 964     964
#> 965     965
#> 966     966
#> 967     967
#> 968     968
#> 969     969
#> 970     970
#> 971     971
#> 972     972
#> 973     973
#> 974     974
#> 975     975
#> 976     976
#> 977     977
#> 978     978
#> 979     979
#> 980     980
#> 981     981
#> 982     982
#> 983     983
#> 984     984
#> 985     985
#> 986     986
#> 987     987
#> 988     988
#> 989     989
#> 990     990
#> 991     991
#> 992     992
#> 993     993
#> 994     994
#> 995     995
#> 996     996
#> 997     997
#> 998     998
#> 999     999
#> 1000   1000

Created on 2020-12-27 by the reprex package (v0.3.0)

gaborcsardi commented 3 years ago

We can use sqlite3_get_autocommit() to check if an external transaction has started, and use a normal transaction if not, further avoiding conflicts.

This seems like a race condition to me.

I would just try to set PRAGMA busy_timeout in the parallel code. But I might be missing why retrying is needed. FWIW liteq sets it to 10 seconds and works pretty well with that: https://github.com/r-lib/liteq/blob/b2436d59fcd7c293d3d196fdf060b699b693525f/R/db.R#L7 Of course it depends how long your transactions really are, but for parallelism you should aim for snappy ones.

Btw. one catch is that SQLite resets the timeout sometimes, so it is best to set it again at the beginning of each DB operation. E.g. https://github.com/r-lib/liteq/commit/25ea557ee995e03a93f80742e084d108b2163468

If RSQLite uses hardcoded savepoint names, that's indeed not ideal. They could include the process id, or even better, they could be random.

krlmlr commented 3 years ago

I don't see the race condition (assuming single-threaded access), sqlite3_get_autocommit() checks if the own session is inside a transaction.

We need early and reliable failure. A busy_timeout may add a bit of convenience.

Good idea using process IDs as savepoint names, these should not clash (but random numbers could, in theory). How to determine portably?

gaborcsardi commented 3 years ago

We need early and reliable failure.

I don't understand. Isn't the database blocked error an early failure? I thought we wanted to make parallel transactions work.

Good idea using process IDs as savepoint names, these should not clash

They actually might, e.g. if two packages are running independent transactions from the same process. Not very likely, but it is easy to generate random strings, and those are better imo. Or include the pid and have a short random string as well.

krlmlr commented 3 years ago

Using PID and a random string as savepoint The original issue -- retrying until writing is possible -- can be solved with a PRAGMA busy_timeout or manually retrying BEGIN IMMEDIATE TRANSACTION until success.

georgevbsantiago commented 3 years ago

I ran your example / reprex, but the recording errors still persist. The test showed 990 recordings successfully, instead of 1000. I will wait for the release on CRAN to perform a new test. NOTE: In the reprex terminal, it informs that 990 records were recorded. But in the database it says 991

Result SQLite: bd_test.zip

> sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19042)

Matrix products: default

locale:
[1] LC_COLLATE=Portuguese_Brazil.1252  LC_CTYPE=Portuguese_Brazil.1252    LC_MONETARY=Portuguese_Brazil.1252
[4] LC_NUMERIC=C                       LC_TIME=Portuguese_Brazil.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] purrr_0.3.4        magrittr_2.0.1     furrr_0.2.1        future_1.21.0      RSQLite_2.2.2.9000 DBI_1.1.1.9000    

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.5        pillar_1.4.7      compiler_4.0.2    prettyunits_1.1.1 remotes_2.2.0     tools_4.0.2      
 [7] digest_0.6.27     pkgbuild_1.2.0    bit_4.0.4         evaluate_0.14     tibble_3.0.4      memoise_1.1.0    
[13] lifecycle_0.2.0   pkgconfig_2.0.3   rlang_0.4.10      reprex_0.3.0      cli_2.2.0         rstudioapi_0.13  
[19] curl_4.3          yaml_2.2.1        parallel_4.0.2    xfun_0.20         knitr_1.30        withr_2.3.0      
[25] fs_1.5.0          vctrs_0.3.6       globals_0.14.0    rprojroot_2.0.2   bit64_4.0.5       glue_1.4.2       
[31] listenv_0.8.0     R6_2.5.0          processx_3.4.5    fansi_0.4.1       parallelly_1.23.0 rmarkdown_2.6    
[37] clipr_0.7.1       whisker_0.4       callr_3.5.1       blob_1.2.1        htmltools_0.5.0   ps_1.5.0         
[43] codetools_0.2-18  ellipsis_0.3.1    assertthat_0.2.1  crayon_1.3.4  
library(DBI)
library(RSQLite)
library(furrr)
#> Warning: package 'furrr' was built under R version 4.0.3
#> Carregando pacotes exigidos: future
#> Loading required package: future
library(future)
library(magrittr)
#> Warning: package 'magrittr' was built under R version 4.0.3
library(purrr)
#> 
#> Attaching package: 'purrr'
#> The following object is masked from 'package:magrittr':
#> 
#>     set_names
#> 
#> Attaching package: 'purrr'
#> The following object is masked from 'package:magrittr':
#> 
#>     set_names

n_teste <- 1:1000

unlink("bd_test.db")

connect_sgbd <- function() {
        conexao <- DBI::dbConnect(RSQLite::SQLite(),
                                  dbname = file.path("bd_test.db")
        )

        return(conexao)
}

teste_write_sqlite <- function(n_teste) {
        tb_teste_iris <- iris[1, ] %>%
                dplyr::mutate(n_loop = n_teste)

        tentativas <- purrr::rate_delay(
                pause = 2,
                max_times = 20
        )

        insist_execute_sqlite <- purrr::insistently(
                DBI::dbExecute, tentativas,
                quiet = FALSE
        )

        conn <- connect_sgbd()
        on.exit(dbDisconnect(conn))

        tryCatch(
                {
                        insist_execute_sqlite(conn, "BEGIN IMMEDIATE TRANSACTION")
                        # Rollback on failure
                        on.exit(try(dbExecute(conn, "ROLLBACK TRANSACTION")))
                        out <- dbWriteTable(conn, "tb_teste_iris", tb_teste_iris, append = TRUE)
                        dbExecute(conn, "COMMIT TRANSACTION")

                        # Don't rollback on success
                        on.exit(NULL)
                        print(paste(n_teste, "-", out))
                },
                error = function(e) {
                        print(paste(n_teste, "-", conditionMessage(e)))
                }
        )
}

future::plan("multisession",
             workers = 8
)

options(future.rng.onMisuse = "ignore")

furrr::future_walk(n_teste, teste_write_sqlite, .progress = TRUE)
#> [1] "1 - TRUE"
#> [1] "2 - TRUE"
#> [1] "3 - TRUE"
#> [1] "4 - TRUE"
#> [1] "5 - TRUE"
#> [1] "6 - TRUE"
#> [1] "7 - TRUE"
#> [1] "8 - TRUE"
#> [1] "9 - TRUE"
#> [1] "10 - TRUE"
#> [1] "11 - TRUE"
#> [1] "12 - TRUE"
#> [1] "13 - TRUE"
#> [1] "14 - TRUE"
#> [1] "15 - TRUE"
#> [1] "16 - TRUE"
#> [1] "17 - TRUE"
#> [1] "18 - TRUE"
#> [1] "19 - TRUE"
#> [1] "20 - TRUE"
#> [1] "21 - TRUE"
#> [1] "22 - TRUE"
#> [1] "23 - TRUE"
#> [1] "24 - TRUE"
#> [1] "25 - TRUE"
#> [1] "26 - TRUE"
#> [1] "27 - TRUE"
#> [1] "28 - TRUE"
#> [1] "29 - TRUE"
#> [1] "30 - TRUE"
#> [1] "31 - TRUE"
#> [1] "32 - TRUE"
#> [1] "33 - TRUE"
#> [1] "34 - TRUE"
#> [1] "35 - TRUE"
#> [1] "36 - TRUE"
#> [1] "37 - TRUE"
#> [1] "38 - TRUE"
#> [1] "39 - TRUE"
#> [1] "40 - TRUE"
#> [1] "41 - TRUE"
#> [1] "42 - TRUE"
#> [1] "43 - TRUE"
#> [1] "44 - TRUE"
#> [1] "45 - TRUE"
#> [1] "46 - TRUE"
#> [1] "47 - TRUE"
#> [1] "48 - TRUE"
#> [1] "49 - TRUE"
#> [1] "50 - TRUE"
#> [1] "51 - TRUE"
#> [1] "52 - TRUE"
#> [1] "53 - TRUE"
#> [1] "54 - TRUE"
#> [1] "55 - TRUE"
#> [1] "56 - TRUE"
#> [1] "57 - TRUE"
#> [1] "58 - TRUE"
#> [1] "59 - TRUE"
#> [1] "60 - TRUE"
#> [1] "61 - TRUE"
#> [1] "62 - TRUE"
#> [1] "63 - TRUE"
#> [1] "64 - database is locked"
#> [1] "65 - TRUE"
#> [1] "66 - TRUE"
#> [1] "67 - TRUE"
#> [1] "68 - TRUE"
#> [1] "69 - TRUE"
#> [1] "70 - TRUE"
#> [1] "71 - TRUE"
#> [1] "72 - TRUE"
#> [1] "73 - TRUE"
#> [1] "74 - TRUE"
#> [1] "75 - TRUE"
#> [1] "76 - TRUE"
#> [1] "77 - TRUE"
#> [1] "78 - TRUE"
#> [1] "79 - TRUE"
#> [1] "80 - TRUE"
#> [1] "81 - TRUE"
#> [1] "82 - TRUE"
#> [1] "83 - database is locked"
#> [1] "84 - TRUE"
#> [1] "85 - TRUE"
#> [1] "86 - TRUE"
#> [1] "87 - TRUE"
#> [1] "88 - TRUE"
#> [1] "89 - TRUE"
#> [1] "90 - TRUE"
#> [1] "91 - TRUE"
#> [1] "92 - TRUE"
#> [1] "93 - TRUE"
#> [1] "94 - TRUE"
#> [1] "95 - TRUE"
#> [1] "96 - TRUE"
#> [1] "97 - TRUE"
#> [1] "98 - TRUE"
#> [1] "99 - TRUE"
#> [1] "100 - TRUE"
#> [1] "101 - TRUE"
#> [1] "102 - TRUE"
#> [1] "103 - TRUE"
#> [1] "104 - TRUE"
#> [1] "105 - TRUE"
#> [1] "106 - TRUE"
#> [1] "107 - TRUE"
#> [1] "108 - TRUE"
#> [1] "109 - TRUE"
#> [1] "110 - TRUE"
#> [1] "111 - TRUE"
#> [1] "112 - TRUE"
#> [1] "113 - TRUE"
#> [1] "114 - TRUE"
#> [1] "115 - TRUE"
#> [1] "116 - TRUE"
#> [1] "117 - TRUE"
#> [1] "118 - TRUE"
#> [1] "119 - TRUE"
#> [1] "120 - TRUE"
#> [1] "121 - TRUE"
#> [1] "122 - TRUE"
#> [1] "123 - TRUE"
#> [1] "124 - TRUE"
#> [1] "125 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "126 - TRUE"
#> [1] "127 - TRUE"
#> [1] "128 - TRUE"
#> [1] "129 - TRUE"
#> [1] "130 - TRUE"
#> [1] "131 - TRUE"
#> [1] "132 - TRUE"
#> [1] "133 - TRUE"
#> [1] "134 - TRUE"
#> [1] "135 - TRUE"
#> [1] "136 - TRUE"
#> [1] "137 - TRUE"
#> [1] "138 - TRUE"
#> [1] "139 - TRUE"
#> [1] "140 - TRUE"
#> [1] "141 - TRUE"
#> [1] "142 - TRUE"
#> [1] "143 - TRUE"
#> [1] "144 - TRUE"
#> [1] "145 - TRUE"
#> [1] "146 - TRUE"
#> [1] "147 - TRUE"
#> [1] "148 - TRUE"
#> [1] "149 - TRUE"
#> [1] "150 - TRUE"
#> [1] "151 - TRUE"
#> [1] "152 - TRUE"
#> [1] "153 - TRUE"
#> [1] "154 - TRUE"
#> [1] "155 - TRUE"
#> [1] "156 - TRUE"
#> [1] "157 - TRUE"
#> [1] "158 - TRUE"
#> [1] "159 - TRUE"
#> [1] "160 - TRUE"
#> [1] "161 - TRUE"
#> [1] "162 - TRUE"
#> [1] "163 - TRUE"
#> [1] "164 - TRUE"
#> [1] "165 - TRUE"
#> [1] "166 - TRUE"
#> [1] "167 - TRUE"
#> [1] "168 - TRUE"
#> [1] "169 - TRUE"
#> [1] "170 - TRUE"
#> [1] "171 - TRUE"
#> [1] "172 - TRUE"
#> [1] "173 - TRUE"
#> [1] "174 - TRUE"
#> [1] "175 - TRUE"
#> [1] "176 - TRUE"
#> [1] "177 - TRUE"
#> [1] "178 - TRUE"
#> [1] "179 - TRUE"
#> [1] "180 - TRUE"
#> [1] "181 - TRUE"
#> [1] "182 - TRUE"
#> [1] "183 - TRUE"
#> [1] "184 - TRUE"
#> [1] "185 - TRUE"
#> [1] "186 - TRUE"
#> [1] "187 - TRUE"
#> [1] "188 - TRUE"
#> [1] "189 - TRUE"
#> [1] "190 - TRUE"
#> [1] "191 - TRUE"
#> [1] "192 - TRUE"
#> [1] "193 - TRUE"
#> [1] "194 - TRUE"
#> [1] "195 - TRUE"
#> [1] "196 - TRUE"
#> [1] "197 - TRUE"
#> [1] "198 - TRUE"
#> [1] "199 - TRUE"
#> [1] "200 - TRUE"
#> [1] "201 - TRUE"
#> [1] "202 - TRUE"
#> [1] "203 - TRUE"
#> [1] "204 - TRUE"
#> [1] "205 - TRUE"
#> [1] "206 - TRUE"
#> [1] "207 - TRUE"
#> [1] "208 - TRUE"
#> [1] "209 - TRUE"
#> [1] "210 - TRUE"
#> [1] "211 - TRUE"
#> [1] "212 - TRUE"
#> [1] "213 - TRUE"
#> [1] "214 - TRUE"
#> [1] "215 - TRUE"
#> [1] "216 - TRUE"
#> [1] "217 - TRUE"
#> [1] "218 - TRUE"
#> [1] "219 - TRUE"
#> [1] "220 - TRUE"
#> [1] "221 - TRUE"
#> [1] "222 - TRUE"
#> [1] "223 - TRUE"
#> [1] "224 - TRUE"
#> [1] "225 - TRUE"
#> [1] "226 - TRUE"
#> [1] "227 - TRUE"
#> [1] "228 - TRUE"
#> [1] "229 - TRUE"
#> [1] "230 - TRUE"
#> [1] "231 - TRUE"
#> [1] "232 - TRUE"
#> [1] "233 - TRUE"
#> [1] "234 - TRUE"
#> [1] "235 - TRUE"
#> [1] "236 - TRUE"
#> [1] "237 - TRUE"
#> [1] "238 - TRUE"
#> [1] "239 - TRUE"
#> [1] "240 - TRUE"
#> [1] "241 - TRUE"
#> [1] "242 - TRUE"
#> [1] "243 - TRUE"
#> [1] "244 - TRUE"
#> [1] "245 - TRUE"
#> [1] "246 - TRUE"
#> [1] "247 - TRUE"
#> [1] "248 - TRUE"
#> [1] "249 - TRUE"
#> [1] "250 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "251 - TRUE"
#> [1] "252 - TRUE"
#> [1] "253 - TRUE"
#> [1] "254 - TRUE"
#> [1] "255 - TRUE"
#> [1] "256 - TRUE"
#> [1] "257 - TRUE"
#> [1] "258 - TRUE"
#> [1] "259 - TRUE"
#> [1] "260 - TRUE"
#> [1] "261 - TRUE"
#> [1] "262 - TRUE"
#> [1] "263 - TRUE"
#> [1] "264 - TRUE"
#> [1] "265 - TRUE"
#> [1] "266 - TRUE"
#> [1] "267 - TRUE"
#> [1] "268 - TRUE"
#> [1] "269 - TRUE"
#> [1] "270 - TRUE"
#> [1] "271 - TRUE"
#> [1] "272 - TRUE"
#> [1] "273 - TRUE"
#> [1] "274 - TRUE"
#> [1] "275 - TRUE"
#> [1] "276 - TRUE"
#> [1] "277 - TRUE"
#> [1] "278 - TRUE"
#> [1] "279 - TRUE"
#> [1] "280 - TRUE"
#> [1] "281 - TRUE"
#> [1] "282 - TRUE"
#> [1] "283 - TRUE"
#> [1] "284 - TRUE"
#> [1] "285 - TRUE"
#> [1] "286 - TRUE"
#> [1] "287 - TRUE"
#> [1] "288 - TRUE"
#> [1] "289 - TRUE"
#> [1] "290 - TRUE"
#> [1] "291 - TRUE"
#> [1] "292 - TRUE"
#> [1] "293 - TRUE"
#> [1] "294 - TRUE"
#> [1] "295 - TRUE"
#> [1] "296 - TRUE"
#> [1] "297 - TRUE"
#> [1] "298 - TRUE"
#> [1] "299 - TRUE"
#> [1] "300 - database is locked"
#> [1] "301 - TRUE"
#> [1] "302 - TRUE"
#> [1] "303 - TRUE"
#> [1] "304 - TRUE"
#> [1] "305 - TRUE"
#> [1] "306 - TRUE"
#> [1] "307 - TRUE"
#> [1] "308 - TRUE"
#> [1] "309 - TRUE"
#> [1] "310 - TRUE"
#> [1] "311 - TRUE"
#> [1] "312 - TRUE"
#> [1] "313 - TRUE"
#> [1] "314 - TRUE"
#> [1] "315 - TRUE"
#> [1] "316 - TRUE"
#> [1] "317 - TRUE"
#> [1] "318 - TRUE"
#> [1] "319 - TRUE"
#> [1] "320 - TRUE"
#> [1] "321 - TRUE"
#> [1] "322 - TRUE"
#> [1] "323 - TRUE"
#> [1] "324 - TRUE"
#> [1] "325 - TRUE"
#> [1] "326 - TRUE"
#> [1] "327 - TRUE"
#> [1] "328 - TRUE"
#> [1] "329 - TRUE"
#> [1] "330 - TRUE"
#> [1] "331 - TRUE"
#> [1] "332 - TRUE"
#> [1] "333 - TRUE"
#> [1] "334 - TRUE"
#> [1] "335 - TRUE"
#> [1] "336 - TRUE"
#> [1] "337 - TRUE"
#> [1] "338 - TRUE"
#> [1] "339 - TRUE"
#> [1] "340 - TRUE"
#> [1] "341 - TRUE"
#> [1] "342 - TRUE"
#> [1] "343 - TRUE"
#> [1] "344 - TRUE"
#> [1] "345 - TRUE"
#> [1] "346 - TRUE"
#> [1] "347 - TRUE"
#> [1] "348 - TRUE"
#> [1] "349 - TRUE"
#> [1] "350 - TRUE"
#> [1] "351 - TRUE"
#> [1] "352 - TRUE"
#> [1] "353 - TRUE"
#> [1] "354 - TRUE"
#> [1] "355 - TRUE"
#> [1] "356 - TRUE"
#> [1] "357 - TRUE"
#> [1] "358 - TRUE"
#> [1] "359 - TRUE"
#> [1] "360 - TRUE"
#> [1] "361 - TRUE"
#> [1] "362 - TRUE"
#> [1] "363 - TRUE"
#> [1] "364 - TRUE"
#> [1] "365 - TRUE"
#> [1] "366 - TRUE"
#> [1] "367 - TRUE"
#> [1] "368 - TRUE"
#> [1] "369 - TRUE"
#> [1] "370 - TRUE"
#> [1] "371 - TRUE"
#> [1] "372 - TRUE"
#> [1] "373 - TRUE"
#> [1] "374 - TRUE"
#> [1] "375 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "376 - TRUE"
#> [1] "377 - TRUE"
#> [1] "378 - TRUE"
#> [1] "379 - TRUE"
#> [1] "380 - TRUE"
#> [1] "381 - TRUE"
#> [1] "382 - database is locked"
#> [1] "383 - TRUE"
#> [1] "384 - TRUE"
#> [1] "385 - TRUE"
#> [1] "386 - TRUE"
#> [1] "387 - TRUE"
#> [1] "388 - TRUE"
#> [1] "389 - TRUE"
#> [1] "390 - TRUE"
#> [1] "391 - TRUE"
#> [1] "392 - TRUE"
#> [1] "393 - TRUE"
#> [1] "394 - TRUE"
#> [1] "395 - TRUE"
#> [1] "396 - TRUE"
#> [1] "397 - TRUE"
#> [1] "398 - TRUE"
#> [1] "399 - TRUE"
#> [1] "400 - TRUE"
#> [1] "401 - TRUE"
#> [1] "402 - TRUE"
#> [1] "403 - TRUE"
#> [1] "404 - TRUE"
#> [1] "405 - TRUE"
#> [1] "406 - TRUE"
#> [1] "407 - TRUE"
#> [1] "408 - TRUE"
#> [1] "409 - TRUE"
#> [1] "410 - TRUE"
#> [1] "411 - TRUE"
#> [1] "412 - TRUE"
#> [1] "413 - TRUE"
#> [1] "414 - TRUE"
#> [1] "415 - TRUE"
#> [1] "416 - TRUE"
#> [1] "417 - TRUE"
#> [1] "418 - TRUE"
#> [1] "419 - TRUE"
#> [1] "420 - TRUE"
#> [1] "421 - TRUE"
#> [1] "422 - TRUE"
#> [1] "423 - TRUE"
#> [1] "424 - TRUE"
#> [1] "425 - TRUE"
#> [1] "426 - TRUE"
#> [1] "427 - TRUE"
#> [1] "428 - TRUE"
#> [1] "429 - TRUE"
#> [1] "430 - TRUE"
#> [1] "431 - TRUE"
#> [1] "432 - TRUE"
#> [1] "433 - TRUE"
#> [1] "434 - TRUE"
#> [1] "435 - TRUE"
#> [1] "436 - TRUE"
#> [1] "437 - TRUE"
#> [1] "438 - TRUE"
#> [1] "439 - TRUE"
#> [1] "440 - TRUE"
#> [1] "441 - TRUE"
#> [1] "442 - TRUE"
#> [1] "443 - database is locked"
#> [1] "444 - TRUE"
#> [1] "445 - TRUE"
#> [1] "446 - TRUE"
#> [1] "447 - TRUE"
#> [1] "448 - TRUE"
#> [1] "449 - TRUE"
#> [1] "450 - TRUE"
#> [1] "451 - TRUE"
#> [1] "452 - TRUE"
#> [1] "453 - TRUE"
#> [1] "454 - TRUE"
#> [1] "455 - TRUE"
#> [1] "456 - TRUE"
#> [1] "457 - TRUE"
#> [1] "458 - TRUE"
#> [1] "459 - TRUE"
#> [1] "460 - TRUE"
#> [1] "461 - TRUE"
#> [1] "462 - TRUE"
#> [1] "463 - TRUE"
#> [1] "464 - TRUE"
#> [1] "465 - TRUE"
#> [1] "466 - TRUE"
#> [1] "467 - TRUE"
#> [1] "468 - TRUE"
#> [1] "469 - TRUE"
#> [1] "470 - TRUE"
#> [1] "471 - database is locked"
#> [1] "472 - TRUE"
#> [1] "473 - TRUE"
#> [1] "474 - TRUE"
#> [1] "475 - TRUE"
#> [1] "476 - TRUE"
#> [1] "477 - TRUE"
#> [1] "478 - TRUE"
#> [1] "479 - TRUE"
#> [1] "480 - TRUE"
#> [1] "481 - TRUE"
#> [1] "482 - TRUE"
#> [1] "483 - TRUE"
#> [1] "484 - TRUE"
#> [1] "485 - TRUE"
#> [1] "486 - TRUE"
#> [1] "487 - TRUE"
#> [1] "488 - TRUE"
#> [1] "489 - TRUE"
#> [1] "490 - TRUE"
#> [1] "491 - TRUE"
#> [1] "492 - TRUE"
#> [1] "493 - TRUE"
#> [1] "494 - TRUE"
#> [1] "495 - TRUE"
#> [1] "496 - TRUE"
#> [1] "497 - TRUE"
#> [1] "498 - TRUE"
#> [1] "499 - TRUE"
#> [1] "500 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "501 - TRUE"
#> [1] "502 - TRUE"
#> [1] "503 - TRUE"
#> [1] "504 - TRUE"
#> [1] "505 - TRUE"
#> [1] "506 - TRUE"
#> [1] "507 - TRUE"
#> [1] "508 - TRUE"
#> [1] "509 - TRUE"
#> [1] "510 - TRUE"
#> [1] "511 - TRUE"
#> [1] "512 - TRUE"
#> [1] "513 - TRUE"
#> [1] "514 - TRUE"
#> [1] "515 - TRUE"
#> [1] "516 - TRUE"
#> [1] "517 - TRUE"
#> [1] "518 - TRUE"
#> [1] "519 - TRUE"
#> [1] "520 - TRUE"
#> [1] "521 - TRUE"
#> [1] "522 - TRUE"
#> [1] "523 - TRUE"
#> [1] "524 - TRUE"
#> [1] "525 - TRUE"
#> [1] "526 - TRUE"
#> [1] "527 - TRUE"
#> [1] "528 - TRUE"
#> [1] "529 - TRUE"
#> [1] "530 - TRUE"
#> [1] "531 - TRUE"
#> [1] "532 - TRUE"
#> [1] "533 - TRUE"
#> [1] "534 - TRUE"
#> [1] "535 - TRUE"
#> [1] "536 - TRUE"
#> [1] "537 - TRUE"
#> [1] "538 - TRUE"
#> [1] "539 - TRUE"
#> [1] "540 - TRUE"
#> [1] "541 - TRUE"
#> [1] "542 - TRUE"
#> [1] "543 - TRUE"
#> [1] "544 - TRUE"
#> [1] "545 - TRUE"
#> [1] "546 - TRUE"
#> [1] "547 - TRUE"
#> [1] "548 - TRUE"
#> [1] "549 - TRUE"
#> [1] "550 - TRUE"
#> [1] "551 - TRUE"
#> [1] "552 - TRUE"
#> [1] "553 - TRUE"
#> [1] "554 - TRUE"
#> [1] "555 - TRUE"
#> [1] "556 - TRUE"
#> [1] "557 - TRUE"
#> [1] "558 - TRUE"
#> [1] "559 - TRUE"
#> [1] "560 - TRUE"
#> [1] "561 - TRUE"
#> [1] "562 - TRUE"
#> [1] "563 - TRUE"
#> [1] "564 - TRUE"
#> [1] "565 - TRUE"
#> [1] "566 - TRUE"
#> [1] "567 - TRUE"
#> [1] "568 - TRUE"
#> [1] "569 - TRUE"
#> [1] "570 - TRUE"
#> [1] "571 - TRUE"
#> [1] "572 - TRUE"
#> [1] "573 - TRUE"
#> [1] "574 - TRUE"
#> [1] "575 - TRUE"
#> [1] "576 - TRUE"
#> [1] "577 - TRUE"
#> [1] "578 - TRUE"
#> [1] "579 - TRUE"
#> [1] "580 - TRUE"
#> [1] "581 - TRUE"
#> [1] "582 - database is locked"
#> [1] "583 - TRUE"
#> [1] "584 - TRUE"
#> [1] "585 - TRUE"
#> [1] "586 - TRUE"
#> [1] "587 - TRUE"
#> [1] "588 - TRUE"
#> [1] "589 - TRUE"
#> [1] "590 - TRUE"
#> [1] "591 - TRUE"
#> [1] "592 - TRUE"
#> [1] "593 - TRUE"
#> [1] "594 - TRUE"
#> [1] "595 - TRUE"
#> [1] "596 - TRUE"
#> [1] "597 - TRUE"
#> [1] "598 - TRUE"
#> [1] "599 - TRUE"
#> [1] "600 - TRUE"
#> [1] "601 - TRUE"
#> [1] "602 - TRUE"
#> [1] "603 - TRUE"
#> [1] "604 - TRUE"
#> [1] "605 - TRUE"
#> [1] "606 - database is locked"
#> [1] "607 - TRUE"
#> [1] "608 - TRUE"
#> [1] "609 - TRUE"
#> [1] "610 - TRUE"
#> [1] "611 - TRUE"
#> [1] "612 - TRUE"
#> [1] "613 - TRUE"
#> [1] "614 - TRUE"
#> [1] "615 - TRUE"
#> [1] "616 - TRUE"
#> [1] "617 - TRUE"
#> [1] "618 - TRUE"
#> [1] "619 - TRUE"
#> [1] "620 - TRUE"
#> [1] "621 - TRUE"
#> [1] "622 - TRUE"
#> [1] "623 - TRUE"
#> [1] "624 - TRUE"
#> [1] "625 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "626 - TRUE"
#> [1] "627 - TRUE"
#> [1] "628 - TRUE"
#> [1] "629 - TRUE"
#> [1] "630 - TRUE"
#> [1] "631 - TRUE"
#> [1] "632 - TRUE"
#> [1] "633 - TRUE"
#> [1] "634 - TRUE"
#> [1] "635 - TRUE"
#> [1] "636 - TRUE"
#> [1] "637 - TRUE"
#> [1] "638 - TRUE"
#> [1] "639 - TRUE"
#> [1] "640 - TRUE"
#> [1] "641 - TRUE"
#> [1] "642 - TRUE"
#> [1] "643 - TRUE"
#> [1] "644 - TRUE"
#> [1] "645 - TRUE"
#> [1] "646 - TRUE"
#> [1] "647 - TRUE"
#> [1] "648 - TRUE"
#> [1] "649 - TRUE"
#> [1] "650 - TRUE"
#> [1] "651 - TRUE"
#> [1] "652 - TRUE"
#> [1] "653 - TRUE"
#> [1] "654 - TRUE"
#> [1] "655 - TRUE"
#> [1] "656 - TRUE"
#> [1] "657 - TRUE"
#> [1] "658 - TRUE"
#> [1] "659 - TRUE"
#> [1] "660 - TRUE"
#> [1] "661 - TRUE"
#> [1] "662 - TRUE"
#> [1] "663 - TRUE"
#> [1] "664 - TRUE"
#> [1] "665 - TRUE"
#> [1] "666 - TRUE"
#> [1] "667 - TRUE"
#> [1] "668 - TRUE"
#> [1] "669 - TRUE"
#> [1] "670 - TRUE"
#> [1] "671 - TRUE"
#> [1] "672 - TRUE"
#> [1] "673 - TRUE"
#> [1] "674 - TRUE"
#> [1] "675 - TRUE"
#> [1] "676 - TRUE"
#> [1] "677 - TRUE"
#> [1] "678 - TRUE"
#> [1] "679 - TRUE"
#> [1] "680 - TRUE"
#> [1] "681 - TRUE"
#> [1] "682 - TRUE"
#> [1] "683 - TRUE"
#> [1] "684 - TRUE"
#> [1] "685 - TRUE"
#> [1] "686 - TRUE"
#> [1] "687 - TRUE"
#> [1] "688 - TRUE"
#> [1] "689 - TRUE"
#> [1] "690 - TRUE"
#> [1] "691 - TRUE"
#> [1] "692 - TRUE"
#> [1] "693 - TRUE"
#> [1] "694 - TRUE"
#> [1] "695 - TRUE"
#> [1] "696 - TRUE"
#> [1] "697 - TRUE"
#> [1] "698 - TRUE"
#> [1] "699 - TRUE"
#> [1] "700 - TRUE"
#> [1] "701 - TRUE"
#> [1] "702 - TRUE"
#> [1] "703 - TRUE"
#> [1] "704 - TRUE"
#> [1] "705 - TRUE"
#> [1] "706 - TRUE"
#> [1] "707 - TRUE"
#> [1] "708 - TRUE"
#> [1] "709 - TRUE"
#> [1] "710 - TRUE"
#> [1] "711 - TRUE"
#> [1] "712 - TRUE"
#> [1] "713 - TRUE"
#> [1] "714 - TRUE"
#> [1] "715 - TRUE"
#> [1] "716 - TRUE"
#> [1] "717 - TRUE"
#> [1] "718 - TRUE"
#> [1] "719 - TRUE"
#> [1] "720 - TRUE"
#> [1] "721 - TRUE"
#> [1] "722 - TRUE"
#> [1] "723 - TRUE"
#> [1] "724 - TRUE"
#> [1] "725 - TRUE"
#> [1] "726 - TRUE"
#> [1] "727 - TRUE"
#> [1] "728 - TRUE"
#> [1] "729 - TRUE"
#> [1] "730 - TRUE"
#> [1] "731 - TRUE"
#> [1] "732 - TRUE"
#> [1] "733 - TRUE"
#> [1] "734 - TRUE"
#> [1] "735 - TRUE"
#> [1] "736 - TRUE"
#> [1] "737 - TRUE"
#> [1] "738 - TRUE"
#> [1] "739 - TRUE"
#> [1] "740 - TRUE"
#> [1] "741 - TRUE"
#> [1] "742 - TRUE"
#> [1] "743 - TRUE"
#> [1] "744 - TRUE"
#> [1] "745 - TRUE"
#> [1] "746 - TRUE"
#> [1] "747 - TRUE"
#> [1] "748 - TRUE"
#> [1] "749 - TRUE"
#> [1] "750 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "751 - TRUE"
#> [1] "752 - TRUE"
#> [1] "753 - TRUE"
#> [1] "754 - TRUE"
#> [1] "755 - TRUE"
#> [1] "756 - TRUE"
#> [1] "757 - TRUE"
#> [1] "758 - TRUE"
#> [1] "759 - TRUE"
#> [1] "760 - TRUE"
#> [1] "761 - TRUE"
#> [1] "762 - TRUE"
#> [1] "763 - TRUE"
#> [1] "764 - TRUE"
#> [1] "765 - TRUE"
#> [1] "766 - TRUE"
#> [1] "767 - TRUE"
#> [1] "768 - TRUE"
#> [1] "769 - TRUE"
#> [1] "770 - TRUE"
#> [1] "771 - TRUE"
#> [1] "772 - TRUE"
#> [1] "773 - TRUE"
#> [1] "774 - TRUE"
#> [1] "775 - TRUE"
#> [1] "776 - TRUE"
#> [1] "777 - TRUE"
#> [1] "778 - TRUE"
#> [1] "779 - TRUE"
#> [1] "780 - TRUE"
#> [1] "781 - TRUE"
#> [1] "782 - TRUE"
#> [1] "783 - TRUE"
#> [1] "784 - TRUE"
#> [1] "785 - TRUE"
#> [1] "786 - TRUE"
#> [1] "787 - TRUE"
#> [1] "788 - TRUE"
#> [1] "789 - TRUE"
#> [1] "790 - TRUE"
#> [1] "791 - TRUE"
#> [1] "792 - TRUE"
#> [1] "793 - TRUE"
#> [1] "794 - TRUE"
#> [1] "795 - TRUE"
#> [1] "796 - TRUE"
#> [1] "797 - TRUE"
#> [1] "798 - TRUE"
#> [1] "799 - TRUE"
#> [1] "800 - TRUE"
#> [1] "801 - TRUE"
#> [1] "802 - TRUE"
#> [1] "803 - TRUE"
#> [1] "804 - TRUE"
#> [1] "805 - TRUE"
#> [1] "806 - TRUE"
#> [1] "807 - TRUE"
#> [1] "808 - TRUE"
#> [1] "809 - TRUE"
#> [1] "810 - TRUE"
#> [1] "811 - TRUE"
#> [1] "812 - TRUE"
#> [1] "813 - TRUE"
#> [1] "814 - TRUE"
#> [1] "815 - TRUE"
#> [1] "816 - TRUE"
#> [1] "817 - TRUE"
#> [1] "818 - TRUE"
#> [1] "819 - TRUE"
#> [1] "820 - TRUE"
#> [1] "821 - TRUE"
#> [1] "822 - TRUE"
#> [1] "823 - TRUE"
#> [1] "824 - TRUE"
#> [1] "825 - TRUE"
#> [1] "826 - TRUE"
#> [1] "827 - TRUE"
#> [1] "828 - TRUE"
#> [1] "829 - TRUE"
#> [1] "830 - TRUE"
#> [1] "831 - TRUE"
#> [1] "832 - TRUE"
#> [1] "833 - TRUE"
#> [1] "834 - TRUE"
#> [1] "835 - TRUE"
#> [1] "836 - TRUE"
#> [1] "837 - TRUE"
#> [1] "838 - TRUE"
#> [1] "839 - TRUE"
#> [1] "840 - TRUE"
#> [1] "841 - TRUE"
#> [1] "842 - TRUE"
#> [1] "843 - TRUE"
#> [1] "844 - TRUE"
#> [1] "845 - TRUE"
#> [1] "846 - TRUE"
#> [1] "847 - TRUE"
#> [1] "848 - TRUE"
#> [1] "849 - TRUE"
#> [1] "850 - TRUE"
#> [1] "851 - TRUE"
#> [1] "852 - TRUE"
#> [1] "853 - TRUE"
#> [1] "854 - TRUE"
#> [1] "855 - TRUE"
#> [1] "856 - TRUE"
#> [1] "857 - TRUE"
#> [1] "858 - TRUE"
#> [1] "859 - TRUE"
#> [1] "860 - TRUE"
#> [1] "861 - TRUE"
#> [1] "862 - TRUE"
#> [1] "863 - TRUE"
#> [1] "864 - TRUE"
#> [1] "865 - TRUE"
#> [1] "866 - TRUE"
#> [1] "867 - TRUE"
#> [1] "868 - TRUE"
#> [1] "869 - TRUE"
#> [1] "870 - TRUE"
#> [1] "871 - TRUE"
#> [1] "872 - TRUE"
#> [1] "873 - TRUE"
#> [1] "874 - TRUE"
#> [1] "875 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "876 - TRUE"
#> [1] "877 - TRUE"
#> [1] "878 - TRUE"
#> [1] "879 - database is locked"
#> [1] "880 - TRUE"
#> [1] "881 - TRUE"
#> [1] "882 - TRUE"
#> [1] "883 - TRUE"
#> [1] "884 - TRUE"
#> [1] "885 - TRUE"
#> [1] "886 - TRUE"
#> [1] "887 - TRUE"
#> [1] "888 - TRUE"
#> [1] "889 - TRUE"
#> [1] "890 - TRUE"
#> [1] "891 - TRUE"
#> [1] "892 - TRUE"
#> [1] "893 - TRUE"
#> [1] "894 - TRUE"
#> [1] "895 - TRUE"
#> [1] "896 - TRUE"
#> [1] "897 - TRUE"
#> [1] "898 - TRUE"
#> [1] "899 - TRUE"
#> [1] "900 - TRUE"
#> [1] "901 - TRUE"
#> [1] "902 - TRUE"
#> [1] "903 - TRUE"
#> [1] "904 - TRUE"
#> [1] "905 - TRUE"
#> [1] "906 - TRUE"
#> [1] "907 - TRUE"
#> [1] "908 - TRUE"
#> [1] "909 - TRUE"
#> [1] "910 - database is locked"
#> [1] "911 - TRUE"
#> [1] "912 - TRUE"
#> [1] "913 - TRUE"
#> [1] "914 - TRUE"
#> [1] "915 - TRUE"
#> [1] "916 - TRUE"
#> [1] "917 - TRUE"
#> [1] "918 - TRUE"
#> [1] "919 - TRUE"
#> [1] "920 - TRUE"
#> [1] "921 - TRUE"
#> [1] "922 - TRUE"
#> [1] "923 - TRUE"
#> [1] "924 - TRUE"
#> [1] "925 - TRUE"
#> [1] "926 - TRUE"
#> [1] "927 - TRUE"
#> [1] "928 - TRUE"
#> [1] "929 - TRUE"
#> [1] "930 - TRUE"
#> [1] "931 - TRUE"
#> [1] "932 - TRUE"
#> [1] "933 - TRUE"
#> [1] "934 - TRUE"
#> [1] "935 - TRUE"
#> [1] "936 - TRUE"
#> [1] "937 - TRUE"
#> [1] "938 - TRUE"
#> [1] "939 - TRUE"
#> [1] "940 - TRUE"
#> [1] "941 - TRUE"
#> [1] "942 - TRUE"
#> [1] "943 - TRUE"
#> [1] "944 - TRUE"
#> [1] "945 - TRUE"
#> [1] "946 - TRUE"
#> [1] "947 - TRUE"
#> [1] "948 - TRUE"
#> [1] "949 - TRUE"
#> [1] "950 - TRUE"
#> [1] "951 - TRUE"
#> [1] "952 - TRUE"
#> [1] "953 - TRUE"
#> [1] "954 - TRUE"
#> [1] "955 - TRUE"
#> [1] "956 - TRUE"
#> [1] "957 - TRUE"
#> [1] "958 - TRUE"
#> [1] "959 - TRUE"
#> [1] "960 - TRUE"
#> [1] "961 - TRUE"
#> [1] "962 - TRUE"
#> [1] "963 - TRUE"
#> [1] "964 - TRUE"
#> [1] "965 - TRUE"
#> [1] "966 - TRUE"
#> [1] "967 - TRUE"
#> [1] "968 - TRUE"
#> [1] "969 - TRUE"
#> [1] "970 - TRUE"
#> [1] "971 - TRUE"
#> [1] "972 - TRUE"
#> [1] "973 - TRUE"
#> [1] "974 - TRUE"
#> [1] "975 - TRUE"
#> [1] "976 - TRUE"
#> [1] "977 - TRUE"
#> [1] "978 - TRUE"
#> [1] "979 - TRUE"
#> [1] "980 - TRUE"
#> [1] "981 - TRUE"
#> [1] "982 - TRUE"
#> [1] "983 - TRUE"
#> [1] "984 - TRUE"
#> [1] "985 - TRUE"
#> [1] "986 - TRUE"
#> [1] "987 - TRUE"
#> [1] "988 - TRUE"
#> [1] "989 - TRUE"
#> [1] "990 - TRUE"
#> [1] "991 - TRUE"
#> [1] "992 - TRUE"
#> [1] "993 - TRUE"
#> [1] "994 - TRUE"
#> [1] "995 - TRUE"
#> [1] "996 - TRUE"
#> [1] "997 - TRUE"
#> [1] "998 - TRUE"
#> [1] "999 - TRUE"
#> [1] "1000 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.

###############################################################

con <- dbConnect(RSQLite::SQLite(), dbname = file.path("bd_test.db"))
dbGetQuery(con, "SELECT n_loop FROM tb_teste_iris ORDER BY n_loop")
#>     n_loop
#> 1        1
#> 2        2
#> 3        3
#> 4        4
#> 5        5
#> 6        6
#> 7        7
#> 8        8
#> 9        9
#> 10      10
#> 11      11
#> 12      12
#> 13      13
#> 14      14
#> 15      15
#> 16      16
#> 17      17
#> 18      18
#> 19      19
#> 20      20
#> 21      21
#> 22      22
#> 23      23
#> 24      24
#> 25      25
#> 26      26
#> 27      27
#> 28      28
#> 29      29
#> 30      30
#> 31      31
#> 32      32
#> 33      33
#> 34      34
#> 35      35
#> 36      36
#> 37      37
#> 38      38
#> 39      39
#> 40      40
#> 41      41
#> 42      42
#> 43      43
#> 44      44
#> 45      45
#> 46      46
#> 47      47
#> 48      48
#> 49      49
#> 50      50
#> 51      51
#> 52      52
#> 53      53
#> 54      54
#> 55      55
#> 56      56
#> 57      57
#> 58      58
#> 59      59
#> 60      60
#> 61      61
#> 62      62
#> 63      63
#> 64      65
#> 65      66
#> 66      67
#> 67      68
#> 68      69
#> 69      70
#> 70      71
#> 71      72
#> 72      73
#> 73      74
#> 74      75
#> 75      76
#> 76      77
#> 77      78
#> 78      79
#> 79      80
#> 80      81
#> 81      82
#> 82      84
#> 83      85
#> 84      86
#> 85      87
#> 86      88
#> 87      89
#> 88      90
#> 89      91
#> 90      92
#> 91      93
#> 92      94
#> 93      95
#> 94      96
#> 95      97
#> 96      98
#> 97      99
#> 98     100
#> 99     101
#> 100    102
#> 101    103
#> 102    104
#> 103    105
#> 104    106
#> 105    107
#> 106    108
#> 107    109
#> 108    110
#> 109    111
#> 110    112
#> 111    113
#> 112    114
#> 113    115
#> 114    116
#> 115    117
#> 116    118
#> 117    119
#> 118    120
#> 119    121
#> 120    122
#> 121    123
#> 122    124
#> 123    125
#> 124    126
#> 125    127
#> 126    128
#> 127    129
#> 128    130
#> 129    131
#> 130    132
#> 131    133
#> 132    134
#> 133    135
#> 134    136
#> 135    137
#> 136    138
#> 137    139
#> 138    140
#> 139    141
#> 140    142
#> 141    143
#> 142    144
#> 143    145
#> 144    146
#> 145    147
#> 146    148
#> 147    149
#> 148    150
#> 149    151
#> 150    152
#> 151    153
#> 152    154
#> 153    155
#> 154    156
#> 155    157
#> 156    158
#> 157    159
#> 158    160
#> 159    161
#> 160    162
#> 161    163
#> 162    164
#> 163    165
#> 164    166
#> 165    167
#> 166    168
#> 167    169
#> 168    170
#> 169    171
#> 170    172
#> 171    173
#> 172    174
#> 173    175
#> 174    176
#> 175    177
#> 176    178
#> 177    179
#> 178    180
#> 179    181
#> 180    182
#> 181    183
#> 182    184
#> 183    185
#> 184    186
#> 185    187
#> 186    188
#> 187    189
#> 188    190
#> 189    191
#> 190    192
#> 191    193
#> 192    194
#> 193    195
#> 194    196
#> 195    197
#> 196    198
#> 197    199
#> 198    200
#> 199    201
#> 200    202
#> 201    203
#> 202    204
#> 203    205
#> 204    206
#> 205    207
#> 206    208
#> 207    209
#> 208    210
#> 209    211
#> 210    212
#> 211    213
#> 212    214
#> 213    215
#> 214    216
#> 215    217
#> 216    218
#> 217    219
#> 218    220
#> 219    221
#> 220    222
#> 221    223
#> 222    224
#> 223    225
#> 224    226
#> 225    227
#> 226    228
#> 227    229
#> 228    230
#> 229    231
#> 230    232
#> 231    233
#> 232    234
#> 233    235
#> 234    236
#> 235    237
#> 236    238
#> 237    239
#> 238    240
#> 239    241
#> 240    242
#> 241    243
#> 242    244
#> 243    245
#> 244    246
#> 245    247
#> 246    248
#> 247    249
#> 248    250
#> 249    251
#> 250    252
#> 251    253
#> 252    254
#> 253    255
#> 254    256
#> 255    257
#> 256    258
#> 257    259
#> 258    260
#> 259    261
#> 260    262
#> 261    263
#> 262    264
#> 263    265
#> 264    266
#> 265    267
#> 266    268
#> 267    269
#> 268    270
#> 269    271
#> 270    272
#> 271    273
#> 272    274
#> 273    275
#> 274    276
#> 275    277
#> 276    278
#> 277    279
#> 278    280
#> 279    281
#> 280    282
#> 281    283
#> 282    284
#> 283    285
#> 284    286
#> 285    287
#> 286    288
#> 287    289
#> 288    290
#> 289    291
#> 290    292
#> 291    293
#> 292    294
#> 293    295
#> 294    296
#> 295    297
#> 296    298
#> 297    299
#> 298    301
#> 299    302
#> 300    303
#> 301    304
#> 302    305
#> 303    306
#> 304    307
#> 305    308
#> 306    309
#> 307    310
#> 308    311
#> 309    312
#> 310    313
#> 311    314
#> 312    315
#> 313    316
#> 314    317
#> 315    318
#> 316    319
#> 317    320
#> 318    321
#> 319    322
#> 320    323
#> 321    324
#> 322    325
#> 323    326
#> 324    327
#> 325    328
#> 326    329
#> 327    330
#> 328    331
#> 329    332
#> 330    333
#> 331    334
#> 332    335
#> 333    336
#> 334    337
#> 335    338
#> 336    339
#> 337    340
#> 338    341
#> 339    342
#> 340    343
#> 341    344
#> 342    345
#> 343    346
#> 344    347
#> 345    348
#> 346    349
#> 347    350
#> 348    351
#> 349    352
#> 350    353
#> 351    354
#> 352    355
#> 353    356
#> 354    357
#> 355    358
#> 356    359
#> 357    360
#> 358    361
#> 359    362
#> 360    363
#> 361    364
#> 362    365
#> 363    366
#> 364    367
#> 365    368
#> 366    369
#> 367    370
#> 368    371
#> 369    372
#> 370    373
#> 371    374
#> 372    375
#> 373    376
#> 374    377
#> 375    378
#> 376    379
#> 377    380
#> 378    381
#> 379    383
#> 380    384
#> 381    385
#> 382    386
#> 383    387
#> 384    388
#> 385    389
#> 386    390
#> 387    391
#> 388    392
#> 389    393
#> 390    394
#> 391    395
#> 392    396
#> 393    397
#> 394    398
#> 395    399
#> 396    400
#> 397    401
#> 398    402
#> 399    403
#> 400    404
#> 401    405
#> 402    406
#> 403    407
#> 404    408
#> 405    409
#> 406    410
#> 407    411
#> 408    412
#> 409    413
#> 410    414
#> 411    415
#> 412    416
#> 413    417
#> 414    418
#> 415    419
#> 416    420
#> 417    421
#> 418    422
#> 419    423
#> 420    424
#> 421    425
#> 422    426
#> 423    427
#> 424    428
#> 425    429
#> 426    430
#> 427    431
#> 428    432
#> 429    433
#> 430    434
#> 431    435
#> 432    436
#> 433    437
#> 434    438
#> 435    439
#> 436    440
#> 437    441
#> 438    442
#> 439    444
#> 440    445
#> 441    446
#> 442    447
#> 443    448
#> 444    449
#> 445    450
#> 446    451
#> 447    452
#> 448    453
#> 449    454
#> 450    455
#> 451    456
#> 452    457
#> 453    458
#> 454    459
#> 455    460
#> 456    461
#> 457    462
#> 458    463
#> 459    464
#> 460    465
#> 461    466
#> 462    467
#> 463    468
#> 464    469
#> 465    470
#> 466    472
#> 467    473
#> 468    474
#> 469    475
#> 470    476
#> 471    477
#> 472    478
#> 473    479
#> 474    480
#> 475    481
#> 476    482
#> 477    483
#> 478    484
#> 479    485
#> 480    486
#> 481    487
#> 482    488
#> 483    489
#> 484    490
#> 485    491
#> 486    492
#> 487    493
#> 488    494
#> 489    495
#> 490    496
#> 491    497
#> 492    498
#> 493    499
#> 494    500
#> 495    501
#> 496    502
#> 497    503
#> 498    504
#> 499    505
#> 500    506
#> 501    507
#> 502    508
#> 503    509
#> 504    510
#> 505    511
#> 506    512
#> 507    513
#> 508    514
#> 509    515
#> 510    516
#> 511    517
#> 512    518
#> 513    519
#> 514    520
#> 515    521
#> 516    522
#> 517    523
#> 518    524
#> 519    525
#> 520    526
#> 521    527
#> 522    528
#> 523    529
#> 524    530
#> 525    531
#> 526    532
#> 527    533
#> 528    534
#> 529    535
#> 530    536
#> 531    537
#> 532    538
#> 533    539
#> 534    540
#> 535    541
#> 536    542
#> 537    543
#> 538    544
#> 539    545
#> 540    546
#> 541    547
#> 542    548
#> 543    549
#> 544    550
#> 545    551
#> 546    552
#> 547    553
#> 548    554
#> 549    555
#> 550    556
#> 551    557
#> 552    558
#> 553    559
#> 554    560
#> 555    561
#> 556    562
#> 557    563
#> 558    564
#> 559    565
#> 560    566
#> 561    567
#> 562    568
#> 563    569
#> 564    570
#> 565    571
#> 566    572
#> 567    573
#> 568    574
#> 569    575
#> 570    576
#> 571    577
#> 572    578
#> 573    579
#> 574    580
#> 575    581
#> 576    583
#> 577    584
#> 578    585
#> 579    586
#> 580    587
#> 581    588
#> 582    589
#> 583    590
#> 584    591
#> 585    592
#> 586    593
#> 587    594
#> 588    595
#> 589    596
#> 590    597
#> 591    598
#> 592    599
#> 593    600
#> 594    601
#> 595    602
#> 596    603
#> 597    604
#> 598    605
#> 599    607
#> 600    608
#> 601    609
#> 602    610
#> 603    611
#> 604    612
#> 605    613
#> 606    614
#> 607    615
#> 608    616
#> 609    617
#> 610    618
#> 611    619
#> 612    620
#> 613    621
#> 614    622
#> 615    623
#> 616    624
#> 617    625
#> 618    626
#> 619    627
#> 620    628
#> 621    629
#> 622    630
#> 623    631
#> 624    632
#> 625    633
#> 626    634
#> 627    635
#> 628    636
#> 629    637
#> 630    638
#> 631    639
#> 632    640
#> 633    641
#> 634    642
#> 635    643
#> 636    644
#> 637    645
#> 638    646
#> 639    647
#> 640    648
#> 641    649
#> 642    650
#> 643    651
#> 644    652
#> 645    653
#> 646    654
#> 647    655
#> 648    656
#> 649    657
#> 650    658
#> 651    659
#> 652    660
#> 653    661
#> 654    662
#> 655    663
#> 656    664
#> 657    665
#> 658    666
#> 659    667
#> 660    668
#> 661    669
#> 662    670
#> 663    671
#> 664    672
#> 665    673
#> 666    674
#> 667    675
#> 668    676
#> 669    677
#> 670    678
#> 671    679
#> 672    680
#> 673    681
#> 674    682
#> 675    683
#> 676    684
#> 677    685
#> 678    686
#> 679    687
#> 680    688
#> 681    689
#> 682    690
#> 683    691
#> 684    692
#> 685    693
#> 686    694
#> 687    695
#> 688    696
#> 689    697
#> 690    698
#> 691    699
#> 692    700
#> 693    701
#> 694    702
#> 695    703
#> 696    704
#> 697    705
#> 698    706
#> 699    707
#> 700    708
#> 701    709
#> 702    710
#> 703    711
#> 704    712
#> 705    713
#> 706    714
#> 707    715
#> 708    716
#> 709    717
#> 710    718
#> 711    719
#> 712    720
#> 713    721
#> 714    722
#> 715    723
#> 716    724
#> 717    725
#> 718    726
#> 719    727
#> 720    728
#> 721    729
#> 722    730
#> 723    731
#> 724    732
#> 725    733
#> 726    734
#> 727    735
#> 728    736
#> 729    737
#> 730    738
#> 731    739
#> 732    740
#> 733    741
#> 734    742
#> 735    743
#> 736    744
#> 737    745
#> 738    746
#> 739    747
#> 740    748
#> 741    749
#> 742    750
#> 743    751
#> 744    752
#> 745    753
#> 746    754
#> 747    755
#> 748    756
#> 749    757
#> 750    758
#> 751    759
#> 752    760
#> 753    761
#> 754    762
#> 755    763
#> 756    764
#> 757    765
#> 758    766
#> 759    767
#> 760    768
#> 761    769
#> 762    770
#> 763    771
#> 764    772
#> 765    773
#> 766    774
#> 767    775
#> 768    776
#> 769    777
#> 770    778
#> 771    779
#> 772    780
#> 773    781
#> 774    782
#> 775    783
#> 776    784
#> 777    785
#> 778    786
#> 779    787
#> 780    788
#> 781    789
#> 782    790
#> 783    791
#> 784    792
#> 785    793
#> 786    794
#> 787    795
#> 788    796
#> 789    797
#> 790    798
#> 791    799
#> 792    800
#> 793    801
#> 794    802
#> 795    803
#> 796    804
#> 797    805
#> 798    806
#> 799    807
#> 800    808
#> 801    809
#> 802    810
#> 803    811
#> 804    812
#> 805    813
#> 806    814
#> 807    815
#> 808    816
#> 809    817
#> 810    818
#> 811    819
#> 812    820
#> 813    821
#> 814    822
#> 815    823
#> 816    824
#> 817    825
#> 818    826
#> 819    827
#> 820    828
#> 821    829
#> 822    830
#> 823    831
#> 824    832
#> 825    833
#> 826    834
#> 827    835
#> 828    836
#> 829    837
#> 830    838
#> 831    839
#> 832    840
#> 833    841
#> 834    842
#> 835    843
#> 836    844
#> 837    845
#> 838    846
#> 839    847
#> 840    848
#> 841    849
#> 842    850
#> 843    851
#> 844    852
#> 845    853
#> 846    854
#> 847    855
#> 848    856
#> 849    857
#> 850    858
#> 851    859
#> 852    860
#> 853    861
#> 854    862
#> 855    863
#> 856    864
#> 857    865
#> 858    866
#> 859    867
#> 860    868
#> 861    869
#> 862    870
#> 863    871
#> 864    872
#> 865    873
#> 866    874
#> 867    875
#> 868    876
#> 869    877
#> 870    878
#> 871    880
#> 872    881
#> 873    882
#> 874    883
#> 875    884
#> 876    885
#> 877    886
#> 878    887
#> 879    888
#> 880    889
#> 881    890
#> 882    891
#> 883    892
#> 884    893
#> 885    894
#> 886    895
#> 887    896
#> 888    897
#> 889    898
#> 890    899
#> 891    900
#> 892    901
#> 893    902
#> 894    903
#> 895    904
#> 896    905
#> 897    906
#> 898    907
#> 899    908
#> 900    909
#> 901    911
#> 902    912
#> 903    913
#> 904    914
#> 905    915
#> 906    916
#> 907    917
#> 908    918
#> 909    919
#> 910    920
#> 911    921
#> 912    922
#> 913    923
#> 914    924
#> 915    925
#> 916    926
#> 917    927
#> 918    928
#> 919    929
#> 920    930
#> 921    931
#> 922    932
#> 923    933
#> 924    934
#> 925    935
#> 926    936
#> 927    937
#> 928    938
#> 929    939
#> 930    940
#> 931    941
#> 932    942
#> 933    943
#> 934    944
#> 935    945
#> 936    946
#> 937    947
#> 938    948
#> 939    949
#> 940    950
#> 941    951
#> 942    952
#> 943    953
#> 944    954
#> 945    955
#> 946    956
#> 947    957
#> 948    958
#> 949    959
#> 950    960
#> 951    961
#> 952    962
#> 953    963
#> 954    964
#> 955    965
#> 956    966
#> 957    967
#> 958    968
#> 959    969
#> 960    970
#> 961    971
#> 962    972
#> 963    973
#> 964    974
#> 965    975
#> 966    976
#> 967    977
#> 968    978
#> 969    979
#> 970    980
#> 971    981
#> 972    982
#> 973    983
#> 974    984
#> 975    985
#> 976    986
#> 977    987
#> 978    988
#> 979    989
#> 980    990
#> 981    991
#> 982    992
#> 983    993
#> 984    994
#> 985    995
#> 986    996
#> 987    997
#> 988    998
#> 989    999
#> 990   1000

Created on 2021-01-10 by the reprex package (v0.3.0)

georgevbsantiago commented 3 years ago

My reprex also had problems. The console reports that the 30 loops were successfully executed, so there should be 4500 lines. But the database only has 4050.

BD SQLite: bd_teste.zip

library(DBI)
library(RSQLite)
library(furrr)
#> Warning: package 'furrr' was built under R version 4.0.3
#> Carregando pacotes exigidos: future
library(future)
library(magrittr)
#> Warning: package 'magrittr' was built under R version 4.0.3
library(purrr)
#> 
#> Attaching package: 'purrr'
#> The following object is masked from 'package:magrittr':
#> 
#>     set_names

n_teste <- 1:30

unlink("bd_test.db")

connect_sgbd <- function() {

        conexao <- DBI::dbConnect(RSQLite::SQLite(),
                       dbname = file.path("bd_teste.db"))

        return(conexao)

}

teste_write_sqlite <- function(n_teste) {

        tb_teste_iris <- iris %>%
                dplyr::mutate(n_loop = n_teste)

        tentativas <- purrr::rate_delay(pause = 2,
                                        max_times = 20)

        insist_write_sqlite <- purrr::insistently(DBI::dbWriteTable,
                                                  tentativas,
                                                  quiet = FALSE)

        safely_write_sqlite <- purrr::safely(insist_write_sqlite)

        conn <- connect_sgbd()

        safely_write_sqlite_teste <- safely_write_sqlite(conn,
                                                         "tb_teste_iris",
                                                         tb_teste_iris,
                                                         append = TRUE)

        if(is.null(safely_write_sqlite_teste$error) == FALSE){

                DBI::dbDisconnect(conn)

                return(
                        print(paste(n_teste, "-", "Failed to write"))
                        )

                }

        DBI::dbDisconnect(conn)

        print(paste(n_teste, "-", safely_write_sqlite_teste$result))

}

future::plan("multisession",
             workers = 5)

furrr::future_walk(n_teste, teste_write_sqlite, .progress = TRUE)
#> [1] "1 - TRUE"
#> [1] "2 - TRUE"
#> [1] "3 - TRUE"
#> [1] "4 - TRUE"
#> [1] "5 - TRUE"
#> [1] "6 - TRUE"
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".
#> [1] "7 - TRUE"
#> [1] "8 - TRUE"
#> [1] "9 - TRUE"
#> [1] "10 - TRUE"
#> [1] "11 - TRUE"
#> [1] "12 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Warning: Closing open result set, pending rows
#> Error: database is locked
#> Retrying in 2 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".
#> [1] "13 - TRUE"
#> [1] "14 - TRUE"
#> [1] "15 - TRUE"
#> [1] "16 - TRUE"
#> [1] "17 - TRUE"
#> [1] "18 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".
#> [1] "19 - TRUE"
#> [1] "20 - TRUE"
#> [1] "21 - TRUE"
#> [1] "22 - TRUE"
#> [1] "23 - TRUE"
#> [1] "24 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".
#> [1] "25 - TRUE"
#> [1] "26 - TRUE"
#> [1] "27 - TRUE"
#> [1] "28 - TRUE"
#> [1] "29 - TRUE"
#> [1] "30 - TRUE"
#> Warning: Couldn't set synchronous mode: database is locked
#> Use `synchronous` = NULL to turn off this warning.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Warning: UNRELIABLE VALUE: Future ('<none>') unexpectedly generated random
#> numbers without specifying argument 'seed'. There is a risk that those random
#> numbers are not statistically sound and the overall results might be invalid.
#> To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random
#> numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use
#> 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".

Created on 2021-01-11 by the reprex package (v0.3.0)

krlmlr commented 3 years ago

Thanks. I think it's okay for the first reprex to create fewer records than expected -- the dbWriteTable() still can fail. What happens if you also run dbWriteTable() with purrr::insistently() ?

georgevbsantiago commented 3 years ago

Was this the example?

Reprex: 994 lines were recorded

library(DBI)
library(RSQLite)
library(furrr)
#> Warning: package 'furrr' was built under R version 4.0.3
#> Carregando pacotes exigidos: future
#> Loading required package: future
library(future)
library(magrittr)
#> Warning: package 'magrittr' was built under R version 4.0.3
library(purrr)
#> 
#> Attaching package: 'purrr'
#> The following object is masked from 'package:magrittr':
#> 
#>     set_names
#> 
#> Attaching package: 'purrr'
#> The following object is masked from 'package:magrittr':
#> 
#>     set_names

n_teste <- 1:1000

unlink("bd_test.db")

connect_sgbd <- function() {
        conexao <- DBI::dbConnect(RSQLite::SQLite(),
                                  dbname = file.path("bd_test.db")
        )

        return(conexao)
}

teste_write_sqlite <- function(n_teste) {

        tb_teste_iris <- iris[1, ] %>%
                dplyr::mutate(n_loop = n_teste)

        tentativas <- purrr::rate_delay(pause = 2,
                                        max_times = 20
                                        )

        insist_execute_sqlite <- purrr::insistently(DBI::dbExecute, 
                                                    tentativas,
                                                    quiet = FALSE
                                                    )

        insist_dbWriteTable <- purrr::insistently(DBI::dbWriteTable,
                                                  tentativas,
                                                  quiet = FALSE
                                                  )

        conn <- connect_sgbd()
        on.exit(dbDisconnect(conn))

        tryCatch(
                {
                        insist_execute_sqlite(conn, "BEGIN IMMEDIATE TRANSACTION")
                        # Rollback on failure
                        on.exit(try(dbExecute(conn, "ROLLBACK TRANSACTION")))
                        out <- insist_dbWriteTable(conn, "tb_teste_iris", tb_teste_iris, append = TRUE)
                        dbExecute(conn, "COMMIT TRANSACTION")

                        # Don't rollback on success
                        on.exit(NULL)
                        print(paste(n_teste, "-", out))
                },
                error = function(e) {
                        print(paste(n_teste, "-", conditionMessage(e)))
                }
        )
}

future::plan("multisession",
             workers = 8
)

options(future.rng.onMisuse = "ignore")

furrr::future_walk(n_teste, teste_write_sqlite, .progress = TRUE)
#> [1] "1 - TRUE"
#> [1] "2 - TRUE"
#> [1] "3 - TRUE"
#> [1] "4 - TRUE"
#> [1] "5 - TRUE"
#> [1] "6 - TRUE"
#> [1] "7 - TRUE"
#> [1] "8 - TRUE"
#> [1] "9 - TRUE"
#> [1] "10 - TRUE"
#> [1] "11 - TRUE"
#> [1] "12 - TRUE"
#> [1] "13 - TRUE"
#> [1] "14 - TRUE"
#> [1] "15 - TRUE"
#> [1] "16 - TRUE"
#> [1] "17 - TRUE"
#> [1] "18 - TRUE"
#> [1] "19 - TRUE"
#> [1] "20 - TRUE"
#> [1] "21 - TRUE"
#> [1] "22 - TRUE"
#> [1] "23 - TRUE"
#> [1] "24 - TRUE"
#> [1] "25 - TRUE"
#> [1] "26 - TRUE"
#> [1] "27 - TRUE"
#> [1] "28 - TRUE"
#> [1] "29 - TRUE"
#> [1] "30 - TRUE"
#> [1] "31 - TRUE"
#> [1] "32 - TRUE"
#> [1] "33 - TRUE"
#> [1] "34 - TRUE"
#> [1] "35 - TRUE"
#> [1] "36 - TRUE"
#> [1] "37 - TRUE"
#> [1] "38 - TRUE"
#> [1] "39 - TRUE"
#> [1] "40 - TRUE"
#> [1] "41 - TRUE"
#> [1] "42 - TRUE"
#> [1] "43 - TRUE"
#> [1] "44 - TRUE"
#> [1] "45 - database is locked"
#> [1] "46 - TRUE"
#> [1] "47 - TRUE"
#> [1] "48 - TRUE"
#> [1] "49 - TRUE"
#> [1] "50 - TRUE"
#> [1] "51 - TRUE"
#> [1] "52 - TRUE"
#> [1] "53 - TRUE"
#> [1] "54 - TRUE"
#> [1] "55 - TRUE"
#> [1] "56 - TRUE"
#> [1] "57 - TRUE"
#> [1] "58 - TRUE"
#> [1] "59 - TRUE"
#> [1] "60 - TRUE"
#> [1] "61 - TRUE"
#> [1] "62 - TRUE"
#> [1] "63 - TRUE"
#> [1] "64 - TRUE"
#> [1] "65 - TRUE"
#> [1] "66 - TRUE"
#> [1] "67 - TRUE"
#> [1] "68 - TRUE"
#> [1] "69 - TRUE"
#> [1] "70 - TRUE"
#> [1] "71 - TRUE"
#> [1] "72 - TRUE"
#> [1] "73 - TRUE"
#> [1] "74 - TRUE"
#> [1] "75 - TRUE"
#> [1] "76 - TRUE"
#> [1] "77 - TRUE"
#> [1] "78 - TRUE"
#> [1] "79 - TRUE"
#> [1] "80 - TRUE"
#> [1] "81 - TRUE"
#> [1] "82 - TRUE"
#> [1] "83 - TRUE"
#> [1] "84 - TRUE"
#> [1] "85 - TRUE"
#> [1] "86 - TRUE"
#> [1] "87 - TRUE"
#> [1] "88 - TRUE"
#> [1] "89 - TRUE"
#> [1] "90 - TRUE"
#> [1] "91 - TRUE"
#> [1] "92 - TRUE"
#> [1] "93 - TRUE"
#> [1] "94 - TRUE"
#> [1] "95 - TRUE"
#> [1] "96 - TRUE"
#> [1] "97 - TRUE"
#> [1] "98 - TRUE"
#> [1] "99 - TRUE"
#> [1] "100 - TRUE"
#> [1] "101 - TRUE"
#> [1] "102 - TRUE"
#> [1] "103 - TRUE"
#> [1] "104 - TRUE"
#> [1] "105 - TRUE"
#> [1] "106 - TRUE"
#> [1] "107 - TRUE"
#> [1] "108 - TRUE"
#> [1] "109 - TRUE"
#> [1] "110 - TRUE"
#> [1] "111 - TRUE"
#> [1] "112 - TRUE"
#> [1] "113 - TRUE"
#> [1] "114 - TRUE"
#> [1] "115 - TRUE"
#> [1] "116 - TRUE"
#> [1] "117 - TRUE"
#> [1] "118 - TRUE"
#> [1] "119 - TRUE"
#> [1] "120 - TRUE"
#> [1] "121 - TRUE"
#> [1] "122 - TRUE"
#> [1] "123 - TRUE"
#> [1] "124 - TRUE"
#> [1] "125 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "126 - TRUE"
#> [1] "127 - TRUE"
#> [1] "128 - TRUE"
#> [1] "129 - TRUE"
#> [1] "130 - TRUE"
#> [1] "131 - TRUE"
#> [1] "132 - TRUE"
#> [1] "133 - TRUE"
#> [1] "134 - TRUE"
#> [1] "135 - TRUE"
#> [1] "136 - TRUE"
#> [1] "137 - TRUE"
#> [1] "138 - TRUE"
#> [1] "139 - TRUE"
#> [1] "140 - TRUE"
#> [1] "141 - TRUE"
#> [1] "142 - TRUE"
#> [1] "143 - TRUE"
#> [1] "144 - TRUE"
#> [1] "145 - TRUE"
#> [1] "146 - database is locked"
#> [1] "147 - TRUE"
#> [1] "148 - TRUE"
#> [1] "149 - TRUE"
#> [1] "150 - TRUE"
#> [1] "151 - TRUE"
#> [1] "152 - TRUE"
#> [1] "153 - TRUE"
#> [1] "154 - TRUE"
#> [1] "155 - TRUE"
#> [1] "156 - TRUE"
#> [1] "157 - TRUE"
#> [1] "158 - TRUE"
#> [1] "159 - TRUE"
#> [1] "160 - TRUE"
#> [1] "161 - TRUE"
#> [1] "162 - TRUE"
#> [1] "163 - TRUE"
#> [1] "164 - database is locked"
#> [1] "165 - TRUE"
#> [1] "166 - TRUE"
#> [1] "167 - TRUE"
#> [1] "168 - TRUE"
#> [1] "169 - TRUE"
#> [1] "170 - TRUE"
#> [1] "171 - TRUE"
#> [1] "172 - TRUE"
#> [1] "173 - TRUE"
#> [1] "174 - TRUE"
#> [1] "175 - TRUE"
#> [1] "176 - TRUE"
#> [1] "177 - TRUE"
#> [1] "178 - TRUE"
#> [1] "179 - TRUE"
#> [1] "180 - TRUE"
#> [1] "181 - TRUE"
#> [1] "182 - TRUE"
#> [1] "183 - TRUE"
#> [1] "184 - TRUE"
#> [1] "185 - TRUE"
#> [1] "186 - TRUE"
#> [1] "187 - TRUE"
#> [1] "188 - TRUE"
#> [1] "189 - TRUE"
#> [1] "190 - TRUE"
#> [1] "191 - TRUE"
#> [1] "192 - TRUE"
#> [1] "193 - TRUE"
#> [1] "194 - TRUE"
#> [1] "195 - TRUE"
#> [1] "196 - TRUE"
#> [1] "197 - TRUE"
#> [1] "198 - TRUE"
#> [1] "199 - TRUE"
#> [1] "200 - TRUE"
#> [1] "201 - TRUE"
#> [1] "202 - TRUE"
#> [1] "203 - TRUE"
#> [1] "204 - TRUE"
#> [1] "205 - TRUE"
#> [1] "206 - TRUE"
#> [1] "207 - TRUE"
#> [1] "208 - TRUE"
#> [1] "209 - TRUE"
#> [1] "210 - TRUE"
#> [1] "211 - TRUE"
#> [1] "212 - TRUE"
#> [1] "213 - TRUE"
#> [1] "214 - TRUE"
#> [1] "215 - TRUE"
#> [1] "216 - TRUE"
#> [1] "217 - TRUE"
#> [1] "218 - TRUE"
#> [1] "219 - TRUE"
#> [1] "220 - TRUE"
#> [1] "221 - TRUE"
#> [1] "222 - TRUE"
#> [1] "223 - TRUE"
#> [1] "224 - TRUE"
#> [1] "225 - TRUE"
#> [1] "226 - TRUE"
#> [1] "227 - TRUE"
#> [1] "228 - TRUE"
#> [1] "229 - TRUE"
#> [1] "230 - TRUE"
#> [1] "231 - TRUE"
#> [1] "232 - TRUE"
#> [1] "233 - TRUE"
#> [1] "234 - TRUE"
#> [1] "235 - TRUE"
#> [1] "236 - TRUE"
#> [1] "237 - TRUE"
#> [1] "238 - database is locked"
#> [1] "239 - TRUE"
#> [1] "240 - TRUE"
#> [1] "241 - TRUE"
#> [1] "242 - TRUE"
#> [1] "243 - TRUE"
#> [1] "244 - TRUE"
#> [1] "245 - TRUE"
#> [1] "246 - TRUE"
#> [1] "247 - TRUE"
#> [1] "248 - TRUE"
#> [1] "249 - TRUE"
#> [1] "250 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "251 - TRUE"
#> [1] "252 - TRUE"
#> [1] "253 - TRUE"
#> [1] "254 - TRUE"
#> [1] "255 - TRUE"
#> [1] "256 - TRUE"
#> [1] "257 - TRUE"
#> [1] "258 - TRUE"
#> [1] "259 - TRUE"
#> [1] "260 - TRUE"
#> [1] "261 - TRUE"
#> [1] "262 - TRUE"
#> [1] "263 - TRUE"
#> [1] "264 - TRUE"
#> [1] "265 - TRUE"
#> [1] "266 - TRUE"
#> [1] "267 - TRUE"
#> [1] "268 - TRUE"
#> [1] "269 - TRUE"
#> [1] "270 - TRUE"
#> [1] "271 - TRUE"
#> [1] "272 - TRUE"
#> [1] "273 - TRUE"
#> [1] "274 - TRUE"
#> [1] "275 - TRUE"
#> [1] "276 - TRUE"
#> [1] "277 - TRUE"
#> [1] "278 - TRUE"
#> [1] "279 - TRUE"
#> [1] "280 - TRUE"
#> [1] "281 - TRUE"
#> [1] "282 - TRUE"
#> [1] "283 - TRUE"
#> [1] "284 - TRUE"
#> [1] "285 - TRUE"
#> [1] "286 - TRUE"
#> [1] "287 - TRUE"
#> [1] "288 - TRUE"
#> [1] "289 - TRUE"
#> [1] "290 - TRUE"
#> [1] "291 - TRUE"
#> [1] "292 - TRUE"
#> [1] "293 - TRUE"
#> [1] "294 - TRUE"
#> [1] "295 - TRUE"
#> [1] "296 - TRUE"
#> [1] "297 - TRUE"
#> [1] "298 - TRUE"
#> [1] "299 - TRUE"
#> [1] "300 - TRUE"
#> [1] "301 - TRUE"
#> [1] "302 - TRUE"
#> [1] "303 - TRUE"
#> [1] "304 - TRUE"
#> [1] "305 - TRUE"
#> [1] "306 - TRUE"
#> [1] "307 - TRUE"
#> [1] "308 - TRUE"
#> [1] "309 - TRUE"
#> [1] "310 - TRUE"
#> [1] "311 - TRUE"
#> [1] "312 - TRUE"
#> [1] "313 - TRUE"
#> [1] "314 - TRUE"
#> [1] "315 - TRUE"
#> [1] "316 - TRUE"
#> [1] "317 - TRUE"
#> [1] "318 - TRUE"
#> [1] "319 - TRUE"
#> [1] "320 - TRUE"
#> [1] "321 - TRUE"
#> [1] "322 - TRUE"
#> [1] "323 - TRUE"
#> [1] "324 - TRUE"
#> [1] "325 - TRUE"
#> [1] "326 - TRUE"
#> [1] "327 - TRUE"
#> [1] "328 - TRUE"
#> [1] "329 - TRUE"
#> [1] "330 - TRUE"
#> [1] "331 - TRUE"
#> [1] "332 - TRUE"
#> [1] "333 - TRUE"
#> [1] "334 - TRUE"
#> [1] "335 - TRUE"
#> [1] "336 - TRUE"
#> [1] "337 - TRUE"
#> [1] "338 - TRUE"
#> [1] "339 - TRUE"
#> [1] "340 - TRUE"
#> [1] "341 - TRUE"
#> [1] "342 - TRUE"
#> [1] "343 - TRUE"
#> [1] "344 - TRUE"
#> [1] "345 - TRUE"
#> [1] "346 - TRUE"
#> [1] "347 - TRUE"
#> [1] "348 - TRUE"
#> [1] "349 - TRUE"
#> [1] "350 - TRUE"
#> [1] "351 - TRUE"
#> [1] "352 - TRUE"
#> [1] "353 - TRUE"
#> [1] "354 - TRUE"
#> [1] "355 - TRUE"
#> [1] "356 - TRUE"
#> [1] "357 - TRUE"
#> [1] "358 - TRUE"
#> [1] "359 - TRUE"
#> [1] "360 - TRUE"
#> [1] "361 - TRUE"
#> [1] "362 - TRUE"
#> [1] "363 - TRUE"
#> [1] "364 - TRUE"
#> [1] "365 - TRUE"
#> [1] "366 - TRUE"
#> [1] "367 - TRUE"
#> [1] "368 - TRUE"
#> [1] "369 - TRUE"
#> [1] "370 - TRUE"
#> [1] "371 - TRUE"
#> [1] "372 - TRUE"
#> [1] "373 - TRUE"
#> [1] "374 - TRUE"
#> [1] "375 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "376 - TRUE"
#> [1] "377 - TRUE"
#> [1] "378 - TRUE"
#> [1] "379 - TRUE"
#> [1] "380 - TRUE"
#> [1] "381 - TRUE"
#> [1] "382 - TRUE"
#> [1] "383 - TRUE"
#> [1] "384 - TRUE"
#> [1] "385 - TRUE"
#> [1] "386 - TRUE"
#> [1] "387 - TRUE"
#> [1] "388 - TRUE"
#> [1] "389 - TRUE"
#> [1] "390 - TRUE"
#> [1] "391 - TRUE"
#> [1] "392 - TRUE"
#> [1] "393 - TRUE"
#> [1] "394 - TRUE"
#> [1] "395 - TRUE"
#> [1] "396 - TRUE"
#> [1] "397 - TRUE"
#> [1] "398 - TRUE"
#> [1] "399 - TRUE"
#> [1] "400 - TRUE"
#> [1] "401 - TRUE"
#> [1] "402 - TRUE"
#> [1] "403 - TRUE"
#> [1] "404 - TRUE"
#> [1] "405 - TRUE"
#> [1] "406 - TRUE"
#> [1] "407 - TRUE"
#> [1] "408 - TRUE"
#> [1] "409 - TRUE"
#> [1] "410 - TRUE"
#> [1] "411 - TRUE"
#> [1] "412 - TRUE"
#> [1] "413 - TRUE"
#> [1] "414 - TRUE"
#> [1] "415 - TRUE"
#> [1] "416 - TRUE"
#> [1] "417 - TRUE"
#> [1] "418 - TRUE"
#> [1] "419 - TRUE"
#> [1] "420 - TRUE"
#> [1] "421 - TRUE"
#> [1] "422 - TRUE"
#> [1] "423 - TRUE"
#> [1] "424 - TRUE"
#> [1] "425 - TRUE"
#> [1] "426 - TRUE"
#> [1] "427 - TRUE"
#> [1] "428 - TRUE"
#> [1] "429 - TRUE"
#> [1] "430 - TRUE"
#> [1] "431 - TRUE"
#> [1] "432 - TRUE"
#> [1] "433 - TRUE"
#> [1] "434 - TRUE"
#> [1] "435 - TRUE"
#> [1] "436 - TRUE"
#> [1] "437 - TRUE"
#> [1] "438 - TRUE"
#> [1] "439 - TRUE"
#> [1] "440 - TRUE"
#> [1] "441 - TRUE"
#> [1] "442 - TRUE"
#> [1] "443 - TRUE"
#> [1] "444 - TRUE"
#> [1] "445 - TRUE"
#> [1] "446 - TRUE"
#> [1] "447 - TRUE"
#> [1] "448 - TRUE"
#> [1] "449 - TRUE"
#> [1] "450 - TRUE"
#> [1] "451 - TRUE"
#> [1] "452 - TRUE"
#> [1] "453 - TRUE"
#> [1] "454 - TRUE"
#> [1] "455 - TRUE"
#> [1] "456 - TRUE"
#> [1] "457 - TRUE"
#> [1] "458 - TRUE"
#> [1] "459 - TRUE"
#> [1] "460 - TRUE"
#> [1] "461 - TRUE"
#> [1] "462 - TRUE"
#> [1] "463 - TRUE"
#> [1] "464 - TRUE"
#> [1] "465 - TRUE"
#> [1] "466 - TRUE"
#> [1] "467 - TRUE"
#> [1] "468 - TRUE"
#> [1] "469 - TRUE"
#> [1] "470 - TRUE"
#> [1] "471 - TRUE"
#> [1] "472 - TRUE"
#> [1] "473 - TRUE"
#> [1] "474 - TRUE"
#> [1] "475 - TRUE"
#> [1] "476 - TRUE"
#> [1] "477 - TRUE"
#> [1] "478 - TRUE"
#> [1] "479 - TRUE"
#> [1] "480 - TRUE"
#> [1] "481 - TRUE"
#> [1] "482 - TRUE"
#> [1] "483 - TRUE"
#> [1] "484 - TRUE"
#> [1] "485 - TRUE"
#> [1] "486 - TRUE"
#> [1] "487 - TRUE"
#> [1] "488 - TRUE"
#> [1] "489 - TRUE"
#> [1] "490 - TRUE"
#> [1] "491 - TRUE"
#> [1] "492 - TRUE"
#> [1] "493 - TRUE"
#> [1] "494 - TRUE"
#> [1] "495 - TRUE"
#> [1] "496 - TRUE"
#> [1] "497 - TRUE"
#> [1] "498 - TRUE"
#> [1] "499 - TRUE"
#> [1] "500 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "501 - TRUE"
#> [1] "502 - TRUE"
#> [1] "503 - TRUE"
#> [1] "504 - TRUE"
#> [1] "505 - TRUE"
#> [1] "506 - TRUE"
#> [1] "507 - TRUE"
#> [1] "508 - TRUE"
#> [1] "509 - TRUE"
#> [1] "510 - TRUE"
#> [1] "511 - TRUE"
#> [1] "512 - TRUE"
#> [1] "513 - TRUE"
#> [1] "514 - TRUE"
#> [1] "515 - TRUE"
#> [1] "516 - TRUE"
#> [1] "517 - TRUE"
#> [1] "518 - TRUE"
#> [1] "519 - TRUE"
#> [1] "520 - TRUE"
#> [1] "521 - TRUE"
#> [1] "522 - TRUE"
#> [1] "523 - TRUE"
#> [1] "524 - TRUE"
#> [1] "525 - TRUE"
#> [1] "526 - TRUE"
#> [1] "527 - TRUE"
#> [1] "528 - TRUE"
#> [1] "529 - TRUE"
#> [1] "530 - TRUE"
#> [1] "531 - TRUE"
#> [1] "532 - TRUE"
#> [1] "533 - TRUE"
#> [1] "534 - TRUE"
#> [1] "535 - TRUE"
#> [1] "536 - TRUE"
#> [1] "537 - TRUE"
#> [1] "538 - TRUE"
#> [1] "539 - TRUE"
#> [1] "540 - TRUE"
#> [1] "541 - TRUE"
#> [1] "542 - TRUE"
#> [1] "543 - TRUE"
#> [1] "544 - TRUE"
#> [1] "545 - TRUE"
#> [1] "546 - TRUE"
#> [1] "547 - TRUE"
#> [1] "548 - TRUE"
#> [1] "549 - TRUE"
#> [1] "550 - TRUE"
#> [1] "551 - TRUE"
#> [1] "552 - TRUE"
#> [1] "553 - TRUE"
#> [1] "554 - TRUE"
#> [1] "555 - TRUE"
#> [1] "556 - TRUE"
#> [1] "557 - TRUE"
#> [1] "558 - TRUE"
#> [1] "559 - TRUE"
#> [1] "560 - TRUE"
#> [1] "561 - TRUE"
#> [1] "562 - TRUE"
#> [1] "563 - TRUE"
#> [1] "564 - TRUE"
#> [1] "565 - TRUE"
#> [1] "566 - TRUE"
#> [1] "567 - TRUE"
#> [1] "568 - TRUE"
#> [1] "569 - TRUE"
#> [1] "570 - TRUE"
#> [1] "571 - TRUE"
#> [1] "572 - TRUE"
#> [1] "573 - TRUE"
#> [1] "574 - TRUE"
#> [1] "575 - TRUE"
#> [1] "576 - TRUE"
#> [1] "577 - TRUE"
#> [1] "578 - TRUE"
#> [1] "579 - TRUE"
#> [1] "580 - TRUE"
#> [1] "581 - TRUE"
#> [1] "582 - TRUE"
#> [1] "583 - TRUE"
#> [1] "584 - TRUE"
#> [1] "585 - TRUE"
#> [1] "586 - TRUE"
#> [1] "587 - TRUE"
#> [1] "588 - TRUE"
#> [1] "589 - TRUE"
#> [1] "590 - TRUE"
#> [1] "591 - TRUE"
#> [1] "592 - TRUE"
#> [1] "593 - TRUE"
#> [1] "594 - TRUE"
#> [1] "595 - TRUE"
#> [1] "596 - TRUE"
#> [1] "597 - TRUE"
#> [1] "598 - TRUE"
#> [1] "599 - TRUE"
#> [1] "600 - TRUE"
#> [1] "601 - TRUE"
#> [1] "602 - TRUE"
#> [1] "603 - TRUE"
#> [1] "604 - TRUE"
#> [1] "605 - TRUE"
#> [1] "606 - TRUE"
#> [1] "607 - TRUE"
#> [1] "608 - TRUE"
#> [1] "609 - TRUE"
#> [1] "610 - TRUE"
#> [1] "611 - TRUE"
#> [1] "612 - TRUE"
#> [1] "613 - TRUE"
#> [1] "614 - TRUE"
#> [1] "615 - TRUE"
#> [1] "616 - TRUE"
#> [1] "617 - TRUE"
#> [1] "618 - TRUE"
#> [1] "619 - TRUE"
#> [1] "620 - TRUE"
#> [1] "621 - TRUE"
#> [1] "622 - TRUE"
#> [1] "623 - TRUE"
#> [1] "624 - TRUE"
#> [1] "625 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "626 - TRUE"
#> [1] "627 - TRUE"
#> [1] "628 - TRUE"
#> [1] "629 - TRUE"
#> [1] "630 - TRUE"
#> [1] "631 - TRUE"
#> [1] "632 - TRUE"
#> [1] "633 - TRUE"
#> [1] "634 - TRUE"
#> [1] "635 - TRUE"
#> [1] "636 - TRUE"
#> [1] "637 - TRUE"
#> [1] "638 - TRUE"
#> [1] "639 - TRUE"
#> [1] "640 - database is locked"
#> [1] "641 - TRUE"
#> [1] "642 - TRUE"
#> [1] "643 - TRUE"
#> [1] "644 - TRUE"
#> [1] "645 - TRUE"
#> [1] "646 - TRUE"
#> [1] "647 - TRUE"
#> [1] "648 - TRUE"
#> [1] "649 - TRUE"
#> [1] "650 - TRUE"
#> [1] "651 - TRUE"
#> [1] "652 - TRUE"
#> [1] "653 - TRUE"
#> [1] "654 - TRUE"
#> [1] "655 - TRUE"
#> [1] "656 - TRUE"
#> [1] "657 - TRUE"
#> [1] "658 - TRUE"
#> [1] "659 - TRUE"
#> [1] "660 - TRUE"
#> [1] "661 - TRUE"
#> [1] "662 - TRUE"
#> [1] "663 - TRUE"
#> [1] "664 - TRUE"
#> [1] "665 - TRUE"
#> [1] "666 - TRUE"
#> [1] "667 - TRUE"
#> [1] "668 - TRUE"
#> [1] "669 - TRUE"
#> [1] "670 - TRUE"
#> [1] "671 - TRUE"
#> [1] "672 - TRUE"
#> [1] "673 - TRUE"
#> [1] "674 - TRUE"
#> [1] "675 - TRUE"
#> [1] "676 - TRUE"
#> [1] "677 - TRUE"
#> [1] "678 - TRUE"
#> [1] "679 - TRUE"
#> [1] "680 - TRUE"
#> [1] "681 - TRUE"
#> [1] "682 - TRUE"
#> [1] "683 - TRUE"
#> [1] "684 - TRUE"
#> [1] "685 - TRUE"
#> [1] "686 - TRUE"
#> [1] "687 - TRUE"
#> [1] "688 - TRUE"
#> [1] "689 - TRUE"
#> [1] "690 - TRUE"
#> [1] "691 - TRUE"
#> [1] "692 - TRUE"
#> [1] "693 - TRUE"
#> [1] "694 - TRUE"
#> [1] "695 - TRUE"
#> [1] "696 - TRUE"
#> [1] "697 - TRUE"
#> [1] "698 - TRUE"
#> [1] "699 - TRUE"
#> [1] "700 - TRUE"
#> [1] "701 - TRUE"
#> [1] "702 - TRUE"
#> [1] "703 - TRUE"
#> [1] "704 - TRUE"
#> [1] "705 - TRUE"
#> [1] "706 - TRUE"
#> [1] "707 - TRUE"
#> [1] "708 - TRUE"
#> [1] "709 - TRUE"
#> [1] "710 - TRUE"
#> [1] "711 - TRUE"
#> [1] "712 - TRUE"
#> [1] "713 - TRUE"
#> [1] "714 - TRUE"
#> [1] "715 - TRUE"
#> [1] "716 - TRUE"
#> [1] "717 - TRUE"
#> [1] "718 - TRUE"
#> [1] "719 - TRUE"
#> [1] "720 - TRUE"
#> [1] "721 - TRUE"
#> [1] "722 - TRUE"
#> [1] "723 - TRUE"
#> [1] "724 - TRUE"
#> [1] "725 - TRUE"
#> [1] "726 - TRUE"
#> [1] "727 - TRUE"
#> [1] "728 - TRUE"
#> [1] "729 - TRUE"
#> [1] "730 - TRUE"
#> [1] "731 - TRUE"
#> [1] "732 - TRUE"
#> [1] "733 - TRUE"
#> [1] "734 - TRUE"
#> [1] "735 - TRUE"
#> [1] "736 - TRUE"
#> [1] "737 - TRUE"
#> [1] "738 - TRUE"
#> [1] "739 - TRUE"
#> [1] "740 - TRUE"
#> [1] "741 - TRUE"
#> [1] "742 - TRUE"
#> [1] "743 - TRUE"
#> [1] "744 - TRUE"
#> [1] "745 - TRUE"
#> [1] "746 - TRUE"
#> [1] "747 - TRUE"
#> [1] "748 - TRUE"
#> [1] "749 - TRUE"
#> [1] "750 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "751 - TRUE"
#> [1] "752 - TRUE"
#> [1] "753 - TRUE"
#> [1] "754 - database is locked"
#> [1] "755 - TRUE"
#> [1] "756 - TRUE"
#> [1] "757 - TRUE"
#> [1] "758 - TRUE"
#> [1] "759 - TRUE"
#> [1] "760 - TRUE"
#> [1] "761 - TRUE"
#> [1] "762 - TRUE"
#> [1] "763 - TRUE"
#> [1] "764 - TRUE"
#> [1] "765 - TRUE"
#> [1] "766 - TRUE"
#> [1] "767 - TRUE"
#> [1] "768 - TRUE"
#> [1] "769 - TRUE"
#> [1] "770 - TRUE"
#> [1] "771 - TRUE"
#> [1] "772 - TRUE"
#> [1] "773 - TRUE"
#> [1] "774 - TRUE"
#> [1] "775 - TRUE"
#> [1] "776 - TRUE"
#> [1] "777 - TRUE"
#> [1] "778 - TRUE"
#> [1] "779 - TRUE"
#> [1] "780 - TRUE"
#> [1] "781 - TRUE"
#> [1] "782 - TRUE"
#> [1] "783 - TRUE"
#> [1] "784 - TRUE"
#> [1] "785 - TRUE"
#> [1] "786 - TRUE"
#> [1] "787 - TRUE"
#> [1] "788 - TRUE"
#> [1] "789 - TRUE"
#> [1] "790 - TRUE"
#> [1] "791 - TRUE"
#> [1] "792 - TRUE"
#> [1] "793 - TRUE"
#> [1] "794 - TRUE"
#> [1] "795 - TRUE"
#> [1] "796 - TRUE"
#> [1] "797 - TRUE"
#> [1] "798 - TRUE"
#> [1] "799 - TRUE"
#> [1] "800 - TRUE"
#> [1] "801 - TRUE"
#> [1] "802 - TRUE"
#> [1] "803 - TRUE"
#> [1] "804 - TRUE"
#> [1] "805 - TRUE"
#> [1] "806 - TRUE"
#> [1] "807 - TRUE"
#> [1] "808 - TRUE"
#> [1] "809 - TRUE"
#> [1] "810 - TRUE"
#> [1] "811 - TRUE"
#> [1] "812 - TRUE"
#> [1] "813 - TRUE"
#> [1] "814 - TRUE"
#> [1] "815 - TRUE"
#> [1] "816 - TRUE"
#> [1] "817 - TRUE"
#> [1] "818 - TRUE"
#> [1] "819 - TRUE"
#> [1] "820 - TRUE"
#> [1] "821 - TRUE"
#> [1] "822 - TRUE"
#> [1] "823 - TRUE"
#> [1] "824 - TRUE"
#> [1] "825 - TRUE"
#> [1] "826 - TRUE"
#> [1] "827 - TRUE"
#> [1] "828 - TRUE"
#> [1] "829 - TRUE"
#> [1] "830 - TRUE"
#> [1] "831 - TRUE"
#> [1] "832 - TRUE"
#> [1] "833 - TRUE"
#> [1] "834 - TRUE"
#> [1] "835 - TRUE"
#> [1] "836 - TRUE"
#> [1] "837 - TRUE"
#> [1] "838 - TRUE"
#> [1] "839 - TRUE"
#> [1] "840 - TRUE"
#> [1] "841 - TRUE"
#> [1] "842 - TRUE"
#> [1] "843 - TRUE"
#> [1] "844 - TRUE"
#> [1] "845 - TRUE"
#> [1] "846 - TRUE"
#> [1] "847 - TRUE"
#> [1] "848 - TRUE"
#> [1] "849 - TRUE"
#> [1] "850 - TRUE"
#> [1] "851 - TRUE"
#> [1] "852 - TRUE"
#> [1] "853 - TRUE"
#> [1] "854 - TRUE"
#> [1] "855 - TRUE"
#> [1] "856 - TRUE"
#> [1] "857 - TRUE"
#> [1] "858 - TRUE"
#> [1] "859 - TRUE"
#> [1] "860 - TRUE"
#> [1] "861 - TRUE"
#> [1] "862 - TRUE"
#> [1] "863 - TRUE"
#> [1] "864 - TRUE"
#> [1] "865 - TRUE"
#> [1] "866 - TRUE"
#> [1] "867 - TRUE"
#> [1] "868 - TRUE"
#> [1] "869 - TRUE"
#> [1] "870 - TRUE"
#> [1] "871 - TRUE"
#> [1] "872 - TRUE"
#> [1] "873 - TRUE"
#> [1] "874 - TRUE"
#> [1] "875 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "876 - TRUE"
#> [1] "877 - TRUE"
#> [1] "878 - TRUE"
#> [1] "879 - TRUE"
#> [1] "880 - TRUE"
#> [1] "881 - TRUE"
#> [1] "882 - TRUE"
#> [1] "883 - TRUE"
#> [1] "884 - TRUE"
#> [1] "885 - TRUE"
#> [1] "886 - TRUE"
#> [1] "887 - TRUE"
#> [1] "888 - TRUE"
#> [1] "889 - TRUE"
#> [1] "890 - TRUE"
#> [1] "891 - TRUE"
#> [1] "892 - TRUE"
#> [1] "893 - TRUE"
#> [1] "894 - TRUE"
#> [1] "895 - TRUE"
#> [1] "896 - TRUE"
#> [1] "897 - TRUE"
#> [1] "898 - TRUE"
#> [1] "899 - TRUE"
#> [1] "900 - TRUE"
#> [1] "901 - TRUE"
#> [1] "902 - TRUE"
#> [1] "903 - TRUE"
#> [1] "904 - TRUE"
#> [1] "905 - TRUE"
#> [1] "906 - TRUE"
#> [1] "907 - TRUE"
#> [1] "908 - TRUE"
#> [1] "909 - TRUE"
#> [1] "910 - TRUE"
#> [1] "911 - TRUE"
#> [1] "912 - TRUE"
#> [1] "913 - TRUE"
#> [1] "914 - TRUE"
#> [1] "915 - TRUE"
#> [1] "916 - TRUE"
#> [1] "917 - TRUE"
#> [1] "918 - TRUE"
#> [1] "919 - TRUE"
#> [1] "920 - TRUE"
#> [1] "921 - TRUE"
#> [1] "922 - TRUE"
#> [1] "923 - TRUE"
#> [1] "924 - TRUE"
#> [1] "925 - TRUE"
#> [1] "926 - TRUE"
#> [1] "927 - TRUE"
#> [1] "928 - TRUE"
#> [1] "929 - TRUE"
#> [1] "930 - TRUE"
#> [1] "931 - TRUE"
#> [1] "932 - TRUE"
#> [1] "933 - TRUE"
#> [1] "934 - TRUE"
#> [1] "935 - TRUE"
#> [1] "936 - TRUE"
#> [1] "937 - TRUE"
#> [1] "938 - TRUE"
#> [1] "939 - TRUE"
#> [1] "940 - TRUE"
#> [1] "941 - TRUE"
#> [1] "942 - TRUE"
#> [1] "943 - TRUE"
#> [1] "944 - TRUE"
#> [1] "945 - TRUE"
#> [1] "946 - TRUE"
#> [1] "947 - TRUE"
#> [1] "948 - TRUE"
#> [1] "949 - TRUE"
#> [1] "950 - TRUE"
#> [1] "951 - TRUE"
#> [1] "952 - TRUE"
#> [1] "953 - TRUE"
#> [1] "954 - TRUE"
#> [1] "955 - TRUE"
#> [1] "956 - TRUE"
#> [1] "957 - TRUE"
#> [1] "958 - TRUE"
#> [1] "959 - TRUE"
#> [1] "960 - TRUE"
#> [1] "961 - TRUE"
#> [1] "962 - TRUE"
#> [1] "963 - TRUE"
#> [1] "964 - TRUE"
#> [1] "965 - TRUE"
#> [1] "966 - TRUE"
#> [1] "967 - TRUE"
#> [1] "968 - TRUE"
#> [1] "969 - TRUE"
#> [1] "970 - TRUE"
#> [1] "971 - TRUE"
#> [1] "972 - TRUE"
#> [1] "973 - TRUE"
#> [1] "974 - TRUE"
#> [1] "975 - TRUE"
#> [1] "976 - TRUE"
#> [1] "977 - TRUE"
#> [1] "978 - TRUE"
#> [1] "979 - TRUE"
#> [1] "980 - TRUE"
#> [1] "981 - TRUE"
#> [1] "982 - TRUE"
#> [1] "983 - TRUE"
#> [1] "984 - TRUE"
#> [1] "985 - TRUE"
#> [1] "986 - TRUE"
#> [1] "987 - TRUE"
#> [1] "988 - TRUE"
#> [1] "989 - TRUE"
#> [1] "990 - TRUE"
#> [1] "991 - TRUE"
#> [1] "992 - TRUE"
#> [1] "993 - TRUE"
#> [1] "994 - TRUE"
#> [1] "995 - TRUE"
#> [1] "996 - TRUE"
#> [1] "997 - TRUE"
#> [1] "998 - TRUE"
#> [1] "999 - TRUE"
#> [1] "1000 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.

con <- dbConnect(RSQLite::SQLite(), dbname = file.path("bd_test.db"))
dbGetQuery(con, "SELECT n_loop FROM tb_teste_iris ORDER BY n_loop")
#>     n_loop
#> 1        1
#> 2        2
#> 3        3
#> 4        4
#> 5        5
#> 6        6
#> 7        7
#> 8        8
#> 9        9
#> 10      10
#> 11      11
#> 12      12
#> 13      13
#> 14      14
#> 15      15
#> 16      16
#> 17      17
#> 18      18
#> 19      19
#> 20      20
#> 21      21
#> 22      22
#> 23      23
#> 24      24
#> 25      25
#> 26      26
#> 27      27
#> 28      28
#> 29      29
#> 30      30
#> 31      31
#> 32      32
#> 33      33
#> 34      34
#> 35      35
#> 36      36
#> 37      37
#> 38      38
#> 39      39
#> 40      40
#> 41      41
#> 42      42
#> 43      43
#> 44      44
#> 45      46
#> 46      47
#> 47      48
#> 48      49
#> 49      50
#> 50      51
#> 51      52
#> 52      53
#> 53      54
#> 54      55
#> 55      56
#> 56      57
#> 57      58
#> 58      59
#> 59      60
#> 60      61
#> 61      62
#> 62      63
#> 63      64
#> 64      65
#> 65      66
#> 66      67
#> 67      68
#> 68      69
#> 69      70
#> 70      71
#> 71      72
#> 72      73
#> 73      74
#> 74      75
#> 75      76
#> 76      77
#> 77      78
#> 78      79
#> 79      80
#> 80      81
#> 81      82
#> 82      83
#> 83      84
#> 84      85
#> 85      86
#> 86      87
#> 87      88
#> 88      89
#> 89      90
#> 90      91
#> 91      92
#> 92      93
#> 93      94
#> 94      95
#> 95      96
#> 96      97
#> 97      98
#> 98      99
#> 99     100
#> 100    101
#> 101    102
#> 102    103
#> 103    104
#> 104    105
#> 105    106
#> 106    107
#> 107    108
#> 108    109
#> 109    110
#> 110    111
#> 111    112
#> 112    113
#> 113    114
#> 114    115
#> 115    116
#> 116    117
#> 117    118
#> 118    119
#> 119    120
#> 120    121
#> 121    122
#> 122    123
#> 123    124
#> 124    125
#> 125    126
#> 126    127
#> 127    128
#> 128    129
#> 129    130
#> 130    131
#> 131    132
#> 132    133
#> 133    134
#> 134    135
#> 135    136
#> 136    137
#> 137    138
#> 138    139
#> 139    140
#> 140    141
#> 141    142
#> 142    143
#> 143    144
#> 144    145
#> 145    147
#> 146    148
#> 147    149
#> 148    150
#> 149    151
#> 150    152
#> 151    153
#> 152    154
#> 153    155
#> 154    156
#> 155    157
#> 156    158
#> 157    159
#> 158    160
#> 159    161
#> 160    162
#> 161    163
#> 162    165
#> 163    166
#> 164    167
#> 165    168
#> 166    169
#> 167    170
#> 168    171
#> 169    172
#> 170    173
#> 171    174
#> 172    175
#> 173    176
#> 174    177
#> 175    178
#> 176    179
#> 177    180
#> 178    181
#> 179    182
#> 180    183
#> 181    184
#> 182    185
#> 183    186
#> 184    187
#> 185    188
#> 186    189
#> 187    190
#> 188    191
#> 189    192
#> 190    193
#> 191    194
#> 192    195
#> 193    196
#> 194    197
#> 195    198
#> 196    199
#> 197    200
#> 198    201
#> 199    202
#> 200    203
#> 201    204
#> 202    205
#> 203    206
#> 204    207
#> 205    208
#> 206    209
#> 207    210
#> 208    211
#> 209    212
#> 210    213
#> 211    214
#> 212    215
#> 213    216
#> 214    217
#> 215    218
#> 216    219
#> 217    220
#> 218    221
#> 219    222
#> 220    223
#> 221    224
#> 222    225
#> 223    226
#> 224    227
#> 225    228
#> 226    229
#> 227    230
#> 228    231
#> 229    232
#> 230    233
#> 231    234
#> 232    235
#> 233    236
#> 234    237
#> 235    239
#> 236    240
#> 237    241
#> 238    242
#> 239    243
#> 240    244
#> 241    245
#> 242    246
#> 243    247
#> 244    248
#> 245    249
#> 246    250
#> 247    251
#> 248    252
#> 249    253
#> 250    254
#> 251    255
#> 252    256
#> 253    257
#> 254    258
#> 255    259
#> 256    260
#> 257    261
#> 258    262
#> 259    263
#> 260    264
#> 261    265
#> 262    266
#> 263    267
#> 264    268
#> 265    269
#> 266    270
#> 267    271
#> 268    272
#> 269    273
#> 270    274
#> 271    275
#> 272    276
#> 273    277
#> 274    278
#> 275    279
#> 276    280
#> 277    281
#> 278    282
#> 279    283
#> 280    284
#> 281    285
#> 282    286
#> 283    287
#> 284    288
#> 285    289
#> 286    290
#> 287    291
#> 288    292
#> 289    293
#> 290    294
#> 291    295
#> 292    296
#> 293    297
#> 294    298
#> 295    299
#> 296    300
#> 297    301
#> 298    302
#> 299    303
#> 300    304
#> 301    305
#> 302    306
#> 303    307
#> 304    308
#> 305    309
#> 306    310
#> 307    311
#> 308    312
#> 309    313
#> 310    314
#> 311    315
#> 312    316
#> 313    317
#> 314    318
#> 315    319
#> 316    320
#> 317    321
#> 318    322
#> 319    323
#> 320    324
#> 321    325
#> 322    326
#> 323    327
#> 324    328
#> 325    329
#> 326    330
#> 327    331
#> 328    332
#> 329    333
#> 330    334
#> 331    335
#> 332    336
#> 333    337
#> 334    338
#> 335    339
#> 336    340
#> 337    341
#> 338    342
#> 339    343
#> 340    344
#> 341    345
#> 342    346
#> 343    347
#> 344    348
#> 345    349
#> 346    350
#> 347    351
#> 348    352
#> 349    353
#> 350    354
#> 351    355
#> 352    356
#> 353    357
#> 354    358
#> 355    359
#> 356    360
#> 357    361
#> 358    362
#> 359    363
#> 360    364
#> 361    365
#> 362    366
#> 363    367
#> 364    368
#> 365    369
#> 366    370
#> 367    371
#> 368    372
#> 369    373
#> 370    374
#> 371    375
#> 372    376
#> 373    377
#> 374    378
#> 375    379
#> 376    380
#> 377    381
#> 378    382
#> 379    383
#> 380    384
#> 381    385
#> 382    386
#> 383    387
#> 384    388
#> 385    389
#> 386    390
#> 387    391
#> 388    392
#> 389    393
#> 390    394
#> 391    395
#> 392    396
#> 393    397
#> 394    398
#> 395    399
#> 396    400
#> 397    401
#> 398    402
#> 399    403
#> 400    404
#> 401    405
#> 402    406
#> 403    407
#> 404    408
#> 405    409
#> 406    410
#> 407    411
#> 408    412
#> 409    413
#> 410    414
#> 411    415
#> 412    416
#> 413    417
#> 414    418
#> 415    419
#> 416    420
#> 417    421
#> 418    422
#> 419    423
#> 420    424
#> 421    425
#> 422    426
#> 423    427
#> 424    428
#> 425    429
#> 426    430
#> 427    431
#> 428    432
#> 429    433
#> 430    434
#> 431    435
#> 432    436
#> 433    437
#> 434    438
#> 435    439
#> 436    440
#> 437    441
#> 438    442
#> 439    443
#> 440    444
#> 441    445
#> 442    446
#> 443    447
#> 444    448
#> 445    449
#> 446    450
#> 447    451
#> 448    452
#> 449    453
#> 450    454
#> 451    455
#> 452    456
#> 453    457
#> 454    458
#> 455    459
#> 456    460
#> 457    461
#> 458    462
#> 459    463
#> 460    464
#> 461    465
#> 462    466
#> 463    467
#> 464    468
#> 465    469
#> 466    470
#> 467    471
#> 468    472
#> 469    473
#> 470    474
#> 471    475
#> 472    476
#> 473    477
#> 474    478
#> 475    479
#> 476    480
#> 477    481
#> 478    482
#> 479    483
#> 480    484
#> 481    485
#> 482    486
#> 483    487
#> 484    488
#> 485    489
#> 486    490
#> 487    491
#> 488    492
#> 489    493
#> 490    494
#> 491    495
#> 492    496
#> 493    497
#> 494    498
#> 495    499
#> 496    500
#> 497    501
#> 498    502
#> 499    503
#> 500    504
#> 501    505
#> 502    506
#> 503    507
#> 504    508
#> 505    509
#> 506    510
#> 507    511
#> 508    512
#> 509    513
#> 510    514
#> 511    515
#> 512    516
#> 513    517
#> 514    518
#> 515    519
#> 516    520
#> 517    521
#> 518    522
#> 519    523
#> 520    524
#> 521    525
#> 522    526
#> 523    527
#> 524    528
#> 525    529
#> 526    530
#> 527    531
#> 528    532
#> 529    533
#> 530    534
#> 531    535
#> 532    536
#> 533    537
#> 534    538
#> 535    539
#> 536    540
#> 537    541
#> 538    542
#> 539    543
#> 540    544
#> 541    545
#> 542    546
#> 543    547
#> 544    548
#> 545    549
#> 546    550
#> 547    551
#> 548    552
#> 549    553
#> 550    554
#> 551    555
#> 552    556
#> 553    557
#> 554    558
#> 555    559
#> 556    560
#> 557    561
#> 558    562
#> 559    563
#> 560    564
#> 561    565
#> 562    566
#> 563    567
#> 564    568
#> 565    569
#> 566    570
#> 567    571
#> 568    572
#> 569    573
#> 570    574
#> 571    575
#> 572    576
#> 573    577
#> 574    578
#> 575    579
#> 576    580
#> 577    581
#> 578    582
#> 579    583
#> 580    584
#> 581    585
#> 582    586
#> 583    587
#> 584    588
#> 585    589
#> 586    590
#> 587    591
#> 588    592
#> 589    593
#> 590    594
#> 591    595
#> 592    596
#> 593    597
#> 594    598
#> 595    599
#> 596    600
#> 597    601
#> 598    602
#> 599    603
#> 600    604
#> 601    605
#> 602    606
#> 603    607
#> 604    608
#> 605    609
#> 606    610
#> 607    611
#> 608    612
#> 609    613
#> 610    614
#> 611    615
#> 612    616
#> 613    617
#> 614    618
#> 615    619
#> 616    620
#> 617    621
#> 618    622
#> 619    623
#> 620    624
#> 621    625
#> 622    626
#> 623    627
#> 624    628
#> 625    629
#> 626    630
#> 627    631
#> 628    632
#> 629    633
#> 630    634
#> 631    635
#> 632    636
#> 633    637
#> 634    638
#> 635    639
#> 636    641
#> 637    642
#> 638    643
#> 639    644
#> 640    645
#> 641    646
#> 642    647
#> 643    648
#> 644    649
#> 645    650
#> 646    651
#> 647    652
#> 648    653
#> 649    654
#> 650    655
#> 651    656
#> 652    657
#> 653    658
#> 654    659
#> 655    660
#> 656    661
#> 657    662
#> 658    663
#> 659    664
#> 660    665
#> 661    666
#> 662    667
#> 663    668
#> 664    669
#> 665    670
#> 666    671
#> 667    672
#> 668    673
#> 669    674
#> 670    675
#> 671    676
#> 672    677
#> 673    678
#> 674    679
#> 675    680
#> 676    681
#> 677    682
#> 678    683
#> 679    684
#> 680    685
#> 681    686
#> 682    687
#> 683    688
#> 684    689
#> 685    690
#> 686    691
#> 687    692
#> 688    693
#> 689    694
#> 690    695
#> 691    696
#> 692    697
#> 693    698
#> 694    699
#> 695    700
#> 696    701
#> 697    702
#> 698    703
#> 699    704
#> 700    705
#> 701    706
#> 702    707
#> 703    708
#> 704    709
#> 705    710
#> 706    711
#> 707    712
#> 708    713
#> 709    714
#> 710    715
#> 711    716
#> 712    717
#> 713    718
#> 714    719
#> 715    720
#> 716    721
#> 717    722
#> 718    723
#> 719    724
#> 720    725
#> 721    726
#> 722    727
#> 723    728
#> 724    729
#> 725    730
#> 726    731
#> 727    732
#> 728    733
#> 729    734
#> 730    735
#> 731    736
#> 732    737
#> 733    738
#> 734    739
#> 735    740
#> 736    741
#> 737    742
#> 738    743
#> 739    744
#> 740    745
#> 741    746
#> 742    747
#> 743    748
#> 744    749
#> 745    750
#> 746    751
#> 747    752
#> 748    753
#> 749    755
#> 750    756
#> 751    757
#> 752    758
#> 753    759
#> 754    760
#> 755    761
#> 756    762
#> 757    763
#> 758    764
#> 759    765
#> 760    766
#> 761    767
#> 762    768
#> 763    769
#> 764    770
#> 765    771
#> 766    772
#> 767    773
#> 768    774
#> 769    775
#> 770    776
#> 771    777
#> 772    778
#> 773    779
#> 774    780
#> 775    781
#> 776    782
#> 777    783
#> 778    784
#> 779    785
#> 780    786
#> 781    787
#> 782    788
#> 783    789
#> 784    790
#> 785    791
#> 786    792
#> 787    793
#> 788    794
#> 789    795
#> 790    796
#> 791    797
#> 792    798
#> 793    799
#> 794    800
#> 795    801
#> 796    802
#> 797    803
#> 798    804
#> 799    805
#> 800    806
#> 801    807
#> 802    808
#> 803    809
#> 804    810
#> 805    811
#> 806    812
#> 807    813
#> 808    814
#> 809    815
#> 810    816
#> 811    817
#> 812    818
#> 813    819
#> 814    820
#> 815    821
#> 816    822
#> 817    823
#> 818    824
#> 819    825
#> 820    826
#> 821    827
#> 822    828
#> 823    829
#> 824    830
#> 825    831
#> 826    832
#> 827    833
#> 828    834
#> 829    835
#> 830    836
#> 831    837
#> 832    838
#> 833    839
#> 834    840
#> 835    841
#> 836    842
#> 837    843
#> 838    844
#> 839    845
#> 840    846
#> 841    847
#> 842    848
#> 843    849
#> 844    850
#> 845    851
#> 846    852
#> 847    853
#> 848    854
#> 849    855
#> 850    856
#> 851    857
#> 852    858
#> 853    859
#> 854    860
#> 855    861
#> 856    862
#> 857    863
#> 858    864
#> 859    865
#> 860    866
#> 861    867
#> 862    868
#> 863    869
#> 864    870
#> 865    871
#> 866    872
#> 867    873
#> 868    874
#> 869    875
#> 870    876
#> 871    877
#> 872    878
#> 873    879
#> 874    880
#> 875    881
#> 876    882
#> 877    883
#> 878    884
#> 879    885
#> 880    886
#> 881    887
#> 882    888
#> 883    889
#> 884    890
#> 885    891
#> 886    892
#> 887    893
#> 888    894
#> 889    895
#> 890    896
#> 891    897
#> 892    898
#> 893    899
#> 894    900
#> 895    901
#> 896    902
#> 897    903
#> 898    904
#> 899    905
#> 900    906
#> 901    907
#> 902    908
#> 903    909
#> 904    910
#> 905    911
#> 906    912
#> 907    913
#> 908    914
#> 909    915
#> 910    916
#> 911    917
#> 912    918
#> 913    919
#> 914    920
#> 915    921
#> 916    922
#> 917    923
#> 918    924
#> 919    925
#> 920    926
#> 921    927
#> 922    928
#> 923    929
#> 924    930
#> 925    931
#> 926    932
#> 927    933
#> 928    934
#> 929    935
#> 930    936
#> 931    937
#> 932    938
#> 933    939
#> 934    940
#> 935    941
#> 936    942
#> 937    943
#> 938    944
#> 939    945
#> 940    946
#> 941    947
#> 942    948
#> 943    949
#> 944    950
#> 945    951
#> 946    952
#> 947    953
#> 948    954
#> 949    955
#> 950    956
#> 951    957
#> 952    958
#> 953    959
#> 954    960
#> 955    961
#> 956    962
#> 957    963
#> 958    964
#> 959    965
#> 960    966
#> 961    967
#> 962    968
#> 963    969
#> 964    970
#> 965    971
#> 966    972
#> 967    973
#> 968    974
#> 969    975
#> 970    976
#> 971    977
#> 972    978
#> 973    979
#> 974    980
#> 975    981
#> 976    982
#> 977    983
#> 978    984
#> 979    985
#> 980    986
#> 981    987
#> 982    988
#> 983    989
#> 984    990
#> 985    991
#> 986    992
#> 987    993
#> 988    994
#> 989    995
#> 990    996
#> 991    997
#> 992    998
#> 993    999
#> 994   1000

Created on 2021-01-11 by the reprex package (v0.3.0)

krlmlr commented 3 years ago

Weird, need to take a look on Windows.

georgevbsantiago commented 3 years ago

Reprex with R 4.0.3:

library(DBI)
library(RSQLite)
library(furrr)
#> Carregando pacotes exigidos: future
library(future)
library(magrittr)
library(purrr)
#> 
#> Attaching package: 'purrr'
#> The following object is masked from 'package:magrittr':
#> 
#>     set_names

n_teste <- 1:1000

unlink("bd_test.db")

connect_sgbd <- function() {
        conexao <- DBI::dbConnect(RSQLite::SQLite(),
                                  dbname = file.path("bd_test.db")
        )

        return(conexao)
}

teste_write_sqlite <- function(n_teste) {

        tb_teste_iris <- iris[1, ] %>%
                dplyr::mutate(n_loop = n_teste)

        tentativas <- purrr::rate_delay(pause = 2,
                                        max_times = 20
        )

        insist_execute_sqlite <- purrr::insistently(DBI::dbExecute, 
                                                    tentativas,
                                                    quiet = FALSE
        )

        insist_dbWriteTable <- purrr::insistently(DBI::dbWriteTable,
                                                  tentativas,
                                                  quiet = FALSE
        )

        conn <- connect_sgbd()
        on.exit(dbDisconnect(conn))

        tryCatch(
                {
                        insist_execute_sqlite(conn, "BEGIN IMMEDIATE TRANSACTION")
                        # Rollback on failure
                        on.exit(try(dbExecute(conn, "ROLLBACK TRANSACTION")))
                        out <- insist_dbWriteTable(conn, "tb_teste_iris", tb_teste_iris, append = TRUE)
                        dbExecute(conn, "COMMIT TRANSACTION")

                        # Don't rollback on success
                        on.exit(NULL)
                        print(paste(n_teste, "-", out))
                },
                error = function(e) {
                        print(paste(n_teste, "-", conditionMessage(e)))
                }
        )
}

future::plan("multisession",
             workers = 8
)

options(future.rng.onMisuse = "ignore")

furrr::future_walk(n_teste, teste_write_sqlite, .progress = TRUE)
#> [1] "1 - TRUE"
#> [1] "2 - TRUE"
#> [1] "3 - TRUE"
#> [1] "4 - TRUE"
#> [1] "5 - TRUE"
#> [1] "6 - TRUE"
#> [1] "7 - TRUE"
#> [1] "8 - TRUE"
#> [1] "9 - TRUE"
#> [1] "10 - TRUE"
#> [1] "11 - TRUE"
#> [1] "12 - TRUE"
#> [1] "13 - TRUE"
#> [1] "14 - TRUE"
#> [1] "15 - TRUE"
#> [1] "16 - TRUE"
#> [1] "17 - TRUE"
#> [1] "18 - TRUE"
#> [1] "19 - TRUE"
#> [1] "20 - TRUE"
#> [1] "21 - TRUE"
#> [1] "22 - TRUE"
#> [1] "23 - TRUE"
#> [1] "24 - TRUE"
#> [1] "25 - TRUE"
#> [1] "26 - TRUE"
#> [1] "27 - TRUE"
#> [1] "28 - TRUE"
#> [1] "29 - TRUE"
#> [1] "30 - TRUE"
#> [1] "31 - TRUE"
#> [1] "32 - TRUE"
#> [1] "33 - TRUE"
#> [1] "34 - TRUE"
#> [1] "35 - TRUE"
#> [1] "36 - TRUE"
#> [1] "37 - TRUE"
#> [1] "38 - TRUE"
#> [1] "39 - database is locked"
#> [1] "40 - TRUE"
#> [1] "41 - TRUE"
#> [1] "42 - TRUE"
#> [1] "43 - TRUE"
#> [1] "44 - TRUE"
#> [1] "45 - TRUE"
#> [1] "46 - TRUE"
#> [1] "47 - TRUE"
#> [1] "48 - TRUE"
#> [1] "49 - TRUE"
#> [1] "50 - TRUE"
#> [1] "51 - TRUE"
#> [1] "52 - TRUE"
#> [1] "53 - TRUE"
#> [1] "54 - TRUE"
#> [1] "55 - TRUE"
#> [1] "56 - TRUE"
#> [1] "57 - TRUE"
#> [1] "58 - TRUE"
#> [1] "59 - TRUE"
#> [1] "60 - TRUE"
#> [1] "61 - TRUE"
#> [1] "62 - TRUE"
#> [1] "63 - TRUE"
#> [1] "64 - TRUE"
#> [1] "65 - TRUE"
#> [1] "66 - TRUE"
#> [1] "67 - TRUE"
#> [1] "68 - TRUE"
#> [1] "69 - TRUE"
#> [1] "70 - TRUE"
#> [1] "71 - TRUE"
#> [1] "72 - TRUE"
#> [1] "73 - TRUE"
#> [1] "74 - TRUE"
#> [1] "75 - TRUE"
#> [1] "76 - TRUE"
#> [1] "77 - TRUE"
#> [1] "78 - TRUE"
#> [1] "79 - TRUE"
#> [1] "80 - TRUE"
#> [1] "81 - TRUE"
#> [1] "82 - TRUE"
#> [1] "83 - TRUE"
#> [1] "84 - TRUE"
#> [1] "85 - TRUE"
#> [1] "86 - TRUE"
#> [1] "87 - TRUE"
#> [1] "88 - TRUE"
#> [1] "89 - TRUE"
#> [1] "90 - TRUE"
#> [1] "91 - TRUE"
#> [1] "92 - TRUE"
#> [1] "93 - TRUE"
#> [1] "94 - TRUE"
#> [1] "95 - TRUE"
#> [1] "96 - TRUE"
#> [1] "97 - TRUE"
#> [1] "98 - TRUE"
#> [1] "99 - TRUE"
#> [1] "100 - TRUE"
#> [1] "101 - TRUE"
#> [1] "102 - TRUE"
#> [1] "103 - TRUE"
#> [1] "104 - TRUE"
#> [1] "105 - TRUE"
#> [1] "106 - TRUE"
#> [1] "107 - TRUE"
#> [1] "108 - TRUE"
#> [1] "109 - TRUE"
#> [1] "110 - TRUE"
#> [1] "111 - TRUE"
#> [1] "112 - TRUE"
#> [1] "113 - TRUE"
#> [1] "114 - TRUE"
#> [1] "115 - TRUE"
#> [1] "116 - TRUE"
#> [1] "117 - TRUE"
#> [1] "118 - TRUE"
#> [1] "119 - TRUE"
#> [1] "120 - TRUE"
#> [1] "121 - TRUE"
#> [1] "122 - TRUE"
#> [1] "123 - TRUE"
#> [1] "124 - TRUE"
#> [1] "125 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "126 - TRUE"
#> [1] "127 - TRUE"
#> [1] "128 - TRUE"
#> [1] "129 - TRUE"
#> [1] "130 - TRUE"
#> [1] "131 - TRUE"
#> [1] "132 - TRUE"
#> [1] "133 - TRUE"
#> [1] "134 - TRUE"
#> [1] "135 - TRUE"
#> [1] "136 - TRUE"
#> [1] "137 - TRUE"
#> [1] "138 - TRUE"
#> [1] "139 - TRUE"
#> [1] "140 - TRUE"
#> [1] "141 - TRUE"
#> [1] "142 - TRUE"
#> [1] "143 - TRUE"
#> [1] "144 - TRUE"
#> [1] "145 - TRUE"
#> [1] "146 - TRUE"
#> [1] "147 - TRUE"
#> [1] "148 - TRUE"
#> [1] "149 - TRUE"
#> [1] "150 - TRUE"
#> [1] "151 - TRUE"
#> [1] "152 - TRUE"
#> [1] "153 - TRUE"
#> [1] "154 - TRUE"
#> [1] "155 - TRUE"
#> [1] "156 - TRUE"
#> [1] "157 - TRUE"
#> [1] "158 - TRUE"
#> [1] "159 - TRUE"
#> [1] "160 - TRUE"
#> [1] "161 - TRUE"
#> [1] "162 - TRUE"
#> [1] "163 - TRUE"
#> [1] "164 - TRUE"
#> [1] "165 - TRUE"
#> [1] "166 - TRUE"
#> [1] "167 - TRUE"
#> [1] "168 - TRUE"
#> [1] "169 - TRUE"
#> [1] "170 - TRUE"
#> [1] "171 - TRUE"
#> [1] "172 - TRUE"
#> [1] "173 - TRUE"
#> [1] "174 - TRUE"
#> [1] "175 - TRUE"
#> [1] "176 - TRUE"
#> [1] "177 - TRUE"
#> [1] "178 - TRUE"
#> [1] "179 - TRUE"
#> [1] "180 - TRUE"
#> [1] "181 - TRUE"
#> [1] "182 - TRUE"
#> [1] "183 - TRUE"
#> [1] "184 - TRUE"
#> [1] "185 - TRUE"
#> [1] "186 - TRUE"
#> [1] "187 - TRUE"
#> [1] "188 - TRUE"
#> [1] "189 - TRUE"
#> [1] "190 - TRUE"
#> [1] "191 - TRUE"
#> [1] "192 - TRUE"
#> [1] "193 - TRUE"
#> [1] "194 - TRUE"
#> [1] "195 - TRUE"
#> [1] "196 - TRUE"
#> [1] "197 - TRUE"
#> [1] "198 - TRUE"
#> [1] "199 - TRUE"
#> [1] "200 - TRUE"
#> [1] "201 - TRUE"
#> [1] "202 - TRUE"
#> [1] "203 - TRUE"
#> [1] "204 - TRUE"
#> [1] "205 - TRUE"
#> [1] "206 - TRUE"
#> [1] "207 - TRUE"
#> [1] "208 - TRUE"
#> [1] "209 - TRUE"
#> [1] "210 - TRUE"
#> [1] "211 - TRUE"
#> [1] "212 - TRUE"
#> [1] "213 - TRUE"
#> [1] "214 - TRUE"
#> [1] "215 - TRUE"
#> [1] "216 - TRUE"
#> [1] "217 - TRUE"
#> [1] "218 - TRUE"
#> [1] "219 - TRUE"
#> [1] "220 - TRUE"
#> [1] "221 - TRUE"
#> [1] "222 - TRUE"
#> [1] "223 - TRUE"
#> [1] "224 - TRUE"
#> [1] "225 - TRUE"
#> [1] "226 - TRUE"
#> [1] "227 - TRUE"
#> [1] "228 - TRUE"
#> [1] "229 - TRUE"
#> [1] "230 - TRUE"
#> [1] "231 - TRUE"
#> [1] "232 - TRUE"
#> [1] "233 - TRUE"
#> [1] "234 - TRUE"
#> [1] "235 - TRUE"
#> [1] "236 - TRUE"
#> [1] "237 - TRUE"
#> [1] "238 - TRUE"
#> [1] "239 - TRUE"
#> [1] "240 - TRUE"
#> [1] "241 - TRUE"
#> [1] "242 - TRUE"
#> [1] "243 - TRUE"
#> [1] "244 - TRUE"
#> [1] "245 - TRUE"
#> [1] "246 - TRUE"
#> [1] "247 - TRUE"
#> [1] "248 - TRUE"
#> [1] "249 - TRUE"
#> [1] "250 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "251 - TRUE"
#> [1] "252 - TRUE"
#> [1] "253 - TRUE"
#> [1] "254 - TRUE"
#> [1] "255 - TRUE"
#> [1] "256 - TRUE"
#> [1] "257 - TRUE"
#> [1] "258 - TRUE"
#> [1] "259 - TRUE"
#> [1] "260 - TRUE"
#> [1] "261 - TRUE"
#> [1] "262 - TRUE"
#> [1] "263 - TRUE"
#> [1] "264 - TRUE"
#> [1] "265 - TRUE"
#> [1] "266 - TRUE"
#> [1] "267 - TRUE"
#> [1] "268 - TRUE"
#> [1] "269 - TRUE"
#> [1] "270 - TRUE"
#> [1] "271 - TRUE"
#> [1] "272 - TRUE"
#> [1] "273 - TRUE"
#> [1] "274 - TRUE"
#> [1] "275 - TRUE"
#> [1] "276 - TRUE"
#> [1] "277 - TRUE"
#> [1] "278 - TRUE"
#> [1] "279 - TRUE"
#> [1] "280 - TRUE"
#> [1] "281 - TRUE"
#> [1] "282 - TRUE"
#> [1] "283 - TRUE"
#> [1] "284 - TRUE"
#> [1] "285 - TRUE"
#> [1] "286 - TRUE"
#> [1] "287 - TRUE"
#> [1] "288 - TRUE"
#> [1] "289 - TRUE"
#> [1] "290 - TRUE"
#> [1] "291 - TRUE"
#> [1] "292 - TRUE"
#> [1] "293 - TRUE"
#> [1] "294 - TRUE"
#> [1] "295 - TRUE"
#> [1] "296 - TRUE"
#> [1] "297 - TRUE"
#> [1] "298 - TRUE"
#> [1] "299 - TRUE"
#> [1] "300 - TRUE"
#> [1] "301 - TRUE"
#> [1] "302 - TRUE"
#> [1] "303 - TRUE"
#> [1] "304 - TRUE"
#> [1] "305 - TRUE"
#> [1] "306 - TRUE"
#> [1] "307 - TRUE"
#> [1] "308 - TRUE"
#> [1] "309 - database is locked"
#> [1] "310 - TRUE"
#> [1] "311 - TRUE"
#> [1] "312 - TRUE"
#> [1] "313 - TRUE"
#> [1] "314 - TRUE"
#> [1] "315 - TRUE"
#> [1] "316 - TRUE"
#> [1] "317 - TRUE"
#> [1] "318 - TRUE"
#> [1] "319 - TRUE"
#> [1] "320 - TRUE"
#> [1] "321 - TRUE"
#> [1] "322 - TRUE"
#> [1] "323 - TRUE"
#> [1] "324 - TRUE"
#> [1] "325 - TRUE"
#> [1] "326 - TRUE"
#> [1] "327 - TRUE"
#> [1] "328 - TRUE"
#> [1] "329 - TRUE"
#> [1] "330 - TRUE"
#> [1] "331 - TRUE"
#> [1] "332 - TRUE"
#> [1] "333 - TRUE"
#> [1] "334 - TRUE"
#> [1] "335 - TRUE"
#> [1] "336 - TRUE"
#> [1] "337 - TRUE"
#> [1] "338 - TRUE"
#> [1] "339 - TRUE"
#> [1] "340 - TRUE"
#> [1] "341 - TRUE"
#> [1] "342 - TRUE"
#> [1] "343 - TRUE"
#> [1] "344 - TRUE"
#> [1] "345 - TRUE"
#> [1] "346 - TRUE"
#> [1] "347 - TRUE"
#> [1] "348 - TRUE"
#> [1] "349 - TRUE"
#> [1] "350 - TRUE"
#> [1] "351 - TRUE"
#> [1] "352 - TRUE"
#> [1] "353 - TRUE"
#> [1] "354 - TRUE"
#> [1] "355 - TRUE"
#> [1] "356 - TRUE"
#> [1] "357 - TRUE"
#> [1] "358 - TRUE"
#> [1] "359 - TRUE"
#> [1] "360 - TRUE"
#> [1] "361 - TRUE"
#> [1] "362 - TRUE"
#> [1] "363 - TRUE"
#> [1] "364 - TRUE"
#> [1] "365 - TRUE"
#> [1] "366 - TRUE"
#> [1] "367 - TRUE"
#> [1] "368 - TRUE"
#> [1] "369 - TRUE"
#> [1] "370 - TRUE"
#> [1] "371 - TRUE"
#> [1] "372 - TRUE"
#> [1] "373 - TRUE"
#> [1] "374 - TRUE"
#> [1] "375 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "376 - TRUE"
#> [1] "377 - TRUE"
#> [1] "378 - TRUE"
#> [1] "379 - TRUE"
#> [1] "380 - TRUE"
#> [1] "381 - TRUE"
#> [1] "382 - TRUE"
#> [1] "383 - TRUE"
#> [1] "384 - TRUE"
#> [1] "385 - TRUE"
#> [1] "386 - TRUE"
#> [1] "387 - TRUE"
#> [1] "388 - TRUE"
#> [1] "389 - TRUE"
#> [1] "390 - TRUE"
#> [1] "391 - TRUE"
#> [1] "392 - TRUE"
#> [1] "393 - TRUE"
#> [1] "394 - TRUE"
#> [1] "395 - TRUE"
#> [1] "396 - TRUE"
#> [1] "397 - TRUE"
#> [1] "398 - TRUE"
#> [1] "399 - TRUE"
#> [1] "400 - TRUE"
#> [1] "401 - TRUE"
#> [1] "402 - TRUE"
#> [1] "403 - TRUE"
#> [1] "404 - TRUE"
#> [1] "405 - TRUE"
#> [1] "406 - TRUE"
#> [1] "407 - TRUE"
#> [1] "408 - TRUE"
#> [1] "409 - TRUE"
#> [1] "410 - TRUE"
#> [1] "411 - TRUE"
#> [1] "412 - TRUE"
#> [1] "413 - TRUE"
#> [1] "414 - TRUE"
#> [1] "415 - TRUE"
#> [1] "416 - TRUE"
#> [1] "417 - TRUE"
#> [1] "418 - TRUE"
#> [1] "419 - TRUE"
#> [1] "420 - TRUE"
#> [1] "421 - TRUE"
#> [1] "422 - TRUE"
#> [1] "423 - TRUE"
#> [1] "424 - TRUE"
#> [1] "425 - TRUE"
#> [1] "426 - TRUE"
#> [1] "427 - TRUE"
#> [1] "428 - TRUE"
#> [1] "429 - TRUE"
#> [1] "430 - TRUE"
#> [1] "431 - TRUE"
#> [1] "432 - TRUE"
#> [1] "433 - TRUE"
#> [1] "434 - TRUE"
#> [1] "435 - TRUE"
#> [1] "436 - TRUE"
#> [1] "437 - TRUE"
#> [1] "438 - TRUE"
#> [1] "439 - TRUE"
#> [1] "440 - TRUE"
#> [1] "441 - TRUE"
#> [1] "442 - TRUE"
#> [1] "443 - TRUE"
#> [1] "444 - TRUE"
#> [1] "445 - TRUE"
#> [1] "446 - TRUE"
#> [1] "447 - TRUE"
#> [1] "448 - TRUE"
#> [1] "449 - TRUE"
#> [1] "450 - TRUE"
#> [1] "451 - TRUE"
#> [1] "452 - TRUE"
#> [1] "453 - TRUE"
#> [1] "454 - TRUE"
#> [1] "455 - TRUE"
#> [1] "456 - TRUE"
#> [1] "457 - TRUE"
#> [1] "458 - TRUE"
#> [1] "459 - TRUE"
#> [1] "460 - TRUE"
#> [1] "461 - TRUE"
#> [1] "462 - TRUE"
#> [1] "463 - TRUE"
#> [1] "464 - TRUE"
#> [1] "465 - TRUE"
#> [1] "466 - TRUE"
#> [1] "467 - TRUE"
#> [1] "468 - TRUE"
#> [1] "469 - TRUE"
#> [1] "470 - TRUE"
#> [1] "471 - TRUE"
#> [1] "472 - TRUE"
#> [1] "473 - TRUE"
#> [1] "474 - TRUE"
#> [1] "475 - database is locked"
#> [1] "476 - TRUE"
#> [1] "477 - TRUE"
#> [1] "478 - TRUE"
#> [1] "479 - TRUE"
#> [1] "480 - TRUE"
#> [1] "481 - TRUE"
#> [1] "482 - TRUE"
#> [1] "483 - TRUE"
#> [1] "484 - TRUE"
#> [1] "485 - TRUE"
#> [1] "486 - TRUE"
#> [1] "487 - TRUE"
#> [1] "488 - TRUE"
#> [1] "489 - TRUE"
#> [1] "490 - TRUE"
#> [1] "491 - TRUE"
#> [1] "492 - TRUE"
#> [1] "493 - TRUE"
#> [1] "494 - TRUE"
#> [1] "495 - TRUE"
#> [1] "496 - TRUE"
#> [1] "497 - TRUE"
#> [1] "498 - TRUE"
#> [1] "499 - TRUE"
#> [1] "500 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "501 - TRUE"
#> [1] "502 - TRUE"
#> [1] "503 - TRUE"
#> [1] "504 - TRUE"
#> [1] "505 - TRUE"
#> [1] "506 - TRUE"
#> [1] "507 - TRUE"
#> [1] "508 - TRUE"
#> [1] "509 - TRUE"
#> [1] "510 - TRUE"
#> [1] "511 - TRUE"
#> [1] "512 - TRUE"
#> [1] "513 - TRUE"
#> [1] "514 - TRUE"
#> [1] "515 - TRUE"
#> [1] "516 - TRUE"
#> [1] "517 - TRUE"
#> [1] "518 - TRUE"
#> [1] "519 - TRUE"
#> [1] "520 - TRUE"
#> [1] "521 - TRUE"
#> [1] "522 - TRUE"
#> [1] "523 - TRUE"
#> [1] "524 - TRUE"
#> [1] "525 - TRUE"
#> [1] "526 - TRUE"
#> [1] "527 - TRUE"
#> [1] "528 - TRUE"
#> [1] "529 - TRUE"
#> [1] "530 - TRUE"
#> [1] "531 - TRUE"
#> [1] "532 - TRUE"
#> [1] "533 - TRUE"
#> [1] "534 - TRUE"
#> [1] "535 - TRUE"
#> [1] "536 - TRUE"
#> [1] "537 - TRUE"
#> [1] "538 - TRUE"
#> [1] "539 - TRUE"
#> [1] "540 - TRUE"
#> [1] "541 - TRUE"
#> [1] "542 - TRUE"
#> [1] "543 - TRUE"
#> [1] "544 - TRUE"
#> [1] "545 - TRUE"
#> [1] "546 - TRUE"
#> [1] "547 - TRUE"
#> [1] "548 - TRUE"
#> [1] "549 - TRUE"
#> [1] "550 - TRUE"
#> [1] "551 - TRUE"
#> [1] "552 - TRUE"
#> [1] "553 - TRUE"
#> [1] "554 - TRUE"
#> [1] "555 - TRUE"
#> [1] "556 - TRUE"
#> [1] "557 - TRUE"
#> [1] "558 - TRUE"
#> [1] "559 - TRUE"
#> [1] "560 - TRUE"
#> [1] "561 - TRUE"
#> [1] "562 - TRUE"
#> [1] "563 - TRUE"
#> [1] "564 - TRUE"
#> [1] "565 - TRUE"
#> [1] "566 - TRUE"
#> [1] "567 - TRUE"
#> [1] "568 - TRUE"
#> [1] "569 - TRUE"
#> [1] "570 - TRUE"
#> [1] "571 - TRUE"
#> [1] "572 - TRUE"
#> [1] "573 - TRUE"
#> [1] "574 - TRUE"
#> [1] "575 - TRUE"
#> [1] "576 - TRUE"
#> [1] "577 - TRUE"
#> [1] "578 - TRUE"
#> [1] "579 - TRUE"
#> [1] "580 - TRUE"
#> [1] "581 - TRUE"
#> [1] "582 - TRUE"
#> [1] "583 - TRUE"
#> [1] "584 - TRUE"
#> [1] "585 - TRUE"
#> [1] "586 - TRUE"
#> [1] "587 - TRUE"
#> [1] "588 - TRUE"
#> [1] "589 - TRUE"
#> [1] "590 - TRUE"
#> [1] "591 - TRUE"
#> [1] "592 - TRUE"
#> [1] "593 - TRUE"
#> [1] "594 - TRUE"
#> [1] "595 - TRUE"
#> [1] "596 - TRUE"
#> [1] "597 - TRUE"
#> [1] "598 - TRUE"
#> [1] "599 - TRUE"
#> [1] "600 - TRUE"
#> [1] "601 - TRUE"
#> [1] "602 - TRUE"
#> [1] "603 - TRUE"
#> [1] "604 - TRUE"
#> [1] "605 - TRUE"
#> [1] "606 - TRUE"
#> [1] "607 - TRUE"
#> [1] "608 - TRUE"
#> [1] "609 - TRUE"
#> [1] "610 - TRUE"
#> [1] "611 - TRUE"
#> [1] "612 - TRUE"
#> [1] "613 - TRUE"
#> [1] "614 - TRUE"
#> [1] "615 - TRUE"
#> [1] "616 - TRUE"
#> [1] "617 - TRUE"
#> [1] "618 - TRUE"
#> [1] "619 - TRUE"
#> [1] "620 - TRUE"
#> [1] "621 - TRUE"
#> [1] "622 - TRUE"
#> [1] "623 - TRUE"
#> [1] "624 - TRUE"
#> [1] "625 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "626 - TRUE"
#> [1] "627 - TRUE"
#> [1] "628 - TRUE"
#> [1] "629 - TRUE"
#> [1] "630 - TRUE"
#> [1] "631 - TRUE"
#> [1] "632 - TRUE"
#> [1] "633 - TRUE"
#> [1] "634 - TRUE"
#> [1] "635 - TRUE"
#> [1] "636 - TRUE"
#> [1] "637 - TRUE"
#> [1] "638 - TRUE"
#> [1] "639 - TRUE"
#> [1] "640 - TRUE"
#> [1] "641 - TRUE"
#> [1] "642 - TRUE"
#> [1] "643 - TRUE"
#> [1] "644 - TRUE"
#> [1] "645 - TRUE"
#> [1] "646 - TRUE"
#> [1] "647 - TRUE"
#> [1] "648 - TRUE"
#> [1] "649 - TRUE"
#> [1] "650 - TRUE"
#> [1] "651 - TRUE"
#> [1] "652 - TRUE"
#> [1] "653 - TRUE"
#> [1] "654 - TRUE"
#> [1] "655 - TRUE"
#> [1] "656 - TRUE"
#> [1] "657 - TRUE"
#> [1] "658 - TRUE"
#> [1] "659 - TRUE"
#> [1] "660 - TRUE"
#> [1] "661 - TRUE"
#> [1] "662 - TRUE"
#> [1] "663 - TRUE"
#> [1] "664 - TRUE"
#> [1] "665 - TRUE"
#> [1] "666 - TRUE"
#> [1] "667 - TRUE"
#> [1] "668 - TRUE"
#> [1] "669 - database is locked"
#> [1] "670 - TRUE"
#> [1] "671 - TRUE"
#> [1] "672 - TRUE"
#> [1] "673 - TRUE"
#> [1] "674 - TRUE"
#> [1] "675 - TRUE"
#> [1] "676 - TRUE"
#> [1] "677 - TRUE"
#> [1] "678 - TRUE"
#> [1] "679 - TRUE"
#> [1] "680 - TRUE"
#> [1] "681 - TRUE"
#> [1] "682 - TRUE"
#> [1] "683 - TRUE"
#> [1] "684 - TRUE"
#> [1] "685 - TRUE"
#> [1] "686 - TRUE"
#> [1] "687 - TRUE"
#> [1] "688 - TRUE"
#> [1] "689 - TRUE"
#> [1] "690 - TRUE"
#> [1] "691 - TRUE"
#> [1] "692 - TRUE"
#> [1] "693 - TRUE"
#> [1] "694 - TRUE"
#> [1] "695 - TRUE"
#> [1] "696 - TRUE"
#> [1] "697 - TRUE"
#> [1] "698 - TRUE"
#> [1] "699 - TRUE"
#> [1] "700 - TRUE"
#> [1] "701 - TRUE"
#> [1] "702 - TRUE"
#> [1] "703 - TRUE"
#> [1] "704 - TRUE"
#> [1] "705 - TRUE"
#> [1] "706 - TRUE"
#> [1] "707 - TRUE"
#> [1] "708 - TRUE"
#> [1] "709 - TRUE"
#> [1] "710 - TRUE"
#> [1] "711 - TRUE"
#> [1] "712 - TRUE"
#> [1] "713 - TRUE"
#> [1] "714 - TRUE"
#> [1] "715 - TRUE"
#> [1] "716 - TRUE"
#> [1] "717 - TRUE"
#> [1] "718 - TRUE"
#> [1] "719 - TRUE"
#> [1] "720 - TRUE"
#> [1] "721 - TRUE"
#> [1] "722 - TRUE"
#> [1] "723 - TRUE"
#> [1] "724 - TRUE"
#> [1] "725 - TRUE"
#> [1] "726 - TRUE"
#> [1] "727 - TRUE"
#> [1] "728 - TRUE"
#> [1] "729 - TRUE"
#> [1] "730 - TRUE"
#> [1] "731 - TRUE"
#> [1] "732 - TRUE"
#> [1] "733 - TRUE"
#> [1] "734 - TRUE"
#> [1] "735 - TRUE"
#> [1] "736 - TRUE"
#> [1] "737 - TRUE"
#> [1] "738 - TRUE"
#> [1] "739 - TRUE"
#> [1] "740 - TRUE"
#> [1] "741 - TRUE"
#> [1] "742 - TRUE"
#> [1] "743 - TRUE"
#> [1] "744 - TRUE"
#> [1] "745 - TRUE"
#> [1] "746 - TRUE"
#> [1] "747 - TRUE"
#> [1] "748 - TRUE"
#> [1] "749 - TRUE"
#> [1] "750 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "751 - TRUE"
#> [1] "752 - TRUE"
#> [1] "753 - TRUE"
#> [1] "754 - TRUE"
#> [1] "755 - TRUE"
#> [1] "756 - TRUE"
#> [1] "757 - TRUE"
#> [1] "758 - TRUE"
#> [1] "759 - TRUE"
#> [1] "760 - TRUE"
#> [1] "761 - TRUE"
#> [1] "762 - TRUE"
#> [1] "763 - TRUE"
#> [1] "764 - TRUE"
#> [1] "765 - TRUE"
#> [1] "766 - TRUE"
#> [1] "767 - TRUE"
#> [1] "768 - TRUE"
#> [1] "769 - TRUE"
#> [1] "770 - TRUE"
#> [1] "771 - TRUE"
#> [1] "772 - TRUE"
#> [1] "773 - TRUE"
#> [1] "774 - TRUE"
#> [1] "775 - TRUE"
#> [1] "776 - TRUE"
#> [1] "777 - TRUE"
#> [1] "778 - TRUE"
#> [1] "779 - TRUE"
#> [1] "780 - TRUE"
#> [1] "781 - TRUE"
#> [1] "782 - TRUE"
#> [1] "783 - TRUE"
#> [1] "784 - TRUE"
#> [1] "785 - TRUE"
#> [1] "786 - TRUE"
#> [1] "787 - TRUE"
#> [1] "788 - TRUE"
#> [1] "789 - TRUE"
#> [1] "790 - TRUE"
#> [1] "791 - TRUE"
#> [1] "792 - TRUE"
#> [1] "793 - TRUE"
#> [1] "794 - TRUE"
#> [1] "795 - TRUE"
#> [1] "796 - TRUE"
#> [1] "797 - TRUE"
#> [1] "798 - TRUE"
#> [1] "799 - TRUE"
#> [1] "800 - TRUE"
#> [1] "801 - TRUE"
#> [1] "802 - TRUE"
#> [1] "803 - TRUE"
#> [1] "804 - TRUE"
#> [1] "805 - TRUE"
#> [1] "806 - TRUE"
#> [1] "807 - TRUE"
#> [1] "808 - TRUE"
#> [1] "809 - TRUE"
#> [1] "810 - TRUE"
#> [1] "811 - TRUE"
#> [1] "812 - TRUE"
#> [1] "813 - TRUE"
#> [1] "814 - TRUE"
#> [1] "815 - TRUE"
#> [1] "816 - TRUE"
#> [1] "817 - TRUE"
#> [1] "818 - TRUE"
#> [1] "819 - TRUE"
#> [1] "820 - TRUE"
#> [1] "821 - TRUE"
#> [1] "822 - TRUE"
#> [1] "823 - TRUE"
#> [1] "824 - TRUE"
#> [1] "825 - TRUE"
#> [1] "826 - TRUE"
#> [1] "827 - TRUE"
#> [1] "828 - TRUE"
#> [1] "829 - TRUE"
#> [1] "830 - TRUE"
#> [1] "831 - TRUE"
#> [1] "832 - TRUE"
#> [1] "833 - TRUE"
#> [1] "834 - TRUE"
#> [1] "835 - TRUE"
#> [1] "836 - TRUE"
#> [1] "837 - TRUE"
#> [1] "838 - TRUE"
#> [1] "839 - TRUE"
#> [1] "840 - TRUE"
#> [1] "841 - TRUE"
#> [1] "842 - TRUE"
#> [1] "843 - TRUE"
#> [1] "844 - TRUE"
#> [1] "845 - TRUE"
#> [1] "846 - TRUE"
#> [1] "847 - TRUE"
#> [1] "848 - TRUE"
#> [1] "849 - TRUE"
#> [1] "850 - TRUE"
#> [1] "851 - TRUE"
#> [1] "852 - TRUE"
#> [1] "853 - TRUE"
#> [1] "854 - TRUE"
#> [1] "855 - TRUE"
#> [1] "856 - TRUE"
#> [1] "857 - TRUE"
#> [1] "858 - TRUE"
#> [1] "859 - TRUE"
#> [1] "860 - TRUE"
#> [1] "861 - TRUE"
#> [1] "862 - TRUE"
#> [1] "863 - TRUE"
#> [1] "864 - TRUE"
#> [1] "865 - TRUE"
#> [1] "866 - TRUE"
#> [1] "867 - TRUE"
#> [1] "868 - TRUE"
#> [1] "869 - TRUE"
#> [1] "870 - TRUE"
#> [1] "871 - TRUE"
#> [1] "872 - TRUE"
#> [1] "873 - TRUE"
#> [1] "874 - TRUE"
#> [1] "875 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "876 - TRUE"
#> [1] "877 - TRUE"
#> [1] "878 - TRUE"
#> [1] "879 - TRUE"
#> [1] "880 - TRUE"
#> [1] "881 - TRUE"
#> [1] "882 - TRUE"
#> [1] "883 - TRUE"
#> [1] "884 - TRUE"
#> [1] "885 - TRUE"
#> [1] "886 - TRUE"
#> [1] "887 - TRUE"
#> [1] "888 - TRUE"
#> [1] "889 - TRUE"
#> [1] "890 - TRUE"
#> [1] "891 - TRUE"
#> [1] "892 - TRUE"
#> [1] "893 - TRUE"
#> [1] "894 - TRUE"
#> [1] "895 - TRUE"
#> [1] "896 - TRUE"
#> [1] "897 - TRUE"
#> [1] "898 - TRUE"
#> [1] "899 - TRUE"
#> [1] "900 - TRUE"
#> [1] "901 - TRUE"
#> [1] "902 - TRUE"
#> [1] "903 - TRUE"
#> [1] "904 - TRUE"
#> [1] "905 - TRUE"
#> [1] "906 - TRUE"
#> [1] "907 - TRUE"
#> [1] "908 - TRUE"
#> [1] "909 - TRUE"
#> [1] "910 - TRUE"
#> [1] "911 - TRUE"
#> [1] "912 - TRUE"
#> [1] "913 - TRUE"
#> [1] "914 - TRUE"
#> [1] "915 - TRUE"
#> [1] "916 - TRUE"
#> [1] "917 - TRUE"
#> [1] "918 - TRUE"
#> [1] "919 - TRUE"
#> [1] "920 - TRUE"
#> [1] "921 - TRUE"
#> [1] "922 - TRUE"
#> [1] "923 - TRUE"
#> [1] "924 - TRUE"
#> [1] "925 - TRUE"
#> [1] "926 - TRUE"
#> [1] "927 - TRUE"
#> [1] "928 - TRUE"
#> [1] "929 - TRUE"
#> [1] "930 - TRUE"
#> [1] "931 - TRUE"
#> [1] "932 - TRUE"
#> [1] "933 - TRUE"
#> [1] "934 - TRUE"
#> [1] "935 - TRUE"
#> [1] "936 - TRUE"
#> [1] "937 - TRUE"
#> [1] "938 - TRUE"
#> [1] "939 - TRUE"
#> [1] "940 - TRUE"
#> [1] "941 - TRUE"
#> [1] "942 - TRUE"
#> [1] "943 - TRUE"
#> [1] "944 - TRUE"
#> [1] "945 - TRUE"
#> [1] "946 - TRUE"
#> [1] "947 - TRUE"
#> [1] "948 - TRUE"
#> [1] "949 - TRUE"
#> [1] "950 - TRUE"
#> [1] "951 - TRUE"
#> [1] "952 - TRUE"
#> [1] "953 - TRUE"
#> [1] "954 - TRUE"
#> [1] "955 - TRUE"
#> [1] "956 - TRUE"
#> [1] "957 - TRUE"
#> [1] "958 - TRUE"
#> [1] "959 - TRUE"
#> [1] "960 - TRUE"
#> [1] "961 - TRUE"
#> [1] "962 - TRUE"
#> [1] "963 - TRUE"
#> [1] "964 - TRUE"
#> [1] "965 - TRUE"
#> [1] "966 - TRUE"
#> [1] "967 - TRUE"
#> [1] "968 - TRUE"
#> [1] "969 - TRUE"
#> [1] "970 - TRUE"
#> [1] "971 - TRUE"
#> [1] "972 - TRUE"
#> [1] "973 - TRUE"
#> [1] "974 - TRUE"
#> [1] "975 - TRUE"
#> [1] "976 - TRUE"
#> [1] "977 - TRUE"
#> [1] "978 - TRUE"
#> [1] "979 - TRUE"
#> [1] "980 - TRUE"
#> [1] "981 - TRUE"
#> [1] "982 - TRUE"
#> [1] "983 - TRUE"
#> [1] "984 - TRUE"
#> [1] "985 - TRUE"
#> [1] "986 - TRUE"
#> [1] "987 - TRUE"
#> [1] "988 - TRUE"
#> [1] "989 - TRUE"
#> [1] "990 - TRUE"
#> [1] "991 - TRUE"
#> [1] "992 - TRUE"
#> [1] "993 - TRUE"
#> [1] "994 - TRUE"
#> [1] "995 - TRUE"
#> [1] "996 - TRUE"
#> [1] "997 - TRUE"
#> [1] "998 - TRUE"
#> [1] "999 - TRUE"
#> [1] "1000 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.

con <- dbConnect(RSQLite::SQLite(), dbname = file.path("bd_test.db"))
dbGetQuery(con, "SELECT n_loop FROM tb_teste_iris ORDER BY n_loop")
#>     n_loop
#> 1        1
#> 2        2
#> 3        3
#> 4        4
#> 5        5
#> 6        6
#> 7        7
#> 8        8
#> 9        9
#> 10      10
#> 11      11
#> 12      12
#> 13      13
#> 14      14
#> 15      15
#> 16      16
#> 17      17
#> 18      18
#> 19      19
#> 20      20
#> 21      21
#> 22      22
#> 23      23
#> 24      24
#> 25      25
#> 26      26
#> 27      27
#> 28      28
#> 29      29
#> 30      30
#> 31      31
#> 32      32
#> 33      33
#> 34      34
#> 35      35
#> 36      36
#> 37      37
#> 38      38
#> 39      40
#> 40      41
#> 41      42
#> 42      43
#> 43      44
#> 44      45
#> 45      46
#> 46      47
#> 47      48
#> 48      49
#> 49      50
#> 50      51
#> 51      52
#> 52      53
#> 53      54
#> 54      55
#> 55      56
#> 56      57
#> 57      58
#> 58      59
#> 59      60
#> 60      61
#> 61      62
#> 62      63
#> 63      64
#> 64      65
#> 65      66
#> 66      67
#> 67      68
#> 68      69
#> 69      70
#> 70      71
#> 71      72
#> 72      73
#> 73      74
#> 74      75
#> 75      76
#> 76      77
#> 77      78
#> 78      79
#> 79      80
#> 80      81
#> 81      82
#> 82      83
#> 83      84
#> 84      85
#> 85      86
#> 86      87
#> 87      88
#> 88      89
#> 89      90
#> 90      91
#> 91      92
#> 92      93
#> 93      94
#> 94      95
#> 95      96
#> 96      97
#> 97      98
#> 98      99
#> 99     100
#> 100    101
#> 101    102
#> 102    103
#> 103    104
#> 104    105
#> 105    106
#> 106    107
#> 107    108
#> 108    109
#> 109    110
#> 110    111
#> 111    112
#> 112    113
#> 113    114
#> 114    115
#> 115    116
#> 116    117
#> 117    118
#> 118    119
#> 119    120
#> 120    121
#> 121    122
#> 122    123
#> 123    124
#> 124    125
#> 125    126
#> 126    127
#> 127    128
#> 128    129
#> 129    130
#> 130    131
#> 131    132
#> 132    133
#> 133    134
#> 134    135
#> 135    136
#> 136    137
#> 137    138
#> 138    139
#> 139    140
#> 140    141
#> 141    142
#> 142    143
#> 143    144
#> 144    145
#> 145    146
#> 146    147
#> 147    148
#> 148    149
#> 149    150
#> 150    151
#> 151    152
#> 152    153
#> 153    154
#> 154    155
#> 155    156
#> 156    157
#> 157    158
#> 158    159
#> 159    160
#> 160    161
#> 161    162
#> 162    163
#> 163    164
#> 164    165
#> 165    166
#> 166    167
#> 167    168
#> 168    169
#> 169    170
#> 170    171
#> 171    172
#> 172    173
#> 173    174
#> 174    175
#> 175    176
#> 176    177
#> 177    178
#> 178    179
#> 179    180
#> 180    181
#> 181    182
#> 182    183
#> 183    184
#> 184    185
#> 185    186
#> 186    187
#> 187    188
#> 188    189
#> 189    190
#> 190    191
#> 191    192
#> 192    193
#> 193    194
#> 194    195
#> 195    196
#> 196    197
#> 197    198
#> 198    199
#> 199    200
#> 200    201
#> 201    202
#> 202    203
#> 203    204
#> 204    205
#> 205    206
#> 206    207
#> 207    208
#> 208    209
#> 209    210
#> 210    211
#> 211    212
#> 212    213
#> 213    214
#> 214    215
#> 215    216
#> 216    217
#> 217    218
#> 218    219
#> 219    220
#> 220    221
#> 221    222
#> 222    223
#> 223    224
#> 224    225
#> 225    226
#> 226    227
#> 227    228
#> 228    229
#> 229    230
#> 230    231
#> 231    232
#> 232    233
#> 233    234
#> 234    235
#> 235    236
#> 236    237
#> 237    238
#> 238    239
#> 239    240
#> 240    241
#> 241    242
#> 242    243
#> 243    244
#> 244    245
#> 245    246
#> 246    247
#> 247    248
#> 248    249
#> 249    250
#> 250    251
#> 251    252
#> 252    253
#> 253    254
#> 254    255
#> 255    256
#> 256    257
#> 257    258
#> 258    259
#> 259    260
#> 260    261
#> 261    262
#> 262    263
#> 263    264
#> 264    265
#> 265    266
#> 266    267
#> 267    268
#> 268    269
#> 269    270
#> 270    271
#> 271    272
#> 272    273
#> 273    274
#> 274    275
#> 275    276
#> 276    277
#> 277    278
#> 278    279
#> 279    280
#> 280    281
#> 281    282
#> 282    283
#> 283    284
#> 284    285
#> 285    286
#> 286    287
#> 287    288
#> 288    289
#> 289    290
#> 290    291
#> 291    292
#> 292    293
#> 293    294
#> 294    295
#> 295    296
#> 296    297
#> 297    298
#> 298    299
#> 299    300
#> 300    301
#> 301    302
#> 302    303
#> 303    304
#> 304    305
#> 305    306
#> 306    307
#> 307    308
#> 308    310
#> 309    311
#> 310    312
#> 311    313
#> 312    314
#> 313    315
#> 314    316
#> 315    317
#> 316    318
#> 317    319
#> 318    320
#> 319    321
#> 320    322
#> 321    323
#> 322    324
#> 323    325
#> 324    326
#> 325    327
#> 326    328
#> 327    329
#> 328    330
#> 329    331
#> 330    332
#> 331    333
#> 332    334
#> 333    335
#> 334    336
#> 335    337
#> 336    338
#> 337    339
#> 338    340
#> 339    341
#> 340    342
#> 341    343
#> 342    344
#> 343    345
#> 344    346
#> 345    347
#> 346    348
#> 347    349
#> 348    350
#> 349    351
#> 350    352
#> 351    353
#> 352    354
#> 353    355
#> 354    356
#> 355    357
#> 356    358
#> 357    359
#> 358    360
#> 359    361
#> 360    362
#> 361    363
#> 362    364
#> 363    365
#> 364    366
#> 365    367
#> 366    368
#> 367    369
#> 368    370
#> 369    371
#> 370    372
#> 371    373
#> 372    374
#> 373    375
#> 374    376
#> 375    377
#> 376    378
#> 377    379
#> 378    380
#> 379    381
#> 380    382
#> 381    383
#> 382    384
#> 383    385
#> 384    386
#> 385    387
#> 386    388
#> 387    389
#> 388    390
#> 389    391
#> 390    392
#> 391    393
#> 392    394
#> 393    395
#> 394    396
#> 395    397
#> 396    398
#> 397    399
#> 398    400
#> 399    401
#> 400    402
#> 401    403
#> 402    404
#> 403    405
#> 404    406
#> 405    407
#> 406    408
#> 407    409
#> 408    410
#> 409    411
#> 410    412
#> 411    413
#> 412    414
#> 413    415
#> 414    416
#> 415    417
#> 416    418
#> 417    419
#> 418    420
#> 419    421
#> 420    422
#> 421    423
#> 422    424
#> 423    425
#> 424    426
#> 425    427
#> 426    428
#> 427    429
#> 428    430
#> 429    431
#> 430    432
#> 431    433
#> 432    434
#> 433    435
#> 434    436
#> 435    437
#> 436    438
#> 437    439
#> 438    440
#> 439    441
#> 440    442
#> 441    443
#> 442    444
#> 443    445
#> 444    446
#> 445    447
#> 446    448
#> 447    449
#> 448    450
#> 449    451
#> 450    452
#> 451    453
#> 452    454
#> 453    455
#> 454    456
#> 455    457
#> 456    458
#> 457    459
#> 458    460
#> 459    461
#> 460    462
#> 461    463
#> 462    464
#> 463    465
#> 464    466
#> 465    467
#> 466    468
#> 467    469
#> 468    470
#> 469    471
#> 470    472
#> 471    473
#> 472    474
#> 473    476
#> 474    477
#> 475    478
#> 476    479
#> 477    480
#> 478    481
#> 479    482
#> 480    483
#> 481    484
#> 482    485
#> 483    486
#> 484    487
#> 485    488
#> 486    489
#> 487    490
#> 488    491
#> 489    492
#> 490    493
#> 491    494
#> 492    495
#> 493    496
#> 494    497
#> 495    498
#> 496    499
#> 497    500
#> 498    501
#> 499    502
#> 500    503
#> 501    504
#> 502    505
#> 503    506
#> 504    507
#> 505    508
#> 506    509
#> 507    510
#> 508    511
#> 509    512
#> 510    513
#> 511    514
#> 512    515
#> 513    516
#> 514    517
#> 515    518
#> 516    519
#> 517    520
#> 518    521
#> 519    522
#> 520    523
#> 521    524
#> 522    525
#> 523    526
#> 524    527
#> 525    528
#> 526    529
#> 527    530
#> 528    531
#> 529    532
#> 530    533
#> 531    534
#> 532    535
#> 533    536
#> 534    537
#> 535    538
#> 536    539
#> 537    540
#> 538    541
#> 539    542
#> 540    543
#> 541    544
#> 542    545
#> 543    546
#> 544    547
#> 545    548
#> 546    549
#> 547    550
#> 548    551
#> 549    552
#> 550    553
#> 551    554
#> 552    555
#> 553    556
#> 554    557
#> 555    558
#> 556    559
#> 557    560
#> 558    561
#> 559    562
#> 560    563
#> 561    564
#> 562    565
#> 563    566
#> 564    567
#> 565    568
#> 566    569
#> 567    570
#> 568    571
#> 569    572
#> 570    573
#> 571    574
#> 572    575
#> 573    576
#> 574    577
#> 575    578
#> 576    579
#> 577    580
#> 578    581
#> 579    582
#> 580    583
#> 581    584
#> 582    585
#> 583    586
#> 584    587
#> 585    588
#> 586    589
#> 587    590
#> 588    591
#> 589    592
#> 590    593
#> 591    594
#> 592    595
#> 593    596
#> 594    597
#> 595    598
#> 596    599
#> 597    600
#> 598    601
#> 599    602
#> 600    603
#> 601    604
#> 602    605
#> 603    606
#> 604    607
#> 605    608
#> 606    609
#> 607    610
#> 608    611
#> 609    612
#> 610    613
#> 611    614
#> 612    615
#> 613    616
#> 614    617
#> 615    618
#> 616    619
#> 617    620
#> 618    621
#> 619    622
#> 620    623
#> 621    624
#> 622    625
#> 623    626
#> 624    627
#> 625    628
#> 626    629
#> 627    630
#> 628    631
#> 629    632
#> 630    633
#> 631    634
#> 632    635
#> 633    636
#> 634    637
#> 635    638
#> 636    639
#> 637    640
#> 638    641
#> 639    642
#> 640    643
#> 641    644
#> 642    645
#> 643    646
#> 644    647
#> 645    648
#> 646    649
#> 647    650
#> 648    651
#> 649    652
#> 650    653
#> 651    654
#> 652    655
#> 653    656
#> 654    657
#> 655    658
#> 656    659
#> 657    660
#> 658    661
#> 659    662
#> 660    663
#> 661    664
#> 662    665
#> 663    666
#> 664    667
#> 665    668
#> 666    670
#> 667    671
#> 668    672
#> 669    673
#> 670    674
#> 671    675
#> 672    676
#> 673    677
#> 674    678
#> 675    679
#> 676    680
#> 677    681
#> 678    682
#> 679    683
#> 680    684
#> 681    685
#> 682    686
#> 683    687
#> 684    688
#> 685    689
#> 686    690
#> 687    691
#> 688    692
#> 689    693
#> 690    694
#> 691    695
#> 692    696
#> 693    697
#> 694    698
#> 695    699
#> 696    700
#> 697    701
#> 698    702
#> 699    703
#> 700    704
#> 701    705
#> 702    706
#> 703    707
#> 704    708
#> 705    709
#> 706    710
#> 707    711
#> 708    712
#> 709    713
#> 710    714
#> 711    715
#> 712    716
#> 713    717
#> 714    718
#> 715    719
#> 716    720
#> 717    721
#> 718    722
#> 719    723
#> 720    724
#> 721    725
#> 722    726
#> 723    727
#> 724    728
#> 725    729
#> 726    730
#> 727    731
#> 728    732
#> 729    733
#> 730    734
#> 731    735
#> 732    736
#> 733    737
#> 734    738
#> 735    739
#> 736    740
#> 737    741
#> 738    742
#> 739    743
#> 740    744
#> 741    745
#> 742    746
#> 743    747
#> 744    748
#> 745    749
#> 746    750
#> 747    751
#> 748    752
#> 749    753
#> 750    754
#> 751    755
#> 752    756
#> 753    757
#> 754    758
#> 755    759
#> 756    760
#> 757    761
#> 758    762
#> 759    763
#> 760    764
#> 761    765
#> 762    766
#> 763    767
#> 764    768
#> 765    769
#> 766    770
#> 767    771
#> 768    772
#> 769    773
#> 770    774
#> 771    775
#> 772    776
#> 773    777
#> 774    778
#> 775    779
#> 776    780
#> 777    781
#> 778    782
#> 779    783
#> 780    784
#> 781    785
#> 782    786
#> 783    787
#> 784    788
#> 785    789
#> 786    790
#> 787    791
#> 788    792
#> 789    793
#> 790    794
#> 791    795
#> 792    796
#> 793    797
#> 794    798
#> 795    799
#> 796    800
#> 797    801
#> 798    802
#> 799    803
#> 800    804
#> 801    805
#> 802    806
#> 803    807
#> 804    808
#> 805    809
#> 806    810
#> 807    811
#> 808    812
#> 809    813
#> 810    814
#> 811    815
#> 812    816
#> 813    817
#> 814    818
#> 815    819
#> 816    820
#> 817    821
#> 818    822
#> 819    823
#> 820    824
#> 821    825
#> 822    826
#> 823    827
#> 824    828
#> 825    829
#> 826    830
#> 827    831
#> 828    832
#> 829    833
#> 830    834
#> 831    835
#> 832    836
#> 833    837
#> 834    838
#> 835    839
#> 836    840
#> 837    841
#> 838    842
#> 839    843
#> 840    844
#> 841    845
#> 842    846
#> 843    847
#> 844    848
#> 845    849
#> 846    850
#> 847    851
#> 848    852
#> 849    853
#> 850    854
#> 851    855
#> 852    856
#> 853    857
#> 854    858
#> 855    859
#> 856    860
#> 857    861
#> 858    862
#> 859    863
#> 860    864
#> 861    865
#> 862    866
#> 863    867
#> 864    868
#> 865    869
#> 866    870
#> 867    871
#> 868    872
#> 869    873
#> 870    874
#> 871    875
#> 872    876
#> 873    877
#> 874    878
#> 875    879
#> 876    880
#> 877    881
#> 878    882
#> 879    883
#> 880    884
#> 881    885
#> 882    886
#> 883    887
#> 884    888
#> 885    889
#> 886    890
#> 887    891
#> 888    892
#> 889    893
#> 890    894
#> 891    895
#> 892    896
#> 893    897
#> 894    898
#> 895    899
#> 896    900
#> 897    901
#> 898    902
#> 899    903
#> 900    904
#> 901    905
#> 902    906
#> 903    907
#> 904    908
#> 905    909
#> 906    910
#> 907    911
#> 908    912
#> 909    913
#> 910    914
#> 911    915
#> 912    916
#> 913    917
#> 914    918
#> 915    919
#> 916    920
#> 917    921
#> 918    922
#> 919    923
#> 920    924
#> 921    925
#> 922    926
#> 923    927
#> 924    928
#> 925    929
#> 926    930
#> 927    931
#> 928    932
#> 929    933
#> 930    934
#> 931    935
#> 932    936
#> 933    937
#> 934    938
#> 935    939
#> 936    940
#> 937    941
#> 938    942
#> 939    943
#> 940    944
#> 941    945
#> 942    946
#> 943    947
#> 944    948
#> 945    949
#> 946    950
#> 947    951
#> 948    952
#> 949    953
#> 950    954
#> 951    955
#> 952    956
#> 953    957
#> 954    958
#> 955    959
#> 956    960
#> 957    961
#> 958    962
#> 959    963
#> 960    964
#> 961    965
#> 962    966
#> 963    967
#> 964    968
#> 965    969
#> 966    970
#> 967    971
#> 968    972
#> 969    973
#> 970    974
#> 971    975
#> 972    976
#> 973    977
#> 974    978
#> 975    979
#> 976    980
#> 977    981
#> 978    982
#> 979    983
#> 980    984
#> 981    985
#> 982    986
#> 983    987
#> 984    988
#> 985    989
#> 986    990
#> 987    991
#> 988    992
#> 989    993
#> 990    994
#> 991    995
#> 992    996
#> 993    997
#> 994    998
#> 995    999
#> 996   1000

sessionInfo()
#> R version 4.0.3 (2020-10-10)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 19042)
#> 
#> Matrix products: default
#> 
#> locale:
#> [1] LC_COLLATE=Portuguese_Brazil.1252  LC_CTYPE=Portuguese_Brazil.1252   
#> [3] LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C                      
#> [5] LC_TIME=Portuguese_Brazil.1252    
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] purrr_0.3.4    magrittr_2.0.1 furrr_0.2.1    future_1.21.0  RSQLite_2.2.2 
#> [6] DBI_1.1.1     
#> 
#> loaded via a namespace (and not attached):
#>  [1] Rcpp_1.0.6        parallelly_1.23.0 knitr_1.30        bit_4.0.4        
#>  [5] rlang_0.4.10      stringr_1.4.0     blob_1.2.1        highr_0.8        
#>  [9] globals_0.14.0    tools_4.0.3       parallel_4.0.3    xfun_0.20        
#> [13] ellipsis_0.3.1    htmltools_0.5.1   yaml_2.2.1        bit64_4.0.5      
#> [17] digest_0.6.27     vctrs_0.3.6       codetools_0.2-18  memoise_1.1.0    
#> [21] evaluate_0.14     rmarkdown_2.6     stringi_1.5.3     compiler_4.0.3   
#> [25] listenv_0.8.0     pkgconfig_2.0.3

Created on 2021-01-21 by the reprex package (v0.3.0)

georgevbsantiago commented 3 years ago

Reprex with RSQLite 2.2.3:

library(DBI)
library(RSQLite)
library(furrr)
#> Carregando pacotes exigidos: future
library(future)
library(magrittr)
library(purrr)
#> 
#> Attaching package: 'purrr'
#> The following object is masked from 'package:magrittr':
#> 
#>     set_names

########################################################

n_teste <- 1:1000

unlink("bd_test.db")

connect_sgbd <- function() {
        conexao <- DBI::dbConnect(RSQLite::SQLite(),
                                  dbname = file.path("bd_test.db")
        )

        return(conexao)
}

teste_write_sqlite <- function(n_teste) {

        tb_teste_iris <- iris[1, ] %>%
                dplyr::mutate(n_loop = n_teste)

        tentativas <- purrr::rate_delay(pause = 2,
                                        max_times = 20
        )

        insist_execute_sqlite <- purrr::insistently(DBI::dbExecute, 
                                                    tentativas,
                                                    quiet = FALSE
        )

        insist_dbWriteTable <- purrr::insistently(DBI::dbWriteTable,
                                                  tentativas,
                                                  quiet = FALSE
        )

        conn <- connect_sgbd()
        on.exit(dbDisconnect(conn))

        tryCatch(
                {
                        insist_execute_sqlite(conn, "BEGIN IMMEDIATE TRANSACTION")
                        # Rollback on failure
                        on.exit(try(dbExecute(conn, "ROLLBACK TRANSACTION")))
                        out <- insist_dbWriteTable(conn, "tb_teste_iris", tb_teste_iris, append = TRUE)
                        dbExecute(conn, "COMMIT TRANSACTION")

                        # Don't rollback on success
                        on.exit(NULL)
                        print(paste(n_teste, "-", out))
                },
                error = function(e) {
                        print(paste(n_teste, "-", conditionMessage(e)))
                }
        )
}

future::plan("multisession",
             workers = 8
)

options(future.rng.onMisuse = "ignore")

furrr::future_walk(n_teste, teste_write_sqlite, .progress = TRUE)
#> [1] "1 - TRUE"
#> [1] "2 - TRUE"
#> [1] "3 - TRUE"
#> [1] "4 - TRUE"
#> [1] "5 - TRUE"
#> [1] "6 - TRUE"
#> [1] "7 - TRUE"
#> [1] "8 - TRUE"
#> [1] "9 - TRUE"
#> [1] "10 - TRUE"
#> [1] "11 - TRUE"
#> [1] "12 - TRUE"
#> [1] "13 - TRUE"
#> [1] "14 - TRUE"
#> [1] "15 - TRUE"
#> [1] "16 - TRUE"
#> [1] "17 - TRUE"
#> [1] "18 - TRUE"
#> [1] "19 - TRUE"
#> [1] "20 - TRUE"
#> [1] "21 - TRUE"
#> [1] "22 - TRUE"
#> [1] "23 - TRUE"
#> [1] "24 - TRUE"
#> [1] "25 - TRUE"
#> [1] "26 - TRUE"
#> [1] "27 - TRUE"
#> [1] "28 - TRUE"
#> [1] "29 - TRUE"
#> [1] "30 - TRUE"
#> [1] "31 - TRUE"
#> [1] "32 - TRUE"
#> [1] "33 - TRUE"
#> [1] "34 - TRUE"
#> [1] "35 - TRUE"
#> [1] "36 - TRUE"
#> [1] "37 - TRUE"
#> [1] "38 - TRUE"
#> [1] "39 - TRUE"
#> [1] "40 - TRUE"
#> [1] "41 - TRUE"
#> [1] "42 - TRUE"
#> [1] "43 - TRUE"
#> [1] "44 - TRUE"
#> [1] "45 - TRUE"
#> [1] "46 - TRUE"
#> [1] "47 - TRUE"
#> [1] "48 - TRUE"
#> [1] "49 - TRUE"
#> [1] "50 - TRUE"
#> [1] "51 - TRUE"
#> [1] "52 - TRUE"
#> [1] "53 - database is locked"
#> [1] "54 - TRUE"
#> [1] "55 - TRUE"
#> [1] "56 - TRUE"
#> [1] "57 - TRUE"
#> [1] "58 - TRUE"
#> [1] "59 - TRUE"
#> [1] "60 - TRUE"
#> [1] "61 - TRUE"
#> [1] "62 - TRUE"
#> [1] "63 - TRUE"
#> [1] "64 - TRUE"
#> [1] "65 - TRUE"
#> [1] "66 - TRUE"
#> [1] "67 - TRUE"
#> [1] "68 - TRUE"
#> [1] "69 - TRUE"
#> [1] "70 - TRUE"
#> [1] "71 - TRUE"
#> [1] "72 - TRUE"
#> [1] "73 - TRUE"
#> [1] "74 - TRUE"
#> [1] "75 - TRUE"
#> [1] "76 - TRUE"
#> [1] "77 - TRUE"
#> [1] "78 - TRUE"
#> [1] "79 - TRUE"
#> [1] "80 - TRUE"
#> [1] "81 - TRUE"
#> [1] "82 - TRUE"
#> [1] "83 - TRUE"
#> [1] "84 - TRUE"
#> [1] "85 - TRUE"
#> [1] "86 - TRUE"
#> [1] "87 - TRUE"
#> [1] "88 - TRUE"
#> [1] "89 - TRUE"
#> [1] "90 - TRUE"
#> [1] "91 - TRUE"
#> [1] "92 - TRUE"
#> [1] "93 - TRUE"
#> [1] "94 - TRUE"
#> [1] "95 - TRUE"
#> [1] "96 - TRUE"
#> [1] "97 - TRUE"
#> [1] "98 - TRUE"
#> [1] "99 - TRUE"
#> [1] "100 - TRUE"
#> [1] "101 - TRUE"
#> [1] "102 - TRUE"
#> [1] "103 - TRUE"
#> [1] "104 - TRUE"
#> [1] "105 - TRUE"
#> [1] "106 - TRUE"
#> [1] "107 - TRUE"
#> [1] "108 - TRUE"
#> [1] "109 - TRUE"
#> [1] "110 - TRUE"
#> [1] "111 - TRUE"
#> [1] "112 - TRUE"
#> [1] "113 - TRUE"
#> [1] "114 - TRUE"
#> [1] "115 - TRUE"
#> [1] "116 - TRUE"
#> [1] "117 - TRUE"
#> [1] "118 - TRUE"
#> [1] "119 - TRUE"
#> [1] "120 - TRUE"
#> [1] "121 - TRUE"
#> [1] "122 - TRUE"
#> [1] "123 - TRUE"
#> [1] "124 - TRUE"
#> [1] "125 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "126 - TRUE"
#> [1] "127 - TRUE"
#> [1] "128 - TRUE"
#> [1] "129 - TRUE"
#> [1] "130 - TRUE"
#> [1] "131 - TRUE"
#> [1] "132 - TRUE"
#> [1] "133 - TRUE"
#> [1] "134 - TRUE"
#> [1] "135 - TRUE"
#> [1] "136 - TRUE"
#> [1] "137 - TRUE"
#> [1] "138 - TRUE"
#> [1] "139 - TRUE"
#> [1] "140 - TRUE"
#> [1] "141 - TRUE"
#> [1] "142 - TRUE"
#> [1] "143 - TRUE"
#> [1] "144 - TRUE"
#> [1] "145 - TRUE"
#> [1] "146 - TRUE"
#> [1] "147 - TRUE"
#> [1] "148 - TRUE"
#> [1] "149 - database is locked"
#> [1] "150 - TRUE"
#> [1] "151 - TRUE"
#> [1] "152 - TRUE"
#> [1] "153 - TRUE"
#> [1] "154 - TRUE"
#> [1] "155 - TRUE"
#> [1] "156 - TRUE"
#> [1] "157 - TRUE"
#> [1] "158 - TRUE"
#> [1] "159 - TRUE"
#> [1] "160 - TRUE"
#> [1] "161 - TRUE"
#> [1] "162 - TRUE"
#> [1] "163 - TRUE"
#> [1] "164 - TRUE"
#> [1] "165 - TRUE"
#> [1] "166 - TRUE"
#> [1] "167 - TRUE"
#> [1] "168 - TRUE"
#> [1] "169 - TRUE"
#> [1] "170 - TRUE"
#> [1] "171 - TRUE"
#> [1] "172 - TRUE"
#> [1] "173 - TRUE"
#> [1] "174 - TRUE"
#> [1] "175 - TRUE"
#> [1] "176 - TRUE"
#> [1] "177 - TRUE"
#> [1] "178 - TRUE"
#> [1] "179 - TRUE"
#> [1] "180 - TRUE"
#> [1] "181 - TRUE"
#> [1] "182 - TRUE"
#> [1] "183 - TRUE"
#> [1] "184 - TRUE"
#> [1] "185 - TRUE"
#> [1] "186 - TRUE"
#> [1] "187 - TRUE"
#> [1] "188 - TRUE"
#> [1] "189 - TRUE"
#> [1] "190 - TRUE"
#> [1] "191 - TRUE"
#> [1] "192 - TRUE"
#> [1] "193 - TRUE"
#> [1] "194 - TRUE"
#> [1] "195 - TRUE"
#> [1] "196 - TRUE"
#> [1] "197 - TRUE"
#> [1] "198 - TRUE"
#> [1] "199 - TRUE"
#> [1] "200 - TRUE"
#> [1] "201 - TRUE"
#> [1] "202 - TRUE"
#> [1] "203 - TRUE"
#> [1] "204 - TRUE"
#> [1] "205 - TRUE"
#> [1] "206 - TRUE"
#> [1] "207 - TRUE"
#> [1] "208 - TRUE"
#> [1] "209 - TRUE"
#> [1] "210 - TRUE"
#> [1] "211 - TRUE"
#> [1] "212 - TRUE"
#> [1] "213 - TRUE"
#> [1] "214 - TRUE"
#> [1] "215 - TRUE"
#> [1] "216 - TRUE"
#> [1] "217 - TRUE"
#> [1] "218 - database is locked"
#> [1] "219 - TRUE"
#> [1] "220 - TRUE"
#> [1] "221 - TRUE"
#> [1] "222 - TRUE"
#> [1] "223 - TRUE"
#> [1] "224 - TRUE"
#> [1] "225 - TRUE"
#> [1] "226 - TRUE"
#> [1] "227 - TRUE"
#> [1] "228 - TRUE"
#> [1] "229 - TRUE"
#> [1] "230 - TRUE"
#> [1] "231 - TRUE"
#> [1] "232 - TRUE"
#> [1] "233 - TRUE"
#> [1] "234 - TRUE"
#> [1] "235 - TRUE"
#> [1] "236 - TRUE"
#> [1] "237 - TRUE"
#> [1] "238 - TRUE"
#> [1] "239 - TRUE"
#> [1] "240 - TRUE"
#> [1] "241 - TRUE"
#> [1] "242 - TRUE"
#> [1] "243 - TRUE"
#> [1] "244 - TRUE"
#> [1] "245 - TRUE"
#> [1] "246 - TRUE"
#> [1] "247 - TRUE"
#> [1] "248 - TRUE"
#> [1] "249 - TRUE"
#> [1] "250 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "251 - TRUE"
#> [1] "252 - TRUE"
#> [1] "253 - TRUE"
#> [1] "254 - TRUE"
#> [1] "255 - TRUE"
#> [1] "256 - TRUE"
#> [1] "257 - TRUE"
#> [1] "258 - TRUE"
#> [1] "259 - TRUE"
#> [1] "260 - TRUE"
#> [1] "261 - TRUE"
#> [1] "262 - TRUE"
#> [1] "263 - TRUE"
#> [1] "264 - TRUE"
#> [1] "265 - TRUE"
#> [1] "266 - TRUE"
#> [1] "267 - TRUE"
#> [1] "268 - TRUE"
#> [1] "269 - TRUE"
#> [1] "270 - TRUE"
#> [1] "271 - TRUE"
#> [1] "272 - TRUE"
#> [1] "273 - TRUE"
#> [1] "274 - TRUE"
#> [1] "275 - TRUE"
#> [1] "276 - TRUE"
#> [1] "277 - TRUE"
#> [1] "278 - TRUE"
#> [1] "279 - TRUE"
#> [1] "280 - TRUE"
#> [1] "281 - TRUE"
#> [1] "282 - TRUE"
#> [1] "283 - TRUE"
#> [1] "284 - TRUE"
#> [1] "285 - TRUE"
#> [1] "286 - TRUE"
#> [1] "287 - TRUE"
#> [1] "288 - TRUE"
#> [1] "289 - TRUE"
#> [1] "290 - TRUE"
#> [1] "291 - TRUE"
#> [1] "292 - TRUE"
#> [1] "293 - TRUE"
#> [1] "294 - TRUE"
#> [1] "295 - TRUE"
#> [1] "296 - TRUE"
#> [1] "297 - TRUE"
#> [1] "298 - TRUE"
#> [1] "299 - TRUE"
#> [1] "300 - TRUE"
#> [1] "301 - TRUE"
#> [1] "302 - TRUE"
#> [1] "303 - TRUE"
#> [1] "304 - TRUE"
#> [1] "305 - TRUE"
#> [1] "306 - TRUE"
#> [1] "307 - TRUE"
#> [1] "308 - TRUE"
#> [1] "309 - TRUE"
#> [1] "310 - TRUE"
#> [1] "311 - TRUE"
#> [1] "312 - TRUE"
#> [1] "313 - TRUE"
#> [1] "314 - TRUE"
#> [1] "315 - TRUE"
#> [1] "316 - TRUE"
#> [1] "317 - TRUE"
#> [1] "318 - TRUE"
#> [1] "319 - TRUE"
#> [1] "320 - TRUE"
#> [1] "321 - TRUE"
#> [1] "322 - TRUE"
#> [1] "323 - TRUE"
#> [1] "324 - TRUE"
#> [1] "325 - TRUE"
#> [1] "326 - TRUE"
#> [1] "327 - TRUE"
#> [1] "328 - TRUE"
#> [1] "329 - TRUE"
#> [1] "330 - TRUE"
#> [1] "331 - TRUE"
#> [1] "332 - TRUE"
#> [1] "333 - database is locked"
#> [1] "334 - TRUE"
#> [1] "335 - TRUE"
#> [1] "336 - TRUE"
#> [1] "337 - TRUE"
#> [1] "338 - TRUE"
#> [1] "339 - TRUE"
#> [1] "340 - TRUE"
#> [1] "341 - TRUE"
#> [1] "342 - TRUE"
#> [1] "343 - TRUE"
#> [1] "344 - TRUE"
#> [1] "345 - TRUE"
#> [1] "346 - TRUE"
#> [1] "347 - TRUE"
#> [1] "348 - TRUE"
#> [1] "349 - TRUE"
#> [1] "350 - TRUE"
#> [1] "351 - TRUE"
#> [1] "352 - TRUE"
#> [1] "353 - TRUE"
#> [1] "354 - TRUE"
#> [1] "355 - TRUE"
#> [1] "356 - TRUE"
#> [1] "357 - TRUE"
#> [1] "358 - TRUE"
#> [1] "359 - TRUE"
#> [1] "360 - TRUE"
#> [1] "361 - TRUE"
#> [1] "362 - TRUE"
#> [1] "363 - TRUE"
#> [1] "364 - TRUE"
#> [1] "365 - TRUE"
#> [1] "366 - TRUE"
#> [1] "367 - TRUE"
#> [1] "368 - TRUE"
#> [1] "369 - TRUE"
#> [1] "370 - TRUE"
#> [1] "371 - TRUE"
#> [1] "372 - TRUE"
#> [1] "373 - TRUE"
#> [1] "374 - TRUE"
#> [1] "375 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "376 - TRUE"
#> [1] "377 - TRUE"
#> [1] "378 - TRUE"
#> [1] "379 - TRUE"
#> [1] "380 - TRUE"
#> [1] "381 - TRUE"
#> [1] "382 - TRUE"
#> [1] "383 - TRUE"
#> [1] "384 - TRUE"
#> [1] "385 - TRUE"
#> [1] "386 - TRUE"
#> [1] "387 - TRUE"
#> [1] "388 - TRUE"
#> [1] "389 - TRUE"
#> [1] "390 - TRUE"
#> [1] "391 - TRUE"
#> [1] "392 - TRUE"
#> [1] "393 - TRUE"
#> [1] "394 - TRUE"
#> [1] "395 - TRUE"
#> [1] "396 - TRUE"
#> [1] "397 - TRUE"
#> [1] "398 - TRUE"
#> [1] "399 - TRUE"
#> [1] "400 - TRUE"
#> [1] "401 - TRUE"
#> [1] "402 - TRUE"
#> [1] "403 - TRUE"
#> [1] "404 - TRUE"
#> [1] "405 - TRUE"
#> [1] "406 - TRUE"
#> [1] "407 - TRUE"
#> [1] "408 - TRUE"
#> [1] "409 - TRUE"
#> [1] "410 - TRUE"
#> [1] "411 - TRUE"
#> [1] "412 - TRUE"
#> [1] "413 - TRUE"
#> [1] "414 - TRUE"
#> [1] "415 - TRUE"
#> [1] "416 - TRUE"
#> [1] "417 - TRUE"
#> [1] "418 - TRUE"
#> [1] "419 - TRUE"
#> [1] "420 - TRUE"
#> [1] "421 - TRUE"
#> [1] "422 - TRUE"
#> [1] "423 - TRUE"
#> [1] "424 - TRUE"
#> [1] "425 - TRUE"
#> [1] "426 - TRUE"
#> [1] "427 - TRUE"
#> [1] "428 - TRUE"
#> [1] "429 - TRUE"
#> [1] "430 - TRUE"
#> [1] "431 - TRUE"
#> [1] "432 - TRUE"
#> [1] "433 - TRUE"
#> [1] "434 - TRUE"
#> [1] "435 - TRUE"
#> [1] "436 - TRUE"
#> [1] "437 - TRUE"
#> [1] "438 - TRUE"
#> [1] "439 - TRUE"
#> [1] "440 - TRUE"
#> [1] "441 - TRUE"
#> [1] "442 - TRUE"
#> [1] "443 - TRUE"
#> [1] "444 - TRUE"
#> [1] "445 - TRUE"
#> [1] "446 - TRUE"
#> [1] "447 - TRUE"
#> [1] "448 - TRUE"
#> [1] "449 - TRUE"
#> [1] "450 - TRUE"
#> [1] "451 - database is locked"
#> [1] "452 - TRUE"
#> [1] "453 - TRUE"
#> [1] "454 - TRUE"
#> [1] "455 - TRUE"
#> [1] "456 - TRUE"
#> [1] "457 - TRUE"
#> [1] "458 - TRUE"
#> [1] "459 - TRUE"
#> [1] "460 - TRUE"
#> [1] "461 - TRUE"
#> [1] "462 - TRUE"
#> [1] "463 - TRUE"
#> [1] "464 - TRUE"
#> [1] "465 - TRUE"
#> [1] "466 - TRUE"
#> [1] "467 - TRUE"
#> [1] "468 - TRUE"
#> [1] "469 - TRUE"
#> [1] "470 - TRUE"
#> [1] "471 - TRUE"
#> [1] "472 - TRUE"
#> [1] "473 - TRUE"
#> [1] "474 - TRUE"
#> [1] "475 - TRUE"
#> [1] "476 - TRUE"
#> [1] "477 - TRUE"
#> [1] "478 - TRUE"
#> [1] "479 - TRUE"
#> [1] "480 - TRUE"
#> [1] "481 - TRUE"
#> [1] "482 - TRUE"
#> [1] "483 - TRUE"
#> [1] "484 - TRUE"
#> [1] "485 - TRUE"
#> [1] "486 - TRUE"
#> [1] "487 - TRUE"
#> [1] "488 - TRUE"
#> [1] "489 - TRUE"
#> [1] "490 - TRUE"
#> [1] "491 - TRUE"
#> [1] "492 - TRUE"
#> [1] "493 - TRUE"
#> [1] "494 - TRUE"
#> [1] "495 - TRUE"
#> [1] "496 - TRUE"
#> [1] "497 - TRUE"
#> [1] "498 - TRUE"
#> [1] "499 - TRUE"
#> [1] "500 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "501 - TRUE"
#> [1] "502 - TRUE"
#> [1] "503 - TRUE"
#> [1] "504 - TRUE"
#> [1] "505 - TRUE"
#> [1] "506 - TRUE"
#> [1] "507 - TRUE"
#> [1] "508 - TRUE"
#> [1] "509 - TRUE"
#> [1] "510 - TRUE"
#> [1] "511 - TRUE"
#> [1] "512 - TRUE"
#> [1] "513 - TRUE"
#> [1] "514 - TRUE"
#> [1] "515 - TRUE"
#> [1] "516 - TRUE"
#> [1] "517 - TRUE"
#> [1] "518 - TRUE"
#> [1] "519 - TRUE"
#> [1] "520 - database is locked"
#> [1] "521 - TRUE"
#> [1] "522 - TRUE"
#> [1] "523 - TRUE"
#> [1] "524 - TRUE"
#> [1] "525 - TRUE"
#> [1] "526 - TRUE"
#> [1] "527 - TRUE"
#> [1] "528 - TRUE"
#> [1] "529 - TRUE"
#> [1] "530 - TRUE"
#> [1] "531 - TRUE"
#> [1] "532 - TRUE"
#> [1] "533 - TRUE"
#> [1] "534 - TRUE"
#> [1] "535 - TRUE"
#> [1] "536 - TRUE"
#> [1] "537 - TRUE"
#> [1] "538 - TRUE"
#> [1] "539 - TRUE"
#> [1] "540 - TRUE"
#> [1] "541 - TRUE"
#> [1] "542 - TRUE"
#> [1] "543 - TRUE"
#> [1] "544 - TRUE"
#> [1] "545 - TRUE"
#> [1] "546 - TRUE"
#> [1] "547 - TRUE"
#> [1] "548 - TRUE"
#> [1] "549 - TRUE"
#> [1] "550 - TRUE"
#> [1] "551 - TRUE"
#> [1] "552 - TRUE"
#> [1] "553 - TRUE"
#> [1] "554 - TRUE"
#> [1] "555 - TRUE"
#> [1] "556 - TRUE"
#> [1] "557 - TRUE"
#> [1] "558 - TRUE"
#> [1] "559 - TRUE"
#> [1] "560 - TRUE"
#> [1] "561 - TRUE"
#> [1] "562 - TRUE"
#> [1] "563 - TRUE"
#> [1] "564 - TRUE"
#> [1] "565 - TRUE"
#> [1] "566 - TRUE"
#> [1] "567 - TRUE"
#> [1] "568 - TRUE"
#> [1] "569 - TRUE"
#> [1] "570 - TRUE"
#> [1] "571 - TRUE"
#> [1] "572 - TRUE"
#> [1] "573 - TRUE"
#> [1] "574 - TRUE"
#> [1] "575 - TRUE"
#> [1] "576 - TRUE"
#> [1] "577 - TRUE"
#> [1] "578 - TRUE"
#> [1] "579 - TRUE"
#> [1] "580 - TRUE"
#> [1] "581 - TRUE"
#> [1] "582 - TRUE"
#> [1] "583 - TRUE"
#> [1] "584 - TRUE"
#> [1] "585 - TRUE"
#> [1] "586 - TRUE"
#> [1] "587 - TRUE"
#> [1] "588 - TRUE"
#> [1] "589 - TRUE"
#> [1] "590 - TRUE"
#> [1] "591 - TRUE"
#> [1] "592 - TRUE"
#> [1] "593 - TRUE"
#> [1] "594 - TRUE"
#> [1] "595 - TRUE"
#> [1] "596 - TRUE"
#> [1] "597 - TRUE"
#> [1] "598 - TRUE"
#> [1] "599 - TRUE"
#> [1] "600 - TRUE"
#> [1] "601 - TRUE"
#> [1] "602 - TRUE"
#> [1] "603 - TRUE"
#> [1] "604 - TRUE"
#> [1] "605 - TRUE"
#> [1] "606 - TRUE"
#> [1] "607 - TRUE"
#> [1] "608 - TRUE"
#> [1] "609 - TRUE"
#> [1] "610 - TRUE"
#> [1] "611 - TRUE"
#> [1] "612 - TRUE"
#> [1] "613 - TRUE"
#> [1] "614 - TRUE"
#> [1] "615 - TRUE"
#> [1] "616 - TRUE"
#> [1] "617 - TRUE"
#> [1] "618 - TRUE"
#> [1] "619 - TRUE"
#> [1] "620 - TRUE"
#> [1] "621 - TRUE"
#> [1] "622 - TRUE"
#> [1] "623 - TRUE"
#> [1] "624 - TRUE"
#> [1] "625 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "626 - TRUE"
#> [1] "627 - TRUE"
#> [1] "628 - TRUE"
#> [1] "629 - TRUE"
#> [1] "630 - TRUE"
#> [1] "631 - TRUE"
#> [1] "632 - TRUE"
#> [1] "633 - TRUE"
#> [1] "634 - TRUE"
#> [1] "635 - TRUE"
#> [1] "636 - TRUE"
#> [1] "637 - TRUE"
#> [1] "638 - TRUE"
#> [1] "639 - TRUE"
#> [1] "640 - TRUE"
#> [1] "641 - TRUE"
#> [1] "642 - TRUE"
#> [1] "643 - TRUE"
#> [1] "644 - TRUE"
#> [1] "645 - TRUE"
#> [1] "646 - TRUE"
#> [1] "647 - TRUE"
#> [1] "648 - TRUE"
#> [1] "649 - TRUE"
#> [1] "650 - TRUE"
#> [1] "651 - TRUE"
#> [1] "652 - TRUE"
#> [1] "653 - TRUE"
#> [1] "654 - TRUE"
#> [1] "655 - TRUE"
#> [1] "656 - TRUE"
#> [1] "657 - TRUE"
#> [1] "658 - TRUE"
#> [1] "659 - TRUE"
#> [1] "660 - TRUE"
#> [1] "661 - TRUE"
#> [1] "662 - TRUE"
#> [1] "663 - TRUE"
#> [1] "664 - TRUE"
#> [1] "665 - TRUE"
#> [1] "666 - TRUE"
#> [1] "667 - TRUE"
#> [1] "668 - TRUE"
#> [1] "669 - TRUE"
#> [1] "670 - TRUE"
#> [1] "671 - TRUE"
#> [1] "672 - TRUE"
#> [1] "673 - TRUE"
#> [1] "674 - TRUE"
#> [1] "675 - TRUE"
#> [1] "676 - TRUE"
#> [1] "677 - TRUE"
#> [1] "678 - TRUE"
#> [1] "679 - TRUE"
#> [1] "680 - TRUE"
#> [1] "681 - TRUE"
#> [1] "682 - TRUE"
#> [1] "683 - TRUE"
#> [1] "684 - TRUE"
#> [1] "685 - TRUE"
#> [1] "686 - TRUE"
#> [1] "687 - TRUE"
#> [1] "688 - TRUE"
#> [1] "689 - TRUE"
#> [1] "690 - TRUE"
#> [1] "691 - TRUE"
#> [1] "692 - TRUE"
#> [1] "693 - TRUE"
#> [1] "694 - TRUE"
#> [1] "695 - TRUE"
#> [1] "696 - TRUE"
#> [1] "697 - TRUE"
#> [1] "698 - TRUE"
#> [1] "699 - TRUE"
#> [1] "700 - TRUE"
#> [1] "701 - TRUE"
#> [1] "702 - TRUE"
#> [1] "703 - TRUE"
#> [1] "704 - TRUE"
#> [1] "705 - TRUE"
#> [1] "706 - TRUE"
#> [1] "707 - TRUE"
#> [1] "708 - TRUE"
#> [1] "709 - TRUE"
#> [1] "710 - TRUE"
#> [1] "711 - TRUE"
#> [1] "712 - TRUE"
#> [1] "713 - TRUE"
#> [1] "714 - TRUE"
#> [1] "715 - TRUE"
#> [1] "716 - TRUE"
#> [1] "717 - TRUE"
#> [1] "718 - TRUE"
#> [1] "719 - TRUE"
#> [1] "720 - TRUE"
#> [1] "721 - TRUE"
#> [1] "722 - TRUE"
#> [1] "723 - TRUE"
#> [1] "724 - TRUE"
#> [1] "725 - TRUE"
#> [1] "726 - TRUE"
#> [1] "727 - TRUE"
#> [1] "728 - TRUE"
#> [1] "729 - TRUE"
#> [1] "730 - TRUE"
#> [1] "731 - TRUE"
#> [1] "732 - TRUE"
#> [1] "733 - TRUE"
#> [1] "734 - TRUE"
#> [1] "735 - TRUE"
#> [1] "736 - TRUE"
#> [1] "737 - TRUE"
#> [1] "738 - TRUE"
#> [1] "739 - TRUE"
#> [1] "740 - TRUE"
#> [1] "741 - TRUE"
#> [1] "742 - TRUE"
#> [1] "743 - TRUE"
#> [1] "744 - TRUE"
#> [1] "745 - TRUE"
#> [1] "746 - TRUE"
#> [1] "747 - TRUE"
#> [1] "748 - TRUE"
#> [1] "749 - TRUE"
#> [1] "750 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "751 - TRUE"
#> [1] "752 - TRUE"
#> [1] "753 - TRUE"
#> [1] "754 - TRUE"
#> [1] "755 - TRUE"
#> [1] "756 - TRUE"
#> [1] "757 - TRUE"
#> [1] "758 - TRUE"
#> [1] "759 - TRUE"
#> [1] "760 - TRUE"
#> [1] "761 - TRUE"
#> [1] "762 - TRUE"
#> [1] "763 - TRUE"
#> [1] "764 - TRUE"
#> [1] "765 - TRUE"
#> [1] "766 - TRUE"
#> [1] "767 - TRUE"
#> [1] "768 - TRUE"
#> [1] "769 - TRUE"
#> [1] "770 - TRUE"
#> [1] "771 - TRUE"
#> [1] "772 - TRUE"
#> [1] "773 - TRUE"
#> [1] "774 - TRUE"
#> [1] "775 - TRUE"
#> [1] "776 - TRUE"
#> [1] "777 - TRUE"
#> [1] "778 - TRUE"
#> [1] "779 - TRUE"
#> [1] "780 - TRUE"
#> [1] "781 - TRUE"
#> [1] "782 - TRUE"
#> [1] "783 - TRUE"
#> [1] "784 - TRUE"
#> [1] "785 - TRUE"
#> [1] "786 - TRUE"
#> [1] "787 - TRUE"
#> [1] "788 - TRUE"
#> [1] "789 - TRUE"
#> [1] "790 - TRUE"
#> [1] "791 - TRUE"
#> [1] "792 - TRUE"
#> [1] "793 - TRUE"
#> [1] "794 - TRUE"
#> [1] "795 - TRUE"
#> [1] "796 - TRUE"
#> [1] "797 - TRUE"
#> [1] "798 - TRUE"
#> [1] "799 - TRUE"
#> [1] "800 - TRUE"
#> [1] "801 - TRUE"
#> [1] "802 - TRUE"
#> [1] "803 - TRUE"
#> [1] "804 - TRUE"
#> [1] "805 - TRUE"
#> [1] "806 - TRUE"
#> [1] "807 - TRUE"
#> [1] "808 - TRUE"
#> [1] "809 - TRUE"
#> [1] "810 - TRUE"
#> [1] "811 - TRUE"
#> [1] "812 - TRUE"
#> [1] "813 - TRUE"
#> [1] "814 - TRUE"
#> [1] "815 - TRUE"
#> [1] "816 - TRUE"
#> [1] "817 - TRUE"
#> [1] "818 - TRUE"
#> [1] "819 - TRUE"
#> [1] "820 - TRUE"
#> [1] "821 - TRUE"
#> [1] "822 - TRUE"
#> [1] "823 - TRUE"
#> [1] "824 - TRUE"
#> [1] "825 - TRUE"
#> [1] "826 - TRUE"
#> [1] "827 - TRUE"
#> [1] "828 - TRUE"
#> [1] "829 - TRUE"
#> [1] "830 - TRUE"
#> [1] "831 - TRUE"
#> [1] "832 - TRUE"
#> [1] "833 - TRUE"
#> [1] "834 - TRUE"
#> [1] "835 - TRUE"
#> [1] "836 - TRUE"
#> [1] "837 - TRUE"
#> [1] "838 - TRUE"
#> [1] "839 - TRUE"
#> [1] "840 - TRUE"
#> [1] "841 - TRUE"
#> [1] "842 - TRUE"
#> [1] "843 - TRUE"
#> [1] "844 - TRUE"
#> [1] "845 - TRUE"
#> [1] "846 - TRUE"
#> [1] "847 - TRUE"
#> [1] "848 - TRUE"
#> [1] "849 - TRUE"
#> [1] "850 - TRUE"
#> [1] "851 - TRUE"
#> [1] "852 - TRUE"
#> [1] "853 - TRUE"
#> [1] "854 - TRUE"
#> [1] "855 - TRUE"
#> [1] "856 - TRUE"
#> [1] "857 - TRUE"
#> [1] "858 - TRUE"
#> [1] "859 - TRUE"
#> [1] "860 - TRUE"
#> [1] "861 - TRUE"
#> [1] "862 - TRUE"
#> [1] "863 - TRUE"
#> [1] "864 - TRUE"
#> [1] "865 - TRUE"
#> [1] "866 - TRUE"
#> [1] "867 - TRUE"
#> [1] "868 - TRUE"
#> [1] "869 - TRUE"
#> [1] "870 - TRUE"
#> [1] "871 - TRUE"
#> [1] "872 - TRUE"
#> [1] "873 - TRUE"
#> [1] "874 - TRUE"
#> [1] "875 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> [1] "876 - TRUE"
#> [1] "877 - TRUE"
#> [1] "878 - TRUE"
#> [1] "879 - TRUE"
#> [1] "880 - TRUE"
#> [1] "881 - TRUE"
#> [1] "882 - TRUE"
#> [1] "883 - TRUE"
#> [1] "884 - TRUE"
#> [1] "885 - TRUE"
#> [1] "886 - TRUE"
#> [1] "887 - TRUE"
#> [1] "888 - TRUE"
#> [1] "889 - TRUE"
#> [1] "890 - TRUE"
#> [1] "891 - TRUE"
#> [1] "892 - TRUE"
#> [1] "893 - TRUE"
#> [1] "894 - TRUE"
#> [1] "895 - TRUE"
#> [1] "896 - TRUE"
#> [1] "897 - TRUE"
#> [1] "898 - TRUE"
#> [1] "899 - TRUE"
#> [1] "900 - TRUE"
#> [1] "901 - TRUE"
#> [1] "902 - TRUE"
#> [1] "903 - TRUE"
#> [1] "904 - TRUE"
#> [1] "905 - TRUE"
#> [1] "906 - TRUE"
#> [1] "907 - TRUE"
#> [1] "908 - TRUE"
#> [1] "909 - TRUE"
#> [1] "910 - TRUE"
#> [1] "911 - TRUE"
#> [1] "912 - TRUE"
#> [1] "913 - TRUE"
#> [1] "914 - TRUE"
#> [1] "915 - TRUE"
#> [1] "916 - TRUE"
#> [1] "917 - TRUE"
#> [1] "918 - TRUE"
#> [1] "919 - TRUE"
#> [1] "920 - TRUE"
#> [1] "921 - TRUE"
#> [1] "922 - TRUE"
#> [1] "923 - TRUE"
#> [1] "924 - TRUE"
#> [1] "925 - TRUE"
#> [1] "926 - TRUE"
#> [1] "927 - TRUE"
#> [1] "928 - TRUE"
#> [1] "929 - TRUE"
#> [1] "930 - TRUE"
#> [1] "931 - TRUE"
#> [1] "932 - TRUE"
#> [1] "933 - TRUE"
#> [1] "934 - TRUE"
#> [1] "935 - TRUE"
#> [1] "936 - TRUE"
#> [1] "937 - TRUE"
#> [1] "938 - TRUE"
#> [1] "939 - TRUE"
#> [1] "940 - TRUE"
#> [1] "941 - TRUE"
#> [1] "942 - TRUE"
#> [1] "943 - TRUE"
#> [1] "944 - TRUE"
#> [1] "945 - TRUE"
#> [1] "946 - TRUE"
#> [1] "947 - TRUE"
#> [1] "948 - TRUE"
#> [1] "949 - TRUE"
#> [1] "950 - TRUE"
#> [1] "951 - TRUE"
#> [1] "952 - TRUE"
#> [1] "953 - TRUE"
#> [1] "954 - TRUE"
#> [1] "955 - TRUE"
#> [1] "956 - TRUE"
#> [1] "957 - TRUE"
#> [1] "958 - TRUE"
#> [1] "959 - TRUE"
#> [1] "960 - TRUE"
#> [1] "961 - TRUE"
#> [1] "962 - TRUE"
#> [1] "963 - TRUE"
#> [1] "964 - TRUE"
#> [1] "965 - TRUE"
#> [1] "966 - TRUE"
#> [1] "967 - TRUE"
#> [1] "968 - TRUE"
#> [1] "969 - TRUE"
#> [1] "970 - TRUE"
#> [1] "971 - TRUE"
#> [1] "972 - TRUE"
#> [1] "973 - TRUE"
#> [1] "974 - TRUE"
#> [1] "975 - TRUE"
#> [1] "976 - TRUE"
#> [1] "977 - TRUE"
#> [1] "978 - TRUE"
#> [1] "979 - TRUE"
#> [1] "980 - TRUE"
#> [1] "981 - TRUE"
#> [1] "982 - TRUE"
#> [1] "983 - TRUE"
#> [1] "984 - TRUE"
#> [1] "985 - TRUE"
#> [1] "986 - TRUE"
#> [1] "987 - TRUE"
#> [1] "988 - TRUE"
#> [1] "989 - TRUE"
#> [1] "990 - TRUE"
#> [1] "991 - TRUE"
#> [1] "992 - TRUE"
#> [1] "993 - TRUE"
#> [1] "994 - TRUE"
#> [1] "995 - TRUE"
#> [1] "996 - TRUE"
#> [1] "997 - TRUE"
#> [1] "998 - TRUE"
#> [1] "999 - TRUE"
#> [1] "1000 - TRUE"
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.
#> Error: database is locked
#> Retrying in 2 seconds.

########################################################

con <- dbConnect(RSQLite::SQLite(), dbname = file.path("bd_test.db"))
dbGetQuery(con, "SELECT n_loop FROM tb_teste_iris ORDER BY n_loop")
#>     n_loop
#> 1        1
#> 2        2
#> 3        3
#> 4        4
#> 5        5
#> 6        6
#> 7        7
#> 8        8
#> 9        9
#> 10      10
#> 11      11
#> 12      12
#> 13      13
#> 14      14
#> 15      15
#> 16      16
#> 17      17
#> 18      18
#> 19      19
#> 20      20
#> 21      21
#> 22      22
#> 23      23
#> 24      24
#> 25      25
#> 26      26
#> 27      27
#> 28      28
#> 29      29
#> 30      30
#> 31      31
#> 32      32
#> 33      33
#> 34      34
#> 35      35
#> 36      36
#> 37      37
#> 38      38
#> 39      39
#> 40      40
#> 41      41
#> 42      42
#> 43      43
#> 44      44
#> 45      45
#> 46      46
#> 47      47
#> 48      48
#> 49      49
#> 50      50
#> 51      51
#> 52      52
#> 53      54
#> 54      55
#> 55      56
#> 56      57
#> 57      58
#> 58      59
#> 59      60
#> 60      61
#> 61      62
#> 62      63
#> 63      64
#> 64      65
#> 65      66
#> 66      67
#> 67      68
#> 68      69
#> 69      70
#> 70      71
#> 71      72
#> 72      73
#> 73      74
#> 74      75
#> 75      76
#> 76      77
#> 77      78
#> 78      79
#> 79      80
#> 80      81
#> 81      82
#> 82      83
#> 83      84
#> 84      85
#> 85      86
#> 86      87
#> 87      88
#> 88      89
#> 89      90
#> 90      91
#> 91      92
#> 92      93
#> 93      94
#> 94      95
#> 95      96
#> 96      97
#> 97      98
#> 98      99
#> 99     100
#> 100    101
#> 101    102
#> 102    103
#> 103    104
#> 104    105
#> 105    106
#> 106    107
#> 107    108
#> 108    109
#> 109    110
#> 110    111
#> 111    112
#> 112    113
#> 113    114
#> 114    115
#> 115    116
#> 116    117
#> 117    118
#> 118    119
#> 119    120
#> 120    121
#> 121    122
#> 122    123
#> 123    124
#> 124    125
#> 125    126
#> 126    127
#> 127    128
#> 128    129
#> 129    130
#> 130    131
#> 131    132
#> 132    133
#> 133    134
#> 134    135
#> 135    136
#> 136    137
#> 137    138
#> 138    139
#> 139    140
#> 140    141
#> 141    142
#> 142    143
#> 143    144
#> 144    145
#> 145    146
#> 146    147
#> 147    148
#> 148    150
#> 149    151
#> 150    152
#> 151    153
#> 152    154
#> 153    155
#> 154    156
#> 155    157
#> 156    158
#> 157    159
#> 158    160
#> 159    161
#> 160    162
#> 161    163
#> 162    164
#> 163    165
#> 164    166
#> 165    167
#> 166    168
#> 167    169
#> 168    170
#> 169    171
#> 170    172
#> 171    173
#> 172    174
#> 173    175
#> 174    176
#> 175    177
#> 176    178
#> 177    179
#> 178    180
#> 179    181
#> 180    182
#> 181    183
#> 182    184
#> 183    185
#> 184    186
#> 185    187
#> 186    188
#> 187    189
#> 188    190
#> 189    191
#> 190    192
#> 191    193
#> 192    194
#> 193    195
#> 194    196
#> 195    197
#> 196    198
#> 197    199
#> 198    200
#> 199    201
#> 200    202
#> 201    203
#> 202    204
#> 203    205
#> 204    206
#> 205    207
#> 206    208
#> 207    209
#> 208    210
#> 209    211
#> 210    212
#> 211    213
#> 212    214
#> 213    215
#> 214    216
#> 215    217
#> 216    219
#> 217    220
#> 218    221
#> 219    222
#> 220    223
#> 221    224
#> 222    225
#> 223    226
#> 224    227
#> 225    228
#> 226    229
#> 227    230
#> 228    231
#> 229    232
#> 230    233
#> 231    234
#> 232    235
#> 233    236
#> 234    237
#> 235    238
#> 236    239
#> 237    240
#> 238    241
#> 239    242
#> 240    243
#> 241    244
#> 242    245
#> 243    246
#> 244    247
#> 245    248
#> 246    249
#> 247    250
#> 248    251
#> 249    252
#> 250    253
#> 251    254
#> 252    255
#> 253    256
#> 254    257
#> 255    258
#> 256    259
#> 257    260
#> 258    261
#> 259    262
#> 260    263
#> 261    264
#> 262    265
#> 263    266
#> 264    267
#> 265    268
#> 266    269
#> 267    270
#> 268    271
#> 269    272
#> 270    273
#> 271    274
#> 272    275
#> 273    276
#> 274    277
#> 275    278
#> 276    279
#> 277    280
#> 278    281
#> 279    282
#> 280    283
#> 281    284
#> 282    285
#> 283    286
#> 284    287
#> 285    288
#> 286    289
#> 287    290
#> 288    291
#> 289    292
#> 290    293
#> 291    294
#> 292    295
#> 293    296
#> 294    297
#> 295    298
#> 296    299
#> 297    300
#> 298    301
#> 299    302
#> 300    303
#> 301    304
#> 302    305
#> 303    306
#> 304    307
#> 305    308
#> 306    309
#> 307    310
#> 308    311
#> 309    312
#> 310    313
#> 311    314
#> 312    315
#> 313    316
#> 314    317
#> 315    318
#> 316    319
#> 317    320
#> 318    321
#> 319    322
#> 320    323
#> 321    324
#> 322    325
#> 323    326
#> 324    327
#> 325    328
#> 326    329
#> 327    330
#> 328    331
#> 329    332
#> 330    334
#> 331    335
#> 332    336
#> 333    337
#> 334    338
#> 335    339
#> 336    340
#> 337    341
#> 338    342
#> 339    343
#> 340    344
#> 341    345
#> 342    346
#> 343    347
#> 344    348
#> 345    349
#> 346    350
#> 347    351
#> 348    352
#> 349    353
#> 350    354
#> 351    355
#> 352    356
#> 353    357
#> 354    358
#> 355    359
#> 356    360
#> 357    361
#> 358    362
#> 359    363
#> 360    364
#> 361    365
#> 362    366
#> 363    367
#> 364    368
#> 365    369
#> 366    370
#> 367    371
#> 368    372
#> 369    373
#> 370    374
#> 371    375
#> 372    376
#> 373    377
#> 374    378
#> 375    379
#> 376    380
#> 377    381
#> 378    382
#> 379    383
#> 380    384
#> 381    385
#> 382    386
#> 383    387
#> 384    388
#> 385    389
#> 386    390
#> 387    391
#> 388    392
#> 389    393
#> 390    394
#> 391    395
#> 392    396
#> 393    397
#> 394    398
#> 395    399
#> 396    400
#> 397    401
#> 398    402
#> 399    403
#> 400    404
#> 401    405
#> 402    406
#> 403    407
#> 404    408
#> 405    409
#> 406    410
#> 407    411
#> 408    412
#> 409    413
#> 410    414
#> 411    415
#> 412    416
#> 413    417
#> 414    418
#> 415    419
#> 416    420
#> 417    421
#> 418    422
#> 419    423
#> 420    424
#> 421    425
#> 422    426
#> 423    427
#> 424    428
#> 425    429
#> 426    430
#> 427    431
#> 428    432
#> 429    433
#> 430    434
#> 431    435
#> 432    436
#> 433    437
#> 434    438
#> 435    439
#> 436    440
#> 437    441
#> 438    442
#> 439    443
#> 440    444
#> 441    445
#> 442    446
#> 443    447
#> 444    448
#> 445    449
#> 446    450
#> 447    452
#> 448    453
#> 449    454
#> 450    455
#> 451    456
#> 452    457
#> 453    458
#> 454    459
#> 455    460
#> 456    461
#> 457    462
#> 458    463
#> 459    464
#> 460    465
#> 461    466
#> 462    467
#> 463    468
#> 464    469
#> 465    470
#> 466    471
#> 467    472
#> 468    473
#> 469    474
#> 470    475
#> 471    476
#> 472    477
#> 473    478
#> 474    479
#> 475    480
#> 476    481
#> 477    482
#> 478    483
#> 479    484
#> 480    485
#> 481    486
#> 482    487
#> 483    488
#> 484    489
#> 485    490
#> 486    491
#> 487    492
#> 488    493
#> 489    494
#> 490    495
#> 491    496
#> 492    497
#> 493    498
#> 494    499
#> 495    500
#> 496    501
#> 497    502
#> 498    503
#> 499    504
#> 500    505
#> 501    506
#> 502    507
#> 503    508
#> 504    509
#> 505    510
#> 506    511
#> 507    512
#> 508    513
#> 509    514
#> 510    515
#> 511    516
#> 512    517
#> 513    518
#> 514    519
#> 515    521
#> 516    522
#> 517    523
#> 518    524
#> 519    525
#> 520    526
#> 521    527
#> 522    528
#> 523    529
#> 524    530
#> 525    531
#> 526    532
#> 527    533
#> 528    534
#> 529    535
#> 530    536
#> 531    537
#> 532    538
#> 533    539
#> 534    540
#> 535    541
#> 536    542
#> 537    543
#> 538    544
#> 539    545
#> 540    546
#> 541    547
#> 542    548
#> 543    549
#> 544    550
#> 545    551
#> 546    552
#> 547    553
#> 548    554
#> 549    555
#> 550    556
#> 551    557
#> 552    558
#> 553    559
#> 554    560
#> 555    561
#> 556    562
#> 557    563
#> 558    564
#> 559    565
#> 560    566
#> 561    567
#> 562    568
#> 563    569
#> 564    570
#> 565    571
#> 566    572
#> 567    573
#> 568    574
#> 569    575
#> 570    576
#> 571    577
#> 572    578
#> 573    579
#> 574    580
#> 575    581
#> 576    582
#> 577    583
#> 578    584
#> 579    585
#> 580    586
#> 581    587
#> 582    588
#> 583    589
#> 584    590
#> 585    591
#> 586    592
#> 587    593
#> 588    594
#> 589    595
#> 590    596
#> 591    597
#> 592    598
#> 593    599
#> 594    600
#> 595    601
#> 596    602
#> 597    603
#> 598    604
#> 599    605
#> 600    606
#> 601    607
#> 602    608
#> 603    609
#> 604    610
#> 605    611
#> 606    612
#> 607    613
#> 608    614
#> 609    615
#> 610    616
#> 611    617
#> 612    618
#> 613    619
#> 614    620
#> 615    621
#> 616    622
#> 617    623
#> 618    624
#> 619    625
#> 620    626
#> 621    627
#> 622    628
#> 623    629
#> 624    630
#> 625    631
#> 626    632
#> 627    633
#> 628    634
#> 629    635
#> 630    636
#> 631    637
#> 632    638
#> 633    639
#> 634    640
#> 635    641
#> 636    642
#> 637    643
#> 638    644
#> 639    645
#> 640    646
#> 641    647
#> 642    648
#> 643    649
#> 644    650
#> 645    651
#> 646    652
#> 647    653
#> 648    654
#> 649    655
#> 650    656
#> 651    657
#> 652    658
#> 653    659
#> 654    660
#> 655    661
#> 656    662
#> 657    663
#> 658    664
#> 659    665
#> 660    666
#> 661    667
#> 662    668
#> 663    669
#> 664    670
#> 665    671
#> 666    672
#> 667    673
#> 668    674
#> 669    675
#> 670    676
#> 671    677
#> 672    678
#> 673    679
#> 674    680
#> 675    681
#> 676    682
#> 677    683
#> 678    684
#> 679    685
#> 680    686
#> 681    687
#> 682    688
#> 683    689
#> 684    690
#> 685    691
#> 686    692
#> 687    693
#> 688    694
#> 689    695
#> 690    696
#> 691    697
#> 692    698
#> 693    699
#> 694    700
#> 695    701
#> 696    702
#> 697    703
#> 698    704
#> 699    705
#> 700    706
#> 701    707
#> 702    708
#> 703    709
#> 704    710
#> 705    711
#> 706    712
#> 707    713
#> 708    714
#> 709    715
#> 710    716
#> 711    717
#> 712    718
#> 713    719
#> 714    720
#> 715    721
#> 716    722
#> 717    723
#> 718    724
#> 719    725
#> 720    726
#> 721    727
#> 722    728
#> 723    729
#> 724    730
#> 725    731
#> 726    732
#> 727    733
#> 728    734
#> 729    735
#> 730    736
#> 731    737
#> 732    738
#> 733    739
#> 734    740
#> 735    741
#> 736    742
#> 737    743
#> 738    744
#> 739    745
#> 740    746
#> 741    747
#> 742    748
#> 743    749
#> 744    750
#> 745    751
#> 746    752
#> 747    753
#> 748    754
#> 749    755
#> 750    756
#> 751    757
#> 752    758
#> 753    759
#> 754    760
#> 755    761
#> 756    762
#> 757    763
#> 758    764
#> 759    765
#> 760    766
#> 761    767
#> 762    768
#> 763    769
#> 764    770
#> 765    771
#> 766    772
#> 767    773
#> 768    774
#> 769    775
#> 770    776
#> 771    777
#> 772    778
#> 773    779
#> 774    780
#> 775    781
#> 776    782
#> 777    783
#> 778    784
#> 779    785
#> 780    786
#> 781    787
#> 782    788
#> 783    789
#> 784    790
#> 785    791
#> 786    792
#> 787    793
#> 788    794
#> 789    795
#> 790    796
#> 791    797
#> 792    798
#> 793    799
#> 794    800
#> 795    801
#> 796    802
#> 797    803
#> 798    804
#> 799    805
#> 800    806
#> 801    807
#> 802    808
#> 803    809
#> 804    810
#> 805    811
#> 806    812
#> 807    813
#> 808    814
#> 809    815
#> 810    816
#> 811    817
#> 812    818
#> 813    819
#> 814    820
#> 815    821
#> 816    822
#> 817    823
#> 818    824
#> 819    825
#> 820    826
#> 821    827
#> 822    828
#> 823    829
#> 824    830
#> 825    831
#> 826    832
#> 827    833
#> 828    834
#> 829    835
#> 830    836
#> 831    837
#> 832    838
#> 833    839
#> 834    840
#> 835    841
#> 836    842
#> 837    843
#> 838    844
#> 839    845
#> 840    846
#> 841    847
#> 842    848
#> 843    849
#> 844    850
#> 845    851
#> 846    852
#> 847    853
#> 848    854
#> 849    855
#> 850    856
#> 851    857
#> 852    858
#> 853    859
#> 854    860
#> 855    861
#> 856    862
#> 857    863
#> 858    864
#> 859    865
#> 860    866
#> 861    867
#> 862    868
#> 863    869
#> 864    870
#> 865    871
#> 866    872
#> 867    873
#> 868    874
#> 869    875
#> 870    876
#> 871    877
#> 872    878
#> 873    879
#> 874    880
#> 875    881
#> 876    882
#> 877    883
#> 878    884
#> 879    885
#> 880    886
#> 881    887
#> 882    888
#> 883    889
#> 884    890
#> 885    891
#> 886    892
#> 887    893
#> 888    894
#> 889    895
#> 890    896
#> 891    897
#> 892    898
#> 893    899
#> 894    900
#> 895    901
#> 896    902
#> 897    903
#> 898    904
#> 899    905
#> 900    906
#> 901    907
#> 902    908
#> 903    909
#> 904    910
#> 905    911
#> 906    912
#> 907    913
#> 908    914
#> 909    915
#> 910    916
#> 911    917
#> 912    918
#> 913    919
#> 914    920
#> 915    921
#> 916    922
#> 917    923
#> 918    924
#> 919    925
#> 920    926
#> 921    927
#> 922    928
#> 923    929
#> 924    930
#> 925    931
#> 926    932
#> 927    933
#> 928    934
#> 929    935
#> 930    936
#> 931    937
#> 932    938
#> 933    939
#> 934    940
#> 935    941
#> 936    942
#> 937    943
#> 938    944
#> 939    945
#> 940    946
#> 941    947
#> 942    948
#> 943    949
#> 944    950
#> 945    951
#> 946    952
#> 947    953
#> 948    954
#> 949    955
#> 950    956
#> 951    957
#> 952    958
#> 953    959
#> 954    960
#> 955    961
#> 956    962
#> 957    963
#> 958    964
#> 959    965
#> 960    966
#> 961    967
#> 962    968
#> 963    969
#> 964    970
#> 965    971
#> 966    972
#> 967    973
#> 968    974
#> 969    975
#> 970    976
#> 971    977
#> 972    978
#> 973    979
#> 974    980
#> 975    981
#> 976    982
#> 977    983
#> 978    984
#> 979    985
#> 980    986
#> 981    987
#> 982    988
#> 983    989
#> 984    990
#> 985    991
#> 986    992
#> 987    993
#> 988    994
#> 989    995
#> 990    996
#> 991    997
#> 992    998
#> 993    999
#> 994   1000

########################################################

sessionInfo()
#> R version 4.0.3 (2020-10-10)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 19042)
#> 
#> Matrix products: default
#> 
#> locale:
#> [1] LC_COLLATE=Portuguese_Brazil.1252  LC_CTYPE=Portuguese_Brazil.1252   
#> [3] LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C                      
#> [5] LC_TIME=Portuguese_Brazil.1252    
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] purrr_0.3.4    magrittr_2.0.1 furrr_0.2.1    future_1.21.0  RSQLite_2.2.3 
#> [6] DBI_1.1.1     
#> 
#> loaded via a namespace (and not attached):
#>  [1] Rcpp_1.0.6        parallelly_1.23.0 knitr_1.30        bit_4.0.4        
#>  [5] rlang_0.4.10      stringr_1.4.0     blob_1.2.1        highr_0.8        
#>  [9] globals_0.14.0    tools_4.0.3       parallel_4.0.3    xfun_0.20        
#> [13] ellipsis_0.3.1    htmltools_0.5.1.1 yaml_2.2.1        bit64_4.0.5      
#> [17] digest_0.6.27     vctrs_0.3.6       codetools_0.2-18  memoise_1.1.0    
#> [21] evaluate_0.14     rmarkdown_2.6     stringi_1.5.3     compiler_4.0.3   
#> [25] listenv_0.8.0     pkgconfig_2.0.3

Created on 2021-01-24 by the reprex package (v0.3.0)

gaborcsardi commented 3 years ago

Hi all, can you please try https://github.com/r-dbi/RSQLite/pull/345 to see if that solves your issues?

Please make sure that you set a high enough busy timeout for every connection that you use. (Either with the new function or the PRAGMA.) Without setting a busy timeout, concurrent (write) access will always fail. I suggest that you set a value that is the highest that you would tolerate. E.g. for many or long concurrent writes, it is fine to set it to several minutes. The goal is to only timeout when there is a deadlock.

georgevbsantiago commented 3 years ago

With 5 seconds of pause. There is a loss of 3 writes to SQLite.

# Package RSQLite Installed from: remotes::install_github("gaborcsardi/RSQLite")

library(DBI)
library(RSQLite)
library(furrr)
#> Carregando pacotes exigidos: future
library(future)
library(magrittr)
library(purrr)
#> 
#> Attaching package: 'purrr'
#> The following object is masked from 'package:magrittr':
#> 
#>     set_names

########################################################

n_teste <- 1:1000

unlink("bd_test.db")

connect_sgbd <- function() {
        conexao <- DBI::dbConnect(RSQLite::SQLite(),
                                  dbname = file.path("bd_test.db")
        )

        return(conexao)
}

teste_write_sqlite <- function(n_teste) {

        tb_teste_iris <- iris[1, ] %>%
                dplyr::mutate(n_loop = n_teste)

        # 5 seconds pause

        tentativas <- purrr::rate_delay(pause = 5,
                                        max_times = 20
        )

        insist_execute_sqlite <- purrr::insistently(DBI::dbExecute, 
                                                    tentativas,
                                                    quiet = FALSE
        )

        insist_dbWriteTable <- purrr::insistently(DBI::dbWriteTable,
                                                  tentativas,
                                                  quiet = FALSE
        )

        conn <- connect_sgbd()

        on.exit(dbDisconnect(conn))

        tryCatch(
                {
                        insist_execute_sqlite(conn, "BEGIN IMMEDIATE TRANSACTION")
                        # Rollback on failure
                        on.exit(try(dbExecute(conn, "ROLLBACK TRANSACTION")))
                        out <- insist_dbWriteTable(conn, "tb_teste_iris", tb_teste_iris, append = TRUE)
                        dbExecute(conn, "COMMIT TRANSACTION")

                        # Don't rollback on success
                        on.exit(NULL)
                        print(paste(n_teste, "-", out))
                },
                error = function(e) {
                        print(paste(n_teste, "-", conditionMessage(e)))
                }
        )
}

future::plan("multisession",
             workers = 8
)

options(future.rng.onMisuse = "ignore")

furrr::future_walk(n_teste, teste_write_sqlite, .progress = TRUE)
#> [1] "1 - TRUE"
#> [1] "2 - TRUE"
#> [1] "3 - TRUE"
#> [1] "4 - TRUE"
#> [1] "5 - TRUE"
#> [1] "6 - TRUE"
#> [1] "7 - TRUE"
#> [1] "8 - TRUE"
#> [1] "9 - TRUE"
#> [1] "10 - TRUE"
#> [1] "11 - TRUE"
#> [1] "12 - TRUE"
#> [1] "13 - TRUE"
#> [1] "14 - TRUE"
#> [1] "15 - TRUE"
#> [1] "16 - TRUE"
#> [1] "17 - TRUE"
#> [1] "18 - TRUE"
#> [1] "19 - TRUE"
#> [1] "20 - TRUE"
#> [1] "21 - TRUE"
#> [1] "22 - TRUE"
#> [1] "23 - TRUE"
#> [1] "24 - TRUE"
#> [1] "25 - TRUE"
#> [1] "26 - TRUE"
#> [1] "27 - TRUE"
#> [1] "28 - TRUE"
#> [1] "29 - TRUE"
#> [1] "30 - TRUE"
#> [1] "31 - TRUE"
#> [1] "32 - TRUE"
#> [1] "33 - TRUE"
#> [1] "34 - TRUE"
#> [1] "35 - TRUE"
#> [1] "36 - TRUE"
#> [1] "37 - TRUE"
#> [1] "38 - TRUE"
#> [1] "39 - TRUE"
#> [1] "40 - TRUE"
#> [1] "41 - TRUE"
#> [1] "42 - TRUE"
#> [1] "43 - TRUE"
#> [1] "44 - TRUE"
#> [1] "45 - TRUE"
#> [1] "46 - TRUE"
#> [1] "47 - TRUE"
#> [1] "48 - TRUE"
#> [1] "49 - TRUE"
#> [1] "50 - TRUE"
#> [1] "51 - TRUE"
#> [1] "52 - TRUE"
#> [1] "53 - TRUE"
#> [1] "54 - TRUE"
#> [1] "55 - TRUE"
#> [1] "56 - TRUE"
#> [1] "57 - TRUE"
#> [1] "58 - TRUE"
#> [1] "59 - TRUE"
#> [1] "60 - database is locked"
#> [1] "61 - TRUE"
#> [1] "62 - TRUE"
#> [1] "63 - TRUE"
#> [1] "64 - TRUE"
#> [1] "65 - TRUE"
#> [1] "66 - TRUE"
#> [1] "67 - TRUE"
#> [1] "68 - TRUE"
#> [1] "69 - TRUE"
#> [1] "70 - TRUE"
#> [1] "71 - TRUE"
#> [1] "72 - TRUE"
#> [1] "73 - TRUE"
#> [1] "74 - TRUE"
#> [1] "75 - TRUE"
#> [1] "76 - TRUE"
#> [1] "77 - TRUE"
#> [1] "78 - TRUE"
#> [1] "79 - TRUE"
#> [1] "80 - TRUE"
#> [1] "81 - TRUE"
#> [1] "82 - TRUE"
#> [1] "83 - TRUE"
#> [1] "84 - TRUE"
#> [1] "85 - TRUE"
#> [1] "86 - TRUE"
#> [1] "87 - TRUE"
#> [1] "88 - TRUE"
#> [1] "89 - TRUE"
#> [1] "90 - TRUE"
#> [1] "91 - TRUE"
#> [1] "92 - TRUE"
#> [1] "93 - TRUE"
#> [1] "94 - TRUE"
#> [1] "95 - TRUE"
#> [1] "96 - TRUE"
#> [1] "97 - TRUE"
#> [1] "98 - TRUE"
#> [1] "99 - TRUE"
#> [1] "100 - TRUE"
#> [1] "101 - TRUE"
#> [1] "102 - TRUE"
#> [1] "103 - TRUE"
#> [1] "104 - TRUE"
#> [1] "105 - TRUE"
#> [1] "106 - TRUE"
#> [1] "107 - TRUE"
#> [1] "108 - TRUE"
#> [1] "109 - TRUE"
#> [1] "110 - TRUE"
#> [1] "111 - TRUE"
#> [1] "112 - TRUE"
#> [1] "113 - TRUE"
#> [1] "114 - TRUE"
#> [1] "115 - TRUE"
#> [1] "116 - TRUE"
#> [1] "117 - TRUE"
#> [1] "118 - TRUE"
#> [1] "119 - TRUE"
#> [1] "120 - TRUE"
#> [1] "121 - TRUE"
#> [1] "122 - TRUE"
#> [1] "123 - TRUE"
#> [1] "124 - TRUE"
#> [1] "125 - TRUE"
#> [1] "126 - TRUE"
#> [1] "127 - TRUE"
#> [1] "128 - TRUE"
#> [1] "129 - TRUE"
#> [1] "130 - TRUE"
#> [1] "131 - TRUE"
#> [1] "132 - TRUE"
#> [1] "133 - TRUE"
#> [1] "134 - TRUE"
#> [1] "135 - TRUE"
#> [1] "136 - TRUE"
#> [1] "137 - TRUE"
#> [1] "138 - TRUE"
#> [1] "139 - TRUE"
#> [1] "140 - TRUE"
#> [1] "141 - TRUE"
#> [1] "142 - TRUE"
#> [1] "143 - TRUE"
#> [1] "144 - TRUE"
#> [1] "145 - TRUE"
#> [1] "146 - TRUE"
#> [1] "147 - TRUE"
#> [1] "148 - TRUE"
#> [1] "149 - TRUE"
#> [1] "150 - TRUE"
#> [1] "151 - TRUE"
#> [1] "152 - TRUE"
#> [1] "153 - TRUE"
#> [1] "154 - TRUE"
#> [1] "155 - TRUE"
#> [1] "156 - TRUE"
#> [1] "157 - TRUE"
#> [1] "158 - TRUE"
#> [1] "159 - TRUE"
#> [1] "160 - TRUE"
#> [1] "161 - TRUE"
#> [1] "162 - TRUE"
#> [1] "163 - TRUE"
#> [1] "164 - TRUE"
#> [1] "165 - TRUE"
#> [1] "166 - TRUE"
#> [1] "167 - TRUE"
#> [1] "168 - TRUE"
#> [1] "169 - TRUE"
#> [1] "170 - TRUE"
#> [1] "171 - TRUE"
#> [1] "172 - TRUE"
#> [1] "173 - TRUE"
#> [1] "174 - TRUE"
#> [1] "175 - TRUE"
#> [1] "176 - TRUE"
#> [1] "177 - TRUE"
#> [1] "178 - TRUE"
#> [1] "179 - TRUE"
#> [1] "180 - TRUE"
#> [1] "181 - TRUE"
#> [1] "182 - TRUE"
#> [1] "183 - TRUE"
#> [1] "184 - TRUE"
#> [1] "185 - TRUE"
#> [1] "186 - TRUE"
#> [1] "187 - TRUE"
#> [1] "188 - TRUE"
#> [1] "189 - TRUE"
#> [1] "190 - TRUE"
#> [1] "191 - TRUE"
#> [1] "192 - TRUE"
#> [1] "193 - TRUE"
#> [1] "194 - TRUE"
#> [1] "195 - TRUE"
#> [1] "196 - TRUE"
#> [1] "197 - TRUE"
#> [1] "198 - TRUE"
#> [1] "199 - TRUE"
#> [1] "200 - TRUE"
#> [1] "201 - TRUE"
#> [1] "202 - TRUE"
#> [1] "203 - TRUE"
#> [1] "204 - TRUE"
#> [1] "205 - TRUE"
#> [1] "206 - TRUE"
#> [1] "207 - TRUE"
#> [1] "208 - TRUE"
#> [1] "209 - TRUE"
#> [1] "210 - TRUE"
#> [1] "211 - TRUE"
#> [1] "212 - TRUE"
#> [1] "213 - TRUE"
#> [1] "214 - TRUE"
#> [1] "215 - TRUE"
#> [1] "216 - TRUE"
#> [1] "217 - TRUE"
#> [1] "218 - TRUE"
#> [1] "219 - TRUE"
#> [1] "220 - TRUE"
#> [1] "221 - TRUE"
#> [1] "222 - TRUE"
#> [1] "223 - TRUE"
#> [1] "224 - TRUE"
#> [1] "225 - TRUE"
#> [1] "226 - TRUE"
#> [1] "227 - TRUE"
#> [1] "228 - TRUE"
#> [1] "229 - TRUE"
#> [1] "230 - TRUE"
#> [1] "231 - TRUE"
#> [1] "232 - TRUE"
#> [1] "233 - TRUE"
#> [1] "234 - TRUE"
#> [1] "235 - TRUE"
#> [1] "236 - TRUE"
#> [1] "237 - TRUE"
#> [1] "238 - TRUE"
#> [1] "239 - TRUE"
#> [1] "240 - TRUE"
#> [1] "241 - TRUE"
#> [1] "242 - TRUE"
#> [1] "243 - TRUE"
#> [1] "244 - TRUE"
#> [1] "245 - TRUE"
#> [1] "246 - TRUE"
#> [1] "247 - TRUE"
#> [1] "248 - TRUE"
#> [1] "249 - TRUE"
#> [1] "250 - TRUE"
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.
#> [1] "251 - TRUE"
#> [1] "252 - TRUE"
#> [1] "253 - TRUE"
#> [1] "254 - TRUE"
#> [1] "255 - TRUE"
#> [1] "256 - TRUE"
#> [1] "257 - TRUE"
#> [1] "258 - TRUE"
#> [1] "259 - TRUE"
#> [1] "260 - TRUE"
#> [1] "261 - TRUE"
#> [1] "262 - TRUE"
#> [1] "263 - TRUE"
#> [1] "264 - TRUE"
#> [1] "265 - TRUE"
#> [1] "266 - TRUE"
#> [1] "267 - TRUE"
#> [1] "268 - TRUE"
#> [1] "269 - TRUE"
#> [1] "270 - TRUE"
#> [1] "271 - TRUE"
#> [1] "272 - TRUE"
#> [1] "273 - TRUE"
#> [1] "274 - TRUE"
#> [1] "275 - TRUE"
#> [1] "276 - TRUE"
#> [1] "277 - TRUE"
#> [1] "278 - TRUE"
#> [1] "279 - TRUE"
#> [1] "280 - TRUE"
#> [1] "281 - TRUE"
#> [1] "282 - TRUE"
#> [1] "283 - TRUE"
#> [1] "284 - TRUE"
#> [1] "285 - TRUE"
#> [1] "286 - TRUE"
#> [1] "287 - TRUE"
#> [1] "288 - TRUE"
#> [1] "289 - TRUE"
#> [1] "290 - TRUE"
#> [1] "291 - TRUE"
#> [1] "292 - TRUE"
#> [1] "293 - TRUE"
#> [1] "294 - TRUE"
#> [1] "295 - TRUE"
#> [1] "296 - TRUE"
#> [1] "297 - TRUE"
#> [1] "298 - TRUE"
#> [1] "299 - TRUE"
#> [1] "300 - TRUE"
#> [1] "301 - TRUE"
#> [1] "302 - TRUE"
#> [1] "303 - TRUE"
#> [1] "304 - TRUE"
#> [1] "305 - TRUE"
#> [1] "306 - TRUE"
#> [1] "307 - TRUE"
#> [1] "308 - TRUE"
#> [1] "309 - TRUE"
#> [1] "310 - TRUE"
#> [1] "311 - TRUE"
#> [1] "312 - TRUE"
#> [1] "313 - TRUE"
#> [1] "314 - TRUE"
#> [1] "315 - TRUE"
#> [1] "316 - TRUE"
#> [1] "317 - TRUE"
#> [1] "318 - TRUE"
#> [1] "319 - TRUE"
#> [1] "320 - TRUE"
#> [1] "321 - TRUE"
#> [1] "322 - TRUE"
#> [1] "323 - TRUE"
#> [1] "324 - TRUE"
#> [1] "325 - TRUE"
#> [1] "326 - TRUE"
#> [1] "327 - TRUE"
#> [1] "328 - TRUE"
#> [1] "329 - TRUE"
#> [1] "330 - TRUE"
#> [1] "331 - TRUE"
#> [1] "332 - TRUE"
#> [1] "333 - TRUE"
#> [1] "334 - TRUE"
#> [1] "335 - TRUE"
#> [1] "336 - TRUE"
#> [1] "337 - TRUE"
#> [1] "338 - TRUE"
#> [1] "339 - TRUE"
#> [1] "340 - TRUE"
#> [1] "341 - TRUE"
#> [1] "342 - TRUE"
#> [1] "343 - TRUE"
#> [1] "344 - TRUE"
#> [1] "345 - TRUE"
#> [1] "346 - TRUE"
#> [1] "347 - TRUE"
#> [1] "348 - TRUE"
#> [1] "349 - TRUE"
#> [1] "350 - TRUE"
#> [1] "351 - TRUE"
#> [1] "352 - TRUE"
#> [1] "353 - TRUE"
#> [1] "354 - TRUE"
#> [1] "355 - TRUE"
#> [1] "356 - TRUE"
#> [1] "357 - TRUE"
#> [1] "358 - TRUE"
#> [1] "359 - TRUE"
#> [1] "360 - TRUE"
#> [1] "361 - TRUE"
#> [1] "362 - TRUE"
#> [1] "363 - TRUE"
#> [1] "364 - TRUE"
#> [1] "365 - TRUE"
#> [1] "366 - TRUE"
#> [1] "367 - TRUE"
#> [1] "368 - TRUE"
#> [1] "369 - TRUE"
#> [1] "370 - TRUE"
#> [1] "371 - TRUE"
#> [1] "372 - TRUE"
#> [1] "373 - TRUE"
#> [1] "374 - TRUE"
#> [1] "375 - TRUE"
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.
#> [1] "376 - TRUE"
#> [1] "377 - TRUE"
#> [1] "378 - TRUE"
#> [1] "379 - TRUE"
#> [1] "380 - TRUE"
#> [1] "381 - TRUE"
#> [1] "382 - TRUE"
#> [1] "383 - TRUE"
#> [1] "384 - TRUE"
#> [1] "385 - TRUE"
#> [1] "386 - TRUE"
#> [1] "387 - TRUE"
#> [1] "388 - TRUE"
#> [1] "389 - TRUE"
#> [1] "390 - TRUE"
#> [1] "391 - TRUE"
#> [1] "392 - TRUE"
#> [1] "393 - TRUE"
#> [1] "394 - TRUE"
#> [1] "395 - TRUE"
#> [1] "396 - TRUE"
#> [1] "397 - TRUE"
#> [1] "398 - TRUE"
#> [1] "399 - TRUE"
#> [1] "400 - TRUE"
#> [1] "401 - TRUE"
#> [1] "402 - TRUE"
#> [1] "403 - TRUE"
#> [1] "404 - TRUE"
#> [1] "405 - TRUE"
#> [1] "406 - TRUE"
#> [1] "407 - TRUE"
#> [1] "408 - TRUE"
#> [1] "409 - TRUE"
#> [1] "410 - TRUE"
#> [1] "411 - TRUE"
#> [1] "412 - TRUE"
#> [1] "413 - TRUE"
#> [1] "414 - TRUE"
#> [1] "415 - TRUE"
#> [1] "416 - TRUE"
#> [1] "417 - TRUE"
#> [1] "418 - TRUE"
#> [1] "419 - TRUE"
#> [1] "420 - TRUE"
#> [1] "421 - TRUE"
#> [1] "422 - TRUE"
#> [1] "423 - TRUE"
#> [1] "424 - TRUE"
#> [1] "425 - TRUE"
#> [1] "426 - TRUE"
#> [1] "427 - TRUE"
#> [1] "428 - TRUE"
#> [1] "429 - TRUE"
#> [1] "430 - TRUE"
#> [1] "431 - TRUE"
#> [1] "432 - TRUE"
#> [1] "433 - TRUE"
#> [1] "434 - TRUE"
#> [1] "435 - TRUE"
#> [1] "436 - TRUE"
#> [1] "437 - TRUE"
#> [1] "438 - TRUE"
#> [1] "439 - TRUE"
#> [1] "440 - TRUE"
#> [1] "441 - TRUE"
#> [1] "442 - TRUE"
#> [1] "443 - TRUE"
#> [1] "444 - TRUE"
#> [1] "445 - TRUE"
#> [1] "446 - TRUE"
#> [1] "447 - TRUE"
#> [1] "448 - TRUE"
#> [1] "449 - TRUE"
#> [1] "450 - TRUE"
#> [1] "451 - TRUE"
#> [1] "452 - TRUE"
#> [1] "453 - TRUE"
#> [1] "454 - TRUE"
#> [1] "455 - TRUE"
#> [1] "456 - TRUE"
#> [1] "457 - TRUE"
#> [1] "458 - TRUE"
#> [1] "459 - TRUE"
#> [1] "460 - TRUE"
#> [1] "461 - TRUE"
#> [1] "462 - TRUE"
#> [1] "463 - TRUE"
#> [1] "464 - TRUE"
#> [1] "465 - TRUE"
#> [1] "466 - TRUE"
#> [1] "467 - TRUE"
#> [1] "468 - TRUE"
#> [1] "469 - TRUE"
#> [1] "470 - TRUE"
#> [1] "471 - TRUE"
#> [1] "472 - TRUE"
#> [1] "473 - TRUE"
#> [1] "474 - TRUE"
#> [1] "475 - TRUE"
#> [1] "476 - TRUE"
#> [1] "477 - TRUE"
#> [1] "478 - TRUE"
#> [1] "479 - TRUE"
#> [1] "480 - TRUE"
#> [1] "481 - TRUE"
#> [1] "482 - TRUE"
#> [1] "483 - TRUE"
#> [1] "484 - TRUE"
#> [1] "485 - TRUE"
#> [1] "486 - TRUE"
#> [1] "487 - TRUE"
#> [1] "488 - TRUE"
#> [1] "489 - TRUE"
#> [1] "490 - TRUE"
#> [1] "491 - TRUE"
#> [1] "492 - TRUE"
#> [1] "493 - TRUE"
#> [1] "494 - TRUE"
#> [1] "495 - TRUE"
#> [1] "496 - TRUE"
#> [1] "497 - database is locked"
#> [1] "498 - TRUE"
#> [1] "499 - TRUE"
#> [1] "500 - TRUE"
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.
#> [1] "501 - TRUE"
#> [1] "502 - TRUE"
#> [1] "503 - TRUE"
#> [1] "504 - TRUE"
#> [1] "505 - TRUE"
#> [1] "506 - TRUE"
#> [1] "507 - TRUE"
#> [1] "508 - TRUE"
#> [1] "509 - TRUE"
#> [1] "510 - TRUE"
#> [1] "511 - TRUE"
#> [1] "512 - TRUE"
#> [1] "513 - TRUE"
#> [1] "514 - TRUE"
#> [1] "515 - TRUE"
#> [1] "516 - TRUE"
#> [1] "517 - TRUE"
#> [1] "518 - TRUE"
#> [1] "519 - TRUE"
#> [1] "520 - TRUE"
#> [1] "521 - TRUE"
#> [1] "522 - TRUE"
#> [1] "523 - TRUE"
#> [1] "524 - TRUE"
#> [1] "525 - TRUE"
#> [1] "526 - TRUE"
#> [1] "527 - TRUE"
#> [1] "528 - TRUE"
#> [1] "529 - TRUE"
#> [1] "530 - TRUE"
#> [1] "531 - TRUE"
#> [1] "532 - TRUE"
#> [1] "533 - TRUE"
#> [1] "534 - TRUE"
#> [1] "535 - TRUE"
#> [1] "536 - TRUE"
#> [1] "537 - TRUE"
#> [1] "538 - TRUE"
#> [1] "539 - TRUE"
#> [1] "540 - TRUE"
#> [1] "541 - TRUE"
#> [1] "542 - TRUE"
#> [1] "543 - TRUE"
#> [1] "544 - TRUE"
#> [1] "545 - TRUE"
#> [1] "546 - TRUE"
#> [1] "547 - TRUE"
#> [1] "548 - TRUE"
#> [1] "549 - TRUE"
#> [1] "550 - TRUE"
#> [1] "551 - TRUE"
#> [1] "552 - TRUE"
#> [1] "553 - TRUE"
#> [1] "554 - TRUE"
#> [1] "555 - TRUE"
#> [1] "556 - TRUE"
#> [1] "557 - TRUE"
#> [1] "558 - TRUE"
#> [1] "559 - TRUE"
#> [1] "560 - TRUE"
#> [1] "561 - TRUE"
#> [1] "562 - TRUE"
#> [1] "563 - TRUE"
#> [1] "564 - TRUE"
#> [1] "565 - TRUE"
#> [1] "566 - TRUE"
#> [1] "567 - TRUE"
#> [1] "568 - TRUE"
#> [1] "569 - TRUE"
#> [1] "570 - TRUE"
#> [1] "571 - TRUE"
#> [1] "572 - TRUE"
#> [1] "573 - TRUE"
#> [1] "574 - TRUE"
#> [1] "575 - TRUE"
#> [1] "576 - TRUE"
#> [1] "577 - TRUE"
#> [1] "578 - TRUE"
#> [1] "579 - TRUE"
#> [1] "580 - TRUE"
#> [1] "581 - TRUE"
#> [1] "582 - TRUE"
#> [1] "583 - TRUE"
#> [1] "584 - TRUE"
#> [1] "585 - TRUE"
#> [1] "586 - TRUE"
#> [1] "587 - TRUE"
#> [1] "588 - TRUE"
#> [1] "589 - TRUE"
#> [1] "590 - TRUE"
#> [1] "591 - TRUE"
#> [1] "592 - TRUE"
#> [1] "593 - TRUE"
#> [1] "594 - TRUE"
#> [1] "595 - TRUE"
#> [1] "596 - TRUE"
#> [1] "597 - TRUE"
#> [1] "598 - TRUE"
#> [1] "599 - TRUE"
#> [1] "600 - TRUE"
#> [1] "601 - TRUE"
#> [1] "602 - TRUE"
#> [1] "603 - TRUE"
#> [1] "604 - TRUE"
#> [1] "605 - TRUE"
#> [1] "606 - TRUE"
#> [1] "607 - TRUE"
#> [1] "608 - TRUE"
#> [1] "609 - TRUE"
#> [1] "610 - TRUE"
#> [1] "611 - TRUE"
#> [1] "612 - TRUE"
#> [1] "613 - TRUE"
#> [1] "614 - TRUE"
#> [1] "615 - TRUE"
#> [1] "616 - TRUE"
#> [1] "617 - TRUE"
#> [1] "618 - TRUE"
#> [1] "619 - TRUE"
#> [1] "620 - TRUE"
#> [1] "621 - TRUE"
#> [1] "622 - TRUE"
#> [1] "623 - TRUE"
#> [1] "624 - TRUE"
#> [1] "625 - TRUE"
#> Error: database is locked
#> Retrying in 5 seconds.
#> [1] "626 - TRUE"
#> [1] "627 - TRUE"
#> [1] "628 - TRUE"
#> [1] "629 - TRUE"
#> [1] "630 - TRUE"
#> [1] "631 - TRUE"
#> [1] "632 - TRUE"
#> [1] "633 - TRUE"
#> [1] "634 - TRUE"
#> [1] "635 - TRUE"
#> [1] "636 - TRUE"
#> [1] "637 - TRUE"
#> [1] "638 - TRUE"
#> [1] "639 - TRUE"
#> [1] "640 - TRUE"
#> [1] "641 - TRUE"
#> [1] "642 - TRUE"
#> [1] "643 - TRUE"
#> [1] "644 - TRUE"
#> [1] "645 - TRUE"
#> [1] "646 - TRUE"
#> [1] "647 - TRUE"
#> [1] "648 - TRUE"
#> [1] "649 - TRUE"
#> [1] "650 - TRUE"
#> [1] "651 - TRUE"
#> [1] "652 - TRUE"
#> [1] "653 - TRUE"
#> [1] "654 - TRUE"
#> [1] "655 - TRUE"
#> [1] "656 - TRUE"
#> [1] "657 - TRUE"
#> [1] "658 - TRUE"
#> [1] "659 - TRUE"
#> [1] "660 - TRUE"
#> [1] "661 - TRUE"
#> [1] "662 - TRUE"
#> [1] "663 - TRUE"
#> [1] "664 - TRUE"
#> [1] "665 - TRUE"
#> [1] "666 - TRUE"
#> [1] "667 - TRUE"
#> [1] "668 - TRUE"
#> [1] "669 - TRUE"
#> [1] "670 - TRUE"
#> [1] "671 - TRUE"
#> [1] "672 - TRUE"
#> [1] "673 - TRUE"
#> [1] "674 - TRUE"
#> [1] "675 - TRUE"
#> [1] "676 - TRUE"
#> [1] "677 - TRUE"
#> [1] "678 - TRUE"
#> [1] "679 - TRUE"
#> [1] "680 - TRUE"
#> [1] "681 - TRUE"
#> [1] "682 - database is locked"
#> [1] "683 - TRUE"
#> [1] "684 - TRUE"
#> [1] "685 - TRUE"
#> [1] "686 - TRUE"
#> [1] "687 - TRUE"
#> [1] "688 - TRUE"
#> [1] "689 - TRUE"
#> [1] "690 - TRUE"
#> [1] "691 - TRUE"
#> [1] "692 - TRUE"
#> [1] "693 - TRUE"
#> [1] "694 - TRUE"
#> [1] "695 - TRUE"
#> [1] "696 - TRUE"
#> [1] "697 - TRUE"
#> [1] "698 - TRUE"
#> [1] "699 - TRUE"
#> [1] "700 - TRUE"
#> [1] "701 - TRUE"
#> [1] "702 - TRUE"
#> [1] "703 - TRUE"
#> [1] "704 - TRUE"
#> [1] "705 - TRUE"
#> [1] "706 - TRUE"
#> [1] "707 - TRUE"
#> [1] "708 - TRUE"
#> [1] "709 - TRUE"
#> [1] "710 - TRUE"
#> [1] "711 - TRUE"
#> [1] "712 - TRUE"
#> [1] "713 - TRUE"
#> [1] "714 - TRUE"
#> [1] "715 - TRUE"
#> [1] "716 - TRUE"
#> [1] "717 - TRUE"
#> [1] "718 - TRUE"
#> [1] "719 - TRUE"
#> [1] "720 - TRUE"
#> [1] "721 - TRUE"
#> [1] "722 - TRUE"
#> [1] "723 - TRUE"
#> [1] "724 - TRUE"
#> [1] "725 - TRUE"
#> [1] "726 - TRUE"
#> [1] "727 - TRUE"
#> [1] "728 - TRUE"
#> [1] "729 - TRUE"
#> [1] "730 - TRUE"
#> [1] "731 - TRUE"
#> [1] "732 - TRUE"
#> [1] "733 - TRUE"
#> [1] "734 - TRUE"
#> [1] "735 - TRUE"
#> [1] "736 - TRUE"
#> [1] "737 - TRUE"
#> [1] "738 - TRUE"
#> [1] "739 - TRUE"
#> [1] "740 - TRUE"
#> [1] "741 - TRUE"
#> [1] "742 - TRUE"
#> [1] "743 - TRUE"
#> [1] "744 - TRUE"
#> [1] "745 - TRUE"
#> [1] "746 - TRUE"
#> [1] "747 - TRUE"
#> [1] "748 - TRUE"
#> [1] "749 - TRUE"
#> [1] "750 - TRUE"
#> [1] "751 - TRUE"
#> [1] "752 - TRUE"
#> [1] "753 - TRUE"
#> [1] "754 - TRUE"
#> [1] "755 - TRUE"
#> [1] "756 - TRUE"
#> [1] "757 - TRUE"
#> [1] "758 - TRUE"
#> [1] "759 - TRUE"
#> [1] "760 - TRUE"
#> [1] "761 - TRUE"
#> [1] "762 - TRUE"
#> [1] "763 - TRUE"
#> [1] "764 - TRUE"
#> [1] "765 - TRUE"
#> [1] "766 - TRUE"
#> [1] "767 - TRUE"
#> [1] "768 - TRUE"
#> [1] "769 - TRUE"
#> [1] "770 - TRUE"
#> [1] "771 - TRUE"
#> [1] "772 - TRUE"
#> [1] "773 - TRUE"
#> [1] "774 - TRUE"
#> [1] "775 - TRUE"
#> [1] "776 - TRUE"
#> [1] "777 - TRUE"
#> [1] "778 - TRUE"
#> [1] "779 - TRUE"
#> [1] "780 - TRUE"
#> [1] "781 - TRUE"
#> [1] "782 - TRUE"
#> [1] "783 - TRUE"
#> [1] "784 - TRUE"
#> [1] "785 - TRUE"
#> [1] "786 - TRUE"
#> [1] "787 - TRUE"
#> [1] "788 - TRUE"
#> [1] "789 - TRUE"
#> [1] "790 - TRUE"
#> [1] "791 - TRUE"
#> [1] "792 - TRUE"
#> [1] "793 - TRUE"
#> [1] "794 - TRUE"
#> [1] "795 - TRUE"
#> [1] "796 - TRUE"
#> [1] "797 - TRUE"
#> [1] "798 - TRUE"
#> [1] "799 - TRUE"
#> [1] "800 - TRUE"
#> [1] "801 - TRUE"
#> [1] "802 - TRUE"
#> [1] "803 - TRUE"
#> [1] "804 - TRUE"
#> [1] "805 - TRUE"
#> [1] "806 - TRUE"
#> [1] "807 - TRUE"
#> [1] "808 - TRUE"
#> [1] "809 - TRUE"
#> [1] "810 - TRUE"
#> [1] "811 - TRUE"
#> [1] "812 - TRUE"
#> [1] "813 - TRUE"
#> [1] "814 - TRUE"
#> [1] "815 - TRUE"
#> [1] "816 - TRUE"
#> [1] "817 - TRUE"
#> [1] "818 - TRUE"
#> [1] "819 - TRUE"
#> [1] "820 - TRUE"
#> [1] "821 - TRUE"
#> [1] "822 - TRUE"
#> [1] "823 - TRUE"
#> [1] "824 - TRUE"
#> [1] "825 - TRUE"
#> [1] "826 - TRUE"
#> [1] "827 - TRUE"
#> [1] "828 - TRUE"
#> [1] "829 - TRUE"
#> [1] "830 - TRUE"
#> [1] "831 - TRUE"
#> [1] "832 - TRUE"
#> [1] "833 - TRUE"
#> [1] "834 - TRUE"
#> [1] "835 - TRUE"
#> [1] "836 - TRUE"
#> [1] "837 - TRUE"
#> [1] "838 - TRUE"
#> [1] "839 - TRUE"
#> [1] "840 - TRUE"
#> [1] "841 - TRUE"
#> [1] "842 - TRUE"
#> [1] "843 - TRUE"
#> [1] "844 - TRUE"
#> [1] "845 - TRUE"
#> [1] "846 - TRUE"
#> [1] "847 - TRUE"
#> [1] "848 - TRUE"
#> [1] "849 - TRUE"
#> [1] "850 - TRUE"
#> [1] "851 - TRUE"
#> [1] "852 - TRUE"
#> [1] "853 - TRUE"
#> [1] "854 - TRUE"
#> [1] "855 - TRUE"
#> [1] "856 - TRUE"
#> [1] "857 - TRUE"
#> [1] "858 - TRUE"
#> [1] "859 - TRUE"
#> [1] "860 - TRUE"
#> [1] "861 - TRUE"
#> [1] "862 - TRUE"
#> [1] "863 - TRUE"
#> [1] "864 - TRUE"
#> [1] "865 - TRUE"
#> [1] "866 - TRUE"
#> [1] "867 - TRUE"
#> [1] "868 - TRUE"
#> [1] "869 - TRUE"
#> [1] "870 - TRUE"
#> [1] "871 - TRUE"
#> [1] "872 - TRUE"
#> [1] "873 - TRUE"
#> [1] "874 - TRUE"
#> [1] "875 - TRUE"
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.
#> [1] "876 - TRUE"
#> [1] "877 - TRUE"
#> [1] "878 - TRUE"
#> [1] "879 - TRUE"
#> [1] "880 - TRUE"
#> [1] "881 - TRUE"
#> [1] "882 - TRUE"
#> [1] "883 - TRUE"
#> [1] "884 - TRUE"
#> [1] "885 - TRUE"
#> [1] "886 - TRUE"
#> [1] "887 - TRUE"
#> [1] "888 - TRUE"
#> [1] "889 - TRUE"
#> [1] "890 - TRUE"
#> [1] "891 - TRUE"
#> [1] "892 - TRUE"
#> [1] "893 - TRUE"
#> [1] "894 - TRUE"
#> [1] "895 - TRUE"
#> [1] "896 - TRUE"
#> [1] "897 - TRUE"
#> [1] "898 - TRUE"
#> [1] "899 - TRUE"
#> [1] "900 - TRUE"
#> [1] "901 - TRUE"
#> [1] "902 - TRUE"
#> [1] "903 - TRUE"
#> [1] "904 - TRUE"
#> [1] "905 - TRUE"
#> [1] "906 - TRUE"
#> [1] "907 - TRUE"
#> [1] "908 - TRUE"
#> [1] "909 - TRUE"
#> [1] "910 - TRUE"
#> [1] "911 - TRUE"
#> [1] "912 - TRUE"
#> [1] "913 - TRUE"
#> [1] "914 - TRUE"
#> [1] "915 - TRUE"
#> [1] "916 - TRUE"
#> [1] "917 - TRUE"
#> [1] "918 - TRUE"
#> [1] "919 - TRUE"
#> [1] "920 - TRUE"
#> [1] "921 - TRUE"
#> [1] "922 - TRUE"
#> [1] "923 - TRUE"
#> [1] "924 - TRUE"
#> [1] "925 - TRUE"
#> [1] "926 - TRUE"
#> [1] "927 - TRUE"
#> [1] "928 - TRUE"
#> [1] "929 - TRUE"
#> [1] "930 - TRUE"
#> [1] "931 - TRUE"
#> [1] "932 - TRUE"
#> [1] "933 - TRUE"
#> [1] "934 - TRUE"
#> [1] "935 - TRUE"
#> [1] "936 - TRUE"
#> [1] "937 - TRUE"
#> [1] "938 - TRUE"
#> [1] "939 - TRUE"
#> [1] "940 - TRUE"
#> [1] "941 - TRUE"
#> [1] "942 - TRUE"
#> [1] "943 - TRUE"
#> [1] "944 - TRUE"
#> [1] "945 - TRUE"
#> [1] "946 - TRUE"
#> [1] "947 - TRUE"
#> [1] "948 - TRUE"
#> [1] "949 - TRUE"
#> [1] "950 - TRUE"
#> [1] "951 - TRUE"
#> [1] "952 - TRUE"
#> [1] "953 - TRUE"
#> [1] "954 - TRUE"
#> [1] "955 - TRUE"
#> [1] "956 - TRUE"
#> [1] "957 - TRUE"
#> [1] "958 - TRUE"
#> [1] "959 - TRUE"
#> [1] "960 - TRUE"
#> [1] "961 - TRUE"
#> [1] "962 - TRUE"
#> [1] "963 - TRUE"
#> [1] "964 - TRUE"
#> [1] "965 - TRUE"
#> [1] "966 - TRUE"
#> [1] "967 - TRUE"
#> [1] "968 - TRUE"
#> [1] "969 - TRUE"
#> [1] "970 - TRUE"
#> [1] "971 - TRUE"
#> [1] "972 - TRUE"
#> [1] "973 - TRUE"
#> [1] "974 - TRUE"
#> [1] "975 - TRUE"
#> [1] "976 - TRUE"
#> [1] "977 - TRUE"
#> [1] "978 - TRUE"
#> [1] "979 - TRUE"
#> [1] "980 - TRUE"
#> [1] "981 - TRUE"
#> [1] "982 - TRUE"
#> [1] "983 - TRUE"
#> [1] "984 - TRUE"
#> [1] "985 - TRUE"
#> [1] "986 - TRUE"
#> [1] "987 - TRUE"
#> [1] "988 - TRUE"
#> [1] "989 - TRUE"
#> [1] "990 - TRUE"
#> [1] "991 - TRUE"
#> [1] "992 - TRUE"
#> [1] "993 - TRUE"
#> [1] "994 - TRUE"
#> [1] "995 - TRUE"
#> [1] "996 - TRUE"
#> [1] "997 - TRUE"
#> [1] "998 - TRUE"
#> [1] "999 - TRUE"
#> [1] "1000 - TRUE"
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.
#> Error: database is locked
#> Retrying in 5 seconds.

con <- dbConnect(RSQLite::SQLite(), dbname = file.path("bd_test.db"))
dbGetQuery(con, "SELECT n_loop FROM tb_teste_iris ORDER BY n_loop")
#>     n_loop
#> 1        1
#> 2        2
#> 3        3
#> 4        4
#> 5        5
#> 6        6
#> 7        7
#> 8        8
#> 9        9
#> 10      10
#> 11      11
#> 12      12
#> 13      13
#> 14      14
#> 15      15
#> 16      16
#> 17      17
#> 18      18
#> 19      19
#> 20      20
#> 21      21
#> 22      22
#> 23      23
#> 24      24
#> 25      25
#> 26      26
#> 27      27
#> 28      28
#> 29      29
#> 30      30
#> 31      31
#> 32      32
#> 33      33
#> 34      34
#> 35      35
#> 36      36
#> 37      37
#> 38      38
#> 39      39
#> 40      40
#> 41      41
#> 42      42
#> 43      43
#> 44      44
#> 45      45
#> 46      46
#> 47      47
#> 48      48
#> 49      49
#> 50      50
#> 51      51
#> 52      52
#> 53      53
#> 54      54
#> 55      55
#> 56      56
#> 57      57
#> 58      58
#> 59      59
#> 60      61
#> 61      62
#> 62      63
#> 63      64
#> 64      65
#> 65      66
#> 66      67
#> 67      68
#> 68      69
#> 69      70
#> 70      71
#> 71      72
#> 72      73
#> 73      74
#> 74      75
#> 75      76
#> 76      77
#> 77      78
#> 78      79
#> 79      80
#> 80      81
#> 81      82
#> 82      83
#> 83      84
#> 84      85
#> 85      86
#> 86      87
#> 87      88
#> 88      89
#> 89      90
#> 90      91
#> 91      92
#> 92      93
#> 93      94
#> 94      95
#> 95      96
#> 96      97
#> 97      98
#> 98      99
#> 99     100
#> 100    101
#> 101    102
#> 102    103
#> 103    104
#> 104    105
#> 105    106
#> 106    107
#> 107    108
#> 108    109
#> 109    110
#> 110    111
#> 111    112
#> 112    113
#> 113    114
#> 114    115
#> 115    116
#> 116    117
#> 117    118
#> 118    119
#> 119    120
#> 120    121
#> 121    122
#> 122    123
#> 123    124
#> 124    125
#> 125    126
#> 126    127
#> 127    128
#> 128    129
#> 129    130
#> 130    131
#> 131    132
#> 132    133
#> 133    134
#> 134    135
#> 135    136
#> 136    137
#> 137    138
#> 138    139
#> 139    140
#> 140    141
#> 141    142
#> 142    143
#> 143    144
#> 144    145
#> 145    146
#> 146    147
#> 147    148
#> 148    149
#> 149    150
#> 150    151
#> 151    152
#> 152    153
#> 153    154
#> 154    155
#> 155    156
#> 156    157
#> 157    158
#> 158    159
#> 159    160
#> 160    161
#> 161    162
#> 162    163
#> 163    164
#> 164    165
#> 165    166
#> 166    167
#> 167    168
#> 168    169
#> 169    170
#> 170    171
#> 171    172
#> 172    173
#> 173    174
#> 174    175
#> 175    176
#> 176    177
#> 177    178
#> 178    179
#> 179    180
#> 180    181
#> 181    182
#> 182    183
#> 183    184
#> 184    185
#> 185    186
#> 186    187
#> 187    188
#> 188    189
#> 189    190
#> 190    191
#> 191    192
#> 192    193
#> 193    194
#> 194    195
#> 195    196
#> 196    197
#> 197    198
#> 198    199
#> 199    200
#> 200    201
#> 201    202
#> 202    203
#> 203    204
#> 204    205
#> 205    206
#> 206    207
#> 207    208
#> 208    209
#> 209    210
#> 210    211
#> 211    212
#> 212    213
#> 213    214
#> 214    215
#> 215    216
#> 216    217
#> 217    218
#> 218    219
#> 219    220
#> 220    221
#> 221    222
#> 222    223
#> 223    224
#> 224    225
#> 225    226
#> 226    227
#> 227    228
#> 228    229
#> 229    230
#> 230    231
#> 231    232
#> 232    233
#> 233    234
#> 234    235
#> 235    236
#> 236    237
#> 237    238
#> 238    239
#> 239    240
#> 240    241
#> 241    242
#> 242    243
#> 243    244
#> 244    245
#> 245    246
#> 246    247
#> 247    248
#> 248    249
#> 249    250
#> 250    251
#> 251    252
#> 252    253
#> 253    254
#> 254    255
#> 255    256
#> 256    257
#> 257    258
#> 258    259
#> 259    260
#> 260    261
#> 261    262
#> 262    263
#> 263    264
#> 264    265
#> 265    266
#> 266    267
#> 267    268
#> 268    269
#> 269    270
#> 270    271
#> 271    272
#> 272    273
#> 273    274
#> 274    275
#> 275    276
#> 276    277
#> 277    278
#> 278    279
#> 279    280
#> 280    281
#> 281    282
#> 282    283
#> 283    284
#> 284    285
#> 285    286
#> 286    287
#> 287    288
#> 288    289
#> 289    290
#> 290    291
#> 291    292
#> 292    293
#> 293    294
#> 294    295
#> 295    296
#> 296    297
#> 297    298
#> 298    299
#> 299    300
#> 300    301
#> 301    302
#> 302    303
#> 303    304
#> 304    305
#> 305    306
#> 306    307
#> 307    308
#> 308    309
#> 309    310
#> 310    311
#> 311    312
#> 312    313
#> 313    314
#> 314    315
#> 315    316
#> 316    317
#> 317    318
#> 318    319
#> 319    320
#> 320    321
#> 321    322
#> 322    323
#> 323    324
#> 324    325
#> 325    326
#> 326    327
#> 327    328
#> 328    329
#> 329    330
#> 330    331
#> 331    332
#> 332    333
#> 333    334
#> 334    335
#> 335    336
#> 336    337
#> 337    338
#> 338    339
#> 339    340
#> 340    341
#> 341    342
#> 342    343
#> 343    344
#> 344    345
#> 345    346
#> 346    347
#> 347    348
#> 348    349
#> 349    350
#> 350    351
#> 351    352
#> 352    353
#> 353    354
#> 354    355
#> 355    356
#> 356    357
#> 357    358
#> 358    359
#> 359    360
#> 360    361
#> 361    362
#> 362    363
#> 363    364
#> 364    365
#> 365    366
#> 366    367
#> 367    368
#> 368    369
#> 369    370
#> 370    371
#> 371    372
#> 372    373
#> 373    374
#> 374    375
#> 375    376
#> 376    377
#> 377    378
#> 378    379
#> 379    380
#> 380    381
#> 381    382
#> 382    383
#> 383    384
#> 384    385
#> 385    386
#> 386    387
#> 387    388
#> 388    389
#> 389    390
#> 390    391
#> 391    392
#> 392    393
#> 393    394
#> 394    395
#> 395    396
#> 396    397
#> 397    398
#> 398    399
#> 399    400
#> 400    401
#> 401    402
#> 402    403
#> 403    404
#> 404    405
#> 405    406
#> 406    407
#> 407    408
#> 408    409
#> 409    410
#> 410    411
#> 411    412
#> 412    413
#> 413    414
#> 414    415
#> 415    416
#> 416    417
#> 417    418
#> 418    419
#> 419    420
#> 420    421
#> 421    422
#> 422    423
#> 423    424
#> 424    425
#> 425    426
#> 426    427
#> 427    428
#> 428    429
#> 429    430
#> 430    431
#> 431    432
#> 432    433
#> 433    434
#> 434    435
#> 435    436
#> 436    437
#> 437    438
#> 438    439
#> 439    440
#> 440    441
#> 441    442
#> 442    443
#> 443    444
#> 444    445
#> 445    446
#> 446    447
#> 447    448
#> 448    449
#> 449    450
#> 450    451
#> 451    452
#> 452    453
#> 453    454
#> 454    455
#> 455    456
#> 456    457
#> 457    458
#> 458    459
#> 459    460
#> 460    461
#> 461    462
#> 462    463
#> 463    464
#> 464    465
#> 465    466
#> 466    467
#> 467    468
#> 468    469
#> 469    470
#> 470    471
#> 471    472
#> 472    473
#> 473    474
#> 474    475
#> 475    476
#> 476    477
#> 477    478
#> 478    479
#> 479    480
#> 480    481
#> 481    482
#> 482    483
#> 483    484
#> 484    485
#> 485    486
#> 486    487
#> 487    488
#> 488    489
#> 489    490
#> 490    491
#> 491    492
#> 492    493
#> 493    494
#> 494    495
#> 495    496
#> 496    498
#> 497    499
#> 498    500
#> 499    501
#> 500    502
#> 501    503
#> 502    504
#> 503    505
#> 504    506
#> 505    507
#> 506    508
#> 507    509
#> 508    510
#> 509    511
#> 510    512
#> 511    513
#> 512    514
#> 513    515
#> 514    516
#> 515    517
#> 516    518
#> 517    519
#> 518    520
#> 519    521
#> 520    522
#> 521    523
#> 522    524
#> 523    525
#> 524    526
#> 525    527
#> 526    528
#> 527    529
#> 528    530
#> 529    531
#> 530    532
#> 531    533
#> 532    534
#> 533    535
#> 534    536
#> 535    537
#> 536    538
#> 537    539
#> 538    540
#> 539    541
#> 540    542
#> 541    543
#> 542    544
#> 543    545
#> 544    546
#> 545    547
#> 546    548
#> 547    549
#> 548    550
#> 549    551
#> 550    552
#> 551    553
#> 552    554
#> 553    555
#> 554    556
#> 555    557
#> 556    558
#> 557    559
#> 558    560
#> 559    561
#> 560    562
#> 561    563
#> 562    564
#> 563    565
#> 564    566
#> 565    567
#> 566    568
#> 567    569
#> 568    570
#> 569    571
#> 570    572
#> 571    573
#> 572    574
#> 573    575
#> 574    576
#> 575    577
#> 576    578
#> 577    579
#> 578    580
#> 579    581
#> 580    582
#> 581    583
#> 582    584
#> 583    585
#> 584    586
#> 585    587
#> 586    588
#> 587    589
#> 588    590
#> 589    591
#> 590    592
#> 591    593
#> 592    594
#> 593    595
#> 594    596
#> 595    597
#> 596    598
#> 597    599
#> 598    600
#> 599    601
#> 600    602
#> 601    603
#> 602    604
#> 603    605
#> 604    606
#> 605    607
#> 606    608
#> 607    609
#> 608    610
#> 609    611
#> 610    612
#> 611    613
#> 612    614
#> 613    615
#> 614    616
#> 615    617
#> 616    618
#> 617    619
#> 618    620
#> 619    621
#> 620    622
#> 621    623
#> 622    624
#> 623    625
#> 624    626
#> 625    627
#> 626    628
#> 627    629
#> 628    630
#> 629    631
#> 630    632
#> 631    633
#> 632    634
#> 633    635
#> 634    636
#> 635    637
#> 636    638
#> 637    639
#> 638    640
#> 639    641
#> 640    642
#> 641    643
#> 642    644
#> 643    645
#> 644    646
#> 645    647
#> 646    648
#> 647    649
#> 648    650
#> 649    651
#> 650    652
#> 651    653
#> 652    654
#> 653    655
#> 654    656
#> 655    657
#> 656    658
#> 657    659
#> 658    660
#> 659    661
#> 660    662
#> 661    663
#> 662    664
#> 663    665
#> 664    666
#> 665    667
#> 666    668
#> 667    669
#> 668    670
#> 669    671
#> 670    672
#> 671    673
#> 672    674
#> 673    675
#> 674    676
#> 675    677
#> 676    678
#> 677    679
#> 678    680
#> 679    681
#> 680    683
#> 681    684
#> 682    685
#> 683    686
#> 684    687
#> 685    688
#> 686    689
#> 687    690
#> 688    691
#> 689    692
#> 690    693
#> 691    694
#> 692    695
#> 693    696
#> 694    697
#> 695    698
#> 696    699
#> 697    700
#> 698    701
#> 699    702
#> 700    703
#> 701    704
#> 702    705
#> 703    706
#> 704    707
#> 705    708
#> 706    709
#> 707    710
#> 708    711
#> 709    712
#> 710    713
#> 711    714
#> 712    715
#> 713    716
#> 714    717
#> 715    718
#> 716    719
#> 717    720
#> 718    721
#> 719    722
#> 720    723
#> 721    724
#> 722    725
#> 723    726
#> 724    727
#> 725    728
#> 726    729
#> 727    730
#> 728    731
#> 729    732
#> 730    733
#> 731    734
#> 732    735
#> 733    736
#> 734    737
#> 735    738
#> 736    739
#> 737    740
#> 738    741
#> 739    742
#> 740    743
#> 741    744
#> 742    745
#> 743    746
#> 744    747
#> 745    748
#> 746    749
#> 747    750
#> 748    751
#> 749    752
#> 750    753
#> 751    754
#> 752    755
#> 753    756
#> 754    757
#> 755    758
#> 756    759
#> 757    760
#> 758    761
#> 759    762
#> 760    763
#> 761    764
#> 762    765
#> 763    766
#> 764    767
#> 765    768
#> 766    769
#> 767    770
#> 768    771
#> 769    772
#> 770    773
#> 771    774
#> 772    775
#> 773    776
#> 774    777
#> 775    778
#> 776    779
#> 777    780
#> 778    781
#> 779    782
#> 780    783
#> 781    784
#> 782    785
#> 783    786
#> 784    787
#> 785    788
#> 786    789
#> 787    790
#> 788    791
#> 789    792
#> 790    793
#> 791    794
#> 792    795
#> 793    796
#> 794    797
#> 795    798
#> 796    799
#> 797    800
#> 798    801
#> 799    802
#> 800    803
#> 801    804
#> 802    805
#> 803    806
#> 804    807
#> 805    808
#> 806    809
#> 807    810
#> 808    811
#> 809    812
#> 810    813
#> 811    814
#> 812    815
#> 813    816
#> 814    817
#> 815    818
#> 816    819
#> 817    820
#> 818    821
#> 819    822
#> 820    823
#> 821    824
#> 822    825
#> 823    826
#> 824    827
#> 825    828
#> 826    829
#> 827    830
#> 828    831
#> 829    832
#> 830    833
#> 831    834
#> 832    835
#> 833    836
#> 834    837
#> 835    838
#> 836    839
#> 837    840
#> 838    841
#> 839    842
#> 840    843
#> 841    844
#> 842    845
#> 843    846
#> 844    847
#> 845    848
#> 846    849
#> 847    850
#> 848    851
#> 849    852
#> 850    853
#> 851    854
#> 852    855
#> 853    856
#> 854    857
#> 855    858
#> 856    859
#> 857    860
#> 858    861
#> 859    862
#> 860    863
#> 861    864
#> 862    865
#> 863    866
#> 864    867
#> 865    868
#> 866    869
#> 867    870
#> 868    871
#> 869    872
#> 870    873
#> 871    874
#> 872    875
#> 873    876
#> 874    877
#> 875    878
#> 876    879
#> 877    880
#> 878    881
#> 879    882
#> 880    883
#> 881    884
#> 882    885
#> 883    886
#> 884    887
#> 885    888
#> 886    889
#> 887    890
#> 888    891
#> 889    892
#> 890    893
#> 891    894
#> 892    895
#> 893    896
#> 894    897
#> 895    898
#> 896    899
#> 897    900
#> 898    901
#> 899    902
#> 900    903
#> 901    904
#> 902    905
#> 903    906
#> 904    907
#> 905    908
#> 906    909
#> 907    910
#> 908    911
#> 909    912
#> 910    913
#> 911    914
#> 912    915
#> 913    916
#> 914    917
#> 915    918
#> 916    919
#> 917    920
#> 918    921
#> 919    922
#> 920    923
#> 921    924
#> 922    925
#> 923    926
#> 924    927
#> 925    928
#> 926    929
#> 927    930
#> 928    931
#> 929    932
#> 930    933
#> 931    934
#> 932    935
#> 933    936
#> 934    937
#> 935    938
#> 936    939
#> 937    940
#> 938    941
#> 939    942
#> 940    943
#> 941    944
#> 942    945
#> 943    946
#> 944    947
#> 945    948
#> 946    949
#> 947    950
#> 948    951
#> 949    952
#> 950    953
#> 951    954
#> 952    955
#> 953    956
#> 954    957
#> 955    958
#> 956    959
#> 957    960
#> 958    961
#> 959    962
#> 960    963
#> 961    964
#> 962    965
#> 963    966
#> 964    967
#> 965    968
#> 966    969
#> 967    970
#> 968    971
#> 969    972
#> 970    973
#> 971    974
#> 972    975
#> 973    976
#> 974    977
#> 975    978
#> 976    979
#> 977    980
#> 978    981
#> 979    982
#> 980    983
#> 981    984
#> 982    985
#> 983    986
#> 984    987
#> 985    988
#> 986    989
#> 987    990
#> 988    991
#> 989    992
#> 990    993
#> 991    994
#> 992    995
#> 993    996
#> 994    997
#> 995    998
#> 996    999
#> 997   1000

sessionInfo()
#> R version 4.0.3 (2020-10-10)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 19042)
#> 
#> Matrix products: default
#> 
#> locale:
#> [1] LC_COLLATE=Portuguese_Brazil.1252  LC_CTYPE=Portuguese_Brazil.1252   
#> [3] LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C                      
#> [5] LC_TIME=Portuguese_Brazil.1252    
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] purrr_0.3.4        magrittr_2.0.1     furrr_0.2.2        future_1.21.0     
#> [5] RSQLite_2.2.3.9000 DBI_1.1.1         
#> 
#> loaded via a namespace (and not attached):
#>  [1] Rcpp_1.0.6        pillar_1.5.1      compiler_4.0.3    highr_0.8        
#>  [5] tools_4.0.3       digest_0.6.27     bit_4.0.4         evaluate_0.14    
#>  [9] memoise_2.0.0     lifecycle_1.0.0   tibble_3.1.0      debugme_1.1.0    
#> [13] pkgconfig_2.0.3   rlang_0.4.10      reprex_1.0.0      parallel_4.0.3   
#> [17] yaml_2.2.1        xfun_0.21         fastmap_1.1.0     styler_1.3.2     
#> [21] stringr_1.4.0     knitr_1.31        fs_1.5.0          vctrs_0.3.6      
#> [25] globals_0.14.0    bit64_4.0.5       glue_1.4.2        listenv_0.8.0    
#> [29] parallelly_1.23.0 fansi_0.4.2       rmarkdown_2.7     blob_1.2.1       
#> [33] backports_1.2.1   codetools_0.2-18  ellipsis_0.3.1    htmltools_0.5.1.1
#> [37] utf8_1.1.4        stringi_1.5.3     cachem_1.0.4      crayon_1.4.1

Created on 2021-03-08 by the reprex package (v1.0.0)

gaborcsardi commented 3 years ago

With 5 seconds of pause. There is a loss of 3 writes to SQLite.

You did not set the busy timeout at all in your code seemingly? Btw. that PR does not change anything for Windows. Windows did not have this issue, you just had to set the busy timeout, I think.

georgevbsantiago commented 3 years ago

How do I set the busy time?

gaborcsardi commented 3 years ago

See here: https://www.sqlite.org/pragma.html#pragma_busy_timeout

georgevbsantiago commented 3 years ago

Did I correctly define busy time with DBI :: dbExecute (conn," PRAGMA busy_timeout = 4000 ")?

All recordings made successfully.

# Package RSQLite Installed from: remotes::install_github("gaborcsardi/RSQLite")

library(DBI)
library(RSQLite)
library(furrr)
#> Carregando pacotes exigidos: future
library(future)
library(magrittr)
library(purrr)
#> 
#> Attaching package: 'purrr'
#> The following object is masked from 'package:magrittr':
#> 
#>     set_names

########################################################

n_teste <- 1:1000

unlink("bd_test.db")

connect_sgbd <- function() {

        conexao <- DBI::dbConnect(RSQLite::SQLite(),
                                  dbname = file.path("bd_test.db")
        )

        return(conexao)
}

teste_write_sqlite <- function(n_teste) {

        tb_teste_iris <- iris[1, ] %>%
                dplyr::mutate(n_loop = n_teste)

        # 4 seconds pause

        tentativas <- purrr::rate_delay(pause = 4,
                                        max_times = 20
        )

        insist_execute_sqlite <- purrr::insistently(DBI::dbExecute, 
                                                    tentativas,
                                                    quiet = FALSE
        )

        insist_dbWriteTable <- purrr::insistently(DBI::dbWriteTable,
                                                  tentativas,
                                                  quiet = FALSE
        )

        conn <- connect_sgbd()

        DBI::dbExecute(conn, "PRAGMA busy_timeout = 4000")

        on.exit(dbDisconnect(conn))

        tryCatch(
                {
                        insist_execute_sqlite(conn, "BEGIN IMMEDIATE TRANSACTION")
                        # Rollback on failure
                        on.exit(try(dbExecute(conn, "ROLLBACK TRANSACTION")))
                        out <- insist_dbWriteTable(conn, "tb_teste_iris", tb_teste_iris, append = TRUE)
                        dbExecute(conn, "COMMIT TRANSACTION")

                        # Don't rollback on success
                        on.exit(NULL)
                        print(paste(n_teste, "-", out))
                },
                error = function(e) {
                        print(paste(n_teste, "-", conditionMessage(e)))
                }
        )
}

future::plan("multisession",
             workers = 8
)

options(future.rng.onMisuse = "ignore")

furrr::future_walk(n_teste, teste_write_sqlite, .progress = TRUE)
#> [1] "1 - TRUE"
#> [1] "2 - TRUE"
#> [1] "3 - TRUE"
#> [1] "4 - TRUE"
#> [1] "5 - TRUE"
#> [1] "6 - TRUE"
#> [1] "7 - TRUE"
#> [1] "8 - TRUE"
#> [1] "9 - TRUE"
#> [1] "10 - TRUE"
#> [1] "11 - TRUE"
#> [1] "12 - TRUE"
#> [1] "13 - TRUE"
#> [1] "14 - TRUE"
#> [1] "15 - TRUE"
#> [1] "16 - TRUE"
#> [1] "17 - TRUE"
#> [1] "18 - TRUE"
#> [1] "19 - TRUE"
#> [1] "20 - TRUE"
#> [1] "21 - TRUE"
#> [1] "22 - TRUE"
#> [1] "23 - TRUE"
#> [1] "24 - TRUE"
#> [1] "25 - TRUE"
#> [1] "26 - TRUE"
#> [1] "27 - TRUE"
#> [1] "28 - TRUE"
#> [1] "29 - TRUE"
#> [1] "30 - TRUE"
#> [1] "31 - TRUE"
#> [1] "32 - TRUE"
#> [1] "33 - TRUE"
#> [1] "34 - TRUE"
#> [1] "35 - TRUE"
#> [1] "36 - TRUE"
#> [1] "37 - TRUE"
#> [1] "38 - TRUE"
#> [1] "39 - TRUE"
#> [1] "40 - TRUE"
#> [1] "41 - TRUE"
#> [1] "42 - TRUE"
#> [1] "43 - TRUE"
#> [1] "44 - TRUE"
#> [1] "45 - TRUE"
#> [1] "46 - TRUE"
#> [1] "47 - TRUE"
#> [1] "48 - TRUE"
#> [1] "49 - TRUE"
#> [1] "50 - TRUE"
#> [1] "51 - TRUE"
#> [1] "52 - TRUE"
#> [1] "53 - TRUE"
#> [1] "54 - TRUE"
#> [1] "55 - TRUE"
#> [1] "56 - TRUE"
#> [1] "57 - TRUE"
#> [1] "58 - TRUE"
#> [1] "59 - TRUE"
#> [1] "60 - TRUE"
#> [1] "61 - TRUE"
#> [1] "62 - TRUE"
#> [1] "63 - TRUE"
#> [1] "64 - TRUE"
#> [1] "65 - TRUE"
#> [1] "66 - TRUE"
#> [1] "67 - TRUE"
#> [1] "68 - TRUE"
#> [1] "69 - TRUE"
#> [1] "70 - TRUE"
#> [1] "71 - TRUE"
#> [1] "72 - TRUE"
#> [1] "73 - TRUE"
#> [1] "74 - TRUE"
#> [1] "75 - TRUE"
#> [1] "76 - TRUE"
#> [1] "77 - TRUE"
#> [1] "78 - TRUE"
#> [1] "79 - TRUE"
#> [1] "80 - TRUE"
#> [1] "81 - TRUE"
#> [1] "82 - TRUE"
#> [1] "83 - TRUE"
#> [1] "84 - TRUE"
#> [1] "85 - TRUE"
#> [1] "86 - TRUE"
#> [1] "87 - TRUE"
#> [1] "88 - TRUE"
#> [1] "89 - TRUE"
#> [1] "90 - TRUE"
#> [1] "91 - TRUE"
#> [1] "92 - TRUE"
#> [1] "93 - TRUE"
#> [1] "94 - TRUE"
#> [1] "95 - TRUE"
#> [1] "96 - TRUE"
#> [1] "97 - TRUE"
#> [1] "98 - TRUE"
#> [1] "99 - TRUE"
#> [1] "100 - TRUE"
#> [1] "101 - TRUE"
#> [1] "102 - TRUE"
#> [1] "103 - TRUE"
#> [1] "104 - TRUE"
#> [1] "105 - TRUE"
#> [1] "106 - TRUE"
#> [1] "107 - TRUE"
#> [1] "108 - TRUE"
#> [1] "109 - TRUE"
#> [1] "110 - TRUE"
#> [1] "111 - TRUE"
#> [1] "112 - TRUE"
#> [1] "113 - TRUE"
#> [1] "114 - TRUE"
#> [1] "115 - TRUE"
#> [1] "116 - TRUE"
#> [1] "117 - TRUE"
#> [1] "118 - TRUE"
#> [1] "119 - TRUE"
#> [1] "120 - TRUE"
#> [1] "121 - TRUE"
#> [1] "122 - TRUE"
#> [1] "123 - TRUE"
#> [1] "124 - TRUE"
#> [1] "125 - TRUE"
#> Warning: Couldn't set synchronous mode: database is locked
#> Use `synchronous` = NULL to turn off this warning.
#> [1] "126 - TRUE"
#> [1] "127 - TRUE"
#> [1] "128 - TRUE"
#> [1] "129 - TRUE"
#> [1] "130 - TRUE"
#> [1] "131 - TRUE"
#> [1] "132 - TRUE"
#> [1] "133 - TRUE"
#> [1] "134 - TRUE"
#> [1] "135 - TRUE"
#> [1] "136 - TRUE"
#> [1] "137 - TRUE"
#> [1] "138 - TRUE"
#> [1] "139 - TRUE"
#> [1] "140 - TRUE"
#> [1] "141 - TRUE"
#> [1] "142 - TRUE"
#> [1] "143 - TRUE"
#> [1] "144 - TRUE"
#> [1] "145 - TRUE"
#> [1] "146 - TRUE"
#> [1] "147 - TRUE"
#> [1] "148 - TRUE"
#> [1] "149 - TRUE"
#> [1] "150 - TRUE"
#> [1] "151 - TRUE"
#> [1] "152 - TRUE"
#> [1] "153 - TRUE"
#> [1] "154 - TRUE"
#> [1] "155 - TRUE"
#> [1] "156 - TRUE"
#> [1] "157 - TRUE"
#> [1] "158 - TRUE"
#> [1] "159 - TRUE"
#> [1] "160 - TRUE"
#> [1] "161 - TRUE"
#> [1] "162 - TRUE"
#> [1] "163 - TRUE"
#> [1] "164 - TRUE"
#> [1] "165 - TRUE"
#> [1] "166 - TRUE"
#> [1] "167 - TRUE"
#> [1] "168 - TRUE"
#> [1] "169 - TRUE"
#> [1] "170 - TRUE"
#> [1] "171 - TRUE"
#> [1] "172 - TRUE"
#> [1] "173 - TRUE"
#> [1] "174 - TRUE"
#> [1] "175 - TRUE"
#> [1] "176 - TRUE"
#> [1] "177 - TRUE"
#> [1] "178 - TRUE"
#> [1] "179 - TRUE"
#> [1] "180 - TRUE"
#> [1] "181 - TRUE"
#> [1] "182 - TRUE"
#> [1] "183 - TRUE"
#> [1] "184 - TRUE"
#> [1] "185 - TRUE"
#> [1] "186 - TRUE"
#> [1] "187 - TRUE"
#> [1] "188 - TRUE"
#> [1] "189 - TRUE"
#> [1] "190 - TRUE"
#> [1] "191 - TRUE"
#> [1] "192 - TRUE"
#> [1] "193 - TRUE"
#> [1] "194 - TRUE"
#> [1] "195 - TRUE"
#> [1] "196 - TRUE"
#> [1] "197 - TRUE"
#> [1] "198 - TRUE"
#> [1] "199 - TRUE"
#> [1] "200 - TRUE"
#> [1] "201 - TRUE"
#> [1] "202 - TRUE"
#> [1] "203 - TRUE"
#> [1] "204 - TRUE"
#> [1] "205 - TRUE"
#> [1] "206 - TRUE"
#> [1] "207 - TRUE"
#> [1] "208 - TRUE"
#> [1] "209 - TRUE"
#> [1] "210 - TRUE"
#> [1] "211 - TRUE"
#> [1] "212 - TRUE"
#> [1] "213 - TRUE"
#> [1] "214 - TRUE"
#> [1] "215 - TRUE"
#> [1] "216 - TRUE"
#> [1] "217 - TRUE"
#> [1] "218 - TRUE"
#> [1] "219 - TRUE"
#> [1] "220 - TRUE"
#> [1] "221 - TRUE"
#> [1] "222 - TRUE"
#> [1] "223 - TRUE"
#> [1] "224 - TRUE"
#> [1] "225 - TRUE"
#> [1] "226 - TRUE"
#> [1] "227 - TRUE"
#> [1] "228 - TRUE"
#> [1] "229 - TRUE"
#> [1] "230 - TRUE"
#> [1] "231 - TRUE"
#> [1] "232 - TRUE"
#> [1] "233 - TRUE"
#> [1] "234 - TRUE"
#> [1] "235 - TRUE"
#> [1] "236 - TRUE"
#> [1] "237 - TRUE"
#> [1] "238 - TRUE"
#> [1] "239 - TRUE"
#> [1] "240 - TRUE"
#> [1] "241 - TRUE"
#> [1] "242 - TRUE"
#> [1] "243 - TRUE"
#> [1] "244 - TRUE"
#> [1] "245 - TRUE"
#> [1] "246 - TRUE"
#> [1] "247 - TRUE"
#> [1] "248 - TRUE"
#> [1] "249 - TRUE"
#> [1] "250 - TRUE"
#> [1] "251 - TRUE"
#> [1] "252 - TRUE"
#> [1] "253 - TRUE"
#> [1] "254 - TRUE"
#> [1] "255 - TRUE"
#> [1] "256 - TRUE"
#> [1] "257 - TRUE"
#> [1] "258 - TRUE"
#> [1] "259 - TRUE"
#> [1] "260 - TRUE"
#> [1] "261 - TRUE"
#> [1] "262 - TRUE"
#> [1] "263 - TRUE"
#> [1] "264 - TRUE"
#> [1] "265 - TRUE"
#> [1] "266 - TRUE"
#> [1] "267 - TRUE"
#> [1] "268 - TRUE"
#> [1] "269 - TRUE"
#> [1] "270 - TRUE"
#> [1] "271 - TRUE"
#> [1] "272 - TRUE"
#> [1] "273 - TRUE"
#> [1] "274 - TRUE"
#> [1] "275 - TRUE"
#> [1] "276 - TRUE"
#> [1] "277 - TRUE"
#> [1] "278 - TRUE"
#> [1] "279 - TRUE"
#> [1] "280 - TRUE"
#> [1] "281 - TRUE"
#> [1] "282 - TRUE"
#> [1] "283 - TRUE"
#> [1] "284 - TRUE"
#> [1] "285 - TRUE"
#> [1] "286 - TRUE"
#> [1] "287 - TRUE"
#> [1] "288 - TRUE"
#> [1] "289 - TRUE"
#> [1] "290 - TRUE"
#> [1] "291 - TRUE"
#> [1] "292 - TRUE"
#> [1] "293 - TRUE"
#> [1] "294 - TRUE"
#> [1] "295 - TRUE"
#> [1] "296 - TRUE"
#> [1] "297 - TRUE"
#> [1] "298 - TRUE"
#> [1] "299 - TRUE"
#> [1] "300 - TRUE"
#> [1] "301 - TRUE"
#> [1] "302 - TRUE"
#> [1] "303 - TRUE"
#> [1] "304 - TRUE"
#> [1] "305 - TRUE"
#> [1] "306 - TRUE"
#> [1] "307 - TRUE"
#> [1] "308 - TRUE"
#> [1] "309 - TRUE"
#> [1] "310 - TRUE"
#> [1] "311 - TRUE"
#> [1] "312 - TRUE"
#> [1] "313 - TRUE"
#> [1] "314 - TRUE"
#> [1] "315 - TRUE"
#> [1] "316 - TRUE"
#> [1] "317 - TRUE"
#> [1] "318 - TRUE"
#> [1] "319 - TRUE"
#> [1] "320 - TRUE"
#> [1] "321 - TRUE"
#> [1] "322 - TRUE"
#> [1] "323 - TRUE"
#> [1] "324 - TRUE"
#> [1] "325 - TRUE"
#> [1] "326 - TRUE"
#> [1] "327 - TRUE"
#> [1] "328 - TRUE"
#> [1] "329 - TRUE"
#> [1] "330 - TRUE"
#> [1] "331 - TRUE"
#> [1] "332 - TRUE"
#> [1] "333 - TRUE"
#> [1] "334 - TRUE"
#> [1] "335 - TRUE"
#> [1] "336 - TRUE"
#> [1] "337 - TRUE"
#> [1] "338 - TRUE"
#> [1] "339 - TRUE"
#> [1] "340 - TRUE"
#> [1] "341 - TRUE"
#> [1] "342 - TRUE"
#> [1] "343 - TRUE"
#> [1] "344 - TRUE"
#> [1] "345 - TRUE"
#> [1] "346 - TRUE"
#> [1] "347 - TRUE"
#> [1] "348 - TRUE"
#> [1] "349 - TRUE"
#> [1] "350 - TRUE"
#> [1] "351 - TRUE"
#> [1] "352 - TRUE"
#> [1] "353 - TRUE"
#> [1] "354 - TRUE"
#> [1] "355 - TRUE"
#> [1] "356 - TRUE"
#> [1] "357 - TRUE"
#> [1] "358 - TRUE"
#> [1] "359 - TRUE"
#> [1] "360 - TRUE"
#> [1] "361 - TRUE"
#> [1] "362 - TRUE"
#> [1] "363 - TRUE"
#> [1] "364 - TRUE"
#> [1] "365 - TRUE"
#> [1] "366 - TRUE"
#> [1] "367 - TRUE"
#> [1] "368 - TRUE"
#> [1] "369 - TRUE"
#> [1] "370 - TRUE"
#> [1] "371 - TRUE"
#> [1] "372 - TRUE"
#> [1] "373 - TRUE"
#> [1] "374 - TRUE"
#> [1] "375 - TRUE"
#> Error: database is locked
#> Retrying in 4 seconds.
#> [1] "376 - TRUE"
#> [1] "377 - TRUE"
#> [1] "378 - TRUE"
#> [1] "379 - TRUE"
#> [1] "380 - TRUE"
#> [1] "381 - TRUE"
#> [1] "382 - TRUE"
#> [1] "383 - TRUE"
#> [1] "384 - TRUE"
#> [1] "385 - TRUE"
#> [1] "386 - TRUE"
#> [1] "387 - TRUE"
#> [1] "388 - TRUE"
#> [1] "389 - TRUE"
#> [1] "390 - TRUE"
#> [1] "391 - TRUE"
#> [1] "392 - TRUE"
#> [1] "393 - TRUE"
#> [1] "394 - TRUE"
#> [1] "395 - TRUE"
#> [1] "396 - TRUE"
#> [1] "397 - TRUE"
#> [1] "398 - TRUE"
#> [1] "399 - TRUE"
#> [1] "400 - TRUE"
#> [1] "401 - TRUE"
#> [1] "402 - TRUE"
#> [1] "403 - TRUE"
#> [1] "404 - TRUE"
#> [1] "405 - TRUE"
#> [1] "406 - TRUE"
#> [1] "407 - TRUE"
#> [1] "408 - TRUE"
#> [1] "409 - TRUE"
#> [1] "410 - TRUE"
#> [1] "411 - TRUE"
#> [1] "412 - TRUE"
#> [1] "413 - TRUE"
#> [1] "414 - TRUE"
#> [1] "415 - TRUE"
#> [1] "416 - TRUE"
#> [1] "417 - TRUE"
#> [1] "418 - TRUE"
#> [1] "419 - TRUE"
#> [1] "420 - TRUE"
#> [1] "421 - TRUE"
#> [1] "422 - TRUE"
#> [1] "423 - TRUE"
#> [1] "424 - TRUE"
#> [1] "425 - TRUE"
#> [1] "426 - TRUE"
#> [1] "427 - TRUE"
#> [1] "428 - TRUE"
#> [1] "429 - TRUE"
#> [1] "430 - TRUE"
#> [1] "431 - TRUE"
#> [1] "432 - TRUE"
#> [1] "433 - TRUE"
#> [1] "434 - TRUE"
#> [1] "435 - TRUE"
#> [1] "436 - TRUE"
#> [1] "437 - TRUE"
#> [1] "438 - TRUE"
#> [1] "439 - TRUE"
#> [1] "440 - TRUE"
#> [1] "441 - TRUE"
#> [1] "442 - TRUE"
#> [1] "443 - TRUE"
#> [1] "444 - TRUE"
#> [1] "445 - TRUE"
#> [1] "446 - TRUE"
#> [1] "447 - TRUE"
#> [1] "448 - TRUE"
#> [1] "449 - TRUE"
#> [1] "450 - TRUE"
#> [1] "451 - TRUE"
#> [1] "452 - TRUE"
#> [1] "453 - TRUE"
#> [1] "454 - TRUE"
#> [1] "455 - TRUE"
#> [1] "456 - TRUE"
#> [1] "457 - TRUE"
#> [1] "458 - TRUE"
#> [1] "459 - TRUE"
#> [1] "460 - TRUE"
#> [1] "461 - TRUE"
#> [1] "462 - TRUE"
#> [1] "463 - TRUE"
#> [1] "464 - TRUE"
#> [1] "465 - TRUE"
#> [1] "466 - TRUE"
#> [1] "467 - TRUE"
#> [1] "468 - TRUE"
#> [1] "469 - TRUE"
#> [1] "470 - TRUE"
#> [1] "471 - TRUE"
#> [1] "472 - TRUE"
#> [1] "473 - TRUE"
#> [1] "474 - TRUE"
#> [1] "475 - TRUE"
#> [1] "476 - TRUE"
#> [1] "477 - TRUE"
#> [1] "478 - TRUE"
#> [1] "479 - TRUE"
#> [1] "480 - TRUE"
#> [1] "481 - TRUE"
#> [1] "482 - TRUE"
#> [1] "483 - TRUE"
#> [1] "484 - TRUE"
#> [1] "485 - TRUE"
#> [1] "486 - TRUE"
#> [1] "487 - TRUE"
#> [1] "488 - TRUE"
#> [1] "489 - TRUE"
#> [1] "490 - TRUE"
#> [1] "491 - TRUE"
#> [1] "492 - TRUE"
#> [1] "493 - TRUE"
#> [1] "494 - TRUE"
#> [1] "495 - TRUE"
#> [1] "496 - TRUE"
#> [1] "497 - TRUE"
#> [1] "498 - TRUE"
#> [1] "499 - TRUE"
#> [1] "500 - TRUE"
#> [1] "501 - TRUE"
#> [1] "502 - TRUE"
#> [1] "503 - TRUE"
#> [1] "504 - TRUE"
#> [1] "505 - TRUE"
#> [1] "506 - TRUE"
#> [1] "507 - TRUE"
#> [1] "508 - TRUE"
#> [1] "509 - TRUE"
#> [1] "510 - TRUE"
#> [1] "511 - TRUE"
#> [1] "512 - TRUE"
#> [1] "513 - TRUE"
#> [1] "514 - TRUE"
#> [1] "515 - TRUE"
#> [1] "516 - TRUE"
#> [1] "517 - TRUE"
#> [1] "518 - TRUE"
#> [1] "519 - TRUE"
#> [1] "520 - TRUE"
#> [1] "521 - TRUE"
#> [1] "522 - TRUE"
#> [1] "523 - TRUE"
#> [1] "524 - TRUE"
#> [1] "525 - TRUE"
#> [1] "526 - TRUE"
#> [1] "527 - TRUE"
#> [1] "528 - TRUE"
#> [1] "529 - TRUE"
#> [1] "530 - TRUE"
#> [1] "531 - TRUE"
#> [1] "532 - TRUE"
#> [1] "533 - TRUE"
#> [1] "534 - TRUE"
#> [1] "535 - TRUE"
#> [1] "536 - TRUE"
#> [1] "537 - TRUE"
#> [1] "538 - TRUE"
#> [1] "539 - TRUE"
#> [1] "540 - TRUE"
#> [1] "541 - TRUE"
#> [1] "542 - TRUE"
#> [1] "543 - TRUE"
#> [1] "544 - TRUE"
#> [1] "545 - TRUE"
#> [1] "546 - TRUE"
#> [1] "547 - TRUE"
#> [1] "548 - TRUE"
#> [1] "549 - TRUE"
#> [1] "550 - TRUE"
#> [1] "551 - TRUE"
#> [1] "552 - TRUE"
#> [1] "553 - TRUE"
#> [1] "554 - TRUE"
#> [1] "555 - TRUE"
#> [1] "556 - TRUE"
#> [1] "557 - TRUE"
#> [1] "558 - TRUE"
#> [1] "559 - TRUE"
#> [1] "560 - TRUE"
#> [1] "561 - TRUE"
#> [1] "562 - TRUE"
#> [1] "563 - TRUE"
#> [1] "564 - TRUE"
#> [1] "565 - TRUE"
#> [1] "566 - TRUE"
#> [1] "567 - TRUE"
#> [1] "568 - TRUE"
#> [1] "569 - TRUE"
#> [1] "570 - TRUE"
#> [1] "571 - TRUE"
#> [1] "572 - TRUE"
#> [1] "573 - TRUE"
#> [1] "574 - TRUE"
#> [1] "575 - TRUE"
#> [1] "576 - TRUE"
#> [1] "577 - TRUE"
#> [1] "578 - TRUE"
#> [1] "579 - TRUE"
#> [1] "580 - TRUE"
#> [1] "581 - TRUE"
#> [1] "582 - TRUE"
#> [1] "583 - TRUE"
#> [1] "584 - TRUE"
#> [1] "585 - TRUE"
#> [1] "586 - TRUE"
#> [1] "587 - TRUE"
#> [1] "588 - TRUE"
#> [1] "589 - TRUE"
#> [1] "590 - TRUE"
#> [1] "591 - TRUE"
#> [1] "592 - TRUE"
#> [1] "593 - TRUE"
#> [1] "594 - TRUE"
#> [1] "595 - TRUE"
#> [1] "596 - TRUE"
#> [1] "597 - TRUE"
#> [1] "598 - TRUE"
#> [1] "599 - TRUE"
#> [1] "600 - TRUE"
#> [1] "601 - TRUE"
#> [1] "602 - TRUE"
#> [1] "603 - TRUE"
#> [1] "604 - TRUE"
#> [1] "605 - TRUE"
#> [1] "606 - TRUE"
#> [1] "607 - TRUE"
#> [1] "608 - TRUE"
#> [1] "609 - TRUE"
#> [1] "610 - TRUE"
#> [1] "611 - TRUE"
#> [1] "612 - TRUE"
#> [1] "613 - TRUE"
#> [1] "614 - TRUE"
#> [1] "615 - TRUE"
#> [1] "616 - TRUE"
#> [1] "617 - TRUE"
#> [1] "618 - TRUE"
#> [1] "619 - TRUE"
#> [1] "620 - TRUE"
#> [1] "621 - TRUE"
#> [1] "622 - TRUE"
#> [1] "623 - TRUE"
#> [1] "624 - TRUE"
#> [1] "625 - TRUE"
#> [1] "626 - TRUE"
#> [1] "627 - TRUE"
#> [1] "628 - TRUE"
#> [1] "629 - TRUE"
#> [1] "630 - TRUE"
#> [1] "631 - TRUE"
#> [1] "632 - TRUE"
#> [1] "633 - TRUE"
#> [1] "634 - TRUE"
#> [1] "635 - TRUE"
#> [1] "636 - TRUE"
#> [1] "637 - TRUE"
#> [1] "638 - TRUE"
#> [1] "639 - TRUE"
#> [1] "640 - TRUE"
#> [1] "641 - TRUE"
#> [1] "642 - TRUE"
#> [1] "643 - TRUE"
#> [1] "644 - TRUE"
#> [1] "645 - TRUE"
#> [1] "646 - TRUE"
#> [1] "647 - TRUE"
#> [1] "648 - TRUE"
#> [1] "649 - TRUE"
#> [1] "650 - TRUE"
#> [1] "651 - TRUE"
#> [1] "652 - TRUE"
#> [1] "653 - TRUE"
#> [1] "654 - TRUE"
#> [1] "655 - TRUE"
#> [1] "656 - TRUE"
#> [1] "657 - TRUE"
#> [1] "658 - TRUE"
#> [1] "659 - TRUE"
#> [1] "660 - TRUE"
#> [1] "661 - TRUE"
#> [1] "662 - TRUE"
#> [1] "663 - TRUE"
#> [1] "664 - TRUE"
#> [1] "665 - TRUE"
#> [1] "666 - TRUE"
#> [1] "667 - TRUE"
#> [1] "668 - TRUE"
#> [1] "669 - TRUE"
#> [1] "670 - TRUE"
#> [1] "671 - TRUE"
#> [1] "672 - TRUE"
#> [1] "673 - TRUE"
#> [1] "674 - TRUE"
#> [1] "675 - TRUE"
#> [1] "676 - TRUE"
#> [1] "677 - TRUE"
#> [1] "678 - TRUE"
#> [1] "679 - TRUE"
#> [1] "680 - TRUE"
#> [1] "681 - TRUE"
#> [1] "682 - TRUE"
#> [1] "683 - TRUE"
#> [1] "684 - TRUE"
#> [1] "685 - TRUE"
#> [1] "686 - TRUE"
#> [1] "687 - TRUE"
#> [1] "688 - TRUE"
#> [1] "689 - TRUE"
#> [1] "690 - TRUE"
#> [1] "691 - TRUE"
#> [1] "692 - TRUE"
#> [1] "693 - TRUE"
#> [1] "694 - TRUE"
#> [1] "695 - TRUE"
#> [1] "696 - TRUE"
#> [1] "697 - TRUE"
#> [1] "698 - TRUE"
#> [1] "699 - TRUE"
#> [1] "700 - TRUE"
#> [1] "701 - TRUE"
#> [1] "702 - TRUE"
#> [1] "703 - TRUE"
#> [1] "704 - TRUE"
#> [1] "705 - TRUE"
#> [1] "706 - TRUE"
#> [1] "707 - TRUE"
#> [1] "708 - TRUE"
#> [1] "709 - TRUE"
#> [1] "710 - TRUE"
#> [1] "711 - TRUE"
#> [1] "712 - TRUE"
#> [1] "713 - TRUE"
#> [1] "714 - TRUE"
#> [1] "715 - TRUE"
#> [1] "716 - TRUE"
#> [1] "717 - TRUE"
#> [1] "718 - TRUE"
#> [1] "719 - TRUE"
#> [1] "720 - TRUE"
#> [1] "721 - TRUE"
#> [1] "722 - TRUE"
#> [1] "723 - TRUE"
#> [1] "724 - TRUE"
#> [1] "725 - TRUE"
#> [1] "726 - TRUE"
#> [1] "727 - TRUE"
#> [1] "728 - TRUE"
#> [1] "729 - TRUE"
#> [1] "730 - TRUE"
#> [1] "731 - TRUE"
#> [1] "732 - TRUE"
#> [1] "733 - TRUE"
#> [1] "734 - TRUE"
#> [1] "735 - TRUE"
#> [1] "736 - TRUE"
#> [1] "737 - TRUE"
#> [1] "738 - TRUE"
#> [1] "739 - TRUE"
#> [1] "740 - TRUE"
#> [1] "741 - TRUE"
#> [1] "742 - TRUE"
#> [1] "743 - TRUE"
#> [1] "744 - TRUE"
#> [1] "745 - TRUE"
#> [1] "746 - TRUE"
#> [1] "747 - TRUE"
#> [1] "748 - TRUE"
#> [1] "749 - TRUE"
#> [1] "750 - TRUE"
#> Error: database is locked
#> Retrying in 4 seconds.
#> [1] "751 - TRUE"
#> [1] "752 - TRUE"
#> [1] "753 - TRUE"
#> [1] "754 - TRUE"
#> [1] "755 - TRUE"
#> [1] "756 - TRUE"
#> [1] "757 - TRUE"
#> [1] "758 - TRUE"
#> [1] "759 - TRUE"
#> [1] "760 - TRUE"
#> [1] "761 - TRUE"
#> [1] "762 - TRUE"
#> [1] "763 - TRUE"
#> [1] "764 - TRUE"
#> [1] "765 - TRUE"
#> [1] "766 - TRUE"
#> [1] "767 - TRUE"
#> [1] "768 - TRUE"
#> [1] "769 - TRUE"
#> [1] "770 - TRUE"
#> [1] "771 - TRUE"
#> [1] "772 - TRUE"
#> [1] "773 - TRUE"
#> [1] "774 - TRUE"
#> [1] "775 - TRUE"
#> [1] "776 - TRUE"
#> [1] "777 - TRUE"
#> [1] "778 - TRUE"
#> [1] "779 - TRUE"
#> [1] "780 - TRUE"
#> [1] "781 - TRUE"
#> [1] "782 - TRUE"
#> [1] "783 - TRUE"
#> [1] "784 - TRUE"
#> [1] "785 - TRUE"
#> [1] "786 - TRUE"
#> [1] "787 - TRUE"
#> [1] "788 - TRUE"
#> [1] "789 - TRUE"
#> [1] "790 - TRUE"
#> [1] "791 - TRUE"
#> [1] "792 - TRUE"
#> [1] "793 - TRUE"
#> [1] "794 - TRUE"
#> [1] "795 - TRUE"
#> [1] "796 - TRUE"
#> [1] "797 - TRUE"
#> [1] "798 - TRUE"
#> [1] "799 - TRUE"
#> [1] "800 - TRUE"
#> [1] "801 - TRUE"
#> [1] "802 - TRUE"
#> [1] "803 - TRUE"
#> [1] "804 - TRUE"
#> [1] "805 - TRUE"
#> [1] "806 - TRUE"
#> [1] "807 - TRUE"
#> [1] "808 - TRUE"
#> [1] "809 - TRUE"
#> [1] "810 - TRUE"
#> [1] "811 - TRUE"
#> [1] "812 - TRUE"
#> [1] "813 - TRUE"
#> [1] "814 - TRUE"
#> [1] "815 - TRUE"
#> [1] "816 - TRUE"
#> [1] "817 - TRUE"
#> [1] "818 - TRUE"
#> [1] "819 - TRUE"
#> [1] "820 - TRUE"
#> [1] "821 - TRUE"
#> [1] "822 - TRUE"
#> [1] "823 - TRUE"
#> [1] "824 - TRUE"
#> [1] "825 - TRUE"
#> [1] "826 - TRUE"
#> [1] "827 - TRUE"
#> [1] "828 - TRUE"
#> [1] "829 - TRUE"
#> [1] "830 - TRUE"
#> [1] "831 - TRUE"
#> [1] "832 - TRUE"
#> [1] "833 - TRUE"
#> [1] "834 - TRUE"
#> [1] "835 - TRUE"
#> [1] "836 - TRUE"
#> [1] "837 - TRUE"
#> [1] "838 - TRUE"
#> [1] "839 - TRUE"
#> [1] "840 - TRUE"
#> [1] "841 - TRUE"
#> [1] "842 - TRUE"
#> [1] "843 - TRUE"
#> [1] "844 - TRUE"
#> [1] "845 - TRUE"
#> [1] "846 - TRUE"
#> [1] "847 - TRUE"
#> [1] "848 - TRUE"
#> [1] "849 - TRUE"
#> [1] "850 - TRUE"
#> [1] "851 - TRUE"
#> [1] "852 - TRUE"
#> [1] "853 - TRUE"
#> [1] "854 - TRUE"
#> [1] "855 - TRUE"
#> [1] "856 - TRUE"
#> [1] "857 - TRUE"
#> [1] "858 - TRUE"
#> [1] "859 - TRUE"
#> [1] "860 - TRUE"
#> [1] "861 - TRUE"
#> [1] "862 - TRUE"
#> [1] "863 - TRUE"
#> [1] "864 - TRUE"
#> [1] "865 - TRUE"
#> [1] "866 - TRUE"
#> [1] "867 - TRUE"
#> [1] "868 - TRUE"
#> [1] "869 - TRUE"
#> [1] "870 - TRUE"
#> [1] "871 - TRUE"
#> [1] "872 - TRUE"
#> [1] "873 - TRUE"
#> [1] "874 - TRUE"
#> [1] "875 - TRUE"
#> Warning: Couldn't set synchronous mode: database is locked
#> Use `synchronous` = NULL to turn off this warning.
#> Error: database is locked
#> Retrying in 4 seconds.
#> [1] "876 - TRUE"
#> [1] "877 - TRUE"
#> [1] "878 - TRUE"
#> [1] "879 - TRUE"
#> [1] "880 - TRUE"
#> [1] "881 - TRUE"
#> [1] "882 - TRUE"
#> [1] "883 - TRUE"
#> [1] "884 - TRUE"
#> [1] "885 - TRUE"
#> [1] "886 - TRUE"
#> [1] "887 - TRUE"
#> [1] "888 - TRUE"
#> [1] "889 - TRUE"
#> [1] "890 - TRUE"
#> [1] "891 - TRUE"
#> [1] "892 - TRUE"
#> [1] "893 - TRUE"
#> [1] "894 - TRUE"
#> [1] "895 - TRUE"
#> [1] "896 - TRUE"
#> [1] "897 - TRUE"
#> [1] "898 - TRUE"
#> [1] "899 - TRUE"
#> [1] "900 - TRUE"
#> [1] "901 - TRUE"
#> [1] "902 - TRUE"
#> [1] "903 - TRUE"
#> [1] "904 - TRUE"
#> [1] "905 - TRUE"
#> [1] "906 - TRUE"
#> [1] "907 - TRUE"
#> [1] "908 - TRUE"
#> [1] "909 - TRUE"
#> [1] "910 - TRUE"
#> [1] "911 - TRUE"
#> [1] "912 - TRUE"
#> [1] "913 - TRUE"
#> [1] "914 - TRUE"
#> [1] "915 - TRUE"
#> [1] "916 - TRUE"
#> [1] "917 - TRUE"
#> [1] "918 - TRUE"
#> [1] "919 - TRUE"
#> [1] "920 - TRUE"
#> [1] "921 - TRUE"
#> [1] "922 - TRUE"
#> [1] "923 - TRUE"
#> [1] "924 - TRUE"
#> [1] "925 - TRUE"
#> [1] "926 - TRUE"
#> [1] "927 - TRUE"
#> [1] "928 - TRUE"
#> [1] "929 - TRUE"
#> [1] "930 - TRUE"
#> [1] "931 - TRUE"
#> [1] "932 - TRUE"
#> [1] "933 - TRUE"
#> [1] "934 - TRUE"
#> [1] "935 - TRUE"
#> [1] "936 - TRUE"
#> [1] "937 - TRUE"
#> [1] "938 - TRUE"
#> [1] "939 - TRUE"
#> [1] "940 - TRUE"
#> [1] "941 - TRUE"
#> [1] "942 - TRUE"
#> [1] "943 - TRUE"
#> [1] "944 - TRUE"
#> [1] "945 - TRUE"
#> [1] "946 - TRUE"
#> [1] "947 - TRUE"
#> [1] "948 - TRUE"
#> [1] "949 - TRUE"
#> [1] "950 - TRUE"
#> [1] "951 - TRUE"
#> [1] "952 - TRUE"
#> [1] "953 - TRUE"
#> [1] "954 - TRUE"
#> [1] "955 - TRUE"
#> [1] "956 - TRUE"
#> [1] "957 - TRUE"
#> [1] "958 - TRUE"
#> [1] "959 - TRUE"
#> [1] "960 - TRUE"
#> [1] "961 - TRUE"
#> [1] "962 - TRUE"
#> [1] "963 - TRUE"
#> [1] "964 - TRUE"
#> [1] "965 - TRUE"
#> [1] "966 - TRUE"
#> [1] "967 - TRUE"
#> [1] "968 - TRUE"
#> [1] "969 - TRUE"
#> [1] "970 - TRUE"
#> [1] "971 - TRUE"
#> [1] "972 - TRUE"
#> [1] "973 - TRUE"
#> [1] "974 - TRUE"
#> [1] "975 - TRUE"
#> [1] "976 - TRUE"
#> [1] "977 - TRUE"
#> [1] "978 - TRUE"
#> [1] "979 - TRUE"
#> [1] "980 - TRUE"
#> [1] "981 - TRUE"
#> [1] "982 - TRUE"
#> [1] "983 - TRUE"
#> [1] "984 - TRUE"
#> [1] "985 - TRUE"
#> [1] "986 - TRUE"
#> [1] "987 - TRUE"
#> [1] "988 - TRUE"
#> [1] "989 - TRUE"
#> [1] "990 - TRUE"
#> [1] "991 - TRUE"
#> [1] "992 - TRUE"
#> [1] "993 - TRUE"
#> [1] "994 - TRUE"
#> [1] "995 - TRUE"
#> [1] "996 - TRUE"
#> [1] "997 - TRUE"
#> [1] "998 - TRUE"
#> [1] "999 - TRUE"
#> [1] "1000 - TRUE"

con <- dbConnect(RSQLite::SQLite(), dbname = file.path("bd_test.db"))
dbGetQuery(con, "SELECT n_loop FROM tb_teste_iris ORDER BY n_loop")
#>      n_loop
#> 1         1
#> 2         2
#> 3         3
#> 4         4
#> 5         5
#> 6         6
#> 7         7
#> 8         8
#> 9         9
#> 10       10
#> 11       11
#> 12       12
#> 13       13
#> 14       14
#> 15       15
#> 16       16
#> 17       17
#> 18       18
#> 19       19
#> 20       20
#> 21       21
#> 22       22
#> 23       23
#> 24       24
#> 25       25
#> 26       26
#> 27       27
#> 28       28
#> 29       29
#> 30       30
#> 31       31
#> 32       32
#> 33       33
#> 34       34
#> 35       35
#> 36       36
#> 37       37
#> 38       38
#> 39       39
#> 40       40
#> 41       41
#> 42       42
#> 43       43
#> 44       44
#> 45       45
#> 46       46
#> 47       47
#> 48       48
#> 49       49
#> 50       50
#> 51       51
#> 52       52
#> 53       53
#> 54       54
#> 55       55
#> 56       56
#> 57       57
#> 58       58
#> 59       59
#> 60       60
#> 61       61
#> 62       62
#> 63       63
#> 64       64
#> 65       65
#> 66       66
#> 67       67
#> 68       68
#> 69       69
#> 70       70
#> 71       71
#> 72       72
#> 73       73
#> 74       74
#> 75       75
#> 76       76
#> 77       77
#> 78       78
#> 79       79
#> 80       80
#> 81       81
#> 82       82
#> 83       83
#> 84       84
#> 85       85
#> 86       86
#> 87       87
#> 88       88
#> 89       89
#> 90       90
#> 91       91
#> 92       92
#> 93       93
#> 94       94
#> 95       95
#> 96       96
#> 97       97
#> 98       98
#> 99       99
#> 100     100
#> 101     101
#> 102     102
#> 103     103
#> 104     104
#> 105     105
#> 106     106
#> 107     107
#> 108     108
#> 109     109
#> 110     110
#> 111     111
#> 112     112
#> 113     113
#> 114     114
#> 115     115
#> 116     116
#> 117     117
#> 118     118
#> 119     119
#> 120     120
#> 121     121
#> 122     122
#> 123     123
#> 124     124
#> 125     125
#> 126     126
#> 127     127
#> 128     128
#> 129     129
#> 130     130
#> 131     131
#> 132     132
#> 133     133
#> 134     134
#> 135     135
#> 136     136
#> 137     137
#> 138     138
#> 139     139
#> 140     140
#> 141     141
#> 142     142
#> 143     143
#> 144     144
#> 145     145
#> 146     146
#> 147     147
#> 148     148
#> 149     149
#> 150     150
#> 151     151
#> 152     152
#> 153     153
#> 154     154
#> 155     155
#> 156     156
#> 157     157
#> 158     158
#> 159     159
#> 160     160
#> 161     161
#> 162     162
#> 163     163
#> 164     164
#> 165     165
#> 166     166
#> 167     167
#> 168     168
#> 169     169
#> 170     170
#> 171     171
#> 172     172
#> 173     173
#> 174     174
#> 175     175
#> 176     176
#> 177     177
#> 178     178
#> 179     179
#> 180     180
#> 181     181
#> 182     182
#> 183     183
#> 184     184
#> 185     185
#> 186     186
#> 187     187
#> 188     188
#> 189     189
#> 190     190
#> 191     191
#> 192     192
#> 193     193
#> 194     194
#> 195     195
#> 196     196
#> 197     197
#> 198     198
#> 199     199
#> 200     200
#> 201     201
#> 202     202
#> 203     203
#> 204     204
#> 205     205
#> 206     206
#> 207     207
#> 208     208
#> 209     209
#> 210     210
#> 211     211
#> 212     212
#> 213     213
#> 214     214
#> 215     215
#> 216     216
#> 217     217
#> 218     218
#> 219     219
#> 220     220
#> 221     221
#> 222     222
#> 223     223
#> 224     224
#> 225     225
#> 226     226
#> 227     227
#> 228     228
#> 229     229
#> 230     230
#> 231     231
#> 232     232
#> 233     233
#> 234     234
#> 235     235
#> 236     236
#> 237     237
#> 238     238
#> 239     239
#> 240     240
#> 241     241
#> 242     242
#> 243     243
#> 244     244
#> 245     245
#> 246     246
#> 247     247
#> 248     248
#> 249     249
#> 250     250
#> 251     251
#> 252     252
#> 253     253
#> 254     254
#> 255     255
#> 256     256
#> 257     257
#> 258     258
#> 259     259
#> 260     260
#> 261     261
#> 262     262
#> 263     263
#> 264     264
#> 265     265
#> 266     266
#> 267     267
#> 268     268
#> 269     269
#> 270     270
#> 271     271
#> 272     272
#> 273     273
#> 274     274
#> 275     275
#> 276     276
#> 277     277
#> 278     278
#> 279     279
#> 280     280
#> 281     281
#> 282     282
#> 283     283
#> 284     284
#> 285     285
#> 286     286
#> 287     287
#> 288     288
#> 289     289
#> 290     290
#> 291     291
#> 292     292
#> 293     293
#> 294     294
#> 295     295
#> 296     296
#> 297     297
#> 298     298
#> 299     299
#> 300     300
#> 301     301
#> 302     302
#> 303     303
#> 304     304
#> 305     305
#> 306     306
#> 307     307
#> 308     308
#> 309     309
#> 310     310
#> 311     311
#> 312     312
#> 313     313
#> 314     314
#> 315     315
#> 316     316
#> 317     317
#> 318     318
#> 319     319
#> 320     320
#> 321     321
#> 322     322
#> 323     323
#> 324     324
#> 325     325
#> 326     326
#> 327     327
#> 328     328
#> 329     329
#> 330     330
#> 331     331
#> 332     332
#> 333     333
#> 334     334
#> 335     335
#> 336     336
#> 337     337
#> 338     338
#> 339     339
#> 340     340
#> 341     341
#> 342     342
#> 343     343
#> 344     344
#> 345     345
#> 346     346
#> 347     347
#> 348     348
#> 349     349
#> 350     350
#> 351     351
#> 352     352
#> 353     353
#> 354     354
#> 355     355
#> 356     356
#> 357     357
#> 358     358
#> 359     359
#> 360     360
#> 361     361
#> 362     362
#> 363     363
#> 364     364
#> 365     365
#> 366     366
#> 367     367
#> 368     368
#> 369     369
#> 370     370
#> 371     371
#> 372     372
#> 373     373
#> 374     374
#> 375     375
#> 376     376
#> 377     377
#> 378     378
#> 379     379
#> 380     380
#> 381     381
#> 382     382
#> 383     383
#> 384     384
#> 385     385
#> 386     386
#> 387     387
#> 388     388
#> 389     389
#> 390     390
#> 391     391
#> 392     392
#> 393     393
#> 394     394
#> 395     395
#> 396     396
#> 397     397
#> 398     398
#> 399     399
#> 400     400
#> 401     401
#> 402     402
#> 403     403
#> 404     404
#> 405     405
#> 406     406
#> 407     407
#> 408     408
#> 409     409
#> 410     410
#> 411     411
#> 412     412
#> 413     413
#> 414     414
#> 415     415
#> 416     416
#> 417     417
#> 418     418
#> 419     419
#> 420     420
#> 421     421
#> 422     422
#> 423     423
#> 424     424
#> 425     425
#> 426     426
#> 427     427
#> 428     428
#> 429     429
#> 430     430
#> 431     431
#> 432     432
#> 433     433
#> 434     434
#> 435     435
#> 436     436
#> 437     437
#> 438     438
#> 439     439
#> 440     440
#> 441     441
#> 442     442
#> 443     443
#> 444     444
#> 445     445
#> 446     446
#> 447     447
#> 448     448
#> 449     449
#> 450     450
#> 451     451
#> 452     452
#> 453     453
#> 454     454
#> 455     455
#> 456     456
#> 457     457
#> 458     458
#> 459     459
#> 460     460
#> 461     461
#> 462     462
#> 463     463
#> 464     464
#> 465     465
#> 466     466
#> 467     467
#> 468     468
#> 469     469
#> 470     470
#> 471     471
#> 472     472
#> 473     473
#> 474     474
#> 475     475
#> 476     476
#> 477     477
#> 478     478
#> 479     479
#> 480     480
#> 481     481
#> 482     482
#> 483     483
#> 484     484
#> 485     485
#> 486     486
#> 487     487
#> 488     488
#> 489     489
#> 490     490
#> 491     491
#> 492     492
#> 493     493
#> 494     494
#> 495     495
#> 496     496
#> 497     497
#> 498     498
#> 499     499
#> 500     500
#> 501     501
#> 502     502
#> 503     503
#> 504     504
#> 505     505
#> 506     506
#> 507     507
#> 508     508
#> 509     509
#> 510     510
#> 511     511
#> 512     512
#> 513     513
#> 514     514
#> 515     515
#> 516     516
#> 517     517
#> 518     518
#> 519     519
#> 520     520
#> 521     521
#> 522     522
#> 523     523
#> 524     524
#> 525     525
#> 526     526
#> 527     527
#> 528     528
#> 529     529
#> 530     530
#> 531     531
#> 532     532
#> 533     533
#> 534     534
#> 535     535
#> 536     536
#> 537     537
#> 538     538
#> 539     539
#> 540     540
#> 541     541
#> 542     542
#> 543     543
#> 544     544
#> 545     545
#> 546     546
#> 547     547
#> 548     548
#> 549     549
#> 550     550
#> 551     551
#> 552     552
#> 553     553
#> 554     554
#> 555     555
#> 556     556
#> 557     557
#> 558     558
#> 559     559
#> 560     560
#> 561     561
#> 562     562
#> 563     563
#> 564     564
#> 565     565
#> 566     566
#> 567     567
#> 568     568
#> 569     569
#> 570     570
#> 571     571
#> 572     572
#> 573     573
#> 574     574
#> 575     575
#> 576     576
#> 577     577
#> 578     578
#> 579     579
#> 580     580
#> 581     581
#> 582     582
#> 583     583
#> 584     584
#> 585     585
#> 586     586
#> 587     587
#> 588     588
#> 589     589
#> 590     590
#> 591     591
#> 592     592
#> 593     593
#> 594     594
#> 595     595
#> 596     596
#> 597     597
#> 598     598
#> 599     599
#> 600     600
#> 601     601
#> 602     602
#> 603     603
#> 604     604
#> 605     605
#> 606     606
#> 607     607
#> 608     608
#> 609     609
#> 610     610
#> 611     611
#> 612     612
#> 613     613
#> 614     614
#> 615     615
#> 616     616
#> 617     617
#> 618     618
#> 619     619
#> 620     620
#> 621     621
#> 622     622
#> 623     623
#> 624     624
#> 625     625
#> 626     626
#> 627     627
#> 628     628
#> 629     629
#> 630     630
#> 631     631
#> 632     632
#> 633     633
#> 634     634
#> 635     635
#> 636     636
#> 637     637
#> 638     638
#> 639     639
#> 640     640
#> 641     641
#> 642     642
#> 643     643
#> 644     644
#> 645     645
#> 646     646
#> 647     647
#> 648     648
#> 649     649
#> 650     650
#> 651     651
#> 652     652
#> 653     653
#> 654     654
#> 655     655
#> 656     656
#> 657     657
#> 658     658
#> 659     659
#> 660     660
#> 661     661
#> 662     662
#> 663     663
#> 664     664
#> 665     665
#> 666     666
#> 667     667
#> 668     668
#> 669     669
#> 670     670
#> 671     671
#> 672     672
#> 673     673
#> 674     674
#> 675     675
#> 676     676
#> 677     677
#> 678     678
#> 679     679
#> 680     680
#> 681     681
#> 682     682
#> 683     683
#> 684     684
#> 685     685
#> 686     686
#> 687     687
#> 688     688
#> 689     689
#> 690     690
#> 691     691
#> 692     692
#> 693     693
#> 694     694
#> 695     695
#> 696     696
#> 697     697
#> 698     698
#> 699     699
#> 700     700
#> 701     701
#> 702     702
#> 703     703
#> 704     704
#> 705     705
#> 706     706
#> 707     707
#> 708     708
#> 709     709
#> 710     710
#> 711     711
#> 712     712
#> 713     713
#> 714     714
#> 715     715
#> 716     716
#> 717     717
#> 718     718
#> 719     719
#> 720     720
#> 721     721
#> 722     722
#> 723     723
#> 724     724
#> 725     725
#> 726     726
#> 727     727
#> 728     728
#> 729     729
#> 730     730
#> 731     731
#> 732     732
#> 733     733
#> 734     734
#> 735     735
#> 736     736
#> 737     737
#> 738     738
#> 739     739
#> 740     740
#> 741     741
#> 742     742
#> 743     743
#> 744     744
#> 745     745
#> 746     746
#> 747     747
#> 748     748
#> 749     749
#> 750     750
#> 751     751
#> 752     752
#> 753     753
#> 754     754
#> 755     755
#> 756     756
#> 757     757
#> 758     758
#> 759     759
#> 760     760
#> 761     761
#> 762     762
#> 763     763
#> 764     764
#> 765     765
#> 766     766
#> 767     767
#> 768     768
#> 769     769
#> 770     770
#> 771     771
#> 772     772
#> 773     773
#> 774     774
#> 775     775
#> 776     776
#> 777     777
#> 778     778
#> 779     779
#> 780     780
#> 781     781
#> 782     782
#> 783     783
#> 784     784
#> 785     785
#> 786     786
#> 787     787
#> 788     788
#> 789     789
#> 790     790
#> 791     791
#> 792     792
#> 793     793
#> 794     794
#> 795     795
#> 796     796
#> 797     797
#> 798     798
#> 799     799
#> 800     800
#> 801     801
#> 802     802
#> 803     803
#> 804     804
#> 805     805
#> 806     806
#> 807     807
#> 808     808
#> 809     809
#> 810     810
#> 811     811
#> 812     812
#> 813     813
#> 814     814
#> 815     815
#> 816     816
#> 817     817
#> 818     818
#> 819     819
#> 820     820
#> 821     821
#> 822     822
#> 823     823
#> 824     824
#> 825     825
#> 826     826
#> 827     827
#> 828     828
#> 829     829
#> 830     830
#> 831     831
#> 832     832
#> 833     833
#> 834     834
#> 835     835
#> 836     836
#> 837     837
#> 838     838
#> 839     839
#> 840     840
#> 841     841
#> 842     842
#> 843     843
#> 844     844
#> 845     845
#> 846     846
#> 847     847
#> 848     848
#> 849     849
#> 850     850
#> 851     851
#> 852     852
#> 853     853
#> 854     854
#> 855     855
#> 856     856
#> 857     857
#> 858     858
#> 859     859
#> 860     860
#> 861     861
#> 862     862
#> 863     863
#> 864     864
#> 865     865
#> 866     866
#> 867     867
#> 868     868
#> 869     869
#> 870     870
#> 871     871
#> 872     872
#> 873     873
#> 874     874
#> 875     875
#> 876     876
#> 877     877
#> 878     878
#> 879     879
#> 880     880
#> 881     881
#> 882     882
#> 883     883
#> 884     884
#> 885     885
#> 886     886
#> 887     887
#> 888     888
#> 889     889
#> 890     890
#> 891     891
#> 892     892
#> 893     893
#> 894     894
#> 895     895
#> 896     896
#> 897     897
#> 898     898
#> 899     899
#> 900     900
#> 901     901
#> 902     902
#> 903     903
#> 904     904
#> 905     905
#> 906     906
#> 907     907
#> 908     908
#> 909     909
#> 910     910
#> 911     911
#> 912     912
#> 913     913
#> 914     914
#> 915     915
#> 916     916
#> 917     917
#> 918     918
#> 919     919
#> 920     920
#> 921     921
#> 922     922
#> 923     923
#> 924     924
#> 925     925
#> 926     926
#> 927     927
#> 928     928
#> 929     929
#> 930     930
#> 931     931
#> 932     932
#> 933     933
#> 934     934
#> 935     935
#> 936     936
#> 937     937
#> 938     938
#> 939     939
#> 940     940
#> 941     941
#> 942     942
#> 943     943
#> 944     944
#> 945     945
#> 946     946
#> 947     947
#> 948     948
#> 949     949
#> 950     950
#> 951     951
#> 952     952
#> 953     953
#> 954     954
#> 955     955
#> 956     956
#> 957     957
#> 958     958
#> 959     959
#> 960     960
#> 961     961
#> 962     962
#> 963     963
#> 964     964
#> 965     965
#> 966     966
#> 967     967
#> 968     968
#> 969     969
#> 970     970
#> 971     971
#> 972     972
#> 973     973
#> 974     974
#> 975     975
#> 976     976
#> 977     977
#> 978     978
#> 979     979
#> 980     980
#> 981     981
#> 982     982
#> 983     983
#> 984     984
#> 985     985
#> 986     986
#> 987     987
#> 988     988
#> 989     989
#> 990     990
#> 991     991
#> 992     992
#> 993     993
#> 994     994
#> 995     995
#> 996     996
#> 997     997
#> 998     998
#> 999     999
#> 1000   1000

sessionInfo()
#> R version 4.0.3 (2020-10-10)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 19042)
#> 
#> Matrix products: default
#> 
#> locale:
#> [1] LC_COLLATE=Portuguese_Brazil.1252  LC_CTYPE=Portuguese_Brazil.1252   
#> [3] LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C                      
#> [5] LC_TIME=Portuguese_Brazil.1252    
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] purrr_0.3.4        magrittr_2.0.1     furrr_0.2.2        future_1.21.0     
#> [5] RSQLite_2.2.3.9000 DBI_1.1.1         
#> 
#> loaded via a namespace (and not attached):
#>  [1] Rcpp_1.0.6        pillar_1.5.1      compiler_4.0.3    highr_0.8        
#>  [5] tools_4.0.3       digest_0.6.27     bit_4.0.4         evaluate_0.14    
#>  [9] memoise_2.0.0     lifecycle_1.0.0   tibble_3.1.0      debugme_1.1.0    
#> [13] pkgconfig_2.0.3   rlang_0.4.10      reprex_1.0.0      parallel_4.0.3   
#> [17] yaml_2.2.1        xfun_0.21         fastmap_1.1.0     styler_1.3.2     
#> [21] stringr_1.4.0     knitr_1.31        fs_1.5.0          vctrs_0.3.6      
#> [25] globals_0.14.0    bit64_4.0.5       glue_1.4.2        listenv_0.8.0    
#> [29] parallelly_1.23.0 fansi_0.4.2       rmarkdown_2.7     blob_1.2.1       
#> [33] backports_1.2.1   codetools_0.2-18  ellipsis_0.3.1    htmltools_0.5.1.1
#> [37] utf8_1.1.4        stringi_1.5.3     cachem_1.0.4      crayon_1.4.1

Created on 2021-03-08 by the reprex package (v1.0.0)

gaborcsardi commented 3 years ago

Yes, this has always worked on Windows. Now it will work on Unix as well. Btw. you don't need the purrr::insistently() here, it is not a very good solution, the proper busy_timeout is. Your simplified code:

library(DBI)
library(RSQLite)
library(furrr)
library(future)
library(magrittr)

n_teste <- 1:1000

unlink("bd_test.db")

connect_sgbd <- function() {
  conexao <- dbConnect(
    SQLite(),
    dbname = file.path("bd_test.db")
  )

  dbExecute(conexao, "PRAGMA busy_timeout = 5000")
  # sqliteSetBusyHandler(conexao, 5000)

  conexao
}

teste_write_sqlite <- function(n_teste) {

  tb_teste_iris <- iris[1, ] %>%
    dplyr::mutate(n_loop = n_teste)

  conn <- connect_sgbd()
  on.exit(dbDisconnect(conn), add = TRUE)

  dbExecute(conn, "BEGIN IMMEDIATE TRANSACTION")
  dbWriteTable(conn, "tb_teste_iris", tb_teste_iris, append = TRUE)
  dbExecute(conn, "COMMIT TRANSACTION")
}

future::plan("multisession", workers = 8)

options(future.rng.onMisuse = "ignore")

furrr::future_walk(n_teste, teste_write_sqlite, .progress = TRUE)
georgevbsantiago commented 3 years ago

Questions :

With dbExecute (connection," PRAGMA busy_timeout = 5000 ") I would define the timeout, but where can I define the number of attempts to be tested?

As I don't know how SQLite works internally, I was left with these doubts.

And thanks for the suggestion in the script.

gaborcsardi commented 3 years ago

With dbExecute (connection," PRAGMA busy_timeout = 5000 ") I would define the timeout, but where can I define the number of attempts to be tested?

purrr::insistently() is not a timeout, purrr simply tries to run the code again 5s later, and then again 5s later, etc. the specified number of times.

busy_timeout retries many-many times in that 5s. These are the current values: https://github.com/mackyle/sqlite/blob/76389e16f344efe5590b5d7212a6b4f3f88647cd/src/main.c#L1654

  static const u8 delays[] =
     { 1, 2, 5, 10, 15, 20, 25, 25,  25,  50,  50, 100 };

These are in milliseconds AFAICT. So first there is a 1ms delay, then a 2ms, etc. and the largest delay is 100ms.

While this mechanism is not ideal, because it is not fair, it is not too bad in practice.

georgevbsantiago commented 3 years ago

Got it.

Thank you very much for the clarifications.

It would be interesting to document how the user should write the script to parallel recordings with RSQLite. With the evolution of the furrr package (which allows you to parallelize the code with a syntax similar topurrr), this should be a frequent question.

gaborcsardi commented 3 years ago

It essentially boils down to this: https://github.com/r-dbi/RSQLite/issues/280#issuecomment-792652737

I suggest that you set a value that is the highest that you would tolerate. E.g. for many or long concurrent writes, it is fine to set it to several minutes. The goal is to only timeout when there is a deadlock.

r-ash commented 3 years ago

Hi all, can you please try #345 to see if that solves your issues?

Thanks, this is working for us https://github.com/vimc/orderly/pull/276/files#diff-99ac83df4a293192f53588f0a246eac8519cf5acac1b74869043ac8af55ffe15R205

gaborcsardi commented 3 years ago

FYI, I wrote this up at https://blog.r-hub.io/2021/03/13/rsqlite-parallel/

rickhelmus commented 3 years ago

Hi all,

I have been eyeing this issue for some time and am happy to say that the blog post of @gaborcsardi helped me fix parallelization issues! One thing that wasn't entirely clear to me is that the busy timeouts also need to be set when reading data.

Thanks, Rick

github-actions[bot] commented 2 years ago

This old thread has been automatically locked. If you think you have found something related to this, please open a new issue and link to this old issue if necessary.