This is an automated email from the ASF dual-hosted git repository.
victoria pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new 83cf4dc554c [docs] fixes to sql-scalar.md (#16826)
83cf4dc554c is described below
commit 83cf4dc554cc1ee9a5cdcb8caa406cb7d3c001db
Author: Edgar Melendrez <[email protected]>
AuthorDate: Tue Aug 6 17:12:57 2024 -0700
[docs] fixes to sql-scalar.md (#16826)
Co-authored-by: Victoria Lim <[email protected]>
Co-authored-by: Katya Macedo <[email protected]>
Co-authored-by: Benedict Jin <[email protected]>
Co-authored-by: Katya Macedo <[email protected]>
---
docs/querying/sql-scalar.md | 70 ++++++++++++++++++++++-----------------------
1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/docs/querying/sql-scalar.md b/docs/querying/sql-scalar.md
index 1ac0e7ce6ff..fdc4a7424d1 100644
--- a/docs/querying/sql-scalar.md
+++ b/docs/querying/sql-scalar.md
@@ -56,9 +56,9 @@ to FLOAT. At runtime, Druid will widen 32-bit floats to
64-bit for most expressi
|`LOG10(expr)`|Logarithm (base 10).|
|`POWER(expr, power)`|`expr` raised to the power of `power`.|
|`SQRT(expr)`|Square root.|
-|`TRUNCATE(expr, [digits])`|Truncate `expr` to a specific number of decimal
digits. If digits is negative, then this truncates that many places to the left
of the decimal point. Digits defaults to zero if not specified.|
-|`TRUNC(expr, [digits])`|Alias for `TRUNCATE`.|
-|`ROUND(expr, [digits])`|`ROUND(x, y)` would return the value of the x rounded
to the y decimal places. While x can be an integer or floating-point number, y
must be an integer. The type of the return value is specified by that of x. y
defaults to 0 if omitted. When y is negative, x is rounded on the left side of
the y decimal points. If `expr` evaluates to either `NaN`, `expr` will be
converted to 0. If `expr` is infinity, `expr` will be converted to the nearest
finite double. |
+|`TRUNCATE(expr[, digits])`|Truncates `expr` to a specific number of decimal
digits. If `digits` is negative, then this truncates that many places to the
left of the decimal point. If not specified, `digits` defaults to zero.|
+|`TRUNC(expr[, digits])`|Alias for `TRUNCATE`.|
+|`ROUND(expr[, digits])`|Rounds `expr` to a specific number of decimal digits.
If `digits` is negative, then it rounds that many places to the left of the
decimal point. If not specified, `digits` defaults to zero.|
|`MOD(x, y)`|Modulo (remainder of x divided by y).|
|`SIN(expr)`|Trigonometric sine of an angle `expr`.|
|`COS(expr)`|Trigonometric cosine of an angle `expr`.|
@@ -79,50 +79,50 @@ to FLOAT. At runtime, Druid will widen 32-bit floats to
64-bit for most expressi
|`BITWISE_SHIFT_RIGHT(expr1, expr2)`|Returns the result of `expr1 >> expr2`.
Double values will be implicitly cast to longs, use
`BITWISE_CONVERT_DOUBLE_TO_LONG_BITS` to perform bitwise operations directly
with doubles.|
|`BITWISE_XOR(expr1, expr2)`|Returns the result of `expr1 ^ expr2`. Double
values will be implicitly cast to longs, use
`BITWISE_CONVERT_DOUBLE_TO_LONG_BITS` to perform bitwise operations directly
with doubles.|
|`DIV(x, y)`|Returns the result of integer division of x by y |
-|`HUMAN_READABLE_BINARY_BYTE_FORMAT(value, [precision])`| Format a number in
human-readable [IEC](https://en.wikipedia.org/wiki/Binary_prefix) format. For
example, HUMAN_READABLE_BINARY_BYTE_FORMAT(1048576) returns `1.00 MiB`.
`precision` must be in the range of `[0, 3]` (default: 2). |
-|`HUMAN_READABLE_DECIMAL_BYTE_FORMAT(value, [precision])`| Format a number in
human-readable [SI](https://en.wikipedia.org/wiki/Binary_prefix) format.
HUMAN_READABLE_DECIMAL_BYTE_FORMAT(1048576) returns `1.04 MB`. `precision` must
be in the range of `[0, 3]` (default: 2). `precision` must be in the range of
`[0, 3]` (default: 2). |
-|`HUMAN_READABLE_DECIMAL_FORMAT(value, [precision])`| Format a number in
human-readable SI format. For example, HUMAN_READABLE_DECIMAL_FORMAT(1048576)
returns `1.04 M`. `precision` must be in the range of `[0, 3]` (default: 2). |
+|`HUMAN_READABLE_BINARY_BYTE_FORMAT(value[, precision])`| Formats a number in
human-readable [IEC](https://en.wikipedia.org/wiki/Binary_prefix) format. For
example, `HUMAN_READABLE_BINARY_BYTE_FORMAT(1048576)` returns `1.00 MiB`.
`precision` must be in the range of `[0, 3]`. If not specified, `precision`
defaults to 2. |
+|`HUMAN_READABLE_DECIMAL_BYTE_FORMAT(value[, precision])`| Formats a number in
human-readable [SI](https://en.wikipedia.org/wiki/Binary_prefix) format. For
example, `HUMAN_READABLE_DECIMAL_BYTE_FORMAT(1048576)` returns `1.04 MB`.
`precision` must be in the range of `[0, 3]`. If not specified, `precision`
defaults to 2. |
+|`HUMAN_READABLE_DECIMAL_FORMAT(value[, precision])`| Formats a number in
human-readable [SI](https://en.wikipedia.org/wiki/Binary_prefix) format. For
example, `HUMAN_READABLE_DECIMAL_FORMAT(1048576)` returns `1.04 M`. `precision`
must be in the range of `[0, 3]`. If not specified, `precision` defaults to 2. |
|`SAFE_DIVIDE(x, y)`|Returns the division of x by y guarded on division by 0.
In case y is 0 it returns 0, or `null` if
`druid.generic.useDefaultValueForNull=false` |
## String functions
-String functions accept strings, and return a type appropriate to the function.
+String functions accept strings and return a type appropriate to the function.
|Function|Notes|
|--------|-----|
-|`CONCAT(expr, expr...)`|Concats a list of expressions. Also see the
[concatenation operator](sql-operators.md#concatenation-operator).|
-|`TEXTCAT(expr, expr)`|Two argument version of `CONCAT`.|
+|`CONCAT(expr[, expr, ...])`|Concatenates a list of expressions. Also see the
[concatenation operator](sql-operators.md#concatenation-operator).|
+|`TEXTCAT(expr, expr)`|Concatenates two expressions.|
|`CONTAINS_STRING(expr, str)`|Returns true if the `str` is a substring of
`expr`.|
|`ICONTAINS_STRING(expr, str)`|Returns true if the `str` is a substring of
`expr`. The match is case-insensitive.|
|`DECODE_BASE64_UTF8(expr)`|Decodes a Base64-encoded string into a UTF-8
encoded string.|
-|`LEFT(expr, [length])`|Returns the leftmost length characters from `expr`.|
-|`RIGHT(expr, [length])`|Returns the rightmost length characters from `expr`.|
+|`LEFT(expr, N)`|Returns the `N` leftmost characters from `expr`, where `N` is
an integer. |
+|`RIGHT(expr, N)`|Returns the `N` rightmost characters from `expr`, where `N`
is an integer. |
|`LENGTH(expr)`|Length of `expr` in UTF-16 code units.|
|`CHAR_LENGTH(expr)`|Alias for `LENGTH`.|
|`CHARACTER_LENGTH(expr)`|Alias for `LENGTH`.|
|`STRLEN(expr)`|Alias for `LENGTH`.|
-|`LOOKUP(expr, lookupName, [replaceMissingValueWith])`|Look up `expr` in a
registered [query-time lookup table](lookups.md) named `lookupName`. The
optional constant `replaceMissingValueWith`, if provided, is returned when the
`expr` is null or when the lookup does not contain a value for `expr`.<br /><br
/>Lookups can also be queried directly using the [`lookup`
schema](sql.md#from).|
+|`LOOKUP(expr, lookupName[, replaceMissingValueWith])`|Looks up `expr` in an
existing [query-time lookup table](lookups.md) that has the name `lookupName`.
Returns the optional constant `replaceMissingValueWith` when `expr` is null or
when the lookup does not contain a value for `expr`.<br /><br />You can query
lookups directly using the [`lookup` schema](sql.md#from).|
|`LOWER(expr)`|Returns `expr` in all lowercase.|
|`UPPER(expr)`|Returns `expr` in all uppercase.|
-|`LPAD(expr, length, [chars])`|Returns a string of `length` from `expr`
left-padded with `chars`. If `length` is shorter than the length of `expr`, the
result is `expr` which is truncated to `length`. The result will be null if
either `expr` or `chars` is null. If `chars` is an empty string, no padding is
added, however `expr` may be trimmed if necessary.|
-|`RPAD(expr, length, [chars])`|Returns a string of `length` from `expr`
right-padded with `chars`. If `length` is shorter than the length of `expr`,
the result is `expr` which is truncated to `length`. The result will be null if
either `expr` or `chars` is null. If `chars` is an empty string, no padding is
added, however `expr` may be trimmed if necessary.|
-|`PARSE_LONG(string, [radix])`|Parses a string into a long (BIGINT) with the
given radix, or 10 (decimal) if a radix is not provided.|
-|`POSITION(needle IN haystack [FROM fromIndex])`|Returns the index of `needle`
within `haystack`, with indexes starting from 1. The search will begin at
`fromIndex`, or 1 if `fromIndex` is not specified. If `needle` is not found,
returns 0.|
-|`REGEXP_EXTRACT(expr, pattern, [index])`|Apply regular expression `pattern`
to `expr` and extract a capture group, or `NULL` if there is no match. If index
is unspecified or zero, returns the first substring that matched the pattern.
The pattern may match anywhere inside `expr`; if you want to match the entire
string instead, use the `^` and `$` markers at the start and end of your
pattern. Note: when `druid.generic.useDefaultValueForNull = true`, it is not
possible to differentiate an [...]
+|`LPAD(expr, length[, chars])`|Returns a string of `length` from `expr`
left-padded with `chars`. If `length` is shorter than the length of `expr`, the
result is `expr` which is truncated to `length`. The result is null if either
`expr` or `chars` is null. If `chars` is an empty string, no padding is added;
however, `expr` may be trimmed if necessary.|
+|`RPAD(expr, length[, chars])`|Returns a string of `length` from `expr`
right-padded with `chars`. If `length` is shorter than the length of `expr`,
the result is `expr` which is truncated to `length`. The result is null if
either `expr` or `chars` is null. If `chars` is an empty string, no padding is
added; however, `expr` may be trimmed if necessary.|
+|`PARSE_LONG(string[, radix])`|Parses a string into a long (BIGINT) with the
given radix or 10 (decimal) if a radix is not provided.|
+|`POSITION(substring IN expr [FROM startingIndex])`|Returns the index of
`substring` within `expr` with indexes starting from 1. The search begins at
`startingIndex`. If `startingIndex` is not specified, the default is 1. If
`substring` is not found, returns 0.|
+|`REGEXP_EXTRACT(expr, pattern[, index])`|Apply regular expression `pattern`
to `expr` and extract a capture group or `NULL` if there is no match. If
`index` is unspecified or zero, returns the first substring that matched the
pattern. The pattern may match anywhere inside `expr`. To match the entire
string, use the `^` and `$` markers at the start and end of your pattern. When
`druid.generic.useDefaultValueForNull = true`, it is not possible to
differentiate an empty-string match from a [...]
|`REGEXP_LIKE(expr, pattern)`|Returns whether `expr` matches regular
expression `pattern`. The pattern may match anywhere inside `expr`; if you want
to match the entire string instead, use the `^` and `$` markers at the start
and end of your pattern. Similar to
[`LIKE`](sql-operators.md#logical-operators), but uses regexps instead of LIKE
patterns. Especially useful in WHERE clauses.|
|`REGEXP_REPLACE(expr, pattern, replacement)`|Replaces all occurrences of
regular expression `pattern` within `expr` with `replacement`. The replacement
string may refer to capture groups using `$1`, `$2`, etc. The pattern may match
anywhere inside `expr`; if you want to match the entire string instead, use the
`^` and `$` markers at the start and end of your pattern.|
|`REPLACE(expr, pattern, replacement)`|Replaces pattern with replacement in
`expr`, and returns the result.|
-|`REPEAT(expr, [N])`|Repeats `expr` N times.|
+|`REPEAT(expr, N)`|Repeats `expr` `N` times.|
|`REVERSE(expr)`|Reverses `expr`.|
-|`STRING_FORMAT(pattern, [args...])`|Returns a string formatted in the manner
of Java's
[String.format](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.lang.String-java.lang.Object...-).|
+|`STRING_FORMAT(pattern[, args...])`|Returns a string formatted in the manner
of Java's
[String.format](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.lang.String-java.lang.Object...-).|
|`STRPOS(haystack, needle)`|Returns the index of `needle` within `haystack`,
with indexes starting from 1. If `needle` is not found, returns 0.|
-|`SUBSTRING(expr, index, [length])`|Returns a substring of `expr` starting at
index, with a max length, both measured in UTF-16 code units.|
-|`SUBSTR(expr, index, [length])`|Alias for `SUBSTRING`.|
+|`SUBSTRING(expr, index[, length])`|Returns a substring of `expr` starting at
`index`, with a max `length`, both measured in UTF-16 code units.|
+|`SUBSTR(expr, index[, length])`|Alias for `SUBSTRING`.|
|`TRIM([BOTH `<code>|</code>` LEADING `<code>|</code>` TRAILING]
[chars FROM] expr)`|Returns `expr` with characters removed from the leading,
trailing, or both ends of `expr` if they are in `chars`. If `chars` is not
provided, it defaults to `''` (a space). If the directional argument is not
provided, it defaults to `BOTH`.|
-|`BTRIM(expr, [chars])`|Alternate form of `TRIM(BOTH chars FROM expr)`.|
-|`LTRIM(expr, [chars])`|Alternate form of `TRIM(LEADING chars FROM expr)`.|
-|`RTRIM(expr, [chars])`|Alternate form of `TRIM(TRAILING chars FROM expr)`.|
+|`BTRIM(expr[, chars])`|Alternate form of `TRIM(BOTH chars FROM expr)`.|
+|`LTRIM(expr[, chars])`|Alternate form of `TRIM(LEADING chars FROM expr)`.|
+|`RTRIM(expr[, chars])`|Alternate form of `TRIM(TRAILING chars FROM expr)`.|
## Date and time functions
@@ -163,12 +163,12 @@ overhead.
|`CURRENT_TIMESTAMP`|Current timestamp in the connection's time zone.|
|`CURRENT_DATE`|Current date in the connection's time zone.|
|`DATE_TRUNC(unit, timestamp_expr)`|Rounds down a timestamp, returning it as a
new timestamp. Unit can be 'milliseconds', 'second', 'minute', 'hour', 'day',
'week', 'month', 'quarter', 'year', 'decade', 'century', or 'millennium'.|
-|`TIME_CEIL(timestamp_expr, period, [origin, [timezone]])`|Rounds up a
timestamp, returning it as a new timestamp. Period can be any ISO8601 period,
like P3M (quarters) or PT12H (half-days). Specify `origin` as a timestamp to
set the reference time for rounding. For example, `TIME_CEIL(__time, 'PT1H',
TIMESTAMP '2016-06-27 00:30:00')` measures an hourly period from 00:30-01:30
instead of 00:00-01:00. See [Period granularities](granularities.md) for
details on the default starting boundar [...]
-|`TIME_FLOOR(timestamp_expr, period, [origin, [timezone]])`|Rounds down a
timestamp, returning it as a new timestamp. Period can be any ISO8601 period,
like P3M (quarters) or PT12H (half-days). Specify `origin` as a timestamp to
set the reference time for rounding. For example, `TIME_FLOOR(__time, 'PT1H',
TIMESTAMP '2016-06-27 00:30:00')` measures an hourly period from 00:30-01:30
instead of 00:00-01:00. See [Period granularities](granularities.md) for
details on the default starting bou [...]
-|`TIME_SHIFT(timestamp_expr, period, step, [timezone])`|Shifts a timestamp by
a period (step times), returning it as a new timestamp. Period can be any
ISO8601 period. Step may be negative. The time zone, if provided, should be a
time zone name like "America/Los_Angeles" or offset like "-08:00".|
-|`TIME_EXTRACT(timestamp_expr, [unit, [timezone]])`|Extracts a time part from
`expr`, returning it as a number. Unit can be EPOCH, SECOND, MINUTE, HOUR, DAY
(day of month), DOW (day of week), DOY (day of year), WEEK (week of [week
year](https://en.wikipedia.org/wiki/ISO_week_date)), MONTH (1 through 12),
QUARTER (1 through 4), or YEAR. The time zone, if provided, should be a time
zone name like "America/Los_Angeles" or offset like "-08:00". This function is
similar to `EXTRACT` but is mo [...]
-|`TIME_PARSE(string_expr, [pattern, [timezone]])`|Parses a string into a
timestamp using a given [Joda DateTimeFormat
pattern](http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html),
or ISO8601 (e.g. `2000-01-02T03:04:05Z`) if the pattern is not provided. The
time zone, if provided, should be a time zone name like "America/Los_Angeles"
or offset like "-08:00", and will be used as the time zone for strings that do
not include a time zone offset. Pattern and time z [...]
-|`TIME_FORMAT(timestamp_expr, [pattern, [timezone]])`|Formats a timestamp as a
string with a given [Joda DateTimeFormat
pattern](http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html),
or ISO8601 (e.g. `2000-01-02T03:04:05Z`) if the pattern is not provided. The
time zone, if provided, should be a time zone name like "America/Los_Angeles"
or offset like "-08:00". Pattern and time zone must be literals.|
+|`TIME_CEIL(timestamp_expr, period[, origin[, timezone]])`|Rounds up a
timestamp, returning it as a new timestamp. Period can be any ISO8601 period,
like P3M (quarters) or PT12H (half-days). Specify `origin` as a timestamp to
set the reference time for rounding. For example, `TIME_CEIL(__time, 'PT1H',
TIMESTAMP '2016-06-27 00:30:00')` measures an hourly period from 00:30-01:30
instead of 00:00-01:00. See [Period granularities](granularities.md) for
details on the default starting boundar [...]
+|`TIME_FLOOR(timestamp_expr, period[, origin[, timezone]])`|Rounds down a
timestamp, returning it as a new timestamp. Period can be any ISO8601 period,
like P3M (quarters) or PT12H (half-days). Specify `origin` as a timestamp to
set the reference time for rounding. For example, `TIME_FLOOR(__time, 'PT1H',
TIMESTAMP '2016-06-27 00:30:00')` measures an hourly period from 00:30-01:30
instead of 00:00-01:00. See [Period granularities](granularities.md) for
details on the default starting bou [...]
+|`TIME_SHIFT(timestamp_expr, period, step[, timezone])`|Shifts a timestamp by
a period (step times), returning it as a new timestamp. Period can be any
ISO8601 period. Step may be negative. The time zone, if provided, should be a
time zone name like "America/Los_Angeles" or offset like "-08:00".|
+|`TIME_EXTRACT(timestamp_expr[, unit[, timezone]])`|Extracts a time part from
`expr`, returning it as a number. Unit can be EPOCH, SECOND, MINUTE, HOUR, DAY
(day of month), DOW (day of week), DOY (day of year), WEEK (week of [week
year](https://en.wikipedia.org/wiki/ISO_week_date)), MONTH (1 through 12),
QUARTER (1 through 4), or YEAR. The time zone, if provided, should be a time
zone name like "America/Los_Angeles" or offset like "-08:00". This function is
similar to `EXTRACT` but is mo [...]
+|`TIME_PARSE(string_expr[, pattern[, timezone]])`|Parses a string into a
timestamp using a given [Joda DateTimeFormat
pattern](http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html),
or ISO8601 (e.g. `2000-01-02T03:04:05Z`) if the pattern is not provided. The
time zone, if provided, should be a time zone name like "America/Los_Angeles"
or offset like "-08:00", and will be used as the time zone for strings that do
not include a time zone offset. Pattern and time z [...]
+|`TIME_FORMAT(timestamp_expr[, pattern[, timezone]])`|Formats a timestamp as a
string with a given [Joda DateTimeFormat
pattern](http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html),
or ISO8601 (e.g. `2000-01-02T03:04:05Z`) if the pattern is not provided. The
time zone, if provided, should be a time zone name like "America/Los_Angeles"
or offset like "-08:00". Pattern and time zone must be literals.|
|`TIME_IN_INTERVAL(timestamp_expr, interval)`|Returns whether a timestamp is
contained within a particular interval. The interval must be a literal string
containing any ISO8601 interval, such as `'2001-01-01/P1D'` or
`'2001-01-01T01:00:00/2001-01-02T01:00:00'`. The start instant of the interval
is inclusive and the end instant is exclusive.|
|`MILLIS_TO_TIMESTAMP(millis_expr)`|Converts a number of milliseconds since
the epoch (1970-01-01 00:00:00 UTC) into a timestamp.|
|`TIMESTAMP_TO_MILLIS(timestamp_expr)`|Converts a timestamp into a number of
milliseconds since the epoch.|
@@ -223,8 +223,8 @@ The [DataSketches
extension](../development/extensions-core/datasketches-extensi
|Function|Notes|
|--------|-----|
-|`HLL_SKETCH_ESTIMATE(expr, [round])`|Returns the distinct count estimate from
an HLL sketch. `expr` must return an HLL sketch. The optional `round` boolean
parameter will round the estimate if set to `true`, with a default of `false`.|
-|`HLL_SKETCH_ESTIMATE_WITH_ERROR_BOUNDS(expr, [numStdDev])`|Returns the
distinct count estimate and error bounds from an HLL sketch. `expr` must return
an HLL sketch. An optional `numStdDev` argument can be provided.|
+|`HLL_SKETCH_ESTIMATE(expr[, round])`|Returns the distinct count estimate from
an HLL sketch. `expr` must return an HLL sketch. The optional `round` boolean
parameter will round the estimate if set to `true`, with a default of `false`.|
+|`HLL_SKETCH_ESTIMATE_WITH_ERROR_BOUNDS(expr[, numStdDev])`|Returns the
distinct count estimate and error bounds from an HLL sketch. `expr` must return
an HLL sketch. An optional `numStdDev` argument can be provided.|
|`HLL_SKETCH_UNION([lgK, tgtHllType], expr0, expr1, ...)`|Returns a union of
HLL sketches, where each input expression must return an HLL sketch. The `lgK`
and `tgtHllType` can be optionally specified as the first parameter; if
provided, both optional parameters must be specified.|
|`HLL_SKETCH_TO_STRING(expr)`|Returns a human-readable string representation
of an HLL sketch for debugging. `expr` must return an HLL sketch.|
@@ -263,9 +263,9 @@ The [DataSketches
extension](../development/extensions-core/datasketches-extensi
|Function|Notes|Default|
|--------|-----|-------|
|`DS_TUPLE_DOUBLES_METRICS_SUM_ESTIMATE(expr)`|Computes approximate sums of
the values contained within a [Tuple
sketch](../development/extensions-core/datasketches-tuple.md#estimated-metrics-values-for-each-column-of-arrayofdoublessketch)
column which contains an array of double values as its Summary Object.
-|`DS_TUPLE_DOUBLES_INTERSECT(expr, ..., [nominalEntries])`|Returns an
intersection of tuple sketches, where each input expression must return a tuple
sketch which contains an array of double values as its Summary Object. The
values contained in the Summary Objects are summed when combined. If the last
value of the array is a numeric literal, Druid assumes that the value is an
override parameter for [nominal
entries](../development/extensions-core/datasketches-tuple.md).|
-|`DS_TUPLE_DOUBLES_NOT(expr, ..., [nominalEntries])`|Returns a set difference
of tuple sketches, where each input expression must return a tuple sketch which
contains an array of double values as its Summary Object. The values contained
in the Summary Object are preserved as is. If the last value of the array is a
numeric literal, Druid assumes that the value is an override parameter for
[nominal entries](../development/extensions-core/datasketches-tuple.md).|
-|`DS_TUPLE_DOUBLES_UNION(expr, ..., [nominalEntries])`|Returns a union of
tuple sketches, where each input expression must return a tuple sketch which
contains an array of double values as its Summary Object. The values contained
in the Summary Objects are summed when combined. If the last value of the array
is a numeric literal, Druid assumes that the value is an override parameter for
[nominal entries](../development/extensions-core/datasketches-tuple.md).|
+|`DS_TUPLE_DOUBLES_INTERSECT(expr, ...[, nominalEntries])`|Returns an
intersection of tuple sketches, where each input expression must return a tuple
sketch which contains an array of double values as its Summary Object. The
values contained in the Summary Objects are summed when combined. If the last
value of the array is a numeric literal, Druid assumes that the value is an
override parameter for [nominal
entries](../development/extensions-core/datasketches-tuple.md).|
+|`DS_TUPLE_DOUBLES_NOT(expr, ...[, nominalEntries])`|Returns a set difference
of tuple sketches, where each input expression must return a tuple sketch which
contains an array of double values as its Summary Object. The values contained
in the Summary Object are preserved as is. If the last value of the array is a
numeric literal, Druid assumes that the value is an override parameter for
[nominal entries](../development/extensions-core/datasketches-tuple.md).|
+|`DS_TUPLE_DOUBLES_UNION(expr, ...[, nominalEntries])`|Returns a union of
tuple sketches, where each input expression must return a tuple sketch which
contains an array of double values as its Summary Object. The values contained
in the Summary Objects are summed when combined. If the last value of the array
is a numeric literal, Druid assumes that the value is an override parameter for
[nominal entries](../development/extensions-core/datasketches-tuple.md).|
## Other scalar functions
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]