krlmlr opened a new issue, #734:
URL: https://github.com/apache/arrow-adbc/issues/734

   I see how parameter binding helps with SQL ingestion. However, I couldn't 
make it work (with the SQLite driver) for querying. Is this a SQLite problem, 
or a more general problem?
   
   ``` r
   library(adbcdrivermanager)
   
   # Use the driver manager to connect to a database
   db <- adbc_database_init(adbcsqlite::adbcsqlite(), uri = ":memory:")
   con <- adbc_connection_init(db)
   
   # Write a table
   flights <- nycflights13::flights
   # (timestamp not supported yet)
   flights$time_hour <- NULL
   
   stmt <- adbc_statement_init(con, adbc.ingest.target_table = "flights")
   adbc_statement_bind(stmt, flights)
   adbc_statement_execute_query(stmt)
   #> [1] 336776
   adbc_statement_release(stmt)
   
   # March flights
   stmt <- adbc_statement_init(con)
   adbc_statement_set_sql_query(stmt, "SELECT * from flights WHERE month = 3")
   stream <- nanoarrow::nanoarrow_allocate_array_stream()
   adbc_statement_execute_query(stmt, stream)
   #> [1] -1
   result <- tibble::as_tibble(stream)
   adbc_statement_release(stmt)
   
   result
   #> # A tibble: 28,834 × 18
   #>     year month   day dep_time sched_dep_time dep_delay arr_time 
sched_arr_time
   #>    <dbl> <dbl> <dbl>    <dbl>          <dbl>     <dbl>    <dbl>          
<dbl>
   #>  1  2013     3     1        4           2159       125      318           
  56
   #>  2  2013     3     1       50           2358        52      526           
 438
   #>  3  2013     3     1      117           2245       152      223           
2354
   #>  4  2013     3     1      454            500        -6      633           
 648
   #>  5  2013     3     1      505            515       -10      746           
 810
   #>  6  2013     3     1      521            530        -9      813           
 827
   #>  7  2013     3     1      537            540        -3      856           
 850
   #>  8  2013     3     1      541            545        -4     1014           
1023
   #>  9  2013     3     1      549            600       -11      639           
 703
   #> 10  2013     3     1      550            600       -10      747           
 801
   #> # ℹ 28,824 more rows
   #> # ℹ 10 more variables: arr_delay <dbl>, carrier <chr>, flight <dbl>,
   #> #   tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance 
<dbl>,
   #> #   hour <dbl>, minute <dbl>
   
   
   # March flights with a parameter
   stmt <- adbc_statement_init(con)
   adbc_statement_set_sql_query(stmt, "SELECT * from flights WHERE month = ?")
   adbc_statement_bind_stream(stmt, data.frame(a = 3))
   stream <- nanoarrow::nanoarrow_allocate_array_stream()
   adbc_statement_execute_query(stmt, stream)
   #> [1] -1
   result <- tibble::as_tibble(stream)
   adbc_statement_release(stmt)
   
   result
   #> # A tibble: 1 × 18
   #>    year month   day dep_time sched_dep_time dep_delay arr_time 
sched_arr_time
   #>   <dbl> <dbl> <dbl>    <dbl>          <dbl>     <dbl>    <dbl>          
<dbl>
   #> 1  2013     3     1        4           2159       125      318            
 56
   #> # ℹ 10 more variables: arr_delay <dbl>, carrier <chr>, flight <dbl>,
   #> #   tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance 
<dbl>,
   #> #   hour <dbl>, minute <dbl>
   
   # March flights with multiple parameters
   stmt <- adbc_statement_init(con)
   adbc_statement_set_sql_query(stmt, "SELECT * from flights WHERE month = ?")
   adbc_statement_bind_stream(stmt, data.frame(a = 2:4))
   stream <- nanoarrow::nanoarrow_allocate_array_stream()
   adbc_statement_execute_query(stmt, stream)
   #> [1] -1
   result <- tibble::as_tibble(stream)
   adbc_statement_release(stmt)
   
   result
   #> # A tibble: 3 × 18
   #>    year month   day dep_time sched_dep_time dep_delay arr_time 
sched_arr_time
   #>   <dbl> <dbl> <dbl>    <dbl>          <dbl>     <dbl>    <dbl>          
<dbl>
   #> 1  2013     2     1      456            500        -4      652            
648
   #> 2  2013     3     1        4           2159       125      318            
 56
   #> 3  2013     4     1      454            500        -6      636            
640
   #> # ℹ 10 more variables: arr_delay <dbl>, carrier <chr>, flight <dbl>,
   #> #   tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance 
<dbl>,
   #> #   hour <dbl>, minute <dbl>
   
   # Clean up
   adbc_connection_release(con)
   adbc_database_release(db)
   ```
   
   <sup>Created on 2023-06-07 with [reprex 
v2.0.2](https://reprex.tidyverse.org)</sup>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to