Coverage Report

Created: 2025-09-05 08:05

/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 */