R/idlist.R

Defines functions get_operator.idlist get_table.idlist get_schema.idlist get_having.idlist get_where.idlist get_id_type.idlist get_id_field.idlist as_sql.idlist idlist

#' @export
idlist <- function(ids, id_type = "entity_id", quoted = F) {
    if (quoted) useids <- paste0("'", ids, "'")
    else useids <- ids

    as_sql <- paste0(
        "select ", useids, " as ", id_type, " from dual",
        collapse = "\nunion\n"
    )
    as_sql <- paste0("(", as_sql, ")")

    f <- function(query)
        switch(
            query,
            id_type = id_type,
            id_field = id_type,
            as_sql = as_sql,
            table = "manual",
            having = NULL,
            where = list(as.call(list(quote(`%in%`), as.name(id_type), ids))),
            schema = NULL,
            ids = ids
        )
    structure(f, class = c("idlist", "listbuilder"))
}

as_sql.idlist <- function(ids) ids("as_sql")

#' @export
get_id_field.idlist <- function(ids) ids("id_field")

#' @export
get_id_type.idlist <- function(ids) ids("id_type")

#' @export
get_where.idlist <- function(ids) ids("where")

#' @export
get_having.idlist <- function(ids) ids("having")

#' @export
get_schema.idlist <- function(ids) ids("schema")

#' @export
get_table.idlist <- function(ids) ids("table")

#' @export
get_operator.idlist <- function(ids) NULL
tarakc02/listbuilder documentation built on Jan. 27, 2024, 7:48 p.m.