inst/doc/complex-types.R

## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  eval = RPresto::presto_has_default()
)

## ----setup--------------------------------------------------------------------
library(RPresto)

## ----version------------------------------------------------------------------
packageVersion("RPresto")

## ----PrestoConnection---------------------------------------------------------
con <- DBI::dbConnect(
  drv = RPresto::Presto(),
  host = "http://localhost",
  port = 8080,
  user = Sys.getenv("USER"),
  catalog = "memory",
  schema = "default"
)

## ----test---------------------------------------------------------------------
DBI::dbGetQuery(con, "SELECT 1+1 AS res")

## ----primitive-arrays-table---------------------------------------------------
RPresto:::create_primitive_arrays_table(
  con, table_name = "presto_primitive_arrays", verbose = FALSE
)

## ----check-primitive_arrays-table---------------------------------------------
DBI::dbExistsTable(con, "presto_primitive_arrays")

## ----primitive-arrays-table-fields--------------------------------------------
DBI::dbListFields(con, "presto_primitive_arrays")

## ----array-of-primitive-types-------------------------------------------------
(
  df.array_of_primitive_types <- dbGetQuery(
    con,
    "SELECT * FROM presto_primitive_arrays",
    bigint = "integer64"
  )
)

## ----array-of-primitive-type-check--------------------------------------------
tibble::enframe(purrr::map_chr(df.array_of_primitive_types, ~class(.[[1]])[1]))

## ----array-of-primitive-name-check--------------------------------------------
purrr::every(df.array_of_primitive_types, ~is.null(names(.[[1]])))

## ----array-cardinality--------------------------------------------------------
tibble::enframe(purrr::map_int(df.array_of_primitive_types, ~length(.[[1]])))

## ----primitive-maps-table-----------------------------------------------------
RPresto:::create_primitive_maps_table(
  con, table_name = "presto_primitive_maps", verbose = FALSE
)

## ----check-primitive_maps-table-----------------------------------------------
DBI::dbExistsTable(con, "presto_primitive_maps")

## ----primitive-maps-table-fields----------------------------------------------
DBI::dbListFields(con, "presto_primitive_maps")

## ----map-of-primitive-types---------------------------------------------------
(
  df.map_of_primitive_types <- dbGetQuery(
    con,
    "SELECT * FROM presto_primitive_maps",
    bigint = "integer64"
  )
)

## ----map-of-primitive-type-check----------------------------------------------
tibble::enframe(purrr::map_chr(df.map_of_primitive_types, ~class(.[[1]])[1]))

## ----map-of-primitive-name-check----------------------------------------------
purrr::none(df.map_of_primitive_types, ~is.null(names(.[[1]])))

## ----array-of-maps-table------------------------------------------------------
RPresto:::create_array_of_maps_table(
  con, table_name = "presto_array_of_maps", verbose = FALSE
)

## ----check-array-of-maps-table------------------------------------------------
DBI::dbExistsTable(con, "presto_array_of_maps")

## ----array-of-maps-table-fields-----------------------------------------------
DBI::dbListFields(con, "presto_array_of_maps")

## ----array-of-maps------------------------------------------------------------
(
  df.array_of_maps <- dbGetQuery(
    con,
    "SELECT * FROM presto_array_of_maps",
    bigint = "integer64"
  )
)

## ----array-of-map-check-------------------------------------------------------
tibble::enframe(purrr::map_chr(df.array_of_maps, ~class(.[[1]][[1]])[1]))

## ----primitive-rows-table-----------------------------------------------------
RPresto:::create_primitive_rows_table(
  con, table_name = "presto_primitive_rows", verbose = FALSE
)

## ----check-primitive_rows-table-----------------------------------------------
DBI::dbExistsTable(con, "presto_primitive_rows")

## ----primitive-rows-table-fields----------------------------------------------
DBI::dbListFields(con, "presto_primitive_rows")

## ----row-of-primitive---------------------------------------------------------
(
  df.row_of_primitive <- dbGetQuery(
    con,
    "SELECT row_primitive_types FROM presto_primitive_rows",
    bigint = "integer64"
  )
)

## ----row-of-primitive-check---------------------------------------------------
tibble::enframe(
  purrr::map_chr(df.row_of_primitive$row_primitive_types[[1]], ~class(.)[1])
)

## ----arrays-of-rows-table-----------------------------------------------------
RPresto:::create_array_of_rows_table(
  con, table_name = "presto_array_of_rows", verbose = FALSE
)

## ----check-array-of-rows-table------------------------------------------------
DBI::dbExistsTable(con, "presto_array_of_rows")

## ----array-of-rows-table-fields-----------------------------------------------
DBI::dbListFields(con, "presto_array_of_rows")

## ----array-of-rows------------------------------------------------------------
(
  df.array_of_rows <- dbGetQuery(
    con,
    "SELECT array_of_rows FROM presto_array_of_rows",
    bigint = "integer64"
  )
)

## ----array-of-row-check-------------------------------------------------------
tibble::enframe(
  purrr::map_chr(df.array_of_rows$array_of_rows[[1]], ~class(.)[1])
)

## ----close-db-----------------------------------------------------------------
DBI::dbDisconnect(con)

Try the RPresto package in your browser

Any scripts or data that you put into this service are public.

RPresto documentation built on Nov. 2, 2023, 5:58 p.m.