This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new c87e78dc35 [bug](jsonb) fix jsonb query bug When the json key value
contains "." (#19185)
c87e78dc35 is described below
commit c87e78dc354dc994867f5aa86bf7862025ccedcd
Author: Liqf <[email protected]>
AuthorDate: Mon May 15 15:43:12 2023 +0800
[bug](jsonb) fix jsonb query bug When the json key value contains "."
(#19185)
Issue Number: close #19173
mysql> SELECT jsonb_extract('{"a.b.c":{"k1":"v31", "k2.a1":
300},"a":"opentelemetry"}', '$."a.b.c".k1');
+-------------------------------------------------------------------------------------------+
| jsonb_extract('{"a.b.c":{"k1":"v31", "k2.a1": 300},"a":"opentelemetry"}',
'$."a.b.c".k1') |
+-------------------------------------------------------------------------------------------+
| "v31" |
+-------------------------------------------------------------------------------------------+
1 row in set (0.06 sec)
---
be/src/util/jsonb_document.h | 340 +++++++++++++++-----
be/src/vec/functions/function_jsonb.cpp | 4 +-
.../sql-functions/json-functions/jsonb_extract.md | 2 +
.../sql-functions/json-functions/jsonb_extract.md | 8 +-
.../data/jsonb_p0/test_jsonb_load_and_function.out | 342 +++++++++++++++++++++
.../test_jsonb_load_unique_key_and_function.out | 336 ++++++++++++++++++++
.../jsonb_p0/test_jsonb_load_and_function.groovy | 8 +
.../test_jsonb_load_unique_key_and_function.groovy | 8 +
8 files changed, 962 insertions(+), 86 deletions(-)
diff --git a/be/src/util/jsonb_document.h b/be/src/util/jsonb_document.h
index 19106cdea4..4a8705b623 100644
--- a/be/src/util/jsonb_document.h
+++ b/be/src/util/jsonb_document.h
@@ -69,9 +69,11 @@
#include <assert.h>
#include <stdint.h>
#include <stdlib.h>
-#include <string.h>
+#include <algorithm>
+#include <cctype>
#include <limits>
+#include <string>
#include <type_traits>
// IWYU pragma: no_include <opentelemetry/common/threadlocal.h>
@@ -129,6 +131,17 @@ enum class JsonbType : char {
NUM_TYPES,
};
+//for parse json path
+constexpr char SCOPE = '$';
+constexpr char BEGIN_MEMBER = '.';
+constexpr char BEGIN_ARRAY = '[';
+constexpr char END_ARRAY = ']';
+constexpr char DOUBLE_QUOTE = '"';
+constexpr char WILDCARD = '*';
+constexpr char MINUS = '-';
+constexpr char LAST[] = "last";
+constexpr char ESCAPE = '\\';
+
/*
* JsonbDocument is the main object that accesses and queries JSONB packed
* bytes. NOTE: JsonbDocument only allows object container as the top level
@@ -213,6 +226,109 @@ private:
char payload_[0];
};
+/// A simple input stream class for the JSON path parser.
+class Stream {
+public:
+ /// Creates an input stream reading from a character string.
+ /// @param string the input string
+ /// @param length the length of the input string
+ Stream(const char* string, size_t length) : m_position(string),
m_end(string + length) {}
+
+ /// Returns a pointer to the current position in the stream.
+ const char* position() const { return m_position; }
+
+ /// Returns a pointer to the position just after the end of the stream.
+ const char* end() const { return m_end; }
+
+ /// Returns the number of bytes remaining in the stream.
+ size_t remaining() const {
+ assert(m_position <= m_end);
+ return m_end - m_position;
+ }
+
+ /// Tells if the stream has been exhausted.
+ bool exhausted() const { return remaining() == 0; }
+
+ /// Reads the next byte from the stream and moves the position forward.
+ char read() {
+ assert(!exhausted());
+ return *m_position++;
+ }
+
+ /// Reads the next byte from the stream without moving the position
forward.
+ char peek() const {
+ assert(!exhausted());
+ return *m_position;
+ }
+
+ /// Moves the position to the next non-whitespace character.
+ void skip_whitespace() {
+ m_position = std::find_if_not(m_position, m_end, [](char c) { return
std::isspace(c); });
+ }
+
+ /// Moves the position n bytes forward.
+ void skip(size_t n) {
+ assert(remaining() >= n);
+ m_position += n;
+ skip_whitespace();
+ }
+
+ void clear_legPtr() { legPtr = nullptr; }
+
+ void set_legPtr(char* ptr) {
+ clear_legPtr();
+ legPtr = ptr;
+ }
+
+ char* get_legPtr() { return legPtr; }
+
+ void clear_legLen() { legLen = 0; }
+
+ void add_legLen() { legLen++; }
+
+ unsigned int get_legLen() { return legLen; }
+
+ void remove_escapes() {
+ int new_len = 0;
+ for (int i = 0; i < legLen; i++) {
+ if (legPtr[i] != '\\') {
+ legPtr[new_len++] = legPtr[i];
+ }
+ }
+ legPtr[new_len] = '\0';
+ legLen = new_len;
+ }
+
+ void set_hasEscapes(bool has) { hasEscapes = has; }
+
+ bool get_hasEscapes() { return hasEscapes; }
+
+private:
+ /// The current position in the stream.
+ const char* m_position;
+
+ /// The end of the stream.
+ const char* const m_end;
+
+ ///path leg ptr
+ char* legPtr;
+
+ ///path leg len
+ unsigned int legLen;
+
+ ///
+ bool hasEscapes = false;
+};
+
+class JsonbPath {
+public:
+ // parse json path
+ static bool parsePath(Stream* stream, JsonbValue* value);
+
+ static bool parse_array(Stream* stream);
+ static bool parse_member(Stream* stream);
+};
+
/*
* JsonbFwdIteratorT implements JSONB's iterator template.
*
@@ -394,14 +510,12 @@ public:
const char* getValuePtr() const;
// find the JSONB value by a key path string (null terminated)
- JsonbValue* findPath(const char* key_path, const char* delim = ".",
- hDictFind handler = nullptr) {
- return findPath(key_path, (unsigned int)strlen(key_path), delim,
handler);
+ JsonbValue* findPath(const char* key_path, hDictFind handler = nullptr) {
+ return findPath(key_path, (unsigned int)strlen(key_path), handler);
}
// find the JSONB value by a key path string (with length)
- JsonbValue* findPath(const char* key_path, unsigned int len, const char*
delim,
- hDictFind handler);
+ JsonbValue* findPath(const char* key_path, unsigned int len, hDictFind
handler);
friend class JsonbDocument;
protected:
@@ -1072,103 +1186,165 @@ inline const char* JsonbValue::getValuePtr() const {
}
inline JsonbValue* JsonbValue::findPath(const char* key_path, unsigned int
kp_len,
- const char* delim = ".", hDictFind
handler = nullptr) {
+ hDictFind handler = nullptr) {
if (!key_path) return nullptr;
if (kp_len == 0) return this;
+ Stream stream(key_path, kp_len);
+ stream.skip_whitespace();
+ if (stream.exhausted() || stream.read() != SCOPE) return nullptr;
- // skip $ and . at beginning
- if (kp_len > 0 && *key_path == '$') {
- key_path++;
- kp_len--;
- if (kp_len > 0 && *key_path == '.') {
- key_path++;
- kp_len--;
- }
- }
+ JsonbValue* pval = this;
- if (kp_len == 0) return this;
+ while (pval && !stream.exhausted()) {
+ stream.skip_whitespace();
+ stream.clear_legPtr();
+ stream.clear_legLen();
- if (!delim) delim = "."; // default delimiter
+ if (!JsonbPath::parsePath(&stream, pval)) {
+ return nullptr;
+ }
- JsonbValue* pval = this;
- const char* fence = key_path + kp_len;
- char idx_buf[21]; // buffer to parse array index (integer value)
-
- while (pval && key_path < fence) {
- const char* key = key_path;
- unsigned int klen = 0;
- const char* left_bracket = nullptr;
- const char* right_bracket = nullptr;
- size_t idx_len = 0;
- // find the current key and [] bracket position
- for (; key_path != fence && *key_path != *delim; ++key_path, ++klen) {
- if ('[' == *key_path) {
- left_bracket = key_path;
- } else if (']' == *key_path) {
- right_bracket = key_path;
- }
+ if (stream.get_legLen() == 0) {
+ return nullptr;
}
- // check brackets and array index length
- if (left_bracket || right_bracket) {
- if (!left_bracket || !right_bracket) {
- return nullptr;
+ if (LIKELY(pval->type_ == JsonbType::T_Object)) {
+ if (stream.get_legLen() == 1 && *stream.get_legPtr() == WILDCARD) {
+ return pval;
+ } else if (stream.get_hasEscapes()) {
+ stream.remove_escapes();
}
- // check the last char is ]
- if (key + klen - 1 != right_bracket) {
- return nullptr;
+
+ pval = ((ObjectVal*)pval)->find(stream.get_legPtr(),
stream.get_legLen(), handler);
+
+ if (!pval) return nullptr;
+ } else if (LIKELY(pval->type_ == JsonbType::T_Array)) {
+ int index = 0;
+ std::string idx_string(stream.get_legPtr(), stream.get_legLen());
+
+ if (stream.get_legLen() == 1 && *stream.get_legPtr() == WILDCARD) {
+ return pval;
+ } else if (std::string(stream.get_legPtr(), 4) == LAST) {
+ auto pos = idx_string.find(MINUS);
+
+ if (pos != std::string::npos) {
+ idx_string = idx_string.substr(pos + 1);
+ size_t num = ((ArrayVal*)pval)->numElem();
+ if (std::stoi(idx_string) > num) {
+ return nullptr; //invalid json path
+ }
+ index = num - 1 - std::stoi(idx_string);
+ } else if (stream.get_legLen() == 4) {
+ index = ((ArrayVal*)pval)->numElem() - 1;
+ } else {
+ return nullptr; //invalid json path
+ }
+ } else {
+ std::string::size_type pos;
+ index = std::stoi(idx_string, &pos, 10);
+ if (pos != idx_string.size()) {
+ return nullptr; //invalid json path
+ } else if (index >= ((ArrayVal*)pval)->numElem()) {
+ return nullptr; //invalid json path
+ }
}
- // the part before left_bracket is object key
- klen = left_bracket - key;
- // the part between left_bracket and right_bracket is array index
- idx_len = right_bracket - left_bracket - 1;
+
+ pval = ((ArrayVal*)pval)->get(index);
}
+ }
- if (!klen && !idx_len) return nullptr;
+ return pval;
+}
- // get value of key in object
- if (klen) {
- if (LIKELY(pval->type_ == JsonbType::T_Object)) {
- pval = ((ObjectVal*)pval)->find(key, klen, handler);
- if (!pval) return nullptr;
- } else {
- return nullptr;
- }
+inline bool JsonbPath::parsePath(Stream* stream, JsonbValue* value) {
+ if (stream->peek() == BEGIN_ARRAY && value->type() == JsonbType::T_Array) {
+ return parse_array(stream);
+ } else if (stream->peek() == BEGIN_MEMBER && value->type() ==
JsonbType::T_Object) {
+ return parse_member(stream);
+ } else {
+ return false; //invalid json path
+ }
+}
+
+inline bool JsonbPath::parse_array(Stream* stream) {
+ assert(stream->peek() == BEGIN_ARRAY);
+ stream->skip(1);
+ if (stream->exhausted()) return false; //invalid json path
+
+ if (stream->peek() == WILDCARD) {
+ stream->set_legPtr(const_cast<char*>(stream->position()));
+ stream->add_legLen();
+ stream->skip(1);
+ if (stream->peek() == END_ARRAY) {
+ return true;
+ } else {
+ return false; //invalid json path
}
+ }
- // get value at idx in array
- if (idx_len) {
- if (LIKELY(pval->type_ == JsonbType::T_Array)) {
- if (idx_len >= sizeof(idx_buf)) return nullptr;
- memcpy(idx_buf, left_bracket + 1, idx_len);
- idx_buf[idx_len] = 0;
-
- char* end = nullptr;
- int index = (int)strtol(idx_buf, &end, 10);
- if (end && !*end)
- pval = ((ArrayVal*)pval)->get(index);
- else
- // incorrect index string
- return nullptr;
-
- // doris::StringParser::ParseResult parse_result;
- // int index =
doris::StringParser::string_to_int<int>(left_bracket + 1, idx_len,
&parse_result);
- // if (parse_result ==
doris::StringParser::ParseResult::PARSE_SUCCESS)
+ stream->set_legPtr(const_cast<char*>(stream->position()));
+
+ for (; !stream->exhausted() && stream->peek() != END_ARRAY;
stream->skip(1)) {
+ stream->add_legLen();
+ }
+
+ if (!stream->exhausted() && stream->peek() == END_ARRAY) {
+ stream->skip(1);
+ return true;
+ } else {
+ return false; //invalid json path
+ }
+}
+
+inline bool JsonbPath::parse_member(Stream* stream) {
+ // advance past the .
+ assert(stream->peek() == BEGIN_MEMBER);
+ stream->skip(1);
+ if (stream->exhausted()) return false; //invalid json path
+
+ if (stream->peek() == WILDCARD) {
+ stream->set_legPtr(const_cast<char*>(stream->position()));
+ stream->add_legLen();
+ stream->skip(1);
+ return true;
+ }
+
+ stream->set_legPtr(const_cast<char*>(stream->position()));
+
+ const char* left_quotation_marks = nullptr;
+ const char* right_quotation_marks = nullptr;
+
+ for (; !stream->exhausted(); stream->skip(1)) {
+ if (stream->peek() == ESCAPE) {
+ stream->add_legLen();
+ stream->skip(1);
+ stream->add_legLen();
+ stream->set_hasEscapes(true);
+ continue;
+ } else if (stream->peek() == DOUBLE_QUOTE) {
+ if (left_quotation_marks == nullptr) {
+ left_quotation_marks = stream->position();
+ stream->set_legPtr(const_cast<char*>(++left_quotation_marks));
+ continue;
} else {
- return nullptr;
+ right_quotation_marks = stream->position();
+ stream->skip(1);
+ break;
+ }
+ } else if (stream->peek() == BEGIN_MEMBER || stream->peek() ==
BEGIN_ARRAY) {
+ if (left_quotation_marks == nullptr) {
+ break;
}
}
- // skip the delimiter
- if (key_path < fence) {
- ++key_path;
- if (key_path == fence)
- // we have a trailing delimiter at the end
- return nullptr;
- }
+ stream->add_legLen();
}
- return pval;
+ if (left_quotation_marks != nullptr && right_quotation_marks == nullptr) {
+ return false; //invalid json path
+ }
+
+ return true;
}
#pragma pack(pop)
diff --git a/be/src/vec/functions/function_jsonb.cpp
b/be/src/vec/functions/function_jsonb.cpp
index a0af1e13a2..ed6cf23fc6 100644
--- a/be/src/vec/functions/function_jsonb.cpp
+++ b/be/src/vec/functions/function_jsonb.cpp
@@ -421,7 +421,7 @@ private:
}
// value is NOT necessary to be deleted since JsonbValue will not
allocate memory
- JsonbValue* value = doc->getValue()->findPath(r_raw, r_size, ".",
nullptr);
+ JsonbValue* value = doc->getValue()->findPath(r_raw, r_size, nullptr);
if (UNLIKELY(!value)) {
StringOP::push_null_string(i, res_data, res_offsets, null_map);
return;
@@ -572,7 +572,7 @@ private:
}
// value is NOT necessary to be deleted since JsonbValue will not
allocate memory
- JsonbValue* value = doc->getValue()->findPath(r_raw_str, r_str_size,
".", nullptr);
+ JsonbValue* value = doc->getValue()->findPath(r_raw_str, r_str_size,
nullptr);
if (UNLIKELY(!value)) {
if constexpr (!only_check_exists) {
diff --git
a/docs/en/docs/sql-manual/sql-functions/json-functions/jsonb_extract.md
b/docs/en/docs/sql-manual/sql-functions/json-functions/jsonb_extract.md
index 6e673c683b..50466d2346 100644
--- a/docs/en/docs/sql-manual/sql-functions/json-functions/jsonb_extract.md
+++ b/docs/en/docs/sql-manual/sql-functions/json-functions/jsonb_extract.md
@@ -58,6 +58,8 @@ jsonb_extract functions extract field specified by json_path
from JSONB. A serie
Exception handling is as follows:
- if the field specified by json_path does not exist, return NULL
- if datatype of the field specified by json_path is not the same with type of
jsonb_extract_t, return t if it can be cast to t else NULL
+- If the key column value contains ".", double quotes are required in
json_path, For example: SELECT jsonb_extract('{"k1.a":"abc","k2":300}',
'$."k1.a"');
+- Use '$[last]' to get the last element of json_array, and '$[last-1]' to get
the penultimate element, and so on.
## jsonb_exists_path and jsonb_type
diff --git
a/docs/zh-CN/docs/sql-manual/sql-functions/json-functions/jsonb_extract.md
b/docs/zh-CN/docs/sql-manual/sql-functions/json-functions/jsonb_extract.md
index 90937ec4b9..88837f2b66 100644
--- a/docs/zh-CN/docs/sql-manual/sql-functions/json-functions/jsonb_extract.md
+++ b/docs/zh-CN/docs/sql-manual/sql-functions/json-functions/jsonb_extract.md
@@ -45,6 +45,8 @@ DOUBLE jsonb_extract_double(JSONB j, VARCHAR json_path)
STRING jsonb_extract_string(JSONB j, VARCHAR json_path)
```
+
+
jsonb_extract是一系列函数,从JSONB类型的数据中提取json_path指定的字段,根据要提取的字段类型不同提供不同的系列函数。
- jsonb_extract返回JSONB类型
- jsonb_extract_isnull返回是否为json null的BOOLEAN类型
@@ -55,8 +57,10 @@ jsonb_extract是一系列函数,从JSONB类型的数据中提取json_path指
- jsonb_extract_STRING返回STRING类型
特殊情况处理如下:
-- 如果json_path指定的字段在JSON中不存在,返回NULL
--
如果json_path指定的字段在JSON中的实际类型和jsonb_extract_t指定的类型不一致,如果能无损转换成指定类型返回指定类型t,如果不能则返回NULL
+- 如果 json_path 指定的字段在JSON中不存在,返回NULL
+- 如果 json_path
指定的字段在JSON中的实际类型和jsonb_extract_t指定的类型不一致,如果能无损转换成指定类型返回指定类型t,如果不能则返回NULL
+- 如果 key 列值包含 ".", json_path 中需要用双引号,例如 SELECT
jsonb_extract('{"k1.a":"abc","k2":300}', '$."k1.a"'); 。
+- 获取 json_array 的最后一个元素可以用'$[last]',倒数第二个元素可以用'$[last-1]',以此类推。
### example
diff --git a/regression-test/data/jsonb_p0/test_jsonb_load_and_function.out
b/regression-test/data/jsonb_p0/test_jsonb_load_and_function.out
index e6617ad6c3..51d4485d6a 100644
--- a/regression-test/data/jsonb_p0/test_jsonb_load_and_function.out
+++ b/regression-test/data/jsonb_p0/test_jsonb_load_and_function.out
@@ -40,6 +40,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
26 \N
27 {"k1":"v1","k2":200}
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
-- !select --
1 \N \N
@@ -62,6 +63,30 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
26 \N \N
27 {"k1":"v1","k2":200} {"k1":"v1","k2":200}
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
{"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} {}
+12 {"k1":"v31","k2":300} {"k1":"v31","k2":300}
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
+26 \N \N
+27 {"k1":"v1","k2":200} {"k1":"v1","k2":200}
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
{"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
-- !select --
1 \N \N
@@ -84,6 +109,53 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} "v31"
26 \N \N
27 {"k1":"v1","k2":200} "v1"
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} \N
+12 {"k1":"v31","k2":300} \N
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
+26 \N \N
+27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} {"k1.a1":"v31","k2":300}
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} \N
+12 {"k1":"v31","k2":300} \N
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
+26 \N \N
+27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} "v31"
-- !select --
1 \N \N
@@ -106,6 +178,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 300
26 \N \N
27 {"k1":"v1","k2":200} 200
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -128,6 +201,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -150,6 +224,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -172,6 +247,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -194,6 +270,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -216,6 +293,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -238,6 +316,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -260,6 +339,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -282,6 +362,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -304,6 +385,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
[{"k1":"v41","k2":400},1,"a",3.14]
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -326,6 +408,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v41","k2":400}
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -348,6 +431,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 1
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -370,6 +454,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} "a"
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -392,6 +477,30 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 3.14
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} \N
+12 {"k1":"v31","k2":300} \N
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
+26 \N \N
+27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -414,6 +523,76 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} \N
+12 {"k1":"v31","k2":300} \N
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 3.14
+26 \N \N
+27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} \N
+12 {"k1":"v31","k2":300} \N
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} "a"
+26 \N \N
+27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} \N
+12 {"k1":"v31","k2":300} \N
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 1
+26 \N \N
+27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -436,6 +615,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -458,6 +638,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
26 \N \N
27 {"k1":"v1","k2":200} {"k1":"v1","k2":200}
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
{"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
-- !select --
1 \N \N
@@ -480,6 +661,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} v31
26 \N \N
27 {"k1":"v1","k2":200} v1
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -502,6 +684,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 300
26 \N \N
27 {"k1":"v1","k2":200} 200
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -524,6 +707,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -546,6 +730,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -568,6 +753,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -590,6 +776,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -612,6 +799,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -634,6 +822,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -656,6 +845,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -678,6 +868,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -700,6 +891,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
[{"k1":"v41","k2":400},1,"a",3.14]
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -722,6 +914,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v41","k2":400}
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -744,6 +937,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 1
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -766,6 +960,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} a
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -788,6 +983,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 3.14
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -810,6 +1006,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -832,6 +1029,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -854,6 +1052,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -876,6 +1075,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -898,6 +1098,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 300
26 \N \N
27 {"k1":"v1","k2":200} 200
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -920,6 +1121,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -942,6 +1144,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -964,6 +1167,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -986,6 +1190,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1008,6 +1213,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1030,6 +1236,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1052,6 +1259,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1074,6 +1282,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1096,6 +1305,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1118,6 +1328,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1140,6 +1351,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 1
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1162,6 +1374,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1184,6 +1397,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1206,6 +1420,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1228,6 +1443,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1250,6 +1466,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1272,6 +1489,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1294,6 +1512,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 300
26 \N \N
27 {"k1":"v1","k2":200} 200
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1316,6 +1535,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1338,6 +1558,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1360,6 +1581,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1382,6 +1604,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1404,6 +1627,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1426,6 +1650,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1448,6 +1673,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1470,6 +1696,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1492,6 +1719,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1514,6 +1742,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1536,6 +1765,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 1
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1558,6 +1788,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1580,6 +1811,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1602,6 +1834,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1624,6 +1857,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1646,6 +1880,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1668,6 +1903,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1690,6 +1926,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 300.0
26 \N \N
27 {"k1":"v1","k2":200} 200.0
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1712,6 +1949,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1734,6 +1972,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1756,6 +1995,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1778,6 +2018,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1800,6 +2041,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1822,6 +2064,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1844,6 +2087,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1866,6 +2110,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1888,6 +2133,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1910,6 +2156,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1932,6 +2179,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 1.0
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1954,6 +2202,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1976,6 +2225,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 3.14
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1998,6 +2248,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2020,6 +2271,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2042,6 +2294,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2064,6 +2317,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2086,6 +2340,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2108,6 +2363,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2130,6 +2386,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2152,6 +2409,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2174,6 +2432,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2196,6 +2455,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2218,6 +2478,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2240,6 +2501,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2262,6 +2524,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2284,6 +2547,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2306,6 +2570,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2328,6 +2593,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2350,6 +2616,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2372,6 +2639,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2394,6 +2662,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2416,6 +2685,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2438,6 +2708,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2460,6 +2731,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2482,6 +2754,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2504,6 +2777,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2526,6 +2800,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2548,6 +2823,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2570,6 +2846,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2592,6 +2869,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2614,6 +2892,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2636,6 +2915,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2658,6 +2938,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2680,6 +2961,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2702,6 +2984,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2724,6 +3007,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2746,6 +3030,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2768,6 +3053,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2790,6 +3076,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2812,6 +3099,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2834,6 +3122,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} true
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} true
-- !select --
1 \N \N
@@ -2856,6 +3145,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} true
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2878,6 +3168,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} true
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2900,6 +3191,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2922,6 +3214,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2944,6 +3237,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2966,6 +3260,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2988,6 +3283,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3010,6 +3306,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3032,6 +3329,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3054,6 +3352,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3076,6 +3375,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3098,6 +3398,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3120,6 +3421,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3142,6 +3444,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3164,6 +3467,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3186,6 +3490,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3208,6 +3513,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3230,6 +3536,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} object
26 \N \N
27 {"k1":"v1","k2":200} object
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} object
-- !select --
1 \N \N
@@ -3252,6 +3559,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} string
26 \N \N
27 {"k1":"v1","k2":200} string
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3274,6 +3582,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} int
26 \N \N
27 {"k1":"v1","k2":200} int
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3296,6 +3605,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3318,6 +3628,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3340,6 +3651,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3362,6 +3674,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3384,6 +3697,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3406,6 +3720,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3428,6 +3743,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3450,6 +3766,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3472,6 +3789,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} array
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3494,6 +3812,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} object
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3516,6 +3835,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} int
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3538,6 +3858,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} string
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3560,6 +3881,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} double
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3582,6 +3904,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3604,6 +3927,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3626,6 +3950,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3648,6 +3973,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3670,6 +3996,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3692,6 +4019,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3714,6 +4042,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3736,6 +4065,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
26 \N \N
27 {"k1":"v1","k2":200} {"k1":"v1","k2":200}
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
{"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
-- !select --
1 \N \N
@@ -3758,6 +4088,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3780,6 +4111,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3802,6 +4134,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3824,6 +4157,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3846,6 +4180,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3868,6 +4203,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
26 \N \N
27 {"k1":"v1","k2":200} {"k1":"v1","k2":200}
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
{"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
-- !select --
\N
@@ -3965,6 +4301,7 @@ false
18 1
26 \N
27 1
+28 1
-- !select --
1
@@ -3996,6 +4333,7 @@ false
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} "v31"
26 \N \N
27 {"k1":"v1","k2":200} "v1"
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} null
-- !select --
1 \N \N
@@ -4018,6 +4356,7 @@ false
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
[300,null]
26 \N \N
27 {"k1":"v1","k2":200} [200,null]
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} [null,null]
-- !select --
1 \N \N
@@ -4040,6 +4379,7 @@ false
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
[300,null]
26 \N \N
27 {"k1":"v1","k2":200} [200,null]
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} [null,null]
-- !select --
1 \N \N
@@ -4062,6 +4402,7 @@ false
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -4084,4 +4425,5 @@ false
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
["v41",400,"a"]
26 \N \N
27 {"k1":"v1","k2":200} [null,null,null]
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} [null,null,null]
diff --git
a/regression-test/data/jsonb_p0/test_jsonb_load_unique_key_and_function.out
b/regression-test/data/jsonb_p0/test_jsonb_load_unique_key_and_function.out
index d834c24dcd..01bc0b3de7 100644
--- a/regression-test/data/jsonb_p0/test_jsonb_load_unique_key_and_function.out
+++ b/regression-test/data/jsonb_p0/test_jsonb_load_unique_key_and_function.out
@@ -40,6 +40,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
26 \N
27 {"k1":"v1","k2":200}
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
-- !select --
1 \N \N
@@ -62,6 +63,30 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
26 \N \N
27 {"k1":"v1","k2":200} {"k1":"v1","k2":200}
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
{"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} {}
+12 {"k1":"v31","k2":300} {"k1":"v31","k2":300}
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
+26 \N \N
+27 {"k1":"v1","k2":200} {"k1":"v1","k2":200}
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
{"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
-- !select --
1 \N \N
@@ -84,6 +109,53 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} "v31"
26 \N \N
27 {"k1":"v1","k2":200} "v1"
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} \N
+12 {"k1":"v31","k2":300} \N
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
+26 \N \N
+27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} {"k1.a1":"v31","k2":300}
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} \N
+12 {"k1":"v31","k2":300} \N
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
+26 \N \N
+27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} "v31"
-- !select --
1 \N \N
@@ -106,6 +178,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 300
26 \N \N
27 {"k1":"v1","k2":200} 200
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -128,6 +201,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -150,6 +224,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -172,6 +247,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -194,6 +270,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -216,6 +293,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -238,6 +316,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -260,6 +339,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -282,6 +362,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -304,6 +385,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
[{"k1":"v41","k2":400},1,"a",3.14]
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -326,6 +408,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v41","k2":400}
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -348,6 +431,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 1
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -370,6 +454,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} "a"
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -392,6 +477,30 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 3.14
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} \N
+12 {"k1":"v31","k2":300} \N
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
+26 \N \N
+27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -414,6 +523,76 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} \N
+12 {"k1":"v31","k2":300} \N
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 3.14
+26 \N \N
+27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} \N
+12 {"k1":"v31","k2":300} \N
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} "a"
+26 \N \N
+27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
+
+-- !select --
+1 \N \N
+2 null \N
+3 true \N
+4 false \N
+5 100 \N
+6 10000 \N
+7 1000000000 \N
+8 1152921504606846976 \N
+9 6.18 \N
+10 "abcd" \N
+11 {} \N
+12 {"k1":"v31","k2":300} \N
+13 [] \N
+14 [123,456] \N
+15 ["abc","def"] \N
+16 [null,true,false,100,6.18,"abc"] \N
+17 [{"k1":"v41","k2":400},1,"a",3.14] \N
+18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 1
+26 \N \N
+27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -436,6 +615,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -458,6 +638,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
26 \N \N
27 {"k1":"v1","k2":200} {"k1":"v1","k2":200}
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
{"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
-- !select --
1 \N \N
@@ -480,6 +661,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} v31
26 \N \N
27 {"k1":"v1","k2":200} v1
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -502,6 +684,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 300
26 \N \N
27 {"k1":"v1","k2":200} 200
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -524,6 +707,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -546,6 +730,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -568,6 +753,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -590,6 +776,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -612,6 +799,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -634,6 +822,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -656,6 +845,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -678,6 +868,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -700,6 +891,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
[{"k1":"v41","k2":400},1,"a",3.14]
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -722,6 +914,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v41","k2":400}
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -744,6 +937,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 1
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -766,6 +960,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} a
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -788,6 +983,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 3.14
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -810,6 +1006,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -832,6 +1029,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -854,6 +1052,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -876,6 +1075,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -898,6 +1098,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 300
26 \N \N
27 {"k1":"v1","k2":200} 200
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -920,6 +1121,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -942,6 +1144,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -964,6 +1167,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -986,6 +1190,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1008,6 +1213,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1030,6 +1236,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1052,6 +1259,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1074,6 +1282,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1096,6 +1305,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1118,6 +1328,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1140,6 +1351,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 1
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1162,6 +1374,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1184,6 +1397,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1206,6 +1420,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1228,6 +1443,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1250,6 +1466,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1272,6 +1489,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1294,6 +1512,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 300
26 \N \N
27 {"k1":"v1","k2":200} 200
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1316,6 +1535,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1338,6 +1558,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1360,6 +1581,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1382,6 +1604,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1404,6 +1627,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1426,6 +1650,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1448,6 +1673,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1470,6 +1696,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1492,6 +1719,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1514,6 +1742,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1536,6 +1765,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 1
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1558,6 +1788,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1580,6 +1811,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1602,6 +1834,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1624,6 +1857,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1646,6 +1880,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1668,6 +1903,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1690,6 +1926,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 300.0
26 \N \N
27 {"k1":"v1","k2":200} 200.0
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1712,6 +1949,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1734,6 +1972,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1756,6 +1995,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1778,6 +2018,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1800,6 +2041,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1822,6 +2064,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1844,6 +2087,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1866,6 +2110,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1888,6 +2133,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1910,6 +2156,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1932,6 +2179,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 1.0
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1954,6 +2202,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1976,6 +2225,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} 3.14
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -1998,6 +2248,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2020,6 +2271,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2042,6 +2294,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2064,6 +2317,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2086,6 +2340,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2108,6 +2363,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2130,6 +2386,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2152,6 +2409,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2174,6 +2432,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2196,6 +2455,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2218,6 +2478,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2240,6 +2501,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2262,6 +2524,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2284,6 +2547,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2306,6 +2570,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2328,6 +2593,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2350,6 +2616,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2372,6 +2639,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2394,6 +2662,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2416,6 +2685,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2438,6 +2708,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2460,6 +2731,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2482,6 +2754,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2504,6 +2777,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2526,6 +2800,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2548,6 +2823,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2570,6 +2846,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2592,6 +2869,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2614,6 +2892,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2636,6 +2915,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2658,6 +2938,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2680,6 +2961,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2702,6 +2984,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2724,6 +3007,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2746,6 +3030,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2768,6 +3053,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2790,6 +3076,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2812,6 +3099,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -2834,6 +3122,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} true
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} true
-- !select --
1 \N \N
@@ -2856,6 +3145,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} true
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2878,6 +3168,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} true
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2900,6 +3191,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2922,6 +3214,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2944,6 +3237,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2966,6 +3260,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -2988,6 +3283,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3010,6 +3306,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3032,6 +3329,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3054,6 +3352,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3076,6 +3375,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3098,6 +3398,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3120,6 +3421,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3142,6 +3444,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3164,6 +3467,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} true
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3186,6 +3490,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3208,6 +3513,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} false
26 \N \N
27 {"k1":"v1","k2":200} false
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} false
-- !select --
1 \N \N
@@ -3230,6 +3536,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} object
26 \N \N
27 {"k1":"v1","k2":200} object
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} object
-- !select --
1 \N \N
@@ -3252,6 +3559,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} string
26 \N \N
27 {"k1":"v1","k2":200} string
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3274,6 +3582,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} int
26 \N \N
27 {"k1":"v1","k2":200} int
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3296,6 +3605,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3318,6 +3628,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3340,6 +3651,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3362,6 +3674,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3384,6 +3697,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3406,6 +3720,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3428,6 +3743,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3450,6 +3766,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3472,6 +3789,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} array
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3494,6 +3812,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} object
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3516,6 +3835,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} int
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3538,6 +3858,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} string
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3560,6 +3881,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} double
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3582,6 +3904,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3604,6 +3927,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3626,6 +3950,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3648,6 +3973,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3670,6 +3996,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3692,6 +4019,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3714,6 +4042,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3736,6 +4065,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
26 \N \N
27 {"k1":"v1","k2":200} {"k1":"v1","k2":200}
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
{"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
-- !select --
1 \N \N
@@ -3758,6 +4088,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3780,6 +4111,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3802,6 +4134,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3824,6 +4157,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3846,6 +4180,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]} \N
26 \N \N
27 {"k1":"v1","k2":200} \N
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"} \N
-- !select --
1 \N \N
@@ -3868,6 +4203,7 @@
18 {"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
{"k1":"v31","k2":300,"a1":[{"k1":"v41","k2":400},1,"a",3.14]}
26 \N \N
27 {"k1":"v1","k2":200} {"k1":"v1","k2":200}
+28 {"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
{"a.b.c":{"k1.a1":"v31","k2":300},"a":"niu"}
-- !select --
\N
diff --git
a/regression-test/suites/jsonb_p0/test_jsonb_load_and_function.groovy
b/regression-test/suites/jsonb_p0/test_jsonb_load_and_function.groovy
index 85e6330f57..44cab6ac55 100644
--- a/regression-test/suites/jsonb_p0/test_jsonb_load_and_function.groovy
+++ b/regression-test/suites/jsonb_p0/test_jsonb_load_and_function.groovy
@@ -113,6 +113,7 @@ suite("test_jsonb_load_and_function", "p0") {
// insert into valid json rows
sql """INSERT INTO ${testTable} VALUES(26, NULL)"""
sql """INSERT INTO ${testTable} VALUES(27, '{"k1":"v1", "k2": 200}')"""
+ sql """INSERT INTO ${testTable} VALUES(28, '{"a.b.c":{"k1.a1":"v31", "k2":
300},"a":"niu"}')"""
// insert into invalid json rows with enable_insert_strict=true
// expect excepiton and no rows not changed
@@ -158,8 +159,11 @@ suite("test_jsonb_load_and_function", "p0") {
// jsonb_extract
qt_select "SELECT id, j, jsonb_extract(j, '\$') FROM ${testTable} ORDER BY
id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.*') FROM ${testTable} ORDER
BY id"
qt_select "SELECT id, j, jsonb_extract(j, '\$.k1') FROM ${testTable} ORDER
BY id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.\"a.b.c\"') FROM
${testTable} ORDER BY id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.\"a.b.c\".\"k1.a1\"') FROM
${testTable} ORDER BY id"
qt_select "SELECT id, j, jsonb_extract(j, '\$.k2') FROM ${testTable} ORDER
BY id"
qt_select "SELECT id, j, jsonb_extract(j, '\$[0]') FROM ${testTable} ORDER
BY id"
@@ -179,6 +183,10 @@ suite("test_jsonb_load_and_function", "p0") {
qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[3]') FROM ${testTable}
ORDER BY id"
qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[4]') FROM ${testTable}
ORDER BY id"
qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[10]') FROM ${testTable}
ORDER BY id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[last]') FROM ${testTable}
ORDER BY id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[last-1]') FROM
${testTable} ORDER BY id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[last-2]') FROM
${testTable} ORDER BY id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[last-10]') FROM
${testTable} ORDER BY id"
// jsonb_extract_string
qt_select "SELECT id, j, jsonb_extract_string(j, '\$') FROM ${testTable}
ORDER BY id"
diff --git
a/regression-test/suites/jsonb_p0/test_jsonb_load_unique_key_and_function.groovy
b/regression-test/suites/jsonb_p0/test_jsonb_load_unique_key_and_function.groovy
index f52a287b3e..c298f5642b 100644
---
a/regression-test/suites/jsonb_p0/test_jsonb_load_unique_key_and_function.groovy
+++
b/regression-test/suites/jsonb_p0/test_jsonb_load_unique_key_and_function.groovy
@@ -92,6 +92,7 @@ suite("test_jsonb_unique_load_and_function", "p0") {
// insert into valid json rows
sql """INSERT INTO ${testTable} VALUES(26, NULL)"""
sql """INSERT INTO ${testTable} VALUES(27, '{"k1":"v1", "k2": 200}')"""
+ sql """INSERT INTO ${testTable} VALUES(28, '{"a.b.c":{"k1.a1":"v31", "k2":
300},"a":"niu"}')"""
// insert into invalid json rows with enable_insert_strict=true
// expect excepiton and no rows not changed
@@ -137,8 +138,11 @@ suite("test_jsonb_unique_load_and_function", "p0") {
// jsonb_extract
qt_select "SELECT id, j, jsonb_extract(j, '\$') FROM ${testTable} ORDER BY
id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.*') FROM ${testTable} ORDER
BY id"
qt_select "SELECT id, j, jsonb_extract(j, '\$.k1') FROM ${testTable} ORDER
BY id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.\"a.b.c\"') FROM
${testTable} ORDER BY id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.\"a.b.c\".\"k1.a1\"') FROM
${testTable} ORDER BY id"
qt_select "SELECT id, j, jsonb_extract(j, '\$.k2') FROM ${testTable} ORDER
BY id"
qt_select "SELECT id, j, jsonb_extract(j, '\$[0]') FROM ${testTable} ORDER
BY id"
@@ -158,6 +162,10 @@ suite("test_jsonb_unique_load_and_function", "p0") {
qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[3]') FROM ${testTable}
ORDER BY id"
qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[4]') FROM ${testTable}
ORDER BY id"
qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[10]') FROM ${testTable}
ORDER BY id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[last]') FROM ${testTable}
ORDER BY id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[last-1]') FROM
${testTable} ORDER BY id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[last-2]') FROM
${testTable} ORDER BY id"
+ qt_select "SELECT id, j, jsonb_extract(j, '\$.a1[last-10]') FROM
${testTable} ORDER BY id"
// jsonb_extract_string
qt_select "SELECT id, j, jsonb_extract_string(j, '\$') FROM ${testTable}
ORDER BY id"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]