Skip to content

Commit

Permalink
[ES|QL] String literal implicit casting (#106932)
Browse files Browse the repository at this point in the history
* string literal casting for scalar functions and arithmetic operations.
  • Loading branch information
fang-xing-esql authored and craigtaverner committed Apr 11, 2024
1 parent 34379e9 commit 3747d96
Show file tree
Hide file tree
Showing 19 changed files with 446 additions and 317 deletions.
240 changes: 0 additions & 240 deletions docs/reference/esql/functions/kibana/definition/bucket.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,246 +34,6 @@
"variadic" : false,
"returnType" : "datetime"
},
{
"params" : [
{
"name" : "field",
"type" : "datetime",
"optional" : false,
"description" : ""
},
{
"name" : "buckets",
"type" : "integer",
"optional" : false,
"description" : ""
},
{
"name" : "from",
"type" : "datetime",
"optional" : false,
"description" : ""
},
{
"name" : "to",
"type" : "keyword",
"optional" : false,
"description" : ""
}
],
"variadic" : false,
"returnType" : "datetime"
},
{
"params" : [
{
"name" : "field",
"type" : "datetime",
"optional" : false,
"description" : ""
},
{
"name" : "buckets",
"type" : "integer",
"optional" : false,
"description" : ""
},
{
"name" : "from",
"type" : "datetime",
"optional" : false,
"description" : ""
},
{
"name" : "to",
"type" : "text",
"optional" : false,
"description" : ""
}
],
"variadic" : false,
"returnType" : "datetime"
},
{
"params" : [
{
"name" : "field",
"type" : "datetime",
"optional" : false,
"description" : ""
},
{
"name" : "buckets",
"type" : "integer",
"optional" : false,
"description" : ""
},
{
"name" : "from",
"type" : "keyword",
"optional" : false,
"description" : ""
},
{
"name" : "to",
"type" : "datetime",
"optional" : false,
"description" : ""
}
],
"variadic" : false,
"returnType" : "datetime"
},
{
"params" : [
{
"name" : "field",
"type" : "datetime",
"optional" : false,
"description" : ""
},
{
"name" : "buckets",
"type" : "integer",
"optional" : false,
"description" : ""
},
{
"name" : "from",
"type" : "keyword",
"optional" : false,
"description" : ""
},
{
"name" : "to",
"type" : "keyword",
"optional" : false,
"description" : ""
}
],
"variadic" : false,
"returnType" : "datetime"
},
{
"params" : [
{
"name" : "field",
"type" : "datetime",
"optional" : false,
"description" : ""
},
{
"name" : "buckets",
"type" : "integer",
"optional" : false,
"description" : ""
},
{
"name" : "from",
"type" : "keyword",
"optional" : false,
"description" : ""
},
{
"name" : "to",
"type" : "text",
"optional" : false,
"description" : ""
}
],
"variadic" : false,
"returnType" : "datetime"
},
{
"params" : [
{
"name" : "field",
"type" : "datetime",
"optional" : false,
"description" : ""
},
{
"name" : "buckets",
"type" : "integer",
"optional" : false,
"description" : ""
},
{
"name" : "from",
"type" : "text",
"optional" : false,
"description" : ""
},
{
"name" : "to",
"type" : "datetime",
"optional" : false,
"description" : ""
}
],
"variadic" : false,
"returnType" : "datetime"
},
{
"params" : [
{
"name" : "field",
"type" : "datetime",
"optional" : false,
"description" : ""
},
{
"name" : "buckets",
"type" : "integer",
"optional" : false,
"description" : ""
},
{
"name" : "from",
"type" : "text",
"optional" : false,
"description" : ""
},
{
"name" : "to",
"type" : "keyword",
"optional" : false,
"description" : ""
}
],
"variadic" : false,
"returnType" : "datetime"
},
{
"params" : [
{
"name" : "field",
"type" : "datetime",
"optional" : false,
"description" : ""
},
{
"name" : "buckets",
"type" : "integer",
"optional" : false,
"description" : ""
},
{
"name" : "from",
"type" : "text",
"optional" : false,
"description" : ""
},
{
"name" : "to",
"type" : "text",
"optional" : false,
"description" : ""
}
],
"variadic" : false,
"returnType" : "datetime"
},
{
"params" : [
{
Expand Down
8 changes: 0 additions & 8 deletions docs/reference/esql/functions/types/bucket.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,6 @@
|===
field | buckets | from | to | result
datetime | integer | datetime | datetime | datetime
datetime | integer | datetime | keyword | datetime
datetime | integer | datetime | text | datetime
datetime | integer | keyword | datetime | datetime
datetime | integer | keyword | keyword | datetime
datetime | integer | keyword | text | datetime
datetime | integer | text | datetime | datetime
datetime | integer | text | keyword | datetime
datetime | integer | text | text | datetime
double | integer | double | double | double
double | integer | double | integer | double
double | integer | double | long | double
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -510,6 +510,17 @@ date1:date | date2:date | dd_ms:integer
// end::docsDateDiff-result[]
;

evalDateDiffString
required_feature: esql.string_literal_auto_casting

ROW date1 = TO_DATETIME("2023-12-02T11:00:00.000Z")
| EVAL dd_ms = DATE_DIFF("microseconds", date1, "2023-12-02T11:00:00.001Z")
;

date1:date | dd_ms:integer
2023-12-02T11:00:00.000Z | 1000
;

evalDateParseWithSimpleDate
row a = "2023-02-01" | eval b = date_parse("yyyy-MM-dd", a) | keep b;

Expand Down Expand Up @@ -1085,6 +1096,17 @@ date:date | year:long
// end::dateExtract-result[]
;

dateExtractString
required_feature: esql.string_literal_auto_casting

ROW date = DATE_PARSE("yyyy-MM-dd", "2022-05-06")
| EVAL year = DATE_EXTRACT("year", "2022-05-06")
;

date:date | year:long
2022-05-06T00:00:00.000Z | 2022
;

docsDateExtractBusinessHours
// tag::docsDateExtractBusinessHours[]
FROM sample_data
Expand Down Expand Up @@ -1115,6 +1137,17 @@ Anneke |Preusig |1989-06-02T00:00:00.000Z|1989-06-02
// end::docsDateFormat-result[]
;

evalDateFormatString
required_feature: esql.string_literal_auto_casting

ROW a = 1
| EVAL df = DATE_FORMAT("YYYY-MM-dd", "1989-06-02T00:00:00.000Z")
;

a:integer | df:keyword
1 | 1989-06-02
;

docsDateTrunc
// tag::docsDateTrunc[]
FROM employees
Expand All @@ -1133,6 +1166,17 @@ Anneke |Preusig |1989-06-02T00:00:00.000Z|1989-01-01T00:00:00.000
// end::docsDateTrunc-result[]
;

evalDateTruncString
required_feature: esql.string_literal_auto_casting

ROW a = 1
| EVAL year_hired = DATE_TRUNC(1 year, "1991-06-26T00:00:00.000Z")
;

a:integer | year_hired:date
1 | 1991-01-01T00:00:00.000Z
;

docsDateTruncHistogram
// tag::docsDateTruncHistogram[]
FROM employees
Expand Down

0 comments on commit 3747d96

Please sign in to comment.