@@ -261,6 +261,25 @@ TEST_F(JsonFlattenerTest, testDeepJson3) {
261
261
EXPECT_EQ (" NULL" , result[2 ]->debug_item (1 ));
262
262
}
263
263
264
+ TEST_F (JsonFlattenerTest, testLargeJson) {
265
+ std::vector<std::string> json;
266
+ for (int k = 0 ; k < 10 ; k++) {
267
+ json.emplace_back (R"( {"k1": 1)" );
268
+ for (int i = 2 ; i <= 2000 ; i++) {
269
+ json[k] += fmt::format (" , \" k{0}\" : {1}" , i, i);
270
+ }
271
+ json[k] += " }" ;
272
+ }
273
+
274
+ std::vector<std::string> paths = {" k1" , " k2" , " k1000" };
275
+ std::vector<LogicalType> types = {TYPE_BIGINT, TYPE_BIGINT, TYPE_BIGINT};
276
+ auto result = test_json (json, paths, types, false );
277
+ EXPECT_EQ (3 , result.size ());
278
+ EXPECT_EQ (" 1" , result[0 ]->debug_item (0 ));
279
+ EXPECT_EQ (" 2" , result[1 ]->debug_item (0 ));
280
+ EXPECT_EQ (" 1000" , result[2 ]->debug_item (0 ));
281
+ }
282
+
264
283
TEST_F (JsonFlattenerTest, testMiddleJson) {
265
284
std::vector<std::string> json = {R"( {"k1": {"c1": {"d1": 123 }}, "k2": {"j1": "def", "j2": {"g1": [1,2,3]}}} )" ,
266
285
R"( {"k1": {"c1": {"d1": "abc"}}, "k2": {"j1": "abc", "j2": {"g1": 123}}} )" };
0 commit comments