This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new 9ed56b9d2a0 [cherry-pick](branch2.0) add constant_keyword wildcard
data type (#30947) (#31119)
9ed56b9d2a0 is described below
commit 9ed56b9d2a01987bba684b5d3594019e73b03934
Author: Guangdong Liu <[email protected]>
AuthorDate: Thu Feb 22 14:25:44 2024 +0800
[cherry-pick](branch2.0) add constant_keyword wildcard data type (#30947)
(#31119)
bp #30947
---
.../elasticsearch/scripts/data/data1.json | 4 +-
.../elasticsearch/scripts/index/es7_test1.json | 7 +++
docs/en/docs/lakehouse/multi-catalog/es.md | 66 +++++++++++-----------
docs/zh-CN/docs/lakehouse/multi-catalog/es.md | 66 +++++++++++-----------
.../doris/external/elasticsearch/EsUtil.java | 2 +
.../data/external_table_p0/es/test_es_query.out | 60 +++++++++++++-------
.../es/test_es_query_no_http_url.out | 4 +-
.../external_table_p0/es/test_es_query.groovy | 4 ++
8 files changed, 125 insertions(+), 88 deletions(-)
diff --git
a/docker/thirdparties/docker-compose/elasticsearch/scripts/data/data1.json
b/docker/thirdparties/docker-compose/elasticsearch/scripts/data/data1.json
index 82aa4781641..7eb7f9c94f5 100755
--- a/docker/thirdparties/docker-compose/elasticsearch/scripts/data/data1.json
+++ b/docker/thirdparties/docker-compose/elasticsearch/scripts/data/data1.json
@@ -27,5 +27,7 @@
"c_person": [
{"name": "Andy", "age": 18},
{"name": "Tim", "age": 28}
- ]
+ ],
+ "my_wildcard": "This string can be quite lengthy",
+ "level": "debug"
}
diff --git
a/docker/thirdparties/docker-compose/elasticsearch/scripts/index/es7_test1.json
b/docker/thirdparties/docker-compose/elasticsearch/scripts/index/es7_test1.json
index 604de9964ea..ebca5899ae2 100755
---
a/docker/thirdparties/docker-compose/elasticsearch/scripts/index/es7_test1.json
+++
b/docker/thirdparties/docker-compose/elasticsearch/scripts/index/es7_test1.json
@@ -110,6 +110,13 @@
"ignore_above": 256
}
}
+ },
+ "my_wildcard": {
+ "type": "wildcard"
+ },
+ "level": {
+ "type": "constant_keyword",
+ "value": "debug"
}
}
}
diff --git a/docs/en/docs/lakehouse/multi-catalog/es.md
b/docs/en/docs/lakehouse/multi-catalog/es.md
index 03f926a3f51..0f2d249a62a 100644
--- a/docs/en/docs/lakehouse/multi-catalog/es.md
+++ b/docs/en/docs/lakehouse/multi-catalog/es.md
@@ -50,18 +50,18 @@ After switching to the ES Catalog, you will be in the
`dafault_db` so you don't
### Parameter Description
-| Parameter | Required or Not | Default Value | Description
|
-| ---------------------- | --------------- | ------------- |
------------------------------------------------------------ |
-| `hosts` | Yes | | ES address, can
be one or multiple addresses, or the load balancer address of ES |
-| `user` | No | Empty | ES username
|
-| `password` | No | Empty | Password of the
corresponding user |
-| `doc_value_scan` | No | true | Whether to obtain
value of the target field by ES/Lucene columnar storage |
-| `keyword_sniff` | No | true | Whether to sniff
the text.fields in ES based on keyword; If this is set to false, the system
will perform matching after tokenization. |
+| Parameter | Required or Not | Default Value | Description
|
+|------------------------|-----------------|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
+| `hosts` | Yes | | ES address, can
be one or multiple addresses, or the load balancer address of ES
|
+| `user` | No | Empty | ES username
|
+| `password` | No | Empty | Password of the
corresponding user
|
+| `doc_value_scan` | No | true | Whether to obtain
value of the target field by ES/Lucene columnar storage
|
+| `keyword_sniff` | No | true | Whether to sniff
the text.fields in ES based on keyword; If this is set to false, the system
will perform matching after tokenization. |
| `nodes_discovery` | No | true | Whether to enable
ES node discovery, set to true by default; set to false in network isolation
environments and only connected to specified nodes |
-| `ssl` | No | false | Whether to enable
HTTPS access mode for ES, currently follows a "Trust All" method in FE/BE |
-| `mapping_es_id` | No | false | Whether to map
the `_id` field in the ES index |
-| `like_push_down` | No | true | Whether to
transform like to wildcard push down to es, this increases the cpu consumption
of the es. |
-| `include_hidden_index` | No | false | Whether to
include hidden index, default to false. |
+| `ssl` | No | false | Whether to enable
HTTPS access mode for ES, currently follows a "Trust All" method in FE/BE
|
+| `mapping_es_id` | No | false | Whether to map
the `_id` field in the ES index
|
+| `like_push_down` | No | true | Whether to
transform like to wildcard push down to es, this increases the cpu consumption
of the es. |
+| `include_hidden_index` | No | false | Whether to
include hidden index, default to false.
|
> 1. In terms of authentication, only HTTP Basic authentication is supported
> and it requires the user to have read privilege for the index and paths
> including `/_cluster/state/` and `_nodes/http` ; if you have not enabled
> security authentication for the cluster, you don't need to set the `user`
> and `password`.
>
@@ -69,26 +69,28 @@ After switching to the ES Catalog, you will be in the
`dafault_db` so you don't
## Column Type Mapping
-| ES Type | Doris Type | Comment
|
-| ------------- | -----------
|-------------------------------------------------------------------------|
-| null | null |
|
-| boolean | boolean |
|
-| byte | tinyint |
|
-| short | smallint |
|
-| integer | int |
|
-| long | bigint |
|
-| unsigned_long | largeint |
|
-| float | float |
|
-| half_float | float |
|
-| double | double |
|
-| scaled_float | double |
|
-| date | date | Only support default/yyyy-MM-dd
HH:mm:ss/yyyy-MM-dd/epoch_millis format |
-| keyword | string |
|
-| text | string |
|
-| ip | string |
|
-| nested | string |
|
-| object | string |
|
-| other | unsupported |
|
+| ES Type | Doris Type | Comment
|
+|------------------|-------------|-------------------------------------------------------------------------|
+| null | null |
|
+| boolean | boolean |
|
+| byte | tinyint |
|
+| short | smallint |
|
+| integer | int |
|
+| long | bigint |
|
+| unsigned_long | largeint |
|
+| float | float |
|
+| half_float | float |
|
+| double | double |
|
+| scaled_float | double |
|
+| date | date | Only support default/yyyy-MM-dd
HH:mm:ss/yyyy-MM-dd/epoch_millis format |
+| keyword | string |
|
+| text | string |
|
+| ip | string |
|
+| constant_keyword | string |
|
+| wildcard | string |
|
+| nested | string |
|
+| object | string |
|
+| other | unsupported |
|
<version since="dev">
@@ -167,7 +169,7 @@ ES Catalogs support predicate pushdown to ES, which means
only the filtered data
For the sake of optimization, operators will be converted into the following
ES queries:
| SQL syntax | ES 5.x+ syntax |
-| -------------- | :--------------------------: |
+|----------------|:----------------------------:|
| = | term query |
| in | terms query |
| > , < , >= , ⇐ | range query |
diff --git a/docs/zh-CN/docs/lakehouse/multi-catalog/es.md
b/docs/zh-CN/docs/lakehouse/multi-catalog/es.md
index aabfe3dffd5..abb3099b73d 100644
--- a/docs/zh-CN/docs/lakehouse/multi-catalog/es.md
+++ b/docs/zh-CN/docs/lakehouse/multi-catalog/es.md
@@ -69,26 +69,28 @@ CREATE CATALOG es PROPERTIES (
## 列类型映射
-| ES Type | Doris Type | Comment
|
-|---|---|------------------------------------------------------------|
-|null| null||
-| boolean | boolean |
|
-| byte| tinyint| |
-| short| smallint| |
-| integer| int| |
-| long| bigint| |
-| unsigned_long| largeint |
|
-| float| float| |
-| half_float| float|
|
-| double | double |
|
-| scaled_float| double |
|
-| date | date | 仅支持 default/yyyy-MM-dd HH:mm:ss/yyyy-MM-dd/epoch_millis 格式 |
-| keyword | string |
|
-| text |string | |
-| ip |string | |
-| nested |string | |
-| object |string | |
-|other| unsupported ||
+| ES Type | Doris Type | Comment
|
+|------------------|-------------|------------------------------------------------------------|
+| null | null |
|
+| boolean | boolean |
|
+| byte | tinyint |
|
+| short | smallint |
|
+| integer | int |
|
+| long | bigint |
|
+| unsigned_long | largeint |
|
+| float | float |
|
+| half_float | float |
|
+| double | double |
|
+| scaled_float | double |
|
+| date | date | 仅支持 default/yyyy-MM-dd
HH:mm:ss/yyyy-MM-dd/epoch_millis 格式 |
+| keyword | string |
|
+| text | string |
|
+| ip | string |
|
+| constant_keyword | string |
|
+| wildcard | string |
|
+| nested | string |
|
+| object | string |
|
+| other | unsupported |
|
<version since="dev">
@@ -161,18 +163,18 @@ ES Catalog 支持过滤条件的下推: 过滤条件下推给ES,这样只有
下面的操作符(Operators)会被优化成如下ES Query:
-| SQL syntax | ES 5.x+ syntax |
-|-------|:---:|
-| = | term query|
-| in | terms query |
-| > , < , >= , ⇐ | range query |
-| and | bool.filter |
-| or | bool.should |
-| not | bool.must_not |
-| not in | bool.must_not + terms query |
-| is\_not\_null | exists query |
-| is\_null | bool.must_not + exists query |
-| esquery | ES原生json形式的QueryDSL |
+| SQL syntax | ES 5.x+ syntax |
+|----------------|:----------------------------:|
+| = | term query |
+| in | terms query |
+| > , < , >= , ⇐ | range query |
+| and | bool.filter |
+| or | bool.should |
+| not | bool.must_not |
+| not in | bool.must_not + terms query |
+| is\_not\_null | exists query |
+| is\_null | bool.must_not + exists query |
+| esquery | ES原生json形式的QueryDSL |
### 启用列式扫描优化查询速度(enable\_docvalue\_scan=true)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsUtil.java
b/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsUtil.java
index 021e92260b6..fd1cd22d4b5 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsUtil.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsUtil.java
@@ -295,6 +295,8 @@ public class EsUtil {
case "ip":
case "nested":
case "object":
+ case "wildcard":
+ case "constant_keyword":
type = ScalarType.createStringType();
break;
default:
diff --git a/regression-test/data/external_table_p0/es/test_es_query.out
b/regression-test/data/external_table_p0/es/test_es_query.out
index 3b995832c4d..78556a3cd46 100644
--- a/regression-test/data/external_table_p0/es/test_es_query.out
+++ b/regression-test/data/external_table_p0/es/test_es_query.out
@@ -102,16 +102,16 @@ I'm not null or empty
I'm not null or empty
-- !sql_7_02 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string1 2022-08-08T20:10:10 text#1 3.14
2022-08-08T00:00 2022-08-08T12:10:10 1659931810000
2022-08-08T12:10:10 2022-08-08T20:10:10 12345
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
-- !sql_7_03 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string1 2022-08-08T20:10:10 text#1 3.14
2022-08-08T00:00 2022-08-08T12:10:10 1659931810000
2022-08-08T12:10:10 2022-08-08T20:10:10 12345
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string4 2022-08-08T20:10:10 text3_4*5
6.0 2022-08-08T00:00 2022-08-11T12:10:10 1660191010000
2022-08-11T12:10:10 2022-08-11T11:10 [...]
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] string2 2022-08-08T12:10:10 text2 4.0
2022-08-08T00:00 2022-08-09T12:10:10 1660018210000
2022-08-09T12:10:10 2022-08-09T12:10:10 2222
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] I'm not null or empty string3 2022-08-09T00:40:10
text3_4*5 5.0 2022-08-08T00:00 2022-08-10T12:10:10
1660104610000 2022-08-10T12:10: [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N \N \N string4 2022-08-08T20:10:10
text3_4*5 6.0 2022-08-08T00:00 2022-08-11T12:10:10
1660191010000 2022-08-11T12:10:10 2022-08-11 [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N \N string2 2022-08-08T12:10:10
text2 4.0 2022-08-08T00:00 2022-08-09T12:10:10 1660018210000
2022-08-09T12:10:10 2022-08-09T12:10 [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N I'm not null or empty \N string3
2022-08-09T00:40:10 text3_4*5 5.0 2022-08-08T00:00
2022-08-10T12:10:10 1660104610000 2022-08-10T [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
-- !sql_7_04 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] string2 2022-08-08T12:10:10 text2 4.0
2022-08-08T00:00 2022-08-09T12:10:10 1660018210000
2022-08-09T12:10:10 2022-08-09T12:10:10 2222
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N \N string2 2022-08-08T12:10:10
text2 4.0 2022-08-08T00:00 2022-08-09T12:10:10 1660018210000
2022-08-09T12:10:10 2022-08-09T12:10 [...]
-- !sql_7_05 --
true 1 128 32768 -1 0 1.0 1.0 1.0 1.0
2020-01-01 2020-01-01T12:00 a d 192.168.0.1
{"name":"Andy","age":18}
@@ -126,7 +126,7 @@ true 1 128 32768 -1 0 1.0
1.0 1.0 1.0 2020-01-01 2020-01-01T12:00 a d
192.168.0.
true 1 128 32768 -1 0 1.0 1.0 1.0 1.0
2020-01-01 2020-01-01T12:00 a d 192.168.0.1
{"name":"Andy","age":18}
-- !sql_7_07 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string1 2022-08-08T20:10:10 text#1 3.14
2022-08-08T00:00 2022-08-08T12:10:10 1659931810000
2022-08-08T12:10:10 2022-08-08T20:10:10 12345
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
-- !sql_7_08 --
[1, 0, 1, 1] [1, -2, -3, 4] [128, 129, -129, -130] [32768, 32769, -32769,
-32770] [-1, 0, 1, 2] [0, 1, 2, 3] [1, 1.1, 1.2, 1.3] [1, 2, 3, 4]
[1, 2, 3, 4] [1, 2, 3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] ["a", "b", "c"] ["d", "e", "f"]
["192.168.0.1", "127.0.0.1"] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"]
@@ -144,16 +144,16 @@ true 1 128 32768 -1 0 1.0
1.0 1.0 1.0 2020-01-01 2020-01-01T12:00 a d
192.168.0.
value1 value2
-- !sql_7_11 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string1 2022-08-08T20:10:10 text#1 3.14
2022-08-08T00:00 2022-08-08T12:10:10 1659931810000
2022-08-08T12:10:10 2022-08-08T20:10:10 12345
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
-- !sql_7_12 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] string2 2022-08-08T12:10:10 text2 4.0
2022-08-08T00:00 2022-08-09T12:10:10 1660018210000
2022-08-09T12:10:10 2022-08-09T12:10:10 2222
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N \N string2 2022-08-08T12:10:10
text2 4.0 2022-08-08T00:00 2022-08-09T12:10:10 1660018210000
2022-08-09T12:10:10 2022-08-09T12:10 [...]
-- !sql_7_13 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] I'm not null or empty string3 2022-08-09T00:40:10
text3_4*5 5.0 2022-08-08T00:00 2022-08-10T12:10:10
1660104610000 2022-08-10T12:10: [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N I'm not null or empty \N string3
2022-08-09T00:40:10 text3_4*5 5.0 2022-08-08T00:00
2022-08-10T12:10:10 1660104610000 2022-08-10T [...]
-- !sql_7_14 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string4 2022-08-08T20:10:10 text3_4*5
6.0 2022-08-08T00:00 2022-08-11T12:10:10 1660191010000
2022-08-11T12:10:10 2022-08-11T11:10 [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N \N \N string4 2022-08-08T20:10:10
text3_4*5 6.0 2022-08-08T00:00 2022-08-11T12:10:10
1660191010000 2022-08-11T12:10:10 2022-08-11 [...]
-- !sql_7_15 --
2022-08-08T20:10:10
@@ -179,17 +179,26 @@ I'm not null or empty
-- !sql_7_21 --
I'm not null or empty
+-- !sql_7_22 --
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
+
+-- !sql_7_23 --
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N \N \N string4 2022-08-08T20:10:10
text3_4*5 6.0 2022-08-08T00:00 2022-08-11T12:10:10
1660191010000 2022-08-11T12:10:10 2022-08-11 [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N \N string2 2022-08-08T12:10:10
text2 4.0 2022-08-08T00:00 2022-08-09T12:10:10 1660018210000
2022-08-09T12:10:10 2022-08-09T12:10 [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N I'm not null or empty \N string3
2022-08-09T00:40:10 text3_4*5 5.0 2022-08-08T00:00
2022-08-10T12:10:10 1660104610000 2022-08-10T [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
+
-- !sql_7_19 --
value1 value2
-- !sql_8_01 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string1 2022-08-08T20:10:10 text#1 3.14
2022-08-08T00:00 2022-08-08T12:10:10 1659931810000
2022-08-08T12:10:10 2022-08-08T20:10:10 12345
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
-- !sql_8_02 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string1 2022-08-08T20:10:10 text#1 3.14
2022-08-08T00:00 2022-08-08T12:10:10 1659931810000
2022-08-08T12:10:10 2022-08-08T20:10:10 12345
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string4 2022-08-08T20:10:10 text3_4*5
6.0 2022-08-08T00:00 2022-08-11T12:10:10 1660191010000
2022-08-11T12:10:10 2022-08-11T11:10 [...]
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] string2 2022-08-08T12:10:10 text2 4.0
2022-08-08T00:00 2022-08-09T12:10:10 1660018210000
2022-08-09T12:10:10 2022-08-09T12:10:10 2222
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] I'm not null or empty string3 2022-08-09T00:40:10
text3_4*5 5.0 2022-08-08T00:00 2022-08-10T12:10:10
1660104610000 2022-08-10T12:10: [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N \N \N string4 2022-08-08T20:10:10
text3_4*5 6.0 2022-08-08T00:00 2022-08-11T12:10:10
1660191010000 2022-08-11T12:10:10 2022-08-11 [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N \N string2 2022-08-08T12:10:10
text2 4.0 2022-08-08T00:00 2022-08-09T12:10:10 1660018210000
2022-08-09T12:10:10 2022-08-09T12:10 [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N I'm not null or empty \N string3
2022-08-09T00:40:10 text3_4*5 5.0 2022-08-08T00:00
2022-08-10T12:10:10 1660104610000 2022-08-10T [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
-- !sql_8_03 --
true 1 128 32768 -1 0 1.0 1.0 1.0 1.0
2020-01-01 2020-01-01T12:00 a d 192.168.0.1
{"name":"Andy","age":18}
@@ -204,7 +213,7 @@ true 1 128 32768 -1 0 1.0
1.0 1.0 1.0 2020-01-01 2020-01-01T12:00 a d
192.168.0.
true 1 128 32768 -1 0 1.0 1.0 1.0 1.0
2020-01-01 2020-01-01T12:00 a d 192.168.0.1
{"name":"Andy","age":18}
-- !sql_8_05 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string1 2022-08-08T20:10:10 text#1 3.14
2022-08-08T00:00 2022-08-08T12:10:10 1659931810000
2022-08-08T12:10:10 2022-08-08T20:10:10 12345
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
-- !sql_8_06 --
[1, 0, 1, 1] [1, -2, -3, 4] [128, 129, -129, -130] [32768, 32769, -32769,
-32770] [-1, 0, 1, 2] [0, 1, 2, 3] [1, 1.1, 1.2, 1.3] [1, 2, 3, 4]
[1, 2, 3, 4] [1, 2, 3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] ["a", "b", "c"] ["d", "e", "f"]
["192.168.0.1", "127.0.0.1"] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"]
@@ -222,16 +231,16 @@ true 1 128 32768 -1 0 1.0
1.0 1.0 1.0 2020-01-01 2020-01-01T12:00 a d
192.168.0.
value1 value2
-- !sql_8_09 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string1 2022-08-08T20:10:10 text#1 3.14
2022-08-08T00:00 2022-08-08T12:10:10 1659931810000
2022-08-08T12:10:10 2022-08-08T20:10:10 12345
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
-- !sql_8_10 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] string2 2022-08-08T12:10:10 text2 4.0
2022-08-08T00:00 2022-08-09T12:10:10 1660018210000
2022-08-09T12:10:10 2022-08-09T12:10:10 2222
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N \N string2 2022-08-08T12:10:10
text2 4.0 2022-08-08T00:00 2022-08-09T12:10:10 1660018210000
2022-08-09T12:10:10 2022-08-09T12:10 [...]
-- !sql_8_11 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] I'm not null or empty string3 2022-08-09T00:40:10
text3_4*5 5.0 2022-08-08T00:00 2022-08-10T12:10:10
1660104610000 2022-08-10T12:10: [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N I'm not null or empty \N string3
2022-08-09T00:40:10 text3_4*5 5.0 2022-08-08T00:00
2022-08-10T12:10:10 1660104610000 2022-08-10T [...]
-- !sql_8_12 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string4 2022-08-08T20:10:10 text3_4*5
6.0 2022-08-08T00:00 2022-08-11T12:10:10 1660191010000
2022-08-11T12:10:10 2022-08-11T11:10 [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N \N \N string4 2022-08-08T20:10:10
text3_4*5 6.0 2022-08-08T00:00 2022-08-11T12:10:10
1660191010000 2022-08-11T12:10:10 2022-08-11 [...]
-- !sql_8_13 --
2022-08-08T20:10:10
@@ -257,3 +266,12 @@ I'm not null or empty
-- !sql_8_19 --
I'm not null or empty
+-- !sql_8_20 --
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
+
+-- !sql_8_21 --
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N \N \N string4 2022-08-08T20:10:10
text3_4*5 6.0 2022-08-08T00:00 2022-08-11T12:10:10
1660191010000 2022-08-11T12:10:10 2022-08-11 [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N \N string2 2022-08-08T12:10:10
text2 4.0 2022-08-08T00:00 2022-08-09T12:10:10 1660018210000
2022-08-09T12:10:10 2022-08-09T12:10 [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N I'm not null or empty \N string3
2022-08-09T00:40:10 text3_4*5 5.0 2022-08-08T00:00
2022-08-10T12:10:10 1660104610000 2022-08-10T [...]
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
+
diff --git
a/regression-test/data/external_table_p0/es/test_es_query_no_http_url.out
b/regression-test/data/external_table_p0/es/test_es_query_no_http_url.out
index edab82a4056..d2ce4d495f7 100644
--- a/regression-test/data/external_table_p0/es/test_es_query_no_http_url.out
+++ b/regression-test/data/external_table_p0/es/test_es_query_no_http_url.out
@@ -9,8 +9,8 @@
[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string1 text#1 3.14 2022-08-08T00:00
12345 2022-08-08T20:10:10
-- !sql71 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string1 2022-08-08T20:10:10 text#1 3.14
2022-08-08T00:00 2022-08-08T12:10:10 1659931810000
2022-08-08T12:10:10 2022-08-08T20:10:10 12345
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
-- !sql81 --
-[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] \N string1 2022-08-08T20:10:10 text#1 3.14
2022-08-08T00:00 2022-08-08T12:10:10 1659931810000
2022-08-08T12:10:10 2022-08-08T20:10:10 12345
+[1, 0, 1, 1] [1, -2, -3, 4] ["2020-01-01", "2020-01-02"] ["2020-01-01
12:00:00", "2020-01-02 13:01:01"] [1, 2, 3, 4] [1, 1.1, 1.2, 1.3] [1,
2, 3, 4] [32768, 32769, -32769, -32770] ["192.168.0.1", "127.0.0.1"]
["a", "b", "c"] [-1, 0, 1, 2] ["{"name":"Andy","age":18}",
"{"name":"Tim","age":28}"] [1, 2, 3, 4] [128, 129, -129, -130] ["d", "e",
"f"] [0, 1, 2, 3] debug \N This string can be quite lengthy
string1 2022-08-08T20:10:10 text#1 3.14 2022-08-08T00:00
2022-08-08T12:10:10 1659931810000 [...]
diff --git a/regression-test/suites/external_table_p0/es/test_es_query.groovy
b/regression-test/suites/external_table_p0/es/test_es_query.groovy
index 6c8f71dfc93..9acf67891e5 100644
--- a/regression-test/suites/external_table_p0/es/test_es_query.groovy
+++ b/regression-test/suites/external_table_p0/es/test_es_query.groovy
@@ -220,6 +220,8 @@ suite("test_es_query",
"p0,external,es,external_docker,external_docker_es") {
order_qt_sql_7_19 """select message from test1 where message != ''"""
order_qt_sql_7_20 """select message from test1 where message is not
null"""
order_qt_sql_7_21 """select message from test1 where
not_null_or_empty(message)"""
+ order_qt_sql_7_22 """select * from test1 where esquery(my_wildcard, '{
"wildcard": { "my_wildcard": { "value":"*quite*lengthy" } } }');"""
+ order_qt_sql_7_23 """select * from test1 where level = 'debug'"""
List<List<String>> tables7N = sql """show tables"""
boolean notContainHide7 = true
@@ -262,5 +264,7 @@ suite("test_es_query",
"p0,external,es,external_docker,external_docker_es") {
order_qt_sql_8_17 """select message from test1 where message != ''"""
order_qt_sql_8_18 """select message from test1 where message is not
null"""
order_qt_sql_8_19 """select message from test1 where
not_null_or_empty(message)"""
+ order_qt_sql_8_20 """select * from test1 where esquery(my_wildcard, '{
"wildcard": { "my_wildcard": { "value":"*quite*lengthy" } } }');"""
+ order_qt_sql_8_21 """select * from test1 where level = 'debug'"""
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]