mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-06-29 01:44:36 -04:00
* WIP Started adding ST_CONTAINS * Add generated evaluators * Reduced warnings and use correct evaluators * Refactored tests to remove duplicate code, and fixed Contains/multi-components * Gradle build disallows using getDeclaredField * Fixed cases where rectangles cross the dateline * Fixed meta function tests * Added ST_WITHIN to support inverting ST_CONTAINS If the ST_CONTAINS is called with the constant on the left, we either have to create a lot more Evaluators to cover that case, or we have to invert it to ST_WITHIN. This inversion was a much easier option. * Simplify inversion logic * Add comment on choice of surrogate approach * Add unit tests and missing fold() function * Simple code cleanup * Add integration tests for literals * Add more integration tests based on actual data * Generated documentation files * Add documentation * Fixed failing function count test * Add tests that push-to-source works for ST_CONTAINS and ST_WITHIN * Test more combinations of WITH/CONTAINS and literal on right and left This also verifies that the re-writing of CONTAINS to WITHIN or vice versa occurs when the literal is on the left. * test that physical planning also handles doc-values from STATS * Added more tests for WITHIN/CONTAINS together with CENTROID This should test the doc-values for points. * Add cartesian_point tests * Add cartesian_shape tests * Disable Lucene-push-down for CARTESIAN data This is a limitation in Lucene, which we could address as a performance optimization in a future PR, but since it probably requires Lucene changes, it cannot be done in this work. * Fix doc links * Added test data and tests for cartesian multi-polygons Testing INTERSECTS, CONTAINS and WITHIN with multi-polydon fields * Use required features for spatial points, shapes and centroid * 8.13.0 is not yet historical version This needs to be reverted as soon as 8.13.0 is released * Added st_intersects and st_contains_within 'features' * Code review updates * Re-enable lucene push-down * Added more required_features * Fix point contains non-point * Fix point contains point * Re-enable lucene push-down in tests too Forgot to change the physical planner unit tests after re-enabling lucene push-down * Generate automatic docs * Use generated examples docs * Generated examples use '-result' prefix (singular) * Mark spatial functions as preview/experimental |
||
---|---|---|
.. | ||
description | ||
examples | ||
layout | ||
parameters | ||
signature | ||
types | ||
aggregation-functions.asciidoc | ||
auto_bucket.asciidoc | ||
avg.asciidoc | ||
binary.asciidoc | ||
case.asciidoc | ||
cidr_match.asciidoc | ||
coalesce.asciidoc | ||
concat.asciidoc | ||
conditional-functions-and-expressions.asciidoc | ||
cosh.asciidoc | ||
count-distinct.asciidoc | ||
count.asciidoc | ||
date-time-functions.asciidoc | ||
date_diff.asciidoc | ||
date_extract.asciidoc | ||
date_format.asciidoc | ||
date_parse.asciidoc | ||
date_trunc.asciidoc | ||
e.asciidoc | ||
ends_with.asciidoc | ||
floor.asciidoc | ||
greatest.asciidoc | ||
in.asciidoc | ||
least.asciidoc | ||
length.asciidoc | ||
like.asciidoc | ||
log.asciidoc | ||
log10.asciidoc | ||
logical.asciidoc | ||
ltrim.asciidoc | ||
math-functions.asciidoc | ||
max.asciidoc | ||
median-absolute-deviation.asciidoc | ||
median.asciidoc | ||
min.asciidoc | ||
mv-functions.asciidoc | ||
mv_avg.asciidoc | ||
mv_concat.asciidoc | ||
mv_count.asciidoc | ||
mv_dedupe.asciidoc | ||
mv_first.asciidoc | ||
mv_last.asciidoc | ||
mv_max.asciidoc | ||
mv_median.asciidoc | ||
mv_min.asciidoc | ||
mv_slice.asciidoc | ||
mv_sort.asciidoc | ||
mv_sum.asciidoc | ||
mv_zip.asciidoc | ||
now.asciidoc | ||
operators.asciidoc | ||
percentile.asciidoc | ||
pi.asciidoc | ||
pow.asciidoc | ||
predicates.asciidoc | ||
README.md | ||
replace.asciidoc | ||
right.asciidoc | ||
rlike.asciidoc | ||
round.asciidoc | ||
rtrim.asciidoc | ||
spatial-functions.asciidoc | ||
split.asciidoc | ||
sqrt.asciidoc | ||
st_centroid.asciidoc | ||
st_contains.asciidoc | ||
st_intersects.asciidoc | ||
st_within.asciidoc | ||
st_x.asciidoc | ||
st_y.asciidoc | ||
starts_with.asciidoc | ||
string-functions.asciidoc | ||
substring.asciidoc | ||
sum.asciidoc | ||
tau.asciidoc | ||
to_boolean.asciidoc | ||
to_cartesianpoint.asciidoc | ||
to_cartesianshape.asciidoc | ||
to_datetime.asciidoc | ||
to_degrees.asciidoc | ||
to_double.asciidoc | ||
to_geopoint.asciidoc | ||
to_geoshape.asciidoc | ||
to_integer.asciidoc | ||
to_ip.asciidoc | ||
to_long.asciidoc | ||
to_lower.asciidoc | ||
to_radians.asciidoc | ||
to_string.asciidoc | ||
to_unsigned_long.asciidoc | ||
to_upper.asciidoc | ||
to_version.asciidoc | ||
trim.asciidoc | ||
type-conversion-functions.asciidoc | ||
unary.asciidoc | ||
values.asciidoc |
The files in these subdirectories are generated by ESQL's test suite:
description
- description of each function scraped from@FunctionInfo#description
examples
- examples of each function scraped from@FunctionInfo#examples
parameters
- description of each function's parameters scraped from@Param
signature
- railroad diagram of the syntax to invoke each functiontypes
- a table of each combination of support type for each parameter. These are generated from tests.layout
- a fully generated description for each function
Most functions can use the generated docs generated in the layout
directory.
If we need something more custom for the function we can make a file in this
directory that can include::
any parts of the files above.
To regenerate the files for a function run its tests using gradle:
./gradlew :x-pack:plugin:esql:test -Dtests.class='*SinTests'
To regenerate the files for all functions run all of ESQL's tests using gradle:
./gradlew :x-pack:plugin:esql:test