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 #include #include -#include +#include +#include #include +#include #include // IWYU pragma: no_include @@ -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,105 +1186,167 @@ 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; - - // skip $ and . at beginning - if (kp_len > 0 && *key_path == '$') { - key_path++; - kp_len--; - if (kp_len > 0 && *key_path == '.') { - key_path++; - kp_len--; - } - } - - if (kp_len == 0) return this; - - if (!delim) delim = "."; // default delimiter + Stream stream(key_path, kp_len); + stream.skip_whitespace(); + if (stream.exhausted() || stream.read() != SCOPE) 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; - } + while (pval && !stream.exhausted()) { + stream.skip_whitespace(); + stream.clear_legPtr(); + stream.clear_legLen(); + + if (!JsonbPath::parsePath(&stream, pval)) { + return nullptr; } - // check brackets and array index length - if (left_bracket || right_bracket) { - if (!left_bracket || !right_bracket) { - return nullptr; - } - // check the last char is ] - if (key + klen - 1 != right_bracket) { - return nullptr; - } - // 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; + if (stream.get_legLen() == 0) { + return nullptr; } - if (!klen && !idx_len) 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(); + } - // 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; + 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 { - return nullptr; + 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 + } } - } - // 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(left_bracket + 1, idx_len, &parse_result); - // if (parse_result == doris::StringParser::ParseResult::PARSE_SUCCESS) - } else { - return nullptr; - } - } - - // skip the delimiter - if (key_path < fence) { - ++key_path; - if (key_path == fence) - // we have a trailing delimiter at the end - return nullptr; + pval = ((ArrayVal*)pval)->get(index); } } return pval; } +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(stream->position())); + stream->add_legLen(); + stream->skip(1); + if (stream->peek() == END_ARRAY) { + return true; + } else { + return false; //invalid json path + } + } + + stream->set_legPtr(const_cast(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(stream->position())); + stream->add_legLen(); + stream->skip(1); + return true; + } + + stream->set_legPtr(const_cast(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(++left_quotation_marks)); + continue; + } else { + 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; + } + } + + stream->add_legLen(); + } + + if (left_quotation_marks != nullptr && right_quotation_marks == nullptr) { + return false; //invalid json path + } + + return true; +} + #pragma pack(pop) } // namespace doris 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,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 @@ -414,6 +500,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 @@ -436,6 +523,99 @@ 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 +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 @@ -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,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 @@ -414,6 +500,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 @@ -436,6 +523,99 @@ 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 +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 @@ -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"