Appends single or multiple values to an array, or creates a new array if it does not already exist.
Parameter | Type | Required | Default Value | Description |
---|---|---|---|---|
array [a] | string | required | Name of the array to append values to. Must follow valid Array Syntax for array of scalars. For example, for events with fields incidents[0], incidents[1], ... this would be incidents[] . | |
values | array of expressions | required | The list of expressions to be appended. | |
[a] The parameter name |
Hide omitted argument names for this function
Omitted Argument NamesThe argument name for
array
can be omitted; the following forms of this function are equivalent:logscale Syntaxarray:append("foo[]",values=[a,b,c])
and:
logscale Syntaxarray:append(array="foo[]",values=[a,b,c])
These examples show basic structure only.
The syntax for array:append()
looks like this:
array:append(array="foo[]", value=[exp_1, … exp_n])
where array:append()
is used to either append the
values of exp_1
to
exp_n
at the end of the
foo[]
array, or create a new array of
these values if the array foo[]
is not
present in the event. If one of the expressions does not evaluate to a
value, then that expression is skipped.
array:append()
requires that the input array has
continuous, sequential indexes with no gaps. If there are gaps (that is,
missing indexes), the function will start inserting new values at the
first missing index, potentially overwriting existing elements. For
example, having a missing index like in:
|-----------------|
|array[0] | foo |
|array[1] | bar |
|array[3] | baz |
|-----------------|
the query:
array:append("array[]", values=["x", "y", "z"])
will produce the following output:
field | value |
---|---|
array[0] | foo |
array[1] | bar |
array[2] | x |
array[3] | y |
array[4] | z |
Showing that array[3] has been overwritten.
array:append()
Examples
Click
next to an example below to get the full details.Create New Array by Appending Expressions
Create a new flat array by appending new expressions using the array:append()
function
Query
array:append(array="related.user[]", values=[lower(source.user.name), lower(destination.user.name)])
Introduction
The array:append()
function can be used to
create a new array based on values from an array of expressions,
provided that the input array has continuous, sequential indexes
with no missing indexes. In this example, the
array:append()
function is used to create a
new array related.user[]
containing information about all user names seen on the event.
Example incoming data might look like this:
source.user.name="user_1" destination.user.name="USER_2"
Step-by-Step
Starting with the source repository events.
- logscale
array:append(array="related.user[]", values=[lower(source.user.name), lower(destination.user.name)])
Creates a new array related.user[] containing information about all user names seen on the event. Notice that the
lower()
function formats the results into lower case before appending them to the array. Event Result set.
Summary and Results
This query is used to create a new flat array based on values from an array of expressions.
Sample output from the incoming example data:
source.user.name | destination.user.name | related.user[0] | related.user[1] | |
---|---|---|---|---|
user_1 | USER_2 | user_1 | user_2 |
Split Comma-Separated Strings in Array Into New Array
Split comma-separated strings in array into new flat array and extend with new values using the array:append()
function
Query
splitString(field=numbers,by=",",as=numbarr)
| array:append(array="numbarr[]", values=[4])
Introduction
The array:append()
function can be used to
create a new array based on values from another flat array,
provided that the input array has continuous, sequential indexes
with no missing indexes.
Example incoming data might look like this:
|-----------------------|
| numbers | "1,2,3" |
|-----------------------|
Step-by-Step
Starting with the source repository events.
- logscale
splitString(field=numbers,by=",",as=numbarr) | array:append(array="numbarr[]", values=[4])
Splits the comma-separated strings in the field numbers into a new array named numbarr[], and then extends this array with new values.
Event Result set.
Summary and Results
This query is used to create a new flat array based on values from another flat array,
Sample output from the incoming example data:
numbarr[0] | numbarr[1] | numbarr[2] | numbarr[3] |
---|---|---|---|
1 | 2 | 3 | 4 |