mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 09:19:04 -04:00
[ES|QL] Supports date_nanos in bucket (#213319)
## Summary Supports date_nanos in BUCKET. (Fixes this https://github.com/elastic/kibana/issues/192255#issuecomment-2682565258) Create a date_nanos field like here https://www.elastic.co/guide/en/elasticsearch/reference/current/date_nanos.html Test it with bucket <img width="776" alt="image" src="https://github.com/user-attachments/assets/3ba7d1b6-9000-4fc9-8bf0-74fb6c335596" /> ### Checklist - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios
This commit is contained in:
parent
311417d78e
commit
3e78503858
3 changed files with 64 additions and 12 deletions
|
@ -43,6 +43,8 @@ const bucketParameterTypes: Array<
|
|||
// field // bucket //from // to //result
|
||||
['date', 'date_period', null, null, 'date'],
|
||||
['date', 'integer', 'date', 'date', 'date'],
|
||||
['date_nanos', 'date_period', null, null, 'date_nanos'],
|
||||
['date_nanos', 'integer', 'date', 'date', 'date_nanos'],
|
||||
// Modified time_duration to time_literal
|
||||
['date', 'time_literal', null, null, 'date'],
|
||||
['double', 'double', null, null, 'double'],
|
||||
|
|
|
@ -98,12 +98,16 @@ describe('autocomplete.suggest', () => {
|
|||
const { assertSuggestions } = await setup();
|
||||
|
||||
await assertSuggestions('from a | stats by bucket(/', [
|
||||
...getFieldNamesByType([...ESQL_COMMON_NUMERIC_TYPES, 'date']).map(
|
||||
...getFieldNamesByType([...ESQL_COMMON_NUMERIC_TYPES, 'date', 'date_nanos']).map(
|
||||
(field) => `${field}, `
|
||||
),
|
||||
...getFunctionSignaturesByReturnType('eval', ['date', ...ESQL_COMMON_NUMERIC_TYPES], {
|
||||
scalar: true,
|
||||
}).map((s) => ({ ...s, text: `${s.text},` })),
|
||||
...getFunctionSignaturesByReturnType(
|
||||
'eval',
|
||||
['date', 'date_nanos', ...ESQL_COMMON_NUMERIC_TYPES],
|
||||
{
|
||||
scalar: true,
|
||||
}
|
||||
).map((s) => ({ ...s, text: `${s.text},` })),
|
||||
]);
|
||||
await assertSuggestions('from a | stats round(/', [
|
||||
...getFunctionSignaturesByReturnType('stats', roundParameterTypes, {
|
||||
|
@ -318,17 +322,25 @@ describe('autocomplete.suggest', () => {
|
|||
const { assertSuggestions } = await setup();
|
||||
await assertSuggestions('from a | stats avg(b) by BUCKET(/, 50, ?_tstart, ?_tend)', [
|
||||
// Note there's no space or comma in the suggested field names
|
||||
...getFieldNamesByType(['date', ...ESQL_COMMON_NUMERIC_TYPES]),
|
||||
...getFunctionSignaturesByReturnType('eval', ['date', ...ESQL_COMMON_NUMERIC_TYPES], {
|
||||
scalar: true,
|
||||
}),
|
||||
...getFieldNamesByType(['date', 'date_nanos', ...ESQL_COMMON_NUMERIC_TYPES]),
|
||||
...getFunctionSignaturesByReturnType(
|
||||
'eval',
|
||||
['date', 'date_nanos', ...ESQL_COMMON_NUMERIC_TYPES],
|
||||
{
|
||||
scalar: true,
|
||||
}
|
||||
),
|
||||
]);
|
||||
await assertSuggestions('from a | stats avg(b) by BUCKET( / , 50, ?_tstart, ?_tend)', [
|
||||
// Note there's no space or comma in the suggested field names
|
||||
...getFieldNamesByType(['date', ...ESQL_COMMON_NUMERIC_TYPES]),
|
||||
...getFunctionSignaturesByReturnType('eval', ['date', ...ESQL_COMMON_NUMERIC_TYPES], {
|
||||
scalar: true,
|
||||
}),
|
||||
...getFieldNamesByType(['date', 'date_nanos', ...ESQL_COMMON_NUMERIC_TYPES]),
|
||||
...getFunctionSignaturesByReturnType(
|
||||
'eval',
|
||||
['date', 'date_nanos', ...ESQL_COMMON_NUMERIC_TYPES],
|
||||
{
|
||||
scalar: true,
|
||||
}
|
||||
),
|
||||
]);
|
||||
|
||||
await assertSuggestions(
|
||||
|
|
|
@ -78,6 +78,44 @@ const bucketDefinition: FunctionDefinition = {
|
|||
],
|
||||
returnType: 'date',
|
||||
},
|
||||
{
|
||||
params: [
|
||||
{
|
||||
name: 'field',
|
||||
type: 'date_nanos',
|
||||
},
|
||||
{
|
||||
name: 'buckets',
|
||||
type: 'date_period',
|
||||
constantOnly: true,
|
||||
},
|
||||
],
|
||||
returnType: 'date_nanos',
|
||||
},
|
||||
{
|
||||
params: [
|
||||
{
|
||||
name: 'field',
|
||||
type: 'date_nanos',
|
||||
},
|
||||
{
|
||||
name: 'buckets',
|
||||
type: 'integer',
|
||||
constantOnly: true,
|
||||
},
|
||||
{
|
||||
name: 'startDate',
|
||||
type: 'date',
|
||||
constantOnly: true,
|
||||
},
|
||||
{
|
||||
name: 'endDate',
|
||||
type: 'date',
|
||||
constantOnly: true,
|
||||
},
|
||||
],
|
||||
returnType: 'date_nanos',
|
||||
},
|
||||
{
|
||||
params: [
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue