diff --git a/docker/integ-test/docker-compose.yml b/docker/integ-test/docker-compose.yml index 0a110f2fd..af4d64b5b 100644 --- a/docker/integ-test/docker-compose.yml +++ b/docker/integ-test/docker-compose.yml @@ -44,6 +44,9 @@ services: - type: bind source: ../../$FLINT_JAR target: /opt/bitnami/spark/jars/flint-spark-integration.jar + - type: bind + source: ../../$SQL_APP_JAR + target: /opt/bitnami/spark/jars/opensearch-spark-sql-application.jar healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/"] interval: 1m @@ -87,6 +90,9 @@ services: - type: bind source: ../../$FLINT_JAR target: /opt/bitnami/spark/jars/flint-spark-integration.jar + - type: bind + source: ../../$SQL_APP_JAR + target: /opt/bitnami/spark/jars/opensearch-spark-sql-application.jar networks: - opensearch-net depends_on: diff --git a/docker/integ-test/spark-submit/Dockerfile b/docker/integ-test/spark-submit/Dockerfile index d61caad52..ab816b46a 100644 --- a/docker/integ-test/spark-submit/Dockerfile +++ b/docker/integ-test/spark-submit/Dockerfile @@ -12,6 +12,7 @@ ENV SQL_APP_JAR $SQL_APP_JAR COPY docker/integ-test/spark/spark-defaults.conf /opt/bitnami/spark/conf/spark-defaults.conf COPY ${FLINT_JAR} /opt/bitnami/spark/jars/flint-spark-integration.jar COPY ${PPL_JAR} /opt/bitnami/spark/jars/ppl-spark-integration.jar +COPY ${SQL_APP_JAR} /opt/bitnami/spark/jars/opensearch-spark-sql-application.jar USER root RUN mkdir /app diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_001.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_001.ppl new file mode 100644 index 000000000..a103fc384 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_001.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | dedup 1 status | fields @timestamp, clientip, status, size | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_001.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_001.results new file mode 100644 index 000000000..ea7d7b811 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_001.results @@ -0,0 +1,37 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + "40.135.0.0", + 200, + 24736 + ], + [ + "2023-10-01T10:20:00.000", + "247.37.0.0", + 304, + 0 + ] + ], + "total": 2, + "size": 2 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_002.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_002.ppl new file mode 100644 index 000000000..d8b6f595d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_002.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | dedup status, size | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_002.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_002.results new file mode 100644 index 000000000..1ad18ba48 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_002.results @@ -0,0 +1,71 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ] + ], + "total": 3, + "size": 3 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_003.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_003.ppl new file mode 100644 index 000000000..7d36ead38 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_003.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | dedup 1 status keepempty=true | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_003.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_003.results new file mode 100644 index 000000000..d836578ee --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_003.results @@ -0,0 +1,61 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ] + ], + "total": 2, + "size": 2 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_004.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_004.ppl new file mode 100644 index 000000000..5b1711027 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_004.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | dedup status, size keepempty=true | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_004.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_004.results new file mode 100644 index 000000000..1ad18ba48 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_004.results @@ -0,0 +1,71 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ] + ], + "total": 3, + "size": 3 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_005.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_005.ppl new file mode 100644 index 000000000..b9aeeb02e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_005.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | dedup 2 status | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_005.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_005.results new file mode 100644 index 000000000..849d88e0c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_005.results @@ -0,0 +1,71 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ] + ], + "total": 3, + "size": 3 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_006.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_006.ppl new file mode 100644 index 000000000..a8e92c8a9 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_006.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | dedup 2 status, size | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_006.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_006.results new file mode 100644 index 000000000..c9206003a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_006.results @@ -0,0 +1,81 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ] + ], + "total": 4, + "size": 4 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_007.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_007.ppl new file mode 100644 index 000000000..9b61a2c92 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_007.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | dedup 2 status, size keepempty=true | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_007.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_007.results new file mode 100644 index 000000000..c9206003a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_007.results @@ -0,0 +1,81 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ] + ], + "total": 4, + "size": 4 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_008.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_008.ppl new file mode 100644 index 000000000..bccd94983 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_008.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | sort status | fields @timestamp, clientip, status | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_008.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_008.results new file mode 100644 index 000000000..56f9cb4fd --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_008.results @@ -0,0 +1,51 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "status", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + "40.135.0.0", + 200 + ], + [ + "2023-10-01T10:05:00.000", + "232.0.0.0", + 200 + ], + [ + "2023-10-01T10:10:00.000", + "26.1.0.0", + 200 + ], + [ + "2023-10-01T10:15:00.000", + "247.37.0.0", + 200 + ], + [ + "2023-10-01T10:25:00.000", + "252.0.0.0", + 200 + ], + [ + "2023-10-01T10:20:00.000", + "247.37.0.0", + 304 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_009.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_009.ppl new file mode 100644 index 000000000..4d10fe471 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_009.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | fields - @timestamp, clientip, status | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_009.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_009.results new file mode 100644 index 000000000..4f27412f5 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_009.results @@ -0,0 +1,71 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + 2023, + 10, + 1, + "GET /images/hm_bg.jpg HTTP/1.0", + 24736 + ], + [ + 2023, + 10, + 1, + "GET /images/hm_bg.jpg HTTP/1.0", + 24736 + ], + [ + 2023, + 10, + 1, + "GET /images/hm_bg.jpg HTTP/1.0", + 24736 + ], + [ + 2023, + 10, + 1, + "GET /french/splash_inet.html HTTP/1.0", + 3781 + ], + [ + 2023, + 10, + 1, + "GET /images/hm_nbg.jpg HTTP/1.0", + 0 + ], + [ + 2023, + 10, + 1, + "GET /images/hm_bg.jpg HTTP/1.0", + 24736 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_010.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_010.ppl new file mode 100644 index 000000000..8d6d968b2 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_010.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval new_time = @timestamp, new_clientip = clientip | fields - new_time, new_clientip, status | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_010.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_010.results new file mode 100644 index 000000000..b4177b7f6 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_010.results @@ -0,0 +1,91 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 3781 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 0 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 24736 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_011.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_011.ppl new file mode 100644 index 000000000..b908bf009 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_011.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval new_clientip = lower(clientip) | fields - new_clientip | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_011.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_011.results new file mode 100644 index 000000000..b8cd5702e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_011.results @@ -0,0 +1,111 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + }, + { + "name": "new_clientip", + "type": "string" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "40.135.0.0" + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "232.0.0.0" + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "26.1.0.0" + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781, + "247.37.0.0" + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0, + "247.37.0.0" + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "252.0.0.0" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_012.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_012.ppl new file mode 100644 index 000000000..1983e2c21 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_012.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | fields + @timestamp, clientip, status | fields - clientip, status | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_012.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_012.results new file mode 100644 index 000000000..c8a27763f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_012.results @@ -0,0 +1,31 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000" + ], + [ + "2023-10-01T10:05:00.000" + ], + [ + "2023-10-01T10:10:00.000" + ], + [ + "2023-10-01T10:15:00.000" + ], + [ + "2023-10-01T10:20:00.000" + ], + [ + "2023-10-01T10:25:00.000" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_013.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_013.ppl new file mode 100644 index 000000000..37ea4071a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_013.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where status = 200 | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_013.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_013.results new file mode 100644 index 000000000..24d700569 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_013.results @@ -0,0 +1,91 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_014.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_014.ppl new file mode 100644 index 000000000..b6bde8b2b --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_014.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where status != 200 | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_014.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_014.results new file mode 100644 index 000000000..b31f8d392 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_014.results @@ -0,0 +1,51 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_015.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_015.ppl new file mode 100644 index 000000000..df29ad33b --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_015.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where size > 0 | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_015.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_015.results new file mode 100644 index 000000000..24d700569 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_015.results @@ -0,0 +1,91 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_016.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_016.ppl new file mode 100644 index 000000000..62f084afe --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_016.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where size <= 0 | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_016.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_016.results new file mode 100644 index 000000000..b31f8d392 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_016.results @@ -0,0 +1,51 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_017.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_017.ppl new file mode 100644 index 000000000..80db0bfed --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_017.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where clientip = '236.14.2.0' | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_017.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_017.results new file mode 100644 index 000000000..8a5d2b49f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_017.results @@ -0,0 +1,40 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_018.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_018.ppl new file mode 100644 index 000000000..8ed13fa7b --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_018.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where size > 0 AND status = 200 OR clientip = '236.14.2.0' | head 100 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_018.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_018.results new file mode 100644 index 000000000..24d700569 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_018.results @@ -0,0 +1,91 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_019.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_019.ppl new file mode 100644 index 000000000..6f03f59f9 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_019.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where size <= 0 AND like(request, 'GET%') | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_019.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_019.results new file mode 100644 index 000000000..b31f8d392 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_019.results @@ -0,0 +1,51 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_020.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_020.ppl new file mode 100644 index 000000000..e8f83b4dd --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_020.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs status = 200 | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_020.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_020.results new file mode 100644 index 000000000..24d700569 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_020.results @@ -0,0 +1,91 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_021.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_021.ppl new file mode 100644 index 000000000..4702906e4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_021.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs size > 0 AND status = 200 OR clientip = '236.14.2.0' | head 100 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_021.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_021.results new file mode 100644 index 000000000..24d700569 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_021.results @@ -0,0 +1,91 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_022.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_022.ppl new file mode 100644 index 000000000..d0567b60e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_022.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs size <= 0 AND like(request, 'GET%') | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_022.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_022.results new file mode 100644 index 000000000..b31f8d392 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_022.results @@ -0,0 +1,51 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_023.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_023.ppl new file mode 100644 index 000000000..87a1fd9ac --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_023.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where isempty(size) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_023.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_023.results new file mode 100644 index 000000000..8a5d2b49f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_023.results @@ -0,0 +1,40 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_024.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_024.ppl new file mode 100644 index 000000000..874da4ff1 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_024.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where ispresent(size) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_024.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_024.results new file mode 100644 index 000000000..218c32a8a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_024.results @@ -0,0 +1,101 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_025.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_025.ppl new file mode 100644 index 000000000..0e225c6ea --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_025.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where isnull(size) | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_025.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_025.results new file mode 100644 index 000000000..8a5d2b49f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_025.results @@ -0,0 +1,40 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_026.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_026.ppl new file mode 100644 index 000000000..4493f0d4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_026.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where isnotnull(size) | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_026.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_026.results new file mode 100644 index 000000000..218c32a8a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_026.results @@ -0,0 +1,101 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_027.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_027.ppl new file mode 100644 index 000000000..49b8139b3 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_027.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where like(request, 'GET%') | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_027.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_027.results new file mode 100644 index 000000000..218c32a8a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_027.results @@ -0,0 +1,101 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_028.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_028.ppl new file mode 100644 index 000000000..98262c152 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_028.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where like(request, '%bordeaux%') | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_028.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_028.results new file mode 100644 index 000000000..8a5d2b49f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_028.results @@ -0,0 +1,40 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_029.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_029.ppl new file mode 100644 index 000000000..3759a2e99 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_029.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where case(status = 200, 'success' else 'failed') = 'success' | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_029.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_029.results new file mode 100644 index 000000000..24d700569 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_029.results @@ -0,0 +1,91 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_030.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_030.ppl new file mode 100644 index 000000000..03fe66ff8 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_030.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval h = "Hello", w = "World" | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_030.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_030.results new file mode 100644 index 000000000..13c02cb16 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_030.results @@ -0,0 +1,121 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + }, + { + "name": "h", + "type": "string" + }, + { + "name": "w", + "type": "string" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "Hello", + "World" + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "Hello", + "World" + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "Hello", + "World" + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781, + "Hello", + "World" + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0, + "Hello", + "World" + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "Hello", + "World" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_031.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_031.ppl new file mode 100644 index 000000000..6d09ef856 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_031.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval @h = "Hello" | eval @w = "World" | fields @timestamp, @h, @w \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_031.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_031.results new file mode 100644 index 000000000..18d438a6f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_031.results @@ -0,0 +1,51 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "@h", + "type": "string" + }, + { + "name": "@w", + "type": "string" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + "Hello", + "World" + ], + [ + "2023-10-01T10:05:00.000", + "Hello", + "World" + ], + [ + "2023-10-01T10:10:00.000", + "Hello", + "World" + ], + [ + "2023-10-01T10:15:00.000", + "Hello", + "World" + ], + [ + "2023-10-01T10:20:00.000", + "Hello", + "World" + ], + [ + "2023-10-01T10:25:00.000", + "Hello", + "World" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_032.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_032.ppl new file mode 100644 index 000000000..99c06308c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_032.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval newF = clientip | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_032.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_032.results new file mode 100644 index 000000000..ec64ea6b6 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_032.results @@ -0,0 +1,111 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + }, + { + "name": "newF", + "type": "string" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "40.135.0.0" + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "232.0.0.0" + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "26.1.0.0" + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781, + "247.37.0.0" + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0, + "247.37.0.0" + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "252.0.0.0" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_033.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_033.ppl new file mode 100644 index 000000000..3548f3081 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_033.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval newF = clientip | fields clientip, newF | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_033.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_033.results new file mode 100644 index 000000000..11e739581 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_033.results @@ -0,0 +1,41 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "clientip", + "type": "string" + }, + { + "name": "newF", + "type": "string" + } + ], + "datarows": [ + [ + "40.135.0.0", + "40.135.0.0" + ], + [ + "232.0.0.0", + "232.0.0.0" + ], + [ + "26.1.0.0", + "26.1.0.0" + ], + [ + "247.37.0.0", + "247.37.0.0" + ], + [ + "247.37.0.0", + "247.37.0.0" + ], + [ + "252.0.0.0", + "252.0.0.0" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_034.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_034.ppl new file mode 100644 index 000000000..103d549d3 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_034.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval f = size | where f > 1 | sort f | fields size, clientip, status | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_034.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_034.results new file mode 100644 index 000000000..66878adc9 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_034.results @@ -0,0 +1,46 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "size", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "status", + "type": "long" + } + ], + "datarows": [ + [ + 3781, + "247.37.0.0", + 200 + ], + [ + 24736, + "40.135.0.0", + 200 + ], + [ + 24736, + "232.0.0.0", + 200 + ], + [ + 24736, + "26.1.0.0", + 200 + ], + [ + 24736, + "252.0.0.0", + 200 + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_035.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_035.ppl new file mode 100644 index 000000000..9e9f2dd8e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_035.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval f = status * 2 | eval h = f * 2 | fields status, f, h | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_035.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_035.results new file mode 100644 index 000000000..e2df5e204 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_035.results @@ -0,0 +1,51 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "status", + "type": "long" + }, + { + "name": "f", + "type": "long" + }, + { + "name": "h", + "type": "long" + } + ], + "datarows": [ + [ + 200, + 400, + 800 + ], + [ + 200, + 400, + 800 + ], + [ + 200, + 400, + 800 + ], + [ + 200, + 400, + 800 + ], + [ + 304, + 608, + 1216 + ], + [ + 200, + 400, + 800 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_036.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_036.ppl new file mode 100644 index 000000000..d2d5f8b61 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_036.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval f = size * 2, h = status | stats sum(f) by h \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_036.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_036.results new file mode 100644 index 000000000..6d140d47f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_036.results @@ -0,0 +1,25 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "sum(f)", + "type": "long" + }, + { + "name": "h", + "type": "long" + } + ], + "datarows": [ + [ + 0, + 304 + ], + [ + 205450, + 200 + ] + ], + "total": 2, + "size": 2 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_037.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_037.ppl new file mode 100644 index 000000000..69581e897 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_037.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval f = UPPER(request) | eval h = 40 | fields f, h | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_037.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_037.results new file mode 100644 index 000000000..0665f97cf --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_037.results @@ -0,0 +1,41 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "f", + "type": "string" + }, + { + "name": "h", + "type": "integer" + } + ], + "datarows": [ + [ + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + 40 + ], + [ + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + 40 + ], + [ + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + 40 + ], + [ + "GET /FRENCH/SPLASH_INET.HTML HTTP/1.0", + 40 + ], + [ + "GET /IMAGES/HM_NBG.JPG HTTP/1.0", + 40 + ], + [ + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + 40 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_038.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_038.ppl new file mode 100644 index 000000000..1903adc82 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_038.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval status_string = case(status = 200, 'success' else 'failed') | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_038.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_038.results new file mode 100644 index 000000000..e237f99c2 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_038.results @@ -0,0 +1,111 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + }, + { + "name": "status_string", + "type": "string" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "success" + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "success" + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "success" + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781, + "success" + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0, + "failed" + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "success" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_039.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_039.ppl new file mode 100644 index 000000000..ef88f26dd --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_039.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval e = isempty(size) | eval p = ispresent(size) | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_039.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_039.results new file mode 100644 index 000000000..46fb904ff --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_039.results @@ -0,0 +1,121 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + }, + { + "name": "e", + "type": "boolean" + }, + { + "name": "p", + "type": "boolean" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + false, + true + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + false, + true + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + false, + true + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781, + false, + true + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0, + false, + true + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + false, + true + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_040.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_040.ppl new file mode 100644 index 000000000..b9b39624b --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_040.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval c = coalesce(size, status) | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_040.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_040.results new file mode 100644 index 000000000..d59d13ae1 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_040.results @@ -0,0 +1,111 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + }, + { + "name": "c", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781, + 3781 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0, + 0 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + 24736 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_041.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_041.ppl new file mode 100644 index 000000000..030c4934f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_041.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval c = coalesce(request) | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_041.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_041.results new file mode 100644 index 000000000..c0b2b91a1 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_041.results @@ -0,0 +1,111 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + }, + { + "name": "c", + "type": "string" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "GET /images/hm_bg.jpg HTTP/1.0" + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "GET /images/hm_bg.jpg HTTP/1.0" + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "GET /images/hm_bg.jpg HTTP/1.0" + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781, + "GET /french/splash_inet.html HTTP/1.0" + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0, + "GET /images/hm_nbg.jpg HTTP/1.0" + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "GET /images/hm_bg.jpg HTTP/1.0" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_042.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_042.ppl new file mode 100644 index 000000000..9f479517f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_042.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval col1 = ln(size) | eval col2 = unix_timestamp(@timestamp) | sort - col1 | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_042.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_042.results new file mode 100644 index 000000000..b5759f94d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_042.results @@ -0,0 +1,121 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + }, + { + "name": "col1", + "type": "double" + }, + { + "name": "col2", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + 10.116014951387148, + 1696154400 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + 10.116014951387148, + 1696154700 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + 10.116014951387148, + 1696155000 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + 10.116014951387148, + 1696155900 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781, + 8.237743803890933, + 1696155300 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0, + null, + 1696155600 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_043.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_043.ppl new file mode 100644 index 000000000..43ce95e5a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_043.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval col1 = 1 | sort col1 | head 4 | eval col2 = 2 | sort - col2 | sort - size | head 2 | fields @timestamp, clientip, col2 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_043.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_043.results new file mode 100644 index 000000000..43ad31f69 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_043.results @@ -0,0 +1,31 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "col2", + "type": "integer" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + "40.135.0.0", + 2 + ], + [ + "2023-10-01T10:05:00.000", + "232.0.0.0", + 2 + ] + ], + "total": 2, + "size": 2 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_044.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_044.ppl new file mode 100644 index 000000000..7fb84e116 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_044.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval stat = status | where stat > 300 | sort stat | fields @timestamp,clientip,status | head 5 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_044.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_044.results new file mode 100644 index 000000000..ead377356 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_044.results @@ -0,0 +1,26 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "status", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:20:00.000", + "247.37.0.0", + 304 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_045.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_045.ppl new file mode 100644 index 000000000..ec1a1ec80 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_045.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval col1 = size, col2 = clientip | stats avg(col1) by col2 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_045.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_045.results new file mode 100644 index 000000000..e3ed0e1da --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_045.results @@ -0,0 +1,37 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "avg(col1)", + "type": "double" + }, + { + "name": "col2", + "type": "string" + } + ], + "datarows": [ + [ + 24736.0, + "26.1.0.0" + ], + [ + 24736.0, + "232.0.0.0" + ], + [ + 24736.0, + "252.0.0.0" + ], + [ + 24736.0, + "40.135.0.0" + ], + [ + 1890.5, + "247.37.0.0" + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_046.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_046.ppl new file mode 100644 index 000000000..3a57aad63 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_046.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | stats avg(size) by clientip \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_046.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_046.results new file mode 100644 index 000000000..382e06c45 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_046.results @@ -0,0 +1,37 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "avg(size)", + "type": "double" + }, + { + "name": "clientip", + "type": "string" + } + ], + "datarows": [ + [ + 24736.0, + "26.1.0.0" + ], + [ + 24736.0, + "232.0.0.0" + ], + [ + 24736.0, + "252.0.0.0" + ], + [ + 24736.0, + "40.135.0.0" + ], + [ + 1890.5, + "247.37.0.0" + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_047.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_047.ppl new file mode 100644 index 000000000..b377fed4d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_047.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval new_request = upper(request) | eval compound_field = concat('Hello ', if(like(new_request, '%bordeaux%'), 'World', clientip)) | fields new_request, compound_field | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_047.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_047.results new file mode 100644 index 000000000..b9ef2aaff --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_047.results @@ -0,0 +1,41 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "new_request", + "type": "string" + }, + { + "name": "compound_field", + "type": "string" + } + ], + "datarows": [ + [ + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + "Hello 40.135.0.0" + ], + [ + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + "Hello 232.0.0.0" + ], + [ + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + "Hello 26.1.0.0" + ], + [ + "GET /FRENCH/SPLASH_INET.HTML HTTP/1.0", + "Hello 247.37.0.0" + ], + [ + "GET /IMAGES/HM_NBG.JPG HTTP/1.0", + "Hello 247.37.0.0" + ], + [ + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + "Hello 252.0.0.0" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_048.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_048.ppl new file mode 100644 index 000000000..a4a0ce9a8 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_048.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | stats avg(size) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_048.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_048.results new file mode 100644 index 000000000..9c3b46031 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_048.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "avg(size)", + "type": "double" + } + ], + "datarows": [ + [ + 17120.833333333332 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_049.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_049.ppl new file mode 100644 index 000000000..3b6a4ccaa --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_049.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | stats max(int_col) by struct_col.field2 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_049.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_049.results new file mode 100644 index 000000000..ace2597ca --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_049.results @@ -0,0 +1,33 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "max(int_col)", + "type": "integer" + }, + { + "name": "struct_col.field2", + "type": "integer" + } + ], + "datarows": [ + [ + 40, + 456 + ], + [ + 30, + 823 + ], + [ + 50, + 789 + ], + [ + 40, + 123 + ] + ], + "total": 4, + "size": 4 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_050.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_050.ppl new file mode 100644 index 000000000..b259caf02 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_050.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | stats distinct_count(int_col) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_050.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_050.results new file mode 100644 index 000000000..b1c19af5e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_050.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "distinct_count(int_col)", + "type": "long" + } + ], + "datarows": [ + [ + 3 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_051.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_051.ppl new file mode 100644 index 000000000..7238bd57d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_051.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | stats stddev_samp(int_col) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_051.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_051.results new file mode 100644 index 000000000..332cc48e2 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_051.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "stddev_samp(int_col)", + "type": "double" + } + ], + "datarows": [ + [ + 8.366600265340756 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_052.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_052.ppl new file mode 100644 index 000000000..c0352d35c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_052.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | stats stddev_pop(int_col) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_052.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_052.results new file mode 100644 index 000000000..e96939c17 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_052.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "stddev_pop(int_col)", + "type": "double" + } + ], + "datarows": [ + [ + 7.483314773547883 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_053.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_053.ppl new file mode 100644 index 000000000..1bdcd129f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_053.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | stats percentile(int_col, 90) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_053.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_053.results new file mode 100644 index 000000000..654b39d89 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_053.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "percentile(int_col, 90)", + "type": "double" + } + ], + "datarows": [ + [ + 46.0 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_054.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_054.ppl new file mode 100644 index 000000000..2c34169ab --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_054.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | stats percentile_approx(int_col, 99) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_054.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_054.results new file mode 100644 index 000000000..66a557663 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_054.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "percentile_approx(int_col, 99)", + "type": "integer" + } + ], + "datarows": [ + [ + 50 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_055.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_055.ppl new file mode 100644 index 000000000..e8a9224e9 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_055.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | stats stddev_samp(status) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_055.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_055.results new file mode 100644 index 000000000..bc3f36254 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_055.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "stddev_samp(status)", + "type": "double" + } + ], + "datarows": [ + [ + 42.45782220824175 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_056.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_056.ppl new file mode 100644 index 000000000..80684dc97 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_056.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where status > 200 | stats percentile_approx(status, 99) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_056.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_056.results new file mode 100644 index 000000000..6c4d6fa16 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_056.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "percentile_approx(status, 99)", + "type": "long" + } + ], + "datarows": [ + [ + 304 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_057.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_057.ppl new file mode 100644 index 000000000..94851cbde --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_057.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | stats count(int_col) by span(struct_col.field2, 10) as a_span \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_057.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_057.results new file mode 100644 index 000000000..2a1b43bb1 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_057.results @@ -0,0 +1,33 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count(int_col)", + "type": "long" + }, + { + "name": "a_span", + "type": "long" + } + ], + "datarows": [ + [ + 1, + 450 + ], + [ + 1, + 820 + ], + [ + 2, + 120 + ], + [ + 1, + 780 + ] + ], + "total": 4, + "size": 4 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_058.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_058.ppl new file mode 100644 index 000000000..e2fb101ed --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_058.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | stats avg(int_col) by span(struct_col.field2, 10) as a_span, struct_col2.field2 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_058.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_058.results new file mode 100644 index 000000000..bc61dd5a8 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_058.results @@ -0,0 +1,46 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "avg(int_col)", + "type": "double" + }, + { + "name": "struct_col2.field2", + "type": "integer" + }, + { + "name": "a_span", + "type": "long" + } + ], + "datarows": [ + [ + 40.0, + 33, + 120 + ], + [ + 30.0, + 83, + 820 + ], + [ + 30.0, + 23, + 120 + ], + [ + 50.0, + 89, + 780 + ], + [ + 40.0, + 46, + 450 + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_059.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_059.ppl new file mode 100644 index 000000000..93b1e1d3d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_059.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | stats avg(size) as avg_size by status, year | stats avg(avg_size) as avg_avg_size by year \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_059.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_059.results new file mode 100644 index 000000000..a78ef2bb8 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_059.results @@ -0,0 +1,21 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "avg_avg_size", + "type": "double" + }, + { + "name": "year", + "type": "long" + } + ], + "datarows": [ + [ + 10272.5, + 2023 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_060.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_060.ppl new file mode 100644 index 000000000..39645bd6c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_060.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | stats avg(size) as avg_size by status, year, month | stats avg(avg_size) as avg_avg_size by year, month | stats avg(avg_avg_size) as avg_avg_avg_size by year \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_060.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_060.results new file mode 100644 index 000000000..a6f11cbf0 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_060.results @@ -0,0 +1,21 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "avg_avg_avg_size", + "type": "double" + }, + { + "name": "year", + "type": "long" + } + ], + "datarows": [ + [ + 10272.5, + 2023 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_061.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_061.ppl new file mode 100644 index 000000000..e54d9ccb0 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_061.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | stats avg(int_col) as avg_int by struct_col.field2, struct_col2.field2 | eval new_col = avg_int | stats avg(avg_int) as avg_avg_int by new_col \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_061.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_061.results new file mode 100644 index 000000000..ee89b1656 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_061.results @@ -0,0 +1,29 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "avg_avg_int", + "type": "double" + }, + { + "name": "new_col", + "type": "double" + } + ], + "datarows": [ + [ + 50.0, + 50.0 + ], + [ + 40.0, + 40.0 + ], + [ + 30.0, + 30.0 + ] + ], + "total": 3, + "size": 3 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_062.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_062.ppl new file mode 100644 index 000000000..6a4e2b110 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_062.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | rare int_col \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_062.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_062.results new file mode 100644 index 000000000..580188786 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_062.results @@ -0,0 +1,29 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count_int_col", + "type": "long" + }, + { + "name": "int_col", + "type": "integer" + } + ], + "datarows": [ + [ + 1, + 50 + ], + [ + 2, + 40 + ], + [ + 2, + 30 + ] + ], + "total": 3, + "size": 3 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_063.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_063.ppl new file mode 100644 index 000000000..442e2e8f6 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_063.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | rare int_col by struct_col.field2 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_063.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_063.results new file mode 100644 index 000000000..e53ad215c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_063.results @@ -0,0 +1,46 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count_int_col", + "type": "long" + }, + { + "name": "int_col", + "type": "integer" + }, + { + "name": "struct_col.field2", + "type": "integer" + } + ], + "datarows": [ + [ + 1, + 50, + 789 + ], + [ + 1, + 30, + 123 + ], + [ + 1, + 30, + 823 + ], + [ + 1, + 40, + 123 + ], + [ + 1, + 40, + 456 + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_064.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_064.ppl new file mode 100644 index 000000000..9fec3144f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_064.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | rare request \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_064.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_064.results new file mode 100644 index 000000000..399b6d4fa --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_064.results @@ -0,0 +1,29 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count_request", + "type": "long" + }, + { + "name": "request", + "type": "string" + } + ], + "datarows": [ + [ + 1, + "GET /images/hm_nbg.jpg HTTP/1.0" + ], + [ + 1, + "GET /french/splash_inet.html HTTP/1.0" + ], + [ + 4, + "GET /images/hm_bg.jpg HTTP/1.0" + ] + ], + "total": 3, + "size": 3 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_065.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_065.ppl new file mode 100644 index 000000000..a3f8ce513 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_065.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where status > 300 | rare request by status \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_065.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_065.results new file mode 100644 index 000000000..ed40e1115 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_065.results @@ -0,0 +1,26 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count_request", + "type": "long" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + } + ], + "datarows": [ + [ + 1, + "GET /images/hm_nbg.jpg HTTP/1.0", + 304 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_066.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_066.ppl new file mode 100644 index 000000000..df88ce157 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_066.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | rare clientip \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_066.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_066.results new file mode 100644 index 000000000..c27935984 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_066.results @@ -0,0 +1,37 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count_clientip", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + } + ], + "datarows": [ + [ + 1, + "26.1.0.0" + ], + [ + 1, + "232.0.0.0" + ], + [ + 1, + "252.0.0.0" + ], + [ + 1, + "40.135.0.0" + ], + [ + 2, + "247.37.0.0" + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_067.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_067.ppl new file mode 100644 index 000000000..d80d1ba2a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_067.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where status > 300 | rare clientip \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_067.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_067.results new file mode 100644 index 000000000..80e6a948f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_067.results @@ -0,0 +1,21 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count_clientip", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + } + ], + "datarows": [ + [ + 1, + "247.37.0.0" + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_068.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_068.ppl new file mode 100644 index 000000000..c0cec1eb2 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_068.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where status > 300 | rare clientip by day \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_068.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_068.results new file mode 100644 index 000000000..018a0db19 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_068.results @@ -0,0 +1,26 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count_clientip", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "day", + "type": "long" + } + ], + "datarows": [ + [ + 1, + "247.37.0.0", + 1 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_069.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_069.ppl new file mode 100644 index 000000000..64639c9cc --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_069.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | top int_col by struct_col.field2 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_069.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_069.results new file mode 100644 index 000000000..e53ad215c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_069.results @@ -0,0 +1,46 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count_int_col", + "type": "long" + }, + { + "name": "int_col", + "type": "integer" + }, + { + "name": "struct_col.field2", + "type": "integer" + } + ], + "datarows": [ + [ + 1, + 50, + 789 + ], + [ + 1, + 30, + 123 + ], + [ + 1, + 30, + 823 + ], + [ + 1, + 40, + 123 + ], + [ + 1, + 40, + 456 + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_070.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_070.ppl new file mode 100644 index 000000000..9f9a3d2d5 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_070.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | top 1 int_col by struct_col.field2 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_070.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_070.results new file mode 100644 index 000000000..0e69ecc34 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_070.results @@ -0,0 +1,26 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count_int_col", + "type": "long" + }, + { + "name": "int_col", + "type": "integer" + }, + { + "name": "struct_col.field2", + "type": "integer" + } + ], + "datarows": [ + [ + 1, + 50, + 789 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_071.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_071.ppl new file mode 100644 index 000000000..885c8f678 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_071.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | top 2 int_col by struct_col.field2 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_071.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_071.results new file mode 100644 index 000000000..7705b6a47 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_071.results @@ -0,0 +1,31 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count_int_col", + "type": "long" + }, + { + "name": "int_col", + "type": "integer" + }, + { + "name": "struct_col.field2", + "type": "integer" + } + ], + "datarows": [ + [ + 1, + 50, + 789 + ], + [ + 1, + 30, + 123 + ] + ], + "total": 2, + "size": 2 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_072.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_072.ppl new file mode 100644 index 000000000..f05551e2e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_072.ppl @@ -0,0 +1 @@ +source = mys3.default.nested | top int_col \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_072.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_072.results new file mode 100644 index 000000000..dc9113d92 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_072.results @@ -0,0 +1,29 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count_int_col", + "type": "long" + }, + { + "name": "int_col", + "type": "integer" + } + ], + "datarows": [ + [ + 2, + 40 + ], + [ + 2, + 30 + ], + [ + 1, + 50 + ] + ], + "total": 3, + "size": 3 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_073.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_073.ppl new file mode 100644 index 000000000..73ad1fbc1 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_073.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | parse request 'GET /(?[a-zA-Z]+)/.*' | fields request, domain | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_073.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_073.results new file mode 100644 index 000000000..1c57af05e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_073.results @@ -0,0 +1,41 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "request", + "type": "string" + }, + { + "name": "domain", + "type": "string" + } + ], + "datarows": [ + [ + "GET /images/hm_bg.jpg HTTP/1.0", + "images" + ], + [ + "GET /images/hm_bg.jpg HTTP/1.0", + "images" + ], + [ + "GET /images/hm_bg.jpg HTTP/1.0", + "images" + ], + [ + "GET /french/splash_inet.html HTTP/1.0", + "french" + ], + [ + "GET /images/hm_nbg.jpg HTTP/1.0", + "images" + ], + [ + "GET /images/hm_bg.jpg HTTP/1.0", + "images" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_074.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_074.ppl new file mode 100644 index 000000000..845598b3e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_074.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | parse request 'GET /(?[a-zA-Z]+)/.*' | top 1 domain \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_074.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_074.results new file mode 100644 index 000000000..e8eba07b2 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_074.results @@ -0,0 +1,21 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count_domain", + "type": "long" + }, + { + "name": "domain", + "type": "string" + } + ], + "datarows": [ + [ + 5, + "images" + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_075.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_075.ppl new file mode 100644 index 000000000..a21e304f9 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_075.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | parse request 'GET /(?[a-zA-Z]+)/.*' | stats count() by domain \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_075.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_075.results new file mode 100644 index 000000000..730cc7281 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_075.results @@ -0,0 +1,25 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count()", + "type": "long" + }, + { + "name": "domain", + "type": "string" + } + ], + "datarows": [ + [ + 1, + "french" + ], + [ + 5, + "images" + ] + ], + "total": 2, + "size": 2 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_076.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_076.ppl new file mode 100644 index 000000000..4bdbc2b20 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_076.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | parse request 'GET /(?[a-zA-Z]+)/.*' | eval a = 1 | fields a, domain | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_076.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_076.results new file mode 100644 index 000000000..d25fa682b --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_076.results @@ -0,0 +1,41 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "a", + "type": "integer" + }, + { + "name": "domain", + "type": "string" + } + ], + "datarows": [ + [ + 1, + "images" + ], + [ + 1, + "images" + ], + [ + 1, + "images" + ], + [ + 1, + "french" + ], + [ + 1, + "images" + ], + [ + 1, + "images" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_077.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_077.ppl new file mode 100644 index 000000000..0a746a579 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_077.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | parse request 'GET /(?[a-zA-Z]+)/.*' | where size > 0 | sort - size | fields size, domain | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_077.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_077.results new file mode 100644 index 000000000..1953f65ec --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_077.results @@ -0,0 +1,37 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "size", + "type": "long" + }, + { + "name": "domain", + "type": "string" + } + ], + "datarows": [ + [ + 24736, + "images" + ], + [ + 24736, + "images" + ], + [ + 24736, + "images" + ], + [ + 24736, + "images" + ], + [ + 3781, + "french" + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_078.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_078.ppl new file mode 100644 index 000000000..5f134ec62 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_078.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | parse request 'GET /(?[a-zA-Z]+)/(?[a-zA-Z]+)/.*' | where domain = 'english' | sort - picName | fields domain, picName | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_078.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_078.results new file mode 100644 index 000000000..076876d83 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_078.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "domain", + "type": "string" + }, + { + "name": "picName", + "type": "string" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_079.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_079.ppl new file mode 100644 index 000000000..a587a4595 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_079.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | patterns request | fields patterns_field | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_079.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_079.results new file mode 100644 index 000000000..749fc10b0 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_079.results @@ -0,0 +1,31 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "patterns_field", + "type": "string" + } + ], + "datarows": [ + [ + " //_. /." + ], + [ + " //_. /." + ], + [ + " //_. /." + ], + [ + " //_. /." + ], + [ + " //_. /." + ], + [ + " //_. /." + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_080.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_080.ppl new file mode 100644 index 000000000..ee43035bb --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_080.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | patterns request | where size > 0 | fields patterns_field | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_080.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_080.results new file mode 100644 index 000000000..763a730b0 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_080.results @@ -0,0 +1,28 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "patterns_field", + "type": "string" + } + ], + "datarows": [ + [ + " //_. /." + ], + [ + " //_. /." + ], + [ + " //_. /." + ], + [ + " //_. /." + ], + [ + " //_. /." + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_081.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_081.ppl new file mode 100644 index 000000000..1cf32db27 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_081.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | patterns new_field='no_letter' pattern='[a-zA-Z]' request | fields request, no_letter | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_081.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_081.results new file mode 100644 index 000000000..06df51af1 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_081.results @@ -0,0 +1,41 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "request", + "type": "string" + }, + { + "name": "no_letter", + "type": "string" + } + ], + "datarows": [ + [ + "GET /images/hm_bg.jpg HTTP/1.0", + " //_. /1.0" + ], + [ + "GET /images/hm_bg.jpg HTTP/1.0", + " //_. /1.0" + ], + [ + "GET /images/hm_bg.jpg HTTP/1.0", + " //_. /1.0" + ], + [ + "GET /french/splash_inet.html HTTP/1.0", + " //_. /1.0" + ], + [ + "GET /images/hm_nbg.jpg HTTP/1.0", + " //_. /1.0" + ], + [ + "GET /images/hm_bg.jpg HTTP/1.0", + " //_. /1.0" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_082.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_082.ppl new file mode 100644 index 000000000..fbdde411d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_082.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | patterns new_field='no_letter' pattern='[a-zA-Z]' request | stats count() by no_letter \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_082.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_082.results new file mode 100644 index 000000000..352c50630 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_082.results @@ -0,0 +1,21 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count()", + "type": "long" + }, + { + "name": "no_letter", + "type": "string" + } + ], + "datarows": [ + [ + 6, + " //_. /1.0" + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_083.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_083.ppl new file mode 100644 index 000000000..0ccf1bffa --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_083.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | rename @timestamp as timestamp | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_083.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_083.results new file mode 100644 index 000000000..3b00c143a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_083.results @@ -0,0 +1,101 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + }, + { + "name": "timestamp", + "type": "timestamp_ntz" + } + ], + "datarows": [ + [ + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "2023-10-01T10:00:00.000" + ], + [ + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "2023-10-01T10:05:00.000" + ], + [ + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "2023-10-01T10:10:00.000" + ], + [ + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781, + "2023-10-01T10:15:00.000" + ], + [ + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0, + "2023-10-01T10:20:00.000" + ], + [ + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736, + "2023-10-01T10:25:00.000" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_084.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_084.ppl new file mode 100644 index 000000000..4825375a7 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_084.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | sort size | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_084.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_084.results new file mode 100644 index 000000000..7f10c68e4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_084.results @@ -0,0 +1,101 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_085.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_085.ppl new file mode 100644 index 000000000..aed9172bc --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_085.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | sort + size | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_085.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_085.results new file mode 100644 index 000000000..7f10c68e4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_085.results @@ -0,0 +1,101 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_086.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_086.ppl new file mode 100644 index 000000000..aa920dbe6 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_086.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | sort - size | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_086.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_086.results new file mode 100644 index 000000000..63c0f1b61 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_086.results @@ -0,0 +1,101 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_087.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_087.ppl new file mode 100644 index 000000000..56292fb8f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_087.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | sort + size, + @timestamp | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_087.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_087.results new file mode 100644 index 000000000..7f10c68e4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_087.results @@ -0,0 +1,101 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_088.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_088.ppl new file mode 100644 index 000000000..59dbced8c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_088.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | sort - size, - @timestamp | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_088.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_088.results new file mode 100644 index 000000000..59a3e6d17 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_088.results @@ -0,0 +1,101 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_089.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_089.ppl new file mode 100644 index 000000000..46763c08b --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_089.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | sort - size, @timestamp | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_089.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_089.results new file mode 100644 index 000000000..63c0f1b61 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_089.results @@ -0,0 +1,101 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "year", + "type": "long" + }, + { + "name": "month", + "type": "long" + }, + { + "name": "day", + "type": "long" + }, + { + "name": "clientip", + "type": "string" + }, + { + "name": "request", + "type": "string" + }, + { + "name": "status", + "type": "long" + }, + { + "name": "size", + "type": "long" + } + ], + "datarows": [ + [ + "2023-10-01T10:00:00.000", + 2023, + 10, + 1, + "40.135.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:05:00.000", + 2023, + 10, + 1, + "232.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:10:00.000", + 2023, + 10, + 1, + "26.1.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:25:00.000", + 2023, + 10, + 1, + "252.0.0.0", + "GET /images/hm_bg.jpg HTTP/1.0", + 200, + 24736 + ], + [ + "2023-10-01T10:15:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /french/splash_inet.html HTTP/1.0", + 200, + 3781 + ], + [ + "2023-10-01T10:20:00.000", + 2023, + 10, + 1, + "247.37.0.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + 304, + 0 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_090.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_090.ppl new file mode 100644 index 000000000..38055441e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_090.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval c1 = upper(request) | eval c2 = concat('Hello ', if(like(c1, '%bordeaux%'), 'World', clientip)) | eval c3 = length(request) | eval c4 = ltrim(request) | eval c5 = rtrim(request) | eval c6 = substring(clientip, 5, 2) | eval c7 = trim(request) | eval c8 = upper(request) | eval c9 = position('bordeaux' IN request) | eval c10 = replace(request, 'GET', 'GGG') | fields c1, c2, c3, c4, c5, c6, c7, c8, c9, c10 | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_090.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_090.results new file mode 100644 index 000000000..513f5c888 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_090.results @@ -0,0 +1,121 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "c1", + "type": "string" + }, + { + "name": "c2", + "type": "string" + }, + { + "name": "c3", + "type": "integer" + }, + { + "name": "c4", + "type": "string" + }, + { + "name": "c5", + "type": "string" + }, + { + "name": "c6", + "type": "string" + }, + { + "name": "c7", + "type": "string" + }, + { + "name": "c8", + "type": "string" + }, + { + "name": "c9", + "type": "integer" + }, + { + "name": "c10", + "type": "string" + } + ], + "datarows": [ + [ + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + "Hello 40.135.0.0", + 30, + "GET /images/hm_bg.jpg HTTP/1.0", + "GET /images/hm_bg.jpg HTTP/1.0", + "35", + "GET /images/hm_bg.jpg HTTP/1.0", + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + 0, + "GGG /images/hm_bg.jpg HTTP/1.0" + ], + [ + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + "Hello 232.0.0.0", + 30, + "GET /images/hm_bg.jpg HTTP/1.0", + "GET /images/hm_bg.jpg HTTP/1.0", + "0.", + "GET /images/hm_bg.jpg HTTP/1.0", + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + 0, + "GGG /images/hm_bg.jpg HTTP/1.0" + ], + [ + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + "Hello 26.1.0.0", + 30, + "GET /images/hm_bg.jpg HTTP/1.0", + "GET /images/hm_bg.jpg HTTP/1.0", + ".0", + "GET /images/hm_bg.jpg HTTP/1.0", + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + 0, + "GGG /images/hm_bg.jpg HTTP/1.0" + ], + [ + "GET /FRENCH/SPLASH_INET.HTML HTTP/1.0", + "Hello 247.37.0.0", + 37, + "GET /french/splash_inet.html HTTP/1.0", + "GET /french/splash_inet.html HTTP/1.0", + "37", + "GET /french/splash_inet.html HTTP/1.0", + "GET /FRENCH/SPLASH_INET.HTML HTTP/1.0", + 0, + "GGG /french/splash_inet.html HTTP/1.0" + ], + [ + "GET /IMAGES/HM_NBG.JPG HTTP/1.0", + "Hello 247.37.0.0", + 31, + "GET /images/hm_nbg.jpg HTTP/1.0", + "GET /images/hm_nbg.jpg HTTP/1.0", + "37", + "GET /images/hm_nbg.jpg HTTP/1.0", + "GET /IMAGES/HM_NBG.JPG HTTP/1.0", + 0, + "GGG /images/hm_nbg.jpg HTTP/1.0" + ], + [ + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + "Hello 252.0.0.0", + 30, + "GET /images/hm_bg.jpg HTTP/1.0", + "GET /images/hm_bg.jpg HTTP/1.0", + "0.", + "GET /images/hm_bg.jpg HTTP/1.0", + "GET /IMAGES/HM_BG.JPG HTTP/1.0", + 0, + "GGG /images/hm_bg.jpg HTTP/1.0" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_091.ppl.3298 b/e2e-test/src/test/resources/opensearch/queries/ppl/query_091.ppl.3298 new file mode 100644 index 000000000..c1c0be339 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_091.ppl.3298 @@ -0,0 +1 @@ +source=mys3.default.people | eval c1 = adddate(@timestamp, 1) | fields c1 | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_091.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_091.results new file mode 100644 index 000000000..64429942b --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_091.results @@ -0,0 +1,8 @@ +{ + "status": 500, + "error": { + "type": "SemanticCheckException", + "reason": "There was internal problem at backend", + "details": "timestamp:2024-06-16 in unsupported format, please use \u0027yyyy-MM-dd HH:mm:ss[.SSSSSSSSS]\u0027" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_092.ppl.3298 b/e2e-test/src/test/resources/opensearch/queries/ppl/query_092.ppl.3298 new file mode 100644 index 000000000..624708a86 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_092.ppl.3298 @@ -0,0 +1 @@ +source=mys3.default.people | eval c2 = subdate(@timestamp, 1) | fields c2 | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_092.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_092.results new file mode 100644 index 000000000..6a3e29962 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_092.results @@ -0,0 +1,8 @@ +{ + "status": 500, + "error": { + "type": "SemanticCheckException", + "reason": "There was internal problem at backend", + "details": "timestamp:2024-06-14 in unsupported format, please use \u0027yyyy-MM-dd HH:mm:ss[.SSSSSSSSS]\u0027" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_093.ppl.3298 b/e2e-test/src/test/resources/opensearch/queries/ppl/query_093.ppl.3298 new file mode 100644 index 000000000..0ab190380 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_093.ppl.3298 @@ -0,0 +1 @@ +source=mys3.default.people | eval `DATE(2020-08-26)` = DATE('2020-08-26') | fields `DATE(2020-08-26)` \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_093.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_093.results new file mode 100644 index 000000000..05dc8c537 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_093.results @@ -0,0 +1,8 @@ +{ + "status": 500, + "error": { + "type": "JSONException", + "reason": "There was internal problem at backend", + "details": "Expected a \u0027,\u0027 or \u0027}\u0027 at 23 [character 24 line 1]" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_094.ppl.3298 b/e2e-test/src/test/resources/opensearch/queries/ppl/query_094.ppl.3298 new file mode 100644 index 000000000..2c974f103 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_094.ppl.3298 @@ -0,0 +1 @@ +source=mys3.default.people | eval `DATE(TIMESTAMP(2020-08-26 13:49:00))` = DATE(TIMESTAMP('2020-08-26 13:49:00')) | fields `DATE(TIMESTAMP(2020-08-26 13:49:00))` \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_094.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_094.results new file mode 100644 index 000000000..d5a8a9029 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_094.results @@ -0,0 +1,8 @@ +{ + "status": 500, + "error": { + "type": "JSONException", + "reason": "There was internal problem at backend", + "details": "Expected a \u0027,\u0027 or \u0027}\u0027 at 33 [character 34 line 1]" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_095.ppl.3298 b/e2e-test/src/test/resources/opensearch/queries/ppl/query_095.ppl.3298 new file mode 100644 index 000000000..1eff723ee --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_095.ppl.3298 @@ -0,0 +1 @@ +source=mys3.default.people | eval `DATE(2020-08-26 13:49)` = DATE('2020-08-26 13:49') | fields `DATE(2020-08-26 13:49)` \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_095.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_095.results new file mode 100644 index 000000000..05dc8c537 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_095.results @@ -0,0 +1,8 @@ +{ + "status": 500, + "error": { + "type": "JSONException", + "reason": "There was internal problem at backend", + "details": "Expected a \u0027,\u0027 or \u0027}\u0027 at 23 [character 24 line 1]" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_096.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_096.ppl new file mode 100644 index 000000000..8475acb65 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_096.ppl @@ -0,0 +1 @@ +source=mys3.default.people | eval `DATE_FORMAT(1998-01-31 13:14:15.012345, HH:mm:ss.SSSSSS)` = DATE_FORMAT('1998-01-31 13:14:15.012345', 'HH:mm:ss.SSSSSS'), `DATE_FORMAT(TIMESTAMP(1998-01-31 13:14:15.012345), yyyy-MMM-dd hh:mm:ss a)` = DATE_FORMAT(TIMESTAMP('1998-01-31 13:14:15.012345'), 'yyyy-MMM-dd hh:mm:ss a') | fields `DATE_FORMAT(1998-01-31 13:14:15.012345, HH:mm:ss.SSSSSS)`, `DATE_FORMAT(TIMESTAMP(1998-01-31 13:14:15.012345), yyyy-MMM-dd hh:mm:ss a)` \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_096.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_096.results new file mode 100644 index 000000000..58a589c8b --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_096.results @@ -0,0 +1,41 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "DATE_FORMAT(1998-01-31 13:14:15.012345, HH:mm:ss.SSSSSS)", + "type": "string" + }, + { + "name": "DATE_FORMAT(TIMESTAMP(1998-01-31 13:14:15.012345), yyyy-MMM-dd hh:mm:ss a)", + "type": "string" + } + ], + "datarows": [ + [ + "13:14:15.012345", + "1998-Jan-31 01:14:15 PM" + ], + [ + "13:14:15.012345", + "1998-Jan-31 01:14:15 PM" + ], + [ + "13:14:15.012345", + "1998-Jan-31 01:14:15 PM" + ], + [ + "13:14:15.012345", + "1998-Jan-31 01:14:15 PM" + ], + [ + "13:14:15.012345", + "1998-Jan-31 01:14:15 PM" + ], + [ + "13:14:15.012345", + "1998-Jan-31 01:14:15 PM" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_097.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_097.ppl new file mode 100644 index 000000000..23d4c2441 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_097.ppl @@ -0,0 +1 @@ +source=mys3.default.people | eval `2000-01-02 - 2000-01-01` = DATEDIFF(TIMESTAMP('2000-01-02 00:00:00'), TIMESTAMP('2000-01-01 23:59:59')), `2001-02-01 - 2004-01-01` = DATEDIFF(DATE('2001-02-01'), TIMESTAMP('2004-01-01 00:00:00')) | fields `2000-01-02 - 2000-01-01`, `2001-02-01 - 2004-01-01` \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_097.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_097.results new file mode 100644 index 000000000..bce45dbee --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_097.results @@ -0,0 +1,41 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "2000-01-02 - 2000-01-01", + "type": "integer" + }, + { + "name": "2001-02-01 - 2004-01-01", + "type": "integer" + } + ], + "datarows": [ + [ + 1, + -1064 + ], + [ + 1, + -1064 + ], + [ + 1, + -1064 + ], + [ + 1, + -1064 + ], + [ + 1, + -1064 + ], + [ + 1, + -1064 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_098.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_098.ppl new file mode 100644 index 000000000..3ecd0cdbb --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_098.ppl @@ -0,0 +1 @@ +source=mys3.default.people | eval `DAY(DATE(2020-08-26))` = DAY(DATE('2020-08-26')) | fields `DAY(DATE(2020-08-26))` \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_098.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_098.results new file mode 100644 index 000000000..9b057af0e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_098.results @@ -0,0 +1,31 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "DAY(DATE(2020-08-26))", + "type": "integer" + } + ], + "datarows": [ + [ + 26 + ], + [ + 26 + ], + [ + 26 + ], + [ + 26 + ], + [ + 26 + ], + [ + 26 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_099.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_099.ppl new file mode 100644 index 000000000..b8def6dea --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_099.ppl @@ -0,0 +1 @@ +source=mys3.default.people | eval `CURRENT_TIMEZONE()` = CURRENT_TIMEZONE() | fields `CURRENT_TIMEZONE()` \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_099.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_099.results new file mode 100644 index 000000000..3113a848e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_099.results @@ -0,0 +1,31 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "CURRENT_TIMEZONE()", + "type": "string" + } + ], + "datarows": [ + [ + "Etc/UTC" + ], + [ + "Etc/UTC" + ], + [ + "Etc/UTC" + ], + [ + "Etc/UTC" + ], + [ + "Etc/UTC" + ], + [ + "Etc/UTC" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_100.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_100.ppl new file mode 100644 index 000000000..00d1e5398 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_100.ppl @@ -0,0 +1 @@ +source=mys3.default.people | eval `TIMESTAMPDIFF(YEAR, 1997-01-01 00:00:00, 2001-03-06 00:00:00)` = TIMESTAMPDIFF(YEAR, '1997-01-01 00:00:00', '2001-03-06 00:00:00') | eval `TIMESTAMPDIFF(SECOND, timestamp(1997-01-01 00:00:23), timestamp(1997-01-01 00:00:00))` = TIMESTAMPDIFF(SECOND, timestamp('1997-01-01 00:00:23'), timestamp('1997-01-01 00:00:00')) | fields `TIMESTAMPDIFF(YEAR, 1997-01-01 00:00:00, 2001-03-06 00:00:00)`, `TIMESTAMPDIFF(SECOND, timestamp(1997-01-01 00:00:23), timestamp(1997-01-01 00:00:00))` \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_100.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_100.results new file mode 100644 index 000000000..12f2ac6d9 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_100.results @@ -0,0 +1,41 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "TIMESTAMPDIFF(YEAR, 1997-01-01 00:00:00, 2001-03-06 00:00:00)", + "type": "long" + }, + { + "name": "TIMESTAMPDIFF(SECOND, timestamp(1997-01-01 00:00:23), timestamp(1997-01-01 00:00:00))", + "type": "long" + } + ], + "datarows": [ + [ + 4, + -23 + ], + [ + 4, + -23 + ], + [ + 4, + -23 + ], + [ + 4, + -23 + ], + [ + 4, + -23 + ], + [ + 4, + -23 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_101.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_101.ppl new file mode 100644 index 000000000..a668ab0c4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_101.ppl @@ -0,0 +1 @@ +source=mys3.default.people | eval `TIMESTAMPADD(DAY, 17, 2000-01-01 00:00:00)` = TIMESTAMPADD(DAY, 17, '2000-01-01 00:00:00') | eval `TIMESTAMPADD(QUARTER, -1, 2000-01-01 00:00:00)` = TIMESTAMPADD(QUARTER, -1, '2000-01-01 00:00:00') | fields `TIMESTAMPADD(DAY, 17, 2000-01-01 00:00:00)`, `TIMESTAMPADD(QUARTER, -1, 2000-01-01 00:00:00)` \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_101.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_101.results new file mode 100644 index 000000000..6965a6a9f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_101.results @@ -0,0 +1,41 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "TIMESTAMPADD(DAY, 17, 2000-01-01 00:00:00)", + "type": "date" + }, + { + "name": "TIMESTAMPADD(QUARTER, -1, 2000-01-01 00:00:00)", + "type": "date" + } + ], + "datarows": [ + [ + "2000-01-18T00:00:00.000Z", + "1999-10-01T00:00:00.000Z" + ], + [ + "2000-01-18T00:00:00.000Z", + "1999-10-01T00:00:00.000Z" + ], + [ + "2000-01-18T00:00:00.000Z", + "1999-10-01T00:00:00.000Z" + ], + [ + "2000-01-18T00:00:00.000Z", + "1999-10-01T00:00:00.000Z" + ], + [ + "2000-01-18T00:00:00.000Z", + "1999-10-01T00:00:00.000Z" + ], + [ + "2000-01-18T00:00:00.000Z", + "1999-10-01T00:00:00.000Z" + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_102.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_102.ppl new file mode 100644 index 000000000..f1e08a1b6 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_102.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | stats count() \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_102.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_102.results new file mode 100644 index 000000000..5efa0897a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_102.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "count()", + "type": "long" + } + ], + "datarows": [ + [ + 6 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_103.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_103.ppl new file mode 100644 index 000000000..9658e6829 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_103.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | stats avg(size) as c1, max(size) as c2, min(size) as c3, sum(size) as c4, percentile(size, 50) as c5, stddev_pop(size) as c6, stddev_samp(size) as c7, distinct_count(size) as c8 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_103.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_103.results new file mode 100644 index 000000000..8aab0625c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_103.results @@ -0,0 +1,51 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "c1", + "type": "double" + }, + { + "name": "c2", + "type": "long" + }, + { + "name": "c3", + "type": "long" + }, + { + "name": "c4", + "type": "long" + }, + { + "name": "c5", + "type": "double" + }, + { + "name": "c6", + "type": "double" + }, + { + "name": "c7", + "type": "double" + }, + { + "name": "c8", + "type": "long" + } + ], + "datarows": [ + [ + 17120.833333333332, + 24736, + 0, + 102725, + 24736.0, + 10824.641185995753, + 11857.800308938698, + 3 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_104.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_104.ppl new file mode 100644 index 000000000..6100fe6da --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_104.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval c1 = abs(size) | eval c2 = ceil(size) | eval c3 = floor(size) | eval c4 = sqrt(size) | eval c5 = ln(size) | eval c6 = pow(size, 2) | eval c7 = mod(size, 2) | fields c1, c2, c3, c4, c5, c6, c7 | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_104.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_104.results new file mode 100644 index 000000000..0e091d369 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_104.results @@ -0,0 +1,91 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "c1", + "type": "long" + }, + { + "name": "c2", + "type": "long" + }, + { + "name": "c3", + "type": "long" + }, + { + "name": "c4", + "type": "double" + }, + { + "name": "c5", + "type": "double" + }, + { + "name": "c6", + "type": "double" + }, + { + "name": "c7", + "type": "long" + } + ], + "datarows": [ + [ + 24736, + 24736, + 24736, + 157.2768260107, + 10.116014951387148, + 6.11869696E8, + 0 + ], + [ + 24736, + 24736, + 24736, + 157.2768260107, + 10.116014951387148, + 6.11869696E8, + 0 + ], + [ + 24736, + 24736, + 24736, + 157.2768260107, + 10.116014951387148, + 6.11869696E8, + 0 + ], + [ + 3781, + 3781, + 3781, + 61.48983655857283, + 8.237743803890933, + 1.4295961E7, + 1 + ], + [ + 0, + 0, + 0, + 0.0, + null, + 0.0, + 0 + ], + [ + 24736, + 24736, + 24736, + 157.2768260107, + 10.116014951387148, + 6.11869696E8, + 0 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_105.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_105.ppl new file mode 100644 index 000000000..79b3580bc --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_105.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval c1 = isnull(request) | eval c2 = isnotnull(request) | eval c3 = ifnull(request,"Unknown") | eval c4 = nullif(request,"Unknown") | eval c5 = isnull(size) | eval c6 = if(like(request, '%bordeaux%'), 'hello', 'world') | fields c1, c2, c3, c4, c5, c6 | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_105.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_105.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_105.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_106.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_106.ppl new file mode 100644 index 000000000..bd1421a6d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_106.ppl @@ -0,0 +1 @@ +/* this is block comment */ source = mys3.default.orders | head 1 // this is line comment \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_106.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_106.results new file mode 100644 index 000000000..3bcab6671 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_106.results @@ -0,0 +1,56 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "o_orderkey", + "type": "long" + }, + { + "name": "o_custkey", + "type": "long" + }, + { + "name": "o_orderstatus", + "type": "string" + }, + { + "name": "o_totalprice", + "type": "double" + }, + { + "name": "o_orderdate", + "type": "timestamp_ntz" + }, + { + "name": "o_orderpriority", + "type": "string" + }, + { + "name": "o_clerk", + "type": "string" + }, + { + "name": "o_shippriority", + "type": "string" + }, + { + "name": "o_comment", + "type": "string" + } + ], + "datarows": [ + [ + 1, + 37, + "O", + 131251.81, + "1996-01-02T00:00:00.000", + "5-LOW", + "Clerk#000000951", + "0", + "nstructions sleep furiously among " + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_107.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_107.ppl new file mode 100644 index 000000000..d92679a13 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_107.ppl @@ -0,0 +1 @@ +/* test in tpch q16, q18, q20 */ source = mys3.default.orders | head 1 // add source=xx to avoid failure in automation \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_107.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_107.results new file mode 100644 index 000000000..3bcab6671 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_107.results @@ -0,0 +1,56 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "o_orderkey", + "type": "long" + }, + { + "name": "o_custkey", + "type": "long" + }, + { + "name": "o_orderstatus", + "type": "string" + }, + { + "name": "o_totalprice", + "type": "double" + }, + { + "name": "o_orderdate", + "type": "timestamp_ntz" + }, + { + "name": "o_orderpriority", + "type": "string" + }, + { + "name": "o_clerk", + "type": "string" + }, + { + "name": "o_shippriority", + "type": "string" + }, + { + "name": "o_comment", + "type": "string" + } + ], + "datarows": [ + [ + 1, + 37, + "O", + 131251.81, + "1996-01-02T00:00:00.000", + "5-LOW", + "Clerk#000000951", + "0", + "nstructions sleep furiously among " + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_108.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_108.ppl new file mode 100644 index 000000000..33e1c9199 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_108.ppl @@ -0,0 +1 @@ +/* test in tpch q4, q21, q22 */ source = mys3.default.orders | head 1 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_108.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_108.results new file mode 100644 index 000000000..3bcab6671 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_108.results @@ -0,0 +1,56 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "o_orderkey", + "type": "long" + }, + { + "name": "o_custkey", + "type": "long" + }, + { + "name": "o_orderstatus", + "type": "string" + }, + { + "name": "o_totalprice", + "type": "double" + }, + { + "name": "o_orderdate", + "type": "timestamp_ntz" + }, + { + "name": "o_orderpriority", + "type": "string" + }, + { + "name": "o_clerk", + "type": "string" + }, + { + "name": "o_shippriority", + "type": "string" + }, + { + "name": "o_comment", + "type": "string" + } + ], + "datarows": [ + [ + 1, + 37, + "O", + 131251.81, + "1996-01-02T00:00:00.000", + "5-LOW", + "Clerk#000000951", + "0", + "nstructions sleep furiously among " + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_109.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_109.ppl new file mode 100644 index 000000000..02b571552 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_109.ppl @@ -0,0 +1 @@ +/* test in tpch q2, q11, q15, q17, q20, q22 */ source = mys3.default.orders | head 1 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_109.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_109.results new file mode 100644 index 000000000..3bcab6671 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_109.results @@ -0,0 +1,56 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "o_orderkey", + "type": "long" + }, + { + "name": "o_custkey", + "type": "long" + }, + { + "name": "o_orderstatus", + "type": "string" + }, + { + "name": "o_totalprice", + "type": "double" + }, + { + "name": "o_orderdate", + "type": "timestamp_ntz" + }, + { + "name": "o_orderpriority", + "type": "string" + }, + { + "name": "o_clerk", + "type": "string" + }, + { + "name": "o_shippriority", + "type": "string" + }, + { + "name": "o_comment", + "type": "string" + } + ], + "datarows": [ + [ + 1, + 37, + "O", + 131251.81, + "1996-01-02T00:00:00.000", + "5-LOW", + "Clerk#000000951", + "0", + "nstructions sleep furiously among " + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_110.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_110.ppl new file mode 100644 index 000000000..326387d96 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_110.ppl @@ -0,0 +1 @@ +/* test in tpch q7, q8, q9, q13, q15, q22 */ source = mys3.default.orders | head 1 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_110.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_110.results new file mode 100644 index 000000000..3bcab6671 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_110.results @@ -0,0 +1,56 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "o_orderkey", + "type": "long" + }, + { + "name": "o_custkey", + "type": "long" + }, + { + "name": "o_orderstatus", + "type": "string" + }, + { + "name": "o_totalprice", + "type": "double" + }, + { + "name": "o_orderdate", + "type": "timestamp_ntz" + }, + { + "name": "o_orderpriority", + "type": "string" + }, + { + "name": "o_clerk", + "type": "string" + }, + { + "name": "o_shippriority", + "type": "string" + }, + { + "name": "o_comment", + "type": "string" + } + ], + "datarows": [ + [ + 1, + 37, + "O", + 131251.81, + "1996-01-02T00:00:00.000", + "5-LOW", + "Clerk#000000951", + "0", + "nstructions sleep furiously among " + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_111.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_111.ppl new file mode 100644 index 000000000..097001dfe --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_111.ppl @@ -0,0 +1 @@ +/* lots of inner join tests in tpch */ source = mys3.default.orders | head 1 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_111.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_111.results new file mode 100644 index 000000000..3bcab6671 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_111.results @@ -0,0 +1,56 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "o_orderkey", + "type": "long" + }, + { + "name": "o_custkey", + "type": "long" + }, + { + "name": "o_orderstatus", + "type": "string" + }, + { + "name": "o_totalprice", + "type": "double" + }, + { + "name": "o_orderdate", + "type": "timestamp_ntz" + }, + { + "name": "o_orderpriority", + "type": "string" + }, + { + "name": "o_clerk", + "type": "string" + }, + { + "name": "o_shippriority", + "type": "string" + }, + { + "name": "o_comment", + "type": "string" + } + ], + "datarows": [ + [ + 1, + 37, + "O", + 131251.81, + "1996-01-02T00:00:00.000", + "5-LOW", + "Clerk#000000951", + "0", + "nstructions sleep furiously among " + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_112.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_112.ppl new file mode 100644 index 000000000..5212d8f0b --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_112.ppl @@ -0,0 +1 @@ +/* left join test in tpch q13 */ source = mys3.default.orders | head 1 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_112.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_112.results new file mode 100644 index 000000000..3bcab6671 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_112.results @@ -0,0 +1,56 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "o_orderkey", + "type": "long" + }, + { + "name": "o_custkey", + "type": "long" + }, + { + "name": "o_orderstatus", + "type": "string" + }, + { + "name": "o_totalprice", + "type": "double" + }, + { + "name": "o_orderdate", + "type": "timestamp_ntz" + }, + { + "name": "o_orderpriority", + "type": "string" + }, + { + "name": "o_clerk", + "type": "string" + }, + { + "name": "o_shippriority", + "type": "string" + }, + { + "name": "o_comment", + "type": "string" + } + ], + "datarows": [ + [ + 1, + 37, + "O", + 131251.81, + "1996-01-02T00:00:00.000", + "5-LOW", + "Clerk#000000951", + "0", + "nstructions sleep furiously among " + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_113.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_113.ppl new file mode 100644 index 000000000..d8e623351 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_113.ppl @@ -0,0 +1,5 @@ +source = mys3.default.orders + | right outer join ON c_custkey = o_custkey AND not like(o_comment, '%special%requests%') + mys3.default.customer +| stats count(o_orderkey) as c_count by c_custkey +| sort - c_count \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_113.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_113.results new file mode 100644 index 000000000..8ca5a702f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_113.results @@ -0,0 +1,617 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "c_count", + "type": "long" + }, + { + "name": "c_custkey", + "type": "long" + } + ], + "datarows": [ + [ + 29, + 49 + ], + [ + 29, + 70 + ], + [ + 28, + 149 + ], + [ + 26, + 94 + ], + [ + 26, + 118 + ], + [ + 26, + 148 + ], + [ + 25, + 37 + ], + [ + 24, + 103 + ], + [ + 24, + 139 + ], + [ + 23, + 79 + ], + [ + 23, + 10 + ], + [ + 23, + 106 + ], + [ + 23, + 142 + ], + [ + 23, + 64 + ], + [ + 22, + 4 + ], + [ + 22, + 121 + ], + [ + 22, + 109 + ], + [ + 21, + 31 + ], + [ + 21, + 25 + ], + [ + 21, + 61 + ], + [ + 21, + 40 + ], + [ + 20, + 43 + ], + [ + 20, + 52 + ], + [ + 20, + 28 + ], + [ + 20, + 76 + ], + [ + 20, + 46 + ], + [ + 20, + 91 + ], + [ + 19, + 44 + ], + [ + 19, + 133 + ], + [ + 18, + 19 + ], + [ + 18, + 112 + ], + [ + 18, + 7 + ], + [ + 18, + 97 + ], + [ + 17, + 34 + ], + [ + 17, + 136 + ], + [ + 17, + 145 + ], + [ + 17, + 124 + ], + [ + 17, + 100 + ], + [ + 17, + 13 + ], + [ + 17, + 73 + ], + [ + 16, + 22 + ], + [ + 16, + 130 + ], + [ + 16, + 104 + ], + [ + 16, + 85 + ], + [ + 16, + 127 + ], + [ + 16, + 55 + ], + [ + 16, + 16 + ], + [ + 16, + 53 + ], + [ + 15, + 32 + ], + [ + 15, + 80 + ], + [ + 14, + 29 + ], + [ + 14, + 65 + ], + [ + 14, + 58 + ], + [ + 14, + 67 + ], + [ + 14, + 82 + ], + [ + 13, + 95 + ], + [ + 13, + 56 + ], + [ + 13, + 88 + ], + [ + 13, + 8 + ], + [ + 13, + 134 + ], + [ + 13, + 125 + ], + [ + 12, + 143 + ], + [ + 12, + 17 + ], + [ + 12, + 115 + ], + [ + 12, + 89 + ], + [ + 12, + 101 + ], + [ + 12, + 122 + ], + [ + 11, + 41 + ], + [ + 11, + 74 + ], + [ + 11, + 35 + ], + [ + 11, + 23 + ], + [ + 10, + 26 + ], + [ + 10, + 116 + ], + [ + 10, + 92 + ], + [ + 10, + 14 + ], + [ + 10, + 47 + ], + [ + 9, + 50 + ], + [ + 9, + 5 + ], + [ + 9, + 128 + ], + [ + 9, + 131 + ], + [ + 9, + 2 + ], + [ + 9, + 140 + ], + [ + 8, + 113 + ], + [ + 8, + 119 + ], + [ + 8, + 83 + ], + [ + 8, + 62 + ], + [ + 7, + 77 + ], + [ + 7, + 98 + ], + [ + 7, + 146 + ], + [ + 7, + 137 + ], + [ + 6, + 71 + ], + [ + 6, + 11 + ], + [ + 6, + 59 + ], + [ + 5, + 110 + ], + [ + 5, + 1 + ], + [ + 5, + 38 + ], + [ + 4, + 68 + ], + [ + 4, + 107 + ], + [ + 4, + 20 + ], + [ + 3, + 86 + ], + [ + 0, + 54 + ], + [ + 0, + 126 + ], + [ + 0, + 57 + ], + [ + 0, + 144 + ], + [ + 0, + 84 + ], + [ + 0, + 39 + ], + [ + 0, + 6 + ], + [ + 0, + 72 + ], + [ + 0, + 87 + ], + [ + 0, + 9 + ], + [ + 0, + 27 + ], + [ + 0, + 63 + ], + [ + 0, + 51 + ], + [ + 0, + 150 + ], + [ + 0, + 33 + ], + [ + 0, + 138 + ], + [ + 0, + 114 + ], + [ + 0, + 96 + ], + [ + 0, + 120 + ], + [ + 0, + 111 + ], + [ + 0, + 48 + ], + [ + 0, + 105 + ], + [ + 0, + 108 + ], + [ + 0, + 132 + ], + [ + 0, + 123 + ], + [ + 0, + 3 + ], + [ + 0, + 12 + ], + [ + 0, + 141 + ], + [ + 0, + 66 + ], + [ + 0, + 102 + ], + [ + 0, + 36 + ], + [ + 0, + 75 + ], + [ + 0, + 78 + ], + [ + 0, + 18 + ], + [ + 0, + 69 + ], + [ + 0, + 21 + ], + [ + 0, + 135 + ], + [ + 0, + 129 + ], + [ + 0, + 15 + ], + [ + 0, + 81 + ], + [ + 0, + 30 + ], + [ + 0, + 42 + ], + [ + 0, + 90 + ], + [ + 0, + 117 + ], + [ + 0, + 99 + ], + [ + 0, + 60 + ], + [ + 0, + 93 + ], + [ + 0, + 147 + ], + [ + 0, + 45 + ], + [ + 0, + 24 + ] + ], + "total": 150, + "size": 150 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_114.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_114.ppl new file mode 100644 index 000000000..63ebcd7d2 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_114.ppl @@ -0,0 +1,5 @@ +source = mys3.default.orders + | full outer join ON c_custkey = o_custkey AND not like(o_comment, '%special%requests%') + mys3.default.customer +| stats count(o_orderkey) as c_count by c_custkey +| sort - c_count \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_114.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_114.results new file mode 100644 index 000000000..799fa8e5d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_114.results @@ -0,0 +1,621 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "c_count", + "type": "long" + }, + { + "name": "c_custkey", + "type": "long" + } + ], + "datarows": [ + [ + 29, + 49 + ], + [ + 29, + 70 + ], + [ + 28, + 149 + ], + [ + 26, + 94 + ], + [ + 26, + 118 + ], + [ + 26, + 148 + ], + [ + 25, + 37 + ], + [ + 24, + 103 + ], + [ + 24, + 139 + ], + [ + 23, + 79 + ], + [ + 23, + 10 + ], + [ + 23, + 106 + ], + [ + 23, + 142 + ], + [ + 23, + 64 + ], + [ + 22, + 4 + ], + [ + 22, + 121 + ], + [ + 22, + 109 + ], + [ + 21, + 31 + ], + [ + 21, + 25 + ], + [ + 21, + 61 + ], + [ + 21, + 40 + ], + [ + 20, + 43 + ], + [ + 20, + 52 + ], + [ + 20, + 28 + ], + [ + 20, + 76 + ], + [ + 20, + 46 + ], + [ + 20, + 91 + ], + [ + 19, + 44 + ], + [ + 19, + 133 + ], + [ + 18, + 19 + ], + [ + 18, + 112 + ], + [ + 18, + 7 + ], + [ + 18, + 97 + ], + [ + 17, + 34 + ], + [ + 17, + 136 + ], + [ + 17, + 145 + ], + [ + 17, + 124 + ], + [ + 17, + 100 + ], + [ + 17, + 13 + ], + [ + 17, + 73 + ], + [ + 16, + 22 + ], + [ + 16, + 130 + ], + [ + 16, + 104 + ], + [ + 16, + 85 + ], + [ + 16, + 127 + ], + [ + 16, + 55 + ], + [ + 16, + 16 + ], + [ + 16, + 53 + ], + [ + 15, + 32 + ], + [ + 15, + null + ], + [ + 15, + 80 + ], + [ + 14, + 29 + ], + [ + 14, + 65 + ], + [ + 14, + 58 + ], + [ + 14, + 67 + ], + [ + 14, + 82 + ], + [ + 13, + 95 + ], + [ + 13, + 56 + ], + [ + 13, + 88 + ], + [ + 13, + 8 + ], + [ + 13, + 134 + ], + [ + 13, + 125 + ], + [ + 12, + 143 + ], + [ + 12, + 17 + ], + [ + 12, + 115 + ], + [ + 12, + 89 + ], + [ + 12, + 101 + ], + [ + 12, + 122 + ], + [ + 11, + 41 + ], + [ + 11, + 74 + ], + [ + 11, + 35 + ], + [ + 11, + 23 + ], + [ + 10, + 26 + ], + [ + 10, + 116 + ], + [ + 10, + 92 + ], + [ + 10, + 14 + ], + [ + 10, + 47 + ], + [ + 9, + 50 + ], + [ + 9, + 5 + ], + [ + 9, + 128 + ], + [ + 9, + 131 + ], + [ + 9, + 2 + ], + [ + 9, + 140 + ], + [ + 8, + 113 + ], + [ + 8, + 119 + ], + [ + 8, + 83 + ], + [ + 8, + 62 + ], + [ + 7, + 77 + ], + [ + 7, + 98 + ], + [ + 7, + 146 + ], + [ + 7, + 137 + ], + [ + 6, + 71 + ], + [ + 6, + 11 + ], + [ + 6, + 59 + ], + [ + 5, + 110 + ], + [ + 5, + 1 + ], + [ + 5, + 38 + ], + [ + 4, + 68 + ], + [ + 4, + 107 + ], + [ + 4, + 20 + ], + [ + 3, + 86 + ], + [ + 0, + 54 + ], + [ + 0, + 126 + ], + [ + 0, + 57 + ], + [ + 0, + 144 + ], + [ + 0, + 84 + ], + [ + 0, + 39 + ], + [ + 0, + 6 + ], + [ + 0, + 72 + ], + [ + 0, + 87 + ], + [ + 0, + 9 + ], + [ + 0, + 27 + ], + [ + 0, + 63 + ], + [ + 0, + 51 + ], + [ + 0, + 150 + ], + [ + 0, + 33 + ], + [ + 0, + 138 + ], + [ + 0, + 114 + ], + [ + 0, + 96 + ], + [ + 0, + 120 + ], + [ + 0, + 111 + ], + [ + 0, + 48 + ], + [ + 0, + 105 + ], + [ + 0, + 108 + ], + [ + 0, + 132 + ], + [ + 0, + 123 + ], + [ + 0, + 3 + ], + [ + 0, + 12 + ], + [ + 0, + 141 + ], + [ + 0, + 66 + ], + [ + 0, + 102 + ], + [ + 0, + 36 + ], + [ + 0, + 75 + ], + [ + 0, + 78 + ], + [ + 0, + 18 + ], + [ + 0, + 69 + ], + [ + 0, + 21 + ], + [ + 0, + 135 + ], + [ + 0, + 129 + ], + [ + 0, + 15 + ], + [ + 0, + 81 + ], + [ + 0, + 30 + ], + [ + 0, + 42 + ], + [ + 0, + 90 + ], + [ + 0, + 117 + ], + [ + 0, + 99 + ], + [ + 0, + 60 + ], + [ + 0, + 93 + ], + [ + 0, + 147 + ], + [ + 0, + 45 + ], + [ + 0, + 24 + ] + ], + "total": 151, + "size": 151 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_115.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_115.ppl new file mode 100644 index 000000000..615573702 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_115.ppl @@ -0,0 +1,5 @@ +source = mys3.default.customer +| semi join ON c_custkey = o_custkey mys3.default.orders +| where c_mktsegment = 'BUILDING' + | sort - c_custkey +| head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_115.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_115.results new file mode 100644 index 000000000..dbc0975a2 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_115.results @@ -0,0 +1,141 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "c_custkey", + "type": "long" + }, + { + "name": "c_name", + "type": "string" + }, + { + "name": "c_address", + "type": "string" + }, + { + "name": "c_nationkey", + "type": "long" + }, + { + "name": "c_phone", + "type": "string" + }, + { + "name": "c_acctbal", + "type": "double" + }, + { + "name": "c_mktsegment", + "type": "string" + }, + { + "name": "c_comment", + "type": "string" + } + ], + "datarows": [ + [ + 134, + "Customer#000000134", + "sUiZ78QCkTQPICKpA9OBzkUp2FM", + 11, + "21-200-159-5932", + 4608.9, + "BUILDING", + "yly fluffy foxes boost final ideas. b" + ], + [ + 121, + "Customer#000000121", + "tv nCR2YKupGN73mQudO", + 17, + "27-411-990-2959", + 6428.32, + "BUILDING", + "uriously stealthy ideas. carefully final courts use carefully" + ], + [ + 116, + "Customer#000000116", + "yCuVxIgsZ3,qyK2rloThy3u", + 16, + "26-632-309-5792", + 8403.99, + "BUILDING", + "as. quickly final sauternes haggle slyly carefully even packages. brave, ironic pinto beans are above the furious" + ], + [ + 113, + "Customer#000000113", + "eaOl5UBXIvdY57rglaIzqvfPD,MYfK", + 12, + "22-302-930-4756", + 2912.0, + "BUILDING", + "usly regular theodolites boost furiously doggedly pending instructio" + ], + [ + 109, + "Customer#000000109", + "OOOkYBgCMzgMQXUmkocoLb56rfrdWp2NE2c", + 16, + "26-992-422-8153", + -716.1, + "BUILDING", + "es. fluffily final dependencies sleep along the blithely even pinto beans. final deposits haggle furiously furiou" + ], + [ + 103, + "Customer#000000103", + "8KIsQX4LJ7QMsj6DrtFtXu0nUEdV,8a", + 9, + "19-216-107-2107", + 2757.45, + "BUILDING", + "furiously pending notornis boost slyly around the blithely ironic ideas? final, even instructions cajole fl" + ], + [ + 98, + "Customer#000000098", + "7yiheXNSpuEAwbswDW", + 12, + "22-885-845-6889", + -551.37, + "BUILDING", + "ages. furiously pending accounts are quickly carefully final foxes: busily pe" + ], + [ + 83, + "Customer#000000083", + "HnhTNB5xpnSF20JBH4Ycs6psVnkC3RDf", + 22, + "32-817-154-4122", + 6463.51, + "BUILDING", + "ccording to the quickly bold warhorses. final, regular foxes integrate carefully. bold packages nag blithely ev" + ], + [ + 77, + "Customer#000000077", + "4tAE5KdMFGD4byHtXF92vx", + 17, + "27-269-357-4674", + 1738.87, + "BUILDING", + "uffily silent requests. carefully ironic asymptotes among the ironic hockey players are carefully bli" + ], + [ + 73, + "Customer#000000073", + "8IhIxreu4Ug6tt5mog4", + 0, + "10-473-439-3214", + 4288.5, + "BUILDING", + "usual, unusual packages sleep busily along the furiou" + ] + ], + "total": 10, + "size": 10 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_116.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_116.ppl new file mode 100644 index 000000000..881d4636a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_116.ppl @@ -0,0 +1,5 @@ +source = mys3.default.customer +| anti join ON c_custkey = o_custkey mys3.default.orders +| where c_mktsegment = 'BUILDING' + | sort - c_custkey +| head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_116.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_116.results new file mode 100644 index 000000000..78453f3ea --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_116.results @@ -0,0 +1,141 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "c_custkey", + "type": "long" + }, + { + "name": "c_name", + "type": "string" + }, + { + "name": "c_address", + "type": "string" + }, + { + "name": "c_nationkey", + "type": "long" + }, + { + "name": "c_phone", + "type": "string" + }, + { + "name": "c_acctbal", + "type": "double" + }, + { + "name": "c_mktsegment", + "type": "string" + }, + { + "name": "c_comment", + "type": "string" + } + ], + "datarows": [ + [ + 123, + "Customer#000000123", + "YsOnaaER8MkvK5cpf4VSlq", + 5, + "15-817-151-1168", + 5897.83, + "BUILDING", + "ependencies. regular, ironic requests are fluffily regu" + ], + [ + 108, + "Customer#000000108", + "GPoeEvpKo1", + 5, + "15-908-619-7526", + 2259.38, + "BUILDING", + "refully ironic deposits sleep. regular, unusual requests wake slyly" + ], + [ + 102, + "Customer#000000102", + "UAtflJ06 fn9zBfKjInkQZlWtqaA", + 19, + "29-324-978-8538", + 8462.17, + "BUILDING", + "ously regular dependencies nag among the furiously express dinos. blithely final" + ], + [ + 90, + "Customer#000000090", + "QxCzH7VxxYUWwfL7", + 16, + "26-603-491-1238", + 7354.23, + "BUILDING", + "sly across the furiously even " + ], + [ + 81, + "Customer#000000081", + "SH6lPA7JiiNC6dNTrR", + 20, + "30-165-277-3269", + 2023.71, + "BUILDING", + "r packages. fluffily ironic requests cajole fluffily. ironically regular theodolit" + ], + [ + 48, + "Customer#000000048", + "0UU iPhBupFvemNB", + 0, + "10-508-348-5882", + 3792.5, + "BUILDING", + "re fluffily pending foxes. pending, bold platelets sleep slyly. even platelets cajo" + ], + [ + 42, + "Customer#000000042", + "ziSrvyyBke", + 5, + "15-416-330-4175", + 8727.01, + "BUILDING", + "ssly according to the pinto beans: carefully special requests across the even, pending accounts wake special" + ], + [ + 36, + "Customer#000000036", + "3TvCzjuPzpJ0,DdJ8kW5U", + 21, + "31-704-669-5769", + 4987.27, + "BUILDING", + "haggle. enticing, quiet platelets grow quickly bold sheaves. carefully regular acc" + ], + [ + 30, + "Customer#000000030", + "nJDsELGAavU63Jl0c5NKsKfL8rIJQQkQnYL2QJY", + 1, + "11-764-165-5076", + 9321.01, + "BUILDING", + "lithely final requests. furiously unusual account" + ], + [ + 27, + "Customer#000000027", + "IS8GIyxpBrLpMT0u7", + 3, + "13-137-193-2709", + 5679.84, + "BUILDING", + " about the carefully ironic pinto beans. accoun" + ] + ], + "total": 10, + "size": 10 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_117.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_117.ppl new file mode 100644 index 000000000..80a9b188c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_117.ppl @@ -0,0 +1,5 @@ +source = mys3.default.supplier +| where like(s_comment, '%Customer%Complaints%') +| join ON s_nationkey > n_nationkey [ source = mys3.default.nation | where n_name = 'SAUDI ARABIA' ] +| sort - s_name +| head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_117.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_117.results new file mode 100644 index 000000000..8d07431c4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_117.results @@ -0,0 +1,52 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "s_suppkey", + "type": "long" + }, + { + "name": "s_name", + "type": "string" + }, + { + "name": "s_address", + "type": "string" + }, + { + "name": "s_nationkey", + "type": "long" + }, + { + "name": "s_phone", + "type": "string" + }, + { + "name": "s_acctbal", + "type": "double" + }, + { + "name": "s_comment", + "type": "string" + }, + { + "name": "n_nationkey", + "type": "long" + }, + { + "name": "n_name", + "type": "string" + }, + { + "name": "n_regionkey", + "type": "long" + }, + { + "name": "n_comment", + "type": "string" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_118.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_118.ppl new file mode 100644 index 000000000..14f6903f2 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_118.ppl @@ -0,0 +1,5 @@ +source = mys3.default.supplier +| where like(s_comment, '%Customer%Complaints%') +| join [ source = mys3.default.nation | where n_name = 'SAUDI ARABIA' ] +| sort - s_name +| head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_118.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_118.results new file mode 100644 index 000000000..8d07431c4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_118.results @@ -0,0 +1,52 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "s_suppkey", + "type": "long" + }, + { + "name": "s_name", + "type": "string" + }, + { + "name": "s_address", + "type": "string" + }, + { + "name": "s_nationkey", + "type": "long" + }, + { + "name": "s_phone", + "type": "string" + }, + { + "name": "s_acctbal", + "type": "double" + }, + { + "name": "s_comment", + "type": "string" + }, + { + "name": "n_nationkey", + "type": "long" + }, + { + "name": "n_name", + "type": "string" + }, + { + "name": "n_regionkey", + "type": "long" + }, + { + "name": "n_comment", + "type": "string" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_119.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_119.ppl new file mode 100644 index 000000000..c14e19a9b --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_119.ppl @@ -0,0 +1 @@ +source=mys3.default.people | LOOKUP mys3.default.work_info uid AS id REPLACE department | stats distinct_count(department) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_119.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_119.results new file mode 100644 index 000000000..c89909f2f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_119.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "distinct_count(department)", + "type": "long" + } + ], + "datarows": [ + [ + 3 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_120.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_120.ppl new file mode 100644 index 000000000..42cf46e50 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_120.ppl @@ -0,0 +1 @@ +source = mys3.default.people| LOOKUP mys3.default.work_info uid AS id APPEND department | stats distinct_count(department) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_120.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_120.results new file mode 100644 index 000000000..c89909f2f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_120.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "distinct_count(department)", + "type": "long" + } + ], + "datarows": [ + [ + 3 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_121.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_121.ppl new file mode 100644 index 000000000..f767be7bb --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_121.ppl @@ -0,0 +1 @@ +source = mys3.default.people| LOOKUP mys3.default.work_info uid AS id REPLACE department AS country | stats distinct_count(country) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_121.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_121.results new file mode 100644 index 000000000..616cee96a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_121.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "distinct_count(country)", + "type": "long" + } + ], + "datarows": [ + [ + 5 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_122.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_122.ppl new file mode 100644 index 000000000..e19237a26 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_122.ppl @@ -0,0 +1 @@ +source = mys3.default.people| LOOKUP mys3.default.work_info uid AS id APPEND department AS country | stats distinct_count(country) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_122.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_122.results new file mode 100644 index 000000000..a476f2ea6 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_122.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "distinct_count(country)", + "type": "long" + } + ], + "datarows": [ + [ + 4 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_123.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_123.ppl new file mode 100644 index 000000000..0778b5efb --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_123.ppl @@ -0,0 +1 @@ +source = mys3.default.people| LOOKUP mys3.default.work_info uID AS id, name REPLACE department | stats distinct_count(department) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_123.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_123.results new file mode 100644 index 000000000..c89909f2f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_123.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "distinct_count(department)", + "type": "long" + } + ], + "datarows": [ + [ + 3 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_124.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_124.ppl new file mode 100644 index 000000000..e02e0222c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_124.ppl @@ -0,0 +1 @@ +source = mys3.default.people| LOOKUP mys3.default.work_info uid AS ID, name APPEND department | stats distinct_count(department) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_124.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_124.results new file mode 100644 index 000000000..c89909f2f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_124.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "distinct_count(department)", + "type": "long" + } + ], + "datarows": [ + [ + 3 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_125.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_125.ppl new file mode 100644 index 000000000..6fcbf50d7 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_125.ppl @@ -0,0 +1 @@ +source = mys3.default.people | eval major = occupation | fields id, name, major, country, salary | LOOKUP mys3.default.work_info name REPLACE occupation AS major | stats distinct_count(major) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_125.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_125.results new file mode 100644 index 000000000..cdea20ecb --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_125.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "distinct_count(major)", + "type": "long" + } + ], + "datarows": [ + [ + 4 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_126.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_126.ppl new file mode 100644 index 000000000..d4da5279c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_126.ppl @@ -0,0 +1 @@ +source = mys3.default.people | eval major = occupation | fields id, name, major, country, salary | LOOKUP mys3.default.work_info name APPEND occupation AS major | stats distinct_count(major) \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_126.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_126.results new file mode 100644 index 000000000..cdea20ecb --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_126.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "distinct_count(major)", + "type": "long" + } + ], + "datarows": [ + [ + 4 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_127.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_127.ppl new file mode 100644 index 000000000..697157742 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_127.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json('{"account_number":1,"balance":39225,"age":32,"gender":"M"}') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_127.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_127.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_127.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_128.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_128.ppl new file mode 100644 index 000000000..63e221df8 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_128.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json('{"f1":"abc","f2":{"f3":"a","f4":"b"}}') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_128.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_128.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_128.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_129.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_129.ppl new file mode 100644 index 000000000..38c4da217 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_129.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json('[1,2,3,{"f1":1,"f2":[5,6]},4]') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_129.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_129.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_129.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_130.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_130.ppl new file mode 100644 index 000000000..8fa3c171a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_130.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json('[]') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_130.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_130.results new file mode 100644 index 000000000..5bcaa70f0 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_130.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "string" + } + ], + "datarows": [ + [ + "[]" + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_131.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_131.ppl new file mode 100644 index 000000000..af4a2e2b0 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_131.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json('{"teacher":"Alice","student":[{"name":"Bob","rank":1},{"name":"Charlie","rank":2}]}') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_131.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_131.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_131.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_132.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_132.ppl new file mode 100644 index 000000000..541f9053d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_132.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json('{"invalid": "json"') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_132.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_132.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_132.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_133.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_133.ppl new file mode 100644 index 000000000..0f6c4c895 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_133.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json('[1,2,3]') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_133.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_133.results new file mode 100644 index 000000000..8e61dbb05 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_133.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "string" + } + ], + "datarows": [ + [ + "[1,2,3]" + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_134.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_134.ppl new file mode 100644 index 000000000..114e8df75 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_134.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json('[1,2') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_134.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_134.results new file mode 100644 index 000000000..e2a102840 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_134.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "string" + } + ], + "datarows": [ + [ + null + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_135.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_135.ppl new file mode 100644 index 000000000..2cb0deb78 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_135.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json('[invalid json]') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_135.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_135.results new file mode 100644 index 000000000..e2a102840 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_135.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "string" + } + ], + "datarows": [ + [ + null + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_136.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_136.ppl new file mode 100644 index 000000000..9dd98e88e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_136.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json('invalid json') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_136.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_136.results new file mode 100644 index 000000000..e2a102840 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_136.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "string" + } + ], + "datarows": [ + [ + null + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_137.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_137.ppl new file mode 100644 index 000000000..a9cecbd72 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_137.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = to_json_string(json_array(1,2,0,-1,1.1,-0.11)) | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_137.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_137.results new file mode 100644 index 000000000..16a437226 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_137.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "string" + } + ], + "datarows": [ + [ + "[1.0,2.0,0.0,-1.0,1.1,-0.11]" + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_138.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_138.ppl new file mode 100644 index 000000000..d8c9e85a3 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_138.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = array_length(json_array(1,2,0,-1,1.1,-0.11)) | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_138.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_138.results new file mode 100644 index 000000000..a6b64ee1a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_138.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "integer" + } + ], + "datarows": [ + [ + 6 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_139.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_139.ppl new file mode 100644 index 000000000..593509e2d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_139.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = array_length(json_array()) | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_139.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_139.results new file mode 100644 index 000000000..d7be5566f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_139.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "integer" + } + ], + "datarows": [ + [ + 0 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_140.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_140.ppl new file mode 100644 index 000000000..bbc5e97ef --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_140.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json_array_length('[]') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_140.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_140.results new file mode 100644 index 000000000..d7be5566f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_140.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "integer" + } + ], + "datarows": [ + [ + 0 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_141.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_141.ppl new file mode 100644 index 000000000..e5c303592 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_141.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json_array_length('[1,2,3,{"f1":1,"f2":[5,6]},4]') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_141.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_141.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_141.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_142.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_142.ppl new file mode 100644 index 000000000..0e73eca81 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_142.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json_array_length('{"key": 1}') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_142.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_142.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_142.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_143.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_143.ppl new file mode 100644 index 000000000..8176898d5 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_143.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json_array_length('[1,2') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_143.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_143.results new file mode 100644 index 000000000..c6142b9fe --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_143.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "integer" + } + ], + "datarows": [ + [ + null + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_144.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_144.ppl new file mode 100644 index 000000000..f10b06c1c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_144.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = to_json_string(json_object('key', 'string_value')) | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_144.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_144.results new file mode 100644 index 000000000..046b0c886 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_144.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "string" + } + ], + "datarows": [ + [ + "{\"key\":\"string_value\"}" + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_145.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_145.ppl new file mode 100644 index 000000000..abe3dbf84 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_145.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = to_json_string(json_object('key', 123.45)) | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_145.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_145.results new file mode 100644 index 000000000..4594183da --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_145.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "string" + } + ], + "datarows": [ + [ + "{\"key\":123.45}" + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_146.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_146.ppl new file mode 100644 index 000000000..6d62d4574 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_146.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = to_json_string(json_object('key', true)) | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_146.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_146.results new file mode 100644 index 000000000..27fe34bff --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_146.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "string" + } + ], + "datarows": [ + [ + "{\"key\":true}" + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_147.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_147.ppl new file mode 100644 index 000000000..2b6d0a593 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_147.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = to_json_string(json_object("a", 1, "b", 2, "c", 3)) | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_147.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_147.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_147.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_148.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_148.ppl new file mode 100644 index 000000000..354e3ea82 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_148.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = to_json_string(json_object('key', array())) | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_148.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_148.results new file mode 100644 index 000000000..2b95b6dd4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_148.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "string" + } + ], + "datarows": [ + [ + "{\"key\":[]}" + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_149.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_149.ppl new file mode 100644 index 000000000..846016bbe --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_149.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = to_json_string(json_object('key', array(1, 2, 3))) | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_149.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_149.results new file mode 100644 index 000000000..c4d987e35 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_149.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "string" + } + ], + "datarows": [ + [ + "{\"key\":[1,2,3]}" + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_150.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_150.ppl new file mode 100644 index 000000000..490167c99 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_150.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = to_json_string(json_object('outer', json_object('inner', 123.45))) | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_150.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_150.results new file mode 100644 index 000000000..ec142bfbe --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_150.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "res", + "type": "string" + } + ], + "datarows": [ + [ + "{\"outer\":{\"inner\":123.45}}" + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_151.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_151.ppl new file mode 100644 index 000000000..702653bf8 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_151.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = to_json_string(json_object("array", json_array(1,2,0,-1,1.1,-0.11))) | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_151.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_151.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_151.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_152.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_152.ppl new file mode 100644 index 000000000..59ad9be70 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_152.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where json_valid('{"account_number":1,"balance":39225,"age":32,"gender":"M"}') | head 1 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_152.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_152.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_152.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_153.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_153.ppl new file mode 100644 index 000000000..7b32f2524 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_153.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | where not json_valid('{"account_number":1,"balance":39225,"age":32,"gender":"M"}') | head 1 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_153.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_153.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_153.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_154.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_154.ppl new file mode 100644 index 000000000..c766a3f97 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_154.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json_extract('{"teacher":"Alice","student":[{"name":"Bob","rank":1},{"name":"Charlie","rank":2}]}', '$') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_154.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_154.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_154.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_155.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_155.ppl new file mode 100644 index 000000000..e3030a707 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_155.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json_extract('{"teacher":"Alice","student":[{"name":"Bob","rank":1},{"name":"Charlie","rank":2}]}', '$.teacher') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_155.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_155.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_155.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_156.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_156.ppl new file mode 100644 index 000000000..f52fd0f61 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_156.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json_extract('{"teacher":"Alice","student":[{"name":"Bob","rank":1},{"name":"Charlie","rank":2}]}', '$.student') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_156.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_156.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_156.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_157.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_157.ppl new file mode 100644 index 000000000..35c3a32f9 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_157.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json_extract('{"teacher":"Alice","student":[{"name":"Bob","rank":1},{"name":"Charlie","rank":2}]}', '$.student[*]') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_157.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_157.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_157.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_158.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_158.ppl new file mode 100644 index 000000000..0df30d8ba --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_158.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json_extract('{"teacher":"Alice","student":[{"name":"Bob","rank":1},{"name":"Charlie","rank":2}]}', '$.student[0]') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_158.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_158.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_158.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_159.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_159.ppl new file mode 100644 index 000000000..ae93e909e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_159.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json_extract('{"teacher":"Alice","student":[{"name":"Bob","rank":1},{"name":"Charlie","rank":2}]}', '$.student[*].name') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_159.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_159.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_159.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_160.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_160.ppl new file mode 100644 index 000000000..dc8d5ec55 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_160.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json_extract('{"teacher":"Alice","student":[{"name":"Bob","rank":1},{"name":"Charlie","rank":2}]}', '$.student[1].name') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_160.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_160.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_160.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_161.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_161.ppl new file mode 100644 index 000000000..06cacf81e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_161.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json_extract('{"teacher":"Alice","student":[{"name":"Bob","rank":1},{"name":"Charlie","rank":2}]}', '$.student[0].not_exist_key') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_161.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_161.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_161.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_162.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_162.ppl new file mode 100644 index 000000000..938398ae4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_162.ppl @@ -0,0 +1 @@ +source = mys3.default.http_logs | eval res = json_extract('{"teacher":"Alice","student":[{"name":"Bob","rank":1},{"name":"Charlie","rank":2}]}', '$.student[10]') | head 1 | fields res \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_162.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_162.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_162.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_163.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_163.ppl new file mode 100644 index 000000000..c18f329fb --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_163.ppl @@ -0,0 +1 @@ +source = mys3.default.people | eval array = json_array(1,2,0,-1,1.1,-0.11), result = forall(array, x -> x > 0) | head 1 | fields result \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_163.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_163.results new file mode 100644 index 000000000..908cf1a4c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_163.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "result", + "type": "boolean" + } + ], + "datarows": [ + [ + false + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_164.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_164.ppl new file mode 100644 index 000000000..84a64de4f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_164.ppl @@ -0,0 +1 @@ +source = mys3.default.people | eval array = json_array(1,2,0,-1,1.1,-0.11), result = forall(array, x -> x > -10) | head 1 | fields result \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_164.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_164.results new file mode 100644 index 000000000..50168a924 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_164.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "result", + "type": "boolean" + } + ], + "datarows": [ + [ + true + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_165.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_165.ppl new file mode 100644 index 000000000..ffa2b9503 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_165.ppl @@ -0,0 +1 @@ +source = mys3.default.people | eval array = json_array(json_object("a",1,"b",-1),json_object("a",-1,"b",-1)), result = forall(array, x -> x.a > 0) | head 1 | fields result \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_165.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_165.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_165.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_166.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_166.ppl new file mode 100644 index 000000000..4020de1b8 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_166.ppl @@ -0,0 +1 @@ +source = mys3.default.people | eval array = json_array(json_object("a",1,"b",-1),json_object("a",-1,"b",-1)), result = exists(array, x -> x.b < 0) | head 1 | fields result \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_166.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_166.results new file mode 100644 index 000000000..eaa6d7e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_166.results @@ -0,0 +1,8 @@ +{ + "status": 400, + "error": { + "type": "AsyncQueryNotFoundException", + "reason": "Invalid Request", + "details": "Invalid QueryId: null" + } +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_167.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_167.ppl new file mode 100644 index 000000000..01ab5f339 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_167.ppl @@ -0,0 +1 @@ +source = mys3.default.people | eval array = json_array(1,2,0,-1,1.1,-0.11), result = exists(array, x -> x > 0) | head 1 | fields result \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_167.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_167.results new file mode 100644 index 000000000..50168a924 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_167.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "result", + "type": "boolean" + } + ], + "datarows": [ + [ + true + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_168.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_168.ppl new file mode 100644 index 000000000..76d25ce43 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_168.ppl @@ -0,0 +1 @@ +source = mys3.default.people | eval array = json_array(1,2,0,-1,1.1,-0.11), result = exists(array, x -> x > 10) | head 1 | fields result \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_168.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_168.results new file mode 100644 index 000000000..908cf1a4c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_168.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "result", + "type": "boolean" + } + ], + "datarows": [ + [ + false + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_169.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_169.ppl new file mode 100644 index 000000000..2499433e9 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_169.ppl @@ -0,0 +1 @@ +source = mys3.default.people | eval array = json_array(1,2,3), result = reduce(array, 0, (acc, x) -> acc + x) | head 1 | fields result \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_169.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_169.results new file mode 100644 index 000000000..7a70a029e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_169.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "result", + "type": "integer" + } + ], + "datarows": [ + [ + 6 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_170.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_170.ppl new file mode 100644 index 000000000..1a7f6461c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_170.ppl @@ -0,0 +1 @@ +source = mys3.default.people | eval array = json_array(1,2,3), result = reduce(array, 0, (acc, x) -> acc + x, acc -> acc * 10) | head 1 | fields result \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_170.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_170.results new file mode 100644 index 000000000..3cb1a1912 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_170.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "result", + "type": "integer" + } + ], + "datarows": [ + [ + 60 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_171.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_171.ppl new file mode 100644 index 000000000..736703e46 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_171.ppl @@ -0,0 +1 @@ +source=mys3.default.people | eval age = salary | eventstats avg(age) | sort id | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_171.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_171.results new file mode 100644 index 000000000..b69afcf94 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_171.results @@ -0,0 +1,101 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "id", + "type": "long" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "occupation", + "type": "string" + }, + { + "name": "country", + "type": "string" + }, + { + "name": "salary", + "type": "long" + }, + { + "name": "age", + "type": "long" + }, + { + "name": "avg(age)", + "type": "double" + } + ], + "datarows": [ + [ + "2024-06-15T13:40:23.000", + 1000, + "Jake", + "Engineer", + "England", + 100000, + 100000, + 83333.33333333333 + ], + [ + "2024-06-15T13:40:33.000", + 1001, + "Hello", + "Artist", + "USA", + 70000, + 70000, + 83333.33333333333 + ], + [ + "2024-06-15T13:40:43.000", + 1002, + "John", + "Doctor", + "Canada", + 120000, + 120000, + 83333.33333333333 + ], + [ + "2024-06-15T13:40:53.000", + 1003, + "David", + "Doctor", + null, + 120000, + 120000, + 83333.33333333333 + ], + [ + "2024-06-15T13:41:03.000", + 1004, + "David", + null, + "Canada", + 0, + 0, + 83333.33333333333 + ], + [ + "2024-06-15T13:41:13.000", + 1005, + "Jane", + "Scientist", + "Canada", + 90000, + 90000, + 83333.33333333333 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_172.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_172.ppl new file mode 100644 index 000000000..cb7ab6556 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_172.ppl @@ -0,0 +1 @@ +source=mys3.default.people | eval age = salary | eventstats avg(age) as avg_age, max(age) as max_age, min(age) as min_age, count(age) as count | sort id | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_172.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_172.results new file mode 100644 index 000000000..c2a0689e8 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_172.results @@ -0,0 +1,131 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "id", + "type": "long" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "occupation", + "type": "string" + }, + { + "name": "country", + "type": "string" + }, + { + "name": "salary", + "type": "long" + }, + { + "name": "age", + "type": "long" + }, + { + "name": "avg_age", + "type": "double" + }, + { + "name": "max_age", + "type": "long" + }, + { + "name": "min_age", + "type": "long" + }, + { + "name": "count", + "type": "long" + } + ], + "datarows": [ + [ + "2024-06-15T13:40:23.000", + 1000, + "Jake", + "Engineer", + "England", + 100000, + 100000, + 83333.33333333333, + 120000, + 0, + 6 + ], + [ + "2024-06-15T13:40:33.000", + 1001, + "Hello", + "Artist", + "USA", + 70000, + 70000, + 83333.33333333333, + 120000, + 0, + 6 + ], + [ + "2024-06-15T13:40:43.000", + 1002, + "John", + "Doctor", + "Canada", + 120000, + 120000, + 83333.33333333333, + 120000, + 0, + 6 + ], + [ + "2024-06-15T13:40:53.000", + 1003, + "David", + "Doctor", + null, + 120000, + 120000, + 83333.33333333333, + 120000, + 0, + 6 + ], + [ + "2024-06-15T13:41:03.000", + 1004, + "David", + null, + "Canada", + 0, + 0, + 83333.33333333333, + 120000, + 0, + 6 + ], + [ + "2024-06-15T13:41:13.000", + 1005, + "Jane", + "Scientist", + "Canada", + 90000, + 90000, + 83333.33333333333, + 120000, + 0, + 6 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_173.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_173.ppl new file mode 100644 index 000000000..7e1915f78 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_173.ppl @@ -0,0 +1 @@ +source=mys3.default.people | eventstats avg(salary) by country | sort id | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_173.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_173.results new file mode 100644 index 000000000..9db8f02d9 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_173.results @@ -0,0 +1,91 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "id", + "type": "long" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "occupation", + "type": "string" + }, + { + "name": "country", + "type": "string" + }, + { + "name": "salary", + "type": "long" + }, + { + "name": "avg(salary)", + "type": "double" + } + ], + "datarows": [ + [ + "2024-06-15T13:40:23.000", + 1000, + "Jake", + "Engineer", + "England", + 100000, + 100000.0 + ], + [ + "2024-06-15T13:40:33.000", + 1001, + "Hello", + "Artist", + "USA", + 70000, + 70000.0 + ], + [ + "2024-06-15T13:40:43.000", + 1002, + "John", + "Doctor", + "Canada", + 120000, + 70000.0 + ], + [ + "2024-06-15T13:40:53.000", + 1003, + "David", + "Doctor", + null, + 120000, + 120000.0 + ], + [ + "2024-06-15T13:41:03.000", + 1004, + "David", + null, + "Canada", + 0, + 70000.0 + ], + [ + "2024-06-15T13:41:13.000", + 1005, + "Jane", + "Scientist", + "Canada", + 90000, + 70000.0 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_174.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_174.ppl new file mode 100644 index 000000000..7377a4e75 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_174.ppl @@ -0,0 +1 @@ +source=mys3.default.people | eval age = salary | eventstats avg(age) as avg_age, max(age) as max_age, min(age) as min_age, count(age) as count by country | sort id | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_174.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_174.results new file mode 100644 index 000000000..aead4348c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_174.results @@ -0,0 +1,131 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "id", + "type": "long" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "occupation", + "type": "string" + }, + { + "name": "country", + "type": "string" + }, + { + "name": "salary", + "type": "long" + }, + { + "name": "age", + "type": "long" + }, + { + "name": "avg_age", + "type": "double" + }, + { + "name": "max_age", + "type": "long" + }, + { + "name": "min_age", + "type": "long" + }, + { + "name": "count", + "type": "long" + } + ], + "datarows": [ + [ + "2024-06-15T13:40:23.000", + 1000, + "Jake", + "Engineer", + "England", + 100000, + 100000, + 100000.0, + 100000, + 100000, + 1 + ], + [ + "2024-06-15T13:40:33.000", + 1001, + "Hello", + "Artist", + "USA", + 70000, + 70000, + 70000.0, + 70000, + 70000, + 1 + ], + [ + "2024-06-15T13:40:43.000", + 1002, + "John", + "Doctor", + "Canada", + 120000, + 120000, + 70000.0, + 120000, + 0, + 3 + ], + [ + "2024-06-15T13:40:53.000", + 1003, + "David", + "Doctor", + null, + 120000, + 120000, + 120000.0, + 120000, + 120000, + 1 + ], + [ + "2024-06-15T13:41:03.000", + 1004, + "David", + null, + "Canada", + 0, + 0, + 70000.0, + 120000, + 0, + 3 + ], + [ + "2024-06-15T13:41:13.000", + 1005, + "Jane", + "Scientist", + "Canada", + 90000, + 90000, + 70000.0, + 120000, + 0, + 3 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_175.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_175.ppl new file mode 100644 index 000000000..6d2e7b701 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_175.ppl @@ -0,0 +1 @@ +source=mys3.default.people | eval age = salary | eventstats avg(age) as avg_age, max(age) as max_age, min(age) as min_age, count(age) as count by span(age, 10) | sort id | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_175.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_175.results new file mode 100644 index 000000000..8dbe61970 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_175.results @@ -0,0 +1,131 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "id", + "type": "long" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "occupation", + "type": "string" + }, + { + "name": "country", + "type": "string" + }, + { + "name": "salary", + "type": "long" + }, + { + "name": "age", + "type": "long" + }, + { + "name": "avg_age", + "type": "double" + }, + { + "name": "max_age", + "type": "long" + }, + { + "name": "min_age", + "type": "long" + }, + { + "name": "count", + "type": "long" + } + ], + "datarows": [ + [ + "2024-06-15T13:40:23.000", + 1000, + "Jake", + "Engineer", + "England", + 100000, + 100000, + 100000.0, + 100000, + 100000, + 1 + ], + [ + "2024-06-15T13:40:33.000", + 1001, + "Hello", + "Artist", + "USA", + 70000, + 70000, + 70000.0, + 70000, + 70000, + 1 + ], + [ + "2024-06-15T13:40:43.000", + 1002, + "John", + "Doctor", + "Canada", + 120000, + 120000, + 120000.0, + 120000, + 120000, + 2 + ], + [ + "2024-06-15T13:40:53.000", + 1003, + "David", + "Doctor", + null, + 120000, + 120000, + 120000.0, + 120000, + 120000, + 2 + ], + [ + "2024-06-15T13:41:03.000", + 1004, + "David", + null, + "Canada", + 0, + 0, + 0.0, + 0, + 0, + 1 + ], + [ + "2024-06-15T13:41:13.000", + 1005, + "Jane", + "Scientist", + "Canada", + 90000, + 90000, + 90000.0, + 90000, + 90000, + 1 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_176.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_176.ppl new file mode 100644 index 000000000..f8c9c12ec --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_176.ppl @@ -0,0 +1 @@ +source=mys3.default.people | eval age = salary | eventstats avg(age) as avg_age, max(age) as max_age, min(age) as min_age, count(age) as count by span(age, 10) as age_span, country | sort id | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_176.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_176.results new file mode 100644 index 000000000..6e1632335 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_176.results @@ -0,0 +1,131 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "id", + "type": "long" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "occupation", + "type": "string" + }, + { + "name": "country", + "type": "string" + }, + { + "name": "salary", + "type": "long" + }, + { + "name": "age", + "type": "long" + }, + { + "name": "avg_age", + "type": "double" + }, + { + "name": "max_age", + "type": "long" + }, + { + "name": "min_age", + "type": "long" + }, + { + "name": "count", + "type": "long" + } + ], + "datarows": [ + [ + "2024-06-15T13:40:23.000", + 1000, + "Jake", + "Engineer", + "England", + 100000, + 100000, + 100000.0, + 100000, + 100000, + 1 + ], + [ + "2024-06-15T13:40:33.000", + 1001, + "Hello", + "Artist", + "USA", + 70000, + 70000, + 70000.0, + 70000, + 70000, + 1 + ], + [ + "2024-06-15T13:40:43.000", + 1002, + "John", + "Doctor", + "Canada", + 120000, + 120000, + 120000.0, + 120000, + 120000, + 1 + ], + [ + "2024-06-15T13:40:53.000", + 1003, + "David", + "Doctor", + null, + 120000, + 120000, + 120000.0, + 120000, + 120000, + 1 + ], + [ + "2024-06-15T13:41:03.000", + 1004, + "David", + null, + "Canada", + 0, + 0, + 0.0, + 0, + 0, + 1 + ], + [ + "2024-06-15T13:41:13.000", + 1005, + "Jane", + "Scientist", + "Canada", + 90000, + 90000, + 90000.0, + 90000, + 90000, + 1 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_177.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_177.ppl new file mode 100644 index 000000000..c8a9edf94 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_177.ppl @@ -0,0 +1 @@ +source=mys3.default.people | where country != 'USA' | eventstats stddev_samp(salary), stddev_pop(salary), percentile_approx(salary, 60) by span(salary, 1000) as salary_span | sort id | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_177.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_177.results new file mode 100644 index 000000000..b747d1400 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_177.results @@ -0,0 +1,89 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "id", + "type": "long" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "occupation", + "type": "string" + }, + { + "name": "country", + "type": "string" + }, + { + "name": "salary", + "type": "long" + }, + { + "name": "stddev_samp(salary)", + "type": "double" + }, + { + "name": "stddev_pop(salary)", + "type": "double" + }, + { + "name": "percentile_approx(salary, 60)", + "type": "long" + } + ], + "datarows": [ + [ + "2024-06-15T13:40:23.000", + 1000, + "Jake", + "Engineer", + "England", + 100000, + null, + 0.0, + 100000 + ], + [ + "2024-06-15T13:40:43.000", + 1002, + "John", + "Doctor", + "Canada", + 120000, + null, + 0.0, + 120000 + ], + [ + "2024-06-15T13:41:03.000", + 1004, + "David", + null, + "Canada", + 0, + null, + 0.0, + 0 + ], + [ + "2024-06-15T13:41:13.000", + 1005, + "Jane", + "Scientist", + "Canada", + 90000, + null, + 0.0, + 90000 + ] + ], + "total": 4, + "size": 4 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_178.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_178.ppl new file mode 100644 index 000000000..440d1a5d9 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_178.ppl @@ -0,0 +1 @@ +source=mys3.default.people | eval age = salary | eventstats avg(age) as avg_age by occupation, country | eventstats avg(avg_age) as avg_state_age by country | sort id | head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_178.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_178.results new file mode 100644 index 000000000..cf477903c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_178.results @@ -0,0 +1,111 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "@timestamp", + "type": "timestamp_ntz" + }, + { + "name": "id", + "type": "long" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "occupation", + "type": "string" + }, + { + "name": "country", + "type": "string" + }, + { + "name": "salary", + "type": "long" + }, + { + "name": "age", + "type": "long" + }, + { + "name": "avg_age", + "type": "double" + }, + { + "name": "avg_state_age", + "type": "double" + } + ], + "datarows": [ + [ + "2024-06-15T13:40:23.000", + 1000, + "Jake", + "Engineer", + "England", + 100000, + 100000, + 100000.0, + 100000.0 + ], + [ + "2024-06-15T13:40:33.000", + 1001, + "Hello", + "Artist", + "USA", + 70000, + 70000, + 70000.0, + 70000.0 + ], + [ + "2024-06-15T13:40:43.000", + 1002, + "John", + "Doctor", + "Canada", + 120000, + 120000, + 120000.0, + 70000.0 + ], + [ + "2024-06-15T13:40:53.000", + 1003, + "David", + "Doctor", + null, + 120000, + 120000, + 120000.0, + 120000.0 + ], + [ + "2024-06-15T13:41:03.000", + 1004, + "David", + null, + "Canada", + 0, + 0, + 0.0, + 70000.0 + ], + [ + "2024-06-15T13:41:13.000", + 1005, + "Jane", + "Scientist", + "Canada", + 90000, + 90000, + 90000.0, + 70000.0 + ] + ], + "total": 6, + "size": 6 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_179.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_179.ppl new file mode 100644 index 000000000..721af0e2b --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_179.ppl @@ -0,0 +1,12 @@ +source = mys3.default.lineitem +| where l_shipdate <= subdate(date('1998-12-01'), 90) +| stats sum(l_quantity) as sum_qty, + sum(l_extendedprice) as sum_base_price, + sum(l_extendedprice * (1 - l_discount)) as sum_disc_price, + sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge, + avg(l_quantity) as avg_qty, + avg(l_extendedprice) as avg_price, + avg(l_discount) as avg_disc, + count() as count_order + by l_returnflag, l_linestatus +| sort l_returnflag, l_linestatus \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_179.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_179.results new file mode 100644 index 000000000..db0e9cf97 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_179.results @@ -0,0 +1,97 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "sum_qty", + "type": "double" + }, + { + "name": "sum_base_price", + "type": "double" + }, + { + "name": "sum_disc_price", + "type": "double" + }, + { + "name": "sum_charge", + "type": "double" + }, + { + "name": "avg_qty", + "type": "double" + }, + { + "name": "avg_price", + "type": "double" + }, + { + "name": "avg_disc", + "type": "double" + }, + { + "name": "count_order", + "type": "long" + }, + { + "name": "l_returnflag", + "type": "string" + }, + { + "name": "l_linestatus", + "type": "string" + } + ], + "datarows": [ + [ + 37474.0, + 3.756962463999998E7, + 3.5676192096999995E7, + 3.710141622242404E7, + 25.354533152909337, + 25419.231826792948, + 0.050866035182679493, + 1478, + "A", + "F" + ], + [ + 1041.0, + 1041301.07, + 999060.8979999998, + 1036450.80228, + 27.394736842105264, + 27402.659736842103, + 0.042894736842105284, + 38, + "N", + "F" + ], + [ + 75168.0, + 7.538495536999969E7, + 7.165316630340016E7, + 7.449879813307281E7, + 25.558653519211152, + 25632.422771166166, + 0.04969738184291069, + 2941, + "N", + "O" + ], + [ + 36511.0, + 3.657084124E7, + 3.473847287580004E7, + 3.616906011219294E7, + 25.059025394646532, + 25100.09693891558, + 0.050027453671928686, + 1457, + "R", + "F" + ] + ], + "total": 4, + "size": 4 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_180.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_180.ppl new file mode 100644 index 000000000..bb3c16e4e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_180.ppl @@ -0,0 +1,15 @@ +source = mys3.default.part +| join ON p_partkey = ps_partkey mys3.default.partsupp +| join ON s_suppkey = ps_suppkey mys3.default.supplier +| join ON s_nationkey = n_nationkey mys3.default.nation +| join ON n_regionkey = r_regionkey mys3.default.region +| where p_size = 15 AND like(p_type, '%BRASS') AND r_name = 'EUROPE' AND ps_supplycost = [ + source = mys3.default.partsupp + | join ON s_suppkey = ps_suppkey mys3.default.supplier + | join ON s_nationkey = n_nationkey mys3.default.nation + | join ON n_regionkey = r_regionkey mys3.default.region + | where r_name = 'EUROPE' + | stats MIN(ps_supplycost) + ] +| sort - s_acctbal, n_name, s_name, p_partkey +| head 100 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_180.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_180.results new file mode 100644 index 000000000..3595164bb --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_180.results @@ -0,0 +1,120 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "p_partkey", + "type": "long" + }, + { + "name": "p_name", + "type": "string" + }, + { + "name": "p_mfgr", + "type": "string" + }, + { + "name": "p_brand", + "type": "string" + }, + { + "name": "p_type", + "type": "string" + }, + { + "name": "p_size", + "type": "integer" + }, + { + "name": "p_container", + "type": "string" + }, + { + "name": "p_retailprice", + "type": "double" + }, + { + "name": "p_comment", + "type": "string" + }, + { + "name": "ps_partkey", + "type": "long" + }, + { + "name": "ps_suppkey", + "type": "long" + }, + { + "name": "ps_availqty", + "type": "integer" + }, + { + "name": "ps_supplycost", + "type": "double" + }, + { + "name": "ps_comment", + "type": "string" + }, + { + "name": "s_suppkey", + "type": "long" + }, + { + "name": "s_name", + "type": "string" + }, + { + "name": "s_address", + "type": "string" + }, + { + "name": "s_nationkey", + "type": "long" + }, + { + "name": "s_phone", + "type": "string" + }, + { + "name": "s_acctbal", + "type": "double" + }, + { + "name": "s_comment", + "type": "string" + }, + { + "name": "n_nationkey", + "type": "long" + }, + { + "name": "n_name", + "type": "string" + }, + { + "name": "n_regionkey", + "type": "long" + }, + { + "name": "n_comment", + "type": "string" + }, + { + "name": "r_regionkey", + "type": "long" + }, + { + "name": "r_name", + "type": "string" + }, + { + "name": "r_comment", + "type": "string" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_181.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_181.ppl new file mode 100644 index 000000000..069af1137 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_181.ppl @@ -0,0 +1,7 @@ +source = mys3.default.customer +| join ON c_custkey = o_custkey mys3.default.orders +| join ON l_orderkey = o_orderkey mys3.default.lineitem +| where c_mktsegment = 'BUILDING' AND o_orderdate < date('1995-03-15') AND l_shipdate > date('1995-03-15') +| stats sum(l_extendedprice * (1 - l_discount)) as revenue by l_orderkey, o_orderdate, o_shippriority + | sort - revenue, o_orderdate +| head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_181.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_181.results new file mode 100644 index 000000000..f5f272611 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_181.results @@ -0,0 +1,73 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "revenue", + "type": "double" + }, + { + "name": "l_orderkey", + "type": "long" + }, + { + "name": "o_orderdate", + "type": "timestamp_ntz" + }, + { + "name": "o_shippriority", + "type": "string" + } + ], + "datarows": [ + [ + 164224.9253, + 1637, + "1995-02-08T00:00:00.000", + "0" + ], + [ + 49378.309400000006, + 5191, + "1994-12-11T00:00:00.000", + "0" + ], + [ + 43728.048, + 742, + "1994-12-23T00:00:00.000", + "0" + ], + [ + 43716.072400000005, + 3492, + "1994-11-24T00:00:00.000", + "0" + ], + [ + 36666.9612, + 2883, + "1995-01-23T00:00:00.000", + "0" + ], + [ + 11785.548600000002, + 998, + "1994-11-26T00:00:00.000", + "0" + ], + [ + 4726.6775, + 3430, + "1994-12-12T00:00:00.000", + "0" + ], + [ + 3055.9365, + 4423, + "1995-02-17T00:00:00.000", + "0" + ] + ], + "total": 8, + "size": 8 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_182.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_182.ppl new file mode 100644 index 000000000..d48d975fa --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_182.ppl @@ -0,0 +1 @@ +source = mys3.default.orders | where o_orderdate >= date('1993-07-01') and o_orderdate < date_add(date('1993-07-01'), interval 3 month) and exists [ source = mys3.default.lineitem | where l_orderkey = o_orderkey and l_commitdate < l_receiptdate ] | stats count() as order_count by o_orderpriority | sort o_orderpriority \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_182.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_182.results new file mode 100644 index 000000000..448e3bf0d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_182.results @@ -0,0 +1,37 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "order_count", + "type": "long" + }, + { + "name": "o_orderpriority", + "type": "string" + } + ], + "datarows": [ + [ + 9, + "1-URGENT" + ], + [ + 7, + "2-HIGH" + ], + [ + 9, + "3-MEDIUM" + ], + [ + 8, + "4-NOT SPECIFIED" + ], + [ + 12, + "5-LOW" + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_183.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_183.ppl new file mode 100644 index 000000000..5bb7e4dda --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_183.ppl @@ -0,0 +1 @@ +source = mys3.default.customer | join ON c_custkey = o_custkey mys3.default.orders | join ON l_orderkey = o_orderkey mys3.default.lineitem | join ON l_suppkey = s_suppkey AND c_nationkey = s_nationkey mys3.default.supplier | join ON s_nationkey = n_nationkey mys3.default.nation | join ON n_regionkey = r_regionkey mys3.default.region | where r_name = 'ASIA' AND o_orderdate >= date('1994-01-01') AND o_orderdate < date_add(date('1994-01-01'), interval 1 year) | stats sum(l_extendedprice * (1 - l_discount)) as revenue by n_name | sort - revenue \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_183.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_183.results new file mode 100644 index 000000000..ce3660333 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_183.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "revenue", + "type": "double" + }, + { + "name": "n_name", + "type": "string" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_184.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_184.ppl new file mode 100644 index 000000000..498ac3aeb --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_184.ppl @@ -0,0 +1 @@ +source = mys3.default.lineitem | where l_shipdate >= date('1994-01-01') and l_shipdate < adddate(date('1994-01-01'), 365) and l_discount between .06 - 0.01 and .06 + 0.01 and l_quantity < 24 | stats sum(l_extendedprice * l_discount) as revenue \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_184.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_184.results new file mode 100644 index 000000000..126879c45 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_184.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "revenue", + "type": "double" + } + ], + "datarows": [ + [ + 48090.85860000001 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_185.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_185.ppl new file mode 100644 index 000000000..9988f8416 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_185.ppl @@ -0,0 +1 @@ +source = [ source = mys3.default.supplier | join ON s_suppkey = l_suppkey mys3.default.lineitem | join ON o_orderkey = l_orderkey mys3.default.orders | join ON c_custkey = o_custkey mys3.default.customer | join ON s_nationkey = n1.n_nationkey mys3.default.nation as n1 | join ON c_nationkey = n2.n_nationkey mys3.default.nation as n2 | where l_shipdate between date('1995-01-01') and date('1996-12-31') and n1.n_name = 'FRANCE' and n2.n_name = 'GERMANY' or n1.n_name = 'GERMANY' and n2.n_name = 'FRANCE' | eval supp_nation = n1.n_name, cust_nation = n2.n_name, l_year = year(l_shipdate), volume = l_extendedprice * (1 - l_discount) | fields supp_nation, cust_nation, l_year, volume ] as shipping | stats sum(volume) as revenue by supp_nation, cust_nation, l_year | sort supp_nation, cust_nation, l_year \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_185.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_185.results new file mode 100644 index 000000000..2fbbffc79 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_185.results @@ -0,0 +1,2353 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "revenue", + "type": "double" + }, + { + "name": "supp_nation", + "type": "string" + }, + { + "name": "cust_nation", + "type": "string" + }, + { + "name": "l_year", + "type": "integer" + } + ], + "datarows": [ + [ + 254136.68649999998, + "ARGENTINA", + "ALGERIA", + 1995 + ], + [ + 82726.03270000001, + "ARGENTINA", + "ALGERIA", + 1996 + ], + [ + 43967.5675, + "ARGENTINA", + "ARGENTINA", + 1995 + ], + [ + 30133.802599999995, + "ARGENTINA", + "ARGENTINA", + 1996 + ], + [ + 21429.54, + "ARGENTINA", + "BRAZIL", + 1995 + ], + [ + 36081.2088, + "ARGENTINA", + "BRAZIL", + 1996 + ], + [ + 91411.3919, + "ARGENTINA", + "CANADA", + 1995 + ], + [ + 194113.55250000002, + "ARGENTINA", + "CANADA", + 1996 + ], + [ + 16706.156199999998, + "ARGENTINA", + "CHINA", + 1995 + ], + [ + 101867.8726, + "ARGENTINA", + "CHINA", + 1996 + ], + [ + 32130.149, + "ARGENTINA", + "EGYPT", + 1995 + ], + [ + 49531.607599999996, + "ARGENTINA", + "EGYPT", + 1996 + ], + [ + 23997.7944, + "ARGENTINA", + "ETHIOPIA", + 1996 + ], + [ + 36554.001, + "ARGENTINA", + "FRANCE", + 1995 + ], + [ + 64102.9664, + "ARGENTINA", + "FRANCE", + 1996 + ], + [ + 63729.862400000005, + "ARGENTINA", + "GERMANY", + 1995 + ], + [ + 1801.8198, + "ARGENTINA", + "GERMANY", + 1996 + ], + [ + 25814.589, + "ARGENTINA", + "INDIA", + 1995 + ], + [ + 29141.556599999996, + "ARGENTINA", + "INDIA", + 1996 + ], + [ + 148391.4238, + "ARGENTINA", + "INDONESIA", + 1995 + ], + [ + 136628.8591, + "ARGENTINA", + "INDONESIA", + 1996 + ], + [ + 151955.4019, + "ARGENTINA", + "IRAN", + 1995 + ], + [ + 104369.15130000001, + "ARGENTINA", + "IRAN", + 1996 + ], + [ + 158591.6254, + "ARGENTINA", + "IRAQ", + 1995 + ], + [ + 91647.2007, + "ARGENTINA", + "IRAQ", + 1996 + ], + [ + 116201.5549, + "ARGENTINA", + "JAPAN", + 1995 + ], + [ + 110441.0398, + "ARGENTINA", + "JAPAN", + 1996 + ], + [ + 75652.3699, + "ARGENTINA", + "JORDAN", + 1995 + ], + [ + 6301.2558, + "ARGENTINA", + "JORDAN", + 1996 + ], + [ + 137503.7968, + "ARGENTINA", + "MOROCCO", + 1995 + ], + [ + 124885.9045, + "ARGENTINA", + "MOROCCO", + 1996 + ], + [ + 186967.3162, + "ARGENTINA", + "MOZAMBIQUE", + 1995 + ], + [ + 104704.33, + "ARGENTINA", + "MOZAMBIQUE", + 1996 + ], + [ + 253252.7559, + "ARGENTINA", + "PERU", + 1995 + ], + [ + 189098.6215, + "ARGENTINA", + "PERU", + 1996 + ], + [ + 6001.8624, + "ARGENTINA", + "ROMANIA", + 1995 + ], + [ + 122821.76920000001, + "ARGENTINA", + "ROMANIA", + 1996 + ], + [ + 48549.668399999995, + "ARGENTINA", + "RUSSIA", + 1995 + ], + [ + 173174.6736, + "ARGENTINA", + "RUSSIA", + 1996 + ], + [ + 89175.76939999999, + "ARGENTINA", + "SAUDI ARABIA", + 1995 + ], + [ + 7305.1026, + "ARGENTINA", + "SAUDI ARABIA", + 1996 + ], + [ + 904.3584, + "ARGENTINA", + "UNITED KINGDOM", + 1995 + ], + [ + 128427.69939999998, + "ARGENTINA", + "UNITED KINGDOM", + 1996 + ], + [ + 93555.44579999999, + "ETHIOPIA", + "ALGERIA", + 1995 + ], + [ + 141039.1936, + "ETHIOPIA", + "ALGERIA", + 1996 + ], + [ + 95577.2594, + "ETHIOPIA", + "ARGENTINA", + 1995 + ], + [ + 39186.0036, + "ETHIOPIA", + "ARGENTINA", + 1996 + ], + [ + 44157.1086, + "ETHIOPIA", + "CANADA", + 1995 + ], + [ + 265995.15670000005, + "ETHIOPIA", + "CANADA", + 1996 + ], + [ + 121761.22820000001, + "ETHIOPIA", + "CHINA", + 1995 + ], + [ + 149453.3532, + "ETHIOPIA", + "CHINA", + 1996 + ], + [ + 43124.816399999996, + "ETHIOPIA", + "EGYPT", + 1995 + ], + [ + 67441.81019999999, + "ETHIOPIA", + "EGYPT", + 1996 + ], + [ + 12728.4066, + "ETHIOPIA", + "ETHIOPIA", + 1995 + ], + [ + 42408.2316, + "ETHIOPIA", + "ETHIOPIA", + 1996 + ], + [ + 45000.8334, + "ETHIOPIA", + "FRANCE", + 1995 + ], + [ + 36802.584, + "ETHIOPIA", + "FRANCE", + 1996 + ], + [ + 69329.67199999999, + "ETHIOPIA", + "GERMANY", + 1995 + ], + [ + 42017.435999999994, + "ETHIOPIA", + "GERMANY", + 1996 + ], + [ + 92687.5162, + "ETHIOPIA", + "INDIA", + 1995 + ], + [ + 18762.8848, + "ETHIOPIA", + "INDIA", + 1996 + ], + [ + 240805.01389999996, + "ETHIOPIA", + "INDONESIA", + 1995 + ], + [ + 218011.5294, + "ETHIOPIA", + "INDONESIA", + 1996 + ], + [ + 91113.96989999998, + "ETHIOPIA", + "IRAN", + 1995 + ], + [ + 121523.34099999999, + "ETHIOPIA", + "IRAN", + 1996 + ], + [ + 157855.9905, + "ETHIOPIA", + "IRAQ", + 1995 + ], + [ + 199921.1492, + "ETHIOPIA", + "IRAQ", + 1996 + ], + [ + 368896.52770000004, + "ETHIOPIA", + "JAPAN", + 1995 + ], + [ + 864.9599999999999, + "ETHIOPIA", + "JAPAN", + 1996 + ], + [ + 166340.585, + "ETHIOPIA", + "JORDAN", + 1995 + ], + [ + 23071.9992, + "ETHIOPIA", + "JORDAN", + 1996 + ], + [ + 141534.35470000003, + "ETHIOPIA", + "MOROCCO", + 1995 + ], + [ + 127897.9081, + "ETHIOPIA", + "MOROCCO", + 1996 + ], + [ + 301839.8703, + "ETHIOPIA", + "MOZAMBIQUE", + 1995 + ], + [ + 135078.1152, + "ETHIOPIA", + "MOZAMBIQUE", + 1996 + ], + [ + 132525.7795, + "ETHIOPIA", + "PERU", + 1995 + ], + [ + 153699.0389, + "ETHIOPIA", + "PERU", + 1996 + ], + [ + 75587.4786, + "ETHIOPIA", + "ROMANIA", + 1995 + ], + [ + 118006.06910000001, + "ETHIOPIA", + "ROMANIA", + 1996 + ], + [ + 94074.606, + "ETHIOPIA", + "RUSSIA", + 1995 + ], + [ + 12596.959200000001, + "ETHIOPIA", + "RUSSIA", + 1996 + ], + [ + 11579.3635, + "ETHIOPIA", + "SAUDI ARABIA", + 1995 + ], + [ + 89546.37299999999, + "ETHIOPIA", + "UNITED KINGDOM", + 1995 + ], + [ + 5977.1286, + "ETHIOPIA", + "UNITED KINGDOM", + 1996 + ], + [ + 37152.515400000004, + "ETHIOPIA", + "VIETNAM", + 1995 + ], + [ + 45682.308, + "ETHIOPIA", + "VIETNAM", + 1996 + ], + [ + 162547.627, + "IRAN", + "ALGERIA", + 1995 + ], + [ + 95093.32870000001, + "IRAN", + "ALGERIA", + 1996 + ], + [ + 83906.11499999999, + "IRAN", + "ARGENTINA", + 1996 + ], + [ + 75458.91210000002, + "IRAN", + "BRAZIL", + 1995 + ], + [ + 37076.0754, + "IRAN", + "BRAZIL", + 1996 + ], + [ + 124008.88309999999, + "IRAN", + "CANADA", + 1995 + ], + [ + 208344.03720000002, + "IRAN", + "CANADA", + 1996 + ], + [ + 67560.3522, + "IRAN", + "CHINA", + 1995 + ], + [ + 76675.7352, + "IRAN", + "CHINA", + 1996 + ], + [ + 156218.8337, + "IRAN", + "EGYPT", + 1995 + ], + [ + 141324.1042, + "IRAN", + "EGYPT", + 1996 + ], + [ + 13126.136800000002, + "IRAN", + "ETHIOPIA", + 1995 + ], + [ + 76768.3357, + "IRAN", + "ETHIOPIA", + 1996 + ], + [ + 38485.716, + "IRAN", + "FRANCE", + 1995 + ], + [ + 53097.3338, + "IRAN", + "FRANCE", + 1996 + ], + [ + 9106.957199999999, + "IRAN", + "GERMANY", + 1995 + ], + [ + 201277.9401, + "IRAN", + "INDIA", + 1995 + ], + [ + 311383.99480000004, + "IRAN", + "INDIA", + 1996 + ], + [ + 153833.028, + "IRAN", + "INDONESIA", + 1995 + ], + [ + 220189.4322, + "IRAN", + "INDONESIA", + 1996 + ], + [ + 64854.8802, + "IRAN", + "IRAN", + 1995 + ], + [ + 71310.457, + "IRAN", + "IRAN", + 1996 + ], + [ + 179591.37690000003, + "IRAN", + "IRAQ", + 1995 + ], + [ + 171547.7756, + "IRAN", + "IRAQ", + 1996 + ], + [ + 73023.2721, + "IRAN", + "JAPAN", + 1995 + ], + [ + 110871.34460000001, + "IRAN", + "JAPAN", + 1996 + ], + [ + 32969.583600000005, + "IRAN", + "JORDAN", + 1995 + ], + [ + 36797.1604, + "IRAN", + "JORDAN", + 1996 + ], + [ + 88623.7926, + "IRAN", + "MOROCCO", + 1995 + ], + [ + 172421.8824, + "IRAN", + "MOROCCO", + 1996 + ], + [ + 58201.424699999996, + "IRAN", + "MOZAMBIQUE", + 1995 + ], + [ + 46162.4175, + "IRAN", + "MOZAMBIQUE", + 1996 + ], + [ + 154367.68779999999, + "IRAN", + "PERU", + 1995 + ], + [ + 133249.9896, + "IRAN", + "PERU", + 1996 + ], + [ + 84411.4801, + "IRAN", + "ROMANIA", + 1995 + ], + [ + 142296.42450000002, + "IRAN", + "ROMANIA", + 1996 + ], + [ + 113065.3816, + "IRAN", + "RUSSIA", + 1995 + ], + [ + 90816.2061, + "IRAN", + "RUSSIA", + 1996 + ], + [ + 64286.073000000004, + "IRAN", + "SAUDI ARABIA", + 1995 + ], + [ + 12914.054399999999, + "IRAN", + "UNITED KINGDOM", + 1995 + ], + [ + 35837.3562, + "IRAN", + "UNITED KINGDOM", + 1996 + ], + [ + 61851.0656, + "IRAN", + "VIETNAM", + 1996 + ], + [ + 201033.0857, + "IRAQ", + "ALGERIA", + 1995 + ], + [ + 246900.7017, + "IRAQ", + "ALGERIA", + 1996 + ], + [ + 60911.8767, + "IRAQ", + "ARGENTINA", + 1995 + ], + [ + 32103.905499999997, + "IRAQ", + "ARGENTINA", + 1996 + ], + [ + 41449.9332, + "IRAQ", + "BRAZIL", + 1995 + ], + [ + 142176.1693, + "IRAQ", + "CANADA", + 1995 + ], + [ + 225773.2609, + "IRAQ", + "CANADA", + 1996 + ], + [ + 144926.016, + "IRAQ", + "CHINA", + 1995 + ], + [ + 61836.116599999994, + "IRAQ", + "CHINA", + 1996 + ], + [ + 47622.4242, + "IRAQ", + "EGYPT", + 1995 + ], + [ + 38906.8236, + "IRAQ", + "EGYPT", + 1996 + ], + [ + 30882.3273, + "IRAQ", + "ETHIOPIA", + 1995 + ], + [ + 72931.888, + "IRAQ", + "ETHIOPIA", + 1996 + ], + [ + 33028.1014, + "IRAQ", + "FRANCE", + 1995 + ], + [ + 8588.624399999999, + "IRAQ", + "FRANCE", + 1996 + ], + [ + 66380.2488, + "IRAQ", + "GERMANY", + 1995 + ], + [ + 51238.211800000005, + "IRAQ", + "INDIA", + 1995 + ], + [ + 144072.9008, + "IRAQ", + "INDIA", + 1996 + ], + [ + 121082.9552, + "IRAQ", + "INDONESIA", + 1995 + ], + [ + 207820.729, + "IRAQ", + "INDONESIA", + 1996 + ], + [ + 110078.0916, + "IRAQ", + "IRAN", + 1995 + ], + [ + 106794.4885, + "IRAQ", + "IRAN", + 1996 + ], + [ + 47751.138900000005, + "IRAQ", + "IRAQ", + 1995 + ], + [ + 189657.8283, + "IRAQ", + "IRAQ", + 1996 + ], + [ + 75700.3915, + "IRAQ", + "JAPAN", + 1995 + ], + [ + 63407.511, + "IRAQ", + "JAPAN", + 1996 + ], + [ + 76308.9638, + "IRAQ", + "JORDAN", + 1995 + ], + [ + 85878.1546, + "IRAQ", + "JORDAN", + 1996 + ], + [ + 195251.47340000002, + "IRAQ", + "MOROCCO", + 1995 + ], + [ + 250722.49679999996, + "IRAQ", + "MOROCCO", + 1996 + ], + [ + 90070.6672, + "IRAQ", + "MOZAMBIQUE", + 1995 + ], + [ + 213216.13980000003, + "IRAQ", + "MOZAMBIQUE", + 1996 + ], + [ + 182352.1664, + "IRAQ", + "PERU", + 1995 + ], + [ + 174677.52640000003, + "IRAQ", + "PERU", + 1996 + ], + [ + 6166.5422, + "IRAQ", + "ROMANIA", + 1995 + ], + [ + 372667.3503, + "IRAQ", + "ROMANIA", + 1996 + ], + [ + 76739.9053, + "IRAQ", + "RUSSIA", + 1995 + ], + [ + 31617.1963, + "IRAQ", + "RUSSIA", + 1996 + ], + [ + 32347.5864, + "IRAQ", + "SAUDI ARABIA", + 1995 + ], + [ + 142752.8852, + "IRAQ", + "UNITED KINGDOM", + 1995 + ], + [ + 114670.7536, + "IRAQ", + "UNITED KINGDOM", + 1996 + ], + [ + 25811.638499999997, + "IRAQ", + "VIETNAM", + 1995 + ], + [ + 971.014, + "IRAQ", + "VIETNAM", + 1996 + ], + [ + 104861.9908, + "KENYA", + "ALGERIA", + 1995 + ], + [ + 156396.4264, + "KENYA", + "ALGERIA", + 1996 + ], + [ + 25260.8797, + "KENYA", + "BRAZIL", + 1995 + ], + [ + 56395.8304, + "KENYA", + "BRAZIL", + 1996 + ], + [ + 87554.79969999999, + "KENYA", + "CANADA", + 1995 + ], + [ + 118419.86499999999, + "KENYA", + "CANADA", + 1996 + ], + [ + 19585.3237, + "KENYA", + "CHINA", + 1995 + ], + [ + 121587.0675, + "KENYA", + "CHINA", + 1996 + ], + [ + 42657.650499999996, + "KENYA", + "EGYPT", + 1995 + ], + [ + 42287.053499999995, + "KENYA", + "EGYPT", + 1996 + ], + [ + 21254.31, + "KENYA", + "ETHIOPIA", + 1995 + ], + [ + 13062.5924, + "KENYA", + "ETHIOPIA", + 1996 + ], + [ + 129667.63709999999, + "KENYA", + "FRANCE", + 1995 + ], + [ + 17195.0, + "KENYA", + "FRANCE", + 1996 + ], + [ + 37851.309, + "KENYA", + "GERMANY", + 1995 + ], + [ + 18467.316, + "KENYA", + "GERMANY", + 1996 + ], + [ + 99473.2753, + "KENYA", + "INDIA", + 1995 + ], + [ + 107757.24170000001, + "KENYA", + "INDIA", + 1996 + ], + [ + 313903.59369999997, + "KENYA", + "INDONESIA", + 1995 + ], + [ + 131096.1041, + "KENYA", + "INDONESIA", + 1996 + ], + [ + 99394.73200000002, + "KENYA", + "IRAN", + 1995 + ], + [ + 75278.1744, + "KENYA", + "IRAN", + 1996 + ], + [ + 58042.4104, + "KENYA", + "IRAQ", + 1995 + ], + [ + 81729.83350000001, + "KENYA", + "IRAQ", + 1996 + ], + [ + 11669.2458, + "KENYA", + "JAPAN", + 1995 + ], + [ + 40247.164000000004, + "KENYA", + "JAPAN", + 1996 + ], + [ + 22598.076299999997, + "KENYA", + "JORDAN", + 1995 + ], + [ + 27247.756799999996, + "KENYA", + "JORDAN", + 1996 + ], + [ + 154398.8419, + "KENYA", + "MOROCCO", + 1995 + ], + [ + 51361.646, + "KENYA", + "MOROCCO", + 1996 + ], + [ + 100724.721, + "KENYA", + "MOZAMBIQUE", + 1995 + ], + [ + 17172.768600000003, + "KENYA", + "MOZAMBIQUE", + 1996 + ], + [ + 229403.3046, + "KENYA", + "PERU", + 1995 + ], + [ + 75566.7534, + "KENYA", + "PERU", + 1996 + ], + [ + 115714.80269999999, + "KENYA", + "ROMANIA", + 1995 + ], + [ + 240644.50290000002, + "KENYA", + "ROMANIA", + 1996 + ], + [ + 77911.9312, + "KENYA", + "RUSSIA", + 1995 + ], + [ + 187014.05539999998, + "KENYA", + "RUSSIA", + 1996 + ], + [ + 44817.409, + "KENYA", + "SAUDI ARABIA", + 1996 + ], + [ + 54688.0144, + "KENYA", + "UNITED KINGDOM", + 1995 + ], + [ + 95787.9582, + "KENYA", + "UNITED KINGDOM", + 1996 + ], + [ + 23347.5944, + "KENYA", + "VIETNAM", + 1995 + ], + [ + 35101.4906, + "KENYA", + "VIETNAM", + 1996 + ], + [ + 208725.7642, + "MOROCCO", + "ALGERIA", + 1995 + ], + [ + 79921.473, + "MOROCCO", + "ALGERIA", + 1996 + ], + [ + 45662.5058, + "MOROCCO", + "ARGENTINA", + 1995 + ], + [ + 103192.9186, + "MOROCCO", + "ARGENTINA", + 1996 + ], + [ + 24525.48, + "MOROCCO", + "BRAZIL", + 1995 + ], + [ + 76977.16279999999, + "MOROCCO", + "BRAZIL", + 1996 + ], + [ + 121282.80900000001, + "MOROCCO", + "CANADA", + 1995 + ], + [ + 163020.6101, + "MOROCCO", + "CANADA", + 1996 + ], + [ + 123628.165, + "MOROCCO", + "CHINA", + 1995 + ], + [ + 155131.67059999998, + "MOROCCO", + "CHINA", + 1996 + ], + [ + 75703.3616, + "MOROCCO", + "EGYPT", + 1995 + ], + [ + 162986.6482, + "MOROCCO", + "EGYPT", + 1996 + ], + [ + 105995.5609, + "MOROCCO", + "ETHIOPIA", + 1996 + ], + [ + 12598.1046, + "MOROCCO", + "FRANCE", + 1995 + ], + [ + 52491.31109999999, + "MOROCCO", + "FRANCE", + 1996 + ], + [ + 37169.8497, + "MOROCCO", + "GERMANY", + 1995 + ], + [ + 90174.24359999999, + "MOROCCO", + "INDIA", + 1995 + ], + [ + 65486.2152, + "MOROCCO", + "INDIA", + 1996 + ], + [ + 237285.38329999996, + "MOROCCO", + "INDONESIA", + 1995 + ], + [ + 110552.04269999999, + "MOROCCO", + "INDONESIA", + 1996 + ], + [ + 70154.12789999999, + "MOROCCO", + "IRAN", + 1995 + ], + [ + 130115.5064, + "MOROCCO", + "IRAN", + 1996 + ], + [ + 136868.65980000002, + "MOROCCO", + "IRAQ", + 1995 + ], + [ + 181853.862, + "MOROCCO", + "IRAQ", + 1996 + ], + [ + 215532.0276, + "MOROCCO", + "JAPAN", + 1995 + ], + [ + 74571.86799999999, + "MOROCCO", + "JAPAN", + 1996 + ], + [ + 46814.1882, + "MOROCCO", + "JORDAN", + 1995 + ], + [ + 8946.028, + "MOROCCO", + "JORDAN", + 1996 + ], + [ + 32176.977000000003, + "MOROCCO", + "KENYA", + 1995 + ], + [ + 359437.7604, + "MOROCCO", + "MOROCCO", + 1995 + ], + [ + 86092.39099999999, + "MOROCCO", + "MOROCCO", + 1996 + ], + [ + 94016.3014, + "MOROCCO", + "MOZAMBIQUE", + 1995 + ], + [ + 110047.802, + "MOROCCO", + "MOZAMBIQUE", + 1996 + ], + [ + 228013.98860000004, + "MOROCCO", + "PERU", + 1995 + ], + [ + 180769.569, + "MOROCCO", + "PERU", + 1996 + ], + [ + 9401.483, + "MOROCCO", + "ROMANIA", + 1995 + ], + [ + 173418.5048, + "MOROCCO", + "ROMANIA", + 1996 + ], + [ + 67569.02419999999, + "MOROCCO", + "RUSSIA", + 1995 + ], + [ + 48079.3719, + "MOROCCO", + "RUSSIA", + 1996 + ], + [ + 87329.81279999999, + "MOROCCO", + "SAUDI ARABIA", + 1995 + ], + [ + 8595.716400000001, + "MOROCCO", + "UNITED KINGDOM", + 1996 + ], + [ + 51827.7612, + "MOROCCO", + "VIETNAM", + 1996 + ], + [ + 296387.692, + "PERU", + "ALGERIA", + 1995 + ], + [ + 300350.83859999996, + "PERU", + "ALGERIA", + 1996 + ], + [ + 124968.99299999999, + "PERU", + "ARGENTINA", + 1995 + ], + [ + 175101.6514, + "PERU", + "ARGENTINA", + 1996 + ], + [ + 72899.6696, + "PERU", + "BRAZIL", + 1996 + ], + [ + 247138.4418, + "PERU", + "CANADA", + 1995 + ], + [ + 628827.8985, + "PERU", + "CANADA", + 1996 + ], + [ + 354631.39109999995, + "PERU", + "CHINA", + 1995 + ], + [ + 404604.1966, + "PERU", + "CHINA", + 1996 + ], + [ + 112065.8224, + "PERU", + "EGYPT", + 1995 + ], + [ + 187510.94989999998, + "PERU", + "EGYPT", + 1996 + ], + [ + 19244.188, + "PERU", + "ETHIOPIA", + 1995 + ], + [ + 95300.4011, + "PERU", + "ETHIOPIA", + 1996 + ], + [ + 46226.348000000005, + "PERU", + "FRANCE", + 1995 + ], + [ + 60971.04359999999, + "PERU", + "FRANCE", + 1996 + ], + [ + 52968.9424, + "PERU", + "GERMANY", + 1995 + ], + [ + 7960.72, + "PERU", + "GERMANY", + 1996 + ], + [ + 346742.71689999994, + "PERU", + "INDIA", + 1995 + ], + [ + 371086.43450000003, + "PERU", + "INDIA", + 1996 + ], + [ + 431888.0076, + "PERU", + "INDONESIA", + 1995 + ], + [ + 394392.2665, + "PERU", + "INDONESIA", + 1996 + ], + [ + 258994.44240000003, + "PERU", + "IRAN", + 1995 + ], + [ + 253508.40860000002, + "PERU", + "IRAN", + 1996 + ], + [ + 263151.64859999996, + "PERU", + "IRAQ", + 1995 + ], + [ + 113105.11260000001, + "PERU", + "IRAQ", + 1996 + ], + [ + 208089.1201, + "PERU", + "JAPAN", + 1995 + ], + [ + 104909.03709999999, + "PERU", + "JAPAN", + 1996 + ], + [ + 204902.86690000002, + "PERU", + "JORDAN", + 1995 + ], + [ + 83390.9358, + "PERU", + "KENYA", + 1995 + ], + [ + 306687.83569999994, + "PERU", + "MOROCCO", + 1995 + ], + [ + 203568.86399999997, + "PERU", + "MOROCCO", + 1996 + ], + [ + 111767.7678, + "PERU", + "MOZAMBIQUE", + 1995 + ], + [ + 223993.1312, + "PERU", + "MOZAMBIQUE", + 1996 + ], + [ + 325714.39349999995, + "PERU", + "PERU", + 1995 + ], + [ + 279345.63450000004, + "PERU", + "PERU", + 1996 + ], + [ + 95907.072, + "PERU", + "ROMANIA", + 1995 + ], + [ + 311454.8541, + "PERU", + "ROMANIA", + 1996 + ], + [ + 123771.699, + "PERU", + "RUSSIA", + 1995 + ], + [ + 145782.478, + "PERU", + "RUSSIA", + 1996 + ], + [ + 21987.549300000002, + "PERU", + "SAUDI ARABIA", + 1995 + ], + [ + 49284.4176, + "PERU", + "SAUDI ARABIA", + 1996 + ], + [ + 108301.1145, + "PERU", + "UNITED KINGDOM", + 1995 + ], + [ + 195777.05430000002, + "PERU", + "UNITED KINGDOM", + 1996 + ], + [ + 11250.8352, + "PERU", + "VIETNAM", + 1995 + ], + [ + 17274.789, + "PERU", + "VIETNAM", + 1996 + ], + [ + 162589.3545, + "UNITED KINGDOM", + "ALGERIA", + 1995 + ], + [ + 154360.3794, + "UNITED KINGDOM", + "ALGERIA", + 1996 + ], + [ + 36307.9196, + "UNITED KINGDOM", + "ARGENTINA", + 1995 + ], + [ + 95785.65719999999, + "UNITED KINGDOM", + "ARGENTINA", + 1996 + ], + [ + 118313.35380000001, + "UNITED KINGDOM", + "BRAZIL", + 1996 + ], + [ + 111470.43629999999, + "UNITED KINGDOM", + "CANADA", + 1995 + ], + [ + 164444.2782, + "UNITED KINGDOM", + "CANADA", + 1996 + ], + [ + 164565.8457, + "UNITED KINGDOM", + "CHINA", + 1995 + ], + [ + 102883.16450000001, + "UNITED KINGDOM", + "CHINA", + 1996 + ], + [ + 57707.0536, + "UNITED KINGDOM", + "EGYPT", + 1995 + ], + [ + 219849.534, + "UNITED KINGDOM", + "EGYPT", + 1996 + ], + [ + 9421.922999999999, + "UNITED KINGDOM", + "ETHIOPIA", + 1995 + ], + [ + 45289.2423, + "UNITED KINGDOM", + "ETHIOPIA", + 1996 + ], + [ + 1006.6548000000001, + "UNITED KINGDOM", + "FRANCE", + 1995 + ], + [ + 111976.4848, + "UNITED KINGDOM", + "FRANCE", + 1996 + ], + [ + 50909.551999999996, + "UNITED KINGDOM", + "GERMANY", + 1996 + ], + [ + 167210.81, + "UNITED KINGDOM", + "INDIA", + 1995 + ], + [ + 82120.4618, + "UNITED KINGDOM", + "INDIA", + 1996 + ], + [ + 111407.38199999998, + "UNITED KINGDOM", + "INDONESIA", + 1995 + ], + [ + 227676.86649999997, + "UNITED KINGDOM", + "INDONESIA", + 1996 + ], + [ + 127095.93470000001, + "UNITED KINGDOM", + "IRAN", + 1995 + ], + [ + 104708.43800000001, + "UNITED KINGDOM", + "IRAN", + 1996 + ], + [ + 237507.1622, + "UNITED KINGDOM", + "IRAQ", + 1995 + ], + [ + 198905.7776, + "UNITED KINGDOM", + "IRAQ", + 1996 + ], + [ + 204984.6469, + "UNITED KINGDOM", + "JAPAN", + 1995 + ], + [ + 40186.3254, + "UNITED KINGDOM", + "JAPAN", + 1996 + ], + [ + 36505.17, + "UNITED KINGDOM", + "JORDAN", + 1995 + ], + [ + 78390.9252, + "UNITED KINGDOM", + "JORDAN", + 1996 + ], + [ + 246586.58520000003, + "UNITED KINGDOM", + "MOROCCO", + 1995 + ], + [ + 82580.7991, + "UNITED KINGDOM", + "MOROCCO", + 1996 + ], + [ + 15961.0048, + "UNITED KINGDOM", + "MOZAMBIQUE", + 1995 + ], + [ + 123491.88199999998, + "UNITED KINGDOM", + "MOZAMBIQUE", + 1996 + ], + [ + 289310.7607, + "UNITED KINGDOM", + "PERU", + 1995 + ], + [ + 259663.00000000003, + "UNITED KINGDOM", + "PERU", + 1996 + ], + [ + 77972.6142, + "UNITED KINGDOM", + "ROMANIA", + 1995 + ], + [ + 151476.40870000003, + "UNITED KINGDOM", + "ROMANIA", + 1996 + ], + [ + 17902.8213, + "UNITED KINGDOM", + "RUSSIA", + 1995 + ], + [ + 71091.8812, + "UNITED KINGDOM", + "RUSSIA", + 1996 + ], + [ + 41060.145000000004, + "UNITED KINGDOM", + "SAUDI ARABIA", + 1996 + ], + [ + 11474.9568, + "UNITED KINGDOM", + "UNITED KINGDOM", + 1995 + ], + [ + 156951.2512, + "UNITED KINGDOM", + "UNITED KINGDOM", + 1996 + ], + [ + 28039.3652, + "UNITED KINGDOM", + "VIETNAM", + 1995 + ], + [ + 14850.526399999999, + "UNITED KINGDOM", + "VIETNAM", + 1996 + ], + [ + 128868.60689999998, + "UNITED STATES", + "ALGERIA", + 1995 + ], + [ + 89048.40909999999, + "UNITED STATES", + "ALGERIA", + 1996 + ], + [ + 15853.4496, + "UNITED STATES", + "ARGENTINA", + 1995 + ], + [ + 71083.6293, + "UNITED STATES", + "ARGENTINA", + 1996 + ], + [ + 2605.662, + "UNITED STATES", + "BRAZIL", + 1995 + ], + [ + 50783.1744, + "UNITED STATES", + "BRAZIL", + 1996 + ], + [ + 248815.61799999996, + "UNITED STATES", + "CANADA", + 1995 + ], + [ + 272137.84010000003, + "UNITED STATES", + "CANADA", + 1996 + ], + [ + 130212.3261, + "UNITED STATES", + "CHINA", + 1995 + ], + [ + 195468.6891, + "UNITED STATES", + "CHINA", + 1996 + ], + [ + 5500.842, + "UNITED STATES", + "EGYPT", + 1995 + ], + [ + 173889.91240000003, + "UNITED STATES", + "EGYPT", + 1996 + ], + [ + 28372.764, + "UNITED STATES", + "ETHIOPIA", + 1996 + ], + [ + 39114.3576, + "UNITED STATES", + "FRANCE", + 1995 + ], + [ + 14245.468499999999, + "UNITED STATES", + "FRANCE", + 1996 + ], + [ + 80489.69949999999, + "UNITED STATES", + "GERMANY", + 1995 + ], + [ + 85956.4101, + "UNITED STATES", + "INDIA", + 1995 + ], + [ + 85987.966, + "UNITED STATES", + "INDIA", + 1996 + ], + [ + 195087.4751, + "UNITED STATES", + "INDONESIA", + 1995 + ], + [ + 161342.3262, + "UNITED STATES", + "INDONESIA", + 1996 + ], + [ + 81710.31689999999, + "UNITED STATES", + "IRAN", + 1995 + ], + [ + 44276.8672, + "UNITED STATES", + "IRAN", + 1996 + ], + [ + 169419.2867, + "UNITED STATES", + "IRAQ", + 1995 + ], + [ + 134953.9351, + "UNITED STATES", + "IRAQ", + 1996 + ], + [ + 52605.10079999999, + "UNITED STATES", + "JAPAN", + 1995 + ], + [ + 72845.364, + "UNITED STATES", + "JAPAN", + 1996 + ], + [ + 168521.771, + "UNITED STATES", + "JORDAN", + 1995 + ], + [ + 4173.122, + "UNITED STATES", + "KENYA", + 1995 + ], + [ + 268886.96180000005, + "UNITED STATES", + "MOROCCO", + 1995 + ], + [ + 98809.215, + "UNITED STATES", + "MOROCCO", + 1996 + ], + [ + 96370.3878, + "UNITED STATES", + "MOZAMBIQUE", + 1995 + ], + [ + 98054.8491, + "UNITED STATES", + "MOZAMBIQUE", + 1996 + ], + [ + 322213.21400000004, + "UNITED STATES", + "PERU", + 1995 + ], + [ + 152615.4166, + "UNITED STATES", + "PERU", + 1996 + ], + [ + 46069.4857, + "UNITED STATES", + "ROMANIA", + 1995 + ], + [ + 233698.8018, + "UNITED STATES", + "ROMANIA", + 1996 + ], + [ + 39120.9, + "UNITED STATES", + "RUSSIA", + 1995 + ], + [ + 109881.48270000001, + "UNITED STATES", + "RUSSIA", + 1996 + ], + [ + 43975.98160000001, + "UNITED STATES", + "SAUDI ARABIA", + 1995 + ], + [ + 39308.9136, + "UNITED STATES", + "SAUDI ARABIA", + 1996 + ], + [ + 56862.7312, + "UNITED STATES", + "UNITED KINGDOM", + 1995 + ], + [ + 125472.13840000001, + "UNITED STATES", + "UNITED KINGDOM", + 1996 + ], + [ + 25532.9175, + "UNITED STATES", + "VIETNAM", + 1995 + ], + [ + 76721.343, + "UNITED STATES", + "VIETNAM", + 1996 + ] + ], + "total": 388, + "size": 388 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_186.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_186.ppl new file mode 100644 index 000000000..8ac069f08 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_186.ppl @@ -0,0 +1 @@ +source = [ source = mys3.default.part | join ON p_partkey = l_partkey mys3.default.lineitem | join ON s_suppkey = l_suppkey mys3.default.supplier | join ON l_orderkey = o_orderkey mys3.default.orders | join ON o_custkey = c_custkey mys3.default.customer | join ON c_nationkey = n1.n_nationkey mys3.default.nation as n1 | join ON s_nationkey = n2.n_nationkey mys3.default.nation as n2 | join ON n1.n_regionkey = r_regionkey mys3.default.region | where r_name = 'AMERICA' AND p_type = 'ECONOMY ANODIZED STEEL' and o_orderdate between date('1995-01-01') and date('1996-12-31') | eval o_year = year(o_orderdate) | eval volume = l_extendedprice * (1 - l_discount) | eval nation = n2.n_name | fields o_year, volume, nation ] as all_nations | stats sum(case(nation = 'BRAZIL', volume else 0)) as sum_case, sum(volume) as sum_volume by o_year | eval mkt_share = sum_case / sum_volume | fields mkt_share, o_year | sort o_year \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_186.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_186.results new file mode 100644 index 000000000..355936512 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_186.results @@ -0,0 +1,25 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "mkt_share", + "type": "double" + }, + { + "name": "o_year", + "type": "integer" + } + ], + "datarows": [ + [ + 0.0, + 1995 + ], + [ + 0.0, + 1996 + ] + ], + "total": 2, + "size": 2 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_187.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_187.ppl new file mode 100644 index 000000000..39b7fbb70 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_187.ppl @@ -0,0 +1,15 @@ +source = [ + source = mys3.default.part + | join ON p_partkey = l_partkey mys3.default.lineitem + | join ON s_suppkey = l_suppkey mys3.default.supplier + | join ON ps_partkey = l_partkey and ps_suppkey = l_suppkey mys3.default.partsupp + | join ON o_orderkey = l_orderkey mys3.default.orders + | join ON s_nationkey = n_nationkey mys3.default.nation + | where like(p_name, '%green%') + | eval nation = n_name + | eval o_year = year(o_orderdate) + | eval amount = l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity + | fields nation, o_year, amount + ] as profit +| stats sum(amount) as sum_profit by nation, o_year +| sort nation, - o_year \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_187.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_187.results new file mode 100644 index 000000000..8ba3269e0 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_187.results @@ -0,0 +1,321 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "sum_profit", + "type": "double" + }, + { + "name": "nation", + "type": "string" + }, + { + "name": "o_year", + "type": "integer" + } + ], + "datarows": [ + [ + 17779.069700000007, + "ARGENTINA", + 1998 + ], + [ + 13943.953800000003, + "ARGENTINA", + 1997 + ], + [ + 7641.422700000003, + "ARGENTINA", + 1996 + ], + [ + 20892.752500000002, + "ARGENTINA", + 1995 + ], + [ + 15088.352599999998, + "ARGENTINA", + 1994 + ], + [ + 17586.344600000004, + "ARGENTINA", + 1993 + ], + [ + 28732.461499999994, + "ARGENTINA", + 1992 + ], + [ + 28217.159999999996, + "ETHIOPIA", + 1998 + ], + [ + 33970.65, + "ETHIOPIA", + 1996 + ], + [ + 37720.35, + "ETHIOPIA", + 1995 + ], + [ + 37251.01, + "ETHIOPIA", + 1994 + ], + [ + 23782.61, + "ETHIOPIA", + 1993 + ], + [ + 23590.007999999998, + "IRAN", + 1997 + ], + [ + 7428.232500000005, + "IRAN", + 1996 + ], + [ + 21000.996499999994, + "IRAN", + 1995 + ], + [ + 29408.13, + "IRAN", + 1994 + ], + [ + 49876.41499999999, + "IRAN", + 1993 + ], + [ + 52064.24, + "IRAN", + 1992 + ], + [ + 11619.960399999996, + "IRAQ", + 1998 + ], + [ + 47910.246, + "IRAQ", + 1997 + ], + [ + 18459.567499999997, + "IRAQ", + 1996 + ], + [ + 32782.37010000001, + "IRAQ", + 1995 + ], + [ + 9041.2317, + "IRAQ", + 1994 + ], + [ + 30687.2625, + "IRAQ", + 1993 + ], + [ + 29098.2557, + "IRAQ", + 1992 + ], + [ + 33148.3345, + "KENYA", + 1998 + ], + [ + 54355.016500000005, + "KENYA", + 1997 + ], + [ + 53607.4854, + "KENYA", + 1996 + ], + [ + 85354.87380000002, + "KENYA", + 1995 + ], + [ + 102904.2511, + "KENYA", + 1994 + ], + [ + 109310.8084, + "KENYA", + 1993 + ], + [ + 138534.12099999998, + "KENYA", + 1992 + ], + [ + 157058.2328, + "MOROCCO", + 1998 + ], + [ + 88669.96099999998, + "MOROCCO", + 1997 + ], + [ + 236833.66719999997, + "MOROCCO", + 1996 + ], + [ + 381575.86679999996, + "MOROCCO", + 1995 + ], + [ + 243523.43360000005, + "MOROCCO", + 1994 + ], + [ + 232196.7802999999, + "MOROCCO", + 1993 + ], + [ + 347434.1452, + "MOROCCO", + 1992 + ], + [ + 101109.01959999997, + "PERU", + 1998 + ], + [ + 58073.086599999995, + "PERU", + 1997 + ], + [ + 30360.52179999999, + "PERU", + 1996 + ], + [ + 138451.78, + "PERU", + 1995 + ], + [ + 55023.063200000004, + "PERU", + 1994 + ], + [ + 110409.08629999998, + "PERU", + 1993 + ], + [ + 70946.1916, + "PERU", + 1992 + ], + [ + 139685.04400000002, + "UNITED KINGDOM", + 1998 + ], + [ + 183502.04979999995, + "UNITED KINGDOM", + 1997 + ], + [ + 374085.28839999996, + "UNITED KINGDOM", + 1996 + ], + [ + 548356.7983999999, + "UNITED KINGDOM", + 1995 + ], + [ + 266982.7679999999, + "UNITED KINGDOM", + 1994 + ], + [ + 717309.464, + "UNITED KINGDOM", + 1993 + ], + [ + 79540.60160000001, + "UNITED KINGDOM", + 1992 + ], + [ + 32847.96, + "UNITED STATES", + 1998 + ], + [ + 30849.5, + "UNITED STATES", + 1997 + ], + [ + 56125.46000000001, + "UNITED STATES", + 1996 + ], + [ + 15961.7977, + "UNITED STATES", + 1995 + ], + [ + 31671.2, + "UNITED STATES", + 1994 + ], + [ + 55057.469, + "UNITED STATES", + 1993 + ], + [ + 51970.23, + "UNITED STATES", + 1992 + ] + ], + "total": 60, + "size": 60 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_188.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_188.ppl new file mode 100644 index 000000000..06d0bfbdf --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_188.ppl @@ -0,0 +1,10 @@ +source = mys3.default.customer +| join ON c_custkey = o_custkey mys3.default.orders +| join ON l_orderkey = o_orderkey mys3.default.lineitem +| join ON c_nationkey = n_nationkey mys3.default.nation +| where o_orderdate >= date('1993-10-01') + AND o_orderdate < date_add(date('1993-10-01'), interval 3 month) + AND l_returnflag = 'R' +| stats sum(l_extendedprice * (1 - l_discount)) as revenue by c_custkey, c_name, c_acctbal, c_phone, n_name, c_address, c_comment +| sort - revenue +| head 20 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_188.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_188.results new file mode 100644 index 000000000..0d0a7374a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_188.results @@ -0,0 +1,241 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "revenue", + "type": "double" + }, + { + "name": "c_custkey", + "type": "long" + }, + { + "name": "c_name", + "type": "string" + }, + { + "name": "c_acctbal", + "type": "double" + }, + { + "name": "c_phone", + "type": "string" + }, + { + "name": "n_name", + "type": "string" + }, + { + "name": "c_address", + "type": "string" + }, + { + "name": "c_comment", + "type": "string" + } + ], + "datarows": [ + [ + 282635.1719, + 121, + "Customer#000000121", + 6428.32, + "27-411-990-2959", + "PERU", + "tv nCR2YKupGN73mQudO", + "uriously stealthy ideas. carefully final courts use carefully" + ], + [ + 222182.5188, + 124, + "Customer#000000124", + 1842.49, + "28-183-750-7809", + "CHINA", + "aTbyVAW5tCd,v09O", + "le fluffily even dependencies. quietly s" + ], + [ + 190241.3334, + 106, + "Customer#000000106", + 3288.42, + "11-751-989-4627", + "ARGENTINA", + "xGCOEAUjUNG", + "lose slyly. ironic accounts along the evenly regular theodolites wake about the special, final gifts. " + ], + [ + 161422.04609999998, + 16, + "Customer#000000016", + 4681.03, + "20-781-609-3107", + "IRAN", + "cYiaeMLZSMAOQ2 d0W,", + "kly silent courts. thinly regular theodolites sleep fluffily after " + ], + [ + 149364.5652, + 44, + "Customer#000000044", + 7315.94, + "26-190-260-5375", + "MOZAMBIQUE", + "Oi,dOSPwDu4jo4x,,P85E0dmhZGvNtBwi", + "r requests around the unusual, bold a" + ], + [ + 129481.02450000001, + 71, + "Customer#000000071", + -611.19, + "17-710-812-5403", + "GERMANY", + "TlGalgdXWBmMV,6agLyWYDyIz9MKzcY8gl,w6t1B", + "g courts across the regular, final pinto beans are blithely pending ac" + ], + [ + 121663.1243, + 89, + "Customer#000000089", + 1530.76, + "24-394-451-5404", + "KENYA", + "dtR, y9JQWUO6FoJExyp8whOU", + "counts are slyly beyond the slyly final accounts. quickly final ideas wake. r" + ], + [ + 111137.7141, + 112, + "Customer#000000112", + 2953.35, + "29-233-262-8382", + "ROMANIA", + "RcfgG3bO7QeCnfjqJT1", + "rmanently unusual multipliers. blithely ruthless deposits are furiously along the" + ], + [ + 106368.0153, + 62, + "Customer#000000062", + 595.61, + "17-361-978-7059", + "GERMANY", + "upJK2Dnw13,", + "kly special dolphins. pinto beans are slyly. quickly regular accounts are furiously a" + ], + [ + 103265.98879999999, + 146, + "Customer#000000146", + 3328.68, + "13-835-723-3223", + "CANADA", + "GdxkdXG9u7iyI1,,y5tq4ZyrcEy", + "ffily regular dinos are slyly unusual requests. slyly specia" + ], + [ + 99306.0127, + 19, + "Customer#000000019", + 8914.71, + "28-396-526-5053", + "CHINA", + "uc,3bHIx84H,wdrmLOjVsiqXCq2tr", + " nag. furiously careful packages are slyly at the accounts. furiously regular in" + ], + [ + 99256.90179999999, + 145, + "Customer#000000145", + 9748.93, + "23-562-444-8454", + "JORDAN", + "kQjHmt2kcec cy3hfMh969u", + "ests? express, express instructions use. blithely fina" + ], + [ + 97311.77240000002, + 103, + "Customer#000000103", + 2757.45, + "19-216-107-2107", + "INDONESIA", + "8KIsQX4LJ7QMsj6DrtFtXu0nUEdV,8a", + "furiously pending notornis boost slyly around the blithely ironic ideas? final, even instructions cajole fl" + ], + [ + 95855.398, + 136, + "Customer#000000136", + -842.39, + "17-501-210-4726", + "GERMANY", + "QoLsJ0v5C1IQbh,DS1", + "ackages sleep ironic, final courts. even requests above the blithely bold requests g" + ], + [ + 92568.91239999999, + 53, + "Customer#000000053", + 4113.64, + "25-168-852-5363", + "MOROCCO", + "HnaxHzTfFTZs8MuCpJyTbZ47Cm4wFOOgib", + "ar accounts are. even foxes are blithely. fluffily pending deposits boost" + ], + [ + 90965.7262, + 49, + "Customer#000000049", + 4573.94, + "20-908-631-4424", + "IRAN", + "cNgAeX7Fqrdf7HQN9EwjUa4nxT,68L FKAxzl", + "nusual foxes! fluffily pending packages maintain to the regular " + ], + [ + 88065.74579999999, + 37, + "Customer#000000037", + -917.75, + "18-385-235-7162", + "INDIA", + "7EV4Pwh,3SboctTWt", + "ilent packages are carefully among the deposits. furiousl" + ], + [ + 86998.9644, + 82, + "Customer#000000082", + 9468.34, + "28-159-442-5305", + "CHINA", + "zhG3EZbap4c992Gj3bK,3Ne,Xn", + "s wake. bravely regular accounts are furiously. regula" + ], + [ + 84808.068, + 125, + "Customer#000000125", + -234.12, + "29-261-996-3120", + "ROMANIA", + ",wSZXdVR xxIIfm9s8ITyLl3kgjT6UC07GY0Y", + "x-ray finally after the packages? regular requests c" + ], + [ + 84655.5711, + 59, + "Customer#000000059", + 3458.6, + "11-355-584-3112", + "ARGENTINA", + "zLOCP0wh92OtBihgspOGl4", + "ously final packages haggle blithely after the express deposits. furiou" + ] + ], + "total": 20, + "size": 20 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_189.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_189.ppl new file mode 100644 index 000000000..094597c5e --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_189.ppl @@ -0,0 +1,15 @@ +source = mys3.default.partsupp +| join ON ps_suppkey = s_suppkey mys3.default.supplier +| join ON s_nationkey = n_nationkey mys3.default.nation +| where n_name = 'GERMANY' +| stats sum(ps_supplycost * ps_availqty) as value by ps_partkey +| where value > [ + source = mys3.default.partsupp + | join ON ps_suppkey = s_suppkey mys3.default.supplier + | join ON s_nationkey = n_nationkey mys3.default.nation + | where n_name = 'GERMANY' + | stats sum(ps_supplycost * ps_availqty) as check + | eval threshold = check * 0.0001000000 + | fields threshold + ] +| sort - value \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_189.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_189.results new file mode 100644 index 000000000..9df7bb48c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_189.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "value", + "type": "double" + }, + { + "name": "ps_partkey", + "type": "long" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_190.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_190.ppl new file mode 100644 index 000000000..63a05b38f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_190.ppl @@ -0,0 +1,11 @@ +source = mys3.default.orders +| join ON o_orderkey = l_orderkey mys3.default.lineitem +| where l_commitdate < l_receiptdate + and l_shipdate < l_commitdate + and l_shipmode in ('MAIL', 'SHIP') + and l_receiptdate >= date('1994-01-01') + and l_receiptdate < date_add(date('1994-01-01'), interval 1 year) +| stats sum(case(o_orderpriority = '1-URGENT' or o_orderpriority = '2-HIGH', 1 else 0)) as high_line_count, + sum(case(o_orderpriority != '1-URGENT' and o_orderpriority != '2-HIGH', 1 else 0)) as low_line_countby + by l_shipmode +| sort l_shipmode \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_190.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_190.results new file mode 100644 index 000000000..a98570e3a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_190.results @@ -0,0 +1,31 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "high_line_count", + "type": "long" + }, + { + "name": "low_line_countby", + "type": "long" + }, + { + "name": "l_shipmode", + "type": "string" + } + ], + "datarows": [ + [ + 5, + 5, + "MAIL" + ], + [ + 5, + 10, + "SHIP" + ] + ], + "total": 2, + "size": 2 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_191.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_191.ppl new file mode 100644 index 000000000..25b1146d4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_191.ppl @@ -0,0 +1,8 @@ +source = [ + source = mys3.default.customer + | left outer join ON c_custkey = o_custkey AND not like(o_comment, '%special%requests%') + mys3.default.orders + | stats count(o_orderkey) as c_count by c_custkey + ] as c_orders +| stats count() as custdist by c_count +| sort - custdist, - c_count \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_191.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_191.results new file mode 100644 index 000000000..59b12b4b7 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_191.results @@ -0,0 +1,125 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "custdist", + "type": "long" + }, + { + "name": "c_count", + "type": "long" + } + ], + "datarows": [ + [ + 50, + 0 + ], + [ + 8, + 16 + ], + [ + 7, + 17 + ], + [ + 6, + 20 + ], + [ + 6, + 13 + ], + [ + 6, + 12 + ], + [ + 6, + 9 + ], + [ + 5, + 23 + ], + [ + 5, + 14 + ], + [ + 5, + 10 + ], + [ + 4, + 21 + ], + [ + 4, + 18 + ], + [ + 4, + 11 + ], + [ + 4, + 8 + ], + [ + 4, + 7 + ], + [ + 3, + 26 + ], + [ + 3, + 22 + ], + [ + 3, + 6 + ], + [ + 3, + 5 + ], + [ + 3, + 4 + ], + [ + 2, + 29 + ], + [ + 2, + 24 + ], + [ + 2, + 19 + ], + [ + 2, + 15 + ], + [ + 1, + 28 + ], + [ + 1, + 25 + ], + [ + 1, + 3 + ] + ], + "total": 27, + "size": 27 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_192.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_192.ppl new file mode 100644 index 000000000..629a97d06 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_192.ppl @@ -0,0 +1,9 @@ +source = mys3.default.lineitem +| join ON l_partkey = p_partkey + AND l_shipdate >= date('1995-09-01') + AND l_shipdate < date_add(date('1995-09-01'), interval 1 month) + mys3.default.part +| stats sum(case(like(p_type, 'PROMO%'), l_extendedprice * (1 - l_discount) else 0)) as sum1, + sum(l_extendedprice * (1 - l_discount)) as sum2 +| eval promo_revenue = 100.00 * sum1 / sum2 // Stats and Eval commands can combine when issues/819 resolved +| fields promo_revenue \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_192.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_192.results new file mode 100644 index 000000000..59ec69382 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_192.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "promo_revenue", + "type": "double" + } + ], + "datarows": [ + [ + 15.230212611597254 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_193.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_193.ppl new file mode 100644 index 000000000..3fbb27052 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_193.ppl @@ -0,0 +1,18 @@ +source = mys3.default.supplier +| join right = revenue0 ON s_suppkey = supplier_no [ + source = mys3.default.lineitem + | where l_shipdate >= date('1996-01-01') AND l_shipdate < date_add(date('1996-01-01'), interval 3 month) + | eval supplier_no = l_suppkey + | stats sum(l_extendedprice * (1 - l_discount)) as total_revenue by supplier_no + ] +| where total_revenue = [ + source = [ + source = mys3.default.lineitem + | where l_shipdate >= date('1996-01-01') AND l_shipdate < date_add(date('1996-01-01'), interval 3 month) + | eval supplier_no = l_suppkey + | stats sum(l_extendedprice * (1 - l_discount)) as total_revenue by supplier_no + ] + | stats max(total_revenue) + ] +| sort s_suppkey +| fields s_suppkey, s_name, s_address, s_phone, total_revenue \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_193.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_193.results new file mode 100644 index 000000000..1973bd7f5 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_193.results @@ -0,0 +1,36 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "s_suppkey", + "type": "long" + }, + { + "name": "s_name", + "type": "string" + }, + { + "name": "s_address", + "type": "string" + }, + { + "name": "s_phone", + "type": "string" + }, + { + "name": "total_revenue", + "type": "double" + } + ], + "datarows": [ + [ + 10, + "Supplier#000000010", + "Saygah3gYWMp72i PY", + "34-852-489-8585", + 797313.3838 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_194.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_194.ppl new file mode 100644 index 000000000..76872bc5c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_194.ppl @@ -0,0 +1,12 @@ +source = mys3.default.partsupp +| join ON p_partkey = ps_partkey mys3.default.part +| where p_brand != 'Brand#45' + and not like(p_type, 'MEDIUM POLISHED%') + and p_size in (49, 14, 23, 45, 19, 3, 36, 9) + and ps_suppkey not in [ + source = mys3.default.supplier + | where like(s_comment, '%Customer%Complaints%') + | fields s_suppkey + ] +| stats distinct_count(ps_suppkey) as supplier_cnt by p_brand, p_type, p_size +| sort - supplier_cnt, p_brand, p_type, p_size \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_194.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_194.results new file mode 100644 index 000000000..712377004 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_194.results @@ -0,0 +1,229 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "supplier_cnt", + "type": "long" + }, + { + "name": "p_brand", + "type": "string" + }, + { + "name": "p_type", + "type": "string" + }, + { + "name": "p_size", + "type": "integer" + } + ], + "datarows": [ + [ + 4, + "Brand#11", + "PROMO ANODIZED TIN", + 45 + ], + [ + 4, + "Brand#11", + "SMALL PLATED COPPER", + 45 + ], + [ + 4, + "Brand#11", + "STANDARD POLISHED TIN", + 45 + ], + [ + 4, + "Brand#13", + "MEDIUM ANODIZED STEEL", + 36 + ], + [ + 4, + "Brand#14", + "SMALL ANODIZED NICKEL", + 45 + ], + [ + 4, + "Brand#15", + "LARGE ANODIZED BRASS", + 45 + ], + [ + 4, + "Brand#21", + "LARGE BURNISHED COPPER", + 19 + ], + [ + 4, + "Brand#23", + "ECONOMY BRUSHED COPPER", + 9 + ], + [ + 4, + "Brand#25", + "MEDIUM PLATED BRASS", + 45 + ], + [ + 4, + "Brand#31", + "ECONOMY PLATED STEEL", + 23 + ], + [ + 4, + "Brand#31", + "PROMO POLISHED TIN", + 23 + ], + [ + 4, + "Brand#32", + "MEDIUM BURNISHED BRASS", + 49 + ], + [ + 4, + "Brand#33", + "LARGE BRUSHED TIN", + 36 + ], + [ + 4, + "Brand#33", + "SMALL BURNISHED NICKEL", + 3 + ], + [ + 4, + "Brand#34", + "LARGE PLATED BRASS", + 45 + ], + [ + 4, + "Brand#34", + "MEDIUM BRUSHED COPPER", + 9 + ], + [ + 4, + "Brand#34", + "SMALL PLATED BRASS", + 14 + ], + [ + 4, + "Brand#35", + "STANDARD ANODIZED STEEL", + 23 + ], + [ + 4, + "Brand#43", + "PROMO POLISHED BRASS", + 19 + ], + [ + 4, + "Brand#43", + "SMALL BRUSHED NICKEL", + 9 + ], + [ + 4, + "Brand#44", + "SMALL PLATED COPPER", + 19 + ], + [ + 4, + "Brand#52", + "MEDIUM BURNISHED TIN", + 45 + ], + [ + 4, + "Brand#52", + "SMALL BURNISHED NICKEL", + 14 + ], + [ + 4, + "Brand#53", + "MEDIUM BRUSHED COPPER", + 3 + ], + [ + 4, + "Brand#55", + "STANDARD ANODIZED BRASS", + 36 + ], + [ + 4, + "Brand#55", + "STANDARD BRUSHED COPPER", + 3 + ], + [ + 2, + "Brand#13", + "SMALL BRUSHED NICKEL", + 19 + ], + [ + 2, + "Brand#25", + "SMALL BURNISHED COPPER", + 3 + ], + [ + 2, + "Brand#43", + "MEDIUM ANODIZED BRASS", + 14 + ], + [ + 2, + "Brand#53", + "STANDARD PLATED STEEL", + 45 + ], + [ + 1, + "Brand#24", + "MEDIUM PLATED STEEL", + 19 + ], + [ + 1, + "Brand#51", + "ECONOMY POLISHED STEEL", + 49 + ], + [ + 1, + "Brand#53", + "LARGE BURNISHED NICKEL", + 23 + ], + [ + 1, + "Brand#54", + "ECONOMY ANODIZED BRASS", + 9 + ] + ], + "total": 34, + "size": 34 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_195.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_195.ppl new file mode 100644 index 000000000..40f0cdd3d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_195.ppl @@ -0,0 +1,14 @@ +source = mys3.default.lineitem +| join ON p_partkey = l_partkey mys3.default.part +| where p_brand = 'Brand#23' + and p_container = 'MED BOX' + and l_quantity < [ + source = mys3.default.lineitem + | where l_partkey = p_partkey + | stats avg(l_quantity) as avg + | eval `0.2 * avg` = 0.2 * avg + | fields `0.2 * avg` + ] +| stats sum(l_extendedprice) as sum +| eval avg_yearly = sum / 7.0 +| fields avg_yearly \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_195.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_195.results new file mode 100644 index 000000000..3ecac8532 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_195.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "avg_yearly", + "type": "double" + } + ], + "datarows": [ + [ + null + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_196.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_196.ppl new file mode 100644 index 000000000..6dc8d930f --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_196.ppl @@ -0,0 +1,12 @@ +source = mys3.default.customer +| join ON c_custkey = o_custkey mys3.default.orders +| join ON o_orderkey = l_orderkey mys3.default.lineitem +| where o_orderkey in [ + source = mys3.default.lineitem + | stats sum(l_quantity) as sum by l_orderkey + | where sum > 300 + | fields l_orderkey + ] +| stats sum(l_quantity) by c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice +| sort - o_totalprice, o_orderdate +| head 100 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_196.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_196.results new file mode 100644 index 000000000..05b6e80d3 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_196.results @@ -0,0 +1,32 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "sum(l_quantity)", + "type": "double" + }, + { + "name": "c_name", + "type": "string" + }, + { + "name": "c_custkey", + "type": "long" + }, + { + "name": "o_orderkey", + "type": "long" + }, + { + "name": "o_orderdate", + "type": "timestamp_ntz" + }, + { + "name": "o_totalprice", + "type": "double" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_197.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_197.ppl new file mode 100644 index 000000000..12d4f4ba3 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_197.ppl @@ -0,0 +1,23 @@ +source = mys3.default.lineitem +| join ON p_partkey = l_partkey + and p_brand = 'Brand#12' + and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') + and l_quantity >= 1 and l_quantity <= 1 + 10 + and p_size between 1 and 5 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + OR p_partkey = l_partkey + and p_brand = 'Brand#23' + and p_container in ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') + and l_quantity >= 10 and l_quantity <= 10 + 10 + and p_size between 1 and 10 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + OR p_partkey = l_partkey + and p_brand = 'Brand#34' + and p_container in ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') + and l_quantity >= 20 and l_quantity <= 20 + 10 + and p_size between 1 and 15 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + mys3.default.part \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_197.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_197.results new file mode 100644 index 000000000..31f20fee6 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_197.results @@ -0,0 +1,108 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "l_orderkey", + "type": "long" + }, + { + "name": "l_partkey", + "type": "long" + }, + { + "name": "l_suppkey", + "type": "long" + }, + { + "name": "l_linenumber", + "type": "integer" + }, + { + "name": "l_quantity", + "type": "double" + }, + { + "name": "l_extendedprice", + "type": "double" + }, + { + "name": "l_discount", + "type": "double" + }, + { + "name": "l_tax", + "type": "double" + }, + { + "name": "l_returnflag", + "type": "string" + }, + { + "name": "l_linestatus", + "type": "string" + }, + { + "name": "l_shipdate", + "type": "timestamp_ntz" + }, + { + "name": "l_commitdate", + "type": "timestamp_ntz" + }, + { + "name": "l_receiptdate", + "type": "timestamp_ntz" + }, + { + "name": "l_shipinstruct", + "type": "string" + }, + { + "name": "l_shipmode", + "type": "string" + }, + { + "name": "l_comment", + "type": "string" + }, + { + "name": "p_partkey", + "type": "long" + }, + { + "name": "p_name", + "type": "string" + }, + { + "name": "p_mfgr", + "type": "string" + }, + { + "name": "p_brand", + "type": "string" + }, + { + "name": "p_type", + "type": "string" + }, + { + "name": "p_size", + "type": "integer" + }, + { + "name": "p_container", + "type": "string" + }, + { + "name": "p_retailprice", + "type": "double" + }, + { + "name": "p_comment", + "type": "string" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_198.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_198.ppl new file mode 100644 index 000000000..7384ed81d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_198.ppl @@ -0,0 +1,22 @@ +source = mys3.default.supplier +| join ON s_nationkey = n_nationkey mys3.default.nation +| where n_name = 'CANADA' + and s_suppkey in [ + source = mys3.default.partsupp + | where ps_partkey in [ + source = mys3.default.part + | where like(p_name, 'forest%') + | fields p_partkey + ] + and ps_availqty > [ + source = mys3.default.lineitem + | where l_partkey = ps_partkey + and l_suppkey = ps_suppkey + and l_shipdate >= date('1994-01-01') + and l_shipdate < date_add(date('1994-01-01'), interval 1 year) + | stats sum(l_quantity) as sum_l_quantity + | eval half_sum_l_quantity = 0.5 * sum_l_quantity + | fields half_sum_l_quantity + ] + | fields ps_suppkey + ] \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_198.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_198.results new file mode 100644 index 000000000..8d07431c4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_198.results @@ -0,0 +1,52 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "s_suppkey", + "type": "long" + }, + { + "name": "s_name", + "type": "string" + }, + { + "name": "s_address", + "type": "string" + }, + { + "name": "s_nationkey", + "type": "long" + }, + { + "name": "s_phone", + "type": "string" + }, + { + "name": "s_acctbal", + "type": "double" + }, + { + "name": "s_comment", + "type": "string" + }, + { + "name": "n_nationkey", + "type": "long" + }, + { + "name": "n_name", + "type": "string" + }, + { + "name": "n_regionkey", + "type": "long" + }, + { + "name": "n_comment", + "type": "string" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_199.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/query_199.ppl new file mode 100644 index 000000000..34f9e1db9 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_199.ppl @@ -0,0 +1,21 @@ +source = mys3.default.supplier +| join ON s_suppkey = l1.l_suppkey mys3.default.lineitem as l1 +| join ON o_orderkey = l1.l_orderkey mys3.default.orders +| join ON s_nationkey = n_nationkey mys3.default.nation +| where o_orderstatus = 'F' + and l1.l_receiptdate > l1.l_commitdate + and exists [ + source = mys3.default.lineitem as l2 + | where l2.l_orderkey = l1.l_orderkey + and l2.l_suppkey != l1.l_suppkey + ] + and not exists [ + source = mys3.default.lineitem as l3 + | where l3.l_orderkey = l1.l_orderkey + and l3.l_suppkey != l1.l_suppkey + and l3.l_receiptdate > l3.l_commitdate + ] + and n_name = 'SAUDI ARABIA' +| stats count() as numwait by s_name +| sort - numwait, s_name +| head 100 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/query_199.results b/e2e-test/src/test/resources/opensearch/queries/ppl/query_199.results new file mode 100644 index 000000000..b97f4bc60 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/query_199.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "numwait", + "type": "long" + }, + { + "name": "s_name", + "type": "string" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/select-all.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/select-all.ppl new file mode 100644 index 000000000..31bbfe228 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/select-all.ppl @@ -0,0 +1 @@ +SOURCE=foo \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/select-all.results b/e2e-test/src/test/resources/opensearch/queries/ppl/select-all.results new file mode 100644 index 000000000..8f06ee397 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/select-all.results @@ -0,0 +1,25 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "id", + "type": "integer" + }, + { + "name": "name", + "type": "string" + } + ], + "datarows": [ + [ + 1, + "Foo" + ], + [ + 2, + "Bar" + ] + ], + "total": 2, + "size": 2 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_001.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_001.ppl new file mode 100644 index 000000000..181d763d5 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_001.ppl @@ -0,0 +1,35 @@ +/* +select + l_returnflag, + l_linestatus, + sum(l_quantity) as sum_qty, + sum(l_extendedprice) as sum_base_price, + sum(l_extendedprice * (1 - l_discount)) as sum_disc_price, + sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge, + avg(l_quantity) as avg_qty, + avg(l_extendedprice) as avg_price, + avg(l_discount) as avg_disc, + count(*) as count_order +from + mys3.default.lineitem +where + l_shipdate <= date '1998-12-01' - interval '90' day +group by + l_returnflag, + l_linestatus +order by + l_returnflag, + l_linestatus +*/ + +source = mys3.default.lineitem +| where l_shipdate <= subdate(date('1998-12-01'), 90) +| stats sum(l_quantity) as sum_qty, + sum(l_extendedprice) as sum_base_price, + sum(l_extendedprice * (1 - l_discount)) as sum_disc_price, + sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge, + avg(l_quantity) as avg_qty, avg(l_extendedprice) as avg_price, + avg(l_discount) as avg_disc, + count() as count_order + by l_returnflag, l_linestatus +| sort l_returnflag, l_linestatus \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_001.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_001.results new file mode 100644 index 000000000..db0e9cf97 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_001.results @@ -0,0 +1,97 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "sum_qty", + "type": "double" + }, + { + "name": "sum_base_price", + "type": "double" + }, + { + "name": "sum_disc_price", + "type": "double" + }, + { + "name": "sum_charge", + "type": "double" + }, + { + "name": "avg_qty", + "type": "double" + }, + { + "name": "avg_price", + "type": "double" + }, + { + "name": "avg_disc", + "type": "double" + }, + { + "name": "count_order", + "type": "long" + }, + { + "name": "l_returnflag", + "type": "string" + }, + { + "name": "l_linestatus", + "type": "string" + } + ], + "datarows": [ + [ + 37474.0, + 3.756962463999998E7, + 3.5676192096999995E7, + 3.710141622242404E7, + 25.354533152909337, + 25419.231826792948, + 0.050866035182679493, + 1478, + "A", + "F" + ], + [ + 1041.0, + 1041301.07, + 999060.8979999998, + 1036450.80228, + 27.394736842105264, + 27402.659736842103, + 0.042894736842105284, + 38, + "N", + "F" + ], + [ + 75168.0, + 7.538495536999969E7, + 7.165316630340016E7, + 7.449879813307281E7, + 25.558653519211152, + 25632.422771166166, + 0.04969738184291069, + 2941, + "N", + "O" + ], + [ + 36511.0, + 3.657084124E7, + 3.473847287580004E7, + 3.616906011219294E7, + 25.059025394646532, + 25100.09693891558, + 0.050027453671928686, + 1457, + "R", + "F" + ] + ], + "total": 4, + "size": 4 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_002.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_002.ppl new file mode 100644 index 000000000..88861aa40 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_002.ppl @@ -0,0 +1,62 @@ +/* +select + s_acctbal, + s_name, + n_name, + p_partkey, + p_mfgr, + s_address, + s_phone, + s_comment +from + mys3.default.part, + mys3.default.supplier, + mys3.default.partsupp, + mys3.default.nation, + mys3.default.region +where + p_partkey = ps_partkey + and s_suppkey = ps_suppkey + and p_size = 15 + and p_type like '%BRASS' + and s_nationkey = n_nationkey + and n_regionkey = r_regionkey + and r_name = 'EUROPE' + and ps_supplycost = ( + select + min(ps_supplycost) + from + mys3.default.partsupp, + mys3.default.supplier, + mys3.default.nation, + mys3.default.region + where + p_partkey = ps_partkey + and s_suppkey = ps_suppkey + and s_nationkey = n_nationkey + and n_regionkey = r_regionkey + and r_name = 'EUROPE' + ) +order by + s_acctbal desc, + n_name, + s_name, + p_partkey +limit 100 +*/ + +source = part +| join ON p_partkey = ps_partkey partsupp +| join ON s_suppkey = ps_suppkey supplier +| join ON s_nationkey = n_nationkey nation +| join ON n_regionkey = r_regionkey region +| where p_size = 15 AND like(p_type, '%BRASS') AND r_name = 'EUROPE' AND ps_supplycost = [ + source = mys3.default.partsupp + | join ON s_suppkey = ps_suppkey mys3.default.supplier + | join ON s_nationkey = n_nationkey mys3.default.nation + | join ON n_regionkey = r_regionkey mys3.default.region + | where r_name = 'EUROPE' + | stats MIN(ps_supplycost) + ] +| sort - s_acctbal, n_name, s_name, p_partkey +| head 100 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_002.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_002.results new file mode 100644 index 000000000..3595164bb --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_002.results @@ -0,0 +1,120 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "p_partkey", + "type": "long" + }, + { + "name": "p_name", + "type": "string" + }, + { + "name": "p_mfgr", + "type": "string" + }, + { + "name": "p_brand", + "type": "string" + }, + { + "name": "p_type", + "type": "string" + }, + { + "name": "p_size", + "type": "integer" + }, + { + "name": "p_container", + "type": "string" + }, + { + "name": "p_retailprice", + "type": "double" + }, + { + "name": "p_comment", + "type": "string" + }, + { + "name": "ps_partkey", + "type": "long" + }, + { + "name": "ps_suppkey", + "type": "long" + }, + { + "name": "ps_availqty", + "type": "integer" + }, + { + "name": "ps_supplycost", + "type": "double" + }, + { + "name": "ps_comment", + "type": "string" + }, + { + "name": "s_suppkey", + "type": "long" + }, + { + "name": "s_name", + "type": "string" + }, + { + "name": "s_address", + "type": "string" + }, + { + "name": "s_nationkey", + "type": "long" + }, + { + "name": "s_phone", + "type": "string" + }, + { + "name": "s_acctbal", + "type": "double" + }, + { + "name": "s_comment", + "type": "string" + }, + { + "name": "n_nationkey", + "type": "long" + }, + { + "name": "n_name", + "type": "string" + }, + { + "name": "n_regionkey", + "type": "long" + }, + { + "name": "n_comment", + "type": "string" + }, + { + "name": "r_regionkey", + "type": "long" + }, + { + "name": "r_name", + "type": "string" + }, + { + "name": "r_comment", + "type": "string" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_003.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_003.ppl new file mode 100644 index 000000000..679918a36 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_003.ppl @@ -0,0 +1,33 @@ +/* +select + l_orderkey, + sum(l_extendedprice * (1 - l_discount)) as revenue, + o_orderdate, + o_shippriority +from + mys3.default.customer, + mys3.default.orders, + mys3.default.lineitem +where + c_mktsegment = 'BUILDING' + and c_custkey = o_custkey + and l_orderkey = o_orderkey + and o_orderdate < date '1995-03-15' + and l_shipdate > date '1995-03-15' +group by + l_orderkey, + o_orderdate, + o_shippriority +order by + revenue desc, + o_orderdate +limit 10 +*/ + +source = customer +| join ON c_custkey = o_custkey mys3.default.orders +| join ON l_orderkey = o_orderkey mys3.default.lineitem +| where c_mktsegment = 'BUILDING' AND o_orderdate < date('1995-03-15') AND l_shipdate > date('1995-03-15') +| stats sum(l_extendedprice * (1 - l_discount)) as revenue by l_orderkey, o_orderdate, o_shippriority +| sort - revenue, o_orderdate +| head 10 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_003.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_003.results new file mode 100644 index 000000000..f5f272611 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_003.results @@ -0,0 +1,73 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "revenue", + "type": "double" + }, + { + "name": "l_orderkey", + "type": "long" + }, + { + "name": "o_orderdate", + "type": "timestamp_ntz" + }, + { + "name": "o_shippriority", + "type": "string" + } + ], + "datarows": [ + [ + 164224.9253, + 1637, + "1995-02-08T00:00:00.000", + "0" + ], + [ + 49378.309400000006, + 5191, + "1994-12-11T00:00:00.000", + "0" + ], + [ + 43728.048, + 742, + "1994-12-23T00:00:00.000", + "0" + ], + [ + 43716.072400000005, + 3492, + "1994-11-24T00:00:00.000", + "0" + ], + [ + 36666.9612, + 2883, + "1995-01-23T00:00:00.000", + "0" + ], + [ + 11785.548600000002, + 998, + "1994-11-26T00:00:00.000", + "0" + ], + [ + 4726.6775, + 3430, + "1994-12-12T00:00:00.000", + "0" + ], + [ + 3055.9365, + 4423, + "1995-02-17T00:00:00.000", + "0" + ] + ], + "total": 8, + "size": 8 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_004.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_004.ppl new file mode 100644 index 000000000..88c926b07 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_004.ppl @@ -0,0 +1,33 @@ +/* +select + o_orderpriority, + count(*) as order_count +from + mys3.default.orders +where + o_orderdate >= date '1993-07-01' + and o_orderdate < date '1993-07-01' + interval '3' month + and exists ( + select + * + from + mys3.default.lineitem + where + l_orderkey = o_orderkey + and l_commitdate < l_receiptdate + ) +group by + o_orderpriority +order by + o_orderpriority +*/ + +source = mys3.default.orders +| where o_orderdate >= date('1993-07-01') + and o_orderdate < date_add(date('1993-07-01'), interval 3 month) + and exists [ + source = mys3.default.lineitem + | where l_orderkey = o_orderkey and l_commitdate < l_receiptdate + ] +| stats count() as order_count by o_orderpriority +| sort o_orderpriority \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_004.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_004.results new file mode 100644 index 000000000..448e3bf0d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_004.results @@ -0,0 +1,37 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "order_count", + "type": "long" + }, + { + "name": "o_orderpriority", + "type": "string" + } + ], + "datarows": [ + [ + 9, + "1-URGENT" + ], + [ + 7, + "2-HIGH" + ], + [ + 9, + "3-MEDIUM" + ], + [ + 8, + "4-NOT SPECIFIED" + ], + [ + 12, + "5-LOW" + ] + ], + "total": 5, + "size": 5 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_005.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_005.ppl new file mode 100644 index 000000000..4090d5909 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_005.ppl @@ -0,0 +1,36 @@ +/* +select + n_name, + sum(l_extendedprice * (1 - l_discount)) as revenue +from + mys3.default.customer, + mys3.default.orders, + mys3.default.lineitem, + mys3.default.supplier, + mys3.default.nation, + mys3.default.region +where + c_custkey = o_custkey + and l_orderkey = o_orderkey + and l_suppkey = s_suppkey + and c_nationkey = s_nationkey + and s_nationkey = n_nationkey + and n_regionkey = r_regionkey + and r_name = 'ASIA' + and o_orderdate >= date '1994-01-01' + and o_orderdate < date '1994-01-01' + interval '1' year +group by + n_name +order by + revenue desc +*/ + +source = mys3.default.customer +| join ON c_custkey = o_custkey mys3.default.orders +| join ON l_orderkey = o_orderkey mys3.default.lineitem +| join ON l_suppkey = s_suppkey AND c_nationkey = s_nationkey mys3.default.supplier +| join ON s_nationkey = n_nationkey mys3.default.nation +| join ON n_regionkey = r_regionkey mys3.default.region +| where r_name = 'ASIA' AND o_orderdate >= date('1994-01-01') AND o_orderdate < date_add(date('1994-01-01'), interval 1 year) +| stats sum(l_extendedprice * (1 - l_discount)) as revenue by n_name +| sort - revenue \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_005.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_005.results new file mode 100644 index 000000000..ce3660333 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_005.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "revenue", + "type": "double" + }, + { + "name": "n_name", + "type": "string" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_006.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_006.ppl new file mode 100644 index 000000000..077e95e13 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_006.ppl @@ -0,0 +1,18 @@ +/* +select + sum(l_extendedprice * l_discount) as revenue +from + mys3.default.lineitem +where + l_shipdate >= date '1994-01-01' + and l_shipdate < date '1994-01-01' + interval '1' year + and l_discount between .06 - 0.01 and .06 + 0.01 + and l_quantity < 24 +*/ + +source = mys3.default.lineitem +| where l_shipdate >= date('1994-01-01') + and l_shipdate < adddate(date('1994-01-01'), 365) + and l_discount between .06 - 0.01 and .06 + 0.01 + and l_quantity < 24 +| stats sum(l_extendedprice * l_discount) as revenue \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_006.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_006.results new file mode 100644 index 000000000..126879c45 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_006.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "revenue", + "type": "double" + } + ], + "datarows": [ + [ + 48090.85860000001 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_007.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_007.ppl new file mode 100644 index 000000000..87d434ad5 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_007.ppl @@ -0,0 +1,56 @@ +/* +select + supp_nation, + cust_nation, + l_year, + sum(volume) as revenue +from + ( + select + n1.n_name as supp_nation, + n2.n_name as cust_nation, + year(l_shipdate) as l_year, + l_extendedprice * (1 - l_discount) as volume + from + mys3.default.supplier, + mys3.default.lineitem, + mys3.default.orders, + mys3.default.customer, + mys3.default.nation n1, + mys3.default.nation n2 + where + s_suppkey = l_suppkey + and o_orderkey = l_orderkey + and c_custkey = o_custkey + and s_nationkey = n1.n_nationkey + and c_nationkey = n2.n_nationkey + and ( + (n1.n_name = 'FRANCE' and n2.n_name = 'GERMANY') + or (n1.n_name = 'GERMANY' and n2.n_name = 'FRANCE') + ) + and l_shipdate between date '1995-01-01' and date '1996-12-31' + ) as shipping +group by + supp_nation, + cust_nation, + l_year +order by + supp_nation, + cust_nation, + l_year +*/ + +source = [ + source = mys3.default.supplier + | join ON s_suppkey = l_suppkey mys3.default.lineitem + | join ON o_orderkey = l_orderkey mys3.default.orders + | join ON c_custkey = o_custkey mys3.default.customer + | join ON s_nationkey = n1.n_nationkey nation as n1 + | join ON c_nationkey = n2.n_nationkey nation as n2 + | where l_shipdate between date('1995-01-01') and date('1996-12-31') + and ((n1.n_name = 'FRANCE' and n2.n_name = 'GERMANY') or (n1.n_name = 'GERMANY' and n2.n_name = 'FRANCE')) + | eval supp_nation = n1.n_name, cust_nation = n2.n_name, l_year = year(l_shipdate), volume = l_extendedprice * (1 - l_discount) + | fields supp_nation, cust_nation, l_year, volume + ] as shipping +| stats sum(volume) as revenue by supp_nation, cust_nation, l_year +| sort supp_nation, cust_nation, l_year \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_007.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_007.results new file mode 100644 index 000000000..2fbbffc79 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_007.results @@ -0,0 +1,2353 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "revenue", + "type": "double" + }, + { + "name": "supp_nation", + "type": "string" + }, + { + "name": "cust_nation", + "type": "string" + }, + { + "name": "l_year", + "type": "integer" + } + ], + "datarows": [ + [ + 254136.68649999998, + "ARGENTINA", + "ALGERIA", + 1995 + ], + [ + 82726.03270000001, + "ARGENTINA", + "ALGERIA", + 1996 + ], + [ + 43967.5675, + "ARGENTINA", + "ARGENTINA", + 1995 + ], + [ + 30133.802599999995, + "ARGENTINA", + "ARGENTINA", + 1996 + ], + [ + 21429.54, + "ARGENTINA", + "BRAZIL", + 1995 + ], + [ + 36081.2088, + "ARGENTINA", + "BRAZIL", + 1996 + ], + [ + 91411.3919, + "ARGENTINA", + "CANADA", + 1995 + ], + [ + 194113.55250000002, + "ARGENTINA", + "CANADA", + 1996 + ], + [ + 16706.156199999998, + "ARGENTINA", + "CHINA", + 1995 + ], + [ + 101867.8726, + "ARGENTINA", + "CHINA", + 1996 + ], + [ + 32130.149, + "ARGENTINA", + "EGYPT", + 1995 + ], + [ + 49531.607599999996, + "ARGENTINA", + "EGYPT", + 1996 + ], + [ + 23997.7944, + "ARGENTINA", + "ETHIOPIA", + 1996 + ], + [ + 36554.001, + "ARGENTINA", + "FRANCE", + 1995 + ], + [ + 64102.9664, + "ARGENTINA", + "FRANCE", + 1996 + ], + [ + 63729.862400000005, + "ARGENTINA", + "GERMANY", + 1995 + ], + [ + 1801.8198, + "ARGENTINA", + "GERMANY", + 1996 + ], + [ + 25814.589, + "ARGENTINA", + "INDIA", + 1995 + ], + [ + 29141.556599999996, + "ARGENTINA", + "INDIA", + 1996 + ], + [ + 148391.4238, + "ARGENTINA", + "INDONESIA", + 1995 + ], + [ + 136628.8591, + "ARGENTINA", + "INDONESIA", + 1996 + ], + [ + 151955.4019, + "ARGENTINA", + "IRAN", + 1995 + ], + [ + 104369.15130000001, + "ARGENTINA", + "IRAN", + 1996 + ], + [ + 158591.6254, + "ARGENTINA", + "IRAQ", + 1995 + ], + [ + 91647.2007, + "ARGENTINA", + "IRAQ", + 1996 + ], + [ + 116201.5549, + "ARGENTINA", + "JAPAN", + 1995 + ], + [ + 110441.0398, + "ARGENTINA", + "JAPAN", + 1996 + ], + [ + 75652.3699, + "ARGENTINA", + "JORDAN", + 1995 + ], + [ + 6301.2558, + "ARGENTINA", + "JORDAN", + 1996 + ], + [ + 137503.7968, + "ARGENTINA", + "MOROCCO", + 1995 + ], + [ + 124885.9045, + "ARGENTINA", + "MOROCCO", + 1996 + ], + [ + 186967.3162, + "ARGENTINA", + "MOZAMBIQUE", + 1995 + ], + [ + 104704.33, + "ARGENTINA", + "MOZAMBIQUE", + 1996 + ], + [ + 253252.7559, + "ARGENTINA", + "PERU", + 1995 + ], + [ + 189098.6215, + "ARGENTINA", + "PERU", + 1996 + ], + [ + 6001.8624, + "ARGENTINA", + "ROMANIA", + 1995 + ], + [ + 122821.76920000001, + "ARGENTINA", + "ROMANIA", + 1996 + ], + [ + 48549.668399999995, + "ARGENTINA", + "RUSSIA", + 1995 + ], + [ + 173174.6736, + "ARGENTINA", + "RUSSIA", + 1996 + ], + [ + 89175.76939999999, + "ARGENTINA", + "SAUDI ARABIA", + 1995 + ], + [ + 7305.1026, + "ARGENTINA", + "SAUDI ARABIA", + 1996 + ], + [ + 904.3584, + "ARGENTINA", + "UNITED KINGDOM", + 1995 + ], + [ + 128427.69939999998, + "ARGENTINA", + "UNITED KINGDOM", + 1996 + ], + [ + 93555.44579999999, + "ETHIOPIA", + "ALGERIA", + 1995 + ], + [ + 141039.1936, + "ETHIOPIA", + "ALGERIA", + 1996 + ], + [ + 95577.2594, + "ETHIOPIA", + "ARGENTINA", + 1995 + ], + [ + 39186.0036, + "ETHIOPIA", + "ARGENTINA", + 1996 + ], + [ + 44157.1086, + "ETHIOPIA", + "CANADA", + 1995 + ], + [ + 265995.15670000005, + "ETHIOPIA", + "CANADA", + 1996 + ], + [ + 121761.22820000001, + "ETHIOPIA", + "CHINA", + 1995 + ], + [ + 149453.3532, + "ETHIOPIA", + "CHINA", + 1996 + ], + [ + 43124.816399999996, + "ETHIOPIA", + "EGYPT", + 1995 + ], + [ + 67441.81019999999, + "ETHIOPIA", + "EGYPT", + 1996 + ], + [ + 12728.4066, + "ETHIOPIA", + "ETHIOPIA", + 1995 + ], + [ + 42408.2316, + "ETHIOPIA", + "ETHIOPIA", + 1996 + ], + [ + 45000.8334, + "ETHIOPIA", + "FRANCE", + 1995 + ], + [ + 36802.584, + "ETHIOPIA", + "FRANCE", + 1996 + ], + [ + 69329.67199999999, + "ETHIOPIA", + "GERMANY", + 1995 + ], + [ + 42017.435999999994, + "ETHIOPIA", + "GERMANY", + 1996 + ], + [ + 92687.5162, + "ETHIOPIA", + "INDIA", + 1995 + ], + [ + 18762.8848, + "ETHIOPIA", + "INDIA", + 1996 + ], + [ + 240805.01389999996, + "ETHIOPIA", + "INDONESIA", + 1995 + ], + [ + 218011.5294, + "ETHIOPIA", + "INDONESIA", + 1996 + ], + [ + 91113.96989999998, + "ETHIOPIA", + "IRAN", + 1995 + ], + [ + 121523.34099999999, + "ETHIOPIA", + "IRAN", + 1996 + ], + [ + 157855.9905, + "ETHIOPIA", + "IRAQ", + 1995 + ], + [ + 199921.1492, + "ETHIOPIA", + "IRAQ", + 1996 + ], + [ + 368896.52770000004, + "ETHIOPIA", + "JAPAN", + 1995 + ], + [ + 864.9599999999999, + "ETHIOPIA", + "JAPAN", + 1996 + ], + [ + 166340.585, + "ETHIOPIA", + "JORDAN", + 1995 + ], + [ + 23071.9992, + "ETHIOPIA", + "JORDAN", + 1996 + ], + [ + 141534.35470000003, + "ETHIOPIA", + "MOROCCO", + 1995 + ], + [ + 127897.9081, + "ETHIOPIA", + "MOROCCO", + 1996 + ], + [ + 301839.8703, + "ETHIOPIA", + "MOZAMBIQUE", + 1995 + ], + [ + 135078.1152, + "ETHIOPIA", + "MOZAMBIQUE", + 1996 + ], + [ + 132525.7795, + "ETHIOPIA", + "PERU", + 1995 + ], + [ + 153699.0389, + "ETHIOPIA", + "PERU", + 1996 + ], + [ + 75587.4786, + "ETHIOPIA", + "ROMANIA", + 1995 + ], + [ + 118006.06910000001, + "ETHIOPIA", + "ROMANIA", + 1996 + ], + [ + 94074.606, + "ETHIOPIA", + "RUSSIA", + 1995 + ], + [ + 12596.959200000001, + "ETHIOPIA", + "RUSSIA", + 1996 + ], + [ + 11579.3635, + "ETHIOPIA", + "SAUDI ARABIA", + 1995 + ], + [ + 89546.37299999999, + "ETHIOPIA", + "UNITED KINGDOM", + 1995 + ], + [ + 5977.1286, + "ETHIOPIA", + "UNITED KINGDOM", + 1996 + ], + [ + 37152.515400000004, + "ETHIOPIA", + "VIETNAM", + 1995 + ], + [ + 45682.308, + "ETHIOPIA", + "VIETNAM", + 1996 + ], + [ + 162547.627, + "IRAN", + "ALGERIA", + 1995 + ], + [ + 95093.32870000001, + "IRAN", + "ALGERIA", + 1996 + ], + [ + 83906.11499999999, + "IRAN", + "ARGENTINA", + 1996 + ], + [ + 75458.91210000002, + "IRAN", + "BRAZIL", + 1995 + ], + [ + 37076.0754, + "IRAN", + "BRAZIL", + 1996 + ], + [ + 124008.88309999999, + "IRAN", + "CANADA", + 1995 + ], + [ + 208344.03720000002, + "IRAN", + "CANADA", + 1996 + ], + [ + 67560.3522, + "IRAN", + "CHINA", + 1995 + ], + [ + 76675.7352, + "IRAN", + "CHINA", + 1996 + ], + [ + 156218.8337, + "IRAN", + "EGYPT", + 1995 + ], + [ + 141324.1042, + "IRAN", + "EGYPT", + 1996 + ], + [ + 13126.136800000002, + "IRAN", + "ETHIOPIA", + 1995 + ], + [ + 76768.3357, + "IRAN", + "ETHIOPIA", + 1996 + ], + [ + 38485.716, + "IRAN", + "FRANCE", + 1995 + ], + [ + 53097.3338, + "IRAN", + "FRANCE", + 1996 + ], + [ + 9106.957199999999, + "IRAN", + "GERMANY", + 1995 + ], + [ + 201277.9401, + "IRAN", + "INDIA", + 1995 + ], + [ + 311383.99480000004, + "IRAN", + "INDIA", + 1996 + ], + [ + 153833.028, + "IRAN", + "INDONESIA", + 1995 + ], + [ + 220189.4322, + "IRAN", + "INDONESIA", + 1996 + ], + [ + 64854.8802, + "IRAN", + "IRAN", + 1995 + ], + [ + 71310.457, + "IRAN", + "IRAN", + 1996 + ], + [ + 179591.37690000003, + "IRAN", + "IRAQ", + 1995 + ], + [ + 171547.7756, + "IRAN", + "IRAQ", + 1996 + ], + [ + 73023.2721, + "IRAN", + "JAPAN", + 1995 + ], + [ + 110871.34460000001, + "IRAN", + "JAPAN", + 1996 + ], + [ + 32969.583600000005, + "IRAN", + "JORDAN", + 1995 + ], + [ + 36797.1604, + "IRAN", + "JORDAN", + 1996 + ], + [ + 88623.7926, + "IRAN", + "MOROCCO", + 1995 + ], + [ + 172421.8824, + "IRAN", + "MOROCCO", + 1996 + ], + [ + 58201.424699999996, + "IRAN", + "MOZAMBIQUE", + 1995 + ], + [ + 46162.4175, + "IRAN", + "MOZAMBIQUE", + 1996 + ], + [ + 154367.68779999999, + "IRAN", + "PERU", + 1995 + ], + [ + 133249.9896, + "IRAN", + "PERU", + 1996 + ], + [ + 84411.4801, + "IRAN", + "ROMANIA", + 1995 + ], + [ + 142296.42450000002, + "IRAN", + "ROMANIA", + 1996 + ], + [ + 113065.3816, + "IRAN", + "RUSSIA", + 1995 + ], + [ + 90816.2061, + "IRAN", + "RUSSIA", + 1996 + ], + [ + 64286.073000000004, + "IRAN", + "SAUDI ARABIA", + 1995 + ], + [ + 12914.054399999999, + "IRAN", + "UNITED KINGDOM", + 1995 + ], + [ + 35837.3562, + "IRAN", + "UNITED KINGDOM", + 1996 + ], + [ + 61851.0656, + "IRAN", + "VIETNAM", + 1996 + ], + [ + 201033.0857, + "IRAQ", + "ALGERIA", + 1995 + ], + [ + 246900.7017, + "IRAQ", + "ALGERIA", + 1996 + ], + [ + 60911.8767, + "IRAQ", + "ARGENTINA", + 1995 + ], + [ + 32103.905499999997, + "IRAQ", + "ARGENTINA", + 1996 + ], + [ + 41449.9332, + "IRAQ", + "BRAZIL", + 1995 + ], + [ + 142176.1693, + "IRAQ", + "CANADA", + 1995 + ], + [ + 225773.2609, + "IRAQ", + "CANADA", + 1996 + ], + [ + 144926.016, + "IRAQ", + "CHINA", + 1995 + ], + [ + 61836.116599999994, + "IRAQ", + "CHINA", + 1996 + ], + [ + 47622.4242, + "IRAQ", + "EGYPT", + 1995 + ], + [ + 38906.8236, + "IRAQ", + "EGYPT", + 1996 + ], + [ + 30882.3273, + "IRAQ", + "ETHIOPIA", + 1995 + ], + [ + 72931.888, + "IRAQ", + "ETHIOPIA", + 1996 + ], + [ + 33028.1014, + "IRAQ", + "FRANCE", + 1995 + ], + [ + 8588.624399999999, + "IRAQ", + "FRANCE", + 1996 + ], + [ + 66380.2488, + "IRAQ", + "GERMANY", + 1995 + ], + [ + 51238.211800000005, + "IRAQ", + "INDIA", + 1995 + ], + [ + 144072.9008, + "IRAQ", + "INDIA", + 1996 + ], + [ + 121082.9552, + "IRAQ", + "INDONESIA", + 1995 + ], + [ + 207820.729, + "IRAQ", + "INDONESIA", + 1996 + ], + [ + 110078.0916, + "IRAQ", + "IRAN", + 1995 + ], + [ + 106794.4885, + "IRAQ", + "IRAN", + 1996 + ], + [ + 47751.138900000005, + "IRAQ", + "IRAQ", + 1995 + ], + [ + 189657.8283, + "IRAQ", + "IRAQ", + 1996 + ], + [ + 75700.3915, + "IRAQ", + "JAPAN", + 1995 + ], + [ + 63407.511, + "IRAQ", + "JAPAN", + 1996 + ], + [ + 76308.9638, + "IRAQ", + "JORDAN", + 1995 + ], + [ + 85878.1546, + "IRAQ", + "JORDAN", + 1996 + ], + [ + 195251.47340000002, + "IRAQ", + "MOROCCO", + 1995 + ], + [ + 250722.49679999996, + "IRAQ", + "MOROCCO", + 1996 + ], + [ + 90070.6672, + "IRAQ", + "MOZAMBIQUE", + 1995 + ], + [ + 213216.13980000003, + "IRAQ", + "MOZAMBIQUE", + 1996 + ], + [ + 182352.1664, + "IRAQ", + "PERU", + 1995 + ], + [ + 174677.52640000003, + "IRAQ", + "PERU", + 1996 + ], + [ + 6166.5422, + "IRAQ", + "ROMANIA", + 1995 + ], + [ + 372667.3503, + "IRAQ", + "ROMANIA", + 1996 + ], + [ + 76739.9053, + "IRAQ", + "RUSSIA", + 1995 + ], + [ + 31617.1963, + "IRAQ", + "RUSSIA", + 1996 + ], + [ + 32347.5864, + "IRAQ", + "SAUDI ARABIA", + 1995 + ], + [ + 142752.8852, + "IRAQ", + "UNITED KINGDOM", + 1995 + ], + [ + 114670.7536, + "IRAQ", + "UNITED KINGDOM", + 1996 + ], + [ + 25811.638499999997, + "IRAQ", + "VIETNAM", + 1995 + ], + [ + 971.014, + "IRAQ", + "VIETNAM", + 1996 + ], + [ + 104861.9908, + "KENYA", + "ALGERIA", + 1995 + ], + [ + 156396.4264, + "KENYA", + "ALGERIA", + 1996 + ], + [ + 25260.8797, + "KENYA", + "BRAZIL", + 1995 + ], + [ + 56395.8304, + "KENYA", + "BRAZIL", + 1996 + ], + [ + 87554.79969999999, + "KENYA", + "CANADA", + 1995 + ], + [ + 118419.86499999999, + "KENYA", + "CANADA", + 1996 + ], + [ + 19585.3237, + "KENYA", + "CHINA", + 1995 + ], + [ + 121587.0675, + "KENYA", + "CHINA", + 1996 + ], + [ + 42657.650499999996, + "KENYA", + "EGYPT", + 1995 + ], + [ + 42287.053499999995, + "KENYA", + "EGYPT", + 1996 + ], + [ + 21254.31, + "KENYA", + "ETHIOPIA", + 1995 + ], + [ + 13062.5924, + "KENYA", + "ETHIOPIA", + 1996 + ], + [ + 129667.63709999999, + "KENYA", + "FRANCE", + 1995 + ], + [ + 17195.0, + "KENYA", + "FRANCE", + 1996 + ], + [ + 37851.309, + "KENYA", + "GERMANY", + 1995 + ], + [ + 18467.316, + "KENYA", + "GERMANY", + 1996 + ], + [ + 99473.2753, + "KENYA", + "INDIA", + 1995 + ], + [ + 107757.24170000001, + "KENYA", + "INDIA", + 1996 + ], + [ + 313903.59369999997, + "KENYA", + "INDONESIA", + 1995 + ], + [ + 131096.1041, + "KENYA", + "INDONESIA", + 1996 + ], + [ + 99394.73200000002, + "KENYA", + "IRAN", + 1995 + ], + [ + 75278.1744, + "KENYA", + "IRAN", + 1996 + ], + [ + 58042.4104, + "KENYA", + "IRAQ", + 1995 + ], + [ + 81729.83350000001, + "KENYA", + "IRAQ", + 1996 + ], + [ + 11669.2458, + "KENYA", + "JAPAN", + 1995 + ], + [ + 40247.164000000004, + "KENYA", + "JAPAN", + 1996 + ], + [ + 22598.076299999997, + "KENYA", + "JORDAN", + 1995 + ], + [ + 27247.756799999996, + "KENYA", + "JORDAN", + 1996 + ], + [ + 154398.8419, + "KENYA", + "MOROCCO", + 1995 + ], + [ + 51361.646, + "KENYA", + "MOROCCO", + 1996 + ], + [ + 100724.721, + "KENYA", + "MOZAMBIQUE", + 1995 + ], + [ + 17172.768600000003, + "KENYA", + "MOZAMBIQUE", + 1996 + ], + [ + 229403.3046, + "KENYA", + "PERU", + 1995 + ], + [ + 75566.7534, + "KENYA", + "PERU", + 1996 + ], + [ + 115714.80269999999, + "KENYA", + "ROMANIA", + 1995 + ], + [ + 240644.50290000002, + "KENYA", + "ROMANIA", + 1996 + ], + [ + 77911.9312, + "KENYA", + "RUSSIA", + 1995 + ], + [ + 187014.05539999998, + "KENYA", + "RUSSIA", + 1996 + ], + [ + 44817.409, + "KENYA", + "SAUDI ARABIA", + 1996 + ], + [ + 54688.0144, + "KENYA", + "UNITED KINGDOM", + 1995 + ], + [ + 95787.9582, + "KENYA", + "UNITED KINGDOM", + 1996 + ], + [ + 23347.5944, + "KENYA", + "VIETNAM", + 1995 + ], + [ + 35101.4906, + "KENYA", + "VIETNAM", + 1996 + ], + [ + 208725.7642, + "MOROCCO", + "ALGERIA", + 1995 + ], + [ + 79921.473, + "MOROCCO", + "ALGERIA", + 1996 + ], + [ + 45662.5058, + "MOROCCO", + "ARGENTINA", + 1995 + ], + [ + 103192.9186, + "MOROCCO", + "ARGENTINA", + 1996 + ], + [ + 24525.48, + "MOROCCO", + "BRAZIL", + 1995 + ], + [ + 76977.16279999999, + "MOROCCO", + "BRAZIL", + 1996 + ], + [ + 121282.80900000001, + "MOROCCO", + "CANADA", + 1995 + ], + [ + 163020.6101, + "MOROCCO", + "CANADA", + 1996 + ], + [ + 123628.165, + "MOROCCO", + "CHINA", + 1995 + ], + [ + 155131.67059999998, + "MOROCCO", + "CHINA", + 1996 + ], + [ + 75703.3616, + "MOROCCO", + "EGYPT", + 1995 + ], + [ + 162986.6482, + "MOROCCO", + "EGYPT", + 1996 + ], + [ + 105995.5609, + "MOROCCO", + "ETHIOPIA", + 1996 + ], + [ + 12598.1046, + "MOROCCO", + "FRANCE", + 1995 + ], + [ + 52491.31109999999, + "MOROCCO", + "FRANCE", + 1996 + ], + [ + 37169.8497, + "MOROCCO", + "GERMANY", + 1995 + ], + [ + 90174.24359999999, + "MOROCCO", + "INDIA", + 1995 + ], + [ + 65486.2152, + "MOROCCO", + "INDIA", + 1996 + ], + [ + 237285.38329999996, + "MOROCCO", + "INDONESIA", + 1995 + ], + [ + 110552.04269999999, + "MOROCCO", + "INDONESIA", + 1996 + ], + [ + 70154.12789999999, + "MOROCCO", + "IRAN", + 1995 + ], + [ + 130115.5064, + "MOROCCO", + "IRAN", + 1996 + ], + [ + 136868.65980000002, + "MOROCCO", + "IRAQ", + 1995 + ], + [ + 181853.862, + "MOROCCO", + "IRAQ", + 1996 + ], + [ + 215532.0276, + "MOROCCO", + "JAPAN", + 1995 + ], + [ + 74571.86799999999, + "MOROCCO", + "JAPAN", + 1996 + ], + [ + 46814.1882, + "MOROCCO", + "JORDAN", + 1995 + ], + [ + 8946.028, + "MOROCCO", + "JORDAN", + 1996 + ], + [ + 32176.977000000003, + "MOROCCO", + "KENYA", + 1995 + ], + [ + 359437.7604, + "MOROCCO", + "MOROCCO", + 1995 + ], + [ + 86092.39099999999, + "MOROCCO", + "MOROCCO", + 1996 + ], + [ + 94016.3014, + "MOROCCO", + "MOZAMBIQUE", + 1995 + ], + [ + 110047.802, + "MOROCCO", + "MOZAMBIQUE", + 1996 + ], + [ + 228013.98860000004, + "MOROCCO", + "PERU", + 1995 + ], + [ + 180769.569, + "MOROCCO", + "PERU", + 1996 + ], + [ + 9401.483, + "MOROCCO", + "ROMANIA", + 1995 + ], + [ + 173418.5048, + "MOROCCO", + "ROMANIA", + 1996 + ], + [ + 67569.02419999999, + "MOROCCO", + "RUSSIA", + 1995 + ], + [ + 48079.3719, + "MOROCCO", + "RUSSIA", + 1996 + ], + [ + 87329.81279999999, + "MOROCCO", + "SAUDI ARABIA", + 1995 + ], + [ + 8595.716400000001, + "MOROCCO", + "UNITED KINGDOM", + 1996 + ], + [ + 51827.7612, + "MOROCCO", + "VIETNAM", + 1996 + ], + [ + 296387.692, + "PERU", + "ALGERIA", + 1995 + ], + [ + 300350.83859999996, + "PERU", + "ALGERIA", + 1996 + ], + [ + 124968.99299999999, + "PERU", + "ARGENTINA", + 1995 + ], + [ + 175101.6514, + "PERU", + "ARGENTINA", + 1996 + ], + [ + 72899.6696, + "PERU", + "BRAZIL", + 1996 + ], + [ + 247138.4418, + "PERU", + "CANADA", + 1995 + ], + [ + 628827.8985, + "PERU", + "CANADA", + 1996 + ], + [ + 354631.39109999995, + "PERU", + "CHINA", + 1995 + ], + [ + 404604.1966, + "PERU", + "CHINA", + 1996 + ], + [ + 112065.8224, + "PERU", + "EGYPT", + 1995 + ], + [ + 187510.94989999998, + "PERU", + "EGYPT", + 1996 + ], + [ + 19244.188, + "PERU", + "ETHIOPIA", + 1995 + ], + [ + 95300.4011, + "PERU", + "ETHIOPIA", + 1996 + ], + [ + 46226.348000000005, + "PERU", + "FRANCE", + 1995 + ], + [ + 60971.04359999999, + "PERU", + "FRANCE", + 1996 + ], + [ + 52968.9424, + "PERU", + "GERMANY", + 1995 + ], + [ + 7960.72, + "PERU", + "GERMANY", + 1996 + ], + [ + 346742.71689999994, + "PERU", + "INDIA", + 1995 + ], + [ + 371086.43450000003, + "PERU", + "INDIA", + 1996 + ], + [ + 431888.0076, + "PERU", + "INDONESIA", + 1995 + ], + [ + 394392.2665, + "PERU", + "INDONESIA", + 1996 + ], + [ + 258994.44240000003, + "PERU", + "IRAN", + 1995 + ], + [ + 253508.40860000002, + "PERU", + "IRAN", + 1996 + ], + [ + 263151.64859999996, + "PERU", + "IRAQ", + 1995 + ], + [ + 113105.11260000001, + "PERU", + "IRAQ", + 1996 + ], + [ + 208089.1201, + "PERU", + "JAPAN", + 1995 + ], + [ + 104909.03709999999, + "PERU", + "JAPAN", + 1996 + ], + [ + 204902.86690000002, + "PERU", + "JORDAN", + 1995 + ], + [ + 83390.9358, + "PERU", + "KENYA", + 1995 + ], + [ + 306687.83569999994, + "PERU", + "MOROCCO", + 1995 + ], + [ + 203568.86399999997, + "PERU", + "MOROCCO", + 1996 + ], + [ + 111767.7678, + "PERU", + "MOZAMBIQUE", + 1995 + ], + [ + 223993.1312, + "PERU", + "MOZAMBIQUE", + 1996 + ], + [ + 325714.39349999995, + "PERU", + "PERU", + 1995 + ], + [ + 279345.63450000004, + "PERU", + "PERU", + 1996 + ], + [ + 95907.072, + "PERU", + "ROMANIA", + 1995 + ], + [ + 311454.8541, + "PERU", + "ROMANIA", + 1996 + ], + [ + 123771.699, + "PERU", + "RUSSIA", + 1995 + ], + [ + 145782.478, + "PERU", + "RUSSIA", + 1996 + ], + [ + 21987.549300000002, + "PERU", + "SAUDI ARABIA", + 1995 + ], + [ + 49284.4176, + "PERU", + "SAUDI ARABIA", + 1996 + ], + [ + 108301.1145, + "PERU", + "UNITED KINGDOM", + 1995 + ], + [ + 195777.05430000002, + "PERU", + "UNITED KINGDOM", + 1996 + ], + [ + 11250.8352, + "PERU", + "VIETNAM", + 1995 + ], + [ + 17274.789, + "PERU", + "VIETNAM", + 1996 + ], + [ + 162589.3545, + "UNITED KINGDOM", + "ALGERIA", + 1995 + ], + [ + 154360.3794, + "UNITED KINGDOM", + "ALGERIA", + 1996 + ], + [ + 36307.9196, + "UNITED KINGDOM", + "ARGENTINA", + 1995 + ], + [ + 95785.65719999999, + "UNITED KINGDOM", + "ARGENTINA", + 1996 + ], + [ + 118313.35380000001, + "UNITED KINGDOM", + "BRAZIL", + 1996 + ], + [ + 111470.43629999999, + "UNITED KINGDOM", + "CANADA", + 1995 + ], + [ + 164444.2782, + "UNITED KINGDOM", + "CANADA", + 1996 + ], + [ + 164565.8457, + "UNITED KINGDOM", + "CHINA", + 1995 + ], + [ + 102883.16450000001, + "UNITED KINGDOM", + "CHINA", + 1996 + ], + [ + 57707.0536, + "UNITED KINGDOM", + "EGYPT", + 1995 + ], + [ + 219849.534, + "UNITED KINGDOM", + "EGYPT", + 1996 + ], + [ + 9421.922999999999, + "UNITED KINGDOM", + "ETHIOPIA", + 1995 + ], + [ + 45289.2423, + "UNITED KINGDOM", + "ETHIOPIA", + 1996 + ], + [ + 1006.6548000000001, + "UNITED KINGDOM", + "FRANCE", + 1995 + ], + [ + 111976.4848, + "UNITED KINGDOM", + "FRANCE", + 1996 + ], + [ + 50909.551999999996, + "UNITED KINGDOM", + "GERMANY", + 1996 + ], + [ + 167210.81, + "UNITED KINGDOM", + "INDIA", + 1995 + ], + [ + 82120.4618, + "UNITED KINGDOM", + "INDIA", + 1996 + ], + [ + 111407.38199999998, + "UNITED KINGDOM", + "INDONESIA", + 1995 + ], + [ + 227676.86649999997, + "UNITED KINGDOM", + "INDONESIA", + 1996 + ], + [ + 127095.93470000001, + "UNITED KINGDOM", + "IRAN", + 1995 + ], + [ + 104708.43800000001, + "UNITED KINGDOM", + "IRAN", + 1996 + ], + [ + 237507.1622, + "UNITED KINGDOM", + "IRAQ", + 1995 + ], + [ + 198905.7776, + "UNITED KINGDOM", + "IRAQ", + 1996 + ], + [ + 204984.6469, + "UNITED KINGDOM", + "JAPAN", + 1995 + ], + [ + 40186.3254, + "UNITED KINGDOM", + "JAPAN", + 1996 + ], + [ + 36505.17, + "UNITED KINGDOM", + "JORDAN", + 1995 + ], + [ + 78390.9252, + "UNITED KINGDOM", + "JORDAN", + 1996 + ], + [ + 246586.58520000003, + "UNITED KINGDOM", + "MOROCCO", + 1995 + ], + [ + 82580.7991, + "UNITED KINGDOM", + "MOROCCO", + 1996 + ], + [ + 15961.0048, + "UNITED KINGDOM", + "MOZAMBIQUE", + 1995 + ], + [ + 123491.88199999998, + "UNITED KINGDOM", + "MOZAMBIQUE", + 1996 + ], + [ + 289310.7607, + "UNITED KINGDOM", + "PERU", + 1995 + ], + [ + 259663.00000000003, + "UNITED KINGDOM", + "PERU", + 1996 + ], + [ + 77972.6142, + "UNITED KINGDOM", + "ROMANIA", + 1995 + ], + [ + 151476.40870000003, + "UNITED KINGDOM", + "ROMANIA", + 1996 + ], + [ + 17902.8213, + "UNITED KINGDOM", + "RUSSIA", + 1995 + ], + [ + 71091.8812, + "UNITED KINGDOM", + "RUSSIA", + 1996 + ], + [ + 41060.145000000004, + "UNITED KINGDOM", + "SAUDI ARABIA", + 1996 + ], + [ + 11474.9568, + "UNITED KINGDOM", + "UNITED KINGDOM", + 1995 + ], + [ + 156951.2512, + "UNITED KINGDOM", + "UNITED KINGDOM", + 1996 + ], + [ + 28039.3652, + "UNITED KINGDOM", + "VIETNAM", + 1995 + ], + [ + 14850.526399999999, + "UNITED KINGDOM", + "VIETNAM", + 1996 + ], + [ + 128868.60689999998, + "UNITED STATES", + "ALGERIA", + 1995 + ], + [ + 89048.40909999999, + "UNITED STATES", + "ALGERIA", + 1996 + ], + [ + 15853.4496, + "UNITED STATES", + "ARGENTINA", + 1995 + ], + [ + 71083.6293, + "UNITED STATES", + "ARGENTINA", + 1996 + ], + [ + 2605.662, + "UNITED STATES", + "BRAZIL", + 1995 + ], + [ + 50783.1744, + "UNITED STATES", + "BRAZIL", + 1996 + ], + [ + 248815.61799999996, + "UNITED STATES", + "CANADA", + 1995 + ], + [ + 272137.84010000003, + "UNITED STATES", + "CANADA", + 1996 + ], + [ + 130212.3261, + "UNITED STATES", + "CHINA", + 1995 + ], + [ + 195468.6891, + "UNITED STATES", + "CHINA", + 1996 + ], + [ + 5500.842, + "UNITED STATES", + "EGYPT", + 1995 + ], + [ + 173889.91240000003, + "UNITED STATES", + "EGYPT", + 1996 + ], + [ + 28372.764, + "UNITED STATES", + "ETHIOPIA", + 1996 + ], + [ + 39114.3576, + "UNITED STATES", + "FRANCE", + 1995 + ], + [ + 14245.468499999999, + "UNITED STATES", + "FRANCE", + 1996 + ], + [ + 80489.69949999999, + "UNITED STATES", + "GERMANY", + 1995 + ], + [ + 85956.4101, + "UNITED STATES", + "INDIA", + 1995 + ], + [ + 85987.966, + "UNITED STATES", + "INDIA", + 1996 + ], + [ + 195087.4751, + "UNITED STATES", + "INDONESIA", + 1995 + ], + [ + 161342.3262, + "UNITED STATES", + "INDONESIA", + 1996 + ], + [ + 81710.31689999999, + "UNITED STATES", + "IRAN", + 1995 + ], + [ + 44276.8672, + "UNITED STATES", + "IRAN", + 1996 + ], + [ + 169419.2867, + "UNITED STATES", + "IRAQ", + 1995 + ], + [ + 134953.9351, + "UNITED STATES", + "IRAQ", + 1996 + ], + [ + 52605.10079999999, + "UNITED STATES", + "JAPAN", + 1995 + ], + [ + 72845.364, + "UNITED STATES", + "JAPAN", + 1996 + ], + [ + 168521.771, + "UNITED STATES", + "JORDAN", + 1995 + ], + [ + 4173.122, + "UNITED STATES", + "KENYA", + 1995 + ], + [ + 268886.96180000005, + "UNITED STATES", + "MOROCCO", + 1995 + ], + [ + 98809.215, + "UNITED STATES", + "MOROCCO", + 1996 + ], + [ + 96370.3878, + "UNITED STATES", + "MOZAMBIQUE", + 1995 + ], + [ + 98054.8491, + "UNITED STATES", + "MOZAMBIQUE", + 1996 + ], + [ + 322213.21400000004, + "UNITED STATES", + "PERU", + 1995 + ], + [ + 152615.4166, + "UNITED STATES", + "PERU", + 1996 + ], + [ + 46069.4857, + "UNITED STATES", + "ROMANIA", + 1995 + ], + [ + 233698.8018, + "UNITED STATES", + "ROMANIA", + 1996 + ], + [ + 39120.9, + "UNITED STATES", + "RUSSIA", + 1995 + ], + [ + 109881.48270000001, + "UNITED STATES", + "RUSSIA", + 1996 + ], + [ + 43975.98160000001, + "UNITED STATES", + "SAUDI ARABIA", + 1995 + ], + [ + 39308.9136, + "UNITED STATES", + "SAUDI ARABIA", + 1996 + ], + [ + 56862.7312, + "UNITED STATES", + "UNITED KINGDOM", + 1995 + ], + [ + 125472.13840000001, + "UNITED STATES", + "UNITED KINGDOM", + 1996 + ], + [ + 25532.9175, + "UNITED STATES", + "VIETNAM", + 1995 + ], + [ + 76721.343, + "UNITED STATES", + "VIETNAM", + 1996 + ] + ], + "total": 388, + "size": 388 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_008.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_008.ppl new file mode 100644 index 000000000..4b36f3fce --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_008.ppl @@ -0,0 +1,60 @@ +/* +select + o_year, + sum(case + when nation = 'BRAZIL' then volume + else 0 + end) / sum(volume) as mkt_share +from + ( + select + year(o_orderdate) as o_year, + l_extendedprice * (1 - l_discount) as volume, + n2.n_name as nation + from + mys3.default.part, + mys3.default.supplier, + mys3.default.lineitem, + mys3.default.orders, + mys3.default.customer, + mys3.default.nation n1, + mys3.default.nation n2, + mys3.default.region + where + p_partkey = l_partkey + and s_suppkey = l_suppkey + and l_orderkey = o_orderkey + and o_custkey = c_custkey + and c_nationkey = n1.n_nationkey + and n1.n_regionkey = r_regionkey + and r_name = 'AMERICA' + and s_nationkey = n2.n_nationkey + and o_orderdate between date '1995-01-01' and date '1996-12-31' + and p_type = 'ECONOMY ANODIZED STEEL' + ) as all_nations +group by + o_year +order by + o_year +*/ + +source = [ + source = mys3.default.part + | join ON p_partkey = l_partkey mys3.default.lineitem + | join ON s_suppkey = l_suppkey mys3.default.supplier + | join ON l_orderkey = o_orderkey mys3.default.orders + | join ON o_custkey = c_custkey mys3.default.customer + | join ON c_nationkey = n1.n_nationkey mys3.default.nation as n1 + | join ON s_nationkey = n2.n_nationkey mys3.default.nation as n2 + | join ON n1.n_regionkey = r_regionkey mys3.default.region + | where r_name = 'AMERICA' AND p_type = 'ECONOMY ANODIZED STEEL' + and o_orderdate between date('1995-01-01') and date('1996-12-31') + | eval o_year = year(o_orderdate) + | eval volume = l_extendedprice * (1 - l_discount) + | eval nation = n2.n_name + | fields o_year, volume, nation + ] as all_nations +| stats sum(case(nation = 'BRAZIL', volume else 0)) as sum_case, sum(volume) as sum_volume by o_year +| eval mkt_share = sum_case / sum_volume +| fields mkt_share, o_year +| sort o_year \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_008.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_008.results new file mode 100644 index 000000000..355936512 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_008.results @@ -0,0 +1,25 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "mkt_share", + "type": "double" + }, + { + "name": "o_year", + "type": "integer" + } + ], + "datarows": [ + [ + 0.0, + 1995 + ], + [ + 0.0, + 1996 + ] + ], + "total": 2, + "size": 2 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_009.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_009.ppl new file mode 100644 index 000000000..7b1a5274d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_009.ppl @@ -0,0 +1,50 @@ +/* +select + nation, + o_year, + sum(amount) as sum_profit +from + ( + select + n_name as nation, + year(o_orderdate) as o_year, + l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount + from + mys3.default.part, + mys3.default.supplier, + mys3.default.lineitem, + mys3.default.partsupp, + mys3.default.orders, + mys3.default.nation + where + s_suppkey = l_suppkey + and ps_suppkey = l_suppkey + and ps_partkey = l_partkey + and p_partkey = l_partkey + and o_orderkey = l_orderkey + and s_nationkey = n_nationkey + and p_name like '%green%' + ) as profit +group by + nation, + o_year +order by + nation, + o_year desc +*/ + +source = [ + source = mys3.default.part + | join ON p_partkey = l_partkey mys3.default.lineitem + | join ON s_suppkey = l_suppkey mys3.default.supplier + | join ON ps_partkey = l_partkey and ps_suppkey = l_suppkey mys3.default.partsupp + | join ON o_orderkey = l_orderkey mys3.default.orders + | join ON s_nationkey = n_nationkey mys3.default.nation + | where like(p_name, '%green%') + | eval nation = n_name + | eval o_year = year(o_orderdate) + | eval amount = l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity + | fields nation, o_year, amount + ] as profit +| stats sum(amount) as sum_profit by nation, o_year +| sort nation, - o_year \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_009.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_009.results new file mode 100644 index 000000000..8ba3269e0 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_009.results @@ -0,0 +1,321 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "sum_profit", + "type": "double" + }, + { + "name": "nation", + "type": "string" + }, + { + "name": "o_year", + "type": "integer" + } + ], + "datarows": [ + [ + 17779.069700000007, + "ARGENTINA", + 1998 + ], + [ + 13943.953800000003, + "ARGENTINA", + 1997 + ], + [ + 7641.422700000003, + "ARGENTINA", + 1996 + ], + [ + 20892.752500000002, + "ARGENTINA", + 1995 + ], + [ + 15088.352599999998, + "ARGENTINA", + 1994 + ], + [ + 17586.344600000004, + "ARGENTINA", + 1993 + ], + [ + 28732.461499999994, + "ARGENTINA", + 1992 + ], + [ + 28217.159999999996, + "ETHIOPIA", + 1998 + ], + [ + 33970.65, + "ETHIOPIA", + 1996 + ], + [ + 37720.35, + "ETHIOPIA", + 1995 + ], + [ + 37251.01, + "ETHIOPIA", + 1994 + ], + [ + 23782.61, + "ETHIOPIA", + 1993 + ], + [ + 23590.007999999998, + "IRAN", + 1997 + ], + [ + 7428.232500000005, + "IRAN", + 1996 + ], + [ + 21000.996499999994, + "IRAN", + 1995 + ], + [ + 29408.13, + "IRAN", + 1994 + ], + [ + 49876.41499999999, + "IRAN", + 1993 + ], + [ + 52064.24, + "IRAN", + 1992 + ], + [ + 11619.960399999996, + "IRAQ", + 1998 + ], + [ + 47910.246, + "IRAQ", + 1997 + ], + [ + 18459.567499999997, + "IRAQ", + 1996 + ], + [ + 32782.37010000001, + "IRAQ", + 1995 + ], + [ + 9041.2317, + "IRAQ", + 1994 + ], + [ + 30687.2625, + "IRAQ", + 1993 + ], + [ + 29098.2557, + "IRAQ", + 1992 + ], + [ + 33148.3345, + "KENYA", + 1998 + ], + [ + 54355.016500000005, + "KENYA", + 1997 + ], + [ + 53607.4854, + "KENYA", + 1996 + ], + [ + 85354.87380000002, + "KENYA", + 1995 + ], + [ + 102904.2511, + "KENYA", + 1994 + ], + [ + 109310.8084, + "KENYA", + 1993 + ], + [ + 138534.12099999998, + "KENYA", + 1992 + ], + [ + 157058.2328, + "MOROCCO", + 1998 + ], + [ + 88669.96099999998, + "MOROCCO", + 1997 + ], + [ + 236833.66719999997, + "MOROCCO", + 1996 + ], + [ + 381575.86679999996, + "MOROCCO", + 1995 + ], + [ + 243523.43360000005, + "MOROCCO", + 1994 + ], + [ + 232196.7802999999, + "MOROCCO", + 1993 + ], + [ + 347434.1452, + "MOROCCO", + 1992 + ], + [ + 101109.01959999997, + "PERU", + 1998 + ], + [ + 58073.086599999995, + "PERU", + 1997 + ], + [ + 30360.52179999999, + "PERU", + 1996 + ], + [ + 138451.78, + "PERU", + 1995 + ], + [ + 55023.063200000004, + "PERU", + 1994 + ], + [ + 110409.08629999998, + "PERU", + 1993 + ], + [ + 70946.1916, + "PERU", + 1992 + ], + [ + 139685.04400000002, + "UNITED KINGDOM", + 1998 + ], + [ + 183502.04979999995, + "UNITED KINGDOM", + 1997 + ], + [ + 374085.28839999996, + "UNITED KINGDOM", + 1996 + ], + [ + 548356.7983999999, + "UNITED KINGDOM", + 1995 + ], + [ + 266982.7679999999, + "UNITED KINGDOM", + 1994 + ], + [ + 717309.464, + "UNITED KINGDOM", + 1993 + ], + [ + 79540.60160000001, + "UNITED KINGDOM", + 1992 + ], + [ + 32847.96, + "UNITED STATES", + 1998 + ], + [ + 30849.5, + "UNITED STATES", + 1997 + ], + [ + 56125.46000000001, + "UNITED STATES", + 1996 + ], + [ + 15961.7977, + "UNITED STATES", + 1995 + ], + [ + 31671.2, + "UNITED STATES", + 1994 + ], + [ + 55057.469, + "UNITED STATES", + 1993 + ], + [ + 51970.23, + "UNITED STATES", + 1992 + ] + ], + "total": 60, + "size": 60 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_010.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_010.ppl new file mode 100644 index 000000000..b4fa606cd --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_010.ppl @@ -0,0 +1,45 @@ +/* +select + c_custkey, + c_name, + sum(l_extendedprice * (1 - l_discount)) as revenue, + c_acctbal, + n_name, + c_address, + c_phone, + c_comment +from + mys3.default.customer, + mys3.default.orders, + mys3.default.lineitem, + mys3.default.nation +where + c_custkey = o_custkey + and l_orderkey = o_orderkey + and o_orderdate >= date '1993-10-01' + and o_orderdate < date '1993-10-01' + interval '3' month + and l_returnflag = 'R' + and c_nationkey = n_nationkey +group by + c_custkey, + c_name, + c_acctbal, + c_phone, + n_name, + c_address, + c_comment +order by + revenue desc +limit 20 +*/ + +source = mys3.default.customer +| join ON c_custkey = o_custkey mys3.default.orders +| join ON l_orderkey = o_orderkey mys3.default.lineitem +| join ON c_nationkey = n_nationkey mys3.default.nation +| where o_orderdate >= date('1993-10-01') + AND o_orderdate < date_add(date('1993-10-01'), interval 3 month) + AND l_returnflag = 'R' +| stats sum(l_extendedprice * (1 - l_discount)) as revenue by c_custkey, c_name, c_acctbal, c_phone, n_name, c_address, c_comment +| sort - revenue +| head 20 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_010.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_010.results new file mode 100644 index 000000000..0d0a7374a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_010.results @@ -0,0 +1,241 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "revenue", + "type": "double" + }, + { + "name": "c_custkey", + "type": "long" + }, + { + "name": "c_name", + "type": "string" + }, + { + "name": "c_acctbal", + "type": "double" + }, + { + "name": "c_phone", + "type": "string" + }, + { + "name": "n_name", + "type": "string" + }, + { + "name": "c_address", + "type": "string" + }, + { + "name": "c_comment", + "type": "string" + } + ], + "datarows": [ + [ + 282635.1719, + 121, + "Customer#000000121", + 6428.32, + "27-411-990-2959", + "PERU", + "tv nCR2YKupGN73mQudO", + "uriously stealthy ideas. carefully final courts use carefully" + ], + [ + 222182.5188, + 124, + "Customer#000000124", + 1842.49, + "28-183-750-7809", + "CHINA", + "aTbyVAW5tCd,v09O", + "le fluffily even dependencies. quietly s" + ], + [ + 190241.3334, + 106, + "Customer#000000106", + 3288.42, + "11-751-989-4627", + "ARGENTINA", + "xGCOEAUjUNG", + "lose slyly. ironic accounts along the evenly regular theodolites wake about the special, final gifts. " + ], + [ + 161422.04609999998, + 16, + "Customer#000000016", + 4681.03, + "20-781-609-3107", + "IRAN", + "cYiaeMLZSMAOQ2 d0W,", + "kly silent courts. thinly regular theodolites sleep fluffily after " + ], + [ + 149364.5652, + 44, + "Customer#000000044", + 7315.94, + "26-190-260-5375", + "MOZAMBIQUE", + "Oi,dOSPwDu4jo4x,,P85E0dmhZGvNtBwi", + "r requests around the unusual, bold a" + ], + [ + 129481.02450000001, + 71, + "Customer#000000071", + -611.19, + "17-710-812-5403", + "GERMANY", + "TlGalgdXWBmMV,6agLyWYDyIz9MKzcY8gl,w6t1B", + "g courts across the regular, final pinto beans are blithely pending ac" + ], + [ + 121663.1243, + 89, + "Customer#000000089", + 1530.76, + "24-394-451-5404", + "KENYA", + "dtR, y9JQWUO6FoJExyp8whOU", + "counts are slyly beyond the slyly final accounts. quickly final ideas wake. r" + ], + [ + 111137.7141, + 112, + "Customer#000000112", + 2953.35, + "29-233-262-8382", + "ROMANIA", + "RcfgG3bO7QeCnfjqJT1", + "rmanently unusual multipliers. blithely ruthless deposits are furiously along the" + ], + [ + 106368.0153, + 62, + "Customer#000000062", + 595.61, + "17-361-978-7059", + "GERMANY", + "upJK2Dnw13,", + "kly special dolphins. pinto beans are slyly. quickly regular accounts are furiously a" + ], + [ + 103265.98879999999, + 146, + "Customer#000000146", + 3328.68, + "13-835-723-3223", + "CANADA", + "GdxkdXG9u7iyI1,,y5tq4ZyrcEy", + "ffily regular dinos are slyly unusual requests. slyly specia" + ], + [ + 99306.0127, + 19, + "Customer#000000019", + 8914.71, + "28-396-526-5053", + "CHINA", + "uc,3bHIx84H,wdrmLOjVsiqXCq2tr", + " nag. furiously careful packages are slyly at the accounts. furiously regular in" + ], + [ + 99256.90179999999, + 145, + "Customer#000000145", + 9748.93, + "23-562-444-8454", + "JORDAN", + "kQjHmt2kcec cy3hfMh969u", + "ests? express, express instructions use. blithely fina" + ], + [ + 97311.77240000002, + 103, + "Customer#000000103", + 2757.45, + "19-216-107-2107", + "INDONESIA", + "8KIsQX4LJ7QMsj6DrtFtXu0nUEdV,8a", + "furiously pending notornis boost slyly around the blithely ironic ideas? final, even instructions cajole fl" + ], + [ + 95855.398, + 136, + "Customer#000000136", + -842.39, + "17-501-210-4726", + "GERMANY", + "QoLsJ0v5C1IQbh,DS1", + "ackages sleep ironic, final courts. even requests above the blithely bold requests g" + ], + [ + 92568.91239999999, + 53, + "Customer#000000053", + 4113.64, + "25-168-852-5363", + "MOROCCO", + "HnaxHzTfFTZs8MuCpJyTbZ47Cm4wFOOgib", + "ar accounts are. even foxes are blithely. fluffily pending deposits boost" + ], + [ + 90965.7262, + 49, + "Customer#000000049", + 4573.94, + "20-908-631-4424", + "IRAN", + "cNgAeX7Fqrdf7HQN9EwjUa4nxT,68L FKAxzl", + "nusual foxes! fluffily pending packages maintain to the regular " + ], + [ + 88065.74579999999, + 37, + "Customer#000000037", + -917.75, + "18-385-235-7162", + "INDIA", + "7EV4Pwh,3SboctTWt", + "ilent packages are carefully among the deposits. furiousl" + ], + [ + 86998.9644, + 82, + "Customer#000000082", + 9468.34, + "28-159-442-5305", + "CHINA", + "zhG3EZbap4c992Gj3bK,3Ne,Xn", + "s wake. bravely regular accounts are furiously. regula" + ], + [ + 84808.068, + 125, + "Customer#000000125", + -234.12, + "29-261-996-3120", + "ROMANIA", + ",wSZXdVR xxIIfm9s8ITyLl3kgjT6UC07GY0Y", + "x-ray finally after the packages? regular requests c" + ], + [ + 84655.5711, + 59, + "Customer#000000059", + 3458.6, + "11-355-584-3112", + "ARGENTINA", + "zLOCP0wh92OtBihgspOGl4", + "ously final packages haggle blithely after the express deposits. furiou" + ] + ], + "total": 20, + "size": 20 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_011.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_011.ppl new file mode 100644 index 000000000..721b3d153 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_011.ppl @@ -0,0 +1,45 @@ +/* +select + ps_partkey, + sum(ps_supplycost * ps_availqty) as value +from + mys3.default.partsupp, + mys3.default.supplier, + mys3.default.nation +where + ps_suppkey = s_suppkey + and s_nationkey = n_nationkey + and n_name = 'GERMANY' +group by + ps_partkey having + sum(ps_supplycost * ps_availqty) > ( + select + sum(ps_supplycost * ps_availqty) * 0.0001000000 + from + mys3.default.partsupp, + mys3.default.supplier, + mys3.default.nation + where + ps_suppkey = s_suppkey + and s_nationkey = n_nationkey + and n_name = 'GERMANY' + ) +order by + value desc +*/ + +source = mys3.default.partsupp +| join ON ps_suppkey = s_suppkey mys3.default.supplier +| join ON s_nationkey = n_nationkey mys3.default.nation +| where n_name = 'GERMANY' +| stats sum(ps_supplycost * ps_availqty) as value by ps_partkey +| where value > [ + source = mys3.default.partsupp + | join ON ps_suppkey = s_suppkey mys3.default.supplier + | join ON s_nationkey = n_nationkey mys3.default.nation + | where n_name = 'GERMANY' + | stats sum(ps_supplycost * ps_availqty) as check + | eval threshold = check * 0.0001000000 + | fields threshold + ] +| sort - value \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_011.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_011.results new file mode 100644 index 000000000..9df7bb48c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_011.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "value", + "type": "double" + }, + { + "name": "ps_partkey", + "type": "long" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_012.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_012.ppl new file mode 100644 index 000000000..9111297d4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_012.ppl @@ -0,0 +1,42 @@ +/* +select + l_shipmode, + sum(case + when o_orderpriority = '1-URGENT' + or o_orderpriority = '2-HIGH' + then 1 + else 0 + end) as high_line_count, + sum(case + when o_orderpriority <> '1-URGENT' + and o_orderpriority <> '2-HIGH' + then 1 + else 0 + end) as low_line_count +from + mys3.default.orders, + mys3.default.lineitem +where + o_orderkey = l_orderkey + and l_shipmode in ('MAIL', 'SHIP') + and l_commitdate < l_receiptdate + and l_shipdate < l_commitdate + and l_receiptdate >= date '1994-01-01' + and l_receiptdate < date '1994-01-01' + interval '1' year +group by + l_shipmode +order by + l_shipmode +*/ + +source = mys3.default.orders +| join ON o_orderkey = l_orderkey mys3.default.lineitem +| where l_commitdate < l_receiptdate + and l_shipdate < l_commitdate + and l_shipmode in ('MAIL', 'SHIP') + and l_receiptdate >= date('1994-01-01') + and l_receiptdate < date_add(date('1994-01-01'), interval 1 year) +| stats sum(case(o_orderpriority = '1-URGENT' or o_orderpriority = '2-HIGH', 1 else 0)) as high_line_count, + sum(case(o_orderpriority != '1-URGENT' and o_orderpriority != '2-HIGH', 1 else 0)) as low_line_countby + by l_shipmode +| sort l_shipmode \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_012.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_012.results new file mode 100644 index 000000000..a98570e3a --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_012.results @@ -0,0 +1,31 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "high_line_count", + "type": "long" + }, + { + "name": "low_line_countby", + "type": "long" + }, + { + "name": "l_shipmode", + "type": "string" + } + ], + "datarows": [ + [ + 5, + 5, + "MAIL" + ], + [ + 5, + 10, + "SHIP" + ] + ], + "total": 2, + "size": 2 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_013.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_013.ppl new file mode 100644 index 000000000..946b31c63 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_013.ppl @@ -0,0 +1,31 @@ +/* +select + c_count, + count(*) as custdist +from + ( + select + c_custkey, + count(o_orderkey) as c_count + from + mys3.default.customer left outer join mys3.default.orders on + c_custkey = o_custkey + and o_comment not like '%special%requests%' + group by + c_custkey + ) as c_orders +group by + c_count +order by + custdist desc, + c_count desc +*/ + +source = [ + source = mys3.default.customer + | left outer join ON c_custkey = o_custkey AND not like(o_comment, '%special%requests%') + mys3.default.orders + | stats count(o_orderkey) as c_count by c_custkey + ] as c_orders +| stats count() as custdist by c_count +| sort - custdist, - c_count \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_013.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_013.results new file mode 100644 index 000000000..59b12b4b7 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_013.results @@ -0,0 +1,125 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "custdist", + "type": "long" + }, + { + "name": "c_count", + "type": "long" + } + ], + "datarows": [ + [ + 50, + 0 + ], + [ + 8, + 16 + ], + [ + 7, + 17 + ], + [ + 6, + 20 + ], + [ + 6, + 13 + ], + [ + 6, + 12 + ], + [ + 6, + 9 + ], + [ + 5, + 23 + ], + [ + 5, + 14 + ], + [ + 5, + 10 + ], + [ + 4, + 21 + ], + [ + 4, + 18 + ], + [ + 4, + 11 + ], + [ + 4, + 8 + ], + [ + 4, + 7 + ], + [ + 3, + 26 + ], + [ + 3, + 22 + ], + [ + 3, + 6 + ], + [ + 3, + 5 + ], + [ + 3, + 4 + ], + [ + 2, + 29 + ], + [ + 2, + 24 + ], + [ + 2, + 19 + ], + [ + 2, + 15 + ], + [ + 1, + 28 + ], + [ + 1, + 25 + ], + [ + 1, + 3 + ] + ], + "total": 27, + "size": 27 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_014.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_014.ppl new file mode 100644 index 000000000..06a145186 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_014.ppl @@ -0,0 +1,25 @@ +/* +select + 100.00 * sum(case + when p_type like 'PROMO%' + then l_extendedprice * (1 - l_discount) + else 0 + end) / sum(l_extendedprice * (1 - l_discount)) as promo_revenue +from + mys3.default.lineitem, + mys3.default.part +where + l_partkey = p_partkey + and l_shipdate >= date '1995-09-01' + and l_shipdate < date '1995-09-01' + interval '1' month +*/ + +source = mys3.default.lineitem +| join ON l_partkey = p_partkey + AND l_shipdate >= date('1995-09-01') + AND l_shipdate < date_add(date('1995-09-01'), interval 1 month) + mys3.default.part +| stats sum(case(like(p_type, 'PROMO%'), l_extendedprice * (1 - l_discount) else 0)) as sum1, + sum(l_extendedprice * (1 - l_discount)) as sum2 +| eval promo_revenue = 100.00 * sum1 / sum2 // Stats and Eval commands can combine when issues/819 resolved +| fields promo_revenue \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_014.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_014.results new file mode 100644 index 000000000..59ec69382 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_014.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "promo_revenue", + "type": "double" + } + ], + "datarows": [ + [ + 15.230212611597254 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_015.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_015.ppl new file mode 100644 index 000000000..1fc618ff6 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_015.ppl @@ -0,0 +1,52 @@ +/* +with revenue0 as + (select + l_suppkey as supplier_no, + sum(l_extendedprice * (1 - l_discount)) as total_revenue + from + mys3.default.lineitem + where + l_shipdate >= date '1996-01-01' + and l_shipdate < date '1996-01-01' + interval '3' month + group by + l_suppkey) +select + s_suppkey, + s_name, + s_address, + s_phone, + total_revenue +from + mys3.default.supplier, + revenue0 +where + s_suppkey = supplier_no + and total_revenue = ( + select + max(total_revenue) + from + revenue0 + ) +order by + s_suppkey +*/ + +// CTE is unsupported in PPL +source = mys3.default.supplier +| join right = revenue0 ON s_suppkey = supplier_no [ + source = mys3.default.lineitem + | where l_shipdate >= date('1996-01-01') AND l_shipdate < date_add(date('1996-01-01'), interval 3 month) + | eval supplier_no = l_suppkey + | stats sum(l_extendedprice * (1 - l_discount)) as total_revenue by supplier_no + ] +| where total_revenue = [ + source = [ + source = mys3.default.lineitem + | where l_shipdate >= date('1996-01-01') AND l_shipdate < date_add(date('1996-01-01'), interval 3 month) + | eval supplier_no = l_suppkey + | stats sum(l_extendedprice * (1 - l_discount)) as total_revenue by supplier_no + ] + | stats max(total_revenue) + ] +| sort s_suppkey +| fields s_suppkey, s_name, s_address, s_phone, total_revenue diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_015.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_015.results new file mode 100644 index 000000000..1973bd7f5 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_015.results @@ -0,0 +1,36 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "s_suppkey", + "type": "long" + }, + { + "name": "s_name", + "type": "string" + }, + { + "name": "s_address", + "type": "string" + }, + { + "name": "s_phone", + "type": "string" + }, + { + "name": "total_revenue", + "type": "double" + } + ], + "datarows": [ + [ + 10, + "Supplier#000000010", + "Saygah3gYWMp72i PY", + "34-852-489-8585", + 797313.3838 + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_016.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_016.ppl new file mode 100644 index 000000000..d0960dc3c --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_016.ppl @@ -0,0 +1,45 @@ +/* +select + p_brand, + p_type, + p_size, + count(distinct ps_suppkey) as supplier_cnt +from + mys3.default.partsupp, + mys3.default.part +where + p_partkey = ps_partkey + and p_brand <> 'Brand#45' + and p_type not like 'MEDIUM POLISHED%' + and p_size in (49, 14, 23, 45, 19, 3, 36, 9) + and ps_suppkey not in ( + select + s_suppkey + from + mys3.default.supplier + where + s_comment like '%Customer%Complaints%' + ) +group by + p_brand, + p_type, + p_size +order by + supplier_cnt desc, + p_brand, + p_type, + p_size +*/ + +source = mys3.default.partsupp +| join ON p_partkey = ps_partkey part +| where p_brand != 'Brand#45' + and not like(p_type, 'MEDIUM POLISHED%') + and p_size in (49, 14, 23, 45, 19, 3, 36, 9) + and ps_suppkey not in [ + source = mys3.default.supplier + | where like(s_comment, '%Customer%Complaints%') + | fields s_suppkey + ] +| stats distinct_count(ps_suppkey) as supplier_cnt by p_brand, p_type, p_size +| sort - supplier_cnt, p_brand, p_type, p_size \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_016.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_016.results new file mode 100644 index 000000000..712377004 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_016.results @@ -0,0 +1,229 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "supplier_cnt", + "type": "long" + }, + { + "name": "p_brand", + "type": "string" + }, + { + "name": "p_type", + "type": "string" + }, + { + "name": "p_size", + "type": "integer" + } + ], + "datarows": [ + [ + 4, + "Brand#11", + "PROMO ANODIZED TIN", + 45 + ], + [ + 4, + "Brand#11", + "SMALL PLATED COPPER", + 45 + ], + [ + 4, + "Brand#11", + "STANDARD POLISHED TIN", + 45 + ], + [ + 4, + "Brand#13", + "MEDIUM ANODIZED STEEL", + 36 + ], + [ + 4, + "Brand#14", + "SMALL ANODIZED NICKEL", + 45 + ], + [ + 4, + "Brand#15", + "LARGE ANODIZED BRASS", + 45 + ], + [ + 4, + "Brand#21", + "LARGE BURNISHED COPPER", + 19 + ], + [ + 4, + "Brand#23", + "ECONOMY BRUSHED COPPER", + 9 + ], + [ + 4, + "Brand#25", + "MEDIUM PLATED BRASS", + 45 + ], + [ + 4, + "Brand#31", + "ECONOMY PLATED STEEL", + 23 + ], + [ + 4, + "Brand#31", + "PROMO POLISHED TIN", + 23 + ], + [ + 4, + "Brand#32", + "MEDIUM BURNISHED BRASS", + 49 + ], + [ + 4, + "Brand#33", + "LARGE BRUSHED TIN", + 36 + ], + [ + 4, + "Brand#33", + "SMALL BURNISHED NICKEL", + 3 + ], + [ + 4, + "Brand#34", + "LARGE PLATED BRASS", + 45 + ], + [ + 4, + "Brand#34", + "MEDIUM BRUSHED COPPER", + 9 + ], + [ + 4, + "Brand#34", + "SMALL PLATED BRASS", + 14 + ], + [ + 4, + "Brand#35", + "STANDARD ANODIZED STEEL", + 23 + ], + [ + 4, + "Brand#43", + "PROMO POLISHED BRASS", + 19 + ], + [ + 4, + "Brand#43", + "SMALL BRUSHED NICKEL", + 9 + ], + [ + 4, + "Brand#44", + "SMALL PLATED COPPER", + 19 + ], + [ + 4, + "Brand#52", + "MEDIUM BURNISHED TIN", + 45 + ], + [ + 4, + "Brand#52", + "SMALL BURNISHED NICKEL", + 14 + ], + [ + 4, + "Brand#53", + "MEDIUM BRUSHED COPPER", + 3 + ], + [ + 4, + "Brand#55", + "STANDARD ANODIZED BRASS", + 36 + ], + [ + 4, + "Brand#55", + "STANDARD BRUSHED COPPER", + 3 + ], + [ + 2, + "Brand#13", + "SMALL BRUSHED NICKEL", + 19 + ], + [ + 2, + "Brand#25", + "SMALL BURNISHED COPPER", + 3 + ], + [ + 2, + "Brand#43", + "MEDIUM ANODIZED BRASS", + 14 + ], + [ + 2, + "Brand#53", + "STANDARD PLATED STEEL", + 45 + ], + [ + 1, + "Brand#24", + "MEDIUM PLATED STEEL", + 19 + ], + [ + 1, + "Brand#51", + "ECONOMY POLISHED STEEL", + 49 + ], + [ + 1, + "Brand#53", + "LARGE BURNISHED NICKEL", + 23 + ], + [ + 1, + "Brand#54", + "ECONOMY ANODIZED BRASS", + 9 + ] + ], + "total": 34, + "size": 34 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_017.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_017.ppl new file mode 100644 index 000000000..5ccab09a0 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_017.ppl @@ -0,0 +1,34 @@ +/* +select + sum(l_extendedprice) / 7.0 as avg_yearly +from + mys3.default.lineitem, + mys3.default.part +where + p_partkey = l_partkey + and p_brand = 'Brand#23' + and p_container = 'MED BOX' + and l_quantity < ( + select + 0.2 * avg(l_quantity) + from + mys3.default.lineitem + where + l_partkey = p_partkey + ) +*/ + +source = mys3.default.lineitem +| join ON p_partkey = l_partkey part +| where p_brand = 'Brand#23' + and p_container = 'MED BOX' + and l_quantity < [ + source = mys3.default.lineitem + | where l_partkey = p_partkey + | stats avg(l_quantity) as avg + | eval `0.2 * avg` = 0.2 * avg // Stats and Eval commands can combine when issues/819 resolved + | fields `0.2 * avg` + ] +| stats sum(l_extendedprice) as sum +| eval avg_yearly = sum / 7.0 // Stats and Eval commands can combine when issues/819 resolved +| fields avg_yearly \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_017.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_017.results new file mode 100644 index 000000000..3ecac8532 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_017.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "avg_yearly", + "type": "double" + } + ], + "datarows": [ + [ + null + ] + ], + "total": 1, + "size": 1 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_018.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_018.ppl new file mode 100644 index 000000000..20c53c580 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_018.ppl @@ -0,0 +1,48 @@ +/* +select + c_name, + c_custkey, + o_orderkey, + o_orderdate, + o_totalprice, + sum(l_quantity) +from + mys3.default.customer, + mys3.default.orders, + mys3.default.lineitem +where + o_orderkey in ( + select + l_orderkey + from + mys3.default.lineitem + group by + l_orderkey having + sum(l_quantity) > 300 + ) + and c_custkey = o_custkey + and o_orderkey = l_orderkey +group by + c_name, + c_custkey, + o_orderkey, + o_orderdate, + o_totalprice +order by + o_totalprice desc, + o_orderdate +limit 100 +*/ + +source = mys3.default.customer +| join ON c_custkey = o_custkey mys3.default.orders +| join ON o_orderkey = l_orderkey mys3.default.lineitem +| where o_orderkey in [ + source = mys3.default.lineitem + | stats sum(l_quantity) as sum by l_orderkey + | where sum > 300 + | fields l_orderkey + ] +| stats sum(l_quantity) by c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice +| sort - o_totalprice, o_orderdate +| head 100 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_018.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_018.results new file mode 100644 index 000000000..05b6e80d3 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_018.results @@ -0,0 +1,32 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "sum(l_quantity)", + "type": "double" + }, + { + "name": "c_name", + "type": "string" + }, + { + "name": "c_custkey", + "type": "long" + }, + { + "name": "o_orderkey", + "type": "long" + }, + { + "name": "o_orderdate", + "type": "timestamp_ntz" + }, + { + "name": "o_totalprice", + "type": "double" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_019.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_019.ppl new file mode 100644 index 000000000..bb47792d8 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_019.ppl @@ -0,0 +1,66 @@ +/* +select + sum(l_extendedprice* (1 - l_discount)) as revenue +from + mys3.default.lineitem, + mys3.default.part +where + ( + p_partkey = l_partkey + and p_brand = 'Brand#12' + and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') + and l_quantity >= 1 and l_quantity <= 1 + 10 + and p_size between 1 and 5 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + ) + or + ( + p_partkey = l_partkey + and p_brand = 'Brand#23' + and p_container in ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') + and l_quantity >= 10 and l_quantity <= 10 + 10 + and p_size between 1 and 10 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + ) + or + ( + p_partkey = l_partkey + and p_brand = 'Brand#34' + and p_container in ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') + and l_quantity >= 20 and l_quantity <= 20 + 10 + and p_size between 1 and 15 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + ) +*/ + +source = mys3.default.lineitem +| join ON + ( + p_partkey = l_partkey + and p_brand = 'Brand#12' + and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') + and l_quantity >= 1 and l_quantity <= 1 + 10 + and p_size between 1 and 5 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + ) OR ( + p_partkey = l_partkey + and p_brand = 'Brand#23' + and p_container in ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') + and l_quantity >= 10 and l_quantity <= 10 + 10 + and p_size between 1 and 10 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + ) OR ( + p_partkey = l_partkey + and p_brand = 'Brand#34' + and p_container in ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') + and l_quantity >= 20 and l_quantity <= 20 + 10 + and p_size between 1 and 15 + and l_shipmode in ('AIR', 'AIR REG') + and l_shipinstruct = 'DELIVER IN PERSON' + ) + mys3.default.part \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_019.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_019.results new file mode 100644 index 000000000..31f20fee6 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_019.results @@ -0,0 +1,108 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "l_orderkey", + "type": "long" + }, + { + "name": "l_partkey", + "type": "long" + }, + { + "name": "l_suppkey", + "type": "long" + }, + { + "name": "l_linenumber", + "type": "integer" + }, + { + "name": "l_quantity", + "type": "double" + }, + { + "name": "l_extendedprice", + "type": "double" + }, + { + "name": "l_discount", + "type": "double" + }, + { + "name": "l_tax", + "type": "double" + }, + { + "name": "l_returnflag", + "type": "string" + }, + { + "name": "l_linestatus", + "type": "string" + }, + { + "name": "l_shipdate", + "type": "timestamp_ntz" + }, + { + "name": "l_commitdate", + "type": "timestamp_ntz" + }, + { + "name": "l_receiptdate", + "type": "timestamp_ntz" + }, + { + "name": "l_shipinstruct", + "type": "string" + }, + { + "name": "l_shipmode", + "type": "string" + }, + { + "name": "l_comment", + "type": "string" + }, + { + "name": "p_partkey", + "type": "long" + }, + { + "name": "p_name", + "type": "string" + }, + { + "name": "p_mfgr", + "type": "string" + }, + { + "name": "p_brand", + "type": "string" + }, + { + "name": "p_type", + "type": "string" + }, + { + "name": "p_size", + "type": "integer" + }, + { + "name": "p_container", + "type": "string" + }, + { + "name": "p_retailprice", + "type": "double" + }, + { + "name": "p_comment", + "type": "string" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_020.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_020.ppl new file mode 100644 index 000000000..30f7a4bd4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_020.ppl @@ -0,0 +1,62 @@ +/* +select + s_name, + s_address +from + mys3.default.supplier, + mys3.default.nation +where + s_suppkey in ( + select + ps_suppkey + from + mys3.default.partsupp + where + ps_partkey in ( + select + p_partkey + from + mys3.default.part + where + p_name like 'forest%' + ) + and ps_availqty > ( + select + 0.5 * sum(l_quantity) + from + mys3.default.lineitem + where + l_partkey = ps_partkey + and l_suppkey = ps_suppkey + and l_shipdate >= date '1994-01-01' + and l_shipdate < date '1994-01-01' + interval '1' year + ) + ) + and s_nationkey = n_nationkey + and n_name = 'CANADA' +order by + s_name +*/ + +source = mys3.default.supplier +| join ON s_nationkey = n_nationkey mys3.default.nation +| where n_name = 'CANADA' + and s_suppkey in [ + source = mys3.default.partsupp + | where ps_partkey in [ + source = mys3.default.part + | where like(p_name, 'forest%') + | fields p_partkey + ] + and ps_availqty > [ + source = mys3.default.lineitem + | where l_partkey = ps_partkey + and l_suppkey = ps_suppkey + and l_shipdate >= date('1994-01-01') + and l_shipdate < date_add(date('1994-01-01'), interval 1 year) + | stats sum(l_quantity) as sum_l_quantity + | eval half_sum_l_quantity = 0.5 * sum_l_quantity // Stats and Eval commands can combine when issues/819 resolved + | fields half_sum_l_quantity + ] + | fields ps_suppkey + ] \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_020.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_020.results new file mode 100644 index 000000000..8d07431c4 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_020.results @@ -0,0 +1,52 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "s_suppkey", + "type": "long" + }, + { + "name": "s_name", + "type": "string" + }, + { + "name": "s_address", + "type": "string" + }, + { + "name": "s_nationkey", + "type": "long" + }, + { + "name": "s_phone", + "type": "string" + }, + { + "name": "s_acctbal", + "type": "double" + }, + { + "name": "s_comment", + "type": "string" + }, + { + "name": "n_nationkey", + "type": "long" + }, + { + "name": "n_name", + "type": "string" + }, + { + "name": "n_regionkey", + "type": "long" + }, + { + "name": "n_comment", + "type": "string" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_021.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_021.ppl new file mode 100644 index 000000000..3203605f8 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_021.ppl @@ -0,0 +1,64 @@ +/* +select + s_name, + count(*) as numwait +from + mys3.default.supplier, + mys3.default.lineitem l1, + mys3.default.orders, + mys3.default.nation +where + s_suppkey = l1.l_suppkey + and o_orderkey = l1.l_orderkey + and o_orderstatus = 'F' + and l1.l_receiptdate > l1.l_commitdate + and exists ( + select + * + from + mys3.default.lineitem l2 + where + l2.l_orderkey = l1.l_orderkey + and l2.l_suppkey <> l1.l_suppkey + ) + and not exists ( + select + * + from + mys3.default.lineitem l3 + where + l3.l_orderkey = l1.l_orderkey + and l3.l_suppkey <> l1.l_suppkey + and l3.l_receiptdate > l3.l_commitdate + ) + and s_nationkey = n_nationkey + and n_name = 'SAUDI ARABIA' +group by + s_name +order by + numwait desc, + s_name +limit 100 +*/ + +source = mys3.default.supplier +| join ON s_suppkey = l1.l_suppkey mys3.default.lineitem as l1 +| join ON o_orderkey = l1.l_orderkey mys3.default.orders +| join ON s_nationkey = n_nationkey mys3.default.nation +| where o_orderstatus = 'F' + and l1.l_receiptdate > l1.l_commitdate + and exists [ + source = mys3.default.lineitem as l2 + | where l2.l_orderkey = l1.l_orderkey + and l2.l_suppkey != l1.l_suppkey + ] + and not exists [ + source = mys3.default.lineitem as l3 + | where l3.l_orderkey = l1.l_orderkey + and l3.l_suppkey != l1.l_suppkey + and l3.l_receiptdate > l3.l_commitdate + ] + and n_name = 'SAUDI ARABIA' +| stats count() as numwait by s_name +| sort - numwait, s_name +| head 100 \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_021.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_021.results new file mode 100644 index 000000000..b97f4bc60 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_021.results @@ -0,0 +1,16 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "numwait", + "type": "long" + }, + { + "name": "s_name", + "type": "string" + } + ], + "datarows": [], + "total": 0, + "size": 0 +} \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_022.ppl b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_022.ppl new file mode 100644 index 000000000..41ee3758d --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_022.ppl @@ -0,0 +1,58 @@ +/* +select + cntrycode, + count(*) as numcust, + sum(c_acctbal) as totacctbal +from + ( + select + substring(c_phone, 1, 2) as cntrycode, + c_acctbal + from + mys3.default.customer + where + substring(c_phone, 1, 2) in + ('13', '31', '23', '29', '30', '18', '17') + and c_acctbal > ( + select + avg(c_acctbal) + from + mys3.default.customer + where + c_acctbal > 0.00 + and substring(c_phone, 1, 2) in + ('13', '31', '23', '29', '30', '18', '17') + ) + and not exists ( + select + * + from + mys3.default.orders + where + o_custkey = c_custkey + ) + ) as custsale +group by + cntrycode +order by + cntrycode +*/ + +source = [ + source = mys3.default.customer + | where substring(c_phone, 1, 2) in ('13', '31', '23', '29', '30', '18', '17') + and c_acctbal > [ + source = mys3.default.customer + | where c_acctbal > 0.00 + and substring(c_phone, 1, 2) in ('13', '31', '23', '29', '30', '18', '17') + | stats avg(c_acctbal) + ] + and not exists [ + source = mys3.default.orders + | where o_custkey = c_custkey + ] + | eval cntrycode = substring(c_phone, 1, 2) + | fields cntrycode, c_acctbal + ] as custsale +| stats count() as numcust, sum(c_acctbal) as totacctbal by cntrycode +| sort cntrycode \ No newline at end of file diff --git a/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_022.results b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_022.results new file mode 100644 index 000000000..e44a72709 --- /dev/null +++ b/e2e-test/src/test/resources/opensearch/queries/ppl/tpch_022.results @@ -0,0 +1,56 @@ +{ + "status": "SUCCESS", + "schema": [ + { + "name": "numcust", + "type": "long" + }, + { + "name": "totacctbal", + "type": "double" + }, + { + "name": "cntrycode", + "type": "string" + } + ], + "datarows": [ + [ + 1, + 5679.84, + "13" + ], + [ + 1, + 9127.27, + "17" + ], + [ + 2, + 14647.99, + "18" + ], + [ + 1, + 9255.67, + "23" + ], + [ + 2, + 17195.08, + "29" + ], + [ + 1, + 7638.57, + "30" + ], + [ + 1, + 9331.13, + "31" + ] + ], + "total": 7, + "size": 7 +} \ No newline at end of file diff --git a/e2e-test/src/test/scala/org/opensearch/spark/e2e/EndToEndITSuite.scala b/e2e-test/src/test/scala/org/opensearch/spark/e2e/EndToEndITSuite.scala index 4f07cad8b..b649ec5c8 100644 --- a/e2e-test/src/test/scala/org/opensearch/spark/e2e/EndToEndITSuite.scala +++ b/e2e-test/src/test/scala/org/opensearch/spark/e2e/EndToEndITSuite.scala @@ -24,7 +24,8 @@ import org.apache.spark.internal.Logging import org.apache.spark.sql.{Dataset, Row} /** - * Tests requiring the should extend OpenSearchSuite. + * Tests queries for expected results on the integration test docker cluster. Queries can be run using + * Spark Connect or the OpenSearch Async Query API. */ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with BeforeAndAfterAll with SparkTrait with S3ClientTrait with Assertions with Logging { self: Suite => @@ -53,6 +54,9 @@ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with Be S3_SECRET_KEY } + /** + * Starts up the integration test docker cluster. + */ override def beforeAll(): Unit = { logInfo("Starting docker cluster") @@ -83,6 +87,9 @@ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with Be createIndices() } + /** + * Shuts down the integration test docker cluster. + */ override def afterAll(): Unit = { logInfo("Stopping docker cluster") waitForSparkSubmitCompletion() @@ -99,6 +106,10 @@ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with Be logInfo("Stopped docker cluster") } + /** + * Wait for all Spark submit containers to finish. Spark submit containers are used for processing Async Query + * API requests. Each Async Query API session will have at most one Spark submit container. + */ def waitForSparkSubmitCompletion(): Unit = { val endTime = System.currentTimeMillis() + 300000 while (System.currentTimeMillis() < endTime) { @@ -127,6 +138,11 @@ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with Be } } + /** + * Creates Spark tables. Looks for parquet files in "e2e-test/src/test/resources/spark/tables". + * + * The tables are created as external tables with the data stored in the MinIO(S3) container. + */ def createTables(): Unit = { try { val tablesDir = new File("e2e-test/src/test/resources/spark/tables") @@ -146,6 +162,13 @@ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with Be } } + /** + * Creates OpenSearch indices. Looks for ".mapping.json" files in + * "e2e-test/src/test/resources/opensearch/indices". + * + * An index is created using the mapping data in the ".mapping.json" file. If there is a similarly named + * file with only a ".json" extension, then it is used to do a bulk import of data into the index. + */ def createIndices(): Unit = { val indicesDir = new File("e2e-test/src/test/resources/opensearch/indices") val backend = HttpClientSyncBackend() @@ -179,6 +202,13 @@ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with Be }) } + /** + * Tests SQL queries on the "spark" container. Looks for ".sql" files in + * "e2e-test/src/test/resources/spark/queries/sql". + * + * Uses Spark Connect to run the query on the "spark" container and compares the results to the expected results + * in the corresponding ".results" file. The ".results" file is in CSV format with a header. + */ it should "SQL Queries" in { val queriesDir = new File("e2e-test/src/test/resources/spark/queries/sql") val queriesTableData : ListBuffer[(String, String)] = new ListBuffer() @@ -209,6 +239,13 @@ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with Be } } + /** + * Tests PPL queries on the "spark" container. Looks for ".ppl" files in + * "e2e-test/src/test/resources/spark/queries/ppl". + * + * Uses Spark Connect to run the query on the "spark" container and compares the results to the expected results + * in the corresponding ".results" file. The ".results" file is in CSV format with a header. + */ it should "PPL Queries" in { val queriesDir = new File("e2e-test/src/test/resources/spark/queries/ppl") val queriesTableData : ListBuffer[(String, String)] = new ListBuffer() @@ -239,6 +276,16 @@ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with Be } } + /** + * Tests SQL queries using the Async Query API. Looks for ".sql" files in + * "e2e-test/src/test/resources/opensearch/queries/sql". + * + * Submits the query using a REST call to the Async Query API. Will wait until the results are available and + * then compare them to the expected results in the corresponding ".results" file. The ".results" file is the + * JSON response from fetching the results. + * + * All queries are tested using the same Async Query API session. + */ it should "Async SQL Queries" in { var sessionId : String = null val backend = HttpClientSyncBackend() @@ -274,6 +321,16 @@ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with Be } } + /** + * Tests SQL queries using the Async Query API. Looks for ".ppl" files in + * "e2e-test/src/test/resources/opensearch/queries/ppl". + * + * Submits the query using a REST call to the Async Query API. Will wait until the results are available and + * then compare them to the expected results in the corresponding ".results" file. The ".results" file is the + * JSON response from fetching the results. + * + * All queries are tested using the same Async Query API session. + */ it should "Async PPL Queries" in { var sessionId : String = null val backend = HttpClientSyncBackend() @@ -309,6 +366,13 @@ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with Be } } + /** + * Retrieves the results from S3 of a query submitted using Spark Connect. The results are saved in S3 in CSV + * format. + * + * @param s3Path S3 "folder" where the results were saved + * @return CSV formatted results + */ def getActualResults(s3Path : String): String = { val objectSummaries = getS3Client().listObjects("test-resources", s3Path).getObjectSummaries var jsonKey : String = null @@ -337,21 +401,40 @@ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with Be throw new Exception("Object not found") } + /** + * Submits a request to the Async Query API to execute a query. + * + * @param language query language (either "ppl" or "sql") + * @param query query to execute + * @param sessionId Async Query API session to use (can be null) + * @param backend sttp backend to use for submitting requests + * @return sttp Response object of the submitted request + */ def executeAsyncQuery(language: String, query: String, sessionId: String, backend: SttpBackend[Identity, Any]) : Identity[Response[Either[ResponseException[String, JsError], JsValue]]] = { var queryBody : String = null + val escapedQuery = query.replaceAll("\n", "\\\\n") if (sessionId == null) { - queryBody = "{\"datasource\": \"" + S3_DATASOURCE + "\", \"lang\": \"" + language + "\", \"query\": \"" + query + "\"}" + queryBody = "{\"datasource\": \"" + S3_DATASOURCE + "\", \"lang\": \"" + language + "\", \"query\": \"" + escapedQuery + "\"}" } else { - queryBody = "{\"datasource\": \"" + S3_DATASOURCE + "\", \"lang\": \"" + language + "\", \"query\": \"" + query + "\", \"sessionId\": \"" + sessionId + "\"}" + queryBody = "{\"datasource\": \"" + S3_DATASOURCE + "\", \"lang\": \"" + language + "\", \"query\": \"" + escapedQuery + "\", \"sessionId\": \"" + sessionId + "\"}" } + basicRequest.post(uri"$OPENSEARCH_URL/_plugins/_async_query") .auth.basic(OPENSEARCH_USERNAME, OPENSEARCH_PASSWORD) .contentType("application/json") - .body(queryBody.getBytes) + .body(queryBody, "UTF-8") .response(asJson[JsValue]) .send(backend) } + /** + * Retrieves the results of an Async Query API query. Will wait up to 30 seconds for the query to finish and make + * the results available. + * + * @param queryId ID of the previously submitted query + * @param backend sttp backend to use + * @return results of the previously submitted query in JSON + */ def getAsyncResults(queryId: String, backend: SttpBackend[Identity, Any]): JsValue = { val endTime = System.currentTimeMillis() + 30000 @@ -369,6 +452,8 @@ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with Be if (status.isDefined) { if (status.get == "SUCCESS") { return responseBody + } else if (status.get == "FAILED") { + throw new IllegalStateException(s"Unable to get async query results [$queryId]") } } } @@ -376,6 +461,6 @@ class EndToEndITSuite extends AnyFlatSpec with TableDrivenPropertyChecks with Be Thread.sleep(500) } - throw new IllegalStateException("Unable to get async query results") + throw new IllegalStateException(s"Unable to get async query results (timeout) [$queryId]") } } diff --git a/e2e-test/src/test/scala/org/opensearch/spark/e2e/S3ClientTrait.scala b/e2e-test/src/test/scala/org/opensearch/spark/e2e/S3ClientTrait.scala index dcd535f29..2102fdda2 100644 --- a/e2e-test/src/test/scala/org/opensearch/spark/e2e/S3ClientTrait.scala +++ b/e2e-test/src/test/scala/org/opensearch/spark/e2e/S3ClientTrait.scala @@ -9,13 +9,32 @@ import com.amazonaws.auth.{AWSStaticCredentialsProvider, BasicAWSCredentials} import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration import com.amazonaws.services.s3.{AmazonS3, AmazonS3ClientBuilder} +/** + * Provides a method for obtaining an S3 client. + */ trait S3ClientTrait { var s3Client : AmazonS3 = null + /** + * Retrieves the S3 access key to use + * + * @return S3 access key to use + */ def getS3AccessKey(): String + /** + * Retrieves the S3 secret key to use + * + * @return S3 secret key to use + */ def getS3SecretKey(): String + /** + * Returns an S3 client. Constructs a new S3 client for use with the integration test docker cluster. Creates a + * new S3 client first time this is called, otherwise the existing S3 client is returned. + * + * @return an S3 client + */ def getS3Client(): AmazonS3 = { this.synchronized { if (s3Client == null) { diff --git a/e2e-test/src/test/scala/org/opensearch/spark/e2e/SparkTrait.scala b/e2e-test/src/test/scala/org/opensearch/spark/e2e/SparkTrait.scala index 467519a69..a64ace042 100644 --- a/e2e-test/src/test/scala/org/opensearch/spark/e2e/SparkTrait.scala +++ b/e2e-test/src/test/scala/org/opensearch/spark/e2e/SparkTrait.scala @@ -10,8 +10,20 @@ import org.apache.spark.sql.SparkSession trait SparkTrait { var spark : SparkSession = null + /** + * Retrieves the exposed port of Spark Connect on the "spark" container. + * + * @return Spark Connect port of the "spark" container + */ def getSparkConnectPort(): Int + /** + * Returns an SparkSession object. Constructs a new SparkSession object for use with the integration test docker + * cluster "spark" container. Creates a new SparkSession first time this is called, otherwise the existing S3 + * client is returned. + * + * @return a SparkSession for use with the integration test docker cluster + */ def getSparkSession(): SparkSession = { this.synchronized { if (spark == null) {