/src/duckdb/third_party/yyjson/include/yyjson.hpp
Line | Count | Source (jump to first uncovered line) |
1 | | /*============================================================================== |
2 | | Copyright (c) 2020 YaoYuan <ibireme@gmail.com> |
3 | | |
4 | | Permission is hereby granted, free of charge, to any person obtaining a copy |
5 | | of this software and associated documentation files (the "Software"), to deal |
6 | | in the Software without restriction, including without limitation the rights |
7 | | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
8 | | copies of the Software, and to permit persons to whom the Software is |
9 | | furnished to do so, subject to the following conditions: |
10 | | |
11 | | The above copyright notice and this permission notice shall be included in all |
12 | | copies or substantial portions of the Software. |
13 | | |
14 | | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
15 | | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
16 | | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
17 | | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
18 | | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
19 | | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
20 | | SOFTWARE. |
21 | | *============================================================================*/ |
22 | | |
23 | | /** |
24 | | @file yyjson.h |
25 | | @date 2019-03-09 |
26 | | @author YaoYuan |
27 | | */ |
28 | | |
29 | | #ifndef DUCKDB_YYJSON_H |
30 | | #define DUCKDB_YYJSON_H |
31 | | |
32 | | |
33 | | |
34 | | /*============================================================================== |
35 | | * Header Files |
36 | | *============================================================================*/ |
37 | | |
38 | | #include <stdio.h> |
39 | | #include <stdlib.h> |
40 | | #include <stddef.h> |
41 | | #include <limits.h> |
42 | | #include <string.h> |
43 | | #include <float.h> |
44 | | |
45 | | #include "duckdb/common/fast_mem.hpp" |
46 | | |
47 | | namespace duckdb_yyjson { |
48 | | |
49 | | /*============================================================================== |
50 | | * Compile-time Options |
51 | | *============================================================================*/ |
52 | | |
53 | | /* |
54 | | Define as 1 to disable JSON reader if JSON parsing is not required. |
55 | | |
56 | | This will disable these functions at compile-time: |
57 | | - yyjson_read() |
58 | | - yyjson_read_opts() |
59 | | - yyjson_read_file() |
60 | | - yyjson_read_number() |
61 | | - yyjson_mut_read_number() |
62 | | |
63 | | This will reduce the binary size by about 60%. |
64 | | */ |
65 | | #ifndef YYJSON_DISABLE_READER |
66 | | #endif |
67 | | |
68 | | /* |
69 | | Define as 1 to disable JSON writer if JSON serialization is not required. |
70 | | |
71 | | This will disable these functions at compile-time: |
72 | | - yyjson_write() |
73 | | - yyjson_write_file() |
74 | | - yyjson_write_opts() |
75 | | - yyjson_val_write() |
76 | | - yyjson_val_write_file() |
77 | | - yyjson_val_write_opts() |
78 | | - yyjson_mut_write() |
79 | | - yyjson_mut_write_file() |
80 | | - yyjson_mut_write_opts() |
81 | | - yyjson_mut_val_write() |
82 | | - yyjson_mut_val_write_file() |
83 | | - yyjson_mut_val_write_opts() |
84 | | |
85 | | This will reduce the binary size by about 30%. |
86 | | */ |
87 | | #ifndef YYJSON_DISABLE_WRITER |
88 | | #endif |
89 | | |
90 | | /* |
91 | | Define as 1 to disable JSON Pointer, JSON Patch and JSON Merge Patch supports. |
92 | | |
93 | | This will disable these functions at compile-time: |
94 | | - yyjson_ptr_xxx() |
95 | | - yyjson_mut_ptr_xxx() |
96 | | - yyjson_doc_ptr_xxx() |
97 | | - yyjson_mut_doc_ptr_xxx() |
98 | | - yyjson_patch() |
99 | | - yyjson_mut_patch() |
100 | | - yyjson_merge_patch() |
101 | | - yyjson_mut_merge_patch() |
102 | | */ |
103 | | #ifndef YYJSON_DISABLE_UTILS |
104 | | #endif |
105 | | |
106 | | /* |
107 | | Define as 1 to disable the fast floating-point number conversion in yyjson, |
108 | | and use libc's `strtod/snprintf` instead. |
109 | | |
110 | | This will reduce the binary size by about 30%, but significantly slow down the |
111 | | floating-point read/write speed. |
112 | | */ |
113 | | #ifndef YYJSON_DISABLE_FAST_FP_CONV |
114 | | #endif |
115 | | |
116 | | /* |
117 | | Define as 1 to disable non-standard JSON support at compile-time: |
118 | | - Reading and writing inf/nan literal, such as `NaN`, `-Infinity`. |
119 | | - Single line and multiple line comments. |
120 | | - Single trailing comma at the end of an object or array. |
121 | | - Invalid unicode in string value. |
122 | | |
123 | | This will also invalidate these run-time options: |
124 | | - YYJSON_READ_ALLOW_INF_AND_NAN |
125 | | - YYJSON_READ_ALLOW_COMMENTS |
126 | | - YYJSON_READ_ALLOW_TRAILING_COMMAS |
127 | | - YYJSON_READ_ALLOW_INVALID_UNICODE |
128 | | - YYJSON_WRITE_ALLOW_INF_AND_NAN |
129 | | - YYJSON_WRITE_ALLOW_INVALID_UNICODE |
130 | | |
131 | | This will reduce the binary size by about 10%, and speed up the reading and |
132 | | writing speed by about 2% to 6%. |
133 | | */ |
134 | | #ifndef YYJSON_DISABLE_NON_STANDARD |
135 | | #endif |
136 | | |
137 | | /* |
138 | | Define as 1 to disable UTF-8 validation at compile time. |
139 | | |
140 | | If all input strings are guaranteed to be valid UTF-8 encoding (for example, |
141 | | some language's String object has already validated the encoding), using this |
142 | | flag can avoid redundant UTF-8 validation in yyjson. |
143 | | |
144 | | This flag can speed up the reading and writing speed of non-ASCII encoded |
145 | | strings by about 3% to 7%. |
146 | | |
147 | | Note: If this flag is used while passing in illegal UTF-8 strings, the |
148 | | following errors may occur: |
149 | | - Escaped characters may be ignored when parsing JSON strings. |
150 | | - Ending quotes may be ignored when parsing JSON strings, causing the string |
151 | | to be concatenated to the next value. |
152 | | - When accessing `yyjson_mut_val` for serialization, the string ending may be |
153 | | accessed out of bounds, causing a segmentation fault. |
154 | | */ |
155 | | #ifndef YYJSON_DISABLE_UTF8_VALIDATION |
156 | | #endif |
157 | | |
158 | | /* |
159 | | Define as 1 to indicate that the target architecture does not support unaligned |
160 | | memory access. Please refer to the comments in the C file for details. |
161 | | */ |
162 | | #ifndef YYJSON_DISABLE_UNALIGNED_MEMORY_ACCESS |
163 | | #endif |
164 | | |
165 | | /* Define as 1 to export symbols when building this library as Windows DLL. */ |
166 | | #ifndef YYJSON_EXPORTS |
167 | | #endif |
168 | | |
169 | | /* Define as 1 to import symbols when using this library as Windows DLL. */ |
170 | | #ifndef YYJSON_IMPORTS |
171 | | #endif |
172 | | |
173 | | /* Define as 1 to include <stdint.h> for compiler which doesn't support C99. */ |
174 | | #ifndef YYJSON_HAS_STDINT_H |
175 | | #endif |
176 | | |
177 | | /* Define as 1 to include <stdbool.h> for compiler which doesn't support C99. */ |
178 | | #ifndef YYJSON_HAS_STDBOOL_H |
179 | | #endif |
180 | | |
181 | | |
182 | | |
183 | | /*============================================================================== |
184 | | * Compiler Macros |
185 | | *============================================================================*/ |
186 | | |
187 | | /** compiler version (MSVC) */ |
188 | | #ifdef _MSC_VER |
189 | | # define YYJSON_MSC_VER _MSC_VER |
190 | | #else |
191 | | # define YYJSON_MSC_VER 0 |
192 | | #endif |
193 | | |
194 | | /** compiler version (GCC) */ |
195 | | #ifdef __GNUC__ |
196 | | # define YYJSON_GCC_VER __GNUC__ |
197 | | # if defined(__GNUC_PATCHLEVEL__) |
198 | | # define yyjson_gcc_available(major, minor, patch) \ |
199 | | ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) \ |
200 | | >= (major * 10000 + minor * 100 + patch)) |
201 | | # else |
202 | | # define yyjson_gcc_available(major, minor, patch) \ |
203 | | ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100) \ |
204 | | >= (major * 10000 + minor * 100 + patch)) |
205 | | # endif |
206 | | #else |
207 | | # define YYJSON_GCC_VER 0 |
208 | | # define yyjson_gcc_available(major, minor, patch) 0 |
209 | | #endif |
210 | | |
211 | | /** real gcc check */ |
212 | | #if !defined(__clang__) && !defined(__INTEL_COMPILER) && !defined(__ICC) && \ |
213 | | defined(__GNUC__) |
214 | | # define YYJSON_IS_REAL_GCC 1 |
215 | | #else |
216 | | # define YYJSON_IS_REAL_GCC 0 |
217 | | #endif |
218 | | |
219 | | /** C version (STDC) */ |
220 | | #if defined(__STDC__) && (__STDC__ >= 1) && defined(__STDC_VERSION__) |
221 | | # define YYJSON_STDC_VER __STDC_VERSION__ |
222 | | #else |
223 | | # define YYJSON_STDC_VER 0 |
224 | | #endif |
225 | | |
226 | | /** C++ version */ |
227 | | #if defined(__cplusplus) |
228 | | # define YYJSON_CPP_VER __cplusplus |
229 | | #else |
230 | | # define YYJSON_CPP_VER 0 |
231 | | #endif |
232 | | |
233 | | /** compiler builtin check (since gcc 10.0, clang 2.6, icc 2021) */ |
234 | | #ifndef yyjson_has_builtin |
235 | | # ifdef __has_builtin |
236 | | # define yyjson_has_builtin(x) __has_builtin(x) |
237 | | # else |
238 | | # define yyjson_has_builtin(x) 0 |
239 | | # endif |
240 | | #endif |
241 | | |
242 | | /** compiler attribute check (since gcc 5.0, clang 2.9, icc 17) */ |
243 | | #ifndef yyjson_has_attribute |
244 | | # ifdef __has_attribute |
245 | | # define yyjson_has_attribute(x) __has_attribute(x) |
246 | | # else |
247 | | # define yyjson_has_attribute(x) 0 |
248 | | # endif |
249 | | #endif |
250 | | |
251 | | /** compiler feature check (since clang 2.6, icc 17) */ |
252 | | #ifndef yyjson_has_feature |
253 | | # ifdef __has_feature |
254 | | # define yyjson_has_feature(x) __has_feature(x) |
255 | | # else |
256 | | # define yyjson_has_feature(x) 0 |
257 | | # endif |
258 | | #endif |
259 | | |
260 | | /** include check (since gcc 5.0, clang 2.7, icc 16, msvc 2017 15.3) */ |
261 | | #ifndef yyjson_has_include |
262 | | # ifdef __has_include |
263 | | # define yyjson_has_include(x) __has_include(x) |
264 | | # else |
265 | | # define yyjson_has_include(x) 0 |
266 | | # endif |
267 | | #endif |
268 | | |
269 | | /** inline for compiler */ |
270 | | #ifndef yyjson_inline |
271 | | # if YYJSON_MSC_VER >= 1200 |
272 | | # define yyjson_inline __forceinline |
273 | | # elif defined(_MSC_VER) |
274 | | # define yyjson_inline __inline |
275 | | # elif yyjson_has_attribute(always_inline) || YYJSON_GCC_VER >= 4 |
276 | | # define yyjson_inline __inline__ __attribute__((always_inline)) |
277 | | # elif defined(__clang__) || defined(__GNUC__) |
278 | | # define yyjson_inline __inline__ |
279 | | # elif defined(__cplusplus) || YYJSON_STDC_VER >= 199901L |
280 | | # define yyjson_inline inline |
281 | | # else |
282 | | # define yyjson_inline |
283 | | # endif |
284 | | #endif |
285 | | |
286 | | /** noinline for compiler */ |
287 | | #ifndef yyjson_noinline |
288 | | # if YYJSON_MSC_VER >= 1400 |
289 | | # define yyjson_noinline __declspec(noinline) |
290 | | # elif yyjson_has_attribute(noinline) || YYJSON_GCC_VER >= 4 |
291 | | # define yyjson_noinline __attribute__((noinline)) |
292 | | # else |
293 | | # define yyjson_noinline |
294 | | # endif |
295 | | #endif |
296 | | |
297 | | /** align for compiler */ |
298 | | #ifndef yyjson_align |
299 | | # if YYJSON_MSC_VER >= 1300 |
300 | | # define yyjson_align(x) __declspec(align(x)) |
301 | | # elif yyjson_has_attribute(aligned) || defined(__GNUC__) |
302 | | # define yyjson_align(x) __attribute__((aligned(x))) |
303 | | # elif YYJSON_CPP_VER >= 201103L |
304 | | # define yyjson_align(x) alignas(x) |
305 | | # else |
306 | | # define yyjson_align(x) |
307 | | # endif |
308 | | #endif |
309 | | |
310 | | /** likely for compiler */ |
311 | | #ifndef yyjson_likely |
312 | | # if yyjson_has_builtin(__builtin_expect) || \ |
313 | | (YYJSON_GCC_VER >= 4 && YYJSON_GCC_VER != 5) |
314 | 55.3M | # define yyjson_likely(expr) __builtin_expect(!!(expr), 1) |
315 | | # else |
316 | | # define yyjson_likely(expr) (expr) |
317 | | # endif |
318 | | #endif |
319 | | |
320 | | /** unlikely for compiler */ |
321 | | #ifndef yyjson_unlikely |
322 | | # if yyjson_has_builtin(__builtin_expect) || \ |
323 | | (YYJSON_GCC_VER >= 4 && YYJSON_GCC_VER != 5) |
324 | 55.2M | # define yyjson_unlikely(expr) __builtin_expect(!!(expr), 0) |
325 | | # else |
326 | | # define yyjson_unlikely(expr) (expr) |
327 | | # endif |
328 | | #endif |
329 | | |
330 | | /** compile-time constant check for compiler */ |
331 | | #ifndef yyjson_constant_p |
332 | | # if yyjson_has_builtin(__builtin_constant_p) || (YYJSON_GCC_VER >= 3) |
333 | | # define YYJSON_HAS_CONSTANT_P 1 |
334 | 830k | # define yyjson_constant_p(value) __builtin_constant_p(value) |
335 | | # else |
336 | | # define YYJSON_HAS_CONSTANT_P 0 |
337 | | # define yyjson_constant_p(value) 0 |
338 | | # endif |
339 | | #endif |
340 | | |
341 | | /** deprecate warning */ |
342 | | #ifndef yyjson_deprecated |
343 | | # if YYJSON_MSC_VER >= 1400 |
344 | | # define yyjson_deprecated(msg) __declspec(deprecated(msg)) |
345 | | # elif yyjson_has_feature(attribute_deprecated_with_message) || \ |
346 | | (YYJSON_GCC_VER > 4 || (YYJSON_GCC_VER == 4 && __GNUC_MINOR__ >= 5)) |
347 | | # define yyjson_deprecated(msg) __attribute__((deprecated(msg))) |
348 | | # elif YYJSON_GCC_VER >= 3 |
349 | | # define yyjson_deprecated(msg) __attribute__((deprecated)) |
350 | | # else |
351 | | # define yyjson_deprecated(msg) |
352 | | # endif |
353 | | #endif |
354 | | |
355 | | /** function export */ |
356 | | #ifndef yyjson_api |
357 | | # if defined(_WIN32) |
358 | | # if defined(YYJSON_EXPORTS) && YYJSON_EXPORTS |
359 | | # define yyjson_api __declspec(dllexport) |
360 | | # elif defined(YYJSON_IMPORTS) && YYJSON_IMPORTS |
361 | | # define yyjson_api __declspec(dllimport) |
362 | | # else |
363 | | # define yyjson_api |
364 | | # endif |
365 | | # elif yyjson_has_attribute(visibility) || YYJSON_GCC_VER >= 4 |
366 | | # define yyjson_api __attribute__((visibility("default"))) |
367 | | # else |
368 | | # define yyjson_api |
369 | | # endif |
370 | | #endif |
371 | | |
372 | | /** inline function export */ |
373 | | #ifndef yyjson_api_inline |
374 | | # define yyjson_api_inline static yyjson_inline |
375 | | #endif |
376 | | |
377 | | /** stdint (C89 compatible) */ |
378 | | #if (defined(YYJSON_HAS_STDINT_H) && YYJSON_HAS_STDINT_H) || \ |
379 | | YYJSON_MSC_VER >= 1600 || YYJSON_STDC_VER >= 199901L || \ |
380 | | defined(_STDINT_H) || defined(_STDINT_H_) || \ |
381 | | defined(__CLANG_STDINT_H) || defined(_STDINT_H_INCLUDED) || \ |
382 | | yyjson_has_include(<stdint.h>) |
383 | | # include <stdint.h> |
384 | | #elif defined(_MSC_VER) |
385 | | # if _MSC_VER < 1300 |
386 | | typedef signed char int8_t; |
387 | | typedef signed short int16_t; |
388 | | typedef signed int int32_t; |
389 | | typedef unsigned char uint8_t; |
390 | | typedef unsigned short uint16_t; |
391 | | typedef unsigned int uint32_t; |
392 | | typedef signed __int64 int64_t; |
393 | | typedef unsigned __int64 uint64_t; |
394 | | # else |
395 | | typedef signed __int8 int8_t; |
396 | | typedef signed __int16 int16_t; |
397 | | typedef signed __int32 int32_t; |
398 | | typedef unsigned __int8 uint8_t; |
399 | | typedef unsigned __int16 uint16_t; |
400 | | typedef unsigned __int32 uint32_t; |
401 | | typedef signed __int64 int64_t; |
402 | | typedef unsigned __int64 uint64_t; |
403 | | # endif |
404 | | #else |
405 | | # if UCHAR_MAX == 0xFFU |
406 | | typedef signed char int8_t; |
407 | | typedef unsigned char uint8_t; |
408 | | # else |
409 | | # error cannot find 8-bit integer type |
410 | | # endif |
411 | | # if USHRT_MAX == 0xFFFFU |
412 | | typedef unsigned short uint16_t; |
413 | | typedef signed short int16_t; |
414 | | # elif UINT_MAX == 0xFFFFU |
415 | | typedef unsigned int uint16_t; |
416 | | typedef signed int int16_t; |
417 | | # else |
418 | | # error cannot find 16-bit integer type |
419 | | # endif |
420 | | # if UINT_MAX == 0xFFFFFFFFUL |
421 | | typedef unsigned int uint32_t; |
422 | | typedef signed int int32_t; |
423 | | # elif ULONG_MAX == 0xFFFFFFFFUL |
424 | | typedef unsigned long uint32_t; |
425 | | typedef signed long int32_t; |
426 | | # elif USHRT_MAX == 0xFFFFFFFFUL |
427 | | typedef unsigned short uint32_t; |
428 | | typedef signed short int32_t; |
429 | | # else |
430 | | # error cannot find 32-bit integer type |
431 | | # endif |
432 | | # if defined(__INT64_TYPE__) && defined(__UINT64_TYPE__) |
433 | | typedef __INT64_TYPE__ int64_t; |
434 | | typedef __UINT64_TYPE__ uint64_t; |
435 | | # elif defined(__GNUC__) || defined(__clang__) |
436 | | # if !defined(_SYS_TYPES_H) && !defined(__int8_t_defined) |
437 | | __extension__ typedef long long int64_t; |
438 | | # endif |
439 | | __extension__ typedef unsigned long long uint64_t; |
440 | | # elif defined(_LONG_LONG) || defined(__MWERKS__) || defined(_CRAYC) || \ |
441 | | defined(__SUNPRO_C) || defined(__SUNPRO_CC) |
442 | | typedef long long int64_t; |
443 | | typedef unsigned long long uint64_t; |
444 | | # elif (defined(__BORLANDC__) && __BORLANDC__ > 0x460) || \ |
445 | | defined(__WATCOM_INT64__) || defined (__alpha) || defined (__DECC) |
446 | | typedef __int64 int64_t; |
447 | | typedef unsigned __int64 uint64_t; |
448 | | # else |
449 | | # error cannot find 64-bit integer type |
450 | | # endif |
451 | | #endif |
452 | | |
453 | | /** stdbool (C89 compatible) */ |
454 | | #if (defined(YYJSON_HAS_STDBOOL_H) && YYJSON_HAS_STDBOOL_H) || \ |
455 | | (yyjson_has_include(<stdbool.h>) && !defined(__STRICT_ANSI__)) || \ |
456 | | YYJSON_MSC_VER >= 1800 || YYJSON_STDC_VER >= 199901L |
457 | | # include <stdbool.h> |
458 | | #elif !defined(__bool_true_false_are_defined) |
459 | | # define __bool_true_false_are_defined 1 |
460 | | # if defined(__cplusplus) |
461 | | # if defined(__GNUC__) && !defined(__STRICT_ANSI__) |
462 | | # define _Bool bool |
463 | | # if __cplusplus < 201103L |
464 | | # define bool bool |
465 | | # define false false |
466 | | # define true true |
467 | | # endif |
468 | | # endif |
469 | | # else |
470 | | # define bool unsigned char |
471 | | # define true 1 |
472 | | # define false 0 |
473 | | # endif |
474 | | #endif |
475 | | |
476 | | /** char bit check */ |
477 | | #if defined(CHAR_BIT) |
478 | | # if CHAR_BIT != 8 |
479 | | # error non 8-bit char is not supported |
480 | | # endif |
481 | | #endif |
482 | | |
483 | | /** |
484 | | Microsoft Visual C++ 6.0 doesn't support converting number from u64 to f64: |
485 | | error C2520: conversion from unsigned __int64 to double not implemented. |
486 | | */ |
487 | | #ifndef YYJSON_U64_TO_F64_NO_IMPL |
488 | | # if (0 < YYJSON_MSC_VER) && (YYJSON_MSC_VER <= 1200) |
489 | | # define YYJSON_U64_TO_F64_NO_IMPL 1 |
490 | | # else |
491 | | # define YYJSON_U64_TO_F64_NO_IMPL 0 |
492 | | # endif |
493 | | #endif |
494 | | |
495 | | |
496 | | |
497 | | /*============================================================================== |
498 | | * Compile Hint Begin |
499 | | *============================================================================*/ |
500 | | |
501 | | /* extern "C" begin */ |
502 | | #ifdef __cplusplus |
503 | | // extern "C" { |
504 | | #endif |
505 | | |
506 | | /* warning suppress begin */ |
507 | | #if defined(__clang__) |
508 | | # pragma clang diagnostic push |
509 | | # pragma clang diagnostic ignored "-Wunused-const-variable" |
510 | | # pragma clang diagnostic ignored "-Wunused-function" |
511 | | # pragma clang diagnostic ignored "-Wunused-parameter" |
512 | | #elif defined(__GNUC__) |
513 | | # if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) |
514 | | # pragma GCC diagnostic push |
515 | | # endif |
516 | | # pragma GCC diagnostic ignored "-Wunused-const-variable" |
517 | | # pragma GCC diagnostic ignored "-Wunused-function" |
518 | | # pragma GCC diagnostic ignored "-Wunused-parameter" |
519 | | #elif defined(_MSC_VER) |
520 | | # pragma warning(push) |
521 | | # pragma warning(disable:4800) /* 'int': forcing value to 'true' or 'false' */ |
522 | | #endif |
523 | | |
524 | | |
525 | | |
526 | | /*============================================================================== |
527 | | * Version |
528 | | *============================================================================*/ |
529 | | |
530 | | /** The major version of yyjson. */ |
531 | | #define YYJSON_VERSION_MAJOR 0 |
532 | | |
533 | | /** The minor version of yyjson. */ |
534 | | #define YYJSON_VERSION_MINOR 9 |
535 | | |
536 | | /** The patch version of yyjson. */ |
537 | | #define YYJSON_VERSION_PATCH 0 |
538 | | |
539 | | /** The version of yyjson in hex: `(major << 16) | (minor << 8) | (patch)`. */ |
540 | 0 | #define YYJSON_VERSION_HEX 0x000900 |
541 | | |
542 | | /** The version string of yyjson. */ |
543 | | #define YYJSON_VERSION_STRING "0.9.0" |
544 | | |
545 | | /** The version of yyjson in hex, same as `YYJSON_VERSION_HEX`. */ |
546 | | yyjson_api uint32_t yyjson_version(void); |
547 | | |
548 | | |
549 | | |
550 | | /*============================================================================== |
551 | | * JSON Types |
552 | | *============================================================================*/ |
553 | | |
554 | | /** Type of a JSON value (3 bit). */ |
555 | | typedef uint8_t yyjson_type; |
556 | | /** No type, invalid. */ |
557 | 0 | #define YYJSON_TYPE_NONE ((uint8_t)0) /* _____000 */ |
558 | | /** Raw string type, no subtype. */ |
559 | 18.4E | #define YYJSON_TYPE_RAW ((uint8_t)1) /* _____001 */ |
560 | | /** Null type: `null` literal, no subtype. */ |
561 | 18.4E | #define YYJSON_TYPE_NULL ((uint8_t)2) /* _____010 */ |
562 | | /** Boolean type, subtype: TRUE, FALSE. */ |
563 | 18.4E | #define YYJSON_TYPE_BOOL ((uint8_t)3) /* _____011 */ |
564 | | /** Number type, subtype: UINT, SINT, REAL. */ |
565 | 18.4E | #define YYJSON_TYPE_NUM ((uint8_t)4) /* _____100 */ |
566 | | /** String type, subtype: NONE, NOESC. */ |
567 | 7.62M | #define YYJSON_TYPE_STR ((uint8_t)5) /* _____101 */ |
568 | | /** Array type, no subtype. */ |
569 | 957k | #define YYJSON_TYPE_ARR ((uint8_t)6) /* _____110 */ |
570 | | /** Object type, no subtype. */ |
571 | 3.02M | #define YYJSON_TYPE_OBJ ((uint8_t)7) /* _____111 */ |
572 | | |
573 | | /** Subtype of a JSON value (2 bit). */ |
574 | | typedef uint8_t yyjson_subtype; |
575 | | /** No subtype. */ |
576 | 1.53M | #define YYJSON_SUBTYPE_NONE ((uint8_t)(0 << 3)) /* ___00___ */ |
577 | | /** False subtype: `false` literal. */ |
578 | 0 | #define YYJSON_SUBTYPE_FALSE ((uint8_t)(0 << 3)) /* ___00___ */ |
579 | | /** True subtype: `true` literal. */ |
580 | 0 | #define YYJSON_SUBTYPE_TRUE ((uint8_t)(1 << 3)) /* ___01___ */ |
581 | | /** Unsigned integer subtype: `uint64_t`. */ |
582 | 0 | #define YYJSON_SUBTYPE_UINT ((uint8_t)(0 << 3)) /* ___00___ */ |
583 | | /** Signed integer subtype: `int64_t`. */ |
584 | 0 | #define YYJSON_SUBTYPE_SINT ((uint8_t)(1 << 3)) /* ___01___ */ |
585 | | /** Real number subtype: `double`. */ |
586 | 0 | #define YYJSON_SUBTYPE_REAL ((uint8_t)(2 << 3)) /* ___10___ */ |
587 | | /** String that do not need to be escaped for writing (internal use). */ |
588 | 2.36M | #define YYJSON_SUBTYPE_NOESC ((uint8_t)(1 << 3)) /* ___01___ */ |
589 | | |
590 | | /** The mask used to extract the type of a JSON value. */ |
591 | 4.90M | #define YYJSON_TYPE_MASK ((uint8_t)0x07) /* _____111 */ |
592 | | /** The number of bits used by the type. */ |
593 | 0 | #define YYJSON_TYPE_BIT ((uint8_t)3) |
594 | | /** The mask used to extract the subtype of a JSON value. */ |
595 | 1.63M | #define YYJSON_SUBTYPE_MASK ((uint8_t)0x18) /* ___11___ */ |
596 | | /** The number of bits used by the subtype. */ |
597 | | #define YYJSON_SUBTYPE_BIT ((uint8_t)2) |
598 | | /** The mask used to extract the reserved bits of a JSON value. */ |
599 | | #define YYJSON_RESERVED_MASK ((uint8_t)0xE0) /* 111_____ */ |
600 | | /** The number of reserved bits. */ |
601 | | #define YYJSON_RESERVED_BIT ((uint8_t)3) |
602 | | /** The mask used to extract the tag of a JSON value. */ |
603 | 2.69M | #define YYJSON_TAG_MASK ((uint8_t)0xFF) /* 11111111 */ |
604 | | /** The number of bits used by the tag. */ |
605 | 8.25M | #define YYJSON_TAG_BIT ((uint8_t)8) |
606 | | |
607 | | /** Padding size for JSON reader. */ |
608 | 333k | #define YYJSON_PADDING_SIZE 4 |
609 | | |
610 | | |
611 | | |
612 | | /*============================================================================== |
613 | | * Allocator |
614 | | *============================================================================*/ |
615 | | |
616 | | /** |
617 | | A memory allocator. |
618 | | |
619 | | Typically you don't need to use it, unless you want to customize your own |
620 | | memory allocator. |
621 | | */ |
622 | | typedef struct yyjson_alc { |
623 | | /** Same as libc's malloc(size), should not be NULL. */ |
624 | | void *(*malloc)(void *ctx, size_t size); |
625 | | /** Same as libc's realloc(ptr, size), should not be NULL. */ |
626 | | void *(*realloc)(void *ctx, void *ptr, size_t old_size, size_t size); |
627 | | /** Same as libc's free(ptr), should not be NULL. */ |
628 | | void (*free)(void *ctx, void *ptr); |
629 | | /** A context for malloc/realloc/free, can be NULL. */ |
630 | | void *ctx; |
631 | | } yyjson_alc; |
632 | | |
633 | | /** |
634 | | A pool allocator uses fixed length pre-allocated memory. |
635 | | |
636 | | This allocator may be used to avoid malloc/realloc calls. The pre-allocated |
637 | | memory should be held by the caller. The maximum amount of memory required to |
638 | | read a JSON can be calculated using the `yyjson_read_max_memory_usage()` |
639 | | function, but the amount of memory required to write a JSON cannot be directly |
640 | | calculated. |
641 | | |
642 | | This is not a general-purpose allocator. It is designed to handle a single JSON |
643 | | data at a time. If it is used for overly complex memory tasks, such as parsing |
644 | | multiple JSON documents using the same allocator but releasing only a few of |
645 | | them, it may cause memory fragmentation, resulting in performance degradation |
646 | | and memory waste. |
647 | | |
648 | | @param alc The allocator to be initialized. |
649 | | If this parameter is NULL, the function will fail and return false. |
650 | | If `buf` or `size` is invalid, this will be set to an empty allocator. |
651 | | @param buf The buffer memory for this allocator. |
652 | | If this parameter is NULL, the function will fail and return false. |
653 | | @param size The size of `buf`, in bytes. |
654 | | If this parameter is less than 8 words (32/64 bytes on 32/64-bit OS), the |
655 | | function will fail and return false. |
656 | | @return true if the `alc` has been successfully initialized. |
657 | | |
658 | | @par Example |
659 | | @code |
660 | | // parse JSON with stack memory |
661 | | char buf[1024]; |
662 | | yyjson_alc alc; |
663 | | yyjson_alc_pool_init(&alc, buf, 1024); |
664 | | |
665 | | const char *json = "{\"name\":\"Helvetica\",\"size\":16}" |
666 | | yyjson_doc *doc = yyjson_read_opts(json, strlen(json), 0, &alc, NULL); |
667 | | // the memory of `doc` is on the stack |
668 | | @endcode |
669 | | |
670 | | @warning This Allocator is not thread-safe. |
671 | | */ |
672 | | yyjson_api bool yyjson_alc_pool_init(yyjson_alc *alc, void *buf, size_t size); |
673 | | |
674 | | /** |
675 | | A dynamic allocator. |
676 | | |
677 | | This allocator has a similar usage to the pool allocator above. However, when |
678 | | there is not enough memory, this allocator will dynamically request more memory |
679 | | using libc's `malloc` function, and frees it all at once when it is destroyed. |
680 | | |
681 | | @return A new dynamic allocator, or NULL if memory allocation failed. |
682 | | @note The returned value should be freed with `yyjson_alc_dyn_free()`. |
683 | | |
684 | | @warning This Allocator is not thread-safe. |
685 | | */ |
686 | | yyjson_api yyjson_alc *yyjson_alc_dyn_new(void); |
687 | | |
688 | | /** |
689 | | Free a dynamic allocator which is created by `yyjson_alc_dyn_new()`. |
690 | | @param alc The dynamic allocator to be destroyed. |
691 | | */ |
692 | | yyjson_api void yyjson_alc_dyn_free(yyjson_alc *alc); |
693 | | |
694 | | |
695 | | |
696 | | /*============================================================================== |
697 | | * JSON Structure |
698 | | *============================================================================*/ |
699 | | |
700 | | /** |
701 | | An immutable document for reading JSON. |
702 | | This document holds memory for all its JSON values and strings. When it is no |
703 | | longer used, the user should call `yyjson_doc_free()` to free its memory. |
704 | | */ |
705 | | typedef struct yyjson_doc yyjson_doc; |
706 | | |
707 | | /** |
708 | | An immutable value for reading JSON. |
709 | | A JSON Value has the same lifetime as its document. The memory is held by its |
710 | | document and and cannot be freed alone. |
711 | | */ |
712 | | typedef struct yyjson_val yyjson_val; |
713 | | |
714 | | /** |
715 | | A mutable document for building JSON. |
716 | | This document holds memory for all its JSON values and strings. When it is no |
717 | | longer used, the user should call `yyjson_mut_doc_free()` to free its memory. |
718 | | */ |
719 | | typedef struct yyjson_mut_doc yyjson_mut_doc; |
720 | | |
721 | | /** |
722 | | A mutable value for building JSON. |
723 | | A JSON Value has the same lifetime as its document. The memory is held by its |
724 | | document and and cannot be freed alone. |
725 | | */ |
726 | | typedef struct yyjson_mut_val yyjson_mut_val; |
727 | | |
728 | | |
729 | | |
730 | | /*============================================================================== |
731 | | * JSON Reader API |
732 | | *============================================================================*/ |
733 | | |
734 | | /** Run-time options for JSON reader. */ |
735 | | typedef uint32_t yyjson_read_flag; |
736 | | |
737 | | /** Default option (RFC 8259 compliant): |
738 | | - Read positive integer as uint64_t. |
739 | | - Read negative integer as int64_t. |
740 | | - Read floating-point number as double with round-to-nearest mode. |
741 | | - Read integer which cannot fit in uint64_t or int64_t as double. |
742 | | - Report error if double number is infinity. |
743 | | - Report error if string contains invalid UTF-8 character or BOM. |
744 | | - Report error on trailing commas, comments, inf and nan literals. */ |
745 | | static const yyjson_read_flag YYJSON_READ_NOFLAG = 0; |
746 | | |
747 | | /** Read the input data in-situ. |
748 | | This option allows the reader to modify and use input data to store string |
749 | | values, which can increase reading speed slightly. |
750 | | The caller should hold the input data before free the document. |
751 | | The input data must be padded by at least `YYJSON_PADDING_SIZE` bytes. |
752 | | For example: `[1,2]` should be `[1,2]\0\0\0\0`, input length should be 5. */ |
753 | | static const yyjson_read_flag YYJSON_READ_INSITU = 1 << 0; |
754 | | |
755 | | /** Stop when done instead of issuing an error if there's additional content |
756 | | after a JSON document. This option may be used to parse small pieces of JSON |
757 | | in larger data, such as `NDJSON`. */ |
758 | | static const yyjson_read_flag YYJSON_READ_STOP_WHEN_DONE = 1 << 1; |
759 | | |
760 | | /** Allow single trailing comma at the end of an object or array, |
761 | | such as `[1,2,3,]`, `{"a":1,"b":2,}` (non-standard). */ |
762 | | static const yyjson_read_flag YYJSON_READ_ALLOW_TRAILING_COMMAS = 1 << 2; |
763 | | |
764 | | /** Allow C-style single line and multiple line comments (non-standard). */ |
765 | | static const yyjson_read_flag YYJSON_READ_ALLOW_COMMENTS = 1 << 3; |
766 | | |
767 | | /** Allow inf/nan number and literal, case-insensitive, |
768 | | such as 1e999, NaN, inf, -Infinity (non-standard). */ |
769 | | static const yyjson_read_flag YYJSON_READ_ALLOW_INF_AND_NAN = 1 << 4; |
770 | | |
771 | | /** Read all numbers as raw strings (value with `YYJSON_TYPE_RAW` type), |
772 | | inf/nan literal is also read as raw with `ALLOW_INF_AND_NAN` flag. */ |
773 | | static const yyjson_read_flag YYJSON_READ_NUMBER_AS_RAW = 1 << 5; |
774 | | |
775 | | /** Allow reading invalid unicode when parsing string values (non-standard). |
776 | | Invalid characters will be allowed to appear in the string values, but |
777 | | invalid escape sequences will still be reported as errors. |
778 | | This flag does not affect the performance of correctly encoded strings. |
779 | | |
780 | | @warning Strings in JSON values may contain incorrect encoding when this |
781 | | option is used, you need to handle these strings carefully to avoid security |
782 | | risks. */ |
783 | | static const yyjson_read_flag YYJSON_READ_ALLOW_INVALID_UNICODE = 1 << 6; |
784 | | |
785 | | /** Read big numbers as raw strings. These big numbers include integers that |
786 | | cannot be represented by `int64_t` and `uint64_t`, and floating-point |
787 | | numbers that cannot be represented by finite `double`. |
788 | | The flag will be overridden by `YYJSON_READ_NUMBER_AS_RAW` flag. */ |
789 | | static const yyjson_read_flag YYJSON_READ_BIGNUM_AS_RAW = 1 << 7; |
790 | | |
791 | | |
792 | | |
793 | | /** Result code for JSON reader. */ |
794 | | typedef uint32_t yyjson_read_code; |
795 | | |
796 | | /** Success, no error. */ |
797 | | static const yyjson_read_code YYJSON_READ_SUCCESS = 0; |
798 | | |
799 | | /** Invalid parameter, such as NULL input string or 0 input length. */ |
800 | | static const yyjson_read_code YYJSON_READ_ERROR_INVALID_PARAMETER = 1; |
801 | | |
802 | | /** Memory allocation failure occurs. */ |
803 | | static const yyjson_read_code YYJSON_READ_ERROR_MEMORY_ALLOCATION = 2; |
804 | | |
805 | | /** Input JSON string is empty. */ |
806 | | static const yyjson_read_code YYJSON_READ_ERROR_EMPTY_CONTENT = 3; |
807 | | |
808 | | /** Unexpected content after document, such as `[123]abc`. */ |
809 | | static const yyjson_read_code YYJSON_READ_ERROR_UNEXPECTED_CONTENT = 4; |
810 | | |
811 | | /** Unexpected ending, such as `[123`. */ |
812 | | static const yyjson_read_code YYJSON_READ_ERROR_UNEXPECTED_END = 5; |
813 | | |
814 | | /** Unexpected character inside the document, such as `[abc]`. */ |
815 | | static const yyjson_read_code YYJSON_READ_ERROR_UNEXPECTED_CHARACTER = 6; |
816 | | |
817 | | /** Invalid JSON structure, such as `[1,]`. */ |
818 | | static const yyjson_read_code YYJSON_READ_ERROR_JSON_STRUCTURE = 7; |
819 | | |
820 | | /** Invalid comment, such as unclosed multi-line comment. */ |
821 | | static const yyjson_read_code YYJSON_READ_ERROR_INVALID_COMMENT = 8; |
822 | | |
823 | | /** Invalid number, such as `123.e12`, `000`. */ |
824 | | static const yyjson_read_code YYJSON_READ_ERROR_INVALID_NUMBER = 9; |
825 | | |
826 | | /** Invalid string, such as invalid escaped character inside a string. */ |
827 | | static const yyjson_read_code YYJSON_READ_ERROR_INVALID_STRING = 10; |
828 | | |
829 | | /** Invalid JSON literal, such as `truu`. */ |
830 | | static const yyjson_read_code YYJSON_READ_ERROR_LITERAL = 11; |
831 | | |
832 | | /** Failed to open a file. */ |
833 | | static const yyjson_read_code YYJSON_READ_ERROR_FILE_OPEN = 12; |
834 | | |
835 | | /** Failed to read a file. */ |
836 | | static const yyjson_read_code YYJSON_READ_ERROR_FILE_READ = 13; |
837 | | |
838 | | /** Error information for JSON reader. */ |
839 | | typedef struct yyjson_read_err { |
840 | | /** Error code, see `yyjson_read_code` for all possible values. */ |
841 | | yyjson_read_code code; |
842 | | /** Error message, constant, no need to free (NULL if success). */ |
843 | | const char *msg; |
844 | | /** Error byte position for input data (0 if success). */ |
845 | | size_t pos; |
846 | | } yyjson_read_err; |
847 | | |
848 | | |
849 | | |
850 | | /** |
851 | | Read JSON with options. |
852 | | |
853 | | This function is thread-safe when: |
854 | | 1. The `dat` is not modified by other threads. |
855 | | 2. The `alc` is thread-safe or NULL. |
856 | | |
857 | | @param dat The JSON data (UTF-8 without BOM), null-terminator is not required. |
858 | | If this parameter is NULL, the function will fail and return NULL. |
859 | | The `dat` will not be modified without the flag `YYJSON_READ_INSITU`, so you |
860 | | can pass a `const char *` string and case it to `char *` if you don't use |
861 | | the `YYJSON_READ_INSITU` flag. |
862 | | @param len The length of JSON data in bytes. |
863 | | If this parameter is 0, the function will fail and return NULL. |
864 | | @param flg The JSON read options. |
865 | | Multiple options can be combined with `|` operator. 0 means no options. |
866 | | @param alc The memory allocator used by JSON reader. |
867 | | Pass NULL to use the libc's default allocator. |
868 | | @param err A pointer to receive error information. |
869 | | Pass NULL if you don't need error information. |
870 | | @return A new JSON document, or NULL if an error occurs. |
871 | | When it's no longer needed, it should be freed with `yyjson_doc_free()`. |
872 | | */ |
873 | | yyjson_api yyjson_doc *yyjson_read_opts(char *dat, |
874 | | size_t len, |
875 | | yyjson_read_flag flg, |
876 | | const yyjson_alc *alc, |
877 | | yyjson_read_err *err); |
878 | | |
879 | | /** |
880 | | Read a JSON file. |
881 | | |
882 | | This function is thread-safe when: |
883 | | 1. The file is not modified by other threads. |
884 | | 2. The `alc` is thread-safe or NULL. |
885 | | |
886 | | @param path The JSON file's path. |
887 | | If this path is NULL or invalid, the function will fail and return NULL. |
888 | | @param flg The JSON read options. |
889 | | Multiple options can be combined with `|` operator. 0 means no options. |
890 | | @param alc The memory allocator used by JSON reader. |
891 | | Pass NULL to use the libc's default allocator. |
892 | | @param err A pointer to receive error information. |
893 | | Pass NULL if you don't need error information. |
894 | | @return A new JSON document, or NULL if an error occurs. |
895 | | When it's no longer needed, it should be freed with `yyjson_doc_free()`. |
896 | | |
897 | | @warning On 32-bit operating system, files larger than 2GB may fail to read. |
898 | | */ |
899 | | yyjson_api yyjson_doc *yyjson_read_file(const char *path, |
900 | | yyjson_read_flag flg, |
901 | | const yyjson_alc *alc, |
902 | | yyjson_read_err *err); |
903 | | |
904 | | /** |
905 | | Read JSON from a file pointer. |
906 | | |
907 | | @param fp The file pointer. |
908 | | The data will be read from the current position of the FILE to the end. |
909 | | If this fp is NULL or invalid, the function will fail and return NULL. |
910 | | @param flg The JSON read options. |
911 | | Multiple options can be combined with `|` operator. 0 means no options. |
912 | | @param alc The memory allocator used by JSON reader. |
913 | | Pass NULL to use the libc's default allocator. |
914 | | @param err A pointer to receive error information. |
915 | | Pass NULL if you don't need error information. |
916 | | @return A new JSON document, or NULL if an error occurs. |
917 | | When it's no longer needed, it should be freed with `yyjson_doc_free()`. |
918 | | |
919 | | @warning On 32-bit operating system, files larger than 2GB may fail to read. |
920 | | */ |
921 | | yyjson_api yyjson_doc *yyjson_read_fp(FILE *fp, |
922 | | yyjson_read_flag flg, |
923 | | const yyjson_alc *alc, |
924 | | yyjson_read_err *err); |
925 | | |
926 | | /** |
927 | | Read a JSON string. |
928 | | |
929 | | This function is thread-safe. |
930 | | |
931 | | @param dat The JSON data (UTF-8 without BOM), null-terminator is not required. |
932 | | If this parameter is NULL, the function will fail and return NULL. |
933 | | @param len The length of JSON data in bytes. |
934 | | If this parameter is 0, the function will fail and return NULL. |
935 | | @param flg The JSON read options. |
936 | | Multiple options can be combined with `|` operator. 0 means no options. |
937 | | @return A new JSON document, or NULL if an error occurs. |
938 | | When it's no longer needed, it should be freed with `yyjson_doc_free()`. |
939 | | */ |
940 | | yyjson_api_inline yyjson_doc *yyjson_read(const char *dat, |
941 | | size_t len, |
942 | 166k | yyjson_read_flag flg) { |
943 | 166k | flg &= ~YYJSON_READ_INSITU; /* const string cannot be modified */ |
944 | 166k | return yyjson_read_opts((char *)(void *)(size_t)(const void *)dat, |
945 | 166k | len, flg, NULL, NULL); |
946 | 166k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_read(char const*, unsigned long, unsigned int) Line | Count | Source | 942 | 166k | yyjson_read_flag flg) { | 943 | 166k | flg &= ~YYJSON_READ_INSITU; /* const string cannot be modified */ | 944 | 166k | return yyjson_read_opts((char *)(void *)(size_t)(const void *)dat, | 945 | 166k | len, flg, NULL, NULL); | 946 | 166k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_read(char const*, unsigned long, unsigned int) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_read(char const*, unsigned long, unsigned int) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_read(char const*, unsigned long, unsigned int) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_read(char const*, unsigned long, unsigned int) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_read(char const*, unsigned long, unsigned int) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_read(char const*, unsigned long, unsigned int) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_read(char const*, unsigned long, unsigned int) |
947 | | |
948 | | /** |
949 | | Returns the size of maximum memory usage to read a JSON data. |
950 | | |
951 | | You may use this value to avoid malloc() or calloc() call inside the reader |
952 | | to get better performance, or read multiple JSON with one piece of memory. |
953 | | |
954 | | @param len The length of JSON data in bytes. |
955 | | @param flg The JSON read options. |
956 | | @return The maximum memory size to read this JSON, or 0 if overflow. |
957 | | |
958 | | @par Example |
959 | | @code |
960 | | // read multiple JSON with same pre-allocated memory |
961 | | |
962 | | char *dat1, *dat2, *dat3; // JSON data |
963 | | size_t len1, len2, len3; // JSON length |
964 | | size_t max_len = MAX(len1, MAX(len2, len3)); |
965 | | yyjson_doc *doc; |
966 | | |
967 | | // use one allocator for multiple JSON |
968 | | size_t size = yyjson_read_max_memory_usage(max_len, 0); |
969 | | void *buf = malloc(size); |
970 | | yyjson_alc alc; |
971 | | yyjson_alc_pool_init(&alc, buf, size); |
972 | | |
973 | | // no more alloc() or realloc() call during reading |
974 | | doc = yyjson_read_opts(dat1, len1, 0, &alc, NULL); |
975 | | yyjson_doc_free(doc); |
976 | | doc = yyjson_read_opts(dat2, len2, 0, &alc, NULL); |
977 | | yyjson_doc_free(doc); |
978 | | doc = yyjson_read_opts(dat3, len3, 0, &alc, NULL); |
979 | | yyjson_doc_free(doc); |
980 | | |
981 | | free(buf); |
982 | | @endcode |
983 | | @see yyjson_alc_pool_init() |
984 | | */ |
985 | | yyjson_api_inline size_t yyjson_read_max_memory_usage(size_t len, |
986 | 0 | yyjson_read_flag flg) { |
987 | 0 | /* |
988 | 0 | 1. The max value count is (json_size / 2 + 1), |
989 | 0 | for example: "[1,2,3,4]" size is 9, value count is 5. |
990 | 0 | 2. Some broken JSON may cost more memory during reading, but fail at end, |
991 | 0 | for example: "[[[[[[[[". |
992 | 0 | 3. yyjson use 16 bytes per value, see struct yyjson_val. |
993 | 0 | 4. yyjson use dynamic memory with a growth factor of 1.5. |
994 | 0 | |
995 | 0 | The max memory size is (json_size / 2 * 16 * 1.5 + padding). |
996 | 0 | */ |
997 | 0 | size_t mul = (size_t)12 + !(flg & YYJSON_READ_INSITU); |
998 | 0 | size_t pad = 256; |
999 | 0 | size_t max = (size_t)(~(size_t)0); |
1000 | 0 | if (flg & YYJSON_READ_STOP_WHEN_DONE) len = len < 256 ? 256 : len; |
1001 | 0 | if (len >= (max - pad - mul) / mul) return 0; |
1002 | 0 | return len * mul + pad; |
1003 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_read_max_memory_usage(unsigned long, unsigned int) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_read_max_memory_usage(unsigned long, unsigned int) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_read_max_memory_usage(unsigned long, unsigned int) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_read_max_memory_usage(unsigned long, unsigned int) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_read_max_memory_usage(unsigned long, unsigned int) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_read_max_memory_usage(unsigned long, unsigned int) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_read_max_memory_usage(unsigned long, unsigned int) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_read_max_memory_usage(unsigned long, unsigned int) |
1004 | | |
1005 | | /** |
1006 | | Read a JSON number. |
1007 | | |
1008 | | This function is thread-safe when data is not modified by other threads. |
1009 | | |
1010 | | @param dat The JSON data (UTF-8 without BOM), null-terminator is required. |
1011 | | If this parameter is NULL, the function will fail and return NULL. |
1012 | | @param val The output value where result is stored. |
1013 | | If this parameter is NULL, the function will fail and return NULL. |
1014 | | The value will hold either UINT or SINT or REAL number; |
1015 | | @param flg The JSON read options. |
1016 | | Multiple options can be combined with `|` operator. 0 means no options. |
1017 | | Supports `YYJSON_READ_NUMBER_AS_RAW` and `YYJSON_READ_ALLOW_INF_AND_NAN`. |
1018 | | @param alc The memory allocator used for long number. |
1019 | | It is only used when the built-in floating point reader is disabled. |
1020 | | Pass NULL to use the libc's default allocator. |
1021 | | @param err A pointer to receive error information. |
1022 | | Pass NULL if you don't need error information. |
1023 | | @return If successful, a pointer to the character after the last character |
1024 | | used in the conversion, NULL if an error occurs. |
1025 | | */ |
1026 | | yyjson_api const char *yyjson_read_number(const char *dat, |
1027 | | yyjson_val *val, |
1028 | | yyjson_read_flag flg, |
1029 | | const yyjson_alc *alc, |
1030 | | yyjson_read_err *err); |
1031 | | |
1032 | | /** |
1033 | | Read a JSON number. |
1034 | | |
1035 | | This function is thread-safe when data is not modified by other threads. |
1036 | | |
1037 | | @param dat The JSON data (UTF-8 without BOM), null-terminator is required. |
1038 | | If this parameter is NULL, the function will fail and return NULL. |
1039 | | @param val The output value where result is stored. |
1040 | | If this parameter is NULL, the function will fail and return NULL. |
1041 | | The value will hold either UINT or SINT or REAL number; |
1042 | | @param flg The JSON read options. |
1043 | | Multiple options can be combined with `|` operator. 0 means no options. |
1044 | | Supports `YYJSON_READ_NUMBER_AS_RAW` and `YYJSON_READ_ALLOW_INF_AND_NAN`. |
1045 | | @param alc The memory allocator used for long number. |
1046 | | It is only used when the built-in floating point reader is disabled. |
1047 | | Pass NULL to use the libc's default allocator. |
1048 | | @param err A pointer to receive error information. |
1049 | | Pass NULL if you don't need error information. |
1050 | | @return If successful, a pointer to the character after the last character |
1051 | | used in the conversion, NULL if an error occurs. |
1052 | | */ |
1053 | | yyjson_api_inline const char *yyjson_mut_read_number(const char *dat, |
1054 | | yyjson_mut_val *val, |
1055 | | yyjson_read_flag flg, |
1056 | | const yyjson_alc *alc, |
1057 | 0 | yyjson_read_err *err) { |
1058 | 0 | return yyjson_read_number(dat, (yyjson_val *)val, flg, alc, err); |
1059 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_read_number(char const*, duckdb_yyjson::yyjson_mut_val*, unsigned int, duckdb_yyjson::yyjson_alc const*, duckdb_yyjson::yyjson_read_err*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_read_number(char const*, duckdb_yyjson::yyjson_mut_val*, unsigned int, duckdb_yyjson::yyjson_alc const*, duckdb_yyjson::yyjson_read_err*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_read_number(char const*, duckdb_yyjson::yyjson_mut_val*, unsigned int, duckdb_yyjson::yyjson_alc const*, duckdb_yyjson::yyjson_read_err*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_read_number(char const*, duckdb_yyjson::yyjson_mut_val*, unsigned int, duckdb_yyjson::yyjson_alc const*, duckdb_yyjson::yyjson_read_err*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_read_number(char const*, duckdb_yyjson::yyjson_mut_val*, unsigned int, duckdb_yyjson::yyjson_alc const*, duckdb_yyjson::yyjson_read_err*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_read_number(char const*, duckdb_yyjson::yyjson_mut_val*, unsigned int, duckdb_yyjson::yyjson_alc const*, duckdb_yyjson::yyjson_read_err*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_read_number(char const*, duckdb_yyjson::yyjson_mut_val*, unsigned int, duckdb_yyjson::yyjson_alc const*, duckdb_yyjson::yyjson_read_err*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_read_number(char const*, duckdb_yyjson::yyjson_mut_val*, unsigned int, duckdb_yyjson::yyjson_alc const*, duckdb_yyjson::yyjson_read_err*) |
1060 | | |
1061 | | |
1062 | | /*============================================================================== |
1063 | | * JSON Writer API |
1064 | | *============================================================================*/ |
1065 | | |
1066 | | /** Run-time options for JSON writer. */ |
1067 | | typedef uint32_t yyjson_write_flag; |
1068 | | |
1069 | | /** Default option: |
1070 | | - Write JSON minify. |
1071 | | - Report error on inf or nan number. |
1072 | | - Report error on invalid UTF-8 string. |
1073 | | - Do not escape unicode or slash. */ |
1074 | | static const yyjson_write_flag YYJSON_WRITE_NOFLAG = 0; |
1075 | | |
1076 | | /** Write JSON pretty with 4 space indent. */ |
1077 | | static const yyjson_write_flag YYJSON_WRITE_PRETTY = 1 << 0; |
1078 | | |
1079 | | /** Escape unicode as `uXXXX`, make the output ASCII only. */ |
1080 | | static const yyjson_write_flag YYJSON_WRITE_ESCAPE_UNICODE = 1 << 1; |
1081 | | |
1082 | | /** Escape '/' as '\/'. */ |
1083 | | static const yyjson_write_flag YYJSON_WRITE_ESCAPE_SLASHES = 1 << 2; |
1084 | | |
1085 | | /** Write inf and nan number as 'Infinity' and 'NaN' literal (non-standard). */ |
1086 | | static const yyjson_write_flag YYJSON_WRITE_ALLOW_INF_AND_NAN = 1 << 3; |
1087 | | |
1088 | | /** Write inf and nan number as null literal. |
1089 | | This flag will override `YYJSON_WRITE_ALLOW_INF_AND_NAN` flag. */ |
1090 | | static const yyjson_write_flag YYJSON_WRITE_INF_AND_NAN_AS_NULL = 1 << 4; |
1091 | | |
1092 | | /** Allow invalid unicode when encoding string values (non-standard). |
1093 | | Invalid characters in string value will be copied byte by byte. |
1094 | | If `YYJSON_WRITE_ESCAPE_UNICODE` flag is also set, invalid character will be |
1095 | | escaped as `U+FFFD` (replacement character). |
1096 | | This flag does not affect the performance of correctly encoded strings. */ |
1097 | | static const yyjson_write_flag YYJSON_WRITE_ALLOW_INVALID_UNICODE = 1 << 5; |
1098 | | |
1099 | | /** Write JSON pretty with 2 space indent. |
1100 | | This flag will override `YYJSON_WRITE_PRETTY` flag. */ |
1101 | | static const yyjson_write_flag YYJSON_WRITE_PRETTY_TWO_SPACES = 1 << 6; |
1102 | | |
1103 | | /** Adds a newline character `\n` at the end of the JSON. |
1104 | | This can be helpful for text editors or NDJSON. */ |
1105 | | static const yyjson_write_flag YYJSON_WRITE_NEWLINE_AT_END = 1 << 7; |
1106 | | |
1107 | | |
1108 | | |
1109 | | /** Result code for JSON writer */ |
1110 | | typedef uint32_t yyjson_write_code; |
1111 | | |
1112 | | /** Success, no error. */ |
1113 | | static const yyjson_write_code YYJSON_WRITE_SUCCESS = 0; |
1114 | | |
1115 | | /** Invalid parameter, such as NULL document. */ |
1116 | | static const yyjson_write_code YYJSON_WRITE_ERROR_INVALID_PARAMETER = 1; |
1117 | | |
1118 | | /** Memory allocation failure occurs. */ |
1119 | | static const yyjson_write_code YYJSON_WRITE_ERROR_MEMORY_ALLOCATION = 2; |
1120 | | |
1121 | | /** Invalid value type in JSON document. */ |
1122 | | static const yyjson_write_code YYJSON_WRITE_ERROR_INVALID_VALUE_TYPE = 3; |
1123 | | |
1124 | | /** NaN or Infinity number occurs. */ |
1125 | | static const yyjson_write_code YYJSON_WRITE_ERROR_NAN_OR_INF = 4; |
1126 | | |
1127 | | /** Failed to open a file. */ |
1128 | | static const yyjson_write_code YYJSON_WRITE_ERROR_FILE_OPEN = 5; |
1129 | | |
1130 | | /** Failed to write a file. */ |
1131 | | static const yyjson_write_code YYJSON_WRITE_ERROR_FILE_WRITE = 6; |
1132 | | |
1133 | | /** Invalid unicode in string. */ |
1134 | | static const yyjson_write_code YYJSON_WRITE_ERROR_INVALID_STRING = 7; |
1135 | | |
1136 | | /** Error information for JSON writer. */ |
1137 | | typedef struct yyjson_write_err { |
1138 | | /** Error code, see `yyjson_write_code` for all possible values. */ |
1139 | | yyjson_write_code code; |
1140 | | /** Error message, constant, no need to free (NULL if success). */ |
1141 | | const char *msg; |
1142 | | } yyjson_write_err; |
1143 | | |
1144 | | |
1145 | | |
1146 | | /*============================================================================== |
1147 | | * JSON Document Writer API |
1148 | | *============================================================================*/ |
1149 | | |
1150 | | /** |
1151 | | Write a document to JSON string with options. |
1152 | | |
1153 | | This function is thread-safe when: |
1154 | | The `alc` is thread-safe or NULL. |
1155 | | |
1156 | | @param doc The JSON document. |
1157 | | If this doc is NULL or has no root, the function will fail and return false. |
1158 | | @param flg The JSON write options. |
1159 | | Multiple options can be combined with `|` operator. 0 means no options. |
1160 | | @param alc The memory allocator used by JSON writer. |
1161 | | Pass NULL to use the libc's default allocator. |
1162 | | @param len A pointer to receive output length in bytes (not including the |
1163 | | null-terminator). Pass NULL if you don't need length information. |
1164 | | @param err A pointer to receive error information. |
1165 | | Pass NULL if you don't need error information. |
1166 | | @return A new JSON string, or NULL if an error occurs. |
1167 | | This string is encoded as UTF-8 with a null-terminator. |
1168 | | When it's no longer needed, it should be freed with free() or alc->free(). |
1169 | | */ |
1170 | | yyjson_api char *yyjson_write_opts(const yyjson_doc *doc, |
1171 | | yyjson_write_flag flg, |
1172 | | const yyjson_alc *alc, |
1173 | | size_t *len, |
1174 | | yyjson_write_err *err); |
1175 | | |
1176 | | /** |
1177 | | Write a document to JSON file with options. |
1178 | | |
1179 | | This function is thread-safe when: |
1180 | | 1. The file is not accessed by other threads. |
1181 | | 2. The `alc` is thread-safe or NULL. |
1182 | | |
1183 | | @param path The JSON file's path. |
1184 | | If this path is NULL or invalid, the function will fail and return false. |
1185 | | If this file is not empty, the content will be discarded. |
1186 | | @param doc The JSON document. |
1187 | | If this doc is NULL or has no root, the function will fail and return false. |
1188 | | @param flg The JSON write options. |
1189 | | Multiple options can be combined with `|` operator. 0 means no options. |
1190 | | @param alc The memory allocator used by JSON writer. |
1191 | | Pass NULL to use the libc's default allocator. |
1192 | | @param err A pointer to receive error information. |
1193 | | Pass NULL if you don't need error information. |
1194 | | @return true if successful, false if an error occurs. |
1195 | | |
1196 | | @warning On 32-bit operating system, files larger than 2GB may fail to write. |
1197 | | */ |
1198 | | yyjson_api bool yyjson_write_file(const char *path, |
1199 | | const yyjson_doc *doc, |
1200 | | yyjson_write_flag flg, |
1201 | | const yyjson_alc *alc, |
1202 | | yyjson_write_err *err); |
1203 | | |
1204 | | /** |
1205 | | Write a document to file pointer with options. |
1206 | | |
1207 | | @param fp The file pointer. |
1208 | | The data will be written to the current position of the file. |
1209 | | If this fp is NULL or invalid, the function will fail and return false. |
1210 | | @param doc The JSON document. |
1211 | | If this doc is NULL or has no root, the function will fail and return false. |
1212 | | @param flg The JSON write options. |
1213 | | Multiple options can be combined with `|` operator. 0 means no options. |
1214 | | @param alc The memory allocator used by JSON writer. |
1215 | | Pass NULL to use the libc's default allocator. |
1216 | | @param err A pointer to receive error information. |
1217 | | Pass NULL if you don't need error information. |
1218 | | @return true if successful, false if an error occurs. |
1219 | | |
1220 | | @warning On 32-bit operating system, files larger than 2GB may fail to write. |
1221 | | */ |
1222 | | yyjson_api bool yyjson_write_fp(FILE *fp, |
1223 | | const yyjson_doc *doc, |
1224 | | yyjson_write_flag flg, |
1225 | | const yyjson_alc *alc, |
1226 | | yyjson_write_err *err); |
1227 | | |
1228 | | /** |
1229 | | Write a document to JSON string. |
1230 | | |
1231 | | This function is thread-safe. |
1232 | | |
1233 | | @param doc The JSON document. |
1234 | | If this doc is NULL or has no root, the function will fail and return false. |
1235 | | @param flg The JSON write options. |
1236 | | Multiple options can be combined with `|` operator. 0 means no options. |
1237 | | @param len A pointer to receive output length in bytes (not including the |
1238 | | null-terminator). Pass NULL if you don't need length information. |
1239 | | @return A new JSON string, or NULL if an error occurs. |
1240 | | This string is encoded as UTF-8 with a null-terminator. |
1241 | | When it's no longer needed, it should be freed with free(). |
1242 | | */ |
1243 | | yyjson_api_inline char *yyjson_write(const yyjson_doc *doc, |
1244 | | yyjson_write_flag flg, |
1245 | 0 | size_t *len) { |
1246 | 0 | return yyjson_write_opts(doc, flg, NULL, len, NULL); |
1247 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_write(duckdb_yyjson::yyjson_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_write(duckdb_yyjson::yyjson_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_write(duckdb_yyjson::yyjson_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_write(duckdb_yyjson::yyjson_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_write(duckdb_yyjson::yyjson_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_write(duckdb_yyjson::yyjson_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_write(duckdb_yyjson::yyjson_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_write(duckdb_yyjson::yyjson_doc const*, unsigned int, unsigned long*) |
1248 | | |
1249 | | |
1250 | | |
1251 | | /** |
1252 | | Write a document to JSON string with options. |
1253 | | |
1254 | | This function is thread-safe when: |
1255 | | 1. The `doc` is not modified by other threads. |
1256 | | 2. The `alc` is thread-safe or NULL. |
1257 | | |
1258 | | @param doc The mutable JSON document. |
1259 | | If this doc is NULL or has no root, the function will fail and return false. |
1260 | | @param flg The JSON write options. |
1261 | | Multiple options can be combined with `|` operator. 0 means no options. |
1262 | | @param alc The memory allocator used by JSON writer. |
1263 | | Pass NULL to use the libc's default allocator. |
1264 | | @param len A pointer to receive output length in bytes (not including the |
1265 | | null-terminator). Pass NULL if you don't need length information. |
1266 | | @param err A pointer to receive error information. |
1267 | | Pass NULL if you don't need error information. |
1268 | | @return A new JSON string, or NULL if an error occurs. |
1269 | | This string is encoded as UTF-8 with a null-terminator. |
1270 | | When it's no longer needed, it should be freed with free() or alc->free(). |
1271 | | */ |
1272 | | yyjson_api char *yyjson_mut_write_opts(const yyjson_mut_doc *doc, |
1273 | | yyjson_write_flag flg, |
1274 | | const yyjson_alc *alc, |
1275 | | size_t *len, |
1276 | | yyjson_write_err *err); |
1277 | | |
1278 | | /** |
1279 | | Write a document to JSON file with options. |
1280 | | |
1281 | | This function is thread-safe when: |
1282 | | 1. The file is not accessed by other threads. |
1283 | | 2. The `doc` is not modified by other threads. |
1284 | | 3. The `alc` is thread-safe or NULL. |
1285 | | |
1286 | | @param path The JSON file's path. |
1287 | | If this path is NULL or invalid, the function will fail and return false. |
1288 | | If this file is not empty, the content will be discarded. |
1289 | | @param doc The mutable JSON document. |
1290 | | If this doc is NULL or has no root, the function will fail and return false. |
1291 | | @param flg The JSON write options. |
1292 | | Multiple options can be combined with `|` operator. 0 means no options. |
1293 | | @param alc The memory allocator used by JSON writer. |
1294 | | Pass NULL to use the libc's default allocator. |
1295 | | @param err A pointer to receive error information. |
1296 | | Pass NULL if you don't need error information. |
1297 | | @return true if successful, false if an error occurs. |
1298 | | |
1299 | | @warning On 32-bit operating system, files larger than 2GB may fail to write. |
1300 | | */ |
1301 | | yyjson_api bool yyjson_mut_write_file(const char *path, |
1302 | | const yyjson_mut_doc *doc, |
1303 | | yyjson_write_flag flg, |
1304 | | const yyjson_alc *alc, |
1305 | | yyjson_write_err *err); |
1306 | | |
1307 | | /** |
1308 | | Write a document to file pointer with options. |
1309 | | |
1310 | | @param fp The file pointer. |
1311 | | The data will be written to the current position of the file. |
1312 | | If this fp is NULL or invalid, the function will fail and return false. |
1313 | | @param doc The mutable JSON document. |
1314 | | If this doc is NULL or has no root, the function will fail and return false. |
1315 | | @param flg The JSON write options. |
1316 | | Multiple options can be combined with `|` operator. 0 means no options. |
1317 | | @param alc The memory allocator used by JSON writer. |
1318 | | Pass NULL to use the libc's default allocator. |
1319 | | @param err A pointer to receive error information. |
1320 | | Pass NULL if you don't need error information. |
1321 | | @return true if successful, false if an error occurs. |
1322 | | |
1323 | | @warning On 32-bit operating system, files larger than 2GB may fail to write. |
1324 | | */ |
1325 | | yyjson_api bool yyjson_mut_write_fp(FILE *fp, |
1326 | | const yyjson_mut_doc *doc, |
1327 | | yyjson_write_flag flg, |
1328 | | const yyjson_alc *alc, |
1329 | | yyjson_write_err *err); |
1330 | | |
1331 | | /** |
1332 | | Write a document to JSON string. |
1333 | | |
1334 | | This function is thread-safe when: |
1335 | | The `doc` is not modified by other threads. |
1336 | | |
1337 | | @param doc The JSON document. |
1338 | | If this doc is NULL or has no root, the function will fail and return false. |
1339 | | @param flg The JSON write options. |
1340 | | Multiple options can be combined with `|` operator. 0 means no options. |
1341 | | @param len A pointer to receive output length in bytes (not including the |
1342 | | null-terminator). Pass NULL if you don't need length information. |
1343 | | @return A new JSON string, or NULL if an error occurs. |
1344 | | This string is encoded as UTF-8 with a null-terminator. |
1345 | | When it's no longer needed, it should be freed with free(). |
1346 | | */ |
1347 | | yyjson_api_inline char *yyjson_mut_write(const yyjson_mut_doc *doc, |
1348 | | yyjson_write_flag flg, |
1349 | 0 | size_t *len) { |
1350 | 0 | return yyjson_mut_write_opts(doc, flg, NULL, len, NULL); |
1351 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_write(duckdb_yyjson::yyjson_mut_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_write(duckdb_yyjson::yyjson_mut_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_write(duckdb_yyjson::yyjson_mut_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_write(duckdb_yyjson::yyjson_mut_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_write(duckdb_yyjson::yyjson_mut_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_write(duckdb_yyjson::yyjson_mut_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_write(duckdb_yyjson::yyjson_mut_doc const*, unsigned int, unsigned long*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_write(duckdb_yyjson::yyjson_mut_doc const*, unsigned int, unsigned long*) |
1352 | | |
1353 | | |
1354 | | |
1355 | | /*============================================================================== |
1356 | | * JSON Value Writer API |
1357 | | *============================================================================*/ |
1358 | | |
1359 | | /** |
1360 | | Write a value to JSON string with options. |
1361 | | |
1362 | | This function is thread-safe when: |
1363 | | The `alc` is thread-safe or NULL. |
1364 | | |
1365 | | @param val The JSON root value. |
1366 | | If this parameter is NULL, the function will fail and return NULL. |
1367 | | @param flg The JSON write options. |
1368 | | Multiple options can be combined with `|` operator. 0 means no options. |
1369 | | @param alc The memory allocator used by JSON writer. |
1370 | | Pass NULL to use the libc's default allocator. |
1371 | | @param len A pointer to receive output length in bytes (not including the |
1372 | | null-terminator). Pass NULL if you don't need length information. |
1373 | | @param err A pointer to receive error information. |
1374 | | Pass NULL if you don't need error information. |
1375 | | @return A new JSON string, or NULL if an error occurs. |
1376 | | This string is encoded as UTF-8 with a null-terminator. |
1377 | | When it's no longer needed, it should be freed with free() or alc->free(). |
1378 | | */ |
1379 | | yyjson_api char *yyjson_val_write_opts(const yyjson_val *val, |
1380 | | yyjson_write_flag flg, |
1381 | | const yyjson_alc *alc, |
1382 | | size_t *len, |
1383 | | yyjson_write_err *err); |
1384 | | |
1385 | | /** |
1386 | | Write a value to JSON file with options. |
1387 | | |
1388 | | This function is thread-safe when: |
1389 | | 1. The file is not accessed by other threads. |
1390 | | 2. The `alc` is thread-safe or NULL. |
1391 | | |
1392 | | @param path The JSON file's path. |
1393 | | If this path is NULL or invalid, the function will fail and return false. |
1394 | | If this file is not empty, the content will be discarded. |
1395 | | @param val The JSON root value. |
1396 | | If this parameter is NULL, the function will fail and return NULL. |
1397 | | @param flg The JSON write options. |
1398 | | Multiple options can be combined with `|` operator. 0 means no options. |
1399 | | @param alc The memory allocator used by JSON writer. |
1400 | | Pass NULL to use the libc's default allocator. |
1401 | | @param err A pointer to receive error information. |
1402 | | Pass NULL if you don't need error information. |
1403 | | @return true if successful, false if an error occurs. |
1404 | | |
1405 | | @warning On 32-bit operating system, files larger than 2GB may fail to write. |
1406 | | */ |
1407 | | yyjson_api bool yyjson_val_write_file(const char *path, |
1408 | | const yyjson_val *val, |
1409 | | yyjson_write_flag flg, |
1410 | | const yyjson_alc *alc, |
1411 | | yyjson_write_err *err); |
1412 | | |
1413 | | /** |
1414 | | Write a value to file pointer with options. |
1415 | | |
1416 | | @param fp The file pointer. |
1417 | | The data will be written to the current position of the file. |
1418 | | If this path is NULL or invalid, the function will fail and return false. |
1419 | | @param val The JSON root value. |
1420 | | If this parameter is NULL, the function will fail and return NULL. |
1421 | | @param flg The JSON write options. |
1422 | | Multiple options can be combined with `|` operator. 0 means no options. |
1423 | | @param alc The memory allocator used by JSON writer. |
1424 | | Pass NULL to use the libc's default allocator. |
1425 | | @param err A pointer to receive error information. |
1426 | | Pass NULL if you don't need error information. |
1427 | | @return true if successful, false if an error occurs. |
1428 | | |
1429 | | @warning On 32-bit operating system, files larger than 2GB may fail to write. |
1430 | | */ |
1431 | | yyjson_api bool yyjson_val_write_fp(FILE *fp, |
1432 | | const yyjson_val *val, |
1433 | | yyjson_write_flag flg, |
1434 | | const yyjson_alc *alc, |
1435 | | yyjson_write_err *err); |
1436 | | |
1437 | | /** |
1438 | | Write a value to JSON string. |
1439 | | |
1440 | | This function is thread-safe. |
1441 | | |
1442 | | @param val The JSON root value. |
1443 | | If this parameter is NULL, the function will fail and return NULL. |
1444 | | @param flg The JSON write options. |
1445 | | Multiple options can be combined with `|` operator. 0 means no options. |
1446 | | @param len A pointer to receive output length in bytes (not including the |
1447 | | null-terminator). Pass NULL if you don't need length information. |
1448 | | @return A new JSON string, or NULL if an error occurs. |
1449 | | This string is encoded as UTF-8 with a null-terminator. |
1450 | | When it's no longer needed, it should be freed with free(). |
1451 | | */ |
1452 | | yyjson_api_inline char *yyjson_val_write(const yyjson_val *val, |
1453 | | yyjson_write_flag flg, |
1454 | 0 | size_t *len) { |
1455 | 0 | return yyjson_val_write_opts(val, flg, NULL, len, NULL); |
1456 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_val_write(duckdb_yyjson::yyjson_val const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_val_write(duckdb_yyjson::yyjson_val const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_val_write(duckdb_yyjson::yyjson_val const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_val_write(duckdb_yyjson::yyjson_val const*, unsigned int, unsigned long*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_val_write(duckdb_yyjson::yyjson_val const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_val_write(duckdb_yyjson::yyjson_val const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_val_write(duckdb_yyjson::yyjson_val const*, unsigned int, unsigned long*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_val_write(duckdb_yyjson::yyjson_val const*, unsigned int, unsigned long*) |
1457 | | |
1458 | | /** |
1459 | | Write a value to JSON string with options. |
1460 | | |
1461 | | This function is thread-safe when: |
1462 | | 1. The `val` is not modified by other threads. |
1463 | | 2. The `alc` is thread-safe or NULL. |
1464 | | |
1465 | | @param val The mutable JSON root value. |
1466 | | If this parameter is NULL, the function will fail and return NULL. |
1467 | | @param flg The JSON write options. |
1468 | | Multiple options can be combined with `|` operator. 0 means no options. |
1469 | | @param alc The memory allocator used by JSON writer. |
1470 | | Pass NULL to use the libc's default allocator. |
1471 | | @param len A pointer to receive output length in bytes (not including the |
1472 | | null-terminator). Pass NULL if you don't need length information. |
1473 | | @param err A pointer to receive error information. |
1474 | | Pass NULL if you don't need error information. |
1475 | | @return A new JSON string, or NULL if an error occurs. |
1476 | | This string is encoded as UTF-8 with a null-terminator. |
1477 | | When it's no longer needed, it should be freed with free() or alc->free(). |
1478 | | */ |
1479 | | yyjson_api char *yyjson_mut_val_write_opts(const yyjson_mut_val *val, |
1480 | | yyjson_write_flag flg, |
1481 | | const yyjson_alc *alc, |
1482 | | size_t *len, |
1483 | | yyjson_write_err *err); |
1484 | | |
1485 | | /** |
1486 | | Write a value to JSON file with options. |
1487 | | |
1488 | | This function is thread-safe when: |
1489 | | 1. The file is not accessed by other threads. |
1490 | | 2. The `val` is not modified by other threads. |
1491 | | 3. The `alc` is thread-safe or NULL. |
1492 | | |
1493 | | @param path The JSON file's path. |
1494 | | If this path is NULL or invalid, the function will fail and return false. |
1495 | | If this file is not empty, the content will be discarded. |
1496 | | @param val The mutable JSON root value. |
1497 | | If this parameter is NULL, the function will fail and return NULL. |
1498 | | @param flg The JSON write options. |
1499 | | Multiple options can be combined with `|` operator. 0 means no options. |
1500 | | @param alc The memory allocator used by JSON writer. |
1501 | | Pass NULL to use the libc's default allocator. |
1502 | | @param err A pointer to receive error information. |
1503 | | Pass NULL if you don't need error information. |
1504 | | @return true if successful, false if an error occurs. |
1505 | | |
1506 | | @warning On 32-bit operating system, files larger than 2GB may fail to write. |
1507 | | */ |
1508 | | yyjson_api bool yyjson_mut_val_write_file(const char *path, |
1509 | | const yyjson_mut_val *val, |
1510 | | yyjson_write_flag flg, |
1511 | | const yyjson_alc *alc, |
1512 | | yyjson_write_err *err); |
1513 | | |
1514 | | /** |
1515 | | Write a value to JSON file with options. |
1516 | | |
1517 | | @param fp The file pointer. |
1518 | | The data will be written to the current position of the file. |
1519 | | If this path is NULL or invalid, the function will fail and return false. |
1520 | | @param val The mutable JSON root value. |
1521 | | If this parameter is NULL, the function will fail and return NULL. |
1522 | | @param flg The JSON write options. |
1523 | | Multiple options can be combined with `|` operator. 0 means no options. |
1524 | | @param alc The memory allocator used by JSON writer. |
1525 | | Pass NULL to use the libc's default allocator. |
1526 | | @param err A pointer to receive error information. |
1527 | | Pass NULL if you don't need error information. |
1528 | | @return true if successful, false if an error occurs. |
1529 | | |
1530 | | @warning On 32-bit operating system, files larger than 2GB may fail to write. |
1531 | | */ |
1532 | | yyjson_api bool yyjson_mut_val_write_fp(FILE *fp, |
1533 | | const yyjson_mut_val *val, |
1534 | | yyjson_write_flag flg, |
1535 | | const yyjson_alc *alc, |
1536 | | yyjson_write_err *err); |
1537 | | |
1538 | | /** |
1539 | | Write a value to JSON string. |
1540 | | |
1541 | | This function is thread-safe when: |
1542 | | The `val` is not modified by other threads. |
1543 | | |
1544 | | @param val The JSON root value. |
1545 | | If this parameter is NULL, the function will fail and return NULL. |
1546 | | @param flg The JSON write options. |
1547 | | Multiple options can be combined with `|` operator. 0 means no options. |
1548 | | @param len A pointer to receive output length in bytes (not including the |
1549 | | null-terminator). Pass NULL if you don't need length information. |
1550 | | @return A new JSON string, or NULL if an error occurs. |
1551 | | This string is encoded as UTF-8 with a null-terminator. |
1552 | | When it's no longer needed, it should be freed with free(). |
1553 | | */ |
1554 | | yyjson_api_inline char *yyjson_mut_val_write(const yyjson_mut_val *val, |
1555 | | yyjson_write_flag flg, |
1556 | 0 | size_t *len) { |
1557 | 0 | return yyjson_mut_val_write_opts(val, flg, NULL, len, NULL); |
1558 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_val_write(duckdb_yyjson::yyjson_mut_val const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_val_write(duckdb_yyjson::yyjson_mut_val const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_val_write(duckdb_yyjson::yyjson_mut_val const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_val_write(duckdb_yyjson::yyjson_mut_val const*, unsigned int, unsigned long*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_val_write(duckdb_yyjson::yyjson_mut_val const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_val_write(duckdb_yyjson::yyjson_mut_val const*, unsigned int, unsigned long*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_val_write(duckdb_yyjson::yyjson_mut_val const*, unsigned int, unsigned long*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_val_write(duckdb_yyjson::yyjson_mut_val const*, unsigned int, unsigned long*) |
1559 | | |
1560 | | |
1561 | | |
1562 | | /*============================================================================== |
1563 | | * JSON Document API |
1564 | | *============================================================================*/ |
1565 | | |
1566 | | /** Returns the root value of this JSON document. |
1567 | | Returns NULL if `doc` is NULL. */ |
1568 | | yyjson_api_inline yyjson_val *yyjson_doc_get_root(yyjson_doc *doc); |
1569 | | |
1570 | | /** Returns read size of input JSON data. |
1571 | | Returns 0 if `doc` is NULL. |
1572 | | For example: the read size of `[1,2,3]` is 7 bytes. */ |
1573 | | yyjson_api_inline size_t yyjson_doc_get_read_size(yyjson_doc *doc); |
1574 | | |
1575 | | /** Returns total value count in this JSON document. |
1576 | | Returns 0 if `doc` is NULL. |
1577 | | For example: the value count of `[1,2,3]` is 4. */ |
1578 | | yyjson_api_inline size_t yyjson_doc_get_val_count(yyjson_doc *doc); |
1579 | | |
1580 | | /** Release the JSON document and free the memory. |
1581 | | After calling this function, the `doc` and all values from the `doc` are no |
1582 | | longer available. This function will do nothing if the `doc` is NULL. */ |
1583 | | yyjson_api_inline void yyjson_doc_free(yyjson_doc *doc); |
1584 | | |
1585 | | |
1586 | | |
1587 | | /*============================================================================== |
1588 | | * JSON Value Type API |
1589 | | *============================================================================*/ |
1590 | | |
1591 | | /** Returns whether the JSON value is raw. |
1592 | | Returns false if `val` is NULL. */ |
1593 | | yyjson_api_inline bool yyjson_is_raw(yyjson_val *val); |
1594 | | |
1595 | | /** Returns whether the JSON value is `null`. |
1596 | | Returns false if `val` is NULL. */ |
1597 | | yyjson_api_inline bool yyjson_is_null(yyjson_val *val); |
1598 | | |
1599 | | /** Returns whether the JSON value is `true`. |
1600 | | Returns false if `val` is NULL. */ |
1601 | | yyjson_api_inline bool yyjson_is_true(yyjson_val *val); |
1602 | | |
1603 | | /** Returns whether the JSON value is `false`. |
1604 | | Returns false if `val` is NULL. */ |
1605 | | yyjson_api_inline bool yyjson_is_false(yyjson_val *val); |
1606 | | |
1607 | | /** Returns whether the JSON value is bool (true/false). |
1608 | | Returns false if `val` is NULL. */ |
1609 | | yyjson_api_inline bool yyjson_is_bool(yyjson_val *val); |
1610 | | |
1611 | | /** Returns whether the JSON value is unsigned integer (uint64_t). |
1612 | | Returns false if `val` is NULL. */ |
1613 | | yyjson_api_inline bool yyjson_is_uint(yyjson_val *val); |
1614 | | |
1615 | | /** Returns whether the JSON value is signed integer (int64_t). |
1616 | | Returns false if `val` is NULL. */ |
1617 | | yyjson_api_inline bool yyjson_is_sint(yyjson_val *val); |
1618 | | |
1619 | | /** Returns whether the JSON value is integer (uint64_t/int64_t). |
1620 | | Returns false if `val` is NULL. */ |
1621 | | yyjson_api_inline bool yyjson_is_int(yyjson_val *val); |
1622 | | |
1623 | | /** Returns whether the JSON value is real number (double). |
1624 | | Returns false if `val` is NULL. */ |
1625 | | yyjson_api_inline bool yyjson_is_real(yyjson_val *val); |
1626 | | |
1627 | | /** Returns whether the JSON value is number (uint64_t/int64_t/double). |
1628 | | Returns false if `val` is NULL. */ |
1629 | | yyjson_api_inline bool yyjson_is_num(yyjson_val *val); |
1630 | | |
1631 | | /** Returns whether the JSON value is string. |
1632 | | Returns false if `val` is NULL. */ |
1633 | | yyjson_api_inline bool yyjson_is_str(yyjson_val *val); |
1634 | | |
1635 | | /** Returns whether the JSON value is array. |
1636 | | Returns false if `val` is NULL. */ |
1637 | | yyjson_api_inline bool yyjson_is_arr(yyjson_val *val); |
1638 | | |
1639 | | /** Returns whether the JSON value is object. |
1640 | | Returns false if `val` is NULL. */ |
1641 | | yyjson_api_inline bool yyjson_is_obj(yyjson_val *val); |
1642 | | |
1643 | | /** Returns whether the JSON value is container (array/object). |
1644 | | Returns false if `val` is NULL. */ |
1645 | | yyjson_api_inline bool yyjson_is_ctn(yyjson_val *val); |
1646 | | |
1647 | | |
1648 | | |
1649 | | /*============================================================================== |
1650 | | * JSON Value Content API |
1651 | | *============================================================================*/ |
1652 | | |
1653 | | /** Returns the JSON value's type. |
1654 | | Returns YYJSON_TYPE_NONE if `val` is NULL. */ |
1655 | | yyjson_api_inline yyjson_type yyjson_get_type(yyjson_val *val); |
1656 | | |
1657 | | /** Returns the JSON value's subtype. |
1658 | | Returns YYJSON_SUBTYPE_NONE if `val` is NULL. */ |
1659 | | yyjson_api_inline yyjson_subtype yyjson_get_subtype(yyjson_val *val); |
1660 | | |
1661 | | /** Returns the JSON value's tag. |
1662 | | Returns 0 if `val` is NULL. */ |
1663 | | yyjson_api_inline uint8_t yyjson_get_tag(yyjson_val *val); |
1664 | | |
1665 | | /** Returns the JSON value's type description. |
1666 | | The return value should be one of these strings: "raw", "null", "string", |
1667 | | "array", "object", "true", "false", "uint", "sint", "real", "unknown". */ |
1668 | | yyjson_api_inline const char *yyjson_get_type_desc(yyjson_val *val); |
1669 | | |
1670 | | /** Returns the content if the value is raw. |
1671 | | Returns NULL if `val` is NULL or type is not raw. */ |
1672 | | yyjson_api_inline const char *yyjson_get_raw(yyjson_val *val); |
1673 | | |
1674 | | /** Returns the content if the value is bool. |
1675 | | Returns NULL if `val` is NULL or type is not bool. */ |
1676 | | yyjson_api_inline bool yyjson_get_bool(yyjson_val *val); |
1677 | | |
1678 | | /** Returns the content and cast to uint64_t. |
1679 | | Returns 0 if `val` is NULL or type is not integer(sint/uint). */ |
1680 | | yyjson_api_inline uint64_t yyjson_get_uint(yyjson_val *val); |
1681 | | |
1682 | | /** Returns the content and cast to int64_t. |
1683 | | Returns 0 if `val` is NULL or type is not integer(sint/uint). */ |
1684 | | yyjson_api_inline int64_t yyjson_get_sint(yyjson_val *val); |
1685 | | |
1686 | | /** Returns the content and cast to int. |
1687 | | Returns 0 if `val` is NULL or type is not integer(sint/uint). */ |
1688 | | yyjson_api_inline int yyjson_get_int(yyjson_val *val); |
1689 | | |
1690 | | /** Returns the content if the value is real number, or 0.0 on error. |
1691 | | Returns 0.0 if `val` is NULL or type is not real(double). */ |
1692 | | yyjson_api_inline double yyjson_get_real(yyjson_val *val); |
1693 | | |
1694 | | /** Returns the content and typecast to `double` if the value is number. |
1695 | | Returns 0.0 if `val` is NULL or type is not number(uint/sint/real). */ |
1696 | | yyjson_api_inline double yyjson_get_num(yyjson_val *val); |
1697 | | |
1698 | | /** Returns the content if the value is string. |
1699 | | Returns NULL if `val` is NULL or type is not string. */ |
1700 | | yyjson_api_inline const char *yyjson_get_str(yyjson_val *val); |
1701 | | |
1702 | | /** Returns the content length (string length, array size, object size. |
1703 | | Returns 0 if `val` is NULL or type is not string/array/object. */ |
1704 | | yyjson_api_inline size_t yyjson_get_len(yyjson_val *val); |
1705 | | |
1706 | | /** Returns whether the JSON value is equals to a string. |
1707 | | Returns false if input is NULL or type is not string. */ |
1708 | | yyjson_api_inline bool yyjson_equals_str(yyjson_val *val, const char *str); |
1709 | | |
1710 | | /** Returns whether the JSON value is equals to a string. |
1711 | | The `str` should be a UTF-8 string, null-terminator is not required. |
1712 | | Returns false if input is NULL or type is not string. */ |
1713 | | yyjson_api_inline bool yyjson_equals_strn(yyjson_val *val, const char *str, |
1714 | | size_t len); |
1715 | | |
1716 | | /** Returns whether two JSON values are equal (deep compare). |
1717 | | Returns false if input is NULL. |
1718 | | @note the result may be inaccurate if object has duplicate keys. |
1719 | | @warning This function is recursive and may cause a stack overflow |
1720 | | if the object level is too deep. */ |
1721 | | yyjson_api_inline bool yyjson_equals(yyjson_val *lhs, yyjson_val *rhs); |
1722 | | |
1723 | | /** Set the value to raw. |
1724 | | Returns false if input is NULL or `val` is object or array. |
1725 | | @warning This will modify the `immutable` value, use with caution. */ |
1726 | | yyjson_api_inline bool yyjson_set_raw(yyjson_val *val, |
1727 | | const char *raw, size_t len); |
1728 | | |
1729 | | /** Set the value to null. |
1730 | | Returns false if input is NULL or `val` is object or array. |
1731 | | @warning This will modify the `immutable` value, use with caution. */ |
1732 | | yyjson_api_inline bool yyjson_set_null(yyjson_val *val); |
1733 | | |
1734 | | /** Set the value to bool. |
1735 | | Returns false if input is NULL or `val` is object or array. |
1736 | | @warning This will modify the `immutable` value, use with caution. */ |
1737 | | yyjson_api_inline bool yyjson_set_bool(yyjson_val *val, bool num); |
1738 | | |
1739 | | /** Set the value to uint. |
1740 | | Returns false if input is NULL or `val` is object or array. |
1741 | | @warning This will modify the `immutable` value, use with caution. */ |
1742 | | yyjson_api_inline bool yyjson_set_uint(yyjson_val *val, uint64_t num); |
1743 | | |
1744 | | /** Set the value to sint. |
1745 | | Returns false if input is NULL or `val` is object or array. |
1746 | | @warning This will modify the `immutable` value, use with caution. */ |
1747 | | yyjson_api_inline bool yyjson_set_sint(yyjson_val *val, int64_t num); |
1748 | | |
1749 | | /** Set the value to int. |
1750 | | Returns false if input is NULL or `val` is object or array. |
1751 | | @warning This will modify the `immutable` value, use with caution. */ |
1752 | | yyjson_api_inline bool yyjson_set_int(yyjson_val *val, int num); |
1753 | | |
1754 | | /** Set the value to real. |
1755 | | Returns false if input is NULL or `val` is object or array. |
1756 | | @warning This will modify the `immutable` value, use with caution. */ |
1757 | | yyjson_api_inline bool yyjson_set_real(yyjson_val *val, double num); |
1758 | | |
1759 | | /** Set the value to string (null-terminated). |
1760 | | Returns false if input is NULL or `val` is object or array. |
1761 | | @warning This will modify the `immutable` value, use with caution. */ |
1762 | | yyjson_api_inline bool yyjson_set_str(yyjson_val *val, const char *str); |
1763 | | |
1764 | | /** Set the value to string (with length). |
1765 | | Returns false if input is NULL or `val` is object or array. |
1766 | | @warning This will modify the `immutable` value, use with caution. */ |
1767 | | yyjson_api_inline bool yyjson_set_strn(yyjson_val *val, |
1768 | | const char *str, size_t len); |
1769 | | |
1770 | | |
1771 | | |
1772 | | /*============================================================================== |
1773 | | * JSON Array API |
1774 | | *============================================================================*/ |
1775 | | |
1776 | | /** Returns the number of elements in this array. |
1777 | | Returns 0 if `arr` is NULL or type is not array. */ |
1778 | | yyjson_api_inline size_t yyjson_arr_size(yyjson_val *arr); |
1779 | | |
1780 | | /** Returns the element at the specified position in this array. |
1781 | | Returns NULL if array is NULL/empty or the index is out of bounds. |
1782 | | @warning This function takes a linear search time if array is not flat. |
1783 | | For example: `[1,{},3]` is flat, `[1,[2],3]` is not flat. */ |
1784 | | yyjson_api_inline yyjson_val *yyjson_arr_get(yyjson_val *arr, size_t idx); |
1785 | | |
1786 | | /** Returns the first element of this array. |
1787 | | Returns NULL if `arr` is NULL/empty or type is not array. */ |
1788 | | yyjson_api_inline yyjson_val *yyjson_arr_get_first(yyjson_val *arr); |
1789 | | |
1790 | | /** Returns the last element of this array. |
1791 | | Returns NULL if `arr` is NULL/empty or type is not array. |
1792 | | @warning This function takes a linear search time if array is not flat. |
1793 | | For example: `[1,{},3]` is flat, `[1,[2],3]` is not flat.*/ |
1794 | | yyjson_api_inline yyjson_val *yyjson_arr_get_last(yyjson_val *arr); |
1795 | | |
1796 | | |
1797 | | |
1798 | | /*============================================================================== |
1799 | | * JSON Array Iterator API |
1800 | | *============================================================================*/ |
1801 | | |
1802 | | /** |
1803 | | A JSON array iterator. |
1804 | | |
1805 | | @par Example |
1806 | | @code |
1807 | | yyjson_val *val; |
1808 | | yyjson_arr_iter iter = yyjson_arr_iter_with(arr); |
1809 | | while ((val = yyjson_arr_iter_next(&iter))) { |
1810 | | your_func(val); |
1811 | | } |
1812 | | @endcode |
1813 | | */ |
1814 | | typedef struct yyjson_arr_iter { |
1815 | | size_t idx; /**< next value's index */ |
1816 | | size_t max; /**< maximum index (arr.size) */ |
1817 | | yyjson_val *cur; /**< next value */ |
1818 | | } yyjson_arr_iter; |
1819 | | |
1820 | | /** |
1821 | | Initialize an iterator for this array. |
1822 | | |
1823 | | @param arr The array to be iterated over. |
1824 | | If this parameter is NULL or not an array, `iter` will be set to empty. |
1825 | | @param iter The iterator to be initialized. |
1826 | | If this parameter is NULL, the function will fail and return false. |
1827 | | @return true if the `iter` has been successfully initialized. |
1828 | | |
1829 | | @note The iterator does not need to be destroyed. |
1830 | | */ |
1831 | | yyjson_api_inline bool yyjson_arr_iter_init(yyjson_val *arr, |
1832 | | yyjson_arr_iter *iter); |
1833 | | |
1834 | | /** |
1835 | | Create an iterator with an array , same as `yyjson_arr_iter_init()`. |
1836 | | |
1837 | | @param arr The array to be iterated over. |
1838 | | If this parameter is NULL or not an array, an empty iterator will returned. |
1839 | | @return A new iterator for the array. |
1840 | | |
1841 | | @note The iterator does not need to be destroyed. |
1842 | | */ |
1843 | | yyjson_api_inline yyjson_arr_iter yyjson_arr_iter_with(yyjson_val *arr); |
1844 | | |
1845 | | /** |
1846 | | Returns whether the iteration has more elements. |
1847 | | If `iter` is NULL, this function will return false. |
1848 | | */ |
1849 | | yyjson_api_inline bool yyjson_arr_iter_has_next(yyjson_arr_iter *iter); |
1850 | | |
1851 | | /** |
1852 | | Returns the next element in the iteration, or NULL on end. |
1853 | | If `iter` is NULL, this function will return NULL. |
1854 | | */ |
1855 | | yyjson_api_inline yyjson_val *yyjson_arr_iter_next(yyjson_arr_iter *iter); |
1856 | | |
1857 | | /** |
1858 | | Macro for iterating over an array. |
1859 | | It works like iterator, but with a more intuitive API. |
1860 | | |
1861 | | @par Example |
1862 | | @code |
1863 | | size_t idx, max; |
1864 | | yyjson_val *val; |
1865 | | yyjson_arr_foreach(arr, idx, max, val) { |
1866 | | your_func(idx, val); |
1867 | | } |
1868 | | @endcode |
1869 | | */ |
1870 | | #define yyjson_arr_foreach(arr, idx, max, val) \ |
1871 | 0 | for ((idx) = 0, \ |
1872 | 0 | (max) = yyjson_arr_size(arr), \ |
1873 | 0 | (val) = yyjson_arr_get_first(arr); \ |
1874 | 0 | (idx) < (max); \ |
1875 | 0 | (idx)++, \ |
1876 | 0 | (val) = unsafe_yyjson_get_next(val)) |
1877 | | |
1878 | | |
1879 | | |
1880 | | /*============================================================================== |
1881 | | * JSON Object API |
1882 | | *============================================================================*/ |
1883 | | |
1884 | | /** Returns the number of key-value pairs in this object. |
1885 | | Returns 0 if `obj` is NULL or type is not object. */ |
1886 | | yyjson_api_inline size_t yyjson_obj_size(yyjson_val *obj); |
1887 | | |
1888 | | /** Returns the value to which the specified key is mapped. |
1889 | | Returns NULL if this object contains no mapping for the key. |
1890 | | Returns NULL if `obj/key` is NULL, or type is not object. |
1891 | | |
1892 | | The `key` should be a null-terminated UTF-8 string. |
1893 | | |
1894 | | @warning This function takes a linear search time. */ |
1895 | | yyjson_api_inline yyjson_val *yyjson_obj_get(yyjson_val *obj, const char *key); |
1896 | | |
1897 | | /** Returns the value to which the specified key is mapped. |
1898 | | Returns NULL if this object contains no mapping for the key. |
1899 | | Returns NULL if `obj/key` is NULL, or type is not object. |
1900 | | |
1901 | | The `key` should be a UTF-8 string, null-terminator is not required. |
1902 | | The `key_len` should be the length of the key, in bytes. |
1903 | | |
1904 | | @warning This function takes a linear search time. */ |
1905 | | yyjson_api_inline yyjson_val *yyjson_obj_getn(yyjson_val *obj, const char *key, |
1906 | | size_t key_len); |
1907 | | |
1908 | | |
1909 | | |
1910 | | /*============================================================================== |
1911 | | * JSON Object Iterator API |
1912 | | *============================================================================*/ |
1913 | | |
1914 | | /** |
1915 | | A JSON object iterator. |
1916 | | |
1917 | | @par Example |
1918 | | @code |
1919 | | yyjson_val *key, *val; |
1920 | | yyjson_obj_iter iter = yyjson_obj_iter_with(obj); |
1921 | | while ((key = yyjson_obj_iter_next(&iter))) { |
1922 | | val = yyjson_obj_iter_get_val(key); |
1923 | | your_func(key, val); |
1924 | | } |
1925 | | @endcode |
1926 | | |
1927 | | If the ordering of the keys is known at compile-time, you can use this method |
1928 | | to speed up value lookups: |
1929 | | @code |
1930 | | // {"k1":1, "k2": 3, "k3": 3} |
1931 | | yyjson_val *key, *val; |
1932 | | yyjson_obj_iter iter = yyjson_obj_iter_with(obj); |
1933 | | yyjson_val *v1 = yyjson_obj_iter_get(&iter, "k1"); |
1934 | | yyjson_val *v3 = yyjson_obj_iter_get(&iter, "k3"); |
1935 | | @endcode |
1936 | | @see yyjson_obj_iter_get() and yyjson_obj_iter_getn() |
1937 | | */ |
1938 | | typedef struct yyjson_obj_iter { |
1939 | | size_t idx; /**< next key's index */ |
1940 | | size_t max; /**< maximum key index (obj.size) */ |
1941 | | yyjson_val *cur; /**< next key */ |
1942 | | yyjson_val *obj; /**< the object being iterated */ |
1943 | | } yyjson_obj_iter; |
1944 | | |
1945 | | /** |
1946 | | Initialize an iterator for this object. |
1947 | | |
1948 | | @param obj The object to be iterated over. |
1949 | | If this parameter is NULL or not an object, `iter` will be set to empty. |
1950 | | @param iter The iterator to be initialized. |
1951 | | If this parameter is NULL, the function will fail and return false. |
1952 | | @return true if the `iter` has been successfully initialized. |
1953 | | |
1954 | | @note The iterator does not need to be destroyed. |
1955 | | */ |
1956 | | yyjson_api_inline bool yyjson_obj_iter_init(yyjson_val *obj, |
1957 | | yyjson_obj_iter *iter); |
1958 | | |
1959 | | /** |
1960 | | Create an iterator with an object, same as `yyjson_obj_iter_init()`. |
1961 | | |
1962 | | @param obj The object to be iterated over. |
1963 | | If this parameter is NULL or not an object, an empty iterator will returned. |
1964 | | @return A new iterator for the object. |
1965 | | |
1966 | | @note The iterator does not need to be destroyed. |
1967 | | */ |
1968 | | yyjson_api_inline yyjson_obj_iter yyjson_obj_iter_with(yyjson_val *obj); |
1969 | | |
1970 | | /** |
1971 | | Returns whether the iteration has more elements. |
1972 | | If `iter` is NULL, this function will return false. |
1973 | | */ |
1974 | | yyjson_api_inline bool yyjson_obj_iter_has_next(yyjson_obj_iter *iter); |
1975 | | |
1976 | | /** |
1977 | | Returns the next key in the iteration, or NULL on end. |
1978 | | If `iter` is NULL, this function will return NULL. |
1979 | | */ |
1980 | | yyjson_api_inline yyjson_val *yyjson_obj_iter_next(yyjson_obj_iter *iter); |
1981 | | |
1982 | | /** |
1983 | | Returns the value for key inside the iteration. |
1984 | | If `iter` is NULL, this function will return NULL. |
1985 | | */ |
1986 | | yyjson_api_inline yyjson_val *yyjson_obj_iter_get_val(yyjson_val *key); |
1987 | | |
1988 | | /** |
1989 | | Iterates to a specified key and returns the value. |
1990 | | |
1991 | | This function does the same thing as `yyjson_obj_get()`, but is much faster |
1992 | | if the ordering of the keys is known at compile-time and you are using the same |
1993 | | order to look up the values. If the key exists in this object, then the |
1994 | | iterator will stop at the next key, otherwise the iterator will not change and |
1995 | | NULL is returned. |
1996 | | |
1997 | | @param iter The object iterator, should not be NULL. |
1998 | | @param key The key, should be a UTF-8 string with null-terminator. |
1999 | | @return The value to which the specified key is mapped. |
2000 | | NULL if this object contains no mapping for the key or input is invalid. |
2001 | | |
2002 | | @warning This function takes a linear search time if the key is not nearby. |
2003 | | */ |
2004 | | yyjson_api_inline yyjson_val *yyjson_obj_iter_get(yyjson_obj_iter *iter, |
2005 | | const char *key); |
2006 | | |
2007 | | /** |
2008 | | Iterates to a specified key and returns the value. |
2009 | | |
2010 | | This function does the same thing as `yyjson_obj_getn()`, but is much faster |
2011 | | if the ordering of the keys is known at compile-time and you are using the same |
2012 | | order to look up the values. If the key exists in this object, then the |
2013 | | iterator will stop at the next key, otherwise the iterator will not change and |
2014 | | NULL is returned. |
2015 | | |
2016 | | @param iter The object iterator, should not be NULL. |
2017 | | @param key The key, should be a UTF-8 string, null-terminator is not required. |
2018 | | @param key_len The the length of `key`, in bytes. |
2019 | | @return The value to which the specified key is mapped. |
2020 | | NULL if this object contains no mapping for the key or input is invalid. |
2021 | | |
2022 | | @warning This function takes a linear search time if the key is not nearby. |
2023 | | */ |
2024 | | yyjson_api_inline yyjson_val *yyjson_obj_iter_getn(yyjson_obj_iter *iter, |
2025 | | const char *key, |
2026 | | size_t key_len); |
2027 | | |
2028 | | /** |
2029 | | Macro for iterating over an object. |
2030 | | It works like iterator, but with a more intuitive API. |
2031 | | |
2032 | | @par Example |
2033 | | @code |
2034 | | size_t idx, max; |
2035 | | yyjson_val *key, *val; |
2036 | | yyjson_obj_foreach(obj, idx, max, key, val) { |
2037 | | your_func(key, val); |
2038 | | } |
2039 | | @endcode |
2040 | | */ |
2041 | | #define yyjson_obj_foreach(obj, idx, max, key, val) \ |
2042 | 166k | for ((idx) = 0, \ |
2043 | 166k | (max) = yyjson_obj_size(obj), \ |
2044 | 166k | (key) = (obj) ? unsafe_yyjson_get_first(obj) : NULL, \ |
2045 | 166k | (val) = (key) + 1; \ |
2046 | 916k | (idx) < (max); \ |
2047 | 750k | (idx)++, \ |
2048 | 750k | (key) = unsafe_yyjson_get_next(val), \ |
2049 | 750k | (val) = (key) + 1) |
2050 | | |
2051 | | |
2052 | | |
2053 | | /*============================================================================== |
2054 | | * Mutable JSON Document API |
2055 | | *============================================================================*/ |
2056 | | |
2057 | | /** Returns the root value of this JSON document. |
2058 | | Returns NULL if `doc` is NULL. */ |
2059 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_get_root(yyjson_mut_doc *doc); |
2060 | | |
2061 | | /** Sets the root value of this JSON document. |
2062 | | Pass NULL to clear root value of the document. */ |
2063 | | yyjson_api_inline void yyjson_mut_doc_set_root(yyjson_mut_doc *doc, |
2064 | | yyjson_mut_val *root); |
2065 | | |
2066 | | /** |
2067 | | Set the string pool size for a mutable document. |
2068 | | This function does not allocate memory immediately, but uses the size when |
2069 | | the next memory allocation is needed. |
2070 | | |
2071 | | If the caller knows the approximate bytes of strings that the document needs to |
2072 | | store (e.g. copy string with `yyjson_mut_strcpy` function), setting a larger |
2073 | | size can avoid multiple memory allocations and improve performance. |
2074 | | |
2075 | | @param doc The mutable document. |
2076 | | @param len The desired string pool size in bytes (total string length). |
2077 | | @return true if successful, false if size is 0 or overflow. |
2078 | | */ |
2079 | | yyjson_api bool yyjson_mut_doc_set_str_pool_size(yyjson_mut_doc *doc, |
2080 | | size_t len); |
2081 | | |
2082 | | /** |
2083 | | Set the value pool size for a mutable document. |
2084 | | This function does not allocate memory immediately, but uses the size when |
2085 | | the next memory allocation is needed. |
2086 | | |
2087 | | If the caller knows the approximate number of values that the document needs to |
2088 | | store (e.g. create new value with `yyjson_mut_xxx` functions), setting a larger |
2089 | | size can avoid multiple memory allocations and improve performance. |
2090 | | |
2091 | | @param doc The mutable document. |
2092 | | @param count The desired value pool size (number of `yyjson_mut_val`). |
2093 | | @return true if successful, false if size is 0 or overflow. |
2094 | | */ |
2095 | | yyjson_api bool yyjson_mut_doc_set_val_pool_size(yyjson_mut_doc *doc, |
2096 | | size_t count); |
2097 | | |
2098 | | /** Release the JSON document and free the memory. |
2099 | | After calling this function, the `doc` and all values from the `doc` are no |
2100 | | longer available. This function will do nothing if the `doc` is NULL. */ |
2101 | | yyjson_api void yyjson_mut_doc_free(yyjson_mut_doc *doc); |
2102 | | |
2103 | | /** Creates and returns a new mutable JSON document, returns NULL on error. |
2104 | | If allocator is NULL, the default allocator will be used. */ |
2105 | | yyjson_api yyjson_mut_doc *yyjson_mut_doc_new(const yyjson_alc *alc); |
2106 | | |
2107 | | /** Copies and returns a new mutable document from input, returns NULL on error. |
2108 | | This makes a `deep-copy` on the immutable document. |
2109 | | If allocator is NULL, the default allocator will be used. |
2110 | | @note `imut_doc` -> `mut_doc`. */ |
2111 | | yyjson_api yyjson_mut_doc *yyjson_doc_mut_copy(yyjson_doc *doc, |
2112 | | const yyjson_alc *alc); |
2113 | | |
2114 | | /** Copies and returns a new mutable document from input, returns NULL on error. |
2115 | | This makes a `deep-copy` on the mutable document. |
2116 | | If allocator is NULL, the default allocator will be used. |
2117 | | @note `mut_doc` -> `mut_doc`. */ |
2118 | | yyjson_api yyjson_mut_doc *yyjson_mut_doc_mut_copy(yyjson_mut_doc *doc, |
2119 | | const yyjson_alc *alc); |
2120 | | |
2121 | | /** Copies and returns a new mutable value from input, returns NULL on error. |
2122 | | This makes a `deep-copy` on the immutable value. |
2123 | | The memory was managed by mutable document. |
2124 | | @note `imut_val` -> `mut_val`. */ |
2125 | | yyjson_api yyjson_mut_val *yyjson_val_mut_copy(yyjson_mut_doc *doc, |
2126 | | yyjson_val *val); |
2127 | | |
2128 | | /** Copies and returns a new mutable value from input, returns NULL on error. |
2129 | | This makes a `deep-copy` on the mutable value. |
2130 | | The memory was managed by mutable document. |
2131 | | @note `mut_val` -> `mut_val`. |
2132 | | @warning This function is recursive and may cause a stack overflow |
2133 | | if the object level is too deep. */ |
2134 | | yyjson_api yyjson_mut_val *yyjson_mut_val_mut_copy(yyjson_mut_doc *doc, |
2135 | | yyjson_mut_val *val); |
2136 | | |
2137 | | /** Copies and returns a new immutable document from input, |
2138 | | returns NULL on error. This makes a `deep-copy` on the mutable document. |
2139 | | The returned document should be freed with `yyjson_doc_free()`. |
2140 | | @note `mut_doc` -> `imut_doc`. |
2141 | | @warning This function is recursive and may cause a stack overflow |
2142 | | if the object level is too deep. */ |
2143 | | yyjson_api yyjson_doc *yyjson_mut_doc_imut_copy(yyjson_mut_doc *doc, |
2144 | | const yyjson_alc *alc); |
2145 | | |
2146 | | /** Copies and returns a new immutable document from input, |
2147 | | returns NULL on error. This makes a `deep-copy` on the mutable value. |
2148 | | The returned document should be freed with `yyjson_doc_free()`. |
2149 | | @note `mut_val` -> `imut_doc`. |
2150 | | @warning This function is recursive and may cause a stack overflow |
2151 | | if the object level is too deep. */ |
2152 | | yyjson_api yyjson_doc *yyjson_mut_val_imut_copy(yyjson_mut_val *val, |
2153 | | const yyjson_alc *alc); |
2154 | | |
2155 | | |
2156 | | |
2157 | | /*============================================================================== |
2158 | | * Mutable JSON Value Type API |
2159 | | *============================================================================*/ |
2160 | | |
2161 | | /** Returns whether the JSON value is raw. |
2162 | | Returns false if `val` is NULL. */ |
2163 | | yyjson_api_inline bool yyjson_mut_is_raw(yyjson_mut_val *val); |
2164 | | |
2165 | | /** Returns whether the JSON value is `null`. |
2166 | | Returns false if `val` is NULL. */ |
2167 | | yyjson_api_inline bool yyjson_mut_is_null(yyjson_mut_val *val); |
2168 | | |
2169 | | /** Returns whether the JSON value is `true`. |
2170 | | Returns false if `val` is NULL. */ |
2171 | | yyjson_api_inline bool yyjson_mut_is_true(yyjson_mut_val *val); |
2172 | | |
2173 | | /** Returns whether the JSON value is `false`. |
2174 | | Returns false if `val` is NULL. */ |
2175 | | yyjson_api_inline bool yyjson_mut_is_false(yyjson_mut_val *val); |
2176 | | |
2177 | | /** Returns whether the JSON value is bool (true/false). |
2178 | | Returns false if `val` is NULL. */ |
2179 | | yyjson_api_inline bool yyjson_mut_is_bool(yyjson_mut_val *val); |
2180 | | |
2181 | | /** Returns whether the JSON value is unsigned integer (uint64_t). |
2182 | | Returns false if `val` is NULL. */ |
2183 | | yyjson_api_inline bool yyjson_mut_is_uint(yyjson_mut_val *val); |
2184 | | |
2185 | | /** Returns whether the JSON value is signed integer (int64_t). |
2186 | | Returns false if `val` is NULL. */ |
2187 | | yyjson_api_inline bool yyjson_mut_is_sint(yyjson_mut_val *val); |
2188 | | |
2189 | | /** Returns whether the JSON value is integer (uint64_t/int64_t). |
2190 | | Returns false if `val` is NULL. */ |
2191 | | yyjson_api_inline bool yyjson_mut_is_int(yyjson_mut_val *val); |
2192 | | |
2193 | | /** Returns whether the JSON value is real number (double). |
2194 | | Returns false if `val` is NULL. */ |
2195 | | yyjson_api_inline bool yyjson_mut_is_real(yyjson_mut_val *val); |
2196 | | |
2197 | | /** Returns whether the JSON value is number (uint/sint/real). |
2198 | | Returns false if `val` is NULL. */ |
2199 | | yyjson_api_inline bool yyjson_mut_is_num(yyjson_mut_val *val); |
2200 | | |
2201 | | /** Returns whether the JSON value is string. |
2202 | | Returns false if `val` is NULL. */ |
2203 | | yyjson_api_inline bool yyjson_mut_is_str(yyjson_mut_val *val); |
2204 | | |
2205 | | /** Returns whether the JSON value is array. |
2206 | | Returns false if `val` is NULL. */ |
2207 | | yyjson_api_inline bool yyjson_mut_is_arr(yyjson_mut_val *val); |
2208 | | |
2209 | | /** Returns whether the JSON value is object. |
2210 | | Returns false if `val` is NULL. */ |
2211 | | yyjson_api_inline bool yyjson_mut_is_obj(yyjson_mut_val *val); |
2212 | | |
2213 | | /** Returns whether the JSON value is container (array/object). |
2214 | | Returns false if `val` is NULL. */ |
2215 | | yyjson_api_inline bool yyjson_mut_is_ctn(yyjson_mut_val *val); |
2216 | | |
2217 | | |
2218 | | |
2219 | | /*============================================================================== |
2220 | | * Mutable JSON Value Content API |
2221 | | *============================================================================*/ |
2222 | | |
2223 | | /** Returns the JSON value's type. |
2224 | | Returns `YYJSON_TYPE_NONE` if `val` is NULL. */ |
2225 | | yyjson_api_inline yyjson_type yyjson_mut_get_type(yyjson_mut_val *val); |
2226 | | |
2227 | | /** Returns the JSON value's subtype. |
2228 | | Returns `YYJSON_SUBTYPE_NONE` if `val` is NULL. */ |
2229 | | yyjson_api_inline yyjson_subtype yyjson_mut_get_subtype(yyjson_mut_val *val); |
2230 | | |
2231 | | /** Returns the JSON value's tag. |
2232 | | Returns 0 if `val` is NULL. */ |
2233 | | yyjson_api_inline uint8_t yyjson_mut_get_tag(yyjson_mut_val *val); |
2234 | | |
2235 | | /** Returns the JSON value's type description. |
2236 | | The return value should be one of these strings: "raw", "null", "string", |
2237 | | "array", "object", "true", "false", "uint", "sint", "real", "unknown". */ |
2238 | | yyjson_api_inline const char *yyjson_mut_get_type_desc(yyjson_mut_val *val); |
2239 | | |
2240 | | /** Returns the content if the value is raw. |
2241 | | Returns NULL if `val` is NULL or type is not raw. */ |
2242 | | yyjson_api_inline const char *yyjson_mut_get_raw(yyjson_mut_val *val); |
2243 | | |
2244 | | /** Returns the content if the value is bool. |
2245 | | Returns NULL if `val` is NULL or type is not bool. */ |
2246 | | yyjson_api_inline bool yyjson_mut_get_bool(yyjson_mut_val *val); |
2247 | | |
2248 | | /** Returns the content and cast to uint64_t. |
2249 | | Returns 0 if `val` is NULL or type is not integer(sint/uint). */ |
2250 | | yyjson_api_inline uint64_t yyjson_mut_get_uint(yyjson_mut_val *val); |
2251 | | |
2252 | | /** Returns the content and cast to int64_t. |
2253 | | Returns 0 if `val` is NULL or type is not integer(sint/uint). */ |
2254 | | yyjson_api_inline int64_t yyjson_mut_get_sint(yyjson_mut_val *val); |
2255 | | |
2256 | | /** Returns the content and cast to int. |
2257 | | Returns 0 if `val` is NULL or type is not integer(sint/uint). */ |
2258 | | yyjson_api_inline int yyjson_mut_get_int(yyjson_mut_val *val); |
2259 | | |
2260 | | /** Returns the content if the value is real number. |
2261 | | Returns 0.0 if `val` is NULL or type is not real(double). */ |
2262 | | yyjson_api_inline double yyjson_mut_get_real(yyjson_mut_val *val); |
2263 | | |
2264 | | /** Returns the content and typecast to `double` if the value is number. |
2265 | | Returns 0.0 if `val` is NULL or type is not number(uint/sint/real). */ |
2266 | | yyjson_api_inline double yyjson_mut_get_num(yyjson_mut_val *val); |
2267 | | |
2268 | | /** Returns the content if the value is string. |
2269 | | Returns NULL if `val` is NULL or type is not string. */ |
2270 | | yyjson_api_inline const char *yyjson_mut_get_str(yyjson_mut_val *val); |
2271 | | |
2272 | | /** Returns the content length (string length, array size, object size. |
2273 | | Returns 0 if `val` is NULL or type is not string/array/object. */ |
2274 | | yyjson_api_inline size_t yyjson_mut_get_len(yyjson_mut_val *val); |
2275 | | |
2276 | | /** Returns whether the JSON value is equals to a string. |
2277 | | The `str` should be a null-terminated UTF-8 string. |
2278 | | Returns false if input is NULL or type is not string. */ |
2279 | | yyjson_api_inline bool yyjson_mut_equals_str(yyjson_mut_val *val, |
2280 | | const char *str); |
2281 | | |
2282 | | /** Returns whether the JSON value is equals to a string. |
2283 | | The `str` should be a UTF-8 string, null-terminator is not required. |
2284 | | Returns false if input is NULL or type is not string. */ |
2285 | | yyjson_api_inline bool yyjson_mut_equals_strn(yyjson_mut_val *val, |
2286 | | const char *str, size_t len); |
2287 | | |
2288 | | /** Returns whether two JSON values are equal (deep compare). |
2289 | | Returns false if input is NULL. |
2290 | | @note the result may be inaccurate if object has duplicate keys. |
2291 | | @warning This function is recursive and may cause a stack overflow |
2292 | | if the object level is too deep. */ |
2293 | | yyjson_api_inline bool yyjson_mut_equals(yyjson_mut_val *lhs, |
2294 | | yyjson_mut_val *rhs); |
2295 | | |
2296 | | /** Set the value to raw. |
2297 | | Returns false if input is NULL. |
2298 | | @warning This function should not be used on an existing object or array. */ |
2299 | | yyjson_api_inline bool yyjson_mut_set_raw(yyjson_mut_val *val, |
2300 | | const char *raw, size_t len); |
2301 | | |
2302 | | /** Set the value to null. |
2303 | | Returns false if input is NULL. |
2304 | | @warning This function should not be used on an existing object or array. */ |
2305 | | yyjson_api_inline bool yyjson_mut_set_null(yyjson_mut_val *val); |
2306 | | |
2307 | | /** Set the value to bool. |
2308 | | Returns false if input is NULL. |
2309 | | @warning This function should not be used on an existing object or array. */ |
2310 | | yyjson_api_inline bool yyjson_mut_set_bool(yyjson_mut_val *val, bool num); |
2311 | | |
2312 | | /** Set the value to uint. |
2313 | | Returns false if input is NULL. |
2314 | | @warning This function should not be used on an existing object or array. */ |
2315 | | yyjson_api_inline bool yyjson_mut_set_uint(yyjson_mut_val *val, uint64_t num); |
2316 | | |
2317 | | /** Set the value to sint. |
2318 | | Returns false if input is NULL. |
2319 | | @warning This function should not be used on an existing object or array. */ |
2320 | | yyjson_api_inline bool yyjson_mut_set_sint(yyjson_mut_val *val, int64_t num); |
2321 | | |
2322 | | /** Set the value to int. |
2323 | | Returns false if input is NULL. |
2324 | | @warning This function should not be used on an existing object or array. */ |
2325 | | yyjson_api_inline bool yyjson_mut_set_int(yyjson_mut_val *val, int num); |
2326 | | |
2327 | | /** Set the value to real. |
2328 | | Returns false if input is NULL. |
2329 | | @warning This function should not be used on an existing object or array. */ |
2330 | | yyjson_api_inline bool yyjson_mut_set_real(yyjson_mut_val *val, double num); |
2331 | | |
2332 | | /** Set the value to string (null-terminated). |
2333 | | Returns false if input is NULL. |
2334 | | @warning This function should not be used on an existing object or array. */ |
2335 | | yyjson_api_inline bool yyjson_mut_set_str(yyjson_mut_val *val, const char *str); |
2336 | | |
2337 | | /** Set the value to string (with length). |
2338 | | Returns false if input is NULL. |
2339 | | @warning This function should not be used on an existing object or array. */ |
2340 | | yyjson_api_inline bool yyjson_mut_set_strn(yyjson_mut_val *val, |
2341 | | const char *str, size_t len); |
2342 | | |
2343 | | /** Set the value to array. |
2344 | | Returns false if input is NULL. |
2345 | | @warning This function should not be used on an existing object or array. */ |
2346 | | yyjson_api_inline bool yyjson_mut_set_arr(yyjson_mut_val *val); |
2347 | | |
2348 | | /** Set the value to array. |
2349 | | Returns false if input is NULL. |
2350 | | @warning This function should not be used on an existing object or array. */ |
2351 | | yyjson_api_inline bool yyjson_mut_set_obj(yyjson_mut_val *val); |
2352 | | |
2353 | | |
2354 | | |
2355 | | /*============================================================================== |
2356 | | * Mutable JSON Value Creation API |
2357 | | *============================================================================*/ |
2358 | | |
2359 | | /** Creates and returns a raw value, returns NULL on error. |
2360 | | The `str` should be a null-terminated UTF-8 string. |
2361 | | |
2362 | | @warning The input string is not copied, you should keep this string |
2363 | | unmodified for the lifetime of this JSON document. */ |
2364 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_raw(yyjson_mut_doc *doc, |
2365 | | const char *str); |
2366 | | |
2367 | | /** Creates and returns a raw value, returns NULL on error. |
2368 | | The `str` should be a UTF-8 string, null-terminator is not required. |
2369 | | |
2370 | | @warning The input string is not copied, you should keep this string |
2371 | | unmodified for the lifetime of this JSON document. */ |
2372 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_rawn(yyjson_mut_doc *doc, |
2373 | | const char *str, |
2374 | | size_t len); |
2375 | | |
2376 | | /** Creates and returns a raw value, returns NULL on error. |
2377 | | The `str` should be a null-terminated UTF-8 string. |
2378 | | The input string is copied and held by the document. */ |
2379 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_rawcpy(yyjson_mut_doc *doc, |
2380 | | const char *str); |
2381 | | |
2382 | | /** Creates and returns a raw value, returns NULL on error. |
2383 | | The `str` should be a UTF-8 string, null-terminator is not required. |
2384 | | The input string is copied and held by the document. */ |
2385 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_rawncpy(yyjson_mut_doc *doc, |
2386 | | const char *str, |
2387 | | size_t len); |
2388 | | |
2389 | | /** Creates and returns a null value, returns NULL on error. */ |
2390 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_null(yyjson_mut_doc *doc); |
2391 | | |
2392 | | /** Creates and returns a true value, returns NULL on error. */ |
2393 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_true(yyjson_mut_doc *doc); |
2394 | | |
2395 | | /** Creates and returns a false value, returns NULL on error. */ |
2396 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_false(yyjson_mut_doc *doc); |
2397 | | |
2398 | | /** Creates and returns a bool value, returns NULL on error. */ |
2399 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_bool(yyjson_mut_doc *doc, |
2400 | | bool val); |
2401 | | |
2402 | | /** Creates and returns an unsigned integer value, returns NULL on error. */ |
2403 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_uint(yyjson_mut_doc *doc, |
2404 | | uint64_t num); |
2405 | | |
2406 | | /** Creates and returns a signed integer value, returns NULL on error. */ |
2407 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_sint(yyjson_mut_doc *doc, |
2408 | | int64_t num); |
2409 | | |
2410 | | /** Creates and returns a signed integer value, returns NULL on error. */ |
2411 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_int(yyjson_mut_doc *doc, |
2412 | | int64_t num); |
2413 | | |
2414 | | /** Creates and returns an real number value, returns NULL on error. */ |
2415 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_real(yyjson_mut_doc *doc, |
2416 | | double num); |
2417 | | |
2418 | | /** Creates and returns a string value, returns NULL on error. |
2419 | | The `str` should be a null-terminated UTF-8 string. |
2420 | | @warning The input string is not copied, you should keep this string |
2421 | | unmodified for the lifetime of this JSON document. */ |
2422 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_str(yyjson_mut_doc *doc, |
2423 | | const char *str); |
2424 | | |
2425 | | /** Creates and returns a string value, returns NULL on error. |
2426 | | The `str` should be a UTF-8 string, null-terminator is not required. |
2427 | | @warning The input string is not copied, you should keep this string |
2428 | | unmodified for the lifetime of this JSON document. */ |
2429 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_strn(yyjson_mut_doc *doc, |
2430 | | const char *str, |
2431 | | size_t len); |
2432 | | |
2433 | | /** Creates and returns a string value, returns NULL on error. |
2434 | | The `str` should be a null-terminated UTF-8 string. |
2435 | | The input string is copied and held by the document. */ |
2436 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_strcpy(yyjson_mut_doc *doc, |
2437 | | const char *str); |
2438 | | |
2439 | | /** Creates and returns a string value, returns NULL on error. |
2440 | | The `str` should be a UTF-8 string, null-terminator is not required. |
2441 | | The input string is copied and held by the document. */ |
2442 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_strncpy(yyjson_mut_doc *doc, |
2443 | | const char *str, |
2444 | | size_t len); |
2445 | | |
2446 | | |
2447 | | |
2448 | | /*============================================================================== |
2449 | | * Mutable JSON Array API |
2450 | | *============================================================================*/ |
2451 | | |
2452 | | /** Returns the number of elements in this array. |
2453 | | Returns 0 if `arr` is NULL or type is not array. */ |
2454 | | yyjson_api_inline size_t yyjson_mut_arr_size(yyjson_mut_val *arr); |
2455 | | |
2456 | | /** Returns the element at the specified position in this array. |
2457 | | Returns NULL if array is NULL/empty or the index is out of bounds. |
2458 | | @warning This function takes a linear search time. */ |
2459 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_get(yyjson_mut_val *arr, |
2460 | | size_t idx); |
2461 | | |
2462 | | /** Returns the first element of this array. |
2463 | | Returns NULL if `arr` is NULL/empty or type is not array. */ |
2464 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_get_first(yyjson_mut_val *arr); |
2465 | | |
2466 | | /** Returns the last element of this array. |
2467 | | Returns NULL if `arr` is NULL/empty or type is not array. */ |
2468 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_get_last(yyjson_mut_val *arr); |
2469 | | |
2470 | | |
2471 | | |
2472 | | /*============================================================================== |
2473 | | * Mutable JSON Array Iterator API |
2474 | | *============================================================================*/ |
2475 | | |
2476 | | /** |
2477 | | A mutable JSON array iterator. |
2478 | | |
2479 | | @warning You should not modify the array while iterating over it, but you can |
2480 | | use `yyjson_mut_arr_iter_remove()` to remove current value. |
2481 | | |
2482 | | @par Example |
2483 | | @code |
2484 | | yyjson_mut_val *val; |
2485 | | yyjson_mut_arr_iter iter = yyjson_mut_arr_iter_with(arr); |
2486 | | while ((val = yyjson_mut_arr_iter_next(&iter))) { |
2487 | | your_func(val); |
2488 | | if (your_val_is_unused(val)) { |
2489 | | yyjson_mut_arr_iter_remove(&iter); |
2490 | | } |
2491 | | } |
2492 | | @endcode |
2493 | | */ |
2494 | | typedef struct yyjson_mut_arr_iter { |
2495 | | size_t idx; /**< next value's index */ |
2496 | | size_t max; /**< maximum index (arr.size) */ |
2497 | | yyjson_mut_val *cur; /**< current value */ |
2498 | | yyjson_mut_val *pre; /**< previous value */ |
2499 | | yyjson_mut_val *arr; /**< the array being iterated */ |
2500 | | } yyjson_mut_arr_iter; |
2501 | | |
2502 | | /** |
2503 | | Initialize an iterator for this array. |
2504 | | |
2505 | | @param arr The array to be iterated over. |
2506 | | If this parameter is NULL or not an array, `iter` will be set to empty. |
2507 | | @param iter The iterator to be initialized. |
2508 | | If this parameter is NULL, the function will fail and return false. |
2509 | | @return true if the `iter` has been successfully initialized. |
2510 | | |
2511 | | @note The iterator does not need to be destroyed. |
2512 | | */ |
2513 | | yyjson_api_inline bool yyjson_mut_arr_iter_init(yyjson_mut_val *arr, |
2514 | | yyjson_mut_arr_iter *iter); |
2515 | | |
2516 | | /** |
2517 | | Create an iterator with an array , same as `yyjson_mut_arr_iter_init()`. |
2518 | | |
2519 | | @param arr The array to be iterated over. |
2520 | | If this parameter is NULL or not an array, an empty iterator will returned. |
2521 | | @return A new iterator for the array. |
2522 | | |
2523 | | @note The iterator does not need to be destroyed. |
2524 | | */ |
2525 | | yyjson_api_inline yyjson_mut_arr_iter yyjson_mut_arr_iter_with( |
2526 | | yyjson_mut_val *arr); |
2527 | | |
2528 | | /** |
2529 | | Returns whether the iteration has more elements. |
2530 | | If `iter` is NULL, this function will return false. |
2531 | | */ |
2532 | | yyjson_api_inline bool yyjson_mut_arr_iter_has_next( |
2533 | | yyjson_mut_arr_iter *iter); |
2534 | | |
2535 | | /** |
2536 | | Returns the next element in the iteration, or NULL on end. |
2537 | | If `iter` is NULL, this function will return NULL. |
2538 | | */ |
2539 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_iter_next( |
2540 | | yyjson_mut_arr_iter *iter); |
2541 | | |
2542 | | /** |
2543 | | Removes and returns current element in the iteration. |
2544 | | If `iter` is NULL, this function will return NULL. |
2545 | | */ |
2546 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_iter_remove( |
2547 | | yyjson_mut_arr_iter *iter); |
2548 | | |
2549 | | /** |
2550 | | Macro for iterating over an array. |
2551 | | It works like iterator, but with a more intuitive API. |
2552 | | |
2553 | | @warning You should not modify the array while iterating over it. |
2554 | | |
2555 | | @par Example |
2556 | | @code |
2557 | | size_t idx, max; |
2558 | | yyjson_mut_val *val; |
2559 | | yyjson_mut_arr_foreach(arr, idx, max, val) { |
2560 | | your_func(idx, val); |
2561 | | } |
2562 | | @endcode |
2563 | | */ |
2564 | | #define yyjson_mut_arr_foreach(arr, idx, max, val) \ |
2565 | | for ((idx) = 0, \ |
2566 | | (max) = yyjson_mut_arr_size(arr), \ |
2567 | | (val) = yyjson_mut_arr_get_first(arr); \ |
2568 | | (idx) < (max); \ |
2569 | | (idx)++, \ |
2570 | | (val) = (val)->next) |
2571 | | |
2572 | | |
2573 | | |
2574 | | /*============================================================================== |
2575 | | * Mutable JSON Array Creation API |
2576 | | *============================================================================*/ |
2577 | | |
2578 | | /** |
2579 | | Creates and returns an empty mutable array. |
2580 | | @param doc A mutable document, used for memory allocation only. |
2581 | | @return The new array. NULL if input is NULL or memory allocation failed. |
2582 | | */ |
2583 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr(yyjson_mut_doc *doc); |
2584 | | |
2585 | | /** |
2586 | | Creates and returns a new mutable array with the given boolean values. |
2587 | | |
2588 | | @param doc A mutable document, used for memory allocation only. |
2589 | | If this parameter is NULL, the function will fail and return NULL. |
2590 | | @param vals A C array of boolean values. |
2591 | | @param count The value count. If this value is 0, an empty array will return. |
2592 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2593 | | |
2594 | | @par Example |
2595 | | @code |
2596 | | const bool vals[3] = { true, false, true }; |
2597 | | yyjson_mut_val *arr = yyjson_mut_arr_with_bool(doc, vals, 3); |
2598 | | @endcode |
2599 | | */ |
2600 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_bool( |
2601 | | yyjson_mut_doc *doc, const bool *vals, size_t count); |
2602 | | |
2603 | | /** |
2604 | | Creates and returns a new mutable array with the given sint numbers. |
2605 | | |
2606 | | @param doc A mutable document, used for memory allocation only. |
2607 | | If this parameter is NULL, the function will fail and return NULL. |
2608 | | @param vals A C array of sint numbers. |
2609 | | @param count The number count. If this value is 0, an empty array will return. |
2610 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2611 | | |
2612 | | @par Example |
2613 | | @code |
2614 | | const int64_t vals[3] = { -1, 0, 1 }; |
2615 | | yyjson_mut_val *arr = yyjson_mut_arr_with_sint64(doc, vals, 3); |
2616 | | @endcode |
2617 | | */ |
2618 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_sint( |
2619 | | yyjson_mut_doc *doc, const int64_t *vals, size_t count); |
2620 | | |
2621 | | /** |
2622 | | Creates and returns a new mutable array with the given uint numbers. |
2623 | | |
2624 | | @param doc A mutable document, used for memory allocation only. |
2625 | | If this parameter is NULL, the function will fail and return NULL. |
2626 | | @param vals A C array of uint numbers. |
2627 | | @param count The number count. If this value is 0, an empty array will return. |
2628 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2629 | | |
2630 | | @par Example |
2631 | | @code |
2632 | | const uint64_t vals[3] = { 0, 1, 0 }; |
2633 | | yyjson_mut_val *arr = yyjson_mut_arr_with_uint(doc, vals, 3); |
2634 | | @endcode |
2635 | | */ |
2636 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_uint( |
2637 | | yyjson_mut_doc *doc, const uint64_t *vals, size_t count); |
2638 | | |
2639 | | /** |
2640 | | Creates and returns a new mutable array with the given real numbers. |
2641 | | |
2642 | | @param doc A mutable document, used for memory allocation only. |
2643 | | If this parameter is NULL, the function will fail and return NULL. |
2644 | | @param vals A C array of real numbers. |
2645 | | @param count The number count. If this value is 0, an empty array will return. |
2646 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2647 | | |
2648 | | @par Example |
2649 | | @code |
2650 | | const double vals[3] = { 0.1, 0.2, 0.3 }; |
2651 | | yyjson_mut_val *arr = yyjson_mut_arr_with_real(doc, vals, 3); |
2652 | | @endcode |
2653 | | */ |
2654 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_real( |
2655 | | yyjson_mut_doc *doc, const double *vals, size_t count); |
2656 | | |
2657 | | /** |
2658 | | Creates and returns a new mutable array with the given int8 numbers. |
2659 | | |
2660 | | @param doc A mutable document, used for memory allocation only. |
2661 | | If this parameter is NULL, the function will fail and return NULL. |
2662 | | @param vals A C array of int8 numbers. |
2663 | | @param count The number count. If this value is 0, an empty array will return. |
2664 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2665 | | |
2666 | | @par Example |
2667 | | @code |
2668 | | const int8_t vals[3] = { -1, 0, 1 }; |
2669 | | yyjson_mut_val *arr = yyjson_mut_arr_with_sint8(doc, vals, 3); |
2670 | | @endcode |
2671 | | */ |
2672 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_sint8( |
2673 | | yyjson_mut_doc *doc, const int8_t *vals, size_t count); |
2674 | | |
2675 | | /** |
2676 | | Creates and returns a new mutable array with the given int16 numbers. |
2677 | | |
2678 | | @param doc A mutable document, used for memory allocation only. |
2679 | | If this parameter is NULL, the function will fail and return NULL. |
2680 | | @param vals A C array of int16 numbers. |
2681 | | @param count The number count. If this value is 0, an empty array will return. |
2682 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2683 | | |
2684 | | @par Example |
2685 | | @code |
2686 | | const int16_t vals[3] = { -1, 0, 1 }; |
2687 | | yyjson_mut_val *arr = yyjson_mut_arr_with_sint16(doc, vals, 3); |
2688 | | @endcode |
2689 | | */ |
2690 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_sint16( |
2691 | | yyjson_mut_doc *doc, const int16_t *vals, size_t count); |
2692 | | |
2693 | | /** |
2694 | | Creates and returns a new mutable array with the given int32 numbers. |
2695 | | |
2696 | | @param doc A mutable document, used for memory allocation only. |
2697 | | If this parameter is NULL, the function will fail and return NULL. |
2698 | | @param vals A C array of int32 numbers. |
2699 | | @param count The number count. If this value is 0, an empty array will return. |
2700 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2701 | | |
2702 | | @par Example |
2703 | | @code |
2704 | | const int32_t vals[3] = { -1, 0, 1 }; |
2705 | | yyjson_mut_val *arr = yyjson_mut_arr_with_sint32(doc, vals, 3); |
2706 | | @endcode |
2707 | | */ |
2708 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_sint32( |
2709 | | yyjson_mut_doc *doc, const int32_t *vals, size_t count); |
2710 | | |
2711 | | /** |
2712 | | Creates and returns a new mutable array with the given int64 numbers. |
2713 | | |
2714 | | @param doc A mutable document, used for memory allocation only. |
2715 | | If this parameter is NULL, the function will fail and return NULL. |
2716 | | @param vals A C array of int64 numbers. |
2717 | | @param count The number count. If this value is 0, an empty array will return. |
2718 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2719 | | |
2720 | | @par Example |
2721 | | @code |
2722 | | const int64_t vals[3] = { -1, 0, 1 }; |
2723 | | yyjson_mut_val *arr = yyjson_mut_arr_with_sint64(doc, vals, 3); |
2724 | | @endcode |
2725 | | */ |
2726 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_sint64( |
2727 | | yyjson_mut_doc *doc, const int64_t *vals, size_t count); |
2728 | | |
2729 | | /** |
2730 | | Creates and returns a new mutable array with the given uint8 numbers. |
2731 | | |
2732 | | @param doc A mutable document, used for memory allocation only. |
2733 | | If this parameter is NULL, the function will fail and return NULL. |
2734 | | @param vals A C array of uint8 numbers. |
2735 | | @param count The number count. If this value is 0, an empty array will return. |
2736 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2737 | | |
2738 | | @par Example |
2739 | | @code |
2740 | | const uint8_t vals[3] = { 0, 1, 0 }; |
2741 | | yyjson_mut_val *arr = yyjson_mut_arr_with_uint8(doc, vals, 3); |
2742 | | @endcode |
2743 | | */ |
2744 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_uint8( |
2745 | | yyjson_mut_doc *doc, const uint8_t *vals, size_t count); |
2746 | | |
2747 | | /** |
2748 | | Creates and returns a new mutable array with the given uint16 numbers. |
2749 | | |
2750 | | @param doc A mutable document, used for memory allocation only. |
2751 | | If this parameter is NULL, the function will fail and return NULL. |
2752 | | @param vals A C array of uint16 numbers. |
2753 | | @param count The number count. If this value is 0, an empty array will return. |
2754 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2755 | | |
2756 | | @par Example |
2757 | | @code |
2758 | | const uint16_t vals[3] = { 0, 1, 0 }; |
2759 | | yyjson_mut_val *arr = yyjson_mut_arr_with_uint16(doc, vals, 3); |
2760 | | @endcode |
2761 | | */ |
2762 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_uint16( |
2763 | | yyjson_mut_doc *doc, const uint16_t *vals, size_t count); |
2764 | | |
2765 | | /** |
2766 | | Creates and returns a new mutable array with the given uint32 numbers. |
2767 | | |
2768 | | @param doc A mutable document, used for memory allocation only. |
2769 | | If this parameter is NULL, the function will fail and return NULL. |
2770 | | @param vals A C array of uint32 numbers. |
2771 | | @param count The number count. If this value is 0, an empty array will return. |
2772 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2773 | | |
2774 | | @par Example |
2775 | | @code |
2776 | | const uint32_t vals[3] = { 0, 1, 0 }; |
2777 | | yyjson_mut_val *arr = yyjson_mut_arr_with_uint32(doc, vals, 3); |
2778 | | @endcode |
2779 | | */ |
2780 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_uint32( |
2781 | | yyjson_mut_doc *doc, const uint32_t *vals, size_t count); |
2782 | | |
2783 | | /** |
2784 | | Creates and returns a new mutable array with the given uint64 numbers. |
2785 | | |
2786 | | @param doc A mutable document, used for memory allocation only. |
2787 | | If this parameter is NULL, the function will fail and return NULL. |
2788 | | @param vals A C array of uint64 numbers. |
2789 | | @param count The number count. If this value is 0, an empty array will return. |
2790 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2791 | | |
2792 | | @par Example |
2793 | | @code |
2794 | | const uint64_t vals[3] = { 0, 1, 0 }; |
2795 | | yyjson_mut_val *arr = yyjson_mut_arr_with_uint64(doc, vals, 3); |
2796 | | @endcode |
2797 | | */ |
2798 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_uint64( |
2799 | | yyjson_mut_doc *doc, const uint64_t *vals, size_t count); |
2800 | | |
2801 | | /** |
2802 | | Creates and returns a new mutable array with the given float numbers. |
2803 | | |
2804 | | @param doc A mutable document, used for memory allocation only. |
2805 | | If this parameter is NULL, the function will fail and return NULL. |
2806 | | @param vals A C array of float numbers. |
2807 | | @param count The number count. If this value is 0, an empty array will return. |
2808 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2809 | | |
2810 | | @par Example |
2811 | | @code |
2812 | | const float vals[3] = { -1.0f, 0.0f, 1.0f }; |
2813 | | yyjson_mut_val *arr = yyjson_mut_arr_with_float(doc, vals, 3); |
2814 | | @endcode |
2815 | | */ |
2816 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_float( |
2817 | | yyjson_mut_doc *doc, const float *vals, size_t count); |
2818 | | |
2819 | | /** |
2820 | | Creates and returns a new mutable array with the given double numbers. |
2821 | | |
2822 | | @param doc A mutable document, used for memory allocation only. |
2823 | | If this parameter is NULL, the function will fail and return NULL. |
2824 | | @param vals A C array of double numbers. |
2825 | | @param count The number count. If this value is 0, an empty array will return. |
2826 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2827 | | |
2828 | | @par Example |
2829 | | @code |
2830 | | const double vals[3] = { -1.0, 0.0, 1.0 }; |
2831 | | yyjson_mut_val *arr = yyjson_mut_arr_with_double(doc, vals, 3); |
2832 | | @endcode |
2833 | | */ |
2834 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_double( |
2835 | | yyjson_mut_doc *doc, const double *vals, size_t count); |
2836 | | |
2837 | | /** |
2838 | | Creates and returns a new mutable array with the given strings, these strings |
2839 | | will not be copied. |
2840 | | |
2841 | | @param doc A mutable document, used for memory allocation only. |
2842 | | If this parameter is NULL, the function will fail and return NULL. |
2843 | | @param vals A C array of UTF-8 null-terminator strings. |
2844 | | If this array contains NULL, the function will fail and return NULL. |
2845 | | @param count The number of values in `vals`. |
2846 | | If this value is 0, an empty array will return. |
2847 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2848 | | |
2849 | | @warning The input strings are not copied, you should keep these strings |
2850 | | unmodified for the lifetime of this JSON document. If these strings will be |
2851 | | modified, you should use `yyjson_mut_arr_with_strcpy()` instead. |
2852 | | |
2853 | | @par Example |
2854 | | @code |
2855 | | const char *vals[3] = { "a", "b", "c" }; |
2856 | | yyjson_mut_val *arr = yyjson_mut_arr_with_str(doc, vals, 3); |
2857 | | @endcode |
2858 | | */ |
2859 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_str( |
2860 | | yyjson_mut_doc *doc, const char **vals, size_t count); |
2861 | | |
2862 | | /** |
2863 | | Creates and returns a new mutable array with the given strings and string |
2864 | | lengths, these strings will not be copied. |
2865 | | |
2866 | | @param doc A mutable document, used for memory allocation only. |
2867 | | If this parameter is NULL, the function will fail and return NULL. |
2868 | | @param vals A C array of UTF-8 strings, null-terminator is not required. |
2869 | | If this array contains NULL, the function will fail and return NULL. |
2870 | | @param lens A C array of string lengths, in bytes. |
2871 | | @param count The number of strings in `vals`. |
2872 | | If this value is 0, an empty array will return. |
2873 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2874 | | |
2875 | | @warning The input strings are not copied, you should keep these strings |
2876 | | unmodified for the lifetime of this JSON document. If these strings will be |
2877 | | modified, you should use `yyjson_mut_arr_with_strncpy()` instead. |
2878 | | |
2879 | | @par Example |
2880 | | @code |
2881 | | const char *vals[3] = { "a", "bb", "c" }; |
2882 | | const size_t lens[3] = { 1, 2, 1 }; |
2883 | | yyjson_mut_val *arr = yyjson_mut_arr_with_strn(doc, vals, lens, 3); |
2884 | | @endcode |
2885 | | */ |
2886 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_strn( |
2887 | | yyjson_mut_doc *doc, const char **vals, const size_t *lens, size_t count); |
2888 | | |
2889 | | /** |
2890 | | Creates and returns a new mutable array with the given strings, these strings |
2891 | | will be copied. |
2892 | | |
2893 | | @param doc A mutable document, used for memory allocation only. |
2894 | | If this parameter is NULL, the function will fail and return NULL. |
2895 | | @param vals A C array of UTF-8 null-terminator strings. |
2896 | | If this array contains NULL, the function will fail and return NULL. |
2897 | | @param count The number of values in `vals`. |
2898 | | If this value is 0, an empty array will return. |
2899 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2900 | | |
2901 | | @par Example |
2902 | | @code |
2903 | | const char *vals[3] = { "a", "b", "c" }; |
2904 | | yyjson_mut_val *arr = yyjson_mut_arr_with_strcpy(doc, vals, 3); |
2905 | | @endcode |
2906 | | */ |
2907 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_strcpy( |
2908 | | yyjson_mut_doc *doc, const char **vals, size_t count); |
2909 | | |
2910 | | /** |
2911 | | Creates and returns a new mutable array with the given strings and string |
2912 | | lengths, these strings will be copied. |
2913 | | |
2914 | | @param doc A mutable document, used for memory allocation only. |
2915 | | If this parameter is NULL, the function will fail and return NULL. |
2916 | | @param vals A C array of UTF-8 strings, null-terminator is not required. |
2917 | | If this array contains NULL, the function will fail and return NULL. |
2918 | | @param lens A C array of string lengths, in bytes. |
2919 | | @param count The number of strings in `vals`. |
2920 | | If this value is 0, an empty array will return. |
2921 | | @return The new array. NULL if input is invalid or memory allocation failed. |
2922 | | |
2923 | | @par Example |
2924 | | @code |
2925 | | const char *vals[3] = { "a", "bb", "c" }; |
2926 | | const size_t lens[3] = { 1, 2, 1 }; |
2927 | | yyjson_mut_val *arr = yyjson_mut_arr_with_strn(doc, vals, lens, 3); |
2928 | | @endcode |
2929 | | */ |
2930 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_strncpy( |
2931 | | yyjson_mut_doc *doc, const char **vals, const size_t *lens, size_t count); |
2932 | | |
2933 | | |
2934 | | |
2935 | | /*============================================================================== |
2936 | | * Mutable JSON Array Modification API |
2937 | | *============================================================================*/ |
2938 | | |
2939 | | /** |
2940 | | Inserts a value into an array at a given index. |
2941 | | @param arr The array to which the value is to be inserted. |
2942 | | Returns false if it is NULL or not an array. |
2943 | | @param val The value to be inserted. Returns false if it is NULL. |
2944 | | @param idx The index to which to insert the new value. |
2945 | | Returns false if the index is out of range. |
2946 | | @return Whether successful. |
2947 | | @warning This function takes a linear search time. |
2948 | | */ |
2949 | | yyjson_api_inline bool yyjson_mut_arr_insert(yyjson_mut_val *arr, |
2950 | | yyjson_mut_val *val, size_t idx); |
2951 | | |
2952 | | /** |
2953 | | Inserts a value at the end of the array. |
2954 | | @param arr The array to which the value is to be inserted. |
2955 | | Returns false if it is NULL or not an array. |
2956 | | @param val The value to be inserted. Returns false if it is NULL. |
2957 | | @return Whether successful. |
2958 | | */ |
2959 | | yyjson_api_inline bool yyjson_mut_arr_append(yyjson_mut_val *arr, |
2960 | | yyjson_mut_val *val); |
2961 | | |
2962 | | /** |
2963 | | Inserts a value at the head of the array. |
2964 | | @param arr The array to which the value is to be inserted. |
2965 | | Returns false if it is NULL or not an array. |
2966 | | @param val The value to be inserted. Returns false if it is NULL. |
2967 | | @return Whether successful. |
2968 | | */ |
2969 | | yyjson_api_inline bool yyjson_mut_arr_prepend(yyjson_mut_val *arr, |
2970 | | yyjson_mut_val *val); |
2971 | | |
2972 | | /** |
2973 | | Replaces a value at index and returns old value. |
2974 | | @param arr The array to which the value is to be replaced. |
2975 | | Returns false if it is NULL or not an array. |
2976 | | @param idx The index to which to replace the value. |
2977 | | Returns false if the index is out of range. |
2978 | | @param val The new value to replace. Returns false if it is NULL. |
2979 | | @return Old value, or NULL on error. |
2980 | | @warning This function takes a linear search time. |
2981 | | */ |
2982 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_replace(yyjson_mut_val *arr, |
2983 | | size_t idx, |
2984 | | yyjson_mut_val *val); |
2985 | | |
2986 | | /** |
2987 | | Removes and returns a value at index. |
2988 | | @param arr The array from which the value is to be removed. |
2989 | | Returns false if it is NULL or not an array. |
2990 | | @param idx The index from which to remove the value. |
2991 | | Returns false if the index is out of range. |
2992 | | @return Old value, or NULL on error. |
2993 | | @warning This function takes a linear search time. |
2994 | | */ |
2995 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_remove(yyjson_mut_val *arr, |
2996 | | size_t idx); |
2997 | | |
2998 | | /** |
2999 | | Removes and returns the first value in this array. |
3000 | | @param arr The array from which the value is to be removed. |
3001 | | Returns false if it is NULL or not an array. |
3002 | | @return The first value, or NULL on error. |
3003 | | */ |
3004 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_remove_first( |
3005 | | yyjson_mut_val *arr); |
3006 | | |
3007 | | /** |
3008 | | Removes and returns the last value in this array. |
3009 | | @param arr The array from which the value is to be removed. |
3010 | | Returns false if it is NULL or not an array. |
3011 | | @return The last value, or NULL on error. |
3012 | | */ |
3013 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_remove_last( |
3014 | | yyjson_mut_val *arr); |
3015 | | |
3016 | | /** |
3017 | | Removes all values within a specified range in the array. |
3018 | | @param arr The array from which the value is to be removed. |
3019 | | Returns false if it is NULL or not an array. |
3020 | | @param idx The start index of the range (0 is the first). |
3021 | | @param len The number of items in the range (can be 0). |
3022 | | @return Whether successful. |
3023 | | @warning This function takes a linear search time. |
3024 | | */ |
3025 | | yyjson_api_inline bool yyjson_mut_arr_remove_range(yyjson_mut_val *arr, |
3026 | | size_t idx, size_t len); |
3027 | | |
3028 | | /** |
3029 | | Removes all values in this array. |
3030 | | @param arr The array from which all of the values are to be removed. |
3031 | | Returns false if it is NULL or not an array. |
3032 | | @return Whether successful. |
3033 | | */ |
3034 | | yyjson_api_inline bool yyjson_mut_arr_clear(yyjson_mut_val *arr); |
3035 | | |
3036 | | /** |
3037 | | Rotates values in this array for the given number of times. |
3038 | | For example: `[1,2,3,4,5]` rotate 2 is `[3,4,5,1,2]`. |
3039 | | @param arr The array to be rotated. |
3040 | | @param idx Index (or times) to rotate. |
3041 | | @warning This function takes a linear search time. |
3042 | | */ |
3043 | | yyjson_api_inline bool yyjson_mut_arr_rotate(yyjson_mut_val *arr, |
3044 | | size_t idx); |
3045 | | |
3046 | | |
3047 | | |
3048 | | /*============================================================================== |
3049 | | * Mutable JSON Array Modification Convenience API |
3050 | | *============================================================================*/ |
3051 | | |
3052 | | /** |
3053 | | Adds a value at the end of the array. |
3054 | | @param arr The array to which the value is to be inserted. |
3055 | | Returns false if it is NULL or not an array. |
3056 | | @param val The value to be inserted. Returns false if it is NULL. |
3057 | | @return Whether successful. |
3058 | | */ |
3059 | | yyjson_api_inline bool yyjson_mut_arr_add_val(yyjson_mut_val *arr, |
3060 | | yyjson_mut_val *val); |
3061 | | |
3062 | | /** |
3063 | | Adds a `null` value at the end of the array. |
3064 | | @param doc The `doc` is only used for memory allocation. |
3065 | | @param arr The array to which the value is to be inserted. |
3066 | | Returns false if it is NULL or not an array. |
3067 | | @return Whether successful. |
3068 | | */ |
3069 | | yyjson_api_inline bool yyjson_mut_arr_add_null(yyjson_mut_doc *doc, |
3070 | | yyjson_mut_val *arr); |
3071 | | |
3072 | | /** |
3073 | | Adds a `true` value at the end of the array. |
3074 | | @param doc The `doc` is only used for memory allocation. |
3075 | | @param arr The array to which the value is to be inserted. |
3076 | | Returns false if it is NULL or not an array. |
3077 | | @return Whether successful. |
3078 | | */ |
3079 | | yyjson_api_inline bool yyjson_mut_arr_add_true(yyjson_mut_doc *doc, |
3080 | | yyjson_mut_val *arr); |
3081 | | |
3082 | | /** |
3083 | | Adds a `false` value at the end of the array. |
3084 | | @param doc The `doc` is only used for memory allocation. |
3085 | | @param arr The array to which the value is to be inserted. |
3086 | | Returns false if it is NULL or not an array. |
3087 | | @return Whether successful. |
3088 | | */ |
3089 | | yyjson_api_inline bool yyjson_mut_arr_add_false(yyjson_mut_doc *doc, |
3090 | | yyjson_mut_val *arr); |
3091 | | |
3092 | | /** |
3093 | | Adds a bool value at the end of the array. |
3094 | | @param doc The `doc` is only used for memory allocation. |
3095 | | @param arr The array to which the value is to be inserted. |
3096 | | Returns false if it is NULL or not an array. |
3097 | | @param val The bool value to be added. |
3098 | | @return Whether successful. |
3099 | | */ |
3100 | | yyjson_api_inline bool yyjson_mut_arr_add_bool(yyjson_mut_doc *doc, |
3101 | | yyjson_mut_val *arr, |
3102 | | bool val); |
3103 | | |
3104 | | /** |
3105 | | Adds an unsigned integer value at the end of the array. |
3106 | | @param doc The `doc` is only used for memory allocation. |
3107 | | @param arr The array to which the value is to be inserted. |
3108 | | Returns false if it is NULL or not an array. |
3109 | | @param num The number to be added. |
3110 | | @return Whether successful. |
3111 | | */ |
3112 | | yyjson_api_inline bool yyjson_mut_arr_add_uint(yyjson_mut_doc *doc, |
3113 | | yyjson_mut_val *arr, |
3114 | | uint64_t num); |
3115 | | |
3116 | | /** |
3117 | | Adds a signed integer value at the end of the array. |
3118 | | @param doc The `doc` is only used for memory allocation. |
3119 | | @param arr The array to which the value is to be inserted. |
3120 | | Returns false if it is NULL or not an array. |
3121 | | @param num The number to be added. |
3122 | | @return Whether successful. |
3123 | | */ |
3124 | | yyjson_api_inline bool yyjson_mut_arr_add_sint(yyjson_mut_doc *doc, |
3125 | | yyjson_mut_val *arr, |
3126 | | int64_t num); |
3127 | | |
3128 | | /** |
3129 | | Adds a integer value at the end of the array. |
3130 | | @param doc The `doc` is only used for memory allocation. |
3131 | | @param arr The array to which the value is to be inserted. |
3132 | | Returns false if it is NULL or not an array. |
3133 | | @param num The number to be added. |
3134 | | @return Whether successful. |
3135 | | */ |
3136 | | yyjson_api_inline bool yyjson_mut_arr_add_int(yyjson_mut_doc *doc, |
3137 | | yyjson_mut_val *arr, |
3138 | | int64_t num); |
3139 | | |
3140 | | /** |
3141 | | Adds a double value at the end of the array. |
3142 | | @param doc The `doc` is only used for memory allocation. |
3143 | | @param arr The array to which the value is to be inserted. |
3144 | | Returns false if it is NULL or not an array. |
3145 | | @param num The number to be added. |
3146 | | @return Whether successful. |
3147 | | */ |
3148 | | yyjson_api_inline bool yyjson_mut_arr_add_real(yyjson_mut_doc *doc, |
3149 | | yyjson_mut_val *arr, |
3150 | | double num); |
3151 | | |
3152 | | /** |
3153 | | Adds a string value at the end of the array (no copy). |
3154 | | @param doc The `doc` is only used for memory allocation. |
3155 | | @param arr The array to which the value is to be inserted. |
3156 | | Returns false if it is NULL or not an array. |
3157 | | @param str A null-terminated UTF-8 string. |
3158 | | @return Whether successful. |
3159 | | @warning The input string is not copied, you should keep this string unmodified |
3160 | | for the lifetime of this JSON document. |
3161 | | */ |
3162 | | yyjson_api_inline bool yyjson_mut_arr_add_str(yyjson_mut_doc *doc, |
3163 | | yyjson_mut_val *arr, |
3164 | | const char *str); |
3165 | | |
3166 | | /** |
3167 | | Adds a string value at the end of the array (no copy). |
3168 | | @param doc The `doc` is only used for memory allocation. |
3169 | | @param arr The array to which the value is to be inserted. |
3170 | | Returns false if it is NULL or not an array. |
3171 | | @param str A UTF-8 string, null-terminator is not required. |
3172 | | @param len The length of the string, in bytes. |
3173 | | @return Whether successful. |
3174 | | @warning The input string is not copied, you should keep this string unmodified |
3175 | | for the lifetime of this JSON document. |
3176 | | */ |
3177 | | yyjson_api_inline bool yyjson_mut_arr_add_strn(yyjson_mut_doc *doc, |
3178 | | yyjson_mut_val *arr, |
3179 | | const char *str, |
3180 | | size_t len); |
3181 | | |
3182 | | /** |
3183 | | Adds a string value at the end of the array (copied). |
3184 | | @param doc The `doc` is only used for memory allocation. |
3185 | | @param arr The array to which the value is to be inserted. |
3186 | | Returns false if it is NULL or not an array. |
3187 | | @param str A null-terminated UTF-8 string. |
3188 | | @return Whether successful. |
3189 | | */ |
3190 | | yyjson_api_inline bool yyjson_mut_arr_add_strcpy(yyjson_mut_doc *doc, |
3191 | | yyjson_mut_val *arr, |
3192 | | const char *str); |
3193 | | |
3194 | | /** |
3195 | | Adds a string value at the end of the array (copied). |
3196 | | @param doc The `doc` is only used for memory allocation. |
3197 | | @param arr The array to which the value is to be inserted. |
3198 | | Returns false if it is NULL or not an array. |
3199 | | @param str A UTF-8 string, null-terminator is not required. |
3200 | | @param len The length of the string, in bytes. |
3201 | | @return Whether successful. |
3202 | | */ |
3203 | | yyjson_api_inline bool yyjson_mut_arr_add_strncpy(yyjson_mut_doc *doc, |
3204 | | yyjson_mut_val *arr, |
3205 | | const char *str, |
3206 | | size_t len); |
3207 | | |
3208 | | /** |
3209 | | Creates and adds a new array at the end of the array. |
3210 | | @param doc The `doc` is only used for memory allocation. |
3211 | | @param arr The array to which the value is to be inserted. |
3212 | | Returns false if it is NULL or not an array. |
3213 | | @return The new array, or NULL on error. |
3214 | | */ |
3215 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_add_arr(yyjson_mut_doc *doc, |
3216 | | yyjson_mut_val *arr); |
3217 | | |
3218 | | /** |
3219 | | Creates and adds a new object at the end of the array. |
3220 | | @param doc The `doc` is only used for memory allocation. |
3221 | | @param arr The array to which the value is to be inserted. |
3222 | | Returns false if it is NULL or not an array. |
3223 | | @return The new object, or NULL on error. |
3224 | | */ |
3225 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_add_obj(yyjson_mut_doc *doc, |
3226 | | yyjson_mut_val *arr); |
3227 | | |
3228 | | |
3229 | | |
3230 | | /*============================================================================== |
3231 | | * Mutable JSON Object API |
3232 | | *============================================================================*/ |
3233 | | |
3234 | | /** Returns the number of key-value pairs in this object. |
3235 | | Returns 0 if `obj` is NULL or type is not object. */ |
3236 | | yyjson_api_inline size_t yyjson_mut_obj_size(yyjson_mut_val *obj); |
3237 | | |
3238 | | /** Returns the value to which the specified key is mapped. |
3239 | | Returns NULL if this object contains no mapping for the key. |
3240 | | Returns NULL if `obj/key` is NULL, or type is not object. |
3241 | | |
3242 | | The `key` should be a null-terminated UTF-8 string. |
3243 | | |
3244 | | @warning This function takes a linear search time. */ |
3245 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_get(yyjson_mut_val *obj, |
3246 | | const char *key); |
3247 | | |
3248 | | /** Returns the value to which the specified key is mapped. |
3249 | | Returns NULL if this object contains no mapping for the key. |
3250 | | Returns NULL if `obj/key` is NULL, or type is not object. |
3251 | | |
3252 | | The `key` should be a UTF-8 string, null-terminator is not required. |
3253 | | The `key_len` should be the length of the key, in bytes. |
3254 | | |
3255 | | @warning This function takes a linear search time. */ |
3256 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_getn(yyjson_mut_val *obj, |
3257 | | const char *key, |
3258 | | size_t key_len); |
3259 | | |
3260 | | |
3261 | | |
3262 | | /*============================================================================== |
3263 | | * Mutable JSON Object Iterator API |
3264 | | *============================================================================*/ |
3265 | | |
3266 | | /** |
3267 | | A mutable JSON object iterator. |
3268 | | |
3269 | | @warning You should not modify the object while iterating over it, but you can |
3270 | | use `yyjson_mut_obj_iter_remove()` to remove current value. |
3271 | | |
3272 | | @par Example |
3273 | | @code |
3274 | | yyjson_mut_val *key, *val; |
3275 | | yyjson_mut_obj_iter iter = yyjson_mut_obj_iter_with(obj); |
3276 | | while ((key = yyjson_mut_obj_iter_next(&iter))) { |
3277 | | val = yyjson_mut_obj_iter_get_val(key); |
3278 | | your_func(key, val); |
3279 | | if (your_val_is_unused(key, val)) { |
3280 | | yyjson_mut_obj_iter_remove(&iter); |
3281 | | } |
3282 | | } |
3283 | | @endcode |
3284 | | |
3285 | | If the ordering of the keys is known at compile-time, you can use this method |
3286 | | to speed up value lookups: |
3287 | | @code |
3288 | | // {"k1":1, "k2": 3, "k3": 3} |
3289 | | yyjson_mut_val *key, *val; |
3290 | | yyjson_mut_obj_iter iter = yyjson_mut_obj_iter_with(obj); |
3291 | | yyjson_mut_val *v1 = yyjson_mut_obj_iter_get(&iter, "k1"); |
3292 | | yyjson_mut_val *v3 = yyjson_mut_obj_iter_get(&iter, "k3"); |
3293 | | @endcode |
3294 | | @see `yyjson_mut_obj_iter_get()` and `yyjson_mut_obj_iter_getn()` |
3295 | | */ |
3296 | | typedef struct yyjson_mut_obj_iter { |
3297 | | size_t idx; /**< next key's index */ |
3298 | | size_t max; /**< maximum key index (obj.size) */ |
3299 | | yyjson_mut_val *cur; /**< current key */ |
3300 | | yyjson_mut_val *pre; /**< previous key */ |
3301 | | yyjson_mut_val *obj; /**< the object being iterated */ |
3302 | | } yyjson_mut_obj_iter; |
3303 | | |
3304 | | /** |
3305 | | Initialize an iterator for this object. |
3306 | | |
3307 | | @param obj The object to be iterated over. |
3308 | | If this parameter is NULL or not an array, `iter` will be set to empty. |
3309 | | @param iter The iterator to be initialized. |
3310 | | If this parameter is NULL, the function will fail and return false. |
3311 | | @return true if the `iter` has been successfully initialized. |
3312 | | |
3313 | | @note The iterator does not need to be destroyed. |
3314 | | */ |
3315 | | yyjson_api_inline bool yyjson_mut_obj_iter_init(yyjson_mut_val *obj, |
3316 | | yyjson_mut_obj_iter *iter); |
3317 | | |
3318 | | /** |
3319 | | Create an iterator with an object, same as `yyjson_obj_iter_init()`. |
3320 | | |
3321 | | @param obj The object to be iterated over. |
3322 | | If this parameter is NULL or not an object, an empty iterator will returned. |
3323 | | @return A new iterator for the object. |
3324 | | |
3325 | | @note The iterator does not need to be destroyed. |
3326 | | */ |
3327 | | yyjson_api_inline yyjson_mut_obj_iter yyjson_mut_obj_iter_with( |
3328 | | yyjson_mut_val *obj); |
3329 | | |
3330 | | /** |
3331 | | Returns whether the iteration has more elements. |
3332 | | If `iter` is NULL, this function will return false. |
3333 | | */ |
3334 | | yyjson_api_inline bool yyjson_mut_obj_iter_has_next( |
3335 | | yyjson_mut_obj_iter *iter); |
3336 | | |
3337 | | /** |
3338 | | Returns the next key in the iteration, or NULL on end. |
3339 | | If `iter` is NULL, this function will return NULL. |
3340 | | */ |
3341 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_iter_next( |
3342 | | yyjson_mut_obj_iter *iter); |
3343 | | |
3344 | | /** |
3345 | | Returns the value for key inside the iteration. |
3346 | | If `iter` is NULL, this function will return NULL. |
3347 | | */ |
3348 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_iter_get_val( |
3349 | | yyjson_mut_val *key); |
3350 | | |
3351 | | /** |
3352 | | Removes current key-value pair in the iteration, returns the removed value. |
3353 | | If `iter` is NULL, this function will return NULL. |
3354 | | */ |
3355 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_iter_remove( |
3356 | | yyjson_mut_obj_iter *iter); |
3357 | | |
3358 | | /** |
3359 | | Iterates to a specified key and returns the value. |
3360 | | |
3361 | | This function does the same thing as `yyjson_mut_obj_get()`, but is much faster |
3362 | | if the ordering of the keys is known at compile-time and you are using the same |
3363 | | order to look up the values. If the key exists in this object, then the |
3364 | | iterator will stop at the next key, otherwise the iterator will not change and |
3365 | | NULL is returned. |
3366 | | |
3367 | | @param iter The object iterator, should not be NULL. |
3368 | | @param key The key, should be a UTF-8 string with null-terminator. |
3369 | | @return The value to which the specified key is mapped. |
3370 | | NULL if this object contains no mapping for the key or input is invalid. |
3371 | | |
3372 | | @warning This function takes a linear search time if the key is not nearby. |
3373 | | */ |
3374 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_iter_get( |
3375 | | yyjson_mut_obj_iter *iter, const char *key); |
3376 | | |
3377 | | /** |
3378 | | Iterates to a specified key and returns the value. |
3379 | | |
3380 | | This function does the same thing as `yyjson_mut_obj_getn()` but is much faster |
3381 | | if the ordering of the keys is known at compile-time and you are using the same |
3382 | | order to look up the values. If the key exists in this object, then the |
3383 | | iterator will stop at the next key, otherwise the iterator will not change and |
3384 | | NULL is returned. |
3385 | | |
3386 | | @param iter The object iterator, should not be NULL. |
3387 | | @param key The key, should be a UTF-8 string, null-terminator is not required. |
3388 | | @param key_len The the length of `key`, in bytes. |
3389 | | @return The value to which the specified key is mapped. |
3390 | | NULL if this object contains no mapping for the key or input is invalid. |
3391 | | |
3392 | | @warning This function takes a linear search time if the key is not nearby. |
3393 | | */ |
3394 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_iter_getn( |
3395 | | yyjson_mut_obj_iter *iter, const char *key, size_t key_len); |
3396 | | |
3397 | | /** |
3398 | | Macro for iterating over an object. |
3399 | | It works like iterator, but with a more intuitive API. |
3400 | | |
3401 | | @warning You should not modify the object while iterating over it. |
3402 | | |
3403 | | @par Example |
3404 | | @code |
3405 | | size_t idx, max; |
3406 | | yyjson_val *key, *val; |
3407 | | yyjson_obj_foreach(obj, idx, max, key, val) { |
3408 | | your_func(key, val); |
3409 | | } |
3410 | | @endcode |
3411 | | */ |
3412 | | #define yyjson_mut_obj_foreach(obj, idx, max, key, val) \ |
3413 | 0 | for ((idx) = 0, \ |
3414 | 0 | (max) = yyjson_mut_obj_size(obj), \ |
3415 | 0 | (key) = (max) ? ((yyjson_mut_val *)(obj)->uni.ptr)->next->next : NULL, \ |
3416 | 0 | (val) = (key) ? (key)->next : NULL; \ |
3417 | 0 | (idx) < (max); \ |
3418 | 0 | (idx)++, \ |
3419 | 0 | (key) = (val)->next, \ |
3420 | 0 | (val) = (key)->next) |
3421 | | |
3422 | | |
3423 | | |
3424 | | /*============================================================================== |
3425 | | * Mutable JSON Object Creation API |
3426 | | *============================================================================*/ |
3427 | | |
3428 | | /** Creates and returns a mutable object, returns NULL on error. */ |
3429 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj(yyjson_mut_doc *doc); |
3430 | | |
3431 | | /** |
3432 | | Creates and returns a mutable object with keys and values, returns NULL on |
3433 | | error. The keys and values are not copied. The strings should be a |
3434 | | null-terminated UTF-8 string. |
3435 | | |
3436 | | @warning The input string is not copied, you should keep this string |
3437 | | unmodified for the lifetime of this JSON document. |
3438 | | |
3439 | | @par Example |
3440 | | @code |
3441 | | const char *keys[2] = { "id", "name" }; |
3442 | | const char *vals[2] = { "01", "Harry" }; |
3443 | | yyjson_mut_val *obj = yyjson_mut_obj_with_str(doc, keys, vals, 2); |
3444 | | @endcode |
3445 | | */ |
3446 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_with_str(yyjson_mut_doc *doc, |
3447 | | const char **keys, |
3448 | | const char **vals, |
3449 | | size_t count); |
3450 | | |
3451 | | /** |
3452 | | Creates and returns a mutable object with key-value pairs and pair count, |
3453 | | returns NULL on error. The keys and values are not copied. The strings should |
3454 | | be a null-terminated UTF-8 string. |
3455 | | |
3456 | | @warning The input string is not copied, you should keep this string |
3457 | | unmodified for the lifetime of this JSON document. |
3458 | | |
3459 | | @par Example |
3460 | | @code |
3461 | | const char *kv_pairs[4] = { "id", "01", "name", "Harry" }; |
3462 | | yyjson_mut_val *obj = yyjson_mut_obj_with_kv(doc, kv_pairs, 2); |
3463 | | @endcode |
3464 | | */ |
3465 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_with_kv(yyjson_mut_doc *doc, |
3466 | | const char **kv_pairs, |
3467 | | size_t pair_count); |
3468 | | |
3469 | | |
3470 | | |
3471 | | /*============================================================================== |
3472 | | * Mutable JSON Object Modification API |
3473 | | *============================================================================*/ |
3474 | | |
3475 | | /** |
3476 | | Adds a key-value pair at the end of the object. |
3477 | | This function allows duplicated key in one object. |
3478 | | @param obj The object to which the new key-value pair is to be added. |
3479 | | @param key The key, should be a string which is created by `yyjson_mut_str()`, |
3480 | | `yyjson_mut_strn()`, `yyjson_mut_strcpy()` or `yyjson_mut_strncpy()`. |
3481 | | @param val The value to add to the object. |
3482 | | @return Whether successful. |
3483 | | */ |
3484 | | yyjson_api_inline bool yyjson_mut_obj_add(yyjson_mut_val *obj, |
3485 | | yyjson_mut_val *key, |
3486 | | yyjson_mut_val *val); |
3487 | | /** |
3488 | | Sets a key-value pair at the end of the object. |
3489 | | This function may remove all key-value pairs for the given key before add. |
3490 | | @param obj The object to which the new key-value pair is to be added. |
3491 | | @param key The key, should be a string which is created by `yyjson_mut_str()`, |
3492 | | `yyjson_mut_strn()`, `yyjson_mut_strcpy()` or `yyjson_mut_strncpy()`. |
3493 | | @param val The value to add to the object. If this value is null, the behavior |
3494 | | is same as `yyjson_mut_obj_remove()`. |
3495 | | @return Whether successful. |
3496 | | */ |
3497 | | yyjson_api_inline bool yyjson_mut_obj_put(yyjson_mut_val *obj, |
3498 | | yyjson_mut_val *key, |
3499 | | yyjson_mut_val *val); |
3500 | | |
3501 | | /** |
3502 | | Inserts a key-value pair to the object at the given position. |
3503 | | This function allows duplicated key in one object. |
3504 | | @param obj The object to which the new key-value pair is to be added. |
3505 | | @param key The key, should be a string which is created by `yyjson_mut_str()`, |
3506 | | `yyjson_mut_strn()`, `yyjson_mut_strcpy()` or `yyjson_mut_strncpy()`. |
3507 | | @param val The value to add to the object. |
3508 | | @param idx The index to which to insert the new pair. |
3509 | | @return Whether successful. |
3510 | | */ |
3511 | | yyjson_api_inline bool yyjson_mut_obj_insert(yyjson_mut_val *obj, |
3512 | | yyjson_mut_val *key, |
3513 | | yyjson_mut_val *val, |
3514 | | size_t idx); |
3515 | | |
3516 | | /** |
3517 | | Removes all key-value pair from the object with given key. |
3518 | | @param obj The object from which the key-value pair is to be removed. |
3519 | | @param key The key, should be a string value. |
3520 | | @return The first matched value, or NULL if no matched value. |
3521 | | @warning This function takes a linear search time. |
3522 | | */ |
3523 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_remove(yyjson_mut_val *obj, |
3524 | | yyjson_mut_val *key); |
3525 | | |
3526 | | /** |
3527 | | Removes all key-value pair from the object with given key. |
3528 | | @param obj The object from which the key-value pair is to be removed. |
3529 | | @param key The key, should be a UTF-8 string with null-terminator. |
3530 | | @return The first matched value, or NULL if no matched value. |
3531 | | @warning This function takes a linear search time. |
3532 | | */ |
3533 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_remove_key( |
3534 | | yyjson_mut_val *obj, const char *key); |
3535 | | |
3536 | | /** |
3537 | | Removes all key-value pair from the object with given key. |
3538 | | @param obj The object from which the key-value pair is to be removed. |
3539 | | @param key The key, should be a UTF-8 string, null-terminator is not required. |
3540 | | @param key_len The length of the key. |
3541 | | @return The first matched value, or NULL if no matched value. |
3542 | | @warning This function takes a linear search time. |
3543 | | */ |
3544 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_remove_keyn( |
3545 | | yyjson_mut_val *obj, const char *key, size_t key_len); |
3546 | | |
3547 | | /** |
3548 | | Removes all key-value pairs in this object. |
3549 | | @param obj The object from which all of the values are to be removed. |
3550 | | @return Whether successful. |
3551 | | */ |
3552 | | yyjson_api_inline bool yyjson_mut_obj_clear(yyjson_mut_val *obj); |
3553 | | |
3554 | | /** |
3555 | | Replaces value from the object with given key. |
3556 | | If the key is not exist, or the value is NULL, it will fail. |
3557 | | @param obj The object to which the value is to be replaced. |
3558 | | @param key The key, should be a string value. |
3559 | | @param val The value to replace into the object. |
3560 | | @return Whether successful. |
3561 | | @warning This function takes a linear search time. |
3562 | | */ |
3563 | | yyjson_api_inline bool yyjson_mut_obj_replace(yyjson_mut_val *obj, |
3564 | | yyjson_mut_val *key, |
3565 | | yyjson_mut_val *val); |
3566 | | |
3567 | | /** |
3568 | | Rotates key-value pairs in the object for the given number of times. |
3569 | | For example: `{"a":1,"b":2,"c":3,"d":4}` rotate 1 is |
3570 | | `{"b":2,"c":3,"d":4,"a":1}`. |
3571 | | @param obj The object to be rotated. |
3572 | | @param idx Index (or times) to rotate. |
3573 | | @return Whether successful. |
3574 | | @warning This function takes a linear search time. |
3575 | | */ |
3576 | | yyjson_api_inline bool yyjson_mut_obj_rotate(yyjson_mut_val *obj, |
3577 | | size_t idx); |
3578 | | |
3579 | | |
3580 | | |
3581 | | /*============================================================================== |
3582 | | * Mutable JSON Object Modification Convenience API |
3583 | | *============================================================================*/ |
3584 | | |
3585 | | /** Adds a `null` value at the end of the object. |
3586 | | The `key` should be a null-terminated UTF-8 string. |
3587 | | This function allows duplicated key in one object. |
3588 | | |
3589 | | @warning The key string is not copied, you should keep the string |
3590 | | unmodified for the lifetime of this JSON document. */ |
3591 | | yyjson_api_inline bool yyjson_mut_obj_add_null(yyjson_mut_doc *doc, |
3592 | | yyjson_mut_val *obj, |
3593 | | const char *key); |
3594 | | |
3595 | | /** Adds a `true` value at the end of the object. |
3596 | | The `key` should be a null-terminated UTF-8 string. |
3597 | | This function allows duplicated key in one object. |
3598 | | |
3599 | | @warning The key string is not copied, you should keep the string |
3600 | | unmodified for the lifetime of this JSON document. */ |
3601 | | yyjson_api_inline bool yyjson_mut_obj_add_true(yyjson_mut_doc *doc, |
3602 | | yyjson_mut_val *obj, |
3603 | | const char *key); |
3604 | | |
3605 | | /** Adds a `false` value at the end of the object. |
3606 | | The `key` should be a null-terminated UTF-8 string. |
3607 | | This function allows duplicated key in one object. |
3608 | | |
3609 | | @warning The key string is not copied, you should keep the string |
3610 | | unmodified for the lifetime of this JSON document. */ |
3611 | | yyjson_api_inline bool yyjson_mut_obj_add_false(yyjson_mut_doc *doc, |
3612 | | yyjson_mut_val *obj, |
3613 | | const char *key); |
3614 | | |
3615 | | /** Adds a bool value at the end of the object. |
3616 | | The `key` should be a null-terminated UTF-8 string. |
3617 | | This function allows duplicated key in one object. |
3618 | | |
3619 | | @warning The key string is not copied, you should keep the string |
3620 | | unmodified for the lifetime of this JSON document. */ |
3621 | | yyjson_api_inline bool yyjson_mut_obj_add_bool(yyjson_mut_doc *doc, |
3622 | | yyjson_mut_val *obj, |
3623 | | const char *key, bool val); |
3624 | | |
3625 | | /** Adds an unsigned integer value at the end of the object. |
3626 | | The `key` should be a null-terminated UTF-8 string. |
3627 | | This function allows duplicated key in one object. |
3628 | | |
3629 | | @warning The key string is not copied, you should keep the string |
3630 | | unmodified for the lifetime of this JSON document. */ |
3631 | | yyjson_api_inline bool yyjson_mut_obj_add_uint(yyjson_mut_doc *doc, |
3632 | | yyjson_mut_val *obj, |
3633 | | const char *key, uint64_t val); |
3634 | | |
3635 | | /** Adds a signed integer value at the end of the object. |
3636 | | The `key` should be a null-terminated UTF-8 string. |
3637 | | This function allows duplicated key in one object. |
3638 | | |
3639 | | @warning The key string is not copied, you should keep the string |
3640 | | unmodified for the lifetime of this JSON document. */ |
3641 | | yyjson_api_inline bool yyjson_mut_obj_add_sint(yyjson_mut_doc *doc, |
3642 | | yyjson_mut_val *obj, |
3643 | | const char *key, int64_t val); |
3644 | | |
3645 | | /** Adds an int value at the end of the object. |
3646 | | The `key` should be a null-terminated UTF-8 string. |
3647 | | This function allows duplicated key in one object. |
3648 | | |
3649 | | @warning The key string is not copied, you should keep the string |
3650 | | unmodified for the lifetime of this JSON document. */ |
3651 | | yyjson_api_inline bool yyjson_mut_obj_add_int(yyjson_mut_doc *doc, |
3652 | | yyjson_mut_val *obj, |
3653 | | const char *key, int64_t val); |
3654 | | |
3655 | | /** Adds a double value at the end of the object. |
3656 | | The `key` should be a null-terminated UTF-8 string. |
3657 | | This function allows duplicated key in one object. |
3658 | | |
3659 | | @warning The key string is not copied, you should keep the string |
3660 | | unmodified for the lifetime of this JSON document. */ |
3661 | | yyjson_api_inline bool yyjson_mut_obj_add_real(yyjson_mut_doc *doc, |
3662 | | yyjson_mut_val *obj, |
3663 | | const char *key, double val); |
3664 | | |
3665 | | /** Adds a string value at the end of the object. |
3666 | | The `key` and `val` should be null-terminated UTF-8 strings. |
3667 | | This function allows duplicated key in one object. |
3668 | | |
3669 | | @warning The key/value strings are not copied, you should keep these strings |
3670 | | unmodified for the lifetime of this JSON document. */ |
3671 | | yyjson_api_inline bool yyjson_mut_obj_add_str(yyjson_mut_doc *doc, |
3672 | | yyjson_mut_val *obj, |
3673 | | const char *key, const char *val); |
3674 | | |
3675 | | /** Adds a string value at the end of the object. |
3676 | | The `key` should be a null-terminated UTF-8 string. |
3677 | | The `val` should be a UTF-8 string, null-terminator is not required. |
3678 | | The `len` should be the length of the `val`, in bytes. |
3679 | | This function allows duplicated key in one object. |
3680 | | |
3681 | | @warning The key/value strings are not copied, you should keep these strings |
3682 | | unmodified for the lifetime of this JSON document. */ |
3683 | | yyjson_api_inline bool yyjson_mut_obj_add_strn(yyjson_mut_doc *doc, |
3684 | | yyjson_mut_val *obj, |
3685 | | const char *key, |
3686 | | const char *val, size_t len); |
3687 | | |
3688 | | /** Adds a string value at the end of the object. |
3689 | | The `key` and `val` should be null-terminated UTF-8 strings. |
3690 | | The value string is copied. |
3691 | | This function allows duplicated key in one object. |
3692 | | |
3693 | | @warning The key string is not copied, you should keep the string |
3694 | | unmodified for the lifetime of this JSON document. */ |
3695 | | yyjson_api_inline bool yyjson_mut_obj_add_strcpy(yyjson_mut_doc *doc, |
3696 | | yyjson_mut_val *obj, |
3697 | | const char *key, |
3698 | | const char *val); |
3699 | | |
3700 | | /** Adds a string value at the end of the object. |
3701 | | The `key` should be a null-terminated UTF-8 string. |
3702 | | The `val` should be a UTF-8 string, null-terminator is not required. |
3703 | | The `len` should be the length of the `val`, in bytes. |
3704 | | This function allows duplicated key in one object. |
3705 | | |
3706 | | @warning The key strings are not copied, you should keep these strings |
3707 | | unmodified for the lifetime of this JSON document. */ |
3708 | | yyjson_api_inline bool yyjson_mut_obj_add_strncpy(yyjson_mut_doc *doc, |
3709 | | yyjson_mut_val *obj, |
3710 | | const char *key, |
3711 | | const char *val, size_t len); |
3712 | | |
3713 | | /** |
3714 | | Creates and adds a new array to the target object. |
3715 | | The `key` should be a null-terminated UTF-8 string. |
3716 | | This function allows duplicated key in one object. |
3717 | | |
3718 | | @warning The key string is not copied, you should keep these strings |
3719 | | unmodified for the lifetime of this JSON document. |
3720 | | @return The new array, or NULL on error. |
3721 | | */ |
3722 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_add_arr(yyjson_mut_doc *doc, |
3723 | | yyjson_mut_val *obj, |
3724 | | const char *key); |
3725 | | |
3726 | | /** |
3727 | | Creates and adds a new object to the target object. |
3728 | | The `key` should be a null-terminated UTF-8 string. |
3729 | | This function allows duplicated key in one object. |
3730 | | |
3731 | | @warning The key string is not copied, you should keep these strings |
3732 | | unmodified for the lifetime of this JSON document. |
3733 | | @return The new object, or NULL on error. |
3734 | | */ |
3735 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_add_obj(yyjson_mut_doc *doc, |
3736 | | yyjson_mut_val *obj, |
3737 | | const char *key); |
3738 | | |
3739 | | /** Adds a JSON value at the end of the object. |
3740 | | The `key` should be a null-terminated UTF-8 string. |
3741 | | This function allows duplicated key in one object. |
3742 | | |
3743 | | @warning The key string is not copied, you should keep the string |
3744 | | unmodified for the lifetime of this JSON document. */ |
3745 | | yyjson_api_inline bool yyjson_mut_obj_add_val(yyjson_mut_doc *doc, |
3746 | | yyjson_mut_val *obj, |
3747 | | const char *key, |
3748 | | yyjson_mut_val *val); |
3749 | | |
3750 | | /** Removes all key-value pairs for the given key. |
3751 | | Returns the first value to which the specified key is mapped or NULL if this |
3752 | | object contains no mapping for the key. |
3753 | | The `key` should be a null-terminated UTF-8 string. |
3754 | | |
3755 | | @warning This function takes a linear search time. */ |
3756 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_remove_str( |
3757 | | yyjson_mut_val *obj, const char *key); |
3758 | | |
3759 | | /** Removes all key-value pairs for the given key. |
3760 | | Returns the first value to which the specified key is mapped or NULL if this |
3761 | | object contains no mapping for the key. |
3762 | | The `key` should be a UTF-8 string, null-terminator is not required. |
3763 | | The `len` should be the length of the key, in bytes. |
3764 | | |
3765 | | @warning This function takes a linear search time. */ |
3766 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_remove_strn( |
3767 | | yyjson_mut_val *obj, const char *key, size_t len); |
3768 | | |
3769 | | /** Replaces all matching keys with the new key. |
3770 | | Returns true if at least one key was renamed. |
3771 | | The `key` and `new_key` should be a null-terminated UTF-8 string. |
3772 | | The `new_key` is copied and held by doc. |
3773 | | |
3774 | | @warning This function takes a linear search time. |
3775 | | If `new_key` already exists, it will cause duplicate keys. |
3776 | | */ |
3777 | | yyjson_api_inline bool yyjson_mut_obj_rename_key(yyjson_mut_doc *doc, |
3778 | | yyjson_mut_val *obj, |
3779 | | const char *key, |
3780 | | const char *new_key); |
3781 | | |
3782 | | /** Replaces all matching keys with the new key. |
3783 | | Returns true if at least one key was renamed. |
3784 | | The `key` and `new_key` should be a UTF-8 string, |
3785 | | null-terminator is not required. The `new_key` is copied and held by doc. |
3786 | | |
3787 | | @warning This function takes a linear search time. |
3788 | | If `new_key` already exists, it will cause duplicate keys. |
3789 | | */ |
3790 | | yyjson_api_inline bool yyjson_mut_obj_rename_keyn(yyjson_mut_doc *doc, |
3791 | | yyjson_mut_val *obj, |
3792 | | const char *key, |
3793 | | size_t len, |
3794 | | const char *new_key, |
3795 | | size_t new_len); |
3796 | | |
3797 | | |
3798 | | |
3799 | | /*============================================================================== |
3800 | | * JSON Pointer API (RFC 6901) |
3801 | | * https://tools.ietf.org/html/rfc6901 |
3802 | | *============================================================================*/ |
3803 | | |
3804 | | /** JSON Pointer error code. */ |
3805 | | typedef uint32_t yyjson_ptr_code; |
3806 | | |
3807 | | /** No JSON pointer error. */ |
3808 | | static const yyjson_ptr_code YYJSON_PTR_ERR_NONE = 0; |
3809 | | |
3810 | | /** Invalid input parameter, such as NULL input. */ |
3811 | | static const yyjson_ptr_code YYJSON_PTR_ERR_PARAMETER = 1; |
3812 | | |
3813 | | /** JSON pointer syntax error, such as invalid escape, token no prefix. */ |
3814 | | static const yyjson_ptr_code YYJSON_PTR_ERR_SYNTAX = 2; |
3815 | | |
3816 | | /** JSON pointer resolve failed, such as index out of range, key not found. */ |
3817 | | static const yyjson_ptr_code YYJSON_PTR_ERR_RESOLVE = 3; |
3818 | | |
3819 | | /** Document's root is NULL, but it is required for the function call. */ |
3820 | | static const yyjson_ptr_code YYJSON_PTR_ERR_NULL_ROOT = 4; |
3821 | | |
3822 | | /** Cannot set root as the target is not a document. */ |
3823 | | static const yyjson_ptr_code YYJSON_PTR_ERR_SET_ROOT = 5; |
3824 | | |
3825 | | /** The memory allocation failed and a new value could not be created. */ |
3826 | | static const yyjson_ptr_code YYJSON_PTR_ERR_MEMORY_ALLOCATION = 6; |
3827 | | |
3828 | | /** Error information for JSON pointer. */ |
3829 | | typedef struct yyjson_ptr_err { |
3830 | | /** Error code, see `yyjson_ptr_code` for all possible values. */ |
3831 | | yyjson_ptr_code code; |
3832 | | /** Error message, constant, no need to free (NULL if no error). */ |
3833 | | const char *msg; |
3834 | | /** Error byte position for input JSON pointer (0 if no error). */ |
3835 | | size_t pos; |
3836 | | } yyjson_ptr_err; |
3837 | | |
3838 | | /** |
3839 | | A context for JSON pointer operation. |
3840 | | |
3841 | | This struct stores the context of JSON Pointer operation result. The struct |
3842 | | can be used with three helper functions: `ctx_append()`, `ctx_replace()`, and |
3843 | | `ctx_remove()`, which perform the corresponding operations on the container |
3844 | | without re-parsing the JSON Pointer. |
3845 | | |
3846 | | For example: |
3847 | | @code |
3848 | | // doc before: {"a":[0,1,null]} |
3849 | | // ptr: "/a/2" |
3850 | | val = yyjson_mut_doc_ptr_getx(doc, ptr, strlen(ptr), &ctx, &err); |
3851 | | if (yyjson_is_null(val)) { |
3852 | | yyjson_ptr_ctx_remove(&ctx); |
3853 | | } |
3854 | | // doc after: {"a":[0,1]} |
3855 | | @endcode |
3856 | | */ |
3857 | | typedef struct yyjson_ptr_ctx { |
3858 | | /** |
3859 | | The container (parent) of the target value. It can be either an array or |
3860 | | an object. If the target location has no value, but all its parent |
3861 | | containers exist, and the target location can be used to insert a new |
3862 | | value, then `ctn` is the parent container of the target location. |
3863 | | Otherwise, `ctn` is NULL. |
3864 | | */ |
3865 | | yyjson_mut_val *ctn; |
3866 | | /** |
3867 | | The previous sibling of the target value. It can be either a value in an |
3868 | | array or a key in an object. As the container is a `circular linked list` |
3869 | | of elements, `pre` is the previous node of the target value. If the |
3870 | | operation is `add` or `set`, then `pre` is the previous node of the new |
3871 | | value, not the original target value. If the target value does not exist, |
3872 | | `pre` is NULL. |
3873 | | */ |
3874 | | yyjson_mut_val *pre; |
3875 | | /** |
3876 | | The removed value if the operation is `set`, `replace` or `remove`. It can |
3877 | | be used to restore the original state of the document if needed. |
3878 | | */ |
3879 | | yyjson_mut_val *old; |
3880 | | } yyjson_ptr_ctx; |
3881 | | |
3882 | | /** |
3883 | | Get value by a JSON Pointer. |
3884 | | @param doc The JSON document to be queried. |
3885 | | @param ptr The JSON pointer string (UTF-8 with null-terminator). |
3886 | | @return The value referenced by the JSON pointer. |
3887 | | NULL if `doc` or `ptr` is NULL, or the JSON pointer cannot be resolved. |
3888 | | */ |
3889 | | yyjson_api_inline yyjson_val *yyjson_doc_ptr_get(yyjson_doc *doc, |
3890 | | const char *ptr); |
3891 | | |
3892 | | /** |
3893 | | Get value by a JSON Pointer. |
3894 | | @param doc The JSON document to be queried. |
3895 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
3896 | | @param len The length of `ptr` in bytes. |
3897 | | @return The value referenced by the JSON pointer. |
3898 | | NULL if `doc` or `ptr` is NULL, or the JSON pointer cannot be resolved. |
3899 | | */ |
3900 | | yyjson_api_inline yyjson_val *yyjson_doc_ptr_getn(yyjson_doc *doc, |
3901 | | const char *ptr, size_t len); |
3902 | | |
3903 | | /** |
3904 | | Get value by a JSON Pointer. |
3905 | | @param doc The JSON document to be queried. |
3906 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
3907 | | @param len The length of `ptr` in bytes. |
3908 | | @param err A pointer to store the error information, or NULL if not needed. |
3909 | | @return The value referenced by the JSON pointer. |
3910 | | NULL if `doc` or `ptr` is NULL, or the JSON pointer cannot be resolved. |
3911 | | */ |
3912 | | yyjson_api_inline yyjson_val *yyjson_doc_ptr_getx(yyjson_doc *doc, |
3913 | | const char *ptr, size_t len, |
3914 | | yyjson_ptr_err *err); |
3915 | | |
3916 | | /** |
3917 | | Get value by a JSON Pointer. |
3918 | | @param val The JSON value to be queried. |
3919 | | @param ptr The JSON pointer string (UTF-8 with null-terminator). |
3920 | | @return The value referenced by the JSON pointer. |
3921 | | NULL if `val` or `ptr` is NULL, or the JSON pointer cannot be resolved. |
3922 | | */ |
3923 | | yyjson_api_inline yyjson_val *yyjson_ptr_get(yyjson_val *val, |
3924 | | const char *ptr); |
3925 | | |
3926 | | /** |
3927 | | Get value by a JSON Pointer. |
3928 | | @param val The JSON value to be queried. |
3929 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
3930 | | @param len The length of `ptr` in bytes. |
3931 | | @return The value referenced by the JSON pointer. |
3932 | | NULL if `val` or `ptr` is NULL, or the JSON pointer cannot be resolved. |
3933 | | */ |
3934 | | yyjson_api_inline yyjson_val *yyjson_ptr_getn(yyjson_val *val, |
3935 | | const char *ptr, size_t len); |
3936 | | |
3937 | | /** |
3938 | | Get value by a JSON Pointer. |
3939 | | @param val The JSON value to be queried. |
3940 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
3941 | | @param len The length of `ptr` in bytes. |
3942 | | @param err A pointer to store the error information, or NULL if not needed. |
3943 | | @return The value referenced by the JSON pointer. |
3944 | | NULL if `val` or `ptr` is NULL, or the JSON pointer cannot be resolved. |
3945 | | */ |
3946 | | yyjson_api_inline yyjson_val *yyjson_ptr_getx(yyjson_val *val, |
3947 | | const char *ptr, size_t len, |
3948 | | yyjson_ptr_err *err); |
3949 | | |
3950 | | /** |
3951 | | Get value by a JSON Pointer. |
3952 | | @param doc The JSON document to be queried. |
3953 | | @param ptr The JSON pointer string (UTF-8 with null-terminator). |
3954 | | @return The value referenced by the JSON pointer. |
3955 | | NULL if `doc` or `ptr` is NULL, or the JSON pointer cannot be resolved. |
3956 | | */ |
3957 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_get(yyjson_mut_doc *doc, |
3958 | | const char *ptr); |
3959 | | |
3960 | | /** |
3961 | | Get value by a JSON Pointer. |
3962 | | @param doc The JSON document to be queried. |
3963 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
3964 | | @param len The length of `ptr` in bytes. |
3965 | | @return The value referenced by the JSON pointer. |
3966 | | NULL if `doc` or `ptr` is NULL, or the JSON pointer cannot be resolved. |
3967 | | */ |
3968 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_getn(yyjson_mut_doc *doc, |
3969 | | const char *ptr, |
3970 | | size_t len); |
3971 | | |
3972 | | /** |
3973 | | Get value by a JSON Pointer. |
3974 | | @param doc The JSON document to be queried. |
3975 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
3976 | | @param len The length of `ptr` in bytes. |
3977 | | @param ctx A pointer to store the result context, or NULL if not needed. |
3978 | | @param err A pointer to store the error information, or NULL if not needed. |
3979 | | @return The value referenced by the JSON pointer. |
3980 | | NULL if `doc` or `ptr` is NULL, or the JSON pointer cannot be resolved. |
3981 | | */ |
3982 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_getx(yyjson_mut_doc *doc, |
3983 | | const char *ptr, |
3984 | | size_t len, |
3985 | | yyjson_ptr_ctx *ctx, |
3986 | | yyjson_ptr_err *err); |
3987 | | |
3988 | | /** |
3989 | | Get value by a JSON Pointer. |
3990 | | @param val The JSON value to be queried. |
3991 | | @param ptr The JSON pointer string (UTF-8 with null-terminator). |
3992 | | @return The value referenced by the JSON pointer. |
3993 | | NULL if `val` or `ptr` is NULL, or the JSON pointer cannot be resolved. |
3994 | | */ |
3995 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_get(yyjson_mut_val *val, |
3996 | | const char *ptr); |
3997 | | |
3998 | | /** |
3999 | | Get value by a JSON Pointer. |
4000 | | @param val The JSON value to be queried. |
4001 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4002 | | @param len The length of `ptr` in bytes. |
4003 | | @return The value referenced by the JSON pointer. |
4004 | | NULL if `val` or `ptr` is NULL, or the JSON pointer cannot be resolved. |
4005 | | */ |
4006 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_getn(yyjson_mut_val *val, |
4007 | | const char *ptr, |
4008 | | size_t len); |
4009 | | |
4010 | | /** |
4011 | | Get value by a JSON Pointer. |
4012 | | @param val The JSON value to be queried. |
4013 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4014 | | @param len The length of `ptr` in bytes. |
4015 | | @param ctx A pointer to store the result context, or NULL if not needed. |
4016 | | @param err A pointer to store the error information, or NULL if not needed. |
4017 | | @return The value referenced by the JSON pointer. |
4018 | | NULL if `val` or `ptr` is NULL, or the JSON pointer cannot be resolved. |
4019 | | */ |
4020 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_getx(yyjson_mut_val *val, |
4021 | | const char *ptr, |
4022 | | size_t len, |
4023 | | yyjson_ptr_ctx *ctx, |
4024 | | yyjson_ptr_err *err); |
4025 | | |
4026 | | /** |
4027 | | Add (insert) value by a JSON pointer. |
4028 | | @param doc The target JSON document. |
4029 | | @param ptr The JSON pointer string (UTF-8 with null-terminator). |
4030 | | @param new_val The value to be added. |
4031 | | @return true if JSON pointer is valid and new value is added, false otherwise. |
4032 | | @note The parent nodes will be created if they do not exist. |
4033 | | */ |
4034 | | yyjson_api_inline bool yyjson_mut_doc_ptr_add(yyjson_mut_doc *doc, |
4035 | | const char *ptr, |
4036 | | yyjson_mut_val *new_val); |
4037 | | |
4038 | | /** |
4039 | | Add (insert) value by a JSON pointer. |
4040 | | @param doc The target JSON document. |
4041 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4042 | | @param len The length of `ptr` in bytes. |
4043 | | @param new_val The value to be added. |
4044 | | @return true if JSON pointer is valid and new value is added, false otherwise. |
4045 | | @note The parent nodes will be created if they do not exist. |
4046 | | */ |
4047 | | yyjson_api_inline bool yyjson_mut_doc_ptr_addn(yyjson_mut_doc *doc, |
4048 | | const char *ptr, size_t len, |
4049 | | yyjson_mut_val *new_val); |
4050 | | |
4051 | | /** |
4052 | | Add (insert) value by a JSON pointer. |
4053 | | @param doc The target JSON document. |
4054 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4055 | | @param len The length of `ptr` in bytes. |
4056 | | @param new_val The value to be added. |
4057 | | @param create_parent Whether to create parent nodes if not exist. |
4058 | | @param ctx A pointer to store the result context, or NULL if not needed. |
4059 | | @param err A pointer to store the error information, or NULL if not needed. |
4060 | | @return true if JSON pointer is valid and new value is added, false otherwise. |
4061 | | */ |
4062 | | yyjson_api_inline bool yyjson_mut_doc_ptr_addx(yyjson_mut_doc *doc, |
4063 | | const char *ptr, size_t len, |
4064 | | yyjson_mut_val *new_val, |
4065 | | bool create_parent, |
4066 | | yyjson_ptr_ctx *ctx, |
4067 | | yyjson_ptr_err *err); |
4068 | | |
4069 | | /** |
4070 | | Add (insert) value by a JSON pointer. |
4071 | | @param val The target JSON value. |
4072 | | @param ptr The JSON pointer string (UTF-8 with null-terminator). |
4073 | | @param doc Only used to create new values when needed. |
4074 | | @param new_val The value to be added. |
4075 | | @return true if JSON pointer is valid and new value is added, false otherwise. |
4076 | | @note The parent nodes will be created if they do not exist. |
4077 | | */ |
4078 | | yyjson_api_inline bool yyjson_mut_ptr_add(yyjson_mut_val *val, |
4079 | | const char *ptr, |
4080 | | yyjson_mut_val *new_val, |
4081 | | yyjson_mut_doc *doc); |
4082 | | |
4083 | | /** |
4084 | | Add (insert) value by a JSON pointer. |
4085 | | @param val The target JSON value. |
4086 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4087 | | @param len The length of `ptr` in bytes. |
4088 | | @param doc Only used to create new values when needed. |
4089 | | @param new_val The value to be added. |
4090 | | @return true if JSON pointer is valid and new value is added, false otherwise. |
4091 | | @note The parent nodes will be created if they do not exist. |
4092 | | */ |
4093 | | yyjson_api_inline bool yyjson_mut_ptr_addn(yyjson_mut_val *val, |
4094 | | const char *ptr, size_t len, |
4095 | | yyjson_mut_val *new_val, |
4096 | | yyjson_mut_doc *doc); |
4097 | | |
4098 | | /** |
4099 | | Add (insert) value by a JSON pointer. |
4100 | | @param val The target JSON value. |
4101 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4102 | | @param len The length of `ptr` in bytes. |
4103 | | @param doc Only used to create new values when needed. |
4104 | | @param new_val The value to be added. |
4105 | | @param create_parent Whether to create parent nodes if not exist. |
4106 | | @param ctx A pointer to store the result context, or NULL if not needed. |
4107 | | @param err A pointer to store the error information, or NULL if not needed. |
4108 | | @return true if JSON pointer is valid and new value is added, false otherwise. |
4109 | | */ |
4110 | | yyjson_api_inline bool yyjson_mut_ptr_addx(yyjson_mut_val *val, |
4111 | | const char *ptr, size_t len, |
4112 | | yyjson_mut_val *new_val, |
4113 | | yyjson_mut_doc *doc, |
4114 | | bool create_parent, |
4115 | | yyjson_ptr_ctx *ctx, |
4116 | | yyjson_ptr_err *err); |
4117 | | |
4118 | | /** |
4119 | | Set value by a JSON pointer. |
4120 | | @param doc The target JSON document. |
4121 | | @param ptr The JSON pointer string (UTF-8 with null-terminator). |
4122 | | @param new_val The value to be set, pass NULL to remove. |
4123 | | @return true if JSON pointer is valid and new value is set, false otherwise. |
4124 | | @note The parent nodes will be created if they do not exist. |
4125 | | If the target value already exists, it will be replaced by the new value. |
4126 | | */ |
4127 | | yyjson_api_inline bool yyjson_mut_doc_ptr_set(yyjson_mut_doc *doc, |
4128 | | const char *ptr, |
4129 | | yyjson_mut_val *new_val); |
4130 | | |
4131 | | /** |
4132 | | Set value by a JSON pointer. |
4133 | | @param doc The target JSON document. |
4134 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4135 | | @param len The length of `ptr` in bytes. |
4136 | | @param new_val The value to be set, pass NULL to remove. |
4137 | | @return true if JSON pointer is valid and new value is set, false otherwise. |
4138 | | @note The parent nodes will be created if they do not exist. |
4139 | | If the target value already exists, it will be replaced by the new value. |
4140 | | */ |
4141 | | yyjson_api_inline bool yyjson_mut_doc_ptr_setn(yyjson_mut_doc *doc, |
4142 | | const char *ptr, size_t len, |
4143 | | yyjson_mut_val *new_val); |
4144 | | |
4145 | | /** |
4146 | | Set value by a JSON pointer. |
4147 | | @param doc The target JSON document. |
4148 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4149 | | @param len The length of `ptr` in bytes. |
4150 | | @param new_val The value to be set, pass NULL to remove. |
4151 | | @param create_parent Whether to create parent nodes if not exist. |
4152 | | @param ctx A pointer to store the result context, or NULL if not needed. |
4153 | | @param err A pointer to store the error information, or NULL if not needed. |
4154 | | @return true if JSON pointer is valid and new value is set, false otherwise. |
4155 | | @note If the target value already exists, it will be replaced by the new value. |
4156 | | */ |
4157 | | yyjson_api_inline bool yyjson_mut_doc_ptr_setx(yyjson_mut_doc *doc, |
4158 | | const char *ptr, size_t len, |
4159 | | yyjson_mut_val *new_val, |
4160 | | bool create_parent, |
4161 | | yyjson_ptr_ctx *ctx, |
4162 | | yyjson_ptr_err *err); |
4163 | | |
4164 | | /** |
4165 | | Set value by a JSON pointer. |
4166 | | @param val The target JSON value. |
4167 | | @param ptr The JSON pointer string (UTF-8 with null-terminator). |
4168 | | @param new_val The value to be set, pass NULL to remove. |
4169 | | @param doc Only used to create new values when needed. |
4170 | | @return true if JSON pointer is valid and new value is set, false otherwise. |
4171 | | @note The parent nodes will be created if they do not exist. |
4172 | | If the target value already exists, it will be replaced by the new value. |
4173 | | */ |
4174 | | yyjson_api_inline bool yyjson_mut_ptr_set(yyjson_mut_val *val, |
4175 | | const char *ptr, |
4176 | | yyjson_mut_val *new_val, |
4177 | | yyjson_mut_doc *doc); |
4178 | | |
4179 | | /** |
4180 | | Set value by a JSON pointer. |
4181 | | @param val The target JSON value. |
4182 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4183 | | @param len The length of `ptr` in bytes. |
4184 | | @param new_val The value to be set, pass NULL to remove. |
4185 | | @param doc Only used to create new values when needed. |
4186 | | @return true if JSON pointer is valid and new value is set, false otherwise. |
4187 | | @note The parent nodes will be created if they do not exist. |
4188 | | If the target value already exists, it will be replaced by the new value. |
4189 | | */ |
4190 | | yyjson_api_inline bool yyjson_mut_ptr_setn(yyjson_mut_val *val, |
4191 | | const char *ptr, size_t len, |
4192 | | yyjson_mut_val *new_val, |
4193 | | yyjson_mut_doc *doc); |
4194 | | |
4195 | | /** |
4196 | | Set value by a JSON pointer. |
4197 | | @param val The target JSON value. |
4198 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4199 | | @param len The length of `ptr` in bytes. |
4200 | | @param new_val The value to be set, pass NULL to remove. |
4201 | | @param doc Only used to create new values when needed. |
4202 | | @param create_parent Whether to create parent nodes if not exist. |
4203 | | @param ctx A pointer to store the result context, or NULL if not needed. |
4204 | | @param err A pointer to store the error information, or NULL if not needed. |
4205 | | @return true if JSON pointer is valid and new value is set, false otherwise. |
4206 | | @note If the target value already exists, it will be replaced by the new value. |
4207 | | */ |
4208 | | yyjson_api_inline bool yyjson_mut_ptr_setx(yyjson_mut_val *val, |
4209 | | const char *ptr, size_t len, |
4210 | | yyjson_mut_val *new_val, |
4211 | | yyjson_mut_doc *doc, |
4212 | | bool create_parent, |
4213 | | yyjson_ptr_ctx *ctx, |
4214 | | yyjson_ptr_err *err); |
4215 | | |
4216 | | /** |
4217 | | Replace value by a JSON pointer. |
4218 | | @param doc The target JSON document. |
4219 | | @param ptr The JSON pointer string (UTF-8 with null-terminator). |
4220 | | @param new_val The new value to replace the old one. |
4221 | | @return The old value that was replaced, or NULL if not found. |
4222 | | */ |
4223 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_replace( |
4224 | | yyjson_mut_doc *doc, const char *ptr, yyjson_mut_val *new_val); |
4225 | | |
4226 | | /** |
4227 | | Replace value by a JSON pointer. |
4228 | | @param doc The target JSON document. |
4229 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4230 | | @param len The length of `ptr` in bytes. |
4231 | | @param new_val The new value to replace the old one. |
4232 | | @return The old value that was replaced, or NULL if not found. |
4233 | | */ |
4234 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_replacen( |
4235 | | yyjson_mut_doc *doc, const char *ptr, size_t len, yyjson_mut_val *new_val); |
4236 | | |
4237 | | /** |
4238 | | Replace value by a JSON pointer. |
4239 | | @param doc The target JSON document. |
4240 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4241 | | @param len The length of `ptr` in bytes. |
4242 | | @param new_val The new value to replace the old one. |
4243 | | @param ctx A pointer to store the result context, or NULL if not needed. |
4244 | | @param err A pointer to store the error information, or NULL if not needed. |
4245 | | @return The old value that was replaced, or NULL if not found. |
4246 | | */ |
4247 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_replacex( |
4248 | | yyjson_mut_doc *doc, const char *ptr, size_t len, yyjson_mut_val *new_val, |
4249 | | yyjson_ptr_ctx *ctx, yyjson_ptr_err *err); |
4250 | | |
4251 | | /** |
4252 | | Replace value by a JSON pointer. |
4253 | | @param val The target JSON value. |
4254 | | @param ptr The JSON pointer string (UTF-8 with null-terminator). |
4255 | | @param new_val The new value to replace the old one. |
4256 | | @return The old value that was replaced, or NULL if not found. |
4257 | | */ |
4258 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_replace( |
4259 | | yyjson_mut_val *val, const char *ptr, yyjson_mut_val *new_val); |
4260 | | |
4261 | | /** |
4262 | | Replace value by a JSON pointer. |
4263 | | @param val The target JSON value. |
4264 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4265 | | @param len The length of `ptr` in bytes. |
4266 | | @param new_val The new value to replace the old one. |
4267 | | @return The old value that was replaced, or NULL if not found. |
4268 | | */ |
4269 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_replacen( |
4270 | | yyjson_mut_val *val, const char *ptr, size_t len, yyjson_mut_val *new_val); |
4271 | | |
4272 | | /** |
4273 | | Replace value by a JSON pointer. |
4274 | | @param val The target JSON value. |
4275 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4276 | | @param len The length of `ptr` in bytes. |
4277 | | @param new_val The new value to replace the old one. |
4278 | | @param ctx A pointer to store the result context, or NULL if not needed. |
4279 | | @param err A pointer to store the error information, or NULL if not needed. |
4280 | | @return The old value that was replaced, or NULL if not found. |
4281 | | */ |
4282 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_replacex( |
4283 | | yyjson_mut_val *val, const char *ptr, size_t len, yyjson_mut_val *new_val, |
4284 | | yyjson_ptr_ctx *ctx, yyjson_ptr_err *err); |
4285 | | |
4286 | | /** |
4287 | | Remove value by a JSON pointer. |
4288 | | @param doc The target JSON document. |
4289 | | @param ptr The JSON pointer string (UTF-8 with null-terminator). |
4290 | | @return The removed value, or NULL on error. |
4291 | | */ |
4292 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_remove( |
4293 | | yyjson_mut_doc *doc, const char *ptr); |
4294 | | |
4295 | | /** |
4296 | | Remove value by a JSON pointer. |
4297 | | @param doc The target JSON document. |
4298 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4299 | | @param len The length of `ptr` in bytes. |
4300 | | @return The removed value, or NULL on error. |
4301 | | */ |
4302 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_removen( |
4303 | | yyjson_mut_doc *doc, const char *ptr, size_t len); |
4304 | | |
4305 | | /** |
4306 | | Remove value by a JSON pointer. |
4307 | | @param doc The target JSON document. |
4308 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4309 | | @param len The length of `ptr` in bytes. |
4310 | | @param ctx A pointer to store the result context, or NULL if not needed. |
4311 | | @param err A pointer to store the error information, or NULL if not needed. |
4312 | | @return The removed value, or NULL on error. |
4313 | | */ |
4314 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_removex( |
4315 | | yyjson_mut_doc *doc, const char *ptr, size_t len, |
4316 | | yyjson_ptr_ctx *ctx, yyjson_ptr_err *err); |
4317 | | |
4318 | | /** |
4319 | | Remove value by a JSON pointer. |
4320 | | @param val The target JSON value. |
4321 | | @param ptr The JSON pointer string (UTF-8 with null-terminator). |
4322 | | @return The removed value, or NULL on error. |
4323 | | */ |
4324 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_remove(yyjson_mut_val *val, |
4325 | | const char *ptr); |
4326 | | |
4327 | | /** |
4328 | | Remove value by a JSON pointer. |
4329 | | @param val The target JSON value. |
4330 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4331 | | @param len The length of `ptr` in bytes. |
4332 | | @return The removed value, or NULL on error. |
4333 | | */ |
4334 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_removen(yyjson_mut_val *val, |
4335 | | const char *ptr, |
4336 | | size_t len); |
4337 | | |
4338 | | /** |
4339 | | Remove value by a JSON pointer. |
4340 | | @param val The target JSON value. |
4341 | | @param ptr The JSON pointer string (UTF-8, null-terminator is not required). |
4342 | | @param len The length of `ptr` in bytes. |
4343 | | @param ctx A pointer to store the result context, or NULL if not needed. |
4344 | | @param err A pointer to store the error information, or NULL if not needed. |
4345 | | @return The removed value, or NULL on error. |
4346 | | */ |
4347 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_removex(yyjson_mut_val *val, |
4348 | | const char *ptr, |
4349 | | size_t len, |
4350 | | yyjson_ptr_ctx *ctx, |
4351 | | yyjson_ptr_err *err); |
4352 | | |
4353 | | /** |
4354 | | Append value by JSON pointer context. |
4355 | | @param ctx The context from the `yyjson_mut_ptr_xxx()` calls. |
4356 | | @param key New key if `ctx->ctn` is object, or NULL if `ctx->ctn` is array. |
4357 | | @param val New value to be added. |
4358 | | @return true on success or false on fail. |
4359 | | */ |
4360 | | yyjson_api_inline bool yyjson_ptr_ctx_append(yyjson_ptr_ctx *ctx, |
4361 | | yyjson_mut_val *key, |
4362 | | yyjson_mut_val *val); |
4363 | | |
4364 | | /** |
4365 | | Replace value by JSON pointer context. |
4366 | | @param ctx The context from the `yyjson_mut_ptr_xxx()` calls. |
4367 | | @param val New value to be replaced. |
4368 | | @return true on success or false on fail. |
4369 | | @note If success, the old value will be returned via `ctx->old`. |
4370 | | */ |
4371 | | yyjson_api_inline bool yyjson_ptr_ctx_replace(yyjson_ptr_ctx *ctx, |
4372 | | yyjson_mut_val *val); |
4373 | | |
4374 | | /** |
4375 | | Remove value by JSON pointer context. |
4376 | | @param ctx The context from the `yyjson_mut_ptr_xxx()` calls. |
4377 | | @return true on success or false on fail. |
4378 | | @note If success, the old value will be returned via `ctx->old`. |
4379 | | */ |
4380 | | yyjson_api_inline bool yyjson_ptr_ctx_remove(yyjson_ptr_ctx *ctx); |
4381 | | |
4382 | | |
4383 | | |
4384 | | /*============================================================================== |
4385 | | * JSON Patch API (RFC 6902) |
4386 | | * https://tools.ietf.org/html/rfc6902 |
4387 | | *============================================================================*/ |
4388 | | |
4389 | | /** Result code for JSON patch. */ |
4390 | | typedef uint32_t yyjson_patch_code; |
4391 | | |
4392 | | /** Success, no error. */ |
4393 | | static const yyjson_patch_code YYJSON_PATCH_SUCCESS = 0; |
4394 | | |
4395 | | /** Invalid parameter, such as NULL input or non-array patch. */ |
4396 | | static const yyjson_patch_code YYJSON_PATCH_ERROR_INVALID_PARAMETER = 1; |
4397 | | |
4398 | | /** Memory allocation failure occurs. */ |
4399 | | static const yyjson_patch_code YYJSON_PATCH_ERROR_MEMORY_ALLOCATION = 2; |
4400 | | |
4401 | | /** JSON patch operation is not object type. */ |
4402 | | static const yyjson_patch_code YYJSON_PATCH_ERROR_INVALID_OPERATION = 3; |
4403 | | |
4404 | | /** JSON patch operation is missing a required key. */ |
4405 | | static const yyjson_patch_code YYJSON_PATCH_ERROR_MISSING_KEY = 4; |
4406 | | |
4407 | | /** JSON patch operation member is invalid. */ |
4408 | | static const yyjson_patch_code YYJSON_PATCH_ERROR_INVALID_MEMBER = 5; |
4409 | | |
4410 | | /** JSON patch operation `test` not equal. */ |
4411 | | static const yyjson_patch_code YYJSON_PATCH_ERROR_EQUAL = 6; |
4412 | | |
4413 | | /** JSON patch operation failed on JSON pointer. */ |
4414 | | static const yyjson_patch_code YYJSON_PATCH_ERROR_POINTER = 7; |
4415 | | |
4416 | | /** Error information for JSON patch. */ |
4417 | | typedef struct yyjson_patch_err { |
4418 | | /** Error code, see `yyjson_patch_code` for all possible values. */ |
4419 | | yyjson_patch_code code; |
4420 | | /** Index of the error operation (0 if no error). */ |
4421 | | size_t idx; |
4422 | | /** Error message, constant, no need to free (NULL if no error). */ |
4423 | | const char *msg; |
4424 | | /** JSON pointer error if `code == YYJSON_PATCH_ERROR_POINTER`. */ |
4425 | | yyjson_ptr_err ptr; |
4426 | | } yyjson_patch_err; |
4427 | | |
4428 | | /** |
4429 | | Creates and returns a patched JSON value (RFC 6902). |
4430 | | The memory of the returned value is allocated by the `doc`. |
4431 | | The `err` is used to receive error information, pass NULL if not needed. |
4432 | | Returns NULL if the patch could not be applied. |
4433 | | */ |
4434 | | yyjson_api yyjson_mut_val *yyjson_patch(yyjson_mut_doc *doc, |
4435 | | yyjson_val *orig, |
4436 | | yyjson_val *patch, |
4437 | | yyjson_patch_err *err); |
4438 | | |
4439 | | /** |
4440 | | Creates and returns a patched JSON value (RFC 6902). |
4441 | | The memory of the returned value is allocated by the `doc`. |
4442 | | The `err` is used to receive error information, pass NULL if not needed. |
4443 | | Returns NULL if the patch could not be applied. |
4444 | | */ |
4445 | | yyjson_api yyjson_mut_val *yyjson_mut_patch(yyjson_mut_doc *doc, |
4446 | | yyjson_mut_val *orig, |
4447 | | yyjson_mut_val *patch, |
4448 | | yyjson_patch_err *err); |
4449 | | |
4450 | | |
4451 | | |
4452 | | /*============================================================================== |
4453 | | * JSON Merge-Patch API (RFC 7386) |
4454 | | * https://tools.ietf.org/html/rfc7386 |
4455 | | *============================================================================*/ |
4456 | | |
4457 | | /** |
4458 | | Creates and returns a merge-patched JSON value (RFC 7386). |
4459 | | The memory of the returned value is allocated by the `doc`. |
4460 | | Returns NULL if the patch could not be applied. |
4461 | | |
4462 | | @warning This function is recursive and may cause a stack overflow if the |
4463 | | object level is too deep. |
4464 | | */ |
4465 | | yyjson_api yyjson_mut_val *yyjson_merge_patch(yyjson_mut_doc *doc, |
4466 | | yyjson_val *orig, |
4467 | | yyjson_val *patch); |
4468 | | |
4469 | | /** |
4470 | | Creates and returns a merge-patched JSON value (RFC 7386). |
4471 | | The memory of the returned value is allocated by the `doc`. |
4472 | | Returns NULL if the patch could not be applied. |
4473 | | |
4474 | | @warning This function is recursive and may cause a stack overflow if the |
4475 | | object level is too deep. |
4476 | | */ |
4477 | | yyjson_api yyjson_mut_val *yyjson_mut_merge_patch(yyjson_mut_doc *doc, |
4478 | | yyjson_mut_val *orig, |
4479 | | yyjson_mut_val *patch); |
4480 | | |
4481 | | |
4482 | | |
4483 | | /*============================================================================== |
4484 | | * JSON Structure (Implementation) |
4485 | | *============================================================================*/ |
4486 | | |
4487 | | /** Payload of a JSON value (8 bytes). */ |
4488 | | typedef union yyjson_val_uni { |
4489 | | uint64_t u64; |
4490 | | int64_t i64; |
4491 | | double f64; |
4492 | | const char *str; |
4493 | | void *ptr; |
4494 | | size_t ofs; |
4495 | | } yyjson_val_uni; |
4496 | | |
4497 | | /** |
4498 | | Immutable JSON value, 16 bytes. |
4499 | | */ |
4500 | | struct yyjson_val { |
4501 | | uint64_t tag; /**< type, subtype and length */ |
4502 | | yyjson_val_uni uni; /**< payload */ |
4503 | | }; |
4504 | | |
4505 | | struct yyjson_doc { |
4506 | | /** Root value of the document (nonnull). */ |
4507 | | yyjson_val *root; |
4508 | | /** Allocator used by document (nonnull). */ |
4509 | | yyjson_alc alc; |
4510 | | /** The total number of bytes read when parsing JSON (nonzero). */ |
4511 | | size_t dat_read; |
4512 | | /** The total number of value read when parsing JSON (nonzero). */ |
4513 | | size_t val_read; |
4514 | | /** The string pool used by JSON values (nullable). */ |
4515 | | char *str_pool; |
4516 | | }; |
4517 | | |
4518 | | |
4519 | | |
4520 | | /*============================================================================== |
4521 | | * Unsafe JSON Value API (Implementation) |
4522 | | *============================================================================*/ |
4523 | | |
4524 | | /* |
4525 | | Whether the string does not need to be escaped for serialization. |
4526 | | This function is used to optimize the writing speed of small constant strings. |
4527 | | This function works only if the compiler can evaluate it at compile time. |
4528 | | |
4529 | | Clang supports it since v8.0, |
4530 | | earlier versions do not support constant_p(strlen) and return false. |
4531 | | GCC supports it since at least v4.4, |
4532 | | earlier versions may compile it as run-time instructions. |
4533 | | ICC supports it since at least v16, |
4534 | | earlier versions are uncertain. |
4535 | | |
4536 | | @param str The C string. |
4537 | | @param len The returnd value from strlen(str). |
4538 | | */ |
4539 | 415k | yyjson_api_inline bool unsafe_yyjson_is_str_noesc(const char *str, size_t len) { |
4540 | 415k | #if YYJSON_HAS_CONSTANT_P && \ |
4541 | 415k | (!YYJSON_IS_REAL_GCC || yyjson_gcc_available(4, 4, 0)) |
4542 | 415k | if (yyjson_constant_p(len) && len <= 32) { |
4543 | | /* |
4544 | | Same as the following loop: |
4545 | | |
4546 | | for (size_t i = 0; i < len; i++) { |
4547 | | char c = str[i]; |
4548 | | if (c < ' ' || c > '~' || c == '"' || c == '\\') return false; |
4549 | | } |
4550 | | |
4551 | | GCC evaluates it at compile time only if the string length is within 17 |
4552 | | and -O3 (which turns on the -fpeel-loops flag) is used. |
4553 | | So the loop is unrolled for GCC. |
4554 | | */ |
4555 | 415k | # define yyjson_repeat32_incr(x) \ |
4556 | 415k | x(0) x(1) x(2) x(3) x(4) x(5) x(6) x(7) \ |
4557 | 415k | x(8) x(9) x(10) x(11) x(12) x(13) x(14) x(15) \ |
4558 | 415k | x(16) x(17) x(18) x(19) x(20) x(21) x(22) x(23) \ |
4559 | 415k | x(24) x(25) x(26) x(27) x(28) x(29) x(30) x(31) |
4560 | 415k | # define yyjson_check_char_noesc(i) \ |
4561 | 13.2M | if (i < len) { \ |
4562 | 6.43M | char c = str[i]; \ |
4563 | 6.43M | if (c < ' ' || c > '~' || c == '"' || c == '\\') return false; } |
4564 | 13.2M | yyjson_repeat32_incr(yyjson_check_char_noesc) |
4565 | 415k | # undef yyjson_repeat32_incr |
4566 | 415k | # undef yyjson_check_char_noesc |
4567 | 415k | return true; |
4568 | 12.8M | } |
4569 | | #else |
4570 | | (void)str; |
4571 | | (void)len; |
4572 | | #endif |
4573 | 0 | return false; |
4574 | 415k | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_str_noesc(char const*, unsigned long) Line | Count | Source | 4539 | 415k | yyjson_api_inline bool unsafe_yyjson_is_str_noesc(const char *str, size_t len) { | 4540 | 415k | #if YYJSON_HAS_CONSTANT_P && \ | 4541 | 415k | (!YYJSON_IS_REAL_GCC || yyjson_gcc_available(4, 4, 0)) | 4542 | 415k | if (yyjson_constant_p(len) && len <= 32) { | 4543 | | /* | 4544 | | Same as the following loop: | 4545 | | | 4546 | | for (size_t i = 0; i < len; i++) { | 4547 | | char c = str[i]; | 4548 | | if (c < ' ' || c > '~' || c == '"' || c == '\\') return false; | 4549 | | } | 4550 | | | 4551 | | GCC evaluates it at compile time only if the string length is within 17 | 4552 | | and -O3 (which turns on the -fpeel-loops flag) is used. | 4553 | | So the loop is unrolled for GCC. | 4554 | | */ | 4555 | 415k | # define yyjson_repeat32_incr(x) \ | 4556 | 415k | x(0) x(1) x(2) x(3) x(4) x(5) x(6) x(7) \ | 4557 | 415k | x(8) x(9) x(10) x(11) x(12) x(13) x(14) x(15) \ | 4558 | 415k | x(16) x(17) x(18) x(19) x(20) x(21) x(22) x(23) \ | 4559 | 415k | x(24) x(25) x(26) x(27) x(28) x(29) x(30) x(31) | 4560 | 415k | # define yyjson_check_char_noesc(i) \ | 4561 | 415k | if (i < len) { \ | 4562 | 415k | char c = str[i]; \ | 4563 | 415k | if (c < ' ' || c > '~' || c == '"' || c == '\\') return false; } | 4564 | 12.8M | yyjson_repeat32_incr(yyjson_check_char_noesc) | 4565 | 415k | # undef yyjson_repeat32_incr | 4566 | 415k | # undef yyjson_check_char_noesc | 4567 | 415k | return true; | 4568 | 12.8M | } | 4569 | | #else | 4570 | | (void)str; | 4571 | | (void)len; | 4572 | | #endif | 4573 | 0 | return false; | 4574 | 415k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_str_noesc(char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_str_noesc(char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_str_noesc(char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_str_noesc(char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_str_noesc(char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_str_noesc(char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_str_noesc(char const*, unsigned long) |
4575 | | |
4576 | 4.90M | yyjson_api_inline yyjson_type unsafe_yyjson_get_type(void *val) { |
4577 | 4.90M | uint8_t tag = (uint8_t)((yyjson_val *)val)->tag; |
4578 | 4.90M | return (yyjson_type)(tag & YYJSON_TYPE_MASK); |
4579 | 4.90M | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_type(void*) Line | Count | Source | 4576 | 3.05M | yyjson_api_inline yyjson_type unsafe_yyjson_get_type(void *val) { | 4577 | 3.05M | uint8_t tag = (uint8_t)((yyjson_val *)val)->tag; | 4578 | 3.05M | return (yyjson_type)(tag & YYJSON_TYPE_MASK); | 4579 | 3.05M | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_type(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_type(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_type(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_type(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_type(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_type(void*) yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_type(void*) Line | Count | Source | 4576 | 1.84M | yyjson_api_inline yyjson_type unsafe_yyjson_get_type(void *val) { | 4577 | 1.84M | uint8_t tag = (uint8_t)((yyjson_val *)val)->tag; | 4578 | 1.84M | return (yyjson_type)(tag & YYJSON_TYPE_MASK); | 4579 | 1.84M | } |
|
4580 | | |
4581 | 1.63M | yyjson_api_inline yyjson_subtype unsafe_yyjson_get_subtype(void *val) { |
4582 | 1.63M | uint8_t tag = (uint8_t)((yyjson_val *)val)->tag; |
4583 | 1.63M | return (yyjson_subtype)(tag & YYJSON_SUBTYPE_MASK); |
4584 | 1.63M | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_subtype(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_subtype(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_subtype(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_subtype(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_subtype(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_subtype(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_subtype(void*) yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_subtype(void*) Line | Count | Source | 4581 | 1.63M | yyjson_api_inline yyjson_subtype unsafe_yyjson_get_subtype(void *val) { | 4582 | 1.63M | uint8_t tag = (uint8_t)((yyjson_val *)val)->tag; | 4583 | 1.63M | return (yyjson_subtype)(tag & YYJSON_SUBTYPE_MASK); | 4584 | 1.63M | } |
|
4585 | | |
4586 | 1.87M | yyjson_api_inline uint8_t unsafe_yyjson_get_tag(void *val) { |
4587 | 1.87M | uint8_t tag = (uint8_t)((yyjson_val *)val)->tag; |
4588 | 1.87M | return (uint8_t)(tag & YYJSON_TAG_MASK); |
4589 | 1.87M | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_tag(void*) Line | Count | Source | 4586 | 1.66M | yyjson_api_inline uint8_t unsafe_yyjson_get_tag(void *val) { | 4587 | 1.66M | uint8_t tag = (uint8_t)((yyjson_val *)val)->tag; | 4588 | 1.66M | return (uint8_t)(tag & YYJSON_TAG_MASK); | 4589 | 1.66M | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_tag(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_tag(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_tag(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_tag(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_tag(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_tag(void*) yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_tag(void*) Line | Count | Source | 4586 | 207k | yyjson_api_inline uint8_t unsafe_yyjson_get_tag(void *val) { | 4587 | 207k | uint8_t tag = (uint8_t)((yyjson_val *)val)->tag; | 4588 | 207k | return (uint8_t)(tag & YYJSON_TAG_MASK); | 4589 | 207k | } |
|
4590 | | |
4591 | 0 | yyjson_api_inline bool unsafe_yyjson_is_raw(void *val) { |
4592 | 0 | return unsafe_yyjson_get_type(val) == YYJSON_TYPE_RAW; |
4593 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_raw(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_raw(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_raw(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_raw(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_raw(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_raw(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_raw(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_raw(void*) |
4594 | | |
4595 | 0 | yyjson_api_inline bool unsafe_yyjson_is_null(void *val) { |
4596 | 0 | return unsafe_yyjson_get_type(val) == YYJSON_TYPE_NULL; |
4597 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_null(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_null(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_null(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_null(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_null(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_null(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_null(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_null(void*) |
4598 | | |
4599 | 0 | yyjson_api_inline bool unsafe_yyjson_is_bool(void *val) { |
4600 | 0 | return unsafe_yyjson_get_type(val) == YYJSON_TYPE_BOOL; |
4601 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_bool(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_bool(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_bool(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_bool(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_bool(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_bool(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_bool(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_bool(void*) |
4602 | | |
4603 | 0 | yyjson_api_inline bool unsafe_yyjson_is_num(void *val) { |
4604 | 0 | return unsafe_yyjson_get_type(val) == YYJSON_TYPE_NUM; |
4605 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_num(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_num(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_num(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_num(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_num(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_num(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_num(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_num(void*) |
4606 | | |
4607 | 1.90M | yyjson_api_inline bool unsafe_yyjson_is_str(void *val) { |
4608 | 1.90M | return unsafe_yyjson_get_type(val) == YYJSON_TYPE_STR; |
4609 | 1.90M | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_str(void*) Line | Count | Source | 4607 | 1.90M | yyjson_api_inline bool unsafe_yyjson_is_str(void *val) { | 4608 | 1.90M | return unsafe_yyjson_get_type(val) == YYJSON_TYPE_STR; | 4609 | 1.90M | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_str(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_str(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_str(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_str(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_str(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_str(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_str(void*) |
4610 | | |
4611 | 0 | yyjson_api_inline bool unsafe_yyjson_is_arr(void *val) { |
4612 | 0 | return unsafe_yyjson_get_type(val) == YYJSON_TYPE_ARR; |
4613 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_arr(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_arr(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_arr(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_arr(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_arr(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_arr(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_arr(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_arr(void*) |
4614 | | |
4615 | 986k | yyjson_api_inline bool unsafe_yyjson_is_obj(void *val) { |
4616 | 986k | return unsafe_yyjson_get_type(val) == YYJSON_TYPE_OBJ; |
4617 | 986k | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_obj(void*) Line | Count | Source | 4615 | 986k | yyjson_api_inline bool unsafe_yyjson_is_obj(void *val) { | 4616 | 986k | return unsafe_yyjson_get_type(val) == YYJSON_TYPE_OBJ; | 4617 | 986k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_obj(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_obj(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_obj(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_obj(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_obj(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_obj(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_obj(void*) |
4618 | | |
4619 | 957k | yyjson_api_inline bool unsafe_yyjson_is_ctn(void *val) { |
4620 | 957k | uint8_t mask = YYJSON_TYPE_ARR & YYJSON_TYPE_OBJ; |
4621 | 957k | return (unsafe_yyjson_get_tag(val) & mask) == mask; |
4622 | 957k | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_ctn(void*) Line | Count | Source | 4619 | 750k | yyjson_api_inline bool unsafe_yyjson_is_ctn(void *val) { | 4620 | 750k | uint8_t mask = YYJSON_TYPE_ARR & YYJSON_TYPE_OBJ; | 4621 | 750k | return (unsafe_yyjson_get_tag(val) & mask) == mask; | 4622 | 750k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_ctn(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_ctn(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_ctn(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_ctn(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_ctn(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_ctn(void*) yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_ctn(void*) Line | Count | Source | 4619 | 207k | yyjson_api_inline bool unsafe_yyjson_is_ctn(void *val) { | 4620 | 207k | uint8_t mask = YYJSON_TYPE_ARR & YYJSON_TYPE_OBJ; | 4621 | 207k | return (unsafe_yyjson_get_tag(val) & mask) == mask; | 4622 | 207k | } |
|
4623 | | |
4624 | 0 | yyjson_api_inline bool unsafe_yyjson_is_uint(void *val) { |
4625 | 0 | const uint8_t patt = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_UINT; |
4626 | 0 | return unsafe_yyjson_get_tag(val) == patt; |
4627 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_uint(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_uint(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_uint(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_uint(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_uint(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_uint(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_uint(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_uint(void*) |
4628 | | |
4629 | 0 | yyjson_api_inline bool unsafe_yyjson_is_sint(void *val) { |
4630 | 0 | const uint8_t patt = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_SINT; |
4631 | 0 | return unsafe_yyjson_get_tag(val) == patt; |
4632 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_sint(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_sint(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_sint(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_sint(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_sint(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_sint(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_sint(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_sint(void*) |
4633 | | |
4634 | 0 | yyjson_api_inline bool unsafe_yyjson_is_int(void *val) { |
4635 | 0 | const uint8_t mask = YYJSON_TAG_MASK & (~YYJSON_SUBTYPE_SINT); |
4636 | 0 | const uint8_t patt = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_UINT; |
4637 | 0 | return (unsafe_yyjson_get_tag(val) & mask) == patt; |
4638 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_int(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_int(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_int(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_int(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_int(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_int(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_int(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_int(void*) |
4639 | | |
4640 | 0 | yyjson_api_inline bool unsafe_yyjson_is_real(void *val) { |
4641 | 0 | const uint8_t patt = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_REAL; |
4642 | 0 | return unsafe_yyjson_get_tag(val) == patt; |
4643 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_real(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_real(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_real(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_real(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_real(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_real(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_real(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_real(void*) |
4644 | | |
4645 | 0 | yyjson_api_inline bool unsafe_yyjson_is_true(void *val) { |
4646 | 0 | const uint8_t patt = YYJSON_TYPE_BOOL | YYJSON_SUBTYPE_TRUE; |
4647 | 0 | return unsafe_yyjson_get_tag(val) == patt; |
4648 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_true(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_true(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_true(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_true(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_true(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_true(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_true(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_true(void*) |
4649 | | |
4650 | 0 | yyjson_api_inline bool unsafe_yyjson_is_false(void *val) { |
4651 | 0 | const uint8_t patt = YYJSON_TYPE_BOOL | YYJSON_SUBTYPE_FALSE; |
4652 | 0 | return unsafe_yyjson_get_tag(val) == patt; |
4653 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_is_false(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_is_false(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_is_false(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_is_false(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_is_false(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_is_false(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_is_false(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_is_false(void*) |
4654 | | |
4655 | 0 | yyjson_api_inline bool unsafe_yyjson_arr_is_flat(yyjson_val *val) { |
4656 | 0 | size_t ofs = val->uni.ofs; |
4657 | 0 | size_t len = (size_t)(val->tag >> YYJSON_TAG_BIT); |
4658 | 0 | return len * sizeof(yyjson_val) + sizeof(yyjson_val) == ofs; |
4659 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_arr_is_flat(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_arr_is_flat(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_arr_is_flat(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_arr_is_flat(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_arr_is_flat(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_arr_is_flat(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_arr_is_flat(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_arr_is_flat(duckdb_yyjson::yyjson_val*) |
4660 | | |
4661 | 0 | yyjson_api_inline const char *unsafe_yyjson_get_raw(void *val) { |
4662 | 0 | return ((yyjson_val *)val)->uni.str; |
4663 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_raw(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_raw(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_raw(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_raw(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_raw(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_raw(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_raw(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_raw(void*) |
4664 | | |
4665 | 0 | yyjson_api_inline bool unsafe_yyjson_get_bool(void *val) { |
4666 | 0 | uint8_t tag = unsafe_yyjson_get_tag(val); |
4667 | 0 | return (bool)((tag & YYJSON_SUBTYPE_MASK) >> YYJSON_TYPE_BIT); |
4668 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_bool(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_bool(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_bool(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_bool(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_bool(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_bool(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_bool(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_bool(void*) |
4669 | | |
4670 | 0 | yyjson_api_inline uint64_t unsafe_yyjson_get_uint(void *val) { |
4671 | 0 | return ((yyjson_val *)val)->uni.u64; |
4672 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_uint(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_uint(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_uint(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_uint(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_uint(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_uint(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_uint(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_uint(void*) |
4673 | | |
4674 | 0 | yyjson_api_inline int64_t unsafe_yyjson_get_sint(void *val) { |
4675 | 0 | return ((yyjson_val *)val)->uni.i64; |
4676 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_sint(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_sint(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_sint(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_sint(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_sint(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_sint(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_sint(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_sint(void*) |
4677 | | |
4678 | 0 | yyjson_api_inline int unsafe_yyjson_get_int(void *val) { |
4679 | 0 | return (int)((yyjson_val *)val)->uni.i64; |
4680 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_int(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_int(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_int(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_int(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_int(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_int(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_int(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_int(void*) |
4681 | | |
4682 | 0 | yyjson_api_inline double unsafe_yyjson_get_real(void *val) { |
4683 | 0 | return ((yyjson_val *)val)->uni.f64; |
4684 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_real(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_real(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_real(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_real(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_real(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_real(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_real(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_real(void*) |
4685 | | |
4686 | 0 | yyjson_api_inline double unsafe_yyjson_get_num(void *val) { |
4687 | 0 | uint8_t tag = unsafe_yyjson_get_tag(val); |
4688 | 0 | if (tag == (YYJSON_TYPE_NUM | YYJSON_SUBTYPE_REAL)) { |
4689 | 0 | return ((yyjson_val *)val)->uni.f64; |
4690 | 0 | } else if (tag == (YYJSON_TYPE_NUM | YYJSON_SUBTYPE_SINT)) { |
4691 | 0 | return (double)((yyjson_val *)val)->uni.i64; |
4692 | 0 | } else if (tag == (YYJSON_TYPE_NUM | YYJSON_SUBTYPE_UINT)) { |
4693 | 0 | #if YYJSON_U64_TO_F64_NO_IMPL |
4694 | 0 | uint64_t msb = ((uint64_t)1) << 63; |
4695 | 0 | uint64_t num = ((yyjson_val *)val)->uni.u64; |
4696 | 0 | if ((num & msb) == 0) { |
4697 | 0 | return (double)(int64_t)num; |
4698 | 0 | } else { |
4699 | 0 | return ((double)(int64_t)((num >> 1) | (num & 1))) * (double)2.0; |
4700 | 0 | } |
4701 | 0 | #else |
4702 | 0 | return (double)((yyjson_val *)val)->uni.u64; |
4703 | 0 | #endif |
4704 | 0 | } |
4705 | 0 | return 0.0; |
4706 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_num(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_num(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_num(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_num(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_num(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_num(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_num(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_num(void*) |
4707 | | |
4708 | 3.14M | yyjson_api_inline const char *unsafe_yyjson_get_str(void *val) { |
4709 | 3.14M | return ((yyjson_val *)val)->uni.str; |
4710 | 3.14M | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_str(void*) Line | Count | Source | 4708 | 1.50M | yyjson_api_inline const char *unsafe_yyjson_get_str(void *val) { | 4709 | 1.50M | return ((yyjson_val *)val)->uni.str; | 4710 | 1.50M | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_str(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_str(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_str(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_str(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_str(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_str(void*) yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_str(void*) Line | Count | Source | 4708 | 1.63M | yyjson_api_inline const char *unsafe_yyjson_get_str(void *val) { | 4709 | 1.63M | return ((yyjson_val *)val)->uni.str; | 4710 | 1.63M | } |
|
4711 | | |
4712 | 4.54M | yyjson_api_inline size_t unsafe_yyjson_get_len(void *val) { |
4713 | 4.54M | return (size_t)(((yyjson_val *)val)->tag >> YYJSON_TAG_BIT); |
4714 | 4.54M | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_len(void*) Line | Count | Source | 4712 | 2.48M | yyjson_api_inline size_t unsafe_yyjson_get_len(void *val) { | 4713 | 2.48M | return (size_t)(((yyjson_val *)val)->tag >> YYJSON_TAG_BIT); | 4714 | 2.48M | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_len(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_len(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_len(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_len(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_len(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_len(void*) yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_len(void*) Line | Count | Source | 4712 | 2.05M | yyjson_api_inline size_t unsafe_yyjson_get_len(void *val) { | 4713 | 2.05M | return (size_t)(((yyjson_val *)val)->tag >> YYJSON_TAG_BIT); | 4714 | 2.05M | } |
|
4715 | | |
4716 | 166k | yyjson_api_inline yyjson_val *unsafe_yyjson_get_first(yyjson_val *ctn) { |
4717 | 166k | return ctn + 1; |
4718 | 166k | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_first(duckdb_yyjson::yyjson_val*) Line | Count | Source | 4716 | 166k | yyjson_api_inline yyjson_val *unsafe_yyjson_get_first(yyjson_val *ctn) { | 4717 | 166k | return ctn + 1; | 4718 | 166k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_first(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_first(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_first(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_first(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_first(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_first(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_first(duckdb_yyjson::yyjson_val*) |
4719 | | |
4720 | 750k | yyjson_api_inline yyjson_val *unsafe_yyjson_get_next(yyjson_val *val) { |
4721 | 750k | bool is_ctn = unsafe_yyjson_is_ctn(val); |
4722 | 750k | size_t ctn_ofs = val->uni.ofs; |
4723 | 750k | size_t ofs = (is_ctn ? ctn_ofs : sizeof(yyjson_val)); |
4724 | 750k | return (yyjson_val *)(void *)((uint8_t *)val + ofs); |
4725 | 750k | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_next(duckdb_yyjson::yyjson_val*) Line | Count | Source | 4720 | 750k | yyjson_api_inline yyjson_val *unsafe_yyjson_get_next(yyjson_val *val) { | 4721 | 750k | bool is_ctn = unsafe_yyjson_is_ctn(val); | 4722 | 750k | size_t ctn_ofs = val->uni.ofs; | 4723 | 750k | size_t ofs = (is_ctn ? ctn_ofs : sizeof(yyjson_val)); | 4724 | 750k | return (yyjson_val *)(void *)((uint8_t *)val + ofs); | 4725 | 750k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_next(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_next(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_next(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_next(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_next(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_next(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_next(duckdb_yyjson::yyjson_val*) |
4726 | | |
4727 | | yyjson_api_inline bool unsafe_yyjson_equals_strn(void *val, const char *str, |
4728 | 0 | size_t len) { |
4729 | 0 | return unsafe_yyjson_get_len(val) == len && |
4730 | 0 | memcmp(((yyjson_val *)val)->uni.str, str, len) == 0; |
4731 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_equals_strn(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_equals_strn(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_equals_strn(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_equals_strn(void*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_equals_strn(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_equals_strn(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_equals_strn(void*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_equals_strn(void*, char const*, unsigned long) |
4732 | | |
4733 | 0 | yyjson_api_inline bool unsafe_yyjson_equals_str(void *val, const char *str) { |
4734 | 0 | return unsafe_yyjson_equals_strn(val, str, strlen(str)); |
4735 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_equals_str(void*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_equals_str(void*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_equals_str(void*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_equals_str(void*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_equals_str(void*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_equals_str(void*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_equals_str(void*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_equals_str(void*, char const*) |
4736 | | |
4737 | | yyjson_api_inline void unsafe_yyjson_set_type(void *val, yyjson_type type, |
4738 | 0 | yyjson_subtype subtype) { |
4739 | 0 | uint8_t tag = (type | subtype); |
4740 | 0 | uint64_t new_tag = ((yyjson_val *)val)->tag; |
4741 | 0 | new_tag = (new_tag & (~(uint64_t)YYJSON_TAG_MASK)) | (uint64_t)tag; |
4742 | 0 | ((yyjson_val *)val)->tag = new_tag; |
4743 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_set_type(void*, unsigned char, unsigned char) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_set_type(void*, unsigned char, unsigned char) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_set_type(void*, unsigned char, unsigned char) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_set_type(void*, unsigned char, unsigned char) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_set_type(void*, unsigned char, unsigned char) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_set_type(void*, unsigned char, unsigned char) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_set_type(void*, unsigned char, unsigned char) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_set_type(void*, unsigned char, unsigned char) |
4744 | | |
4745 | 819k | yyjson_api_inline void unsafe_yyjson_set_len(void *val, size_t len) { |
4746 | 819k | uint64_t tag = ((yyjson_val *)val)->tag & YYJSON_TAG_MASK; |
4747 | 819k | tag |= (uint64_t)len << YYJSON_TAG_BIT; |
4748 | 819k | ((yyjson_val *)val)->tag = tag; |
4749 | 819k | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_set_len(void*, unsigned long) Line | Count | Source | 4745 | 819k | yyjson_api_inline void unsafe_yyjson_set_len(void *val, size_t len) { | 4746 | 819k | uint64_t tag = ((yyjson_val *)val)->tag & YYJSON_TAG_MASK; | 4747 | 819k | tag |= (uint64_t)len << YYJSON_TAG_BIT; | 4748 | 819k | ((yyjson_val *)val)->tag = tag; | 4749 | 819k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_set_len(void*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_set_len(void*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_set_len(void*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_set_len(void*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_set_len(void*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_set_len(void*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_set_len(void*, unsigned long) |
4750 | | |
4751 | 0 | yyjson_api_inline void unsafe_yyjson_inc_len(void *val) { |
4752 | 0 | uint64_t tag = ((yyjson_val *)val)->tag; |
4753 | 0 | tag += (uint64_t)(1 << YYJSON_TAG_BIT); |
4754 | 0 | ((yyjson_val *)val)->tag = tag; |
4755 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_inc_len(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_inc_len(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_inc_len(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_inc_len(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_inc_len(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_inc_len(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_inc_len(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_inc_len(void*) |
4756 | | |
4757 | | yyjson_api_inline void unsafe_yyjson_set_raw(void *val, const char *raw, |
4758 | 0 | size_t len) { |
4759 | 0 | unsafe_yyjson_set_type(val, YYJSON_TYPE_RAW, YYJSON_SUBTYPE_NONE); |
4760 | 0 | unsafe_yyjson_set_len(val, len); |
4761 | 0 | ((yyjson_val *)val)->uni.str = raw; |
4762 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_set_raw(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_set_raw(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_set_raw(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_set_raw(void*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_set_raw(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_set_raw(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_set_raw(void*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_set_raw(void*, char const*, unsigned long) |
4763 | | |
4764 | 0 | yyjson_api_inline void unsafe_yyjson_set_null(void *val) { |
4765 | 0 | unsafe_yyjson_set_type(val, YYJSON_TYPE_NULL, YYJSON_SUBTYPE_NONE); |
4766 | 0 | unsafe_yyjson_set_len(val, 0); |
4767 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_set_null(void*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_set_null(void*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_set_null(void*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_set_null(void*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_set_null(void*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_set_null(void*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_set_null(void*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_set_null(void*) |
4768 | | |
4769 | 0 | yyjson_api_inline void unsafe_yyjson_set_bool(void *val, bool num) { |
4770 | 0 | yyjson_subtype subtype = num ? YYJSON_SUBTYPE_TRUE : YYJSON_SUBTYPE_FALSE; |
4771 | 0 | unsafe_yyjson_set_type(val, YYJSON_TYPE_BOOL, subtype); |
4772 | 0 | unsafe_yyjson_set_len(val, 0); |
4773 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_set_bool(void*, bool) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_set_bool(void*, bool) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_set_bool(void*, bool) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_set_bool(void*, bool) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_set_bool(void*, bool) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_set_bool(void*, bool) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_set_bool(void*, bool) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_set_bool(void*, bool) |
4774 | | |
4775 | 0 | yyjson_api_inline void unsafe_yyjson_set_uint(void *val, uint64_t num) { |
4776 | 0 | unsafe_yyjson_set_type(val, YYJSON_TYPE_NUM, YYJSON_SUBTYPE_UINT); |
4777 | 0 | unsafe_yyjson_set_len(val, 0); |
4778 | 0 | ((yyjson_val *)val)->uni.u64 = num; |
4779 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_set_uint(void*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_set_uint(void*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_set_uint(void*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_set_uint(void*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_set_uint(void*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_set_uint(void*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_set_uint(void*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_set_uint(void*, unsigned long) |
4780 | | |
4781 | 0 | yyjson_api_inline void unsafe_yyjson_set_sint(void *val, int64_t num) { |
4782 | 0 | unsafe_yyjson_set_type(val, YYJSON_TYPE_NUM, YYJSON_SUBTYPE_SINT); |
4783 | 0 | unsafe_yyjson_set_len(val, 0); |
4784 | 0 | ((yyjson_val *)val)->uni.i64 = num; |
4785 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_set_sint(void*, long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_set_sint(void*, long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_set_sint(void*, long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_set_sint(void*, long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_set_sint(void*, long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_set_sint(void*, long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_set_sint(void*, long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_set_sint(void*, long) |
4786 | | |
4787 | 0 | yyjson_api_inline void unsafe_yyjson_set_real(void *val, double num) { |
4788 | 0 | unsafe_yyjson_set_type(val, YYJSON_TYPE_NUM, YYJSON_SUBTYPE_REAL); |
4789 | 0 | unsafe_yyjson_set_len(val, 0); |
4790 | 0 | ((yyjson_val *)val)->uni.f64 = num; |
4791 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_set_real(void*, double) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_set_real(void*, double) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_set_real(void*, double) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_set_real(void*, double) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_set_real(void*, double) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_set_real(void*, double) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_set_real(void*, double) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_set_real(void*, double) |
4792 | | |
4793 | 0 | yyjson_api_inline void unsafe_yyjson_set_str(void *val, const char *str) { |
4794 | 0 | size_t len = strlen(str); |
4795 | 0 | bool noesc = unsafe_yyjson_is_str_noesc(str, len); |
4796 | 0 | yyjson_subtype sub = noesc ? YYJSON_SUBTYPE_NOESC : YYJSON_SUBTYPE_NONE; |
4797 | 0 | unsafe_yyjson_set_type(val, YYJSON_TYPE_STR, sub); |
4798 | 0 | unsafe_yyjson_set_len(val, len); |
4799 | 0 | ((yyjson_val *)val)->uni.str = str; |
4800 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_set_str(void*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_set_str(void*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_set_str(void*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_set_str(void*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_set_str(void*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_set_str(void*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_set_str(void*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_set_str(void*, char const*) |
4801 | | |
4802 | | yyjson_api_inline void unsafe_yyjson_set_strn(void *val, const char *str, |
4803 | 0 | size_t len) { |
4804 | 0 | unsafe_yyjson_set_type(val, YYJSON_TYPE_STR, YYJSON_SUBTYPE_NONE); |
4805 | 0 | unsafe_yyjson_set_len(val, len); |
4806 | 0 | ((yyjson_val *)val)->uni.str = str; |
4807 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_set_strn(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_set_strn(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_set_strn(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_set_strn(void*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_set_strn(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_set_strn(void*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_set_strn(void*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_set_strn(void*, char const*, unsigned long) |
4808 | | |
4809 | 0 | yyjson_api_inline void unsafe_yyjson_set_arr(void *val, size_t size) { |
4810 | 0 | unsafe_yyjson_set_type(val, YYJSON_TYPE_ARR, YYJSON_SUBTYPE_NONE); |
4811 | 0 | unsafe_yyjson_set_len(val, size); |
4812 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_set_arr(void*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_set_arr(void*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_set_arr(void*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_set_arr(void*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_set_arr(void*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_set_arr(void*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_set_arr(void*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_set_arr(void*, unsigned long) |
4813 | | |
4814 | 0 | yyjson_api_inline void unsafe_yyjson_set_obj(void *val, size_t size) { |
4815 | 0 | unsafe_yyjson_set_type(val, YYJSON_TYPE_OBJ, YYJSON_SUBTYPE_NONE); |
4816 | 0 | unsafe_yyjson_set_len(val, size); |
4817 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_set_obj(void*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_set_obj(void*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_set_obj(void*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_set_obj(void*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_set_obj(void*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_set_obj(void*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_set_obj(void*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_set_obj(void*, unsigned long) |
4818 | | |
4819 | | |
4820 | | |
4821 | | /*============================================================================== |
4822 | | * JSON Document API (Implementation) |
4823 | | *============================================================================*/ |
4824 | | |
4825 | 166k | yyjson_api_inline yyjson_val *yyjson_doc_get_root(yyjson_doc *doc) { |
4826 | 166k | return doc ? doc->root : NULL; |
4827 | 166k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_doc_get_root(duckdb_yyjson::yyjson_doc*) Line | Count | Source | 4825 | 166k | yyjson_api_inline yyjson_val *yyjson_doc_get_root(yyjson_doc *doc) { | 4826 | 166k | return doc ? doc->root : NULL; | 4827 | 166k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_doc_get_root(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_doc_get_root(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_doc_get_root(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_doc_get_root(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_doc_get_root(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_doc_get_root(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_doc_get_root(duckdb_yyjson::yyjson_doc*) |
4828 | | |
4829 | 0 | yyjson_api_inline size_t yyjson_doc_get_read_size(yyjson_doc *doc) { |
4830 | 0 | return doc ? doc->dat_read : 0; |
4831 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_doc_get_read_size(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_doc_get_read_size(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_doc_get_read_size(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_doc_get_read_size(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_doc_get_read_size(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_doc_get_read_size(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_doc_get_read_size(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_doc_get_read_size(duckdb_yyjson::yyjson_doc*) |
4832 | | |
4833 | 0 | yyjson_api_inline size_t yyjson_doc_get_val_count(yyjson_doc *doc) { |
4834 | 0 | return doc ? doc->val_read : 0; |
4835 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_doc_get_val_count(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_doc_get_val_count(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_doc_get_val_count(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_doc_get_val_count(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_doc_get_val_count(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_doc_get_val_count(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_doc_get_val_count(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_doc_get_val_count(duckdb_yyjson::yyjson_doc*) |
4836 | | |
4837 | 166k | yyjson_api_inline void yyjson_doc_free(yyjson_doc *doc) { |
4838 | 166k | if (doc) { |
4839 | 166k | yyjson_alc alc = doc->alc; |
4840 | 166k | memset(&doc->alc, 0, sizeof(alc)); |
4841 | 166k | if (doc->str_pool) alc.free(alc.ctx, doc->str_pool); |
4842 | 166k | alc.free(alc.ctx, doc); |
4843 | 166k | } |
4844 | 166k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_doc_free(duckdb_yyjson::yyjson_doc*) Line | Count | Source | 4837 | 166k | yyjson_api_inline void yyjson_doc_free(yyjson_doc *doc) { | 4838 | 166k | if (doc) { | 4839 | 166k | yyjson_alc alc = doc->alc; | 4840 | 166k | memset(&doc->alc, 0, sizeof(alc)); | 4841 | 166k | if (doc->str_pool) alc.free(alc.ctx, doc->str_pool); | 4842 | 166k | alc.free(alc.ctx, doc); | 4843 | 166k | } | 4844 | 166k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_doc_free(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_doc_free(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_doc_free(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_doc_free(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_doc_free(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_doc_free(duckdb_yyjson::yyjson_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_doc_free(duckdb_yyjson::yyjson_doc*) |
4845 | | |
4846 | | |
4847 | | |
4848 | | /*============================================================================== |
4849 | | * JSON Value Type API (Implementation) |
4850 | | *============================================================================*/ |
4851 | | |
4852 | 0 | yyjson_api_inline bool yyjson_is_raw(yyjson_val *val) { |
4853 | 0 | return val ? unsafe_yyjson_is_raw(val) : false; |
4854 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_raw(duckdb_yyjson::yyjson_val*) |
4855 | | |
4856 | 0 | yyjson_api_inline bool yyjson_is_null(yyjson_val *val) { |
4857 | 0 | return val ? unsafe_yyjson_is_null(val) : false; |
4858 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_null(duckdb_yyjson::yyjson_val*) |
4859 | | |
4860 | 0 | yyjson_api_inline bool yyjson_is_true(yyjson_val *val) { |
4861 | 0 | return val ? unsafe_yyjson_is_true(val) : false; |
4862 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_true(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_true(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_true(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_true(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_true(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_true(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_true(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_true(duckdb_yyjson::yyjson_val*) |
4863 | | |
4864 | 0 | yyjson_api_inline bool yyjson_is_false(yyjson_val *val) { |
4865 | 0 | return val ? unsafe_yyjson_is_false(val) : false; |
4866 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_false(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_false(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_false(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_false(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_false(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_false(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_false(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_false(duckdb_yyjson::yyjson_val*) |
4867 | | |
4868 | 0 | yyjson_api_inline bool yyjson_is_bool(yyjson_val *val) { |
4869 | 0 | return val ? unsafe_yyjson_is_bool(val) : false; |
4870 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_bool(duckdb_yyjson::yyjson_val*) |
4871 | | |
4872 | 0 | yyjson_api_inline bool yyjson_is_uint(yyjson_val *val) { |
4873 | 0 | return val ? unsafe_yyjson_is_uint(val) : false; |
4874 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_uint(duckdb_yyjson::yyjson_val*) |
4875 | | |
4876 | 0 | yyjson_api_inline bool yyjson_is_sint(yyjson_val *val) { |
4877 | 0 | return val ? unsafe_yyjson_is_sint(val) : false; |
4878 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_sint(duckdb_yyjson::yyjson_val*) |
4879 | | |
4880 | 0 | yyjson_api_inline bool yyjson_is_int(yyjson_val *val) { |
4881 | 0 | return val ? unsafe_yyjson_is_int(val) : false; |
4882 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_int(duckdb_yyjson::yyjson_val*) |
4883 | | |
4884 | 0 | yyjson_api_inline bool yyjson_is_real(yyjson_val *val) { |
4885 | 0 | return val ? unsafe_yyjson_is_real(val) : false; |
4886 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_real(duckdb_yyjson::yyjson_val*) |
4887 | | |
4888 | 0 | yyjson_api_inline bool yyjson_is_num(yyjson_val *val) { |
4889 | 0 | return val ? unsafe_yyjson_is_num(val) : false; |
4890 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_num(duckdb_yyjson::yyjson_val*) |
4891 | | |
4892 | 1.50M | yyjson_api_inline bool yyjson_is_str(yyjson_val *val) { |
4893 | 1.50M | return val ? unsafe_yyjson_is_str(val) : false; |
4894 | 1.50M | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_str(duckdb_yyjson::yyjson_val*) Line | Count | Source | 4892 | 1.50M | yyjson_api_inline bool yyjson_is_str(yyjson_val *val) { | 4893 | 1.50M | return val ? unsafe_yyjson_is_str(val) : false; | 4894 | 1.50M | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_str(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_str(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_str(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_str(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_str(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_str(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_str(duckdb_yyjson::yyjson_val*) |
4895 | | |
4896 | 0 | yyjson_api_inline bool yyjson_is_arr(yyjson_val *val) { |
4897 | 0 | return val ? unsafe_yyjson_is_arr(val) : false; |
4898 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_arr(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_arr(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_arr(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_arr(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_arr(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_arr(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_arr(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_arr(duckdb_yyjson::yyjson_val*) |
4899 | | |
4900 | 166k | yyjson_api_inline bool yyjson_is_obj(yyjson_val *val) { |
4901 | 166k | return val ? unsafe_yyjson_is_obj(val) : false; |
4902 | 166k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_obj(duckdb_yyjson::yyjson_val*) Line | Count | Source | 4900 | 166k | yyjson_api_inline bool yyjson_is_obj(yyjson_val *val) { | 4901 | 166k | return val ? unsafe_yyjson_is_obj(val) : false; | 4902 | 166k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_obj(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_obj(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_obj(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_obj(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_obj(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_obj(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_obj(duckdb_yyjson::yyjson_val*) |
4903 | | |
4904 | 0 | yyjson_api_inline bool yyjson_is_ctn(yyjson_val *val) { |
4905 | 0 | return val ? unsafe_yyjson_is_ctn(val) : false; |
4906 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_is_ctn(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_is_ctn(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_is_ctn(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_is_ctn(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_is_ctn(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_is_ctn(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_is_ctn(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_is_ctn(duckdb_yyjson::yyjson_val*) |
4907 | | |
4908 | | |
4909 | | |
4910 | | /*============================================================================== |
4911 | | * JSON Value Content API (Implementation) |
4912 | | *============================================================================*/ |
4913 | | |
4914 | 166k | yyjson_api_inline yyjson_type yyjson_get_type(yyjson_val *val) { |
4915 | 166k | return val ? unsafe_yyjson_get_type(val) : YYJSON_TYPE_NONE; |
4916 | 166k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_type(duckdb_yyjson::yyjson_val*) Line | Count | Source | 4914 | 166k | yyjson_api_inline yyjson_type yyjson_get_type(yyjson_val *val) { | 4915 | 166k | return val ? unsafe_yyjson_get_type(val) : YYJSON_TYPE_NONE; | 4916 | 166k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_type(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_type(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_type(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_type(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_type(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_type(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_type(duckdb_yyjson::yyjson_val*) |
4917 | | |
4918 | 0 | yyjson_api_inline yyjson_subtype yyjson_get_subtype(yyjson_val *val) { |
4919 | 0 | return val ? unsafe_yyjson_get_subtype(val) : YYJSON_SUBTYPE_NONE; |
4920 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_subtype(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_subtype(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_subtype(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_subtype(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_subtype(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_subtype(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_subtype(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_subtype(duckdb_yyjson::yyjson_val*) |
4921 | | |
4922 | 916k | yyjson_api_inline uint8_t yyjson_get_tag(yyjson_val *val) { |
4923 | 916k | return val ? unsafe_yyjson_get_tag(val) : 0; |
4924 | 916k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_tag(duckdb_yyjson::yyjson_val*) Line | Count | Source | 4922 | 916k | yyjson_api_inline uint8_t yyjson_get_tag(yyjson_val *val) { | 4923 | 916k | return val ? unsafe_yyjson_get_tag(val) : 0; | 4924 | 916k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_tag(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_tag(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_tag(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_tag(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_tag(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_tag(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_tag(duckdb_yyjson::yyjson_val*) |
4925 | | |
4926 | 0 | yyjson_api_inline const char *yyjson_get_type_desc(yyjson_val *val) { |
4927 | 0 | switch (yyjson_get_tag(val)) { |
4928 | 0 | case YYJSON_TYPE_RAW | YYJSON_SUBTYPE_NONE: return "raw"; |
4929 | 0 | case YYJSON_TYPE_NULL | YYJSON_SUBTYPE_NONE: return "null"; |
4930 | 0 | case YYJSON_TYPE_STR | YYJSON_SUBTYPE_NONE: return "string"; |
4931 | 0 | case YYJSON_TYPE_STR | YYJSON_SUBTYPE_NOESC: return "string"; |
4932 | 0 | case YYJSON_TYPE_ARR | YYJSON_SUBTYPE_NONE: return "array"; |
4933 | 0 | case YYJSON_TYPE_OBJ | YYJSON_SUBTYPE_NONE: return "object"; |
4934 | 0 | case YYJSON_TYPE_BOOL | YYJSON_SUBTYPE_TRUE: return "true"; |
4935 | 0 | case YYJSON_TYPE_BOOL | YYJSON_SUBTYPE_FALSE: return "false"; |
4936 | 0 | case YYJSON_TYPE_NUM | YYJSON_SUBTYPE_UINT: return "uint"; |
4937 | 0 | case YYJSON_TYPE_NUM | YYJSON_SUBTYPE_SINT: return "sint"; |
4938 | 0 | case YYJSON_TYPE_NUM | YYJSON_SUBTYPE_REAL: return "real"; |
4939 | 0 | default: return "unknown"; |
4940 | 0 | } |
4941 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_type_desc(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_type_desc(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_type_desc(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_type_desc(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_type_desc(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_type_desc(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_type_desc(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_type_desc(duckdb_yyjson::yyjson_val*) |
4942 | | |
4943 | 0 | yyjson_api_inline const char *yyjson_get_raw(yyjson_val *val) { |
4944 | 0 | return yyjson_is_raw(val) ? unsafe_yyjson_get_raw(val) : NULL; |
4945 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_raw(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_raw(duckdb_yyjson::yyjson_val*) |
4946 | | |
4947 | 0 | yyjson_api_inline bool yyjson_get_bool(yyjson_val *val) { |
4948 | 0 | return yyjson_is_bool(val) ? unsafe_yyjson_get_bool(val) : false; |
4949 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_bool(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_bool(duckdb_yyjson::yyjson_val*) |
4950 | | |
4951 | 0 | yyjson_api_inline uint64_t yyjson_get_uint(yyjson_val *val) { |
4952 | 0 | return yyjson_is_int(val) ? unsafe_yyjson_get_uint(val) : 0; |
4953 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_uint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_uint(duckdb_yyjson::yyjson_val*) |
4954 | | |
4955 | 0 | yyjson_api_inline int64_t yyjson_get_sint(yyjson_val *val) { |
4956 | 0 | return yyjson_is_int(val) ? unsafe_yyjson_get_sint(val) : 0; |
4957 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_sint(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_sint(duckdb_yyjson::yyjson_val*) |
4958 | | |
4959 | 0 | yyjson_api_inline int yyjson_get_int(yyjson_val *val) { |
4960 | 0 | return yyjson_is_int(val) ? unsafe_yyjson_get_int(val) : 0; |
4961 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_int(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_int(duckdb_yyjson::yyjson_val*) |
4962 | | |
4963 | 0 | yyjson_api_inline double yyjson_get_real(yyjson_val *val) { |
4964 | 0 | return yyjson_is_real(val) ? unsafe_yyjson_get_real(val) : 0.0; |
4965 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_real(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_real(duckdb_yyjson::yyjson_val*) |
4966 | | |
4967 | 0 | yyjson_api_inline double yyjson_get_num(yyjson_val *val) { |
4968 | 0 | return val ? unsafe_yyjson_get_num(val) : 0.0; |
4969 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_num(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_num(duckdb_yyjson::yyjson_val*) |
4970 | | |
4971 | 1.50M | yyjson_api_inline const char *yyjson_get_str(yyjson_val *val) { |
4972 | 1.50M | return yyjson_is_str(val) ? unsafe_yyjson_get_str(val) : NULL; |
4973 | 1.50M | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_str(duckdb_yyjson::yyjson_val*) Line | Count | Source | 4971 | 1.50M | yyjson_api_inline const char *yyjson_get_str(yyjson_val *val) { | 4972 | 1.50M | return yyjson_is_str(val) ? unsafe_yyjson_get_str(val) : NULL; | 4973 | 1.50M | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_str(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_str(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_str(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_str(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_str(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_str(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_str(duckdb_yyjson::yyjson_val*) |
4974 | | |
4975 | 1.50M | yyjson_api_inline size_t yyjson_get_len(yyjson_val *val) { |
4976 | 1.50M | return val ? unsafe_yyjson_get_len(val) : 0; |
4977 | 1.50M | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_len(duckdb_yyjson::yyjson_val*) Line | Count | Source | 4975 | 1.50M | yyjson_api_inline size_t yyjson_get_len(yyjson_val *val) { | 4976 | 1.50M | return val ? unsafe_yyjson_get_len(val) : 0; | 4977 | 1.50M | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_len(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_len(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_len(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_len(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_len(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_len(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_len(duckdb_yyjson::yyjson_val*) |
4978 | | |
4979 | 0 | yyjson_api_inline bool yyjson_equals_str(yyjson_val *val, const char *str) { |
4980 | 0 | if (yyjson_likely(val && str)) { |
4981 | 0 | return unsafe_yyjson_is_str(val) && |
4982 | 0 | unsafe_yyjson_equals_str(val, str); |
4983 | 0 | } |
4984 | 0 | return false; |
4985 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_equals_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_equals_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_equals_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_equals_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_equals_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_equals_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_equals_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_equals_str(duckdb_yyjson::yyjson_val*, char const*) |
4986 | | |
4987 | | yyjson_api_inline bool yyjson_equals_strn(yyjson_val *val, const char *str, |
4988 | 0 | size_t len) { |
4989 | 0 | if (yyjson_likely(val && str)) { |
4990 | 0 | return unsafe_yyjson_is_str(val) && |
4991 | 0 | unsafe_yyjson_equals_strn(val, str, len); |
4992 | 0 | } |
4993 | 0 | return false; |
4994 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_equals_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_equals_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_equals_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_equals_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_equals_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_equals_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_equals_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_equals_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) |
4995 | | |
4996 | | yyjson_api bool unsafe_yyjson_equals(yyjson_val *lhs, yyjson_val *rhs); |
4997 | | |
4998 | 0 | yyjson_api_inline bool yyjson_equals(yyjson_val *lhs, yyjson_val *rhs) { |
4999 | 0 | if (yyjson_unlikely(!lhs || !rhs)) return false; |
5000 | 0 | return unsafe_yyjson_equals(lhs, rhs); |
5001 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_equals(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_equals(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_equals(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_equals(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_equals(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_equals(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_equals(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_equals(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_val*) |
5002 | | |
5003 | | yyjson_api_inline bool yyjson_set_raw(yyjson_val *val, |
5004 | 0 | const char *raw, size_t len) { |
5005 | 0 | if (yyjson_unlikely(!val || unsafe_yyjson_is_ctn(val))) return false; |
5006 | 0 | unsafe_yyjson_set_raw(val, raw, len); |
5007 | 0 | return true; |
5008 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_set_raw(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_set_raw(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_set_raw(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_set_raw(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_set_raw(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_set_raw(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_set_raw(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_set_raw(duckdb_yyjson::yyjson_val*, char const*, unsigned long) |
5009 | | |
5010 | 0 | yyjson_api_inline bool yyjson_set_null(yyjson_val *val) { |
5011 | 0 | if (yyjson_unlikely(!val || unsafe_yyjson_is_ctn(val))) return false; |
5012 | 0 | unsafe_yyjson_set_null(val); |
5013 | 0 | return true; |
5014 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_set_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_set_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_set_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_set_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_set_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_set_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_set_null(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_set_null(duckdb_yyjson::yyjson_val*) |
5015 | | |
5016 | 0 | yyjson_api_inline bool yyjson_set_bool(yyjson_val *val, bool num) { |
5017 | 0 | if (yyjson_unlikely(!val || unsafe_yyjson_is_ctn(val))) return false; |
5018 | 0 | unsafe_yyjson_set_bool(val, num); |
5019 | 0 | return true; |
5020 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_set_bool(duckdb_yyjson::yyjson_val*, bool) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_set_bool(duckdb_yyjson::yyjson_val*, bool) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_set_bool(duckdb_yyjson::yyjson_val*, bool) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_set_bool(duckdb_yyjson::yyjson_val*, bool) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_set_bool(duckdb_yyjson::yyjson_val*, bool) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_set_bool(duckdb_yyjson::yyjson_val*, bool) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_set_bool(duckdb_yyjson::yyjson_val*, bool) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_set_bool(duckdb_yyjson::yyjson_val*, bool) |
5021 | | |
5022 | 0 | yyjson_api_inline bool yyjson_set_uint(yyjson_val *val, uint64_t num) { |
5023 | 0 | if (yyjson_unlikely(!val || unsafe_yyjson_is_ctn(val))) return false; |
5024 | 0 | unsafe_yyjson_set_uint(val, num); |
5025 | 0 | return true; |
5026 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_set_uint(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_set_uint(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_set_uint(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_set_uint(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_set_uint(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_set_uint(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_set_uint(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_set_uint(duckdb_yyjson::yyjson_val*, unsigned long) |
5027 | | |
5028 | 0 | yyjson_api_inline bool yyjson_set_sint(yyjson_val *val, int64_t num) { |
5029 | 0 | if (yyjson_unlikely(!val || unsafe_yyjson_is_ctn(val))) return false; |
5030 | 0 | unsafe_yyjson_set_sint(val, num); |
5031 | 0 | return true; |
5032 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_set_sint(duckdb_yyjson::yyjson_val*, long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_set_sint(duckdb_yyjson::yyjson_val*, long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_set_sint(duckdb_yyjson::yyjson_val*, long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_set_sint(duckdb_yyjson::yyjson_val*, long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_set_sint(duckdb_yyjson::yyjson_val*, long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_set_sint(duckdb_yyjson::yyjson_val*, long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_set_sint(duckdb_yyjson::yyjson_val*, long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_set_sint(duckdb_yyjson::yyjson_val*, long) |
5033 | | |
5034 | 0 | yyjson_api_inline bool yyjson_set_int(yyjson_val *val, int num) { |
5035 | 0 | if (yyjson_unlikely(!val || unsafe_yyjson_is_ctn(val))) return false; |
5036 | 0 | unsafe_yyjson_set_sint(val, (int64_t)num); |
5037 | 0 | return true; |
5038 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_set_int(duckdb_yyjson::yyjson_val*, int) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_set_int(duckdb_yyjson::yyjson_val*, int) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_set_int(duckdb_yyjson::yyjson_val*, int) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_set_int(duckdb_yyjson::yyjson_val*, int) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_set_int(duckdb_yyjson::yyjson_val*, int) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_set_int(duckdb_yyjson::yyjson_val*, int) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_set_int(duckdb_yyjson::yyjson_val*, int) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_set_int(duckdb_yyjson::yyjson_val*, int) |
5039 | | |
5040 | 0 | yyjson_api_inline bool yyjson_set_real(yyjson_val *val, double num) { |
5041 | 0 | if (yyjson_unlikely(!val || unsafe_yyjson_is_ctn(val))) return false; |
5042 | 0 | unsafe_yyjson_set_real(val, num); |
5043 | 0 | return true; |
5044 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_set_real(duckdb_yyjson::yyjson_val*, double) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_set_real(duckdb_yyjson::yyjson_val*, double) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_set_real(duckdb_yyjson::yyjson_val*, double) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_set_real(duckdb_yyjson::yyjson_val*, double) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_set_real(duckdb_yyjson::yyjson_val*, double) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_set_real(duckdb_yyjson::yyjson_val*, double) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_set_real(duckdb_yyjson::yyjson_val*, double) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_set_real(duckdb_yyjson::yyjson_val*, double) |
5045 | | |
5046 | 0 | yyjson_api_inline bool yyjson_set_str(yyjson_val *val, const char *str) { |
5047 | 0 | if (yyjson_unlikely(!val || unsafe_yyjson_is_ctn(val))) return false; |
5048 | 0 | if (yyjson_unlikely(!str)) return false; |
5049 | 0 | unsafe_yyjson_set_str(val, str); |
5050 | 0 | return true; |
5051 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_set_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_set_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_set_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_set_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_set_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_set_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_set_str(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_set_str(duckdb_yyjson::yyjson_val*, char const*) |
5052 | | |
5053 | | yyjson_api_inline bool yyjson_set_strn(yyjson_val *val, |
5054 | 0 | const char *str, size_t len) { |
5055 | 0 | if (yyjson_unlikely(!val || unsafe_yyjson_is_ctn(val))) return false; |
5056 | 0 | if (yyjson_unlikely(!str)) return false; |
5057 | 0 | unsafe_yyjson_set_strn(val, str, len); |
5058 | 0 | return true; |
5059 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_set_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_set_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_set_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_set_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_set_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_set_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_set_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_set_strn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) |
5060 | | |
5061 | | |
5062 | | |
5063 | | /*============================================================================== |
5064 | | * JSON Array API (Implementation) |
5065 | | *============================================================================*/ |
5066 | | |
5067 | 0 | yyjson_api_inline size_t yyjson_arr_size(yyjson_val *arr) { |
5068 | 0 | return yyjson_is_arr(arr) ? unsafe_yyjson_get_len(arr) : 0; |
5069 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_arr_size(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_arr_size(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_arr_size(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_arr_size(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_arr_size(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_arr_size(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_arr_size(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_arr_size(duckdb_yyjson::yyjson_val*) |
5070 | | |
5071 | 0 | yyjson_api_inline yyjson_val *yyjson_arr_get(yyjson_val *arr, size_t idx) { |
5072 | 0 | if (yyjson_likely(yyjson_is_arr(arr))) { |
5073 | 0 | if (yyjson_likely(unsafe_yyjson_get_len(arr) > idx)) { |
5074 | 0 | yyjson_val *val = unsafe_yyjson_get_first(arr); |
5075 | 0 | if (unsafe_yyjson_arr_is_flat(arr)) { |
5076 | 0 | return val + idx; |
5077 | 0 | } else { |
5078 | 0 | while (idx-- > 0) val = unsafe_yyjson_get_next(val); |
5079 | 0 | return val; |
5080 | 0 | } |
5081 | 0 | } |
5082 | 0 | } |
5083 | 0 | return NULL; |
5084 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_arr_get(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_arr_get(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_arr_get(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_arr_get(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_arr_get(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_arr_get(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_arr_get(duckdb_yyjson::yyjson_val*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_arr_get(duckdb_yyjson::yyjson_val*, unsigned long) |
5085 | | |
5086 | 0 | yyjson_api_inline yyjson_val *yyjson_arr_get_first(yyjson_val *arr) { |
5087 | 0 | if (yyjson_likely(yyjson_is_arr(arr))) { |
5088 | 0 | if (yyjson_likely(unsafe_yyjson_get_len(arr) > 0)) { |
5089 | 0 | return unsafe_yyjson_get_first(arr); |
5090 | 0 | } |
5091 | 0 | } |
5092 | 0 | return NULL; |
5093 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_arr_get_first(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_arr_get_first(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_arr_get_first(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_arr_get_first(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_arr_get_first(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_arr_get_first(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_arr_get_first(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_arr_get_first(duckdb_yyjson::yyjson_val*) |
5094 | | |
5095 | 0 | yyjson_api_inline yyjson_val *yyjson_arr_get_last(yyjson_val *arr) { |
5096 | 0 | if (yyjson_likely(yyjson_is_arr(arr))) { |
5097 | 0 | size_t len = unsafe_yyjson_get_len(arr); |
5098 | 0 | if (yyjson_likely(len > 0)) { |
5099 | 0 | yyjson_val *val = unsafe_yyjson_get_first(arr); |
5100 | 0 | if (unsafe_yyjson_arr_is_flat(arr)) { |
5101 | 0 | return val + (len - 1); |
5102 | 0 | } else { |
5103 | 0 | while (len-- > 1) val = unsafe_yyjson_get_next(val); |
5104 | 0 | return val; |
5105 | 0 | } |
5106 | 0 | } |
5107 | 0 | } |
5108 | 0 | return NULL; |
5109 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_arr_get_last(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_arr_get_last(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_arr_get_last(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_arr_get_last(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_arr_get_last(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_arr_get_last(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_arr_get_last(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_arr_get_last(duckdb_yyjson::yyjson_val*) |
5110 | | |
5111 | | |
5112 | | |
5113 | | /*============================================================================== |
5114 | | * JSON Array Iterator API (Implementation) |
5115 | | *============================================================================*/ |
5116 | | |
5117 | | yyjson_api_inline bool yyjson_arr_iter_init(yyjson_val *arr, |
5118 | 0 | yyjson_arr_iter *iter) { |
5119 | 0 | if (yyjson_likely(yyjson_is_arr(arr) && iter)) { |
5120 | 0 | iter->idx = 0; |
5121 | 0 | iter->max = unsafe_yyjson_get_len(arr); |
5122 | 0 | iter->cur = unsafe_yyjson_get_first(arr); |
5123 | 0 | return true; |
5124 | 0 | } |
5125 | 0 | if (iter) memset(iter, 0, sizeof(yyjson_arr_iter)); |
5126 | 0 | return false; |
5127 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_arr_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_arr_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_arr_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_arr_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_arr_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_arr_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_arr_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_arr_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_arr_iter*) |
5128 | | |
5129 | 0 | yyjson_api_inline yyjson_arr_iter yyjson_arr_iter_with(yyjson_val *arr) { |
5130 | 0 | yyjson_arr_iter iter; |
5131 | 0 | yyjson_arr_iter_init(arr, &iter); |
5132 | 0 | return iter; |
5133 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_arr_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_arr_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_arr_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_arr_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_arr_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_arr_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_arr_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_arr_iter_with(duckdb_yyjson::yyjson_val*) |
5134 | | |
5135 | 0 | yyjson_api_inline bool yyjson_arr_iter_has_next(yyjson_arr_iter *iter) { |
5136 | 0 | return iter ? iter->idx < iter->max : false; |
5137 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_arr_iter_has_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_arr_iter_has_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_arr_iter_has_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_arr_iter_has_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_arr_iter_has_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_arr_iter_has_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_arr_iter_has_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_arr_iter_has_next(duckdb_yyjson::yyjson_arr_iter*) |
5138 | | |
5139 | 0 | yyjson_api_inline yyjson_val *yyjson_arr_iter_next(yyjson_arr_iter *iter) { |
5140 | 0 | yyjson_val *val; |
5141 | 0 | if (iter && iter->idx < iter->max) { |
5142 | 0 | val = iter->cur; |
5143 | 0 | iter->cur = unsafe_yyjson_get_next(val); |
5144 | 0 | iter->idx++; |
5145 | 0 | return val; |
5146 | 0 | } |
5147 | 0 | return NULL; |
5148 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_arr_iter_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_arr_iter_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_arr_iter_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_arr_iter_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_arr_iter_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_arr_iter_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_arr_iter_next(duckdb_yyjson::yyjson_arr_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_arr_iter_next(duckdb_yyjson::yyjson_arr_iter*) |
5149 | | |
5150 | | |
5151 | | |
5152 | | /*============================================================================== |
5153 | | * JSON Object API (Implementation) |
5154 | | *============================================================================*/ |
5155 | | |
5156 | 166k | yyjson_api_inline size_t yyjson_obj_size(yyjson_val *obj) { |
5157 | 166k | return yyjson_is_obj(obj) ? unsafe_yyjson_get_len(obj) : 0; |
5158 | 166k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_obj_size(duckdb_yyjson::yyjson_val*) Line | Count | Source | 5156 | 166k | yyjson_api_inline size_t yyjson_obj_size(yyjson_val *obj) { | 5157 | 166k | return yyjson_is_obj(obj) ? unsafe_yyjson_get_len(obj) : 0; | 5158 | 166k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_obj_size(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_obj_size(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_obj_size(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_obj_size(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_obj_size(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_obj_size(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_obj_size(duckdb_yyjson::yyjson_val*) |
5159 | | |
5160 | | yyjson_api_inline yyjson_val *yyjson_obj_get(yyjson_val *obj, |
5161 | 0 | const char *key) { |
5162 | 0 | return yyjson_obj_getn(obj, key, key ? strlen(key) : 0); |
5163 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_obj_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_obj_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_obj_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_obj_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_obj_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_obj_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_obj_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_obj_get(duckdb_yyjson::yyjson_val*, char const*) |
5164 | | |
5165 | | yyjson_api_inline yyjson_val *yyjson_obj_getn(yyjson_val *obj, |
5166 | | const char *_key, |
5167 | 0 | size_t key_len) { |
5168 | 0 | if (yyjson_likely(yyjson_is_obj(obj) && _key)) { |
5169 | 0 | size_t len = unsafe_yyjson_get_len(obj); |
5170 | 0 | yyjson_val *key = unsafe_yyjson_get_first(obj); |
5171 | 0 | while (len-- > 0) { |
5172 | 0 | if (unsafe_yyjson_equals_strn(key, _key, key_len)) return key + 1; |
5173 | 0 | key = unsafe_yyjson_get_next(key + 1); |
5174 | 0 | } |
5175 | 0 | } |
5176 | 0 | return NULL; |
5177 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_obj_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_obj_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_obj_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_obj_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_obj_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_obj_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_obj_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_obj_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) |
5178 | | |
5179 | | |
5180 | | |
5181 | | /*============================================================================== |
5182 | | * JSON Object Iterator API (Implementation) |
5183 | | *============================================================================*/ |
5184 | | |
5185 | | yyjson_api_inline bool yyjson_obj_iter_init(yyjson_val *obj, |
5186 | 0 | yyjson_obj_iter *iter) { |
5187 | 0 | if (yyjson_likely(yyjson_is_obj(obj) && iter)) { |
5188 | 0 | iter->idx = 0; |
5189 | 0 | iter->max = unsafe_yyjson_get_len(obj); |
5190 | 0 | iter->cur = unsafe_yyjson_get_first(obj); |
5191 | 0 | iter->obj = obj; |
5192 | 0 | return true; |
5193 | 0 | } |
5194 | 0 | if (iter) memset(iter, 0, sizeof(yyjson_obj_iter)); |
5195 | 0 | return false; |
5196 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_obj_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_obj_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_obj_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_obj_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_obj_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_obj_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_obj_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_obj_iter_init(duckdb_yyjson::yyjson_val*, duckdb_yyjson::yyjson_obj_iter*) |
5197 | | |
5198 | 0 | yyjson_api_inline yyjson_obj_iter yyjson_obj_iter_with(yyjson_val *obj) { |
5199 | 0 | yyjson_obj_iter iter; |
5200 | 0 | yyjson_obj_iter_init(obj, &iter); |
5201 | 0 | return iter; |
5202 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_obj_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_obj_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_obj_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_obj_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_obj_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_obj_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_obj_iter_with(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_obj_iter_with(duckdb_yyjson::yyjson_val*) |
5203 | | |
5204 | 0 | yyjson_api_inline bool yyjson_obj_iter_has_next(yyjson_obj_iter *iter) { |
5205 | 0 | return iter ? iter->idx < iter->max : false; |
5206 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_obj_iter_has_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_obj_iter_has_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_obj_iter_has_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_obj_iter_has_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_obj_iter_has_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_obj_iter_has_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_obj_iter_has_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_obj_iter_has_next(duckdb_yyjson::yyjson_obj_iter*) |
5207 | | |
5208 | 0 | yyjson_api_inline yyjson_val *yyjson_obj_iter_next(yyjson_obj_iter *iter) { |
5209 | 0 | if (iter && iter->idx < iter->max) { |
5210 | 0 | yyjson_val *key = iter->cur; |
5211 | 0 | iter->idx++; |
5212 | 0 | iter->cur = unsafe_yyjson_get_next(key + 1); |
5213 | 0 | return key; |
5214 | 0 | } |
5215 | 0 | return NULL; |
5216 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_obj_iter_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_obj_iter_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_obj_iter_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_obj_iter_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_obj_iter_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_obj_iter_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_obj_iter_next(duckdb_yyjson::yyjson_obj_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_obj_iter_next(duckdb_yyjson::yyjson_obj_iter*) |
5217 | | |
5218 | 0 | yyjson_api_inline yyjson_val *yyjson_obj_iter_get_val(yyjson_val *key) { |
5219 | 0 | return key ? key + 1 : NULL; |
5220 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_obj_iter_get_val(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_obj_iter_get_val(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_obj_iter_get_val(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_obj_iter_get_val(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_obj_iter_get_val(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_obj_iter_get_val(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_obj_iter_get_val(duckdb_yyjson::yyjson_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_obj_iter_get_val(duckdb_yyjson::yyjson_val*) |
5221 | | |
5222 | | yyjson_api_inline yyjson_val *yyjson_obj_iter_get(yyjson_obj_iter *iter, |
5223 | 0 | const char *key) { |
5224 | 0 | return yyjson_obj_iter_getn(iter, key, key ? strlen(key) : 0); |
5225 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_obj_iter_get(duckdb_yyjson::yyjson_obj_iter*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_obj_iter_get(duckdb_yyjson::yyjson_obj_iter*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_obj_iter_get(duckdb_yyjson::yyjson_obj_iter*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_obj_iter_get(duckdb_yyjson::yyjson_obj_iter*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_obj_iter_get(duckdb_yyjson::yyjson_obj_iter*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_obj_iter_get(duckdb_yyjson::yyjson_obj_iter*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_obj_iter_get(duckdb_yyjson::yyjson_obj_iter*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_obj_iter_get(duckdb_yyjson::yyjson_obj_iter*, char const*) |
5226 | | |
5227 | | yyjson_api_inline yyjson_val *yyjson_obj_iter_getn(yyjson_obj_iter *iter, |
5228 | | const char *key, |
5229 | 0 | size_t key_len) { |
5230 | 0 | if (iter && key) { |
5231 | 0 | size_t idx = iter->idx; |
5232 | 0 | size_t max = iter->max; |
5233 | 0 | yyjson_val *cur = iter->cur; |
5234 | 0 | if (yyjson_unlikely(idx == max)) { |
5235 | 0 | idx = 0; |
5236 | 0 | cur = unsafe_yyjson_get_first(iter->obj); |
5237 | 0 | } |
5238 | 0 | while (idx++ < max) { |
5239 | 0 | yyjson_val *next = unsafe_yyjson_get_next(cur + 1); |
5240 | 0 | if (unsafe_yyjson_equals_strn(cur, key, key_len)) { |
5241 | 0 | iter->idx = idx; |
5242 | 0 | iter->cur = next; |
5243 | 0 | return cur + 1; |
5244 | 0 | } |
5245 | 0 | cur = next; |
5246 | 0 | if (idx == iter->max && iter->idx < iter->max) { |
5247 | 0 | idx = 0; |
5248 | 0 | max = iter->idx; |
5249 | 0 | cur = unsafe_yyjson_get_first(iter->obj); |
5250 | 0 | } |
5251 | 0 | } |
5252 | 0 | } |
5253 | 0 | return NULL; |
5254 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_obj_iter_getn(duckdb_yyjson::yyjson_obj_iter*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_obj_iter_getn(duckdb_yyjson::yyjson_obj_iter*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_obj_iter_getn(duckdb_yyjson::yyjson_obj_iter*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_obj_iter_getn(duckdb_yyjson::yyjson_obj_iter*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_obj_iter_getn(duckdb_yyjson::yyjson_obj_iter*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_obj_iter_getn(duckdb_yyjson::yyjson_obj_iter*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_obj_iter_getn(duckdb_yyjson::yyjson_obj_iter*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_obj_iter_getn(duckdb_yyjson::yyjson_obj_iter*, char const*, unsigned long) |
5255 | | |
5256 | | |
5257 | | |
5258 | | /*============================================================================== |
5259 | | * Mutable JSON Structure (Implementation) |
5260 | | *============================================================================*/ |
5261 | | |
5262 | | /** |
5263 | | Mutable JSON value, 24 bytes. |
5264 | | The 'tag' and 'uni' field is same as immutable value. |
5265 | | The 'next' field links all elements inside the container to be a cycle. |
5266 | | */ |
5267 | | struct yyjson_mut_val { |
5268 | | uint64_t tag; /**< type, subtype and length */ |
5269 | | yyjson_val_uni uni; /**< payload */ |
5270 | | yyjson_mut_val *next; /**< the next value in circular linked list */ |
5271 | | }; |
5272 | | |
5273 | | /** |
5274 | | A memory chunk in string memory pool. |
5275 | | */ |
5276 | | typedef struct yyjson_str_chunk { |
5277 | | struct yyjson_str_chunk *next; /* next chunk linked list */ |
5278 | | size_t chunk_size; /* chunk size in bytes */ |
5279 | | /* char str[]; flexible array member */ |
5280 | | } yyjson_str_chunk; |
5281 | | |
5282 | | /** |
5283 | | A memory pool to hold all strings in a mutable document. |
5284 | | */ |
5285 | | typedef struct yyjson_str_pool { |
5286 | | char *cur; /* cursor inside current chunk */ |
5287 | | char *end; /* the end of current chunk */ |
5288 | | size_t chunk_size; /* chunk size in bytes while creating new chunk */ |
5289 | | size_t chunk_size_max; /* maximum chunk size in bytes */ |
5290 | | yyjson_str_chunk *chunks; /* a linked list of chunks, nullable */ |
5291 | | } yyjson_str_pool; |
5292 | | |
5293 | | /** |
5294 | | A memory chunk in value memory pool. |
5295 | | `sizeof(yyjson_val_chunk)` should not larger than `sizeof(yyjson_mut_val)`. |
5296 | | */ |
5297 | | typedef struct yyjson_val_chunk { |
5298 | | struct yyjson_val_chunk *next; /* next chunk linked list */ |
5299 | | size_t chunk_size; /* chunk size in bytes */ |
5300 | | /* char pad[sizeof(yyjson_mut_val) - sizeof(yyjson_val_chunk)]; padding */ |
5301 | | /* yyjson_mut_val vals[]; flexible array member */ |
5302 | | } yyjson_val_chunk; |
5303 | | |
5304 | | /** |
5305 | | A memory pool to hold all values in a mutable document. |
5306 | | */ |
5307 | | typedef struct yyjson_val_pool { |
5308 | | yyjson_mut_val *cur; /* cursor inside current chunk */ |
5309 | | yyjson_mut_val *end; /* the end of current chunk */ |
5310 | | size_t chunk_size; /* chunk size in bytes while creating new chunk */ |
5311 | | size_t chunk_size_max; /* maximum chunk size in bytes */ |
5312 | | yyjson_val_chunk *chunks; /* a linked list of chunks, nullable */ |
5313 | | } yyjson_val_pool; |
5314 | | |
5315 | | struct yyjson_mut_doc { |
5316 | | yyjson_mut_val *root; /**< root value of the JSON document, nullable */ |
5317 | | yyjson_alc alc; /**< a valid allocator, nonnull */ |
5318 | | yyjson_str_pool str_pool; /**< string memory pool */ |
5319 | | yyjson_val_pool val_pool; /**< value memory pool */ |
5320 | | }; |
5321 | | |
5322 | | /* Ensures the capacity to at least equal to the specified byte length. */ |
5323 | | yyjson_api bool unsafe_yyjson_str_pool_grow(yyjson_str_pool *pool, |
5324 | | const yyjson_alc *alc, |
5325 | | size_t len); |
5326 | | |
5327 | | /* Ensures the capacity to at least equal to the specified value count. */ |
5328 | | yyjson_api bool unsafe_yyjson_val_pool_grow(yyjson_val_pool *pool, |
5329 | | const yyjson_alc *alc, |
5330 | | size_t count); |
5331 | | |
5332 | | /* Allocate memory for string. */ |
5333 | | yyjson_api_inline char *unsafe_yyjson_mut_str_alc(yyjson_mut_doc *doc, |
5334 | 1.22M | size_t len) { |
5335 | 1.22M | char *mem; |
5336 | 1.22M | const yyjson_alc *alc = &doc->alc; |
5337 | 1.22M | yyjson_str_pool *pool = &doc->str_pool; |
5338 | 1.22M | if (yyjson_unlikely((size_t)(pool->end - pool->cur) <= len)) { |
5339 | 284k | if (yyjson_unlikely(!unsafe_yyjson_str_pool_grow(pool, alc, len + 1))) { |
5340 | 0 | return NULL; |
5341 | 0 | } |
5342 | 284k | } |
5343 | 1.22M | mem = pool->cur; |
5344 | 1.22M | pool->cur = mem + len + 1; |
5345 | 1.22M | return mem; |
5346 | 1.22M | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_mut_str_alc(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Line | Count | Source | 5334 | 1.22M | size_t len) { | 5335 | 1.22M | char *mem; | 5336 | 1.22M | const yyjson_alc *alc = &doc->alc; | 5337 | 1.22M | yyjson_str_pool *pool = &doc->str_pool; | 5338 | 1.22M | if (yyjson_unlikely((size_t)(pool->end - pool->cur) <= len)) { | 5339 | 284k | if (yyjson_unlikely(!unsafe_yyjson_str_pool_grow(pool, alc, len + 1))) { | 5340 | 0 | return NULL; | 5341 | 0 | } | 5342 | 284k | } | 5343 | 1.22M | mem = pool->cur; | 5344 | 1.22M | pool->cur = mem + len + 1; | 5345 | 1.22M | return mem; | 5346 | 1.22M | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_mut_str_alc(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_mut_str_alc(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_mut_str_alc(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_mut_str_alc(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_mut_str_alc(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_mut_str_alc(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_mut_str_alc(duckdb_yyjson::yyjson_mut_doc*, unsigned long) |
5347 | | |
5348 | | yyjson_api_inline char *unsafe_yyjson_mut_strncpy(yyjson_mut_doc *doc, |
5349 | 1.22M | const char *str, size_t len) { |
5350 | 1.22M | char *mem = unsafe_yyjson_mut_str_alc(doc, len); |
5351 | 1.22M | if (yyjson_unlikely(!mem)) return NULL; |
5352 | 1.22M | memcpy((void *)mem, (const void *)str, len); |
5353 | 1.22M | mem[len] = '\0'; |
5354 | 1.22M | return mem; |
5355 | 1.22M | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Line | Count | Source | 5349 | 1.22M | const char *str, size_t len) { | 5350 | 1.22M | char *mem = unsafe_yyjson_mut_str_alc(doc, len); | 5351 | 1.22M | if (yyjson_unlikely(!mem)) return NULL; | 5352 | 1.22M | memcpy((void *)mem, (const void *)str, len); | 5353 | 1.22M | mem[len] = '\0'; | 5354 | 1.22M | return mem; | 5355 | 1.22M | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) |
5356 | | |
5357 | | yyjson_api_inline yyjson_mut_val *unsafe_yyjson_mut_val(yyjson_mut_doc *doc, |
5358 | 1.43M | size_t count) { |
5359 | 1.43M | yyjson_mut_val *val; |
5360 | 1.43M | yyjson_alc *alc = &doc->alc; |
5361 | 1.43M | yyjson_val_pool *pool = &doc->val_pool; |
5362 | 1.43M | if (yyjson_unlikely((size_t)(pool->end - pool->cur) < count)) { |
5363 | 209k | if (yyjson_unlikely(!unsafe_yyjson_val_pool_grow(pool, alc, count))) { |
5364 | 0 | return NULL; |
5365 | 0 | } |
5366 | 209k | } |
5367 | 1.43M | val = pool->cur; |
5368 | 1.43M | pool->cur += count; |
5369 | 1.43M | return val; |
5370 | 1.43M | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_mut_val(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Line | Count | Source | 5358 | 1.43M | size_t count) { | 5359 | 1.43M | yyjson_mut_val *val; | 5360 | 1.43M | yyjson_alc *alc = &doc->alc; | 5361 | 1.43M | yyjson_val_pool *pool = &doc->val_pool; | 5362 | 1.43M | if (yyjson_unlikely((size_t)(pool->end - pool->cur) < count)) { | 5363 | 209k | if (yyjson_unlikely(!unsafe_yyjson_val_pool_grow(pool, alc, count))) { | 5364 | 0 | return NULL; | 5365 | 0 | } | 5366 | 209k | } | 5367 | 1.43M | val = pool->cur; | 5368 | 1.43M | pool->cur += count; | 5369 | 1.43M | return val; | 5370 | 1.43M | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_mut_val(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_mut_val(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_mut_val(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_mut_val(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_mut_val(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_mut_val(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_mut_val(duckdb_yyjson::yyjson_mut_doc*, unsigned long) |
5371 | | |
5372 | | |
5373 | | |
5374 | | /*============================================================================== |
5375 | | * Mutable JSON Document API (Implementation) |
5376 | | *============================================================================*/ |
5377 | | |
5378 | 0 | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_get_root(yyjson_mut_doc *doc) { |
5379 | 0 | return doc ? doc->root : NULL; |
5380 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_get_root(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_get_root(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_get_root(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_get_root(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_get_root(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_get_root(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_get_root(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_get_root(duckdb_yyjson::yyjson_mut_doc*) |
5381 | | |
5382 | | yyjson_api_inline void yyjson_mut_doc_set_root(yyjson_mut_doc *doc, |
5383 | 207k | yyjson_mut_val *root) { |
5384 | 207k | if (doc) doc->root = root; |
5385 | 207k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_set_root(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Line | Count | Source | 5383 | 207k | yyjson_mut_val *root) { | 5384 | 207k | if (doc) doc->root = root; | 5385 | 207k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_set_root(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_set_root(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_set_root(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_set_root(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_set_root(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_set_root(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_set_root(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) |
5386 | | |
5387 | | |
5388 | | |
5389 | | /*============================================================================== |
5390 | | * Mutable JSON Value Type API (Implementation) |
5391 | | *============================================================================*/ |
5392 | | |
5393 | 0 | yyjson_api_inline bool yyjson_mut_is_raw(yyjson_mut_val *val) { |
5394 | 0 | return val ? unsafe_yyjson_is_raw(val) : false; |
5395 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_raw(duckdb_yyjson::yyjson_mut_val*) |
5396 | | |
5397 | 0 | yyjson_api_inline bool yyjson_mut_is_null(yyjson_mut_val *val) { |
5398 | 0 | return val ? unsafe_yyjson_is_null(val) : false; |
5399 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_null(duckdb_yyjson::yyjson_mut_val*) |
5400 | | |
5401 | 0 | yyjson_api_inline bool yyjson_mut_is_true(yyjson_mut_val *val) { |
5402 | 0 | return val ? unsafe_yyjson_is_true(val) : false; |
5403 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_true(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_true(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_true(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_true(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_true(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_true(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_true(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_true(duckdb_yyjson::yyjson_mut_val*) |
5404 | | |
5405 | 0 | yyjson_api_inline bool yyjson_mut_is_false(yyjson_mut_val *val) { |
5406 | 0 | return val ? unsafe_yyjson_is_false(val) : false; |
5407 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_false(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_false(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_false(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_false(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_false(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_false(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_false(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_false(duckdb_yyjson::yyjson_mut_val*) |
5408 | | |
5409 | 0 | yyjson_api_inline bool yyjson_mut_is_bool(yyjson_mut_val *val) { |
5410 | 0 | return val ? unsafe_yyjson_is_bool(val) : false; |
5411 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_bool(duckdb_yyjson::yyjson_mut_val*) |
5412 | | |
5413 | 0 | yyjson_api_inline bool yyjson_mut_is_uint(yyjson_mut_val *val) { |
5414 | 0 | return val ? unsafe_yyjson_is_uint(val) : false; |
5415 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_uint(duckdb_yyjson::yyjson_mut_val*) |
5416 | | |
5417 | 0 | yyjson_api_inline bool yyjson_mut_is_sint(yyjson_mut_val *val) { |
5418 | 0 | return val ? unsafe_yyjson_is_sint(val) : false; |
5419 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_sint(duckdb_yyjson::yyjson_mut_val*) |
5420 | | |
5421 | 0 | yyjson_api_inline bool yyjson_mut_is_int(yyjson_mut_val *val) { |
5422 | 0 | return val ? unsafe_yyjson_is_int(val) : false; |
5423 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_int(duckdb_yyjson::yyjson_mut_val*) |
5424 | | |
5425 | 0 | yyjson_api_inline bool yyjson_mut_is_real(yyjson_mut_val *val) { |
5426 | 0 | return val ? unsafe_yyjson_is_real(val) : false; |
5427 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_real(duckdb_yyjson::yyjson_mut_val*) |
5428 | | |
5429 | 0 | yyjson_api_inline bool yyjson_mut_is_num(yyjson_mut_val *val) { |
5430 | 0 | return val ? unsafe_yyjson_is_num(val) : false; |
5431 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_num(duckdb_yyjson::yyjson_mut_val*) |
5432 | | |
5433 | 404k | yyjson_api_inline bool yyjson_mut_is_str(yyjson_mut_val *val) { |
5434 | 404k | return val ? unsafe_yyjson_is_str(val) : false; |
5435 | 404k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_str(duckdb_yyjson::yyjson_mut_val*) Line | Count | Source | 5433 | 404k | yyjson_api_inline bool yyjson_mut_is_str(yyjson_mut_val *val) { | 5434 | 404k | return val ? unsafe_yyjson_is_str(val) : false; | 5435 | 404k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_str(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_str(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_str(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_str(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_str(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_str(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_str(duckdb_yyjson::yyjson_mut_val*) |
5436 | | |
5437 | 0 | yyjson_api_inline bool yyjson_mut_is_arr(yyjson_mut_val *val) { |
5438 | 0 | return val ? unsafe_yyjson_is_arr(val) : false; |
5439 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_arr(duckdb_yyjson::yyjson_mut_val*) |
5440 | | |
5441 | 819k | yyjson_api_inline bool yyjson_mut_is_obj(yyjson_mut_val *val) { |
5442 | 819k | return val ? unsafe_yyjson_is_obj(val) : false; |
5443 | 819k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_obj(duckdb_yyjson::yyjson_mut_val*) Line | Count | Source | 5441 | 819k | yyjson_api_inline bool yyjson_mut_is_obj(yyjson_mut_val *val) { | 5442 | 819k | return val ? unsafe_yyjson_is_obj(val) : false; | 5443 | 819k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_obj(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_obj(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_obj(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_obj(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_obj(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_obj(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_obj(duckdb_yyjson::yyjson_mut_val*) |
5444 | | |
5445 | 0 | yyjson_api_inline bool yyjson_mut_is_ctn(yyjson_mut_val *val) { |
5446 | 0 | return val ? unsafe_yyjson_is_ctn(val) : false; |
5447 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_is_ctn(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_is_ctn(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_is_ctn(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_is_ctn(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_is_ctn(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_is_ctn(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_is_ctn(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_is_ctn(duckdb_yyjson::yyjson_mut_val*) |
5448 | | |
5449 | | |
5450 | | |
5451 | | /*============================================================================== |
5452 | | * Mutable JSON Value Content API (Implementation) |
5453 | | *============================================================================*/ |
5454 | | |
5455 | 0 | yyjson_api_inline yyjson_type yyjson_mut_get_type(yyjson_mut_val *val) { |
5456 | 0 | return yyjson_get_type((yyjson_val *)val); |
5457 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_type(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_type(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_type(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_type(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_type(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_type(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_type(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_type(duckdb_yyjson::yyjson_mut_val*) |
5458 | | |
5459 | 0 | yyjson_api_inline yyjson_subtype yyjson_mut_get_subtype(yyjson_mut_val *val) { |
5460 | 0 | return yyjson_get_subtype((yyjson_val *)val); |
5461 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_subtype(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_subtype(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_subtype(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_subtype(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_subtype(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_subtype(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_subtype(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_subtype(duckdb_yyjson::yyjson_mut_val*) |
5462 | | |
5463 | 0 | yyjson_api_inline uint8_t yyjson_mut_get_tag(yyjson_mut_val *val) { |
5464 | 0 | return yyjson_get_tag((yyjson_val *)val); |
5465 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_tag(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_tag(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_tag(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_tag(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_tag(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_tag(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_tag(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_tag(duckdb_yyjson::yyjson_mut_val*) |
5466 | | |
5467 | 0 | yyjson_api_inline const char *yyjson_mut_get_type_desc(yyjson_mut_val *val) { |
5468 | 0 | return yyjson_get_type_desc((yyjson_val *)val); |
5469 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_type_desc(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_type_desc(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_type_desc(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_type_desc(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_type_desc(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_type_desc(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_type_desc(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_type_desc(duckdb_yyjson::yyjson_mut_val*) |
5470 | | |
5471 | 0 | yyjson_api_inline const char *yyjson_mut_get_raw(yyjson_mut_val *val) { |
5472 | 0 | return yyjson_get_raw((yyjson_val *)val); |
5473 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_raw(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_raw(duckdb_yyjson::yyjson_mut_val*) |
5474 | | |
5475 | 0 | yyjson_api_inline bool yyjson_mut_get_bool(yyjson_mut_val *val) { |
5476 | 0 | return yyjson_get_bool((yyjson_val *)val); |
5477 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_bool(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_bool(duckdb_yyjson::yyjson_mut_val*) |
5478 | | |
5479 | 0 | yyjson_api_inline uint64_t yyjson_mut_get_uint(yyjson_mut_val *val) { |
5480 | 0 | return yyjson_get_uint((yyjson_val *)val); |
5481 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_uint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_uint(duckdb_yyjson::yyjson_mut_val*) |
5482 | | |
5483 | 0 | yyjson_api_inline int64_t yyjson_mut_get_sint(yyjson_mut_val *val) { |
5484 | 0 | return yyjson_get_sint((yyjson_val *)val); |
5485 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_sint(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_sint(duckdb_yyjson::yyjson_mut_val*) |
5486 | | |
5487 | 0 | yyjson_api_inline int yyjson_mut_get_int(yyjson_mut_val *val) { |
5488 | 0 | return yyjson_get_int((yyjson_val *)val); |
5489 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_int(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_int(duckdb_yyjson::yyjson_mut_val*) |
5490 | | |
5491 | 0 | yyjson_api_inline double yyjson_mut_get_real(yyjson_mut_val *val) { |
5492 | 0 | return yyjson_get_real((yyjson_val *)val); |
5493 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_real(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_real(duckdb_yyjson::yyjson_mut_val*) |
5494 | | |
5495 | 0 | yyjson_api_inline double yyjson_mut_get_num(yyjson_mut_val *val) { |
5496 | 0 | return yyjson_get_num((yyjson_val *)val); |
5497 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_num(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_num(duckdb_yyjson::yyjson_mut_val*) |
5498 | | |
5499 | 0 | yyjson_api_inline const char *yyjson_mut_get_str(yyjson_mut_val *val) { |
5500 | 0 | return yyjson_get_str((yyjson_val *)val); |
5501 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_str(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_str(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_str(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_str(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_str(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_str(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_str(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_str(duckdb_yyjson::yyjson_mut_val*) |
5502 | | |
5503 | 0 | yyjson_api_inline size_t yyjson_mut_get_len(yyjson_mut_val *val) { |
5504 | 0 | return yyjson_get_len((yyjson_val *)val); |
5505 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_len(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_len(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_len(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_len(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_len(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_len(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_len(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_len(duckdb_yyjson::yyjson_mut_val*) |
5506 | | |
5507 | | yyjson_api_inline bool yyjson_mut_equals_str(yyjson_mut_val *val, |
5508 | 0 | const char *str) { |
5509 | 0 | return yyjson_equals_str((yyjson_val *)val, str); |
5510 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_equals_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_equals_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_equals_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_equals_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_equals_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_equals_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_equals_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_equals_str(duckdb_yyjson::yyjson_mut_val*, char const*) |
5511 | | |
5512 | | yyjson_api_inline bool yyjson_mut_equals_strn(yyjson_mut_val *val, |
5513 | 0 | const char *str, size_t len) { |
5514 | 0 | return yyjson_equals_strn((yyjson_val *)val, str, len); |
5515 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_equals_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_equals_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_equals_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_equals_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_equals_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_equals_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_equals_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_equals_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
5516 | | |
5517 | | yyjson_api bool unsafe_yyjson_mut_equals(yyjson_mut_val *lhs, |
5518 | | yyjson_mut_val *rhs); |
5519 | | |
5520 | | yyjson_api_inline bool yyjson_mut_equals(yyjson_mut_val *lhs, |
5521 | 0 | yyjson_mut_val *rhs) { |
5522 | 0 | if (yyjson_unlikely(!lhs || !rhs)) return false; |
5523 | 0 | return unsafe_yyjson_mut_equals(lhs, rhs); |
5524 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_equals(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_equals(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_equals(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_equals(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_equals(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_equals(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_equals(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_equals(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) |
5525 | | |
5526 | | yyjson_api_inline bool yyjson_mut_set_raw(yyjson_mut_val *val, |
5527 | 0 | const char *raw, size_t len) { |
5528 | 0 | if (yyjson_unlikely(!val || !raw)) return false; |
5529 | 0 | unsafe_yyjson_set_raw(val, raw, len); |
5530 | 0 | return true; |
5531 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_set_raw(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_set_raw(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_set_raw(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_set_raw(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_set_raw(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_set_raw(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_set_raw(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_set_raw(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
5532 | | |
5533 | 0 | yyjson_api_inline bool yyjson_mut_set_null(yyjson_mut_val *val) { |
5534 | 0 | if (yyjson_unlikely(!val)) return false; |
5535 | 0 | unsafe_yyjson_set_null(val); |
5536 | 0 | return true; |
5537 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_set_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_set_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_set_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_set_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_set_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_set_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_set_null(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_set_null(duckdb_yyjson::yyjson_mut_val*) |
5538 | | |
5539 | 0 | yyjson_api_inline bool yyjson_mut_set_bool(yyjson_mut_val *val, bool num) { |
5540 | 0 | if (yyjson_unlikely(!val)) return false; |
5541 | 0 | unsafe_yyjson_set_bool(val, num); |
5542 | 0 | return true; |
5543 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_set_bool(duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_set_bool(duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_set_bool(duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_set_bool(duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_set_bool(duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_set_bool(duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_set_bool(duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_set_bool(duckdb_yyjson::yyjson_mut_val*, bool) |
5544 | | |
5545 | 0 | yyjson_api_inline bool yyjson_mut_set_uint(yyjson_mut_val *val, uint64_t num) { |
5546 | 0 | if (yyjson_unlikely(!val)) return false; |
5547 | 0 | unsafe_yyjson_set_uint(val, num); |
5548 | 0 | return true; |
5549 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_set_uint(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_set_uint(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_set_uint(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_set_uint(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_set_uint(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_set_uint(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_set_uint(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_set_uint(duckdb_yyjson::yyjson_mut_val*, unsigned long) |
5550 | | |
5551 | 0 | yyjson_api_inline bool yyjson_mut_set_sint(yyjson_mut_val *val, int64_t num) { |
5552 | 0 | if (yyjson_unlikely(!val)) return false; |
5553 | 0 | unsafe_yyjson_set_sint(val, num); |
5554 | 0 | return true; |
5555 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_set_sint(duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_set_sint(duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_set_sint(duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_set_sint(duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_set_sint(duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_set_sint(duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_set_sint(duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_set_sint(duckdb_yyjson::yyjson_mut_val*, long) |
5556 | | |
5557 | 0 | yyjson_api_inline bool yyjson_mut_set_int(yyjson_mut_val *val, int num) { |
5558 | 0 | if (yyjson_unlikely(!val)) return false; |
5559 | 0 | unsafe_yyjson_set_sint(val, (int64_t)num); |
5560 | 0 | return true; |
5561 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_set_int(duckdb_yyjson::yyjson_mut_val*, int) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_set_int(duckdb_yyjson::yyjson_mut_val*, int) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_set_int(duckdb_yyjson::yyjson_mut_val*, int) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_set_int(duckdb_yyjson::yyjson_mut_val*, int) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_set_int(duckdb_yyjson::yyjson_mut_val*, int) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_set_int(duckdb_yyjson::yyjson_mut_val*, int) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_set_int(duckdb_yyjson::yyjson_mut_val*, int) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_set_int(duckdb_yyjson::yyjson_mut_val*, int) |
5562 | | |
5563 | 0 | yyjson_api_inline bool yyjson_mut_set_real(yyjson_mut_val *val, double num) { |
5564 | 0 | if (yyjson_unlikely(!val)) return false; |
5565 | 0 | unsafe_yyjson_set_real(val, num); |
5566 | 0 | return true; |
5567 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_set_real(duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_set_real(duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_set_real(duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_set_real(duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_set_real(duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_set_real(duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_set_real(duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_set_real(duckdb_yyjson::yyjson_mut_val*, double) |
5568 | | |
5569 | | yyjson_api_inline bool yyjson_mut_set_str(yyjson_mut_val *val, |
5570 | 0 | const char *str) { |
5571 | 0 | if (yyjson_unlikely(!val || !str)) return false; |
5572 | 0 | unsafe_yyjson_set_str(val, str); |
5573 | 0 | return true; |
5574 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_set_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_set_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_set_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_set_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_set_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_set_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_set_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_set_str(duckdb_yyjson::yyjson_mut_val*, char const*) |
5575 | | |
5576 | | yyjson_api_inline bool yyjson_mut_set_strn(yyjson_mut_val *val, |
5577 | 0 | const char *str, size_t len) { |
5578 | 0 | if (yyjson_unlikely(!val || !str)) return false; |
5579 | 0 | unsafe_yyjson_set_strn(val, str, len); |
5580 | 0 | return true; |
5581 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_set_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_set_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_set_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_set_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_set_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_set_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_set_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_set_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
5582 | | |
5583 | 0 | yyjson_api_inline bool yyjson_mut_set_arr(yyjson_mut_val *val) { |
5584 | 0 | if (yyjson_unlikely(!val)) return false; |
5585 | 0 | unsafe_yyjson_set_arr(val, 0); |
5586 | 0 | return true; |
5587 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_set_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_set_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_set_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_set_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_set_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_set_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_set_arr(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_set_arr(duckdb_yyjson::yyjson_mut_val*) |
5588 | | |
5589 | 0 | yyjson_api_inline bool yyjson_mut_set_obj(yyjson_mut_val *val) { |
5590 | 0 | if (yyjson_unlikely(!val)) return false; |
5591 | 0 | unsafe_yyjson_set_obj(val, 0); |
5592 | 0 | return true; |
5593 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_set_obj(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_set_obj(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_set_obj(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_set_obj(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_set_obj(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_set_obj(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_set_obj(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_set_obj(duckdb_yyjson::yyjson_mut_val*) |
5594 | | |
5595 | | |
5596 | | |
5597 | | /*============================================================================== |
5598 | | * Mutable JSON Value Creation API (Implementation) |
5599 | | *============================================================================*/ |
5600 | | |
5601 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_raw(yyjson_mut_doc *doc, |
5602 | 0 | const char *str) { |
5603 | 0 | if (yyjson_likely(str)) return yyjson_mut_rawn(doc, str, strlen(str)); |
5604 | 0 | return NULL; |
5605 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_raw(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_raw(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_raw(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_raw(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_raw(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_raw(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_raw(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_raw(duckdb_yyjson::yyjson_mut_doc*, char const*) |
5606 | | |
5607 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_rawn(yyjson_mut_doc *doc, |
5608 | | const char *str, |
5609 | 0 | size_t len) { |
5610 | 0 | if (yyjson_likely(doc && str)) { |
5611 | 0 | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5612 | 0 | if (yyjson_likely(val)) { |
5613 | 0 | val->tag = ((uint64_t)len << YYJSON_TAG_BIT) | YYJSON_TYPE_RAW; |
5614 | 0 | val->uni.str = str; |
5615 | 0 | return val; |
5616 | 0 | } |
5617 | 0 | } |
5618 | 0 | return NULL; |
5619 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_rawn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_rawn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_rawn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_rawn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_rawn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_rawn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_rawn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_rawn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) |
5620 | | |
5621 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_rawcpy(yyjson_mut_doc *doc, |
5622 | 0 | const char *str) { |
5623 | 0 | if (yyjson_likely(str)) return yyjson_mut_rawncpy(doc, str, strlen(str)); |
5624 | 0 | return NULL; |
5625 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_rawcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_rawcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_rawcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_rawcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_rawcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_rawcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_rawcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_rawcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) |
5626 | | |
5627 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_rawncpy(yyjson_mut_doc *doc, |
5628 | | const char *str, |
5629 | 0 | size_t len) { |
5630 | 0 | if (yyjson_likely(doc && str)) { |
5631 | 0 | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5632 | 0 | char *new_str = unsafe_yyjson_mut_strncpy(doc, str, len); |
5633 | 0 | if (yyjson_likely(val && new_str)) { |
5634 | 0 | val->tag = ((uint64_t)len << YYJSON_TAG_BIT) | YYJSON_TYPE_RAW; |
5635 | 0 | val->uni.str = new_str; |
5636 | 0 | return val; |
5637 | 0 | } |
5638 | 0 | } |
5639 | 0 | return NULL; |
5640 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_rawncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_rawncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_rawncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_rawncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_rawncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_rawncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_rawncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_rawncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) |
5641 | | |
5642 | 0 | yyjson_api_inline yyjson_mut_val *yyjson_mut_null(yyjson_mut_doc *doc) { |
5643 | 0 | if (yyjson_likely(doc)) { |
5644 | 0 | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5645 | 0 | if (yyjson_likely(val)) { |
5646 | 0 | val->tag = YYJSON_TYPE_NULL | YYJSON_SUBTYPE_NONE; |
5647 | 0 | return val; |
5648 | 0 | } |
5649 | 0 | } |
5650 | 0 | return NULL; |
5651 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_null(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_null(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_null(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_null(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_null(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_null(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_null(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_null(duckdb_yyjson::yyjson_mut_doc*) |
5652 | | |
5653 | 0 | yyjson_api_inline yyjson_mut_val *yyjson_mut_true(yyjson_mut_doc *doc) { |
5654 | 0 | if (yyjson_likely(doc)) { |
5655 | 0 | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5656 | 0 | if (yyjson_likely(val)) { |
5657 | 0 | val->tag = YYJSON_TYPE_BOOL | YYJSON_SUBTYPE_TRUE; |
5658 | 0 | return val; |
5659 | 0 | } |
5660 | 0 | } |
5661 | 0 | return NULL; |
5662 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_true(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_true(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_true(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_true(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_true(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_true(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_true(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_true(duckdb_yyjson::yyjson_mut_doc*) |
5663 | | |
5664 | 0 | yyjson_api_inline yyjson_mut_val *yyjson_mut_false(yyjson_mut_doc *doc) { |
5665 | 0 | if (yyjson_likely(doc)) { |
5666 | 0 | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5667 | 0 | if (yyjson_likely(val)) { |
5668 | 0 | val->tag = YYJSON_TYPE_BOOL | YYJSON_SUBTYPE_FALSE; |
5669 | 0 | return val; |
5670 | 0 | } |
5671 | 0 | } |
5672 | 0 | return NULL; |
5673 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_false(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_false(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_false(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_false(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_false(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_false(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_false(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_false(duckdb_yyjson::yyjson_mut_doc*) |
5674 | | |
5675 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_bool(yyjson_mut_doc *doc, |
5676 | 0 | bool _val) { |
5677 | 0 | if (yyjson_likely(doc)) { |
5678 | 0 | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5679 | 0 | if (yyjson_likely(val)) { |
5680 | 0 | _val = !!_val; |
5681 | 0 | val->tag = YYJSON_TYPE_BOOL | (uint8_t)((uint8_t)_val << 3); |
5682 | 0 | return val; |
5683 | 0 | } |
5684 | 0 | } |
5685 | 0 | return NULL; |
5686 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_bool(duckdb_yyjson::yyjson_mut_doc*, bool) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_bool(duckdb_yyjson::yyjson_mut_doc*, bool) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_bool(duckdb_yyjson::yyjson_mut_doc*, bool) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_bool(duckdb_yyjson::yyjson_mut_doc*, bool) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_bool(duckdb_yyjson::yyjson_mut_doc*, bool) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_bool(duckdb_yyjson::yyjson_mut_doc*, bool) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_bool(duckdb_yyjson::yyjson_mut_doc*, bool) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_bool(duckdb_yyjson::yyjson_mut_doc*, bool) |
5687 | | |
5688 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_uint(yyjson_mut_doc *doc, |
5689 | 0 | uint64_t num) { |
5690 | 0 | if (yyjson_likely(doc)) { |
5691 | 0 | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5692 | 0 | if (yyjson_likely(val)) { |
5693 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_UINT; |
5694 | 0 | val->uni.u64 = num; |
5695 | 0 | return val; |
5696 | 0 | } |
5697 | 0 | } |
5698 | 0 | return NULL; |
5699 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long) |
5700 | | |
5701 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_sint(yyjson_mut_doc *doc, |
5702 | 0 | int64_t num) { |
5703 | 0 | if (yyjson_likely(doc)) { |
5704 | 0 | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5705 | 0 | if (yyjson_likely(val)) { |
5706 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_SINT; |
5707 | 0 | val->uni.i64 = num; |
5708 | 0 | return val; |
5709 | 0 | } |
5710 | 0 | } |
5711 | 0 | return NULL; |
5712 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_sint(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_sint(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_sint(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_sint(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_sint(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_sint(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_sint(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_sint(duckdb_yyjson::yyjson_mut_doc*, long) |
5713 | | |
5714 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_int(yyjson_mut_doc *doc, |
5715 | 0 | int64_t num) { |
5716 | 0 | return yyjson_mut_sint(doc, num); |
5717 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_int(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_int(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_int(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_int(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_int(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_int(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_int(duckdb_yyjson::yyjson_mut_doc*, long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_int(duckdb_yyjson::yyjson_mut_doc*, long) |
5718 | | |
5719 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_real(yyjson_mut_doc *doc, |
5720 | 0 | double num) { |
5721 | 0 | if (yyjson_likely(doc)) { |
5722 | 0 | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5723 | 0 | if (yyjson_likely(val)) { |
5724 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_REAL; |
5725 | 0 | val->uni.f64 = num; |
5726 | 0 | return val; |
5727 | 0 | } |
5728 | 0 | } |
5729 | 0 | return NULL; |
5730 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_real(duckdb_yyjson::yyjson_mut_doc*, double) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_real(duckdb_yyjson::yyjson_mut_doc*, double) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_real(duckdb_yyjson::yyjson_mut_doc*, double) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_real(duckdb_yyjson::yyjson_mut_doc*, double) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_real(duckdb_yyjson::yyjson_mut_doc*, double) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_real(duckdb_yyjson::yyjson_mut_doc*, double) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_real(duckdb_yyjson::yyjson_mut_doc*, double) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_real(duckdb_yyjson::yyjson_mut_doc*, double) |
5731 | | |
5732 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_str(yyjson_mut_doc *doc, |
5733 | 0 | const char *str) { |
5734 | 0 | if (yyjson_likely(doc && str)) { |
5735 | 0 | size_t len = strlen(str); |
5736 | 0 | bool noesc = unsafe_yyjson_is_str_noesc(str, len); |
5737 | 0 | yyjson_subtype sub = noesc ? YYJSON_SUBTYPE_NOESC : YYJSON_SUBTYPE_NONE; |
5738 | 0 | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5739 | 0 | if (yyjson_likely(val)) { |
5740 | 0 | val->tag = ((uint64_t)len << YYJSON_TAG_BIT) | |
5741 | 0 | (uint64_t)(YYJSON_TYPE_STR | sub); |
5742 | 0 | val->uni.str = str; |
5743 | 0 | return val; |
5744 | 0 | } |
5745 | 0 | } |
5746 | 0 | return NULL; |
5747 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_str(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_str(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_str(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_str(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_str(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_str(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_str(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_str(duckdb_yyjson::yyjson_mut_doc*, char const*) |
5748 | | |
5749 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_strn(yyjson_mut_doc *doc, |
5750 | | const char *str, |
5751 | 0 | size_t len) { |
5752 | 0 | if (yyjson_likely(doc && str)) { |
5753 | 0 | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5754 | 0 | if (yyjson_likely(val)) { |
5755 | 0 | val->tag = ((uint64_t)len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
5756 | 0 | val->uni.str = str; |
5757 | 0 | return val; |
5758 | 0 | } |
5759 | 0 | } |
5760 | 0 | return NULL; |
5761 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_strn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_strn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_strn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_strn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_strn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_strn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_strn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_strn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) |
5762 | | |
5763 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_strcpy(yyjson_mut_doc *doc, |
5764 | 0 | const char *str) { |
5765 | 0 | if (yyjson_likely(doc && str)) { |
5766 | 0 | size_t len = strlen(str); |
5767 | 0 | bool noesc = unsafe_yyjson_is_str_noesc(str, len); |
5768 | 0 | yyjson_subtype sub = noesc ? YYJSON_SUBTYPE_NOESC : YYJSON_SUBTYPE_NONE; |
5769 | 0 | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5770 | 0 | char *new_str = unsafe_yyjson_mut_strncpy(doc, str, len); |
5771 | 0 | if (yyjson_likely(val && new_str)) { |
5772 | 0 | val->tag = ((uint64_t)len << YYJSON_TAG_BIT) | |
5773 | 0 | (uint64_t)(YYJSON_TYPE_STR | sub); |
5774 | 0 | val->uni.str = new_str; |
5775 | 0 | return val; |
5776 | 0 | } |
5777 | 0 | } |
5778 | 0 | return NULL; |
5779 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const*) |
5780 | | |
5781 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_strncpy(yyjson_mut_doc *doc, |
5782 | | const char *str, |
5783 | 809k | size_t len) { |
5784 | 809k | if (yyjson_likely(doc && str)) { |
5785 | 809k | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5786 | 809k | char *new_str = unsafe_yyjson_mut_strncpy(doc, str, len); |
5787 | 809k | if (yyjson_likely(val && new_str)) { |
5788 | 809k | val->tag = ((uint64_t)len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
5789 | 809k | val->uni.str = new_str; |
5790 | 809k | return val; |
5791 | 809k | } |
5792 | 809k | } |
5793 | 0 | return NULL; |
5794 | 809k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Line | Count | Source | 5783 | 809k | size_t len) { | 5784 | 809k | if (yyjson_likely(doc && str)) { | 5785 | 809k | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); | 5786 | 809k | char *new_str = unsafe_yyjson_mut_strncpy(doc, str, len); | 5787 | 809k | if (yyjson_likely(val && new_str)) { | 5788 | 809k | val->tag = ((uint64_t)len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; | 5789 | 809k | val->uni.str = new_str; | 5790 | 809k | return val; | 5791 | 809k | } | 5792 | 809k | } | 5793 | 0 | return NULL; | 5794 | 809k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) |
5795 | | |
5796 | | |
5797 | | |
5798 | | /*============================================================================== |
5799 | | * Mutable JSON Array API (Implementation) |
5800 | | *============================================================================*/ |
5801 | | |
5802 | 0 | yyjson_api_inline size_t yyjson_mut_arr_size(yyjson_mut_val *arr) { |
5803 | 0 | return yyjson_mut_is_arr(arr) ? unsafe_yyjson_get_len(arr) : 0; |
5804 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_size(duckdb_yyjson::yyjson_mut_val*) |
5805 | | |
5806 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_get(yyjson_mut_val *arr, |
5807 | 0 | size_t idx) { |
5808 | 0 | if (yyjson_likely(idx < yyjson_mut_arr_size(arr))) { |
5809 | 0 | yyjson_mut_val *val = (yyjson_mut_val *)arr->uni.ptr; |
5810 | 0 | while (idx-- > 0) val = val->next; |
5811 | 0 | return val->next; |
5812 | 0 | } |
5813 | 0 | return NULL; |
5814 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_get(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_get(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_get(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_get(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_get(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_get(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_get(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_get(duckdb_yyjson::yyjson_mut_val*, unsigned long) |
5815 | | |
5816 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_get_first( |
5817 | 0 | yyjson_mut_val *arr) { |
5818 | 0 | if (yyjson_likely(yyjson_mut_arr_size(arr) > 0)) { |
5819 | 0 | return ((yyjson_mut_val *)arr->uni.ptr)->next; |
5820 | 0 | } |
5821 | 0 | return NULL; |
5822 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_get_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_get_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_get_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_get_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_get_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_get_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_get_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_get_first(duckdb_yyjson::yyjson_mut_val*) |
5823 | | |
5824 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_get_last( |
5825 | 0 | yyjson_mut_val *arr) { |
5826 | 0 | if (yyjson_likely(yyjson_mut_arr_size(arr) > 0)) { |
5827 | 0 | return ((yyjson_mut_val *)arr->uni.ptr); |
5828 | 0 | } |
5829 | 0 | return NULL; |
5830 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_get_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_get_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_get_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_get_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_get_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_get_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_get_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_get_last(duckdb_yyjson::yyjson_mut_val*) |
5831 | | |
5832 | | |
5833 | | |
5834 | | /*============================================================================== |
5835 | | * Mutable JSON Array Iterator API (Implementation) |
5836 | | *============================================================================*/ |
5837 | | |
5838 | | yyjson_api_inline bool yyjson_mut_arr_iter_init(yyjson_mut_val *arr, |
5839 | 0 | yyjson_mut_arr_iter *iter) { |
5840 | 0 | if (yyjson_likely(yyjson_mut_is_arr(arr) && iter)) { |
5841 | 0 | iter->idx = 0; |
5842 | 0 | iter->max = unsafe_yyjson_get_len(arr); |
5843 | 0 | iter->cur = iter->max ? (yyjson_mut_val *)arr->uni.ptr : NULL; |
5844 | 0 | iter->pre = NULL; |
5845 | 0 | iter->arr = arr; |
5846 | 0 | return true; |
5847 | 0 | } |
5848 | 0 | if (iter) memset(iter, 0, sizeof(yyjson_mut_arr_iter)); |
5849 | 0 | return false; |
5850 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_arr_iter*) |
5851 | | |
5852 | | yyjson_api_inline yyjson_mut_arr_iter yyjson_mut_arr_iter_with( |
5853 | 0 | yyjson_mut_val *arr) { |
5854 | 0 | yyjson_mut_arr_iter iter; |
5855 | 0 | yyjson_mut_arr_iter_init(arr, &iter); |
5856 | 0 | return iter; |
5857 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_iter_with(duckdb_yyjson::yyjson_mut_val*) |
5858 | | |
5859 | 0 | yyjson_api_inline bool yyjson_mut_arr_iter_has_next(yyjson_mut_arr_iter *iter) { |
5860 | 0 | return iter ? iter->idx < iter->max : false; |
5861 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_iter_has_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_iter_has_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_iter_has_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_iter_has_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_iter_has_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_iter_has_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_iter_has_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_iter_has_next(duckdb_yyjson::yyjson_mut_arr_iter*) |
5862 | | |
5863 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_iter_next( |
5864 | 0 | yyjson_mut_arr_iter *iter) { |
5865 | 0 | if (iter && iter->idx < iter->max) { |
5866 | 0 | yyjson_mut_val *val = iter->cur; |
5867 | 0 | iter->pre = val; |
5868 | 0 | iter->cur = val->next; |
5869 | 0 | iter->idx++; |
5870 | 0 | return iter->cur; |
5871 | 0 | } |
5872 | 0 | return NULL; |
5873 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_iter_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_iter_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_iter_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_iter_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_iter_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_iter_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_iter_next(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_iter_next(duckdb_yyjson::yyjson_mut_arr_iter*) |
5874 | | |
5875 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_iter_remove( |
5876 | 0 | yyjson_mut_arr_iter *iter) { |
5877 | 0 | if (yyjson_likely(iter && 0 < iter->idx && iter->idx <= iter->max)) { |
5878 | 0 | yyjson_mut_val *prev = iter->pre; |
5879 | 0 | yyjson_mut_val *cur = iter->cur; |
5880 | 0 | yyjson_mut_val *next = cur->next; |
5881 | 0 | if (yyjson_unlikely(iter->idx == iter->max)) iter->arr->uni.ptr = prev; |
5882 | 0 | iter->idx--; |
5883 | 0 | iter->max--; |
5884 | 0 | unsafe_yyjson_set_len(iter->arr, iter->max); |
5885 | 0 | prev->next = next; |
5886 | 0 | iter->cur = next; |
5887 | 0 | return cur; |
5888 | 0 | } |
5889 | 0 | return NULL; |
5890 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_iter_remove(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_iter_remove(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_iter_remove(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_iter_remove(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_iter_remove(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_iter_remove(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_iter_remove(duckdb_yyjson::yyjson_mut_arr_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_iter_remove(duckdb_yyjson::yyjson_mut_arr_iter*) |
5891 | | |
5892 | | |
5893 | | |
5894 | | /*============================================================================== |
5895 | | * Mutable JSON Array Creation API (Implementation) |
5896 | | *============================================================================*/ |
5897 | | |
5898 | 0 | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr(yyjson_mut_doc *doc) { |
5899 | 0 | if (yyjson_likely(doc)) { |
5900 | 0 | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
5901 | 0 | if (yyjson_likely(val)) { |
5902 | 0 | val->tag = YYJSON_TYPE_ARR | YYJSON_SUBTYPE_NONE; |
5903 | 0 | return val; |
5904 | 0 | } |
5905 | 0 | } |
5906 | 0 | return NULL; |
5907 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr(duckdb_yyjson::yyjson_mut_doc*) |
5908 | | |
5909 | | #define yyjson_mut_arr_with_func(func) \ |
5910 | | if (yyjson_likely(doc && ((0 < count && count < \ |
5911 | | (~(size_t)0) / sizeof(yyjson_mut_val) && vals) || count == 0))) { \ |
5912 | | yyjson_mut_val *arr = unsafe_yyjson_mut_val(doc, 1 + count); \ |
5913 | | if (yyjson_likely(arr)) { \ |
5914 | | arr->tag = ((uint64_t)count << YYJSON_TAG_BIT) | YYJSON_TYPE_ARR; \ |
5915 | | if (count > 0) { \ |
5916 | | size_t i; \ |
5917 | | for (i = 0; i < count; i++) { \ |
5918 | | yyjson_mut_val *val = arr + i + 1; \ |
5919 | | func \ |
5920 | | val->next = val + 1; \ |
5921 | | } \ |
5922 | | arr[count].next = arr + 1; \ |
5923 | | arr->uni.ptr = arr + count; \ |
5924 | | } \ |
5925 | | return arr; \ |
5926 | | } \ |
5927 | | } \ |
5928 | | return NULL |
5929 | | |
5930 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_bool( |
5931 | 0 | yyjson_mut_doc *doc, const bool *vals, size_t count) { |
5932 | 0 | yyjson_mut_arr_with_func({ |
5933 | 0 | bool _val = !!vals[i]; |
5934 | 0 | val->tag = YYJSON_TYPE_BOOL | (uint8_t)((uint8_t)_val << 3); |
5935 | 0 | }); |
5936 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_bool(duckdb_yyjson::yyjson_mut_doc*, bool const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_bool(duckdb_yyjson::yyjson_mut_doc*, bool const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_bool(duckdb_yyjson::yyjson_mut_doc*, bool const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_bool(duckdb_yyjson::yyjson_mut_doc*, bool const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_bool(duckdb_yyjson::yyjson_mut_doc*, bool const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_bool(duckdb_yyjson::yyjson_mut_doc*, bool const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_bool(duckdb_yyjson::yyjson_mut_doc*, bool const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_bool(duckdb_yyjson::yyjson_mut_doc*, bool const*, unsigned long) |
5937 | | |
5938 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_sint( |
5939 | 0 | yyjson_mut_doc *doc, const int64_t *vals, size_t count) { |
5940 | 0 | return yyjson_mut_arr_with_sint64(doc, vals, count); |
5941 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) |
5942 | | |
5943 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_uint( |
5944 | 0 | yyjson_mut_doc *doc, const uint64_t *vals, size_t count) { |
5945 | 0 | return yyjson_mut_arr_with_uint64(doc, vals, count); |
5946 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) |
5947 | | |
5948 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_real( |
5949 | 0 | yyjson_mut_doc *doc, const double *vals, size_t count) { |
5950 | 0 | return yyjson_mut_arr_with_double(doc, vals, count); |
5951 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_real(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_real(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_real(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_real(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_real(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_real(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_real(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_real(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) |
5952 | | |
5953 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_sint8( |
5954 | 0 | yyjson_mut_doc *doc, const int8_t *vals, size_t count) { |
5955 | 0 | yyjson_mut_arr_with_func({ |
5956 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_SINT; |
5957 | 0 | val->uni.i64 = (int64_t)vals[i]; |
5958 | 0 | }); |
5959 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint8(duckdb_yyjson::yyjson_mut_doc*, signed char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint8(duckdb_yyjson::yyjson_mut_doc*, signed char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint8(duckdb_yyjson::yyjson_mut_doc*, signed char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint8(duckdb_yyjson::yyjson_mut_doc*, signed char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint8(duckdb_yyjson::yyjson_mut_doc*, signed char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint8(duckdb_yyjson::yyjson_mut_doc*, signed char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint8(duckdb_yyjson::yyjson_mut_doc*, signed char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint8(duckdb_yyjson::yyjson_mut_doc*, signed char const*, unsigned long) |
5960 | | |
5961 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_sint16( |
5962 | 0 | yyjson_mut_doc *doc, const int16_t *vals, size_t count) { |
5963 | 0 | yyjson_mut_arr_with_func({ |
5964 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_SINT; |
5965 | 0 | val->uni.i64 = vals[i]; |
5966 | 0 | }); |
5967 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint16(duckdb_yyjson::yyjson_mut_doc*, short const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint16(duckdb_yyjson::yyjson_mut_doc*, short const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint16(duckdb_yyjson::yyjson_mut_doc*, short const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint16(duckdb_yyjson::yyjson_mut_doc*, short const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint16(duckdb_yyjson::yyjson_mut_doc*, short const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint16(duckdb_yyjson::yyjson_mut_doc*, short const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint16(duckdb_yyjson::yyjson_mut_doc*, short const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint16(duckdb_yyjson::yyjson_mut_doc*, short const*, unsigned long) |
5968 | | |
5969 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_sint32( |
5970 | 0 | yyjson_mut_doc *doc, const int32_t *vals, size_t count) { |
5971 | 0 | yyjson_mut_arr_with_func({ |
5972 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_SINT; |
5973 | 0 | val->uni.i64 = vals[i]; |
5974 | 0 | }); |
5975 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint32(duckdb_yyjson::yyjson_mut_doc*, int const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint32(duckdb_yyjson::yyjson_mut_doc*, int const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint32(duckdb_yyjson::yyjson_mut_doc*, int const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint32(duckdb_yyjson::yyjson_mut_doc*, int const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint32(duckdb_yyjson::yyjson_mut_doc*, int const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint32(duckdb_yyjson::yyjson_mut_doc*, int const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint32(duckdb_yyjson::yyjson_mut_doc*, int const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint32(duckdb_yyjson::yyjson_mut_doc*, int const*, unsigned long) |
5976 | | |
5977 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_sint64( |
5978 | 0 | yyjson_mut_doc *doc, const int64_t *vals, size_t count) { |
5979 | 0 | yyjson_mut_arr_with_func({ |
5980 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_SINT; |
5981 | 0 | val->uni.i64 = vals[i]; |
5982 | 0 | }); |
5983 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint64(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint64(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint64(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint64(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint64(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint64(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint64(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_sint64(duckdb_yyjson::yyjson_mut_doc*, long const*, unsigned long) |
5984 | | |
5985 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_uint8( |
5986 | 0 | yyjson_mut_doc *doc, const uint8_t *vals, size_t count) { |
5987 | 0 | yyjson_mut_arr_with_func({ |
5988 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_UINT; |
5989 | 0 | val->uni.u64 = vals[i]; |
5990 | 0 | }); |
5991 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint8(duckdb_yyjson::yyjson_mut_doc*, unsigned char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint8(duckdb_yyjson::yyjson_mut_doc*, unsigned char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint8(duckdb_yyjson::yyjson_mut_doc*, unsigned char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint8(duckdb_yyjson::yyjson_mut_doc*, unsigned char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint8(duckdb_yyjson::yyjson_mut_doc*, unsigned char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint8(duckdb_yyjson::yyjson_mut_doc*, unsigned char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint8(duckdb_yyjson::yyjson_mut_doc*, unsigned char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint8(duckdb_yyjson::yyjson_mut_doc*, unsigned char const*, unsigned long) |
5992 | | |
5993 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_uint16( |
5994 | 0 | yyjson_mut_doc *doc, const uint16_t *vals, size_t count) { |
5995 | 0 | yyjson_mut_arr_with_func({ |
5996 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_UINT; |
5997 | 0 | val->uni.u64 = vals[i]; |
5998 | 0 | }); |
5999 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint16(duckdb_yyjson::yyjson_mut_doc*, unsigned short const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint16(duckdb_yyjson::yyjson_mut_doc*, unsigned short const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint16(duckdb_yyjson::yyjson_mut_doc*, unsigned short const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint16(duckdb_yyjson::yyjson_mut_doc*, unsigned short const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint16(duckdb_yyjson::yyjson_mut_doc*, unsigned short const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint16(duckdb_yyjson::yyjson_mut_doc*, unsigned short const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint16(duckdb_yyjson::yyjson_mut_doc*, unsigned short const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint16(duckdb_yyjson::yyjson_mut_doc*, unsigned short const*, unsigned long) |
6000 | | |
6001 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_uint32( |
6002 | 0 | yyjson_mut_doc *doc, const uint32_t *vals, size_t count) { |
6003 | 0 | yyjson_mut_arr_with_func({ |
6004 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_UINT; |
6005 | 0 | val->uni.u64 = vals[i]; |
6006 | 0 | }); |
6007 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint32(duckdb_yyjson::yyjson_mut_doc*, unsigned int const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint32(duckdb_yyjson::yyjson_mut_doc*, unsigned int const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint32(duckdb_yyjson::yyjson_mut_doc*, unsigned int const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint32(duckdb_yyjson::yyjson_mut_doc*, unsigned int const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint32(duckdb_yyjson::yyjson_mut_doc*, unsigned int const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint32(duckdb_yyjson::yyjson_mut_doc*, unsigned int const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint32(duckdb_yyjson::yyjson_mut_doc*, unsigned int const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint32(duckdb_yyjson::yyjson_mut_doc*, unsigned int const*, unsigned long) |
6008 | | |
6009 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_uint64( |
6010 | 0 | yyjson_mut_doc *doc, const uint64_t *vals, size_t count) { |
6011 | 0 | yyjson_mut_arr_with_func({ |
6012 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_UINT; |
6013 | 0 | val->uni.u64 = vals[i]; |
6014 | 0 | }); |
6015 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint64(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint64(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint64(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint64(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint64(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint64(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint64(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_uint64(duckdb_yyjson::yyjson_mut_doc*, unsigned long const*, unsigned long) |
6016 | | |
6017 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_float( |
6018 | 0 | yyjson_mut_doc *doc, const float *vals, size_t count) { |
6019 | 0 | yyjson_mut_arr_with_func({ |
6020 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_REAL; |
6021 | 0 | val->uni.f64 = (double)vals[i]; |
6022 | 0 | }); |
6023 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_float(duckdb_yyjson::yyjson_mut_doc*, float const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_float(duckdb_yyjson::yyjson_mut_doc*, float const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_float(duckdb_yyjson::yyjson_mut_doc*, float const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_float(duckdb_yyjson::yyjson_mut_doc*, float const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_float(duckdb_yyjson::yyjson_mut_doc*, float const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_float(duckdb_yyjson::yyjson_mut_doc*, float const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_float(duckdb_yyjson::yyjson_mut_doc*, float const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_float(duckdb_yyjson::yyjson_mut_doc*, float const*, unsigned long) |
6024 | | |
6025 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_double( |
6026 | 0 | yyjson_mut_doc *doc, const double *vals, size_t count) { |
6027 | 0 | yyjson_mut_arr_with_func({ |
6028 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_REAL; |
6029 | 0 | val->uni.f64 = vals[i]; |
6030 | 0 | }); |
6031 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_double(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_double(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_double(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_double(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_double(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_double(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_double(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_double(duckdb_yyjson::yyjson_mut_doc*, double const*, unsigned long) |
6032 | | |
6033 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_str( |
6034 | 0 | yyjson_mut_doc *doc, const char **vals, size_t count) { |
6035 | 0 | yyjson_mut_arr_with_func({ |
6036 | 0 | uint64_t len = (uint64_t)strlen(vals[i]); |
6037 | 0 | val->tag = (len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
6038 | 0 | val->uni.str = vals[i]; |
6039 | 0 | if (yyjson_unlikely(!val->uni.str)) return NULL; |
6040 | 0 | }); |
6041 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) |
6042 | | |
6043 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_strn( |
6044 | 0 | yyjson_mut_doc *doc, const char **vals, const size_t *lens, size_t count) { |
6045 | 0 | if (yyjson_unlikely(count > 0 && !lens)) return NULL; |
6046 | 0 | yyjson_mut_arr_with_func({ |
6047 | 0 | val->tag = ((uint64_t)lens[i] << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
6048 | 0 | val->uni.str = vals[i]; |
6049 | 0 | if (yyjson_unlikely(!val->uni.str)) return NULL; |
6050 | 0 | }); |
6051 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_strn(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_strn(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_strn(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_strn(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_strn(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_strn(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_strn(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_strn(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) |
6052 | | |
6053 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_strcpy( |
6054 | 0 | yyjson_mut_doc *doc, const char **vals, size_t count) { |
6055 | 0 | size_t len; |
6056 | 0 | const char *str; |
6057 | 0 | yyjson_mut_arr_with_func({ |
6058 | 0 | str = vals[i]; |
6059 | 0 | if (!str) return NULL; |
6060 | 0 | len = strlen(str); |
6061 | 0 | val->tag = ((uint64_t)len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
6062 | 0 | val->uni.str = unsafe_yyjson_mut_strncpy(doc, str, len); |
6063 | 0 | if (yyjson_unlikely(!val->uni.str)) return NULL; |
6064 | 0 | }); |
6065 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_strcpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) |
6066 | | |
6067 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_with_strncpy( |
6068 | 0 | yyjson_mut_doc *doc, const char **vals, const size_t *lens, size_t count) { |
6069 | 0 | size_t len; |
6070 | 0 | const char *str; |
6071 | 0 | if (yyjson_unlikely(count > 0 && !lens)) return NULL; |
6072 | 0 | yyjson_mut_arr_with_func({ |
6073 | 0 | str = vals[i]; |
6074 | 0 | len = lens[i]; |
6075 | 0 | val->tag = ((uint64_t)len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
6076 | 0 | val->uni.str = unsafe_yyjson_mut_strncpy(doc, str, len); |
6077 | 0 | if (yyjson_unlikely(!val->uni.str)) return NULL; |
6078 | 0 | }); |
6079 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_with_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_with_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_with_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_with_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_with_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_with_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_with_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_with_strncpy(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long const*, unsigned long) |
6080 | | |
6081 | | #undef yyjson_mut_arr_with_func |
6082 | | |
6083 | | |
6084 | | |
6085 | | /*============================================================================== |
6086 | | * Mutable JSON Array Modification API (Implementation) |
6087 | | *============================================================================*/ |
6088 | | |
6089 | | yyjson_api_inline bool yyjson_mut_arr_insert(yyjson_mut_val *arr, |
6090 | 0 | yyjson_mut_val *val, size_t idx) { |
6091 | 0 | if (yyjson_likely(yyjson_mut_is_arr(arr) && val)) { |
6092 | 0 | size_t len = unsafe_yyjson_get_len(arr); |
6093 | 0 | if (yyjson_likely(idx <= len)) { |
6094 | 0 | unsafe_yyjson_set_len(arr, len + 1); |
6095 | 0 | if (len == 0) { |
6096 | 0 | val->next = val; |
6097 | 0 | arr->uni.ptr = val; |
6098 | 0 | } else { |
6099 | 0 | yyjson_mut_val *prev = ((yyjson_mut_val *)arr->uni.ptr); |
6100 | 0 | yyjson_mut_val *next = prev->next; |
6101 | 0 | if (idx == len) { |
6102 | 0 | prev->next = val; |
6103 | 0 | val->next = next; |
6104 | 0 | arr->uni.ptr = val; |
6105 | 0 | } else { |
6106 | 0 | while (idx-- > 0) { |
6107 | 0 | prev = next; |
6108 | 0 | next = next->next; |
6109 | 0 | } |
6110 | 0 | prev->next = val; |
6111 | 0 | val->next = next; |
6112 | 0 | } |
6113 | 0 | } |
6114 | 0 | return true; |
6115 | 0 | } |
6116 | 0 | } |
6117 | 0 | return false; |
6118 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) |
6119 | | |
6120 | | yyjson_api_inline bool yyjson_mut_arr_append(yyjson_mut_val *arr, |
6121 | 0 | yyjson_mut_val *val) { |
6122 | 0 | if (yyjson_likely(yyjson_mut_is_arr(arr) && val)) { |
6123 | 0 | size_t len = unsafe_yyjson_get_len(arr); |
6124 | 0 | unsafe_yyjson_set_len(arr, len + 1); |
6125 | 0 | if (len == 0) { |
6126 | 0 | val->next = val; |
6127 | 0 | } else { |
6128 | 0 | yyjson_mut_val *prev = ((yyjson_mut_val *)arr->uni.ptr); |
6129 | 0 | yyjson_mut_val *next = prev->next; |
6130 | 0 | prev->next = val; |
6131 | 0 | val->next = next; |
6132 | 0 | } |
6133 | 0 | arr->uni.ptr = val; |
6134 | 0 | return true; |
6135 | 0 | } |
6136 | 0 | return false; |
6137 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_append(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_append(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_append(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_append(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_append(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_append(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_append(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_append(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) |
6138 | | |
6139 | | yyjson_api_inline bool yyjson_mut_arr_prepend(yyjson_mut_val *arr, |
6140 | 0 | yyjson_mut_val *val) { |
6141 | 0 | if (yyjson_likely(yyjson_mut_is_arr(arr) && val)) { |
6142 | 0 | size_t len = unsafe_yyjson_get_len(arr); |
6143 | 0 | unsafe_yyjson_set_len(arr, len + 1); |
6144 | 0 | if (len == 0) { |
6145 | 0 | val->next = val; |
6146 | 0 | arr->uni.ptr = val; |
6147 | 0 | } else { |
6148 | 0 | yyjson_mut_val *prev = ((yyjson_mut_val *)arr->uni.ptr); |
6149 | 0 | yyjson_mut_val *next = prev->next; |
6150 | 0 | prev->next = val; |
6151 | 0 | val->next = next; |
6152 | 0 | } |
6153 | 0 | return true; |
6154 | 0 | } |
6155 | 0 | return false; |
6156 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_prepend(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_prepend(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_prepend(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_prepend(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_prepend(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_prepend(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_prepend(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_prepend(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) |
6157 | | |
6158 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_replace(yyjson_mut_val *arr, |
6159 | | size_t idx, |
6160 | 0 | yyjson_mut_val *val) { |
6161 | 0 | if (yyjson_likely(yyjson_mut_is_arr(arr) && val)) { |
6162 | 0 | size_t len = unsafe_yyjson_get_len(arr); |
6163 | 0 | if (yyjson_likely(idx < len)) { |
6164 | 0 | if (yyjson_likely(len > 1)) { |
6165 | 0 | yyjson_mut_val *prev = ((yyjson_mut_val *)arr->uni.ptr); |
6166 | 0 | yyjson_mut_val *next = prev->next; |
6167 | 0 | while (idx-- > 0) { |
6168 | 0 | prev = next; |
6169 | 0 | next = next->next; |
6170 | 0 | } |
6171 | 0 | prev->next = val; |
6172 | 0 | val->next = next->next; |
6173 | 0 | if ((void *)next == arr->uni.ptr) arr->uni.ptr = val; |
6174 | 0 | return next; |
6175 | 0 | } else { |
6176 | 0 | yyjson_mut_val *prev = ((yyjson_mut_val *)arr->uni.ptr); |
6177 | 0 | val->next = val; |
6178 | 0 | arr->uni.ptr = val; |
6179 | 0 | return prev; |
6180 | 0 | } |
6181 | 0 | } |
6182 | 0 | } |
6183 | 0 | return NULL; |
6184 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_replace(duckdb_yyjson::yyjson_mut_val*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_replace(duckdb_yyjson::yyjson_mut_val*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_replace(duckdb_yyjson::yyjson_mut_val*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_replace(duckdb_yyjson::yyjson_mut_val*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_replace(duckdb_yyjson::yyjson_mut_val*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_replace(duckdb_yyjson::yyjson_mut_val*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_replace(duckdb_yyjson::yyjson_mut_val*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_replace(duckdb_yyjson::yyjson_mut_val*, unsigned long, duckdb_yyjson::yyjson_mut_val*) |
6185 | | |
6186 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_remove(yyjson_mut_val *arr, |
6187 | 0 | size_t idx) { |
6188 | 0 | if (yyjson_likely(yyjson_mut_is_arr(arr))) { |
6189 | 0 | size_t len = unsafe_yyjson_get_len(arr); |
6190 | 0 | if (yyjson_likely(idx < len)) { |
6191 | 0 | unsafe_yyjson_set_len(arr, len - 1); |
6192 | 0 | if (yyjson_likely(len > 1)) { |
6193 | 0 | yyjson_mut_val *prev = ((yyjson_mut_val *)arr->uni.ptr); |
6194 | 0 | yyjson_mut_val *next = prev->next; |
6195 | 0 | while (idx-- > 0) { |
6196 | 0 | prev = next; |
6197 | 0 | next = next->next; |
6198 | 0 | } |
6199 | 0 | prev->next = next->next; |
6200 | 0 | if ((void *)next == arr->uni.ptr) arr->uni.ptr = prev; |
6201 | 0 | return next; |
6202 | 0 | } else { |
6203 | 0 | return ((yyjson_mut_val *)arr->uni.ptr); |
6204 | 0 | } |
6205 | 0 | } |
6206 | 0 | } |
6207 | 0 | return NULL; |
6208 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_remove(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_remove(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_remove(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_remove(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_remove(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_remove(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_remove(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_remove(duckdb_yyjson::yyjson_mut_val*, unsigned long) |
6209 | | |
6210 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_remove_first( |
6211 | 0 | yyjson_mut_val *arr) { |
6212 | 0 | if (yyjson_likely(yyjson_mut_is_arr(arr))) { |
6213 | 0 | size_t len = unsafe_yyjson_get_len(arr); |
6214 | 0 | if (len > 1) { |
6215 | 0 | yyjson_mut_val *prev = ((yyjson_mut_val *)arr->uni.ptr); |
6216 | 0 | yyjson_mut_val *next = prev->next; |
6217 | 0 | prev->next = next->next; |
6218 | 0 | unsafe_yyjson_set_len(arr, len - 1); |
6219 | 0 | return next; |
6220 | 0 | } else if (len == 1) { |
6221 | 0 | yyjson_mut_val *prev = ((yyjson_mut_val *)arr->uni.ptr); |
6222 | 0 | unsafe_yyjson_set_len(arr, 0); |
6223 | 0 | return prev; |
6224 | 0 | } |
6225 | 0 | } |
6226 | 0 | return NULL; |
6227 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_remove_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_remove_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_remove_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_remove_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_remove_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_remove_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_remove_first(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_remove_first(duckdb_yyjson::yyjson_mut_val*) |
6228 | | |
6229 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_remove_last( |
6230 | 0 | yyjson_mut_val *arr) { |
6231 | 0 | if (yyjson_likely(yyjson_mut_is_arr(arr))) { |
6232 | 0 | size_t len = unsafe_yyjson_get_len(arr); |
6233 | 0 | if (yyjson_likely(len > 1)) { |
6234 | 0 | yyjson_mut_val *prev = ((yyjson_mut_val *)arr->uni.ptr); |
6235 | 0 | yyjson_mut_val *next = prev->next; |
6236 | 0 | unsafe_yyjson_set_len(arr, len - 1); |
6237 | 0 | while (--len > 0) prev = prev->next; |
6238 | 0 | prev->next = next; |
6239 | 0 | next = (yyjson_mut_val *)arr->uni.ptr; |
6240 | 0 | arr->uni.ptr = prev; |
6241 | 0 | return next; |
6242 | 0 | } else if (len == 1) { |
6243 | 0 | yyjson_mut_val *prev = ((yyjson_mut_val *)arr->uni.ptr); |
6244 | 0 | unsafe_yyjson_set_len(arr, 0); |
6245 | 0 | return prev; |
6246 | 0 | } |
6247 | 0 | } |
6248 | 0 | return NULL; |
6249 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_remove_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_remove_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_remove_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_remove_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_remove_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_remove_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_remove_last(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_remove_last(duckdb_yyjson::yyjson_mut_val*) |
6250 | | |
6251 | | yyjson_api_inline bool yyjson_mut_arr_remove_range(yyjson_mut_val *arr, |
6252 | 0 | size_t _idx, size_t _len) { |
6253 | 0 | if (yyjson_likely(yyjson_mut_is_arr(arr))) { |
6254 | 0 | yyjson_mut_val *prev, *next; |
6255 | 0 | bool tail_removed; |
6256 | 0 | size_t len = unsafe_yyjson_get_len(arr); |
6257 | 0 | if (yyjson_unlikely(_idx + _len > len)) return false; |
6258 | 0 | if (yyjson_unlikely(_len == 0)) return true; |
6259 | 0 | unsafe_yyjson_set_len(arr, len - _len); |
6260 | 0 | if (yyjson_unlikely(len == _len)) return true; |
6261 | 0 | tail_removed = (_idx + _len == len); |
6262 | 0 | prev = ((yyjson_mut_val *)arr->uni.ptr); |
6263 | 0 | while (_idx-- > 0) prev = prev->next; |
6264 | 0 | next = prev->next; |
6265 | 0 | while (_len-- > 0) next = next->next; |
6266 | 0 | prev->next = next; |
6267 | 0 | if (yyjson_unlikely(tail_removed)) arr->uni.ptr = prev; |
6268 | 0 | return true; |
6269 | 0 | } |
6270 | 0 | return false; |
6271 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_remove_range(duckdb_yyjson::yyjson_mut_val*, unsigned long, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_remove_range(duckdb_yyjson::yyjson_mut_val*, unsigned long, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_remove_range(duckdb_yyjson::yyjson_mut_val*, unsigned long, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_remove_range(duckdb_yyjson::yyjson_mut_val*, unsigned long, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_remove_range(duckdb_yyjson::yyjson_mut_val*, unsigned long, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_remove_range(duckdb_yyjson::yyjson_mut_val*, unsigned long, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_remove_range(duckdb_yyjson::yyjson_mut_val*, unsigned long, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_remove_range(duckdb_yyjson::yyjson_mut_val*, unsigned long, unsigned long) |
6272 | | |
6273 | 0 | yyjson_api_inline bool yyjson_mut_arr_clear(yyjson_mut_val *arr) { |
6274 | 0 | if (yyjson_likely(yyjson_mut_is_arr(arr))) { |
6275 | 0 | unsafe_yyjson_set_len(arr, 0); |
6276 | 0 | return true; |
6277 | 0 | } |
6278 | 0 | return false; |
6279 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_clear(duckdb_yyjson::yyjson_mut_val*) |
6280 | | |
6281 | | yyjson_api_inline bool yyjson_mut_arr_rotate(yyjson_mut_val *arr, |
6282 | 0 | size_t idx) { |
6283 | 0 | if (yyjson_likely(yyjson_mut_is_arr(arr) && |
6284 | 0 | unsafe_yyjson_get_len(arr) > idx)) { |
6285 | 0 | yyjson_mut_val *val = (yyjson_mut_val *)arr->uni.ptr; |
6286 | 0 | while (idx-- > 0) val = val->next; |
6287 | 0 | arr->uni.ptr = (void *)val; |
6288 | 0 | return true; |
6289 | 0 | } |
6290 | 0 | return false; |
6291 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) |
6292 | | |
6293 | | |
6294 | | |
6295 | | /*============================================================================== |
6296 | | * Mutable JSON Array Modification Convenience API (Implementation) |
6297 | | *============================================================================*/ |
6298 | | |
6299 | | yyjson_api_inline bool yyjson_mut_arr_add_val(yyjson_mut_val *arr, |
6300 | 0 | yyjson_mut_val *val) { |
6301 | 0 | return yyjson_mut_arr_append(arr, val); |
6302 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_val(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_val(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_val(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_val(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_val(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_val(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_val(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_val(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) |
6303 | | |
6304 | | yyjson_api_inline bool yyjson_mut_arr_add_null(yyjson_mut_doc *doc, |
6305 | 0 | yyjson_mut_val *arr) { |
6306 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6307 | 0 | yyjson_mut_val *val = yyjson_mut_null(doc); |
6308 | 0 | return yyjson_mut_arr_append(arr, val); |
6309 | 0 | } |
6310 | 0 | return false; |
6311 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) |
6312 | | |
6313 | | yyjson_api_inline bool yyjson_mut_arr_add_true(yyjson_mut_doc *doc, |
6314 | 0 | yyjson_mut_val *arr) { |
6315 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6316 | 0 | yyjson_mut_val *val = yyjson_mut_true(doc); |
6317 | 0 | return yyjson_mut_arr_append(arr, val); |
6318 | 0 | } |
6319 | 0 | return false; |
6320 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) |
6321 | | |
6322 | | yyjson_api_inline bool yyjson_mut_arr_add_false(yyjson_mut_doc *doc, |
6323 | 0 | yyjson_mut_val *arr) { |
6324 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6325 | 0 | yyjson_mut_val *val = yyjson_mut_false(doc); |
6326 | 0 | return yyjson_mut_arr_append(arr, val); |
6327 | 0 | } |
6328 | 0 | return false; |
6329 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) |
6330 | | |
6331 | | yyjson_api_inline bool yyjson_mut_arr_add_bool(yyjson_mut_doc *doc, |
6332 | | yyjson_mut_val *arr, |
6333 | 0 | bool _val) { |
6334 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6335 | 0 | yyjson_mut_val *val = yyjson_mut_bool(doc, _val); |
6336 | 0 | return yyjson_mut_arr_append(arr, val); |
6337 | 0 | } |
6338 | 0 | return false; |
6339 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, bool) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, bool) |
6340 | | |
6341 | | yyjson_api_inline bool yyjson_mut_arr_add_uint(yyjson_mut_doc *doc, |
6342 | | yyjson_mut_val *arr, |
6343 | 0 | uint64_t num) { |
6344 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6345 | 0 | yyjson_mut_val *val = yyjson_mut_uint(doc, num); |
6346 | 0 | return yyjson_mut_arr_append(arr, val); |
6347 | 0 | } |
6348 | 0 | return false; |
6349 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, unsigned long) |
6350 | | |
6351 | | yyjson_api_inline bool yyjson_mut_arr_add_sint(yyjson_mut_doc *doc, |
6352 | | yyjson_mut_val *arr, |
6353 | 0 | int64_t num) { |
6354 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6355 | 0 | yyjson_mut_val *val = yyjson_mut_sint(doc, num); |
6356 | 0 | return yyjson_mut_arr_append(arr, val); |
6357 | 0 | } |
6358 | 0 | return false; |
6359 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) |
6360 | | |
6361 | | yyjson_api_inline bool yyjson_mut_arr_add_int(yyjson_mut_doc *doc, |
6362 | | yyjson_mut_val *arr, |
6363 | 0 | int64_t num) { |
6364 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6365 | 0 | yyjson_mut_val *val = yyjson_mut_sint(doc, num); |
6366 | 0 | return yyjson_mut_arr_append(arr, val); |
6367 | 0 | } |
6368 | 0 | return false; |
6369 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, long) |
6370 | | |
6371 | | yyjson_api_inline bool yyjson_mut_arr_add_real(yyjson_mut_doc *doc, |
6372 | | yyjson_mut_val *arr, |
6373 | 0 | double num) { |
6374 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6375 | 0 | yyjson_mut_val *val = yyjson_mut_real(doc, num); |
6376 | 0 | return yyjson_mut_arr_append(arr, val); |
6377 | 0 | } |
6378 | 0 | return false; |
6379 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, double) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, double) |
6380 | | |
6381 | | yyjson_api_inline bool yyjson_mut_arr_add_str(yyjson_mut_doc *doc, |
6382 | | yyjson_mut_val *arr, |
6383 | 0 | const char *str) { |
6384 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6385 | 0 | yyjson_mut_val *val = yyjson_mut_str(doc, str); |
6386 | 0 | return yyjson_mut_arr_append(arr, val); |
6387 | 0 | } |
6388 | 0 | return false; |
6389 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) |
6390 | | |
6391 | | yyjson_api_inline bool yyjson_mut_arr_add_strn(yyjson_mut_doc *doc, |
6392 | | yyjson_mut_val *arr, |
6393 | 0 | const char *str, size_t len) { |
6394 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6395 | 0 | yyjson_mut_val *val = yyjson_mut_strn(doc, str, len); |
6396 | 0 | return yyjson_mut_arr_append(arr, val); |
6397 | 0 | } |
6398 | 0 | return false; |
6399 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
6400 | | |
6401 | | yyjson_api_inline bool yyjson_mut_arr_add_strcpy(yyjson_mut_doc *doc, |
6402 | | yyjson_mut_val *arr, |
6403 | 0 | const char *str) { |
6404 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6405 | 0 | yyjson_mut_val *val = yyjson_mut_strcpy(doc, str); |
6406 | 0 | return yyjson_mut_arr_append(arr, val); |
6407 | 0 | } |
6408 | 0 | return false; |
6409 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) |
6410 | | |
6411 | | yyjson_api_inline bool yyjson_mut_arr_add_strncpy(yyjson_mut_doc *doc, |
6412 | | yyjson_mut_val *arr, |
6413 | 0 | const char *str, size_t len) { |
6414 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6415 | 0 | yyjson_mut_val *val = yyjson_mut_strncpy(doc, str, len); |
6416 | 0 | return yyjson_mut_arr_append(arr, val); |
6417 | 0 | } |
6418 | 0 | return false; |
6419 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
6420 | | |
6421 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_add_arr(yyjson_mut_doc *doc, |
6422 | 0 | yyjson_mut_val *arr) { |
6423 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6424 | 0 | yyjson_mut_val *val = yyjson_mut_arr(doc); |
6425 | 0 | return yyjson_mut_arr_append(arr, val) ? val : NULL; |
6426 | 0 | } |
6427 | 0 | return NULL; |
6428 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) |
6429 | | |
6430 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_arr_add_obj(yyjson_mut_doc *doc, |
6431 | 0 | yyjson_mut_val *arr) { |
6432 | 0 | if (yyjson_likely(doc && yyjson_mut_is_arr(arr))) { |
6433 | 0 | yyjson_mut_val *val = yyjson_mut_obj(doc); |
6434 | 0 | return yyjson_mut_arr_append(arr, val) ? val : NULL; |
6435 | 0 | } |
6436 | 0 | return NULL; |
6437 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_arr_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_arr_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_arr_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_arr_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_arr_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_arr_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_arr_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_arr_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*) |
6438 | | |
6439 | | |
6440 | | |
6441 | | /*============================================================================== |
6442 | | * Mutable JSON Object API (Implementation) |
6443 | | *============================================================================*/ |
6444 | | |
6445 | 0 | yyjson_api_inline size_t yyjson_mut_obj_size(yyjson_mut_val *obj) { |
6446 | 0 | return yyjson_mut_is_obj(obj) ? unsafe_yyjson_get_len(obj) : 0; |
6447 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_size(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_size(duckdb_yyjson::yyjson_mut_val*) |
6448 | | |
6449 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_get(yyjson_mut_val *obj, |
6450 | 0 | const char *key) { |
6451 | 0 | return yyjson_mut_obj_getn(obj, key, key ? strlen(key) : 0); |
6452 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_get(duckdb_yyjson::yyjson_mut_val*, char const*) |
6453 | | |
6454 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_getn(yyjson_mut_val *obj, |
6455 | | const char *_key, |
6456 | 0 | size_t key_len) { |
6457 | 0 | size_t len = yyjson_mut_obj_size(obj); |
6458 | 0 | if (yyjson_likely(len && _key)) { |
6459 | 0 | yyjson_mut_val *key = ((yyjson_mut_val *)obj->uni.ptr)->next->next; |
6460 | 0 | while (len-- > 0) { |
6461 | 0 | if (unsafe_yyjson_equals_strn(key, _key, key_len)) return key->next; |
6462 | 0 | key = key->next->next; |
6463 | 0 | } |
6464 | 0 | } |
6465 | 0 | return NULL; |
6466 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
6467 | | |
6468 | | |
6469 | | |
6470 | | /*============================================================================== |
6471 | | * Mutable JSON Object Iterator API (Implementation) |
6472 | | *============================================================================*/ |
6473 | | |
6474 | | yyjson_api_inline bool yyjson_mut_obj_iter_init(yyjson_mut_val *obj, |
6475 | 0 | yyjson_mut_obj_iter *iter) { |
6476 | 0 | if (yyjson_likely(yyjson_mut_is_obj(obj) && iter)) { |
6477 | 0 | iter->idx = 0; |
6478 | 0 | iter->max = unsafe_yyjson_get_len(obj); |
6479 | 0 | iter->cur = iter->max ? (yyjson_mut_val *)obj->uni.ptr : NULL; |
6480 | 0 | iter->pre = NULL; |
6481 | 0 | iter->obj = obj; |
6482 | 0 | return true; |
6483 | 0 | } |
6484 | 0 | if (iter) memset(iter, 0, sizeof(yyjson_mut_obj_iter)); |
6485 | 0 | return false; |
6486 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_iter_init(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_obj_iter*) |
6487 | | |
6488 | | yyjson_api_inline yyjson_mut_obj_iter yyjson_mut_obj_iter_with( |
6489 | 0 | yyjson_mut_val *obj) { |
6490 | 0 | yyjson_mut_obj_iter iter; |
6491 | 0 | yyjson_mut_obj_iter_init(obj, &iter); |
6492 | 0 | return iter; |
6493 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_iter_with(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_iter_with(duckdb_yyjson::yyjson_mut_val*) |
6494 | | |
6495 | 0 | yyjson_api_inline bool yyjson_mut_obj_iter_has_next(yyjson_mut_obj_iter *iter) { |
6496 | 0 | return iter ? iter->idx < iter->max : false; |
6497 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_iter_has_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_iter_has_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_iter_has_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_iter_has_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_iter_has_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_iter_has_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_iter_has_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_iter_has_next(duckdb_yyjson::yyjson_mut_obj_iter*) |
6498 | | |
6499 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_iter_next( |
6500 | 0 | yyjson_mut_obj_iter *iter) { |
6501 | 0 | if (iter && iter->idx < iter->max) { |
6502 | 0 | yyjson_mut_val *key = iter->cur; |
6503 | 0 | iter->pre = key; |
6504 | 0 | iter->cur = key->next->next; |
6505 | 0 | iter->idx++; |
6506 | 0 | return iter->cur; |
6507 | 0 | } |
6508 | 0 | return NULL; |
6509 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_iter_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_iter_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_iter_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_iter_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_iter_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_iter_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_iter_next(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_iter_next(duckdb_yyjson::yyjson_mut_obj_iter*) |
6510 | | |
6511 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_iter_get_val( |
6512 | 0 | yyjson_mut_val *key) { |
6513 | 0 | return key ? key->next : NULL; |
6514 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get_val(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get_val(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get_val(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get_val(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get_val(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get_val(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get_val(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get_val(duckdb_yyjson::yyjson_mut_val*) |
6515 | | |
6516 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_iter_remove( |
6517 | 0 | yyjson_mut_obj_iter *iter) { |
6518 | 0 | if (yyjson_likely(iter && 0 < iter->idx && iter->idx <= iter->max)) { |
6519 | 0 | yyjson_mut_val *prev = iter->pre; |
6520 | 0 | yyjson_mut_val *cur = iter->cur; |
6521 | 0 | yyjson_mut_val *next = cur->next->next; |
6522 | 0 | if (yyjson_unlikely(iter->idx == iter->max)) iter->obj->uni.ptr = prev; |
6523 | 0 | iter->idx--; |
6524 | 0 | iter->max--; |
6525 | 0 | unsafe_yyjson_set_len(iter->obj, iter->max); |
6526 | 0 | prev->next->next = next; |
6527 | 0 | iter->cur = prev; |
6528 | 0 | return cur->next; |
6529 | 0 | } |
6530 | 0 | return NULL; |
6531 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_iter_remove(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_iter_remove(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_iter_remove(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_iter_remove(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_iter_remove(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_iter_remove(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_iter_remove(duckdb_yyjson::yyjson_mut_obj_iter*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_iter_remove(duckdb_yyjson::yyjson_mut_obj_iter*) |
6532 | | |
6533 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_iter_get( |
6534 | 0 | yyjson_mut_obj_iter *iter, const char *key) { |
6535 | 0 | return yyjson_mut_obj_iter_getn(iter, key, key ? strlen(key) : 0); |
6536 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get(duckdb_yyjson::yyjson_mut_obj_iter*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get(duckdb_yyjson::yyjson_mut_obj_iter*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get(duckdb_yyjson::yyjson_mut_obj_iter*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get(duckdb_yyjson::yyjson_mut_obj_iter*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get(duckdb_yyjson::yyjson_mut_obj_iter*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get(duckdb_yyjson::yyjson_mut_obj_iter*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get(duckdb_yyjson::yyjson_mut_obj_iter*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_iter_get(duckdb_yyjson::yyjson_mut_obj_iter*, char const*) |
6537 | | |
6538 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_iter_getn( |
6539 | 0 | yyjson_mut_obj_iter *iter, const char *key, size_t key_len) { |
6540 | 0 | if (iter && key) { |
6541 | 0 | size_t idx = 0; |
6542 | 0 | size_t max = iter->max; |
6543 | 0 | yyjson_mut_val *pre, *cur = iter->cur; |
6544 | 0 | while (idx++ < max) { |
6545 | 0 | pre = cur; |
6546 | 0 | cur = cur->next->next; |
6547 | 0 | if (unsafe_yyjson_equals_strn(cur, key, key_len)) { |
6548 | 0 | iter->idx += idx; |
6549 | 0 | if (iter->idx > max) iter->idx -= max + 1; |
6550 | 0 | iter->pre = pre; |
6551 | 0 | iter->cur = cur; |
6552 | 0 | return cur->next; |
6553 | 0 | } |
6554 | 0 | } |
6555 | 0 | } |
6556 | 0 | return NULL; |
6557 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_iter_getn(duckdb_yyjson::yyjson_mut_obj_iter*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_iter_getn(duckdb_yyjson::yyjson_mut_obj_iter*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_iter_getn(duckdb_yyjson::yyjson_mut_obj_iter*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_iter_getn(duckdb_yyjson::yyjson_mut_obj_iter*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_iter_getn(duckdb_yyjson::yyjson_mut_obj_iter*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_iter_getn(duckdb_yyjson::yyjson_mut_obj_iter*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_iter_getn(duckdb_yyjson::yyjson_mut_obj_iter*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_iter_getn(duckdb_yyjson::yyjson_mut_obj_iter*, char const*, unsigned long) |
6558 | | |
6559 | | |
6560 | | |
6561 | | /*============================================================================== |
6562 | | * Mutable JSON Object Creation API (Implementation) |
6563 | | *============================================================================*/ |
6564 | | |
6565 | 207k | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj(yyjson_mut_doc *doc) { |
6566 | 207k | if (yyjson_likely(doc)) { |
6567 | 207k | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); |
6568 | 207k | if (yyjson_likely(val)) { |
6569 | 207k | val->tag = YYJSON_TYPE_OBJ | YYJSON_SUBTYPE_NONE; |
6570 | 207k | return val; |
6571 | 207k | } |
6572 | 207k | } |
6573 | 18.4E | return NULL; |
6574 | 207k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj(duckdb_yyjson::yyjson_mut_doc*) Line | Count | Source | 6565 | 207k | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj(yyjson_mut_doc *doc) { | 6566 | 207k | if (yyjson_likely(doc)) { | 6567 | 207k | yyjson_mut_val *val = unsafe_yyjson_mut_val(doc, 1); | 6568 | 207k | if (yyjson_likely(val)) { | 6569 | 207k | val->tag = YYJSON_TYPE_OBJ | YYJSON_SUBTYPE_NONE; | 6570 | 207k | return val; | 6571 | 207k | } | 6572 | 207k | } | 6573 | 18.4E | return NULL; | 6574 | 207k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj(duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj(duckdb_yyjson::yyjson_mut_doc*) |
6575 | | |
6576 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_with_str(yyjson_mut_doc *doc, |
6577 | | const char **keys, |
6578 | | const char **vals, |
6579 | 0 | size_t count) { |
6580 | 0 | if (yyjson_likely(doc && ((count > 0 && keys && vals) || (count == 0)))) { |
6581 | 0 | yyjson_mut_val *obj = unsafe_yyjson_mut_val(doc, 1 + count * 2); |
6582 | 0 | if (yyjson_likely(obj)) { |
6583 | 0 | obj->tag = ((uint64_t)count << YYJSON_TAG_BIT) | YYJSON_TYPE_OBJ; |
6584 | 0 | if (count > 0) { |
6585 | 0 | size_t i; |
6586 | 0 | for (i = 0; i < count; i++) { |
6587 | 0 | yyjson_mut_val *key = obj + (i * 2 + 1); |
6588 | 0 | yyjson_mut_val *val = obj + (i * 2 + 2); |
6589 | 0 | uint64_t key_len = (uint64_t)strlen(keys[i]); |
6590 | 0 | uint64_t val_len = (uint64_t)strlen(vals[i]); |
6591 | 0 | key->tag = (key_len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
6592 | 0 | val->tag = (val_len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
6593 | 0 | key->uni.str = keys[i]; |
6594 | 0 | val->uni.str = vals[i]; |
6595 | 0 | key->next = val; |
6596 | 0 | val->next = val + 1; |
6597 | 0 | } |
6598 | 0 | obj[count * 2].next = obj + 1; |
6599 | 0 | obj->uni.ptr = obj + (count * 2 - 1); |
6600 | 0 | } |
6601 | 0 | return obj; |
6602 | 0 | } |
6603 | 0 | } |
6604 | 0 | return NULL; |
6605 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, char const**, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, char const**, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_with_str(duckdb_yyjson::yyjson_mut_doc*, char const**, char const**, unsigned long) |
6606 | | |
6607 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_with_kv(yyjson_mut_doc *doc, |
6608 | | const char **pairs, |
6609 | 0 | size_t count) { |
6610 | 0 | if (yyjson_likely(doc && ((count > 0 && pairs) || (count == 0)))) { |
6611 | 0 | yyjson_mut_val *obj = unsafe_yyjson_mut_val(doc, 1 + count * 2); |
6612 | 0 | if (yyjson_likely(obj)) { |
6613 | 0 | obj->tag = ((uint64_t)count << YYJSON_TAG_BIT) | YYJSON_TYPE_OBJ; |
6614 | 0 | if (count > 0) { |
6615 | 0 | size_t i; |
6616 | 0 | for (i = 0; i < count; i++) { |
6617 | 0 | yyjson_mut_val *key = obj + (i * 2 + 1); |
6618 | 0 | yyjson_mut_val *val = obj + (i * 2 + 2); |
6619 | 0 | const char *key_str = pairs[i * 2 + 0]; |
6620 | 0 | const char *val_str = pairs[i * 2 + 1]; |
6621 | 0 | uint64_t key_len = (uint64_t)strlen(key_str); |
6622 | 0 | uint64_t val_len = (uint64_t)strlen(val_str); |
6623 | 0 | key->tag = (key_len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
6624 | 0 | val->tag = (val_len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
6625 | 0 | key->uni.str = key_str; |
6626 | 0 | val->uni.str = val_str; |
6627 | 0 | key->next = val; |
6628 | 0 | val->next = val + 1; |
6629 | 0 | } |
6630 | 0 | obj[count * 2].next = obj + 1; |
6631 | 0 | obj->uni.ptr = obj + (count * 2 - 1); |
6632 | 0 | } |
6633 | 0 | return obj; |
6634 | 0 | } |
6635 | 0 | } |
6636 | 0 | return NULL; |
6637 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_with_kv(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_with_kv(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_with_kv(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_with_kv(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_with_kv(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_with_kv(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_with_kv(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_with_kv(duckdb_yyjson::yyjson_mut_doc*, char const**, unsigned long) |
6638 | | |
6639 | | |
6640 | | |
6641 | | /*============================================================================== |
6642 | | * Mutable JSON Object Modification API (Implementation) |
6643 | | *============================================================================*/ |
6644 | | |
6645 | | yyjson_api_inline void unsafe_yyjson_mut_obj_add(yyjson_mut_val *obj, |
6646 | | yyjson_mut_val *key, |
6647 | | yyjson_mut_val *val, |
6648 | 819k | size_t len) { |
6649 | 819k | if (yyjson_likely(len)) { |
6650 | 612k | yyjson_mut_val *prev_val = ((yyjson_mut_val *)obj->uni.ptr)->next; |
6651 | 612k | yyjson_mut_val *next_key = prev_val->next; |
6652 | 612k | prev_val->next = key; |
6653 | 612k | val->next = next_key; |
6654 | 612k | } else { |
6655 | 207k | val->next = key; |
6656 | 207k | } |
6657 | 819k | key->next = val; |
6658 | 819k | obj->uni.ptr = (void *)key; |
6659 | 819k | unsafe_yyjson_set_len(obj, len + 1); |
6660 | 819k | } ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Line | Count | Source | 6648 | 819k | size_t len) { | 6649 | 819k | if (yyjson_likely(len)) { | 6650 | 612k | yyjson_mut_val *prev_val = ((yyjson_mut_val *)obj->uni.ptr)->next; | 6651 | 612k | yyjson_mut_val *next_key = prev_val->next; | 6652 | 612k | prev_val->next = key; | 6653 | 612k | val->next = next_key; | 6654 | 612k | } else { | 6655 | 207k | val->next = key; | 6656 | 207k | } | 6657 | 819k | key->next = val; | 6658 | 819k | obj->uni.ptr = (void *)key; | 6659 | 819k | unsafe_yyjson_set_len(obj, len + 1); | 6660 | 819k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) |
6661 | | |
6662 | | yyjson_api_inline yyjson_mut_val *unsafe_yyjson_mut_obj_remove( |
6663 | 0 | yyjson_mut_val *obj, const char *key, size_t key_len) { |
6664 | 0 | size_t obj_len = unsafe_yyjson_get_len(obj); |
6665 | 0 | if (obj_len) { |
6666 | 0 | yyjson_mut_val *pre_key = (yyjson_mut_val *)obj->uni.ptr; |
6667 | 0 | yyjson_mut_val *cur_key = pre_key->next->next; |
6668 | 0 | yyjson_mut_val *removed_item = NULL; |
6669 | 0 | size_t i; |
6670 | 0 | for (i = 0; i < obj_len; i++) { |
6671 | 0 | if (unsafe_yyjson_equals_strn(cur_key, key, key_len)) { |
6672 | 0 | if (!removed_item) removed_item = cur_key->next; |
6673 | 0 | cur_key = cur_key->next->next; |
6674 | 0 | pre_key->next->next = cur_key; |
6675 | 0 | if (i + 1 == obj_len) obj->uni.ptr = pre_key; |
6676 | 0 | i--; |
6677 | 0 | obj_len--; |
6678 | 0 | } else { |
6679 | 0 | pre_key = cur_key; |
6680 | 0 | cur_key = cur_key->next->next; |
6681 | 0 | } |
6682 | 0 | } |
6683 | 0 | unsafe_yyjson_set_len(obj, obj_len); |
6684 | 0 | return removed_item; |
6685 | 0 | } else { |
6686 | 0 | return NULL; |
6687 | 0 | } |
6688 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
6689 | | |
6690 | | yyjson_api_inline bool unsafe_yyjson_mut_obj_replace(yyjson_mut_val *obj, |
6691 | | yyjson_mut_val *key, |
6692 | 0 | yyjson_mut_val *val) { |
6693 | 0 | size_t key_len = unsafe_yyjson_get_len(key); |
6694 | 0 | size_t obj_len = unsafe_yyjson_get_len(obj); |
6695 | 0 | if (obj_len) { |
6696 | 0 | yyjson_mut_val *pre_key = (yyjson_mut_val *)obj->uni.ptr; |
6697 | 0 | yyjson_mut_val *cur_key = pre_key->next->next; |
6698 | 0 | size_t i; |
6699 | 0 | for (i = 0; i < obj_len; i++) { |
6700 | 0 | if (unsafe_yyjson_equals_strn(cur_key, key->uni.str, key_len)) { |
6701 | 0 | cur_key->next->tag = val->tag; |
6702 | 0 | cur_key->next->uni.u64 = val->uni.u64; |
6703 | 0 | return true; |
6704 | 0 | } else { |
6705 | 0 | cur_key = cur_key->next->next; |
6706 | 0 | } |
6707 | 0 | } |
6708 | 0 | } |
6709 | 0 | return false; |
6710 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) |
6711 | | |
6712 | | yyjson_api_inline void unsafe_yyjson_mut_obj_rotate(yyjson_mut_val *obj, |
6713 | 0 | size_t idx) { |
6714 | 0 | yyjson_mut_val *key = (yyjson_mut_val *)obj->uni.ptr; |
6715 | 0 | while (idx-- > 0) key = key->next->next; |
6716 | 0 | obj->uni.ptr = (void *)key; |
6717 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) |
6718 | | |
6719 | | yyjson_api_inline bool yyjson_mut_obj_add(yyjson_mut_val *obj, |
6720 | | yyjson_mut_val *key, |
6721 | 404k | yyjson_mut_val *val) { |
6722 | 404k | if (yyjson_likely(yyjson_mut_is_obj(obj) && |
6723 | 404k | yyjson_mut_is_str(key) && val)) { |
6724 | 404k | unsafe_yyjson_mut_obj_add(obj, key, val, unsafe_yyjson_get_len(obj)); |
6725 | 404k | return true; |
6726 | 404k | } |
6727 | 0 | return false; |
6728 | 404k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Line | Count | Source | 6721 | 404k | yyjson_mut_val *val) { | 6722 | 404k | if (yyjson_likely(yyjson_mut_is_obj(obj) && | 6723 | 404k | yyjson_mut_is_str(key) && val)) { | 6724 | 404k | unsafe_yyjson_mut_obj_add(obj, key, val, unsafe_yyjson_get_len(obj)); | 6725 | 404k | return true; | 6726 | 404k | } | 6727 | 0 | return false; | 6728 | 404k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) |
6729 | | |
6730 | | yyjson_api_inline bool yyjson_mut_obj_put(yyjson_mut_val *obj, |
6731 | | yyjson_mut_val *key, |
6732 | 0 | yyjson_mut_val *val) { |
6733 | 0 | bool replaced = false; |
6734 | 0 | size_t key_len; |
6735 | 0 | yyjson_mut_obj_iter iter; |
6736 | 0 | yyjson_mut_val *cur_key; |
6737 | 0 | if (yyjson_unlikely(!yyjson_mut_is_obj(obj) || |
6738 | 0 | !yyjson_mut_is_str(key))) return false; |
6739 | 0 | key_len = unsafe_yyjson_get_len(key); |
6740 | 0 | yyjson_mut_obj_iter_init(obj, &iter); |
6741 | 0 | while ((cur_key = yyjson_mut_obj_iter_next(&iter)) != 0) { |
6742 | 0 | if (unsafe_yyjson_equals_strn(cur_key, key->uni.str, key_len)) { |
6743 | 0 | if (!replaced && val) { |
6744 | 0 | replaced = true; |
6745 | 0 | val->next = cur_key->next->next; |
6746 | 0 | cur_key->next = val; |
6747 | 0 | } else { |
6748 | 0 | yyjson_mut_obj_iter_remove(&iter); |
6749 | 0 | } |
6750 | 0 | } |
6751 | 0 | } |
6752 | 0 | if (!replaced && val) unsafe_yyjson_mut_obj_add(obj, key, val, iter.max); |
6753 | 0 | return true; |
6754 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_put(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_put(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_put(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_put(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_put(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_put(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_put(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_put(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) |
6755 | | |
6756 | | yyjson_api_inline bool yyjson_mut_obj_insert(yyjson_mut_val *obj, |
6757 | | yyjson_mut_val *key, |
6758 | | yyjson_mut_val *val, |
6759 | 0 | size_t idx) { |
6760 | 0 | if (yyjson_likely(yyjson_mut_is_obj(obj) && |
6761 | 0 | yyjson_mut_is_str(key) && val)) { |
6762 | 0 | size_t len = unsafe_yyjson_get_len(obj); |
6763 | 0 | if (yyjson_likely(len >= idx)) { |
6764 | 0 | if (len > idx) { |
6765 | 0 | void *ptr = obj->uni.ptr; |
6766 | 0 | unsafe_yyjson_mut_obj_rotate(obj, idx); |
6767 | 0 | unsafe_yyjson_mut_obj_add(obj, key, val, len); |
6768 | 0 | obj->uni.ptr = ptr; |
6769 | 0 | } else { |
6770 | 0 | unsafe_yyjson_mut_obj_add(obj, key, val, len); |
6771 | 0 | } |
6772 | 0 | return true; |
6773 | 0 | } |
6774 | 0 | } |
6775 | 0 | return false; |
6776 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_insert(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, unsigned long) |
6777 | | |
6778 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_remove(yyjson_mut_val *obj, |
6779 | 0 | yyjson_mut_val *key) { |
6780 | 0 | if (yyjson_likely(yyjson_mut_is_obj(obj) && yyjson_mut_is_str(key))) { |
6781 | 0 | return unsafe_yyjson_mut_obj_remove(obj, key->uni.str, |
6782 | 0 | unsafe_yyjson_get_len(key)); |
6783 | 0 | } |
6784 | 0 | return NULL; |
6785 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_remove(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) |
6786 | | |
6787 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_remove_key( |
6788 | 0 | yyjson_mut_val *obj, const char *key) { |
6789 | 0 | if (yyjson_likely(yyjson_mut_is_obj(obj) && key)) { |
6790 | 0 | size_t key_len = strlen(key); |
6791 | 0 | return unsafe_yyjson_mut_obj_remove(obj, key, key_len); |
6792 | 0 | } |
6793 | 0 | return NULL; |
6794 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_remove_key(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_remove_key(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_remove_key(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_remove_key(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_remove_key(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_remove_key(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_remove_key(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_remove_key(duckdb_yyjson::yyjson_mut_val*, char const*) |
6795 | | |
6796 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_remove_keyn( |
6797 | 0 | yyjson_mut_val *obj, const char *key, size_t key_len) { |
6798 | 0 | if (yyjson_likely(yyjson_mut_is_obj(obj) && key)) { |
6799 | 0 | return unsafe_yyjson_mut_obj_remove(obj, key, key_len); |
6800 | 0 | } |
6801 | 0 | return NULL; |
6802 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_remove_keyn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_remove_keyn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_remove_keyn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_remove_keyn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_remove_keyn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_remove_keyn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_remove_keyn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_remove_keyn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
6803 | | |
6804 | 0 | yyjson_api_inline bool yyjson_mut_obj_clear(yyjson_mut_val *obj) { |
6805 | 0 | if (yyjson_likely(yyjson_mut_is_obj(obj))) { |
6806 | 0 | unsafe_yyjson_set_len(obj, 0); |
6807 | 0 | return true; |
6808 | 0 | } |
6809 | 0 | return false; |
6810 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_clear(duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_clear(duckdb_yyjson::yyjson_mut_val*) |
6811 | | |
6812 | | yyjson_api_inline bool yyjson_mut_obj_replace(yyjson_mut_val *obj, |
6813 | | yyjson_mut_val *key, |
6814 | 0 | yyjson_mut_val *val) { |
6815 | 0 | if (yyjson_likely(yyjson_mut_is_obj(obj) && |
6816 | 0 | yyjson_mut_is_str(key) && val)) { |
6817 | 0 | return unsafe_yyjson_mut_obj_replace(obj, key, val); |
6818 | 0 | } |
6819 | 0 | return false; |
6820 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_replace(duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) |
6821 | | |
6822 | | yyjson_api_inline bool yyjson_mut_obj_rotate(yyjson_mut_val *obj, |
6823 | 0 | size_t idx) { |
6824 | 0 | if (yyjson_likely(yyjson_mut_is_obj(obj) && |
6825 | 0 | unsafe_yyjson_get_len(obj) > idx)) { |
6826 | 0 | unsafe_yyjson_mut_obj_rotate(obj, idx); |
6827 | 0 | return true; |
6828 | 0 | } |
6829 | 0 | return false; |
6830 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_rotate(duckdb_yyjson::yyjson_mut_val*, unsigned long) |
6831 | | |
6832 | | |
6833 | | |
6834 | | /*============================================================================== |
6835 | | * Mutable JSON Object Modification Convenience API (Implementation) |
6836 | | *============================================================================*/ |
6837 | | |
6838 | | #define yyjson_mut_obj_add_func(func) \ |
6839 | 415k | if (yyjson_likely(doc && yyjson_mut_is_obj(obj) && _key)) { \ |
6840 | 415k | yyjson_mut_val *key = unsafe_yyjson_mut_val(doc, 2); \ |
6841 | 415k | if (yyjson_likely(key)) { \ |
6842 | 415k | size_t len = unsafe_yyjson_get_len(obj); \ |
6843 | 415k | yyjson_mut_val *val = key + 1; \ |
6844 | 415k | size_t key_len = strlen(_key); \ |
6845 | 415k | bool noesc = unsafe_yyjson_is_str_noesc(_key, key_len); \ |
6846 | 415k | key->tag = YYJSON_TYPE_STR; \ |
6847 | 18.4E | key->tag |= noesc ? YYJSON_SUBTYPE_NOESC : YYJSON_SUBTYPE_NONE; \ |
6848 | 415k | key->tag |= (uint64_t)strlen(_key) << YYJSON_TAG_BIT; \ |
6849 | 415k | key->uni.str = _key; \ |
6850 | 415k | func \ |
6851 | 415k | unsafe_yyjson_mut_obj_add(obj, key, val, len); \ |
6852 | 415k | return true; \ |
6853 | 415k | } \ |
6854 | 415k | } \ |
6855 | 415k | return false |
6856 | | |
6857 | | yyjson_api_inline bool yyjson_mut_obj_add_null(yyjson_mut_doc *doc, |
6858 | | yyjson_mut_val *obj, |
6859 | 0 | const char *_key) { |
6860 | 0 | yyjson_mut_obj_add_func({ |
6861 | 0 | val->tag = YYJSON_TYPE_NULL | YYJSON_SUBTYPE_NONE; |
6862 | 0 | }); |
6863 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_null(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) |
6864 | | |
6865 | | yyjson_api_inline bool yyjson_mut_obj_add_true(yyjson_mut_doc *doc, |
6866 | | yyjson_mut_val *obj, |
6867 | 0 | const char *_key) { |
6868 | 0 | yyjson_mut_obj_add_func({ |
6869 | 0 | val->tag = YYJSON_TYPE_BOOL | YYJSON_SUBTYPE_TRUE; |
6870 | 0 | }); |
6871 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_true(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) |
6872 | | |
6873 | | yyjson_api_inline bool yyjson_mut_obj_add_false(yyjson_mut_doc *doc, |
6874 | | yyjson_mut_val *obj, |
6875 | 0 | const char *_key) { |
6876 | 0 | yyjson_mut_obj_add_func({ |
6877 | 0 | val->tag = YYJSON_TYPE_BOOL | YYJSON_SUBTYPE_FALSE; |
6878 | 0 | }); |
6879 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_false(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) |
6880 | | |
6881 | | yyjson_api_inline bool yyjson_mut_obj_add_bool(yyjson_mut_doc *doc, |
6882 | | yyjson_mut_val *obj, |
6883 | | const char *_key, |
6884 | 0 | bool _val) { |
6885 | 0 | yyjson_mut_obj_add_func({ |
6886 | 0 | _val = !!_val; |
6887 | 0 | val->tag = YYJSON_TYPE_BOOL | (uint8_t)((uint8_t)(_val) << 3); |
6888 | 0 | }); |
6889 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, bool) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, bool) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, bool) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, bool) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, bool) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, bool) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, bool) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_bool(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, bool) |
6890 | | |
6891 | | yyjson_api_inline bool yyjson_mut_obj_add_uint(yyjson_mut_doc *doc, |
6892 | | yyjson_mut_val *obj, |
6893 | | const char *_key, |
6894 | 0 | uint64_t _val) { |
6895 | 0 | yyjson_mut_obj_add_func({ |
6896 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_UINT; |
6897 | 0 | val->uni.u64 = _val; |
6898 | 0 | }); |
6899 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_uint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
6900 | | |
6901 | | yyjson_api_inline bool yyjson_mut_obj_add_sint(yyjson_mut_doc *doc, |
6902 | | yyjson_mut_val *obj, |
6903 | | const char *_key, |
6904 | 0 | int64_t _val) { |
6905 | 0 | yyjson_mut_obj_add_func({ |
6906 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_SINT; |
6907 | 0 | val->uni.i64 = _val; |
6908 | 0 | }); |
6909 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_sint(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) |
6910 | | |
6911 | | yyjson_api_inline bool yyjson_mut_obj_add_int(yyjson_mut_doc *doc, |
6912 | | yyjson_mut_val *obj, |
6913 | | const char *_key, |
6914 | 0 | int64_t _val) { |
6915 | 0 | yyjson_mut_obj_add_func({ |
6916 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_SINT; |
6917 | 0 | val->uni.i64 = _val; |
6918 | 0 | }); |
6919 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_int(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, long) |
6920 | | |
6921 | | yyjson_api_inline bool yyjson_mut_obj_add_real(yyjson_mut_doc *doc, |
6922 | | yyjson_mut_val *obj, |
6923 | | const char *_key, |
6924 | 0 | double _val) { |
6925 | 0 | yyjson_mut_obj_add_func({ |
6926 | 0 | val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_REAL; |
6927 | 0 | val->uni.f64 = _val; |
6928 | 0 | }); |
6929 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, double) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, double) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, double) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, double) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, double) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, double) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, double) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_real(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, double) |
6930 | | |
6931 | | yyjson_api_inline bool yyjson_mut_obj_add_str(yyjson_mut_doc *doc, |
6932 | | yyjson_mut_val *obj, |
6933 | | const char *_key, |
6934 | 0 | const char *_val) { |
6935 | 0 | if (yyjson_unlikely(!_val)) return false; |
6936 | 0 | yyjson_mut_obj_add_func({ |
6937 | 0 | size_t val_len = strlen(_val); |
6938 | 0 | bool val_noesc = unsafe_yyjson_is_str_noesc(_val, val_len); |
6939 | 0 | val->tag = ((uint64_t)strlen(_val) << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
6940 | 0 | val->tag |= val_noesc ? YYJSON_SUBTYPE_NOESC : YYJSON_SUBTYPE_NONE; |
6941 | 0 | val->uni.str = _val; |
6942 | 0 | }); |
6943 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_str(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) |
6944 | | |
6945 | | yyjson_api_inline bool yyjson_mut_obj_add_strn(yyjson_mut_doc *doc, |
6946 | | yyjson_mut_val *obj, |
6947 | | const char *_key, |
6948 | | const char *_val, |
6949 | 0 | size_t _len) { |
6950 | 0 | if (yyjson_unlikely(!_val)) return false; |
6951 | 0 | yyjson_mut_obj_add_func({ |
6952 | 0 | val->tag = ((uint64_t)_len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
6953 | 0 | val->uni.str = _val; |
6954 | 0 | }); |
6955 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_strn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) |
6956 | | |
6957 | | yyjson_api_inline bool yyjson_mut_obj_add_strcpy(yyjson_mut_doc *doc, |
6958 | | yyjson_mut_val *obj, |
6959 | | const char *_key, |
6960 | 0 | const char *_val) { |
6961 | 0 | if (yyjson_unlikely(!_val)) return false; |
6962 | 0 | yyjson_mut_obj_add_func({ |
6963 | 0 | size_t _len = strlen(_val); |
6964 | 0 | val->uni.str = unsafe_yyjson_mut_strncpy(doc, _val, _len); |
6965 | 0 | if (yyjson_unlikely(!val->uni.str)) return false; |
6966 | 0 | val->tag = ((uint64_t)_len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
6967 | 0 | }); |
6968 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_strcpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) |
6969 | | |
6970 | | yyjson_api_inline bool yyjson_mut_obj_add_strncpy(yyjson_mut_doc *doc, |
6971 | | yyjson_mut_val *obj, |
6972 | | const char *_key, |
6973 | | const char *_val, |
6974 | 415k | size_t _len) { |
6975 | 415k | if (yyjson_unlikely(!_val)) return false; |
6976 | 415k | yyjson_mut_obj_add_func({ |
6977 | 415k | val->uni.str = unsafe_yyjson_mut_strncpy(doc, _val, _len); |
6978 | 415k | if (yyjson_unlikely(!val->uni.str)) return false; |
6979 | 415k | val->tag = ((uint64_t)_len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; |
6980 | 415k | }); |
6981 | 415k | } ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Line | Count | Source | 6974 | 415k | size_t _len) { | 6975 | 415k | if (yyjson_unlikely(!_val)) return false; | 6976 | 415k | yyjson_mut_obj_add_func({ | 6977 | 415k | val->uni.str = unsafe_yyjson_mut_strncpy(doc, _val, _len); | 6978 | 415k | if (yyjson_unlikely(!val->uni.str)) return false; | 6979 | 415k | val->tag = ((uint64_t)_len << YYJSON_TAG_BIT) | YYJSON_TYPE_STR; | 6980 | 415k | }); | 6981 | 415k | } |
Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_strncpy(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*, unsigned long) |
6982 | | |
6983 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_add_arr(yyjson_mut_doc *doc, |
6984 | | yyjson_mut_val *obj, |
6985 | 0 | const char *_key) { |
6986 | 0 | yyjson_mut_val *key = yyjson_mut_str(doc, _key); |
6987 | 0 | yyjson_mut_val *val = yyjson_mut_arr(doc); |
6988 | 0 | return yyjson_mut_obj_add(obj, key, val) ? val : NULL; |
6989 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_arr(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) |
6990 | | |
6991 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_add_obj(yyjson_mut_doc *doc, |
6992 | | yyjson_mut_val *obj, |
6993 | 0 | const char *_key) { |
6994 | 0 | yyjson_mut_val *key = yyjson_mut_str(doc, _key); |
6995 | 0 | yyjson_mut_val *val = yyjson_mut_obj(doc); |
6996 | 0 | return yyjson_mut_obj_add(obj, key, val) ? val : NULL; |
6997 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_obj(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*) |
6998 | | |
6999 | | yyjson_api_inline bool yyjson_mut_obj_add_val(yyjson_mut_doc *doc, |
7000 | | yyjson_mut_val *obj, |
7001 | | const char *_key, |
7002 | 0 | yyjson_mut_val *_val) { |
7003 | 0 | if (yyjson_unlikely(!_val)) return false; |
7004 | 0 | yyjson_mut_obj_add_func({ |
7005 | 0 | val = _val; |
7006 | 0 | }); |
7007 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_add_val(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_add_val(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_add_val(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_add_val(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_add_val(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_add_val(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_add_val(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_add_val(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) |
7008 | | |
7009 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_remove_str(yyjson_mut_val *obj, |
7010 | 0 | const char *key) { |
7011 | 0 | return yyjson_mut_obj_remove_strn(obj, key, key ? strlen(key) : 0); |
7012 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_remove_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_remove_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_remove_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_remove_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_remove_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_remove_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_remove_str(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_remove_str(duckdb_yyjson::yyjson_mut_val*, char const*) |
7013 | | |
7014 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_obj_remove_strn( |
7015 | 0 | yyjson_mut_val *obj, const char *_key, size_t _len) { |
7016 | 0 | if (yyjson_likely(yyjson_mut_is_obj(obj) && _key)) { |
7017 | 0 | yyjson_mut_val *key; |
7018 | 0 | yyjson_mut_obj_iter iter; |
7019 | 0 | yyjson_mut_val *val_removed = NULL; |
7020 | 0 | yyjson_mut_obj_iter_init(obj, &iter); |
7021 | 0 | while ((key = yyjson_mut_obj_iter_next(&iter)) != NULL) { |
7022 | 0 | if (unsafe_yyjson_equals_strn(key, _key, _len)) { |
7023 | 0 | if (!val_removed) val_removed = key->next; |
7024 | 0 | yyjson_mut_obj_iter_remove(&iter); |
7025 | 0 | } |
7026 | 0 | } |
7027 | 0 | return val_removed; |
7028 | 0 | } |
7029 | 0 | return NULL; |
7030 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_remove_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_remove_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_remove_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_remove_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_remove_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_remove_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_remove_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_remove_strn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
7031 | | |
7032 | | yyjson_api_inline bool yyjson_mut_obj_rename_key(yyjson_mut_doc *doc, |
7033 | | yyjson_mut_val *obj, |
7034 | | const char *key, |
7035 | 0 | const char *new_key) { |
7036 | 0 | if (!key || !new_key) return false; |
7037 | 0 | return yyjson_mut_obj_rename_keyn(doc, obj, key, strlen(key), |
7038 | 0 | new_key, strlen(new_key)); |
7039 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_rename_key(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_rename_key(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_rename_key(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_rename_key(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_rename_key(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_rename_key(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_rename_key(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_rename_key(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, char const*) |
7040 | | |
7041 | | yyjson_api_inline bool yyjson_mut_obj_rename_keyn(yyjson_mut_doc *doc, |
7042 | | yyjson_mut_val *obj, |
7043 | | const char *key, |
7044 | | size_t len, |
7045 | | const char *new_key, |
7046 | 0 | size_t new_len) { |
7047 | 0 | char *cpy_key = NULL; |
7048 | 0 | yyjson_mut_val *old_key; |
7049 | 0 | yyjson_mut_obj_iter iter; |
7050 | 0 | if (!doc || !obj || !key || !new_key) return false; |
7051 | 0 | yyjson_mut_obj_iter_init(obj, &iter); |
7052 | 0 | while ((old_key = yyjson_mut_obj_iter_next(&iter))) { |
7053 | 0 | if (unsafe_yyjson_equals_strn((void *)old_key, key, len)) { |
7054 | 0 | if (!cpy_key) { |
7055 | 0 | cpy_key = unsafe_yyjson_mut_strncpy(doc, new_key, new_len); |
7056 | 0 | if (!cpy_key) return false; |
7057 | 0 | } |
7058 | 0 | yyjson_mut_set_strn(old_key, cpy_key, new_len); |
7059 | 0 | } |
7060 | 0 | } |
7061 | 0 | return cpy_key != NULL; |
7062 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_obj_rename_keyn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_obj_rename_keyn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_obj_rename_keyn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_obj_rename_keyn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_obj_rename_keyn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_obj_rename_keyn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_obj_rename_keyn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_obj_rename_keyn(duckdb_yyjson::yyjson_mut_doc*, duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, char const*, unsigned long) |
7063 | | |
7064 | | |
7065 | | |
7066 | | /*============================================================================== |
7067 | | * JSON Pointer API (Implementation) |
7068 | | *============================================================================*/ |
7069 | | |
7070 | 0 | #define yyjson_ptr_set_err(_code, _msg) do { \ |
7071 | 0 | if (err) { \ |
7072 | 0 | err->code = YYJSON_PTR_ERR_##_code; \ |
7073 | 0 | err->msg = _msg; \ |
7074 | 0 | err->pos = 0; \ |
7075 | 0 | } \ |
7076 | 0 | } while(false) |
7077 | | |
7078 | | /* require: val != NULL, *ptr == '/', len > 0 */ |
7079 | | yyjson_api yyjson_val *unsafe_yyjson_ptr_getx(yyjson_val *val, |
7080 | | const char *ptr, size_t len, |
7081 | | yyjson_ptr_err *err); |
7082 | | |
7083 | | /* require: val != NULL, *ptr == '/', len > 0 */ |
7084 | | yyjson_api yyjson_mut_val *unsafe_yyjson_mut_ptr_getx(yyjson_mut_val *val, |
7085 | | const char *ptr, |
7086 | | size_t len, |
7087 | | yyjson_ptr_ctx *ctx, |
7088 | | yyjson_ptr_err *err); |
7089 | | |
7090 | | /* require: val/new_val/doc != NULL, *ptr == '/', len > 0 */ |
7091 | | yyjson_api bool unsafe_yyjson_mut_ptr_putx(yyjson_mut_val *val, |
7092 | | const char *ptr, size_t len, |
7093 | | yyjson_mut_val *new_val, |
7094 | | yyjson_mut_doc *doc, |
7095 | | bool create_parent, bool insert_new, |
7096 | | yyjson_ptr_ctx *ctx, |
7097 | | yyjson_ptr_err *err); |
7098 | | |
7099 | | /* require: val/err != NULL, *ptr == '/', len > 0 */ |
7100 | | yyjson_api yyjson_mut_val *unsafe_yyjson_mut_ptr_replacex( |
7101 | | yyjson_mut_val *val, const char *ptr, size_t len, yyjson_mut_val *new_val, |
7102 | | yyjson_ptr_ctx *ctx, yyjson_ptr_err *err); |
7103 | | |
7104 | | /* require: val/err != NULL, *ptr == '/', len > 0 */ |
7105 | | yyjson_api yyjson_mut_val *unsafe_yyjson_mut_ptr_removex(yyjson_mut_val *val, |
7106 | | const char *ptr, |
7107 | | size_t len, |
7108 | | yyjson_ptr_ctx *ctx, |
7109 | | yyjson_ptr_err *err); |
7110 | | |
7111 | | yyjson_api_inline yyjson_val *yyjson_doc_ptr_get(yyjson_doc *doc, |
7112 | 0 | const char *ptr) { |
7113 | 0 | if (yyjson_unlikely(!ptr)) return NULL; |
7114 | 0 | return yyjson_doc_ptr_getn(doc, ptr, strlen(ptr)); |
7115 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_doc_ptr_get(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_doc_ptr_get(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_doc_ptr_get(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_doc_ptr_get(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_doc_ptr_get(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_doc_ptr_get(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_doc_ptr_get(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_doc_ptr_get(duckdb_yyjson::yyjson_doc*, char const*) |
7116 | | |
7117 | | yyjson_api_inline yyjson_val *yyjson_doc_ptr_getn(yyjson_doc *doc, |
7118 | 0 | const char *ptr, size_t len) { |
7119 | 0 | return yyjson_doc_ptr_getx(doc, ptr, len, NULL); |
7120 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_doc_ptr_getn(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_doc_ptr_getn(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_doc_ptr_getn(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_doc_ptr_getn(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_doc_ptr_getn(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_doc_ptr_getn(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_doc_ptr_getn(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_doc_ptr_getn(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) |
7121 | | |
7122 | | yyjson_api_inline yyjson_val *yyjson_doc_ptr_getx(yyjson_doc *doc, |
7123 | | const char *ptr, size_t len, |
7124 | 0 | yyjson_ptr_err *err) { |
7125 | 0 | yyjson_ptr_set_err(NONE, NULL); |
7126 | 0 | if (yyjson_unlikely(!doc || !ptr)) { |
7127 | 0 | yyjson_ptr_set_err(PARAMETER, "input parameter is NULL"); |
7128 | 0 | return NULL; |
7129 | 0 | } |
7130 | 0 | if (yyjson_unlikely(!doc->root)) { |
7131 | 0 | yyjson_ptr_set_err(NULL_ROOT, "document's root is NULL"); |
7132 | 0 | return NULL; |
7133 | 0 | } |
7134 | 0 | if (yyjson_unlikely(len == 0)) { |
7135 | 0 | return doc->root; |
7136 | 0 | } |
7137 | 0 | if (yyjson_unlikely(*ptr != '/')) { |
7138 | 0 | yyjson_ptr_set_err(SYNTAX, "no prefix '/'"); |
7139 | 0 | return NULL; |
7140 | 0 | } |
7141 | 0 | return unsafe_yyjson_ptr_getx(doc->root, ptr, len, err); |
7142 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_doc_ptr_getx(duckdb_yyjson::yyjson_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_doc_ptr_getx(duckdb_yyjson::yyjson_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_doc_ptr_getx(duckdb_yyjson::yyjson_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_doc_ptr_getx(duckdb_yyjson::yyjson_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_doc_ptr_getx(duckdb_yyjson::yyjson_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_doc_ptr_getx(duckdb_yyjson::yyjson_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_doc_ptr_getx(duckdb_yyjson::yyjson_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_doc_ptr_getx(duckdb_yyjson::yyjson_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) |
7143 | | |
7144 | | yyjson_api_inline yyjson_val *yyjson_ptr_get(yyjson_val *val, |
7145 | 0 | const char *ptr) { |
7146 | 0 | if (yyjson_unlikely(!ptr)) return NULL; |
7147 | 0 | return yyjson_ptr_getn(val, ptr, strlen(ptr)); |
7148 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_ptr_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_ptr_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_ptr_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_ptr_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_ptr_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_ptr_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_ptr_get(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_ptr_get(duckdb_yyjson::yyjson_val*, char const*) |
7149 | | |
7150 | | yyjson_api_inline yyjson_val *yyjson_ptr_getn(yyjson_val *val, |
7151 | 0 | const char *ptr, size_t len) { |
7152 | 0 | return yyjson_ptr_getx(val, ptr, len, NULL); |
7153 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_ptr_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_ptr_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_ptr_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_ptr_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_ptr_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_ptr_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_ptr_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_ptr_getn(duckdb_yyjson::yyjson_val*, char const*, unsigned long) |
7154 | | |
7155 | | yyjson_api_inline yyjson_val *yyjson_ptr_getx(yyjson_val *val, |
7156 | | const char *ptr, size_t len, |
7157 | 0 | yyjson_ptr_err *err) { |
7158 | 0 | yyjson_ptr_set_err(NONE, NULL); |
7159 | 0 | if (yyjson_unlikely(!val || !ptr)) { |
7160 | 0 | yyjson_ptr_set_err(PARAMETER, "input parameter is NULL"); |
7161 | 0 | return NULL; |
7162 | 0 | } |
7163 | 0 | if (yyjson_unlikely(len == 0)) { |
7164 | 0 | return val; |
7165 | 0 | } |
7166 | 0 | if (yyjson_unlikely(*ptr != '/')) { |
7167 | 0 | yyjson_ptr_set_err(SYNTAX, "no prefix '/'"); |
7168 | 0 | return NULL; |
7169 | 0 | } |
7170 | 0 | return unsafe_yyjson_ptr_getx(val, ptr, len, err); |
7171 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_ptr_getx(duckdb_yyjson::yyjson_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_ptr_getx(duckdb_yyjson::yyjson_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_ptr_getx(duckdb_yyjson::yyjson_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_ptr_getx(duckdb_yyjson::yyjson_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_ptr_getx(duckdb_yyjson::yyjson_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_ptr_getx(duckdb_yyjson::yyjson_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_ptr_getx(duckdb_yyjson::yyjson_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_ptr_getx(duckdb_yyjson::yyjson_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_err*) |
7172 | | |
7173 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_get(yyjson_mut_doc *doc, |
7174 | 0 | const char *ptr) { |
7175 | 0 | if (!ptr) return NULL; |
7176 | 0 | return yyjson_mut_doc_ptr_getn(doc, ptr, strlen(ptr)); |
7177 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_get(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_get(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_get(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_get(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_get(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_get(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_get(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_get(duckdb_yyjson::yyjson_mut_doc*, char const*) |
7178 | | |
7179 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_getn(yyjson_mut_doc *doc, |
7180 | | const char *ptr, |
7181 | 0 | size_t len) { |
7182 | 0 | return yyjson_mut_doc_ptr_getx(doc, ptr, len, NULL, NULL); |
7183 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) |
7184 | | |
7185 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_getx(yyjson_mut_doc *doc, |
7186 | | const char *ptr, |
7187 | | size_t len, |
7188 | | yyjson_ptr_ctx *ctx, |
7189 | 0 | yyjson_ptr_err *err) { |
7190 | 0 | yyjson_ptr_set_err(NONE, NULL); |
7191 | 0 | if (ctx) memset(ctx, 0, sizeof(*ctx)); |
7192 | 0 | |
7193 | 0 | if (yyjson_unlikely(!doc || !ptr)) { |
7194 | 0 | yyjson_ptr_set_err(PARAMETER, "input parameter is NULL"); |
7195 | 0 | return NULL; |
7196 | 0 | } |
7197 | 0 | if (yyjson_unlikely(!doc->root)) { |
7198 | 0 | yyjson_ptr_set_err(NULL_ROOT, "document's root is NULL"); |
7199 | 0 | return NULL; |
7200 | 0 | } |
7201 | 0 | if (yyjson_unlikely(len == 0)) { |
7202 | 0 | return doc->root; |
7203 | 0 | } |
7204 | 0 | if (yyjson_unlikely(*ptr != '/')) { |
7205 | 0 | yyjson_ptr_set_err(SYNTAX, "no prefix '/'"); |
7206 | 0 | return NULL; |
7207 | 0 | } |
7208 | 0 | return unsafe_yyjson_mut_ptr_getx(doc->root, ptr, len, ctx, err); |
7209 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_getx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) |
7210 | | |
7211 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_get(yyjson_mut_val *val, |
7212 | 0 | const char *ptr) { |
7213 | 0 | if (!ptr) return NULL; |
7214 | 0 | return yyjson_mut_ptr_getn(val, ptr, strlen(ptr)); |
7215 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_get(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_get(duckdb_yyjson::yyjson_mut_val*, char const*) |
7216 | | |
7217 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_getn(yyjson_mut_val *val, |
7218 | | const char *ptr, |
7219 | 0 | size_t len) { |
7220 | 0 | return yyjson_mut_ptr_getx(val, ptr, len, NULL, NULL); |
7221 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_getn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
7222 | | |
7223 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_getx(yyjson_mut_val *val, |
7224 | | const char *ptr, |
7225 | | size_t len, |
7226 | | yyjson_ptr_ctx *ctx, |
7227 | 0 | yyjson_ptr_err *err) { |
7228 | 0 | yyjson_ptr_set_err(NONE, NULL); |
7229 | 0 | if (ctx) memset(ctx, 0, sizeof(*ctx)); |
7230 | | |
7231 | 0 | if (yyjson_unlikely(!val || !ptr)) { |
7232 | 0 | yyjson_ptr_set_err(PARAMETER, "input parameter is NULL"); |
7233 | 0 | return NULL; |
7234 | 0 | } |
7235 | 0 | if (yyjson_unlikely(len == 0)) { |
7236 | 0 | return val; |
7237 | 0 | } |
7238 | 0 | if (yyjson_unlikely(*ptr != '/')) { |
7239 | 0 | yyjson_ptr_set_err(SYNTAX, "no prefix '/'"); |
7240 | 0 | return NULL; |
7241 | 0 | } |
7242 | 0 | return unsafe_yyjson_mut_ptr_getx(val, ptr, len, ctx, err); |
7243 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_getx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_getx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_getx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_getx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_getx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_getx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_getx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_getx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) |
7244 | | |
7245 | | yyjson_api_inline bool yyjson_mut_doc_ptr_add(yyjson_mut_doc *doc, |
7246 | | const char *ptr, |
7247 | 0 | yyjson_mut_val *new_val) { |
7248 | 0 | if (yyjson_unlikely(!ptr)) return false; |
7249 | 0 | return yyjson_mut_doc_ptr_addn(doc, ptr, strlen(ptr), new_val); |
7250 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_add(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_add(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_add(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_add(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_add(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_add(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_add(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_add(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) |
7251 | | |
7252 | | yyjson_api_inline bool yyjson_mut_doc_ptr_addn(yyjson_mut_doc *doc, |
7253 | | const char *ptr, |
7254 | | size_t len, |
7255 | 0 | yyjson_mut_val *new_val) { |
7256 | 0 | return yyjson_mut_doc_ptr_addx(doc, ptr, len, new_val, true, NULL, NULL); |
7257 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) |
7258 | | |
7259 | | yyjson_api_inline bool yyjson_mut_doc_ptr_addx(yyjson_mut_doc *doc, |
7260 | | const char *ptr, size_t len, |
7261 | | yyjson_mut_val *new_val, |
7262 | | bool create_parent, |
7263 | | yyjson_ptr_ctx *ctx, |
7264 | 0 | yyjson_ptr_err *err) { |
7265 | 0 | yyjson_ptr_set_err(NONE, NULL); |
7266 | 0 | if (ctx) memset(ctx, 0, sizeof(*ctx)); |
7267 | 0 | |
7268 | 0 | if (yyjson_unlikely(!doc || !ptr || !new_val)) { |
7269 | 0 | yyjson_ptr_set_err(PARAMETER, "input parameter is NULL"); |
7270 | 0 | return false; |
7271 | 0 | } |
7272 | 0 | if (yyjson_unlikely(len == 0)) { |
7273 | 0 | if (doc->root) { |
7274 | 0 | yyjson_ptr_set_err(SET_ROOT, "cannot set document's root"); |
7275 | 0 | return false; |
7276 | 0 | } else { |
7277 | 0 | doc->root = new_val; |
7278 | 0 | return true; |
7279 | 0 | } |
7280 | 0 | } |
7281 | 0 | if (yyjson_unlikely(*ptr != '/')) { |
7282 | 0 | yyjson_ptr_set_err(SYNTAX, "no prefix '/'"); |
7283 | 0 | return false; |
7284 | 0 | } |
7285 | 0 | if (yyjson_unlikely(!doc->root && !create_parent)) { |
7286 | 0 | yyjson_ptr_set_err(NULL_ROOT, "document's root is NULL"); |
7287 | 0 | return false; |
7288 | 0 | } |
7289 | 0 | if (yyjson_unlikely(!doc->root)) { |
7290 | 0 | yyjson_mut_val *root = yyjson_mut_obj(doc); |
7291 | 0 | if (yyjson_unlikely(!root)) { |
7292 | 0 | yyjson_ptr_set_err(MEMORY_ALLOCATION, "failed to create value"); |
7293 | 0 | return false; |
7294 | 0 | } |
7295 | 0 | if (unsafe_yyjson_mut_ptr_putx(root, ptr, len, new_val, doc, |
7296 | 0 | create_parent, true, ctx, err)) { |
7297 | 0 | doc->root = root; |
7298 | 0 | return true; |
7299 | 0 | } |
7300 | 0 | return false; |
7301 | 0 | } |
7302 | 0 | return unsafe_yyjson_mut_ptr_putx(doc->root, ptr, len, new_val, doc, |
7303 | 0 | create_parent, true, ctx, err); |
7304 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_addx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) |
7305 | | |
7306 | | yyjson_api_inline bool yyjson_mut_ptr_add(yyjson_mut_val *val, |
7307 | | const char *ptr, |
7308 | | yyjson_mut_val *new_val, |
7309 | 0 | yyjson_mut_doc *doc) { |
7310 | 0 | if (yyjson_unlikely(!ptr)) return false; |
7311 | 0 | return yyjson_mut_ptr_addn(val, ptr, strlen(ptr), new_val, doc); |
7312 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_add(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_add(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_add(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_add(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_add(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_add(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_add(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_add(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) |
7313 | | |
7314 | | yyjson_api_inline bool yyjson_mut_ptr_addn(yyjson_mut_val *val, |
7315 | | const char *ptr, size_t len, |
7316 | | yyjson_mut_val *new_val, |
7317 | 0 | yyjson_mut_doc *doc) { |
7318 | 0 | return yyjson_mut_ptr_addx(val, ptr, len, new_val, doc, true, NULL, NULL); |
7319 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_addn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_addn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_addn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_addn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_addn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_addn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_addn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_addn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) |
7320 | | |
7321 | | yyjson_api_inline bool yyjson_mut_ptr_addx(yyjson_mut_val *val, |
7322 | | const char *ptr, size_t len, |
7323 | | yyjson_mut_val *new_val, |
7324 | | yyjson_mut_doc *doc, |
7325 | | bool create_parent, |
7326 | | yyjson_ptr_ctx *ctx, |
7327 | 0 | yyjson_ptr_err *err) { |
7328 | 0 | yyjson_ptr_set_err(NONE, NULL); |
7329 | 0 | if (ctx) memset(ctx, 0, sizeof(*ctx)); |
7330 | | |
7331 | 0 | if (yyjson_unlikely(!val || !ptr || !new_val || !doc)) { |
7332 | 0 | yyjson_ptr_set_err(PARAMETER, "input parameter is NULL"); |
7333 | 0 | return false; |
7334 | 0 | } |
7335 | 0 | if (yyjson_unlikely(len == 0)) { |
7336 | 0 | yyjson_ptr_set_err(SET_ROOT, "cannot set root"); |
7337 | 0 | return false; |
7338 | 0 | } |
7339 | 0 | if (yyjson_unlikely(*ptr != '/')) { |
7340 | 0 | yyjson_ptr_set_err(SYNTAX, "no prefix '/'"); |
7341 | 0 | return false; |
7342 | 0 | } |
7343 | 0 | return unsafe_yyjson_mut_ptr_putx(val, ptr, len, new_val, |
7344 | 0 | doc, create_parent, true, ctx, err); |
7345 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_addx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_addx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_addx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_addx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_addx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_addx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_addx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_addx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) |
7346 | | |
7347 | | yyjson_api_inline bool yyjson_mut_doc_ptr_set(yyjson_mut_doc *doc, |
7348 | | const char *ptr, |
7349 | 0 | yyjson_mut_val *new_val) { |
7350 | 0 | if (yyjson_unlikely(!ptr)) return false; |
7351 | 0 | return yyjson_mut_doc_ptr_setn(doc, ptr, strlen(ptr), new_val); |
7352 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_set(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_set(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_set(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_set(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_set(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_set(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_set(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_set(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) |
7353 | | |
7354 | | yyjson_api_inline bool yyjson_mut_doc_ptr_setn(yyjson_mut_doc *doc, |
7355 | | const char *ptr, size_t len, |
7356 | 0 | yyjson_mut_val *new_val) { |
7357 | 0 | return yyjson_mut_doc_ptr_setx(doc, ptr, len, new_val, true, NULL, NULL); |
7358 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setn(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) |
7359 | | |
7360 | | yyjson_api_inline bool yyjson_mut_doc_ptr_setx(yyjson_mut_doc *doc, |
7361 | | const char *ptr, size_t len, |
7362 | | yyjson_mut_val *new_val, |
7363 | | bool create_parent, |
7364 | | yyjson_ptr_ctx *ctx, |
7365 | 0 | yyjson_ptr_err *err) { |
7366 | 0 | yyjson_ptr_set_err(NONE, NULL); |
7367 | 0 | if (ctx) memset(ctx, 0, sizeof(*ctx)); |
7368 | 0 | |
7369 | 0 | if (yyjson_unlikely(!doc || !ptr)) { |
7370 | 0 | yyjson_ptr_set_err(PARAMETER, "input parameter is NULL"); |
7371 | 0 | return false; |
7372 | 0 | } |
7373 | 0 | if (yyjson_unlikely(len == 0)) { |
7374 | 0 | if (ctx) ctx->old = doc->root; |
7375 | 0 | doc->root = new_val; |
7376 | 0 | return true; |
7377 | 0 | } |
7378 | 0 | if (yyjson_unlikely(*ptr != '/')) { |
7379 | 0 | yyjson_ptr_set_err(SYNTAX, "no prefix '/'"); |
7380 | 0 | return false; |
7381 | 0 | } |
7382 | 0 | if (!new_val) { |
7383 | 0 | if (!doc->root) { |
7384 | 0 | yyjson_ptr_set_err(RESOLVE, "JSON pointer cannot be resolved"); |
7385 | 0 | return false; |
7386 | 0 | } |
7387 | 0 | return !!unsafe_yyjson_mut_ptr_removex(doc->root, ptr, len, ctx, err); |
7388 | 0 | } |
7389 | 0 | if (yyjson_unlikely(!doc->root && !create_parent)) { |
7390 | 0 | yyjson_ptr_set_err(NULL_ROOT, "document's root is NULL"); |
7391 | 0 | return false; |
7392 | 0 | } |
7393 | 0 | if (yyjson_unlikely(!doc->root)) { |
7394 | 0 | yyjson_mut_val *root = yyjson_mut_obj(doc); |
7395 | 0 | if (yyjson_unlikely(!root)) { |
7396 | 0 | yyjson_ptr_set_err(MEMORY_ALLOCATION, "failed to create value"); |
7397 | 0 | return false; |
7398 | 0 | } |
7399 | 0 | if (unsafe_yyjson_mut_ptr_putx(root, ptr, len, new_val, doc, |
7400 | 0 | create_parent, false, ctx, err)) { |
7401 | 0 | doc->root = root; |
7402 | 0 | return true; |
7403 | 0 | } |
7404 | 0 | return false; |
7405 | 0 | } |
7406 | 0 | return unsafe_yyjson_mut_ptr_putx(doc->root, ptr, len, new_val, doc, |
7407 | 0 | create_parent, false, ctx, err); |
7408 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_setx(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) |
7409 | | |
7410 | | yyjson_api_inline bool yyjson_mut_ptr_set(yyjson_mut_val *val, |
7411 | | const char *ptr, |
7412 | | yyjson_mut_val *new_val, |
7413 | 0 | yyjson_mut_doc *doc) { |
7414 | 0 | if (yyjson_unlikely(!ptr)) return false; |
7415 | 0 | return yyjson_mut_ptr_setn(val, ptr, strlen(ptr), new_val, doc); |
7416 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_set(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_set(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_set(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_set(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_set(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_set(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_set(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_set(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) |
7417 | | |
7418 | | yyjson_api_inline bool yyjson_mut_ptr_setn(yyjson_mut_val *val, |
7419 | | const char *ptr, size_t len, |
7420 | | yyjson_mut_val *new_val, |
7421 | 0 | yyjson_mut_doc *doc) { |
7422 | 0 | return yyjson_mut_ptr_setx(val, ptr, len, new_val, doc, true, NULL, NULL); |
7423 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_setn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_setn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_setn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_setn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_setn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_setn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_setn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_setn(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*) |
7424 | | |
7425 | | yyjson_api_inline bool yyjson_mut_ptr_setx(yyjson_mut_val *val, |
7426 | | const char *ptr, size_t len, |
7427 | | yyjson_mut_val *new_val, |
7428 | | yyjson_mut_doc *doc, |
7429 | | bool create_parent, |
7430 | | yyjson_ptr_ctx *ctx, |
7431 | 0 | yyjson_ptr_err *err) { |
7432 | 0 | yyjson_ptr_set_err(NONE, NULL); |
7433 | 0 | if (ctx) memset(ctx, 0, sizeof(*ctx)); |
7434 | 0 | |
7435 | 0 | if (yyjson_unlikely(!val || !ptr || !doc)) { |
7436 | 0 | yyjson_ptr_set_err(PARAMETER, "input parameter is NULL"); |
7437 | 0 | return false; |
7438 | 0 | } |
7439 | 0 | if (yyjson_unlikely(len == 0)) { |
7440 | 0 | yyjson_ptr_set_err(SET_ROOT, "cannot set root"); |
7441 | 0 | return false; |
7442 | 0 | } |
7443 | 0 | if (yyjson_unlikely(*ptr != '/')) { |
7444 | 0 | yyjson_ptr_set_err(SYNTAX, "no prefix '/'"); |
7445 | 0 | return false; |
7446 | 0 | } |
7447 | 0 | if (!new_val) { |
7448 | 0 | return !!unsafe_yyjson_mut_ptr_removex(val, ptr, len, ctx, err); |
7449 | 0 | } |
7450 | 0 | return unsafe_yyjson_mut_ptr_putx(val, ptr, len, new_val, doc, |
7451 | 0 | create_parent, false, ctx, err); |
7452 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_setx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_setx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_setx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_setx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_setx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_setx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_setx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_setx(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_doc*, bool, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) |
7453 | | |
7454 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_replace( |
7455 | 0 | yyjson_mut_doc *doc, const char *ptr, yyjson_mut_val *new_val) { |
7456 | 0 | if (!ptr) return NULL; |
7457 | 0 | return yyjson_mut_doc_ptr_replacen(doc, ptr, strlen(ptr), new_val); |
7458 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replace(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replace(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replace(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replace(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replace(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replace(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replace(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replace(duckdb_yyjson::yyjson_mut_doc*, char const*, duckdb_yyjson::yyjson_mut_val*) |
7459 | | |
7460 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_replacen( |
7461 | 0 | yyjson_mut_doc *doc, const char *ptr, size_t len, yyjson_mut_val *new_val) { |
7462 | 0 | return yyjson_mut_doc_ptr_replacex(doc, ptr, len, new_val, NULL, NULL); |
7463 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) |
7464 | | |
7465 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_replacex( |
7466 | | yyjson_mut_doc *doc, const char *ptr, size_t len, yyjson_mut_val *new_val, |
7467 | 0 | yyjson_ptr_ctx *ctx, yyjson_ptr_err *err) { |
7468 | 0 | |
7469 | 0 | yyjson_ptr_set_err(NONE, NULL); |
7470 | 0 | if (ctx) memset(ctx, 0, sizeof(*ctx)); |
7471 | 0 | |
7472 | 0 | if (yyjson_unlikely(!doc || !ptr || !new_val)) { |
7473 | 0 | yyjson_ptr_set_err(PARAMETER, "input parameter is NULL"); |
7474 | 0 | return NULL; |
7475 | 0 | } |
7476 | 0 | if (yyjson_unlikely(len == 0)) { |
7477 | 0 | yyjson_mut_val *root = doc->root; |
7478 | 0 | if (yyjson_unlikely(!root)) { |
7479 | 0 | yyjson_ptr_set_err(RESOLVE, "JSON pointer cannot be resolved"); |
7480 | 0 | return NULL; |
7481 | 0 | } |
7482 | 0 | if (ctx) ctx->old = root; |
7483 | 0 | doc->root = new_val; |
7484 | 0 | return root; |
7485 | 0 | } |
7486 | 0 | if (yyjson_unlikely(!doc->root)) { |
7487 | 0 | yyjson_ptr_set_err(NULL_ROOT, "document's root is NULL"); |
7488 | 0 | return NULL; |
7489 | 0 | } |
7490 | 0 | if (yyjson_unlikely(*ptr != '/')) { |
7491 | 0 | yyjson_ptr_set_err(SYNTAX, "no prefix '/'"); |
7492 | 0 | return NULL; |
7493 | 0 | } |
7494 | 0 | return unsafe_yyjson_mut_ptr_replacex(doc->root, ptr, len, new_val, |
7495 | 0 | ctx, err); |
7496 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_replacex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) |
7497 | | |
7498 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_replace( |
7499 | 0 | yyjson_mut_val *val, const char *ptr, yyjson_mut_val *new_val) { |
7500 | 0 | if (!ptr) return NULL; |
7501 | 0 | return yyjson_mut_ptr_replacen(val, ptr, strlen(ptr), new_val); |
7502 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_replace(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_replace(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_replace(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_replace(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_replace(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_replace(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_replace(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_replace(duckdb_yyjson::yyjson_mut_val*, char const*, duckdb_yyjson::yyjson_mut_val*) |
7503 | | |
7504 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_replacen( |
7505 | 0 | yyjson_mut_val *val, const char *ptr, size_t len, yyjson_mut_val *new_val) { |
7506 | 0 | return yyjson_mut_ptr_replacex(val, ptr, len, new_val, NULL, NULL); |
7507 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_replacen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_replacen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_replacen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_replacen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_replacen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_replacen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_replacen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_replacen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*) |
7508 | | |
7509 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_replacex( |
7510 | | yyjson_mut_val *val, const char *ptr, size_t len, yyjson_mut_val *new_val, |
7511 | 0 | yyjson_ptr_ctx *ctx, yyjson_ptr_err *err) { |
7512 | | |
7513 | 0 | yyjson_ptr_set_err(NONE, NULL); |
7514 | 0 | if (ctx) memset(ctx, 0, sizeof(*ctx)); |
7515 | | |
7516 | 0 | if (yyjson_unlikely(!val || !ptr || !new_val)) { |
7517 | 0 | yyjson_ptr_set_err(PARAMETER, "input parameter is NULL"); |
7518 | 0 | return NULL; |
7519 | 0 | } |
7520 | 0 | if (yyjson_unlikely(len == 0)) { |
7521 | 0 | yyjson_ptr_set_err(SET_ROOT, "cannot set root"); |
7522 | 0 | return NULL; |
7523 | 0 | } |
7524 | 0 | if (yyjson_unlikely(*ptr != '/')) { |
7525 | 0 | yyjson_ptr_set_err(SYNTAX, "no prefix '/'"); |
7526 | 0 | return NULL; |
7527 | 0 | } |
7528 | 0 | return unsafe_yyjson_mut_ptr_replacex(val, ptr, len, new_val, ctx, err); |
7529 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_replacex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_replacex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_replacex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_replacex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_replacex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_replacex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_replacex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_replacex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) |
7530 | | |
7531 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_remove( |
7532 | 0 | yyjson_mut_doc *doc, const char *ptr) { |
7533 | 0 | if (!ptr) return NULL; |
7534 | 0 | return yyjson_mut_doc_ptr_removen(doc, ptr, strlen(ptr)); |
7535 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_remove(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_remove(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_remove(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_remove(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_remove(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_remove(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_remove(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_remove(duckdb_yyjson::yyjson_mut_doc*, char const*) |
7536 | | |
7537 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_removen( |
7538 | 0 | yyjson_mut_doc *doc, const char *ptr, size_t len) { |
7539 | 0 | return yyjson_mut_doc_ptr_removex(doc, ptr, len, NULL, NULL); |
7540 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removen(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) |
7541 | | |
7542 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_ptr_removex( |
7543 | | yyjson_mut_doc *doc, const char *ptr, size_t len, |
7544 | 0 | yyjson_ptr_ctx *ctx, yyjson_ptr_err *err) { |
7545 | 0 | |
7546 | 0 | yyjson_ptr_set_err(NONE, NULL); |
7547 | 0 | if (ctx) memset(ctx, 0, sizeof(*ctx)); |
7548 | 0 | |
7549 | 0 | if (yyjson_unlikely(!doc || !ptr)) { |
7550 | 0 | yyjson_ptr_set_err(PARAMETER, "input parameter is NULL"); |
7551 | 0 | return NULL; |
7552 | 0 | } |
7553 | 0 | if (yyjson_unlikely(!doc->root)) { |
7554 | 0 | yyjson_ptr_set_err(NULL_ROOT, "document's root is NULL"); |
7555 | 0 | return NULL; |
7556 | 0 | } |
7557 | 0 | if (yyjson_unlikely(len == 0)) { |
7558 | 0 | yyjson_mut_val *root = doc->root; |
7559 | 0 | if (ctx) ctx->old = root; |
7560 | 0 | doc->root = NULL; |
7561 | 0 | return root; |
7562 | 0 | } |
7563 | 0 | if (yyjson_unlikely(*ptr != '/')) { |
7564 | 0 | yyjson_ptr_set_err(SYNTAX, "no prefix '/'"); |
7565 | 0 | return NULL; |
7566 | 0 | } |
7567 | 0 | return unsafe_yyjson_mut_ptr_removex(doc->root, ptr, len, ctx, err); |
7568 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_ptr_removex(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) |
7569 | | |
7570 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_remove(yyjson_mut_val *val, |
7571 | 0 | const char *ptr) { |
7572 | 0 | if (!ptr) return NULL; |
7573 | 0 | return yyjson_mut_ptr_removen(val, ptr, strlen(ptr)); |
7574 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_remove(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_remove(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_remove(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_remove(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_remove(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_remove(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_remove(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_remove(duckdb_yyjson::yyjson_mut_val*, char const*) |
7575 | | |
7576 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_removen(yyjson_mut_val *val, |
7577 | | const char *ptr, |
7578 | 0 | size_t len) { |
7579 | 0 | return yyjson_mut_ptr_removex(val, ptr, len, NULL, NULL); |
7580 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_removen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_removen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_removen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_removen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_removen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_removen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_removen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_removen(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
7581 | | |
7582 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_ptr_removex(yyjson_mut_val *val, |
7583 | | const char *ptr, |
7584 | | size_t len, |
7585 | | yyjson_ptr_ctx *ctx, |
7586 | 0 | yyjson_ptr_err *err) { |
7587 | 0 | yyjson_ptr_set_err(NONE, NULL); |
7588 | 0 | if (ctx) memset(ctx, 0, sizeof(*ctx)); |
7589 | | |
7590 | 0 | if (yyjson_unlikely(!val || !ptr)) { |
7591 | 0 | yyjson_ptr_set_err(PARAMETER, "input parameter is NULL"); |
7592 | 0 | return NULL; |
7593 | 0 | } |
7594 | 0 | if (yyjson_unlikely(len == 0)) { |
7595 | 0 | yyjson_ptr_set_err(SET_ROOT, "cannot set root"); |
7596 | 0 | return NULL; |
7597 | 0 | } |
7598 | 0 | if (yyjson_unlikely(*ptr != '/')) { |
7599 | 0 | yyjson_ptr_set_err(SYNTAX, "no prefix '/'"); |
7600 | 0 | return NULL; |
7601 | 0 | } |
7602 | 0 | return unsafe_yyjson_mut_ptr_removex(val, ptr, len, ctx, err); |
7603 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_ptr_removex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_ptr_removex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_ptr_removex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_ptr_removex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_ptr_removex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_ptr_removex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_ptr_removex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_ptr_removex(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long, duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_ptr_err*) |
7604 | | |
7605 | | yyjson_api_inline bool yyjson_ptr_ctx_append(yyjson_ptr_ctx *ctx, |
7606 | | yyjson_mut_val *key, |
7607 | 0 | yyjson_mut_val *val) { |
7608 | 0 | yyjson_mut_val *ctn, *pre_key, *pre_val, *cur_key, *cur_val; |
7609 | 0 | if (!ctx || !ctx->ctn || !val) return false; |
7610 | 0 | ctn = ctx->ctn; |
7611 | 0 | |
7612 | 0 | if (yyjson_mut_is_obj(ctn)) { |
7613 | 0 | if (!key) return false; |
7614 | 0 | key->next = val; |
7615 | 0 | pre_key = ctx->pre; |
7616 | 0 | if (unsafe_yyjson_get_len(ctn) == 0) { |
7617 | 0 | val->next = key; |
7618 | 0 | ctn->uni.ptr = key; |
7619 | 0 | ctx->pre = key; |
7620 | 0 | } else if (!pre_key) { |
7621 | 0 | pre_key = (yyjson_mut_val *)ctn->uni.ptr; |
7622 | 0 | pre_val = pre_key->next; |
7623 | 0 | val->next = pre_val->next; |
7624 | 0 | pre_val->next = key; |
7625 | 0 | ctn->uni.ptr = key; |
7626 | 0 | ctx->pre = pre_key; |
7627 | 0 | } else { |
7628 | 0 | cur_key = pre_key->next->next; |
7629 | 0 | cur_val = cur_key->next; |
7630 | 0 | val->next = cur_val->next; |
7631 | 0 | cur_val->next = key; |
7632 | 0 | if (ctn->uni.ptr == cur_key) ctn->uni.ptr = key; |
7633 | 0 | ctx->pre = cur_key; |
7634 | 0 | } |
7635 | 0 | } else { |
7636 | 0 | pre_val = ctx->pre; |
7637 | 0 | if (unsafe_yyjson_get_len(ctn) == 0) { |
7638 | 0 | val->next = val; |
7639 | 0 | ctn->uni.ptr = val; |
7640 | 0 | ctx->pre = val; |
7641 | 0 | } else if (!pre_val) { |
7642 | 0 | pre_val = (yyjson_mut_val *)ctn->uni.ptr; |
7643 | 0 | val->next = pre_val->next; |
7644 | 0 | pre_val->next = val; |
7645 | 0 | ctn->uni.ptr = val; |
7646 | 0 | ctx->pre = pre_val; |
7647 | 0 | } else { |
7648 | 0 | cur_val = pre_val->next; |
7649 | 0 | val->next = cur_val->next; |
7650 | 0 | cur_val->next = val; |
7651 | 0 | if (ctn->uni.ptr == cur_val) ctn->uni.ptr = val; |
7652 | 0 | ctx->pre = cur_val; |
7653 | 0 | } |
7654 | 0 | } |
7655 | 0 | unsafe_yyjson_inc_len(ctn); |
7656 | 0 | return true; |
7657 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_ptr_ctx_append(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_ptr_ctx_append(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_ptr_ctx_append(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_ptr_ctx_append(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_ptr_ctx_append(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_ptr_ctx_append(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_ptr_ctx_append(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_ptr_ctx_append(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*, duckdb_yyjson::yyjson_mut_val*) |
7658 | | |
7659 | | yyjson_api_inline bool yyjson_ptr_ctx_replace(yyjson_ptr_ctx *ctx, |
7660 | 0 | yyjson_mut_val *val) { |
7661 | 0 | yyjson_mut_val *ctn, *pre_key, *cur_key, *pre_val, *cur_val; |
7662 | 0 | if (!ctx || !ctx->ctn || !ctx->pre || !val) return false; |
7663 | 0 | ctn = ctx->ctn; |
7664 | 0 | if (yyjson_mut_is_obj(ctn)) { |
7665 | 0 | pre_key = ctx->pre; |
7666 | 0 | pre_val = pre_key->next; |
7667 | 0 | cur_key = pre_val->next; |
7668 | 0 | cur_val = cur_key->next; |
7669 | | /* replace current value */ |
7670 | 0 | cur_key->next = val; |
7671 | 0 | val->next = cur_val->next; |
7672 | 0 | ctx->old = cur_val; |
7673 | 0 | } else { |
7674 | 0 | pre_val = ctx->pre; |
7675 | 0 | cur_val = pre_val->next; |
7676 | | /* replace current value */ |
7677 | 0 | if (pre_val != cur_val) { |
7678 | 0 | val->next = cur_val->next; |
7679 | 0 | pre_val->next = val; |
7680 | 0 | if (ctn->uni.ptr == cur_val) ctn->uni.ptr = val; |
7681 | 0 | } else { |
7682 | 0 | val->next = val; |
7683 | 0 | ctn->uni.ptr = val; |
7684 | 0 | ctx->pre = val; |
7685 | 0 | } |
7686 | 0 | ctx->old = cur_val; |
7687 | 0 | } |
7688 | 0 | return true; |
7689 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_ptr_ctx_replace(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_ptr_ctx_replace(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_ptr_ctx_replace(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_ptr_ctx_replace(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_ptr_ctx_replace(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_ptr_ctx_replace(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_ptr_ctx_replace(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_ptr_ctx_replace(duckdb_yyjson::yyjson_ptr_ctx*, duckdb_yyjson::yyjson_mut_val*) |
7690 | | |
7691 | 0 | yyjson_api_inline bool yyjson_ptr_ctx_remove(yyjson_ptr_ctx *ctx) { |
7692 | 0 | yyjson_mut_val *ctn, *pre_key, *pre_val, *cur_key, *cur_val; |
7693 | 0 | size_t len; |
7694 | 0 | if (!ctx || !ctx->ctn || !ctx->pre) return false; |
7695 | 0 | ctn = ctx->ctn; |
7696 | 0 | if (yyjson_mut_is_obj(ctn)) { |
7697 | 0 | pre_key = ctx->pre; |
7698 | 0 | pre_val = pre_key->next; |
7699 | 0 | cur_key = pre_val->next; |
7700 | 0 | cur_val = cur_key->next; |
7701 | | /* remove current key-value */ |
7702 | 0 | pre_val->next = cur_val->next; |
7703 | 0 | if (ctn->uni.ptr == cur_key) ctn->uni.ptr = pre_key; |
7704 | 0 | ctx->pre = NULL; |
7705 | 0 | ctx->old = cur_val; |
7706 | 0 | } else { |
7707 | 0 | pre_val = ctx->pre; |
7708 | 0 | cur_val = pre_val->next; |
7709 | | /* remove current key-value */ |
7710 | 0 | pre_val->next = cur_val->next; |
7711 | 0 | if (ctn->uni.ptr == cur_val) ctn->uni.ptr = pre_val; |
7712 | 0 | ctx->pre = NULL; |
7713 | 0 | ctx->old = cur_val; |
7714 | 0 | } |
7715 | 0 | len = unsafe_yyjson_get_len(ctn) - 1; |
7716 | 0 | if (len == 0) ctn->uni.ptr = NULL; |
7717 | 0 | unsafe_yyjson_set_len(ctn, len); |
7718 | 0 | return true; |
7719 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_ptr_ctx_remove(duckdb_yyjson::yyjson_ptr_ctx*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_ptr_ctx_remove(duckdb_yyjson::yyjson_ptr_ctx*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_ptr_ctx_remove(duckdb_yyjson::yyjson_ptr_ctx*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_ptr_ctx_remove(duckdb_yyjson::yyjson_ptr_ctx*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_ptr_ctx_remove(duckdb_yyjson::yyjson_ptr_ctx*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_ptr_ctx_remove(duckdb_yyjson::yyjson_ptr_ctx*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_ptr_ctx_remove(duckdb_yyjson::yyjson_ptr_ctx*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_ptr_ctx_remove(duckdb_yyjson::yyjson_ptr_ctx*) |
7720 | | |
7721 | | #undef yyjson_ptr_set_err |
7722 | | |
7723 | | |
7724 | | |
7725 | | /*============================================================================== |
7726 | | * JSON Value at Pointer API (Implementation) |
7727 | | *============================================================================*/ |
7728 | | |
7729 | | /** |
7730 | | Set provided `value` if the JSON Pointer (RFC 6901) exists and is type bool. |
7731 | | Returns true if value at `ptr` exists and is the correct type, otherwise false. |
7732 | | */ |
7733 | | yyjson_api_inline bool yyjson_ptr_get_bool( |
7734 | 0 | yyjson_val *root, const char *ptr, bool *value) { |
7735 | 0 | yyjson_val *val = yyjson_ptr_get(root, ptr); |
7736 | 0 | if (value && yyjson_is_bool(val)) { |
7737 | 0 | *value = unsafe_yyjson_get_bool(val); |
7738 | 0 | return true; |
7739 | 0 | } else { |
7740 | 0 | return false; |
7741 | 0 | } |
7742 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_ptr_get_bool(duckdb_yyjson::yyjson_val*, char const*, bool*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_ptr_get_bool(duckdb_yyjson::yyjson_val*, char const*, bool*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_ptr_get_bool(duckdb_yyjson::yyjson_val*, char const*, bool*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_ptr_get_bool(duckdb_yyjson::yyjson_val*, char const*, bool*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_ptr_get_bool(duckdb_yyjson::yyjson_val*, char const*, bool*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_ptr_get_bool(duckdb_yyjson::yyjson_val*, char const*, bool*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_ptr_get_bool(duckdb_yyjson::yyjson_val*, char const*, bool*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_ptr_get_bool(duckdb_yyjson::yyjson_val*, char const*, bool*) |
7743 | | |
7744 | | /** |
7745 | | Set provided `value` if the JSON Pointer (RFC 6901) exists and is an integer |
7746 | | that fits in `uint64_t`. Returns true if successful, otherwise false. |
7747 | | */ |
7748 | | yyjson_api_inline bool yyjson_ptr_get_uint( |
7749 | 0 | yyjson_val *root, const char *ptr, uint64_t *value) { |
7750 | 0 | yyjson_val *val = yyjson_ptr_get(root, ptr); |
7751 | 0 | if (value && val) { |
7752 | 0 | uint64_t ret = val->uni.u64; |
7753 | 0 | if (unsafe_yyjson_is_uint(val) || |
7754 | 0 | (unsafe_yyjson_is_sint(val) && !(ret >> 63))) { |
7755 | 0 | *value = ret; |
7756 | 0 | return true; |
7757 | 0 | } |
7758 | 0 | } |
7759 | 0 | return false; |
7760 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_ptr_get_uint(duckdb_yyjson::yyjson_val*, char const*, unsigned long*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_ptr_get_uint(duckdb_yyjson::yyjson_val*, char const*, unsigned long*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_ptr_get_uint(duckdb_yyjson::yyjson_val*, char const*, unsigned long*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_ptr_get_uint(duckdb_yyjson::yyjson_val*, char const*, unsigned long*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_ptr_get_uint(duckdb_yyjson::yyjson_val*, char const*, unsigned long*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_ptr_get_uint(duckdb_yyjson::yyjson_val*, char const*, unsigned long*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_ptr_get_uint(duckdb_yyjson::yyjson_val*, char const*, unsigned long*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_ptr_get_uint(duckdb_yyjson::yyjson_val*, char const*, unsigned long*) |
7761 | | |
7762 | | /** |
7763 | | Set provided `value` if the JSON Pointer (RFC 6901) exists and is an integer |
7764 | | that fits in `int64_t`. Returns true if successful, otherwise false. |
7765 | | */ |
7766 | | yyjson_api_inline bool yyjson_ptr_get_sint( |
7767 | 0 | yyjson_val *root, const char *ptr, int64_t *value) { |
7768 | 0 | yyjson_val *val = yyjson_ptr_get(root, ptr); |
7769 | 0 | if (value && val) { |
7770 | 0 | int64_t ret = val->uni.i64; |
7771 | 0 | if (unsafe_yyjson_is_sint(val) || |
7772 | 0 | (unsafe_yyjson_is_uint(val) && ret >= 0)) { |
7773 | 0 | *value = ret; |
7774 | 0 | return true; |
7775 | 0 | } |
7776 | 0 | } |
7777 | 0 | return false; |
7778 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_ptr_get_sint(duckdb_yyjson::yyjson_val*, char const*, long*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_ptr_get_sint(duckdb_yyjson::yyjson_val*, char const*, long*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_ptr_get_sint(duckdb_yyjson::yyjson_val*, char const*, long*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_ptr_get_sint(duckdb_yyjson::yyjson_val*, char const*, long*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_ptr_get_sint(duckdb_yyjson::yyjson_val*, char const*, long*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_ptr_get_sint(duckdb_yyjson::yyjson_val*, char const*, long*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_ptr_get_sint(duckdb_yyjson::yyjson_val*, char const*, long*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_ptr_get_sint(duckdb_yyjson::yyjson_val*, char const*, long*) |
7779 | | |
7780 | | /** |
7781 | | Set provided `value` if the JSON Pointer (RFC 6901) exists and is type real. |
7782 | | Returns true if value at `ptr` exists and is the correct type, otherwise false. |
7783 | | */ |
7784 | | yyjson_api_inline bool yyjson_ptr_get_real( |
7785 | 0 | yyjson_val *root, const char *ptr, double *value) { |
7786 | 0 | yyjson_val *val = yyjson_ptr_get(root, ptr); |
7787 | 0 | if (value && yyjson_is_real(val)) { |
7788 | 0 | *value = unsafe_yyjson_get_real(val); |
7789 | 0 | return true; |
7790 | 0 | } else { |
7791 | 0 | return false; |
7792 | 0 | } |
7793 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_ptr_get_real(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_ptr_get_real(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_ptr_get_real(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_ptr_get_real(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_ptr_get_real(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_ptr_get_real(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_ptr_get_real(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_ptr_get_real(duckdb_yyjson::yyjson_val*, char const*, double*) |
7794 | | |
7795 | | /** |
7796 | | Set provided `value` if the JSON Pointer (RFC 6901) exists and is type sint, |
7797 | | uint or real. |
7798 | | Returns true if value at `ptr` exists and is the correct type, otherwise false. |
7799 | | */ |
7800 | | yyjson_api_inline bool yyjson_ptr_get_num( |
7801 | 0 | yyjson_val *root, const char *ptr, double *value) { |
7802 | 0 | yyjson_val *val = yyjson_ptr_get(root, ptr); |
7803 | 0 | if (value && yyjson_is_num(val)) { |
7804 | 0 | *value = unsafe_yyjson_get_num(val); |
7805 | 0 | return true; |
7806 | 0 | } else { |
7807 | 0 | return false; |
7808 | 0 | } |
7809 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_ptr_get_num(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_ptr_get_num(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_ptr_get_num(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_ptr_get_num(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_ptr_get_num(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_ptr_get_num(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_ptr_get_num(duckdb_yyjson::yyjson_val*, char const*, double*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_ptr_get_num(duckdb_yyjson::yyjson_val*, char const*, double*) |
7810 | | |
7811 | | /** |
7812 | | Set provided `value` if the JSON Pointer (RFC 6901) exists and is type string. |
7813 | | Returns true if value at `ptr` exists and is the correct type, otherwise false. |
7814 | | */ |
7815 | | yyjson_api_inline bool yyjson_ptr_get_str( |
7816 | 0 | yyjson_val *root, const char *ptr, const char **value) { |
7817 | 0 | yyjson_val *val = yyjson_ptr_get(root, ptr); |
7818 | 0 | if (value && yyjson_is_str(val)) { |
7819 | 0 | *value = unsafe_yyjson_get_str(val); |
7820 | 0 | return true; |
7821 | 0 | } else { |
7822 | 0 | return false; |
7823 | 0 | } |
7824 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_ptr_get_str(duckdb_yyjson::yyjson_val*, char const*, char const**) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_ptr_get_str(duckdb_yyjson::yyjson_val*, char const*, char const**) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_ptr_get_str(duckdb_yyjson::yyjson_val*, char const*, char const**) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_ptr_get_str(duckdb_yyjson::yyjson_val*, char const*, char const**) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_ptr_get_str(duckdb_yyjson::yyjson_val*, char const*, char const**) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_ptr_get_str(duckdb_yyjson::yyjson_val*, char const*, char const**) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_ptr_get_str(duckdb_yyjson::yyjson_val*, char const*, char const**) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_ptr_get_str(duckdb_yyjson::yyjson_val*, char const*, char const**) |
7825 | | |
7826 | | |
7827 | | |
7828 | | /*============================================================================== |
7829 | | * Deprecated |
7830 | | *============================================================================*/ |
7831 | | |
7832 | | /** @deprecated renamed to `yyjson_doc_ptr_get` */ |
7833 | | yyjson_deprecated("renamed to yyjson_doc_ptr_get") |
7834 | | yyjson_api_inline yyjson_val *yyjson_doc_get_pointer(yyjson_doc *doc, |
7835 | 0 | const char *ptr) { |
7836 | 0 | return yyjson_doc_ptr_get(doc, ptr); |
7837 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_doc_get_pointer(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_doc_get_pointer(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_doc_get_pointer(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_doc_get_pointer(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_doc_get_pointer(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_doc_get_pointer(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_doc_get_pointer(duckdb_yyjson::yyjson_doc*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_doc_get_pointer(duckdb_yyjson::yyjson_doc*, char const*) |
7838 | | |
7839 | | /** @deprecated renamed to `yyjson_doc_ptr_getn` */ |
7840 | | yyjson_deprecated("renamed to yyjson_doc_ptr_getn") |
7841 | | yyjson_api_inline yyjson_val *yyjson_doc_get_pointern(yyjson_doc *doc, |
7842 | | const char *ptr, |
7843 | 0 | size_t len) { |
7844 | 0 | return yyjson_doc_ptr_getn(doc, ptr, len); |
7845 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_doc_get_pointern(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_doc_get_pointern(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_doc_get_pointern(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_doc_get_pointern(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_doc_get_pointern(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_doc_get_pointern(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_doc_get_pointern(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_doc_get_pointern(duckdb_yyjson::yyjson_doc*, char const*, unsigned long) |
7846 | | |
7847 | | /** @deprecated renamed to `yyjson_mut_doc_ptr_get` */ |
7848 | | yyjson_deprecated("renamed to yyjson_mut_doc_ptr_get") |
7849 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_get_pointer( |
7850 | 0 | yyjson_mut_doc *doc, const char *ptr) { |
7851 | 0 | return yyjson_mut_doc_ptr_get(doc, ptr); |
7852 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointer(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointer(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointer(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointer(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointer(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointer(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointer(duckdb_yyjson::yyjson_mut_doc*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointer(duckdb_yyjson::yyjson_mut_doc*, char const*) |
7853 | | |
7854 | | /** @deprecated renamed to `yyjson_mut_doc_ptr_getn` */ |
7855 | | yyjson_deprecated("renamed to yyjson_mut_doc_ptr_getn") |
7856 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_doc_get_pointern( |
7857 | 0 | yyjson_mut_doc *doc, const char *ptr, size_t len) { |
7858 | 0 | return yyjson_mut_doc_ptr_getn(doc, ptr, len); |
7859 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointern(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointern(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointern(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointern(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointern(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointern(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointern(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_doc_get_pointern(duckdb_yyjson::yyjson_mut_doc*, char const*, unsigned long) |
7860 | | |
7861 | | /** @deprecated renamed to `yyjson_ptr_get` */ |
7862 | | yyjson_deprecated("renamed to yyjson_ptr_get") |
7863 | | yyjson_api_inline yyjson_val *yyjson_get_pointer(yyjson_val *val, |
7864 | 0 | const char *ptr) { |
7865 | 0 | return yyjson_ptr_get(val, ptr); |
7866 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*) |
7867 | | |
7868 | | /** @deprecated renamed to `yyjson_ptr_getn` */ |
7869 | | yyjson_deprecated("renamed to yyjson_ptr_getn") |
7870 | | yyjson_api_inline yyjson_val *yyjson_get_pointern(yyjson_val *val, |
7871 | | const char *ptr, |
7872 | 0 | size_t len) { |
7873 | 0 | return yyjson_ptr_getn(val, ptr, len); |
7874 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_get_pointern(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_get_pointern(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_get_pointern(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_get_pointern(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_get_pointern(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_get_pointern(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_get_pointern(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_get_pointern(duckdb_yyjson::yyjson_val*, char const*, unsigned long) |
7875 | | |
7876 | | /** @deprecated renamed to `yyjson_mut_ptr_get` */ |
7877 | | yyjson_deprecated("renamed to yyjson_mut_ptr_get") |
7878 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_get_pointer(yyjson_mut_val *val, |
7879 | 0 | const char *ptr) { |
7880 | 0 | return yyjson_mut_ptr_get(val, ptr); |
7881 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*) |
7882 | | |
7883 | | /** @deprecated renamed to `yyjson_mut_ptr_getn` */ |
7884 | | yyjson_deprecated("renamed to yyjson_mut_ptr_getn") |
7885 | | yyjson_api_inline yyjson_mut_val *yyjson_mut_get_pointern(yyjson_mut_val *val, |
7886 | | const char *ptr, |
7887 | 0 | size_t len) { |
7888 | 0 | return yyjson_mut_ptr_getn(val, ptr, len); |
7889 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::yyjson_mut_get_pointern(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::yyjson_mut_get_pointern(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::yyjson_mut_get_pointern(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::yyjson_mut_get_pointern(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::yyjson_mut_get_pointern(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::yyjson_mut_get_pointern(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::yyjson_mut_get_pointern(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::yyjson_mut_get_pointern(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
7890 | | |
7891 | | /** @deprecated renamed to `yyjson_mut_ptr_getn` */ |
7892 | | yyjson_deprecated("renamed to unsafe_yyjson_ptr_getn") |
7893 | | yyjson_api_inline yyjson_val *unsafe_yyjson_get_pointer(yyjson_val *val, |
7894 | | const char *ptr, |
7895 | 0 | size_t len) { |
7896 | 0 | yyjson_ptr_err err; |
7897 | 0 | return unsafe_yyjson_ptr_getx(val, ptr, len, &err); |
7898 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_get_pointer(duckdb_yyjson::yyjson_val*, char const*, unsigned long) |
7899 | | |
7900 | | /** @deprecated renamed to `unsafe_yyjson_mut_ptr_getx` */ |
7901 | | yyjson_deprecated("renamed to unsafe_yyjson_mut_ptr_getx") |
7902 | | yyjson_api_inline yyjson_mut_val *unsafe_yyjson_mut_get_pointer( |
7903 | 0 | yyjson_mut_val *val, const char *ptr, size_t len) { |
7904 | 0 | yyjson_ptr_err err; |
7905 | 0 | return unsafe_yyjson_mut_ptr_getx(val, ptr, len, NULL, &err); |
7906 | 0 | } Unexecuted instantiation: ub_duckdb_common.cpp:duckdb_yyjson::unsafe_yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_main.cpp:duckdb_yyjson::unsafe_yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_common_tree_renderer.cpp:duckdb_yyjson::unsafe_yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_variant_cast.cpp:duckdb_yyjson::unsafe_yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: geo_parquet.cpp:duckdb_yyjson::unsafe_yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_readers.cpp:duckdb_yyjson::unsafe_yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: ub_duckdb_parquet_reader_variant.cpp:duckdb_yyjson::unsafe_yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) Unexecuted instantiation: yyjson.cpp:duckdb_yyjson::unsafe_yyjson_mut_get_pointer(duckdb_yyjson::yyjson_mut_val*, char const*, unsigned long) |
7907 | | |
7908 | | |
7909 | | |
7910 | | /*============================================================================== |
7911 | | * Compiler Hint End |
7912 | | *============================================================================*/ |
7913 | | |
7914 | | #if defined(__clang__) |
7915 | | # pragma clang diagnostic pop |
7916 | | #elif defined(__GNUC__) |
7917 | | # if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) |
7918 | | # pragma GCC diagnostic pop |
7919 | | # endif |
7920 | | #elif defined(_MSC_VER) |
7921 | | # pragma warning(pop) |
7922 | | #endif /* warning suppress end */ |
7923 | | |
7924 | | #ifdef __cplusplus |
7925 | | // } |
7926 | | #endif /* extern "C" end */ |
7927 | | |
7928 | | } // namespace duckdb_yyjson |
7929 | | |
7930 | | #endif /* DUCKDB_YYJSON_H */ |