forked from tidyverse/dplyr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sql.Rd
60 lines (50 loc) · 1.54 KB
/
sql.Rd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/sql-escape.r
\name{sql}
\alias{escape}
\alias{ident}
\alias{is.ident}
\alias{is.sql}
\alias{sql}
\title{SQL escaping.}
\usage{
sql(...)
ident(...)
is.sql(x)
is.ident(x)
escape(x, parens = NA, collapse = " ", con = NULL)
}
\arguments{
\item{...}{Character vectors that will be combined into a single SQL
expression. \code{ident} flags its input as a identifier, to ensure that
it gets the correct quoting.}
\item{x}{An object to escape. Existing sql vectors will be left as is,
character vectors are escaped with single quotes, numeric vectors have
trailing \code{.0} added if they're whole numbers, identifiers are
escaped with double quotes.}
\item{parens, collapse}{Controls behaviour when multiple values are supplied.
\code{parens} should be a logical flag, or if \code{NA}, will wrap in
parens if length > 1.
Default behaviour: lists are always wrapped in parens and separated by
commas, identifiers are separated by commas and never wrapped,
atomic vectors are separated by spaces and wrapped in parens if needed.}
}
\description{
These functions are critical when writing functions that translate R
functions to sql functions. Typically a conversion function should escape
all it's inputs and return an sql object.
}
\examples{
# Doubles vs. integers
escape(1:5)
escape(c(1, 5.4))
# String vs known sql vs. sql identifier
escape("X")
escape(sql("X"))
escape(ident("X"))
# Escaping is idempotent
escape("X")
escape(escape("X"))
escape(escape(escape("X")))
}
\keyword{internal}