¿Por qué mi conector DBI está haciendo una consulta simulada con predicado "¿Dónde 0 = 1"? -- r campo con dbi campo con monetdb campo con dbplyr camp Relacionados El problema

Why is my DBI connector doing a dummy query with predicate “where 0 = 1”?


0
vote

problema

Español

Tengo un código de prueba R que utilizo para conectarme a una instancia de MoneTDB.

Acoviso que para cada conexión que creo a través de tbl(conn, "some_table") Siempre termino con una consulta de 'Primer' de la forma

  SELECT * FROM "some_table" AS "zzz1" WHERE (0 = 1)   

Entonces, si ejecuto el código

  conn <- dbConnect(MonetDB.R(), host="localhost", dbname="testdb", user="monetdb", password="monetdb") foo <- tbl(conn, "foo") foo %>% filter(bar %like%  '%baz%') %>% collect()   

termino con dos consultas en la salida

  QQ: 'SELECT * FROM "foo" AS "zzz1" WHERE (0 = 1)' QQ: Query result for query 0 with 0 rows and 34 cols, 0 rows. QQ: 'SELECT * FROM "foo") WHERE ("bar" LIKE '%baz%')' QQ: Query result for query 1 with 20 rows and 2 cols, 20 rows.   

No entiendo de dónde proviene esta consulta adicional. Por lo que sé, DBI no debe realizar ninguna consulta simulada de forma predeterminada.

Original en ingles

I have some R test code that I use to connect to a MonetDB instance.

I notice that for each connection that I create through tbl(conn, "some_table") I somehow always end up with a 'primer' query of the form

SELECT * FROM "some_table" AS "zzz1" WHERE (0 = 1) 

So if I run the code

conn <- dbConnect(MonetDB.R(), host="localhost", dbname="testdb", user="monetdb", password="monetdb") foo <- tbl(conn, "foo") foo %>% filter(bar %like%  '%baz%') %>% collect() 

I end up with two queries in the output

QQ: 'SELECT * FROM "foo" AS "zzz1" WHERE (0 = 1)' QQ: Query result for query 0 with 0 rows and 34 cols, 0 rows. QQ: 'SELECT * FROM "foo") WHERE ("bar" LIKE '%baz%')' QQ: Query result for query 1 with 20 rows and 2 cols, 20 rows. 

I do not understand where this additional query comes from. As far as I know DBI should not perform any dummy query by default.

           

Lista de respuestas

2
 
vote
vote
La mejor respuesta
 

dplyr Genera automáticamente y ejecuta esta consulta para obtener las columnas para la tabla. Esto se necesita para averiguar si bar en filter66666666666666.

 

dplyr auto-generates and runs this query to get the columns for the table. This is needed to figure out whether bar in filter exists in the table for example.

 
 
         
         

Relacionados problema

2  ¿Cómo puedo obtener el número de unidades en un grupo de edad durante un período de tiempo?  ( How can i get the number of units in an age group over a time period ) 
Estoy tratando de encontrar una manera eficiente de obtener la población total a través de la edad durante un período de tiempo. Tengo cumpleaños, una fecha d...

3  Cómo hacer un DPLYR INNER_JOIN COL1> COL2  ( How to do a dplyr inner join col1 col2 ) 
Estoy teniendo dificultades para que se unen a Dplyr. Aquí hay dos ejemplos de lo que estoy experimentando. En primer lugar: libpostal7 Error: libpo...

3  Cómo usar el extracto a través de Dbplyr cuando se conecta a un DB de Oracle  ( How to use extract through dbplyr when connecting to an oracle db ) 
Tome esta consulta: SELECT EXTRACT(month FROM order_date) "Month" FROM orders (Ejemplo simplificado de OFICIAL ORACE DOC ) ¿Cómo iría a integrar ...

1  Conecte a la base de datos Microsoft SQL con DplyR 0.7 y R  ( Connect to microsoft sql database with dplyr 0 7 and r ) 
Estoy tratando de usar dplyr / dbplyr ( version 0.7 ) con una base de datos ( Microsoft SQL Server 2014 ). He podido conectarme a esto y extraer datos uti...

10  Cree la consulta SQL "Seleccione * desde MyTable Límite 10" usando dplyr  ( Create the sql query select from mytable limit 10 using dplyr ) 
Supongamos que tengo una conexión a una base de datos externa llamada con . Me gustaría usar dplyr para reproducir esta consulta preventDefault()0 ...

2  Nacresta columna JSON con `dbplyr` y` rpostgres`  ( Unnest json column with dbplyr and rpostgres ) 
Tengo una columna que contiene json cadenas en una tabla en un PostgreSQL DB. Quiero invertirlo en el lado del servidor, y pude descubrir el código SQL ...

3  DPLYR se une: ¿Cómo hace un ÚNICO NO ESTÁNDAR "COL1`! =` COL2` cuando trabaja con una base de datos?  ( Dplyr joins how do you do a non standard join col1 col2 when working with ) 
¿Cómo se une a las uxiones no estándar ('col1' != 'col2') en DPLYR cuando está trabajando con una base de datos? Ejemplo: Configuración de la base de da...

3  Cómo hacer un piso_date () en dbplyr  ( How to do a floor date in dbplyr ) 
Estoy tratando de agregar datos de la serie de tiempo de nivel de minuto a nivel por hora a través de un promedio. Con el fin de hacer que yo quiero para ca...

1  ¿Es R DBILLYR "SMART" lo suficiente para determinar el tipo de base de datos SQL y aplicar la sintaxis adecuada?  ( Is r dbplyr smart enough to determine the sql database type and apply appropri ) 
library(tidyverse) con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:") copy_to(con, mtcars) mtcars2 <- tbl(con, "mtcars") Como estoy empezando a aprende...

1  Recoger () de la tabla en SQLite en R  ( Collect from table in sqlite in r ) 
Estoy tratando de utilizar el (N,1)9 de (N,1)0 para consultar una tabla ( (N,1)1 ) en SQLite. El siguiente código funciona: (N,1)2 Sin embargo, cuan...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos