duckdb 1.1.2-dev6.0 → 1.1.4-dev11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/NodeJS.yml +5 -54
- package/binding.gyp +73 -52
- package/package.json +2 -2
- package/src/duckdb/{src → extension}/core_functions/aggregate/algebraic/avg.cpp +2 -2
- package/src/duckdb/{src → extension}/core_functions/aggregate/algebraic/corr.cpp +4 -4
- package/src/duckdb/{src → extension}/core_functions/aggregate/algebraic/covar.cpp +2 -2
- package/src/duckdb/{src → extension}/core_functions/aggregate/algebraic/stddev.cpp +2 -2
- package/src/duckdb/{src → extension}/core_functions/aggregate/distributive/approx_count.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/aggregate/distributive/arg_min_max.cpp +66 -18
- package/src/duckdb/{src → extension}/core_functions/aggregate/distributive/bitagg.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/aggregate/distributive/bitstring_agg.cpp +5 -7
- package/src/duckdb/{src → extension}/core_functions/aggregate/distributive/bool.cpp +3 -1
- package/src/duckdb/{src → extension}/core_functions/aggregate/distributive/kurtosis.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/aggregate/distributive/product.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/aggregate/distributive/skew.cpp +2 -2
- package/src/duckdb/{src → extension}/core_functions/aggregate/distributive/string_agg.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/aggregate/distributive/sum.cpp +13 -2
- package/src/duckdb/{src → extension}/core_functions/aggregate/holistic/approx_top_k.cpp +3 -3
- package/src/duckdb/{src → extension}/core_functions/aggregate/holistic/approximate_quantile.cpp +51 -15
- package/src/duckdb/{src → extension}/core_functions/aggregate/holistic/mad.cpp +25 -10
- package/src/duckdb/{src → extension}/core_functions/aggregate/holistic/mode.cpp +215 -71
- package/src/duckdb/{src → extension}/core_functions/aggregate/holistic/quantile.cpp +58 -31
- package/src/duckdb/{src → extension}/core_functions/aggregate/holistic/reservoir_quantile.cpp +2 -2
- package/src/duckdb/{src → extension}/core_functions/aggregate/nested/binned_histogram.cpp +9 -4
- package/src/duckdb/{src → extension}/core_functions/aggregate/nested/histogram.cpp +4 -2
- package/src/duckdb/{src → extension}/core_functions/aggregate/nested/list.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/aggregate/regression/regr_avg.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/aggregate/regression/regr_count.cpp +2 -2
- package/src/duckdb/{src → extension}/core_functions/aggregate/regression/regr_intercept.cpp +6 -2
- package/src/duckdb/{src → extension}/core_functions/aggregate/regression/regr_r2.cpp +2 -2
- package/src/duckdb/{src → extension}/core_functions/aggregate/regression/regr_slope.cpp +2 -2
- package/src/duckdb/{src → extension}/core_functions/aggregate/regression/regr_sxx_syy.cpp +2 -2
- package/src/duckdb/{src → extension}/core_functions/aggregate/regression/regr_sxy.cpp +3 -3
- package/src/duckdb/extension/core_functions/core_functions_extension.cpp +85 -0
- package/src/duckdb/{src → extension}/core_functions/function_list.cpp +30 -51
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/algebraic/corr.hpp +3 -7
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/algebraic_functions.hpp +1 -1
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/distributive_functions.hpp +16 -21
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/histogram_helpers.hpp +1 -1
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/holistic_functions.hpp +1 -1
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/nested_functions.hpp +1 -1
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/quantile_helpers.hpp +2 -2
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/quantile_sort_tree.hpp +140 -58
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/quantile_state.hpp +50 -43
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/regression/regr_count.hpp +2 -2
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/regression/regr_slope.hpp +3 -7
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/regression_functions.hpp +1 -1
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/array_functions.hpp +1 -1
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/bit_functions.hpp +1 -1
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/blob_functions.hpp +1 -10
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/date_functions.hpp +22 -55
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/debug_functions.hpp +1 -1
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/enum_functions.hpp +1 -1
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/generic_functions.hpp +1 -10
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/list_functions.hpp +4 -4
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/map_functions.hpp +1 -10
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/math_functions.hpp +1 -1
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/operators_functions.hpp +1 -1
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/random_functions.hpp +1 -1
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/string_functions.hpp +10 -103
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/struct_functions.hpp +1 -19
- package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/union_functions.hpp +1 -1
- package/src/duckdb/extension/core_functions/include/core_functions_extension.hpp +22 -0
- package/src/duckdb/{src → extension}/core_functions/lambda_functions.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/array/array_functions.cpp +11 -4
- package/src/duckdb/{src → extension}/core_functions/scalar/array/array_value.cpp +2 -2
- package/src/duckdb/{src → extension}/core_functions/scalar/bit/bitstring.cpp +12 -5
- package/src/duckdb/{src → extension}/core_functions/scalar/blob/base64.cpp +4 -2
- package/src/duckdb/{src → extension}/core_functions/scalar/blob/encode.cpp +4 -2
- package/src/duckdb/{src → extension}/core_functions/scalar/date/age.cpp +9 -3
- package/src/duckdb/extension/core_functions/scalar/date/current.cpp +29 -0
- package/src/duckdb/{src → extension}/core_functions/scalar/date/date_diff.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/date/date_part.cpp +42 -9
- package/src/duckdb/{src → extension}/core_functions/scalar/date/date_sub.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/date/date_trunc.cpp +4 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/date/epoch.cpp +19 -3
- package/src/duckdb/{src → extension}/core_functions/scalar/date/make_date.cpp +40 -5
- package/src/duckdb/{src → extension}/core_functions/scalar/date/time_bucket.cpp +4 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/date/to_interval.cpp +54 -28
- package/src/duckdb/{src → extension}/core_functions/scalar/debug/vector_type.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/enum/enum_functions.cpp +2 -7
- package/src/duckdb/{src → extension}/core_functions/scalar/generic/alias.cpp +2 -2
- package/src/duckdb/{src/function → extension/core_functions}/scalar/generic/binning.cpp +4 -3
- package/src/duckdb/{src → extension}/core_functions/scalar/generic/can_implicitly_cast.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/generic/current_setting.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/generic/hash.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/generic/least.cpp +30 -10
- package/src/duckdb/{src → extension}/core_functions/scalar/generic/stats.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/generic/system_functions.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/generic/typeof.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/list/array_slice.cpp +93 -88
- package/src/duckdb/{src → extension}/core_functions/scalar/list/flatten.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/list/list_aggregates.cpp +7 -3
- package/src/duckdb/{src → extension}/core_functions/scalar/list/list_distance.cpp +8 -2
- package/src/duckdb/{src → extension}/core_functions/scalar/list/list_filter.cpp +3 -3
- package/src/duckdb/{src → extension}/core_functions/scalar/list/list_has_any_or_all.cpp +3 -3
- package/src/duckdb/{src → extension}/core_functions/scalar/list/list_reduce.cpp +5 -5
- package/src/duckdb/{src → extension}/core_functions/scalar/list/list_sort.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/list/list_transform.cpp +3 -3
- package/src/duckdb/{src → extension}/core_functions/scalar/list/list_value.cpp +3 -3
- package/src/duckdb/{src → extension}/core_functions/scalar/list/range.cpp +7 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/map/cardinality.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/map/map.cpp +5 -4
- package/src/duckdb/{src → extension}/core_functions/scalar/map/map_concat.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/map/map_entries.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/map/map_extract.cpp +13 -25
- package/src/duckdb/{src → extension}/core_functions/scalar/map/map_from_entries.cpp +2 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/map/map_keys_values.cpp +11 -9
- package/src/duckdb/{src → extension}/core_functions/scalar/math/numeric.cpp +83 -37
- package/src/duckdb/{src → extension}/core_functions/scalar/operators/bitwise.cpp +19 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/random/random.cpp +4 -3
- package/src/duckdb/{src → extension}/core_functions/scalar/random/setseed.cpp +2 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/ascii.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/bar.cpp +6 -4
- package/src/duckdb/{src → extension}/core_functions/scalar/string/chr.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/damerau_levenshtein.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/format_bytes.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/hamming.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/hex.cpp +7 -3
- package/src/duckdb/{src → extension}/core_functions/scalar/string/instr.cpp +4 -4
- package/src/duckdb/{src → extension}/core_functions/scalar/string/jaccard.cpp +1 -1
- package/src/duckdb/extension/core_functions/scalar/string/jaro_winkler.cpp +112 -0
- package/src/duckdb/{src → extension}/core_functions/scalar/string/left_right.cpp +6 -6
- package/src/duckdb/{src → extension}/core_functions/scalar/string/levenshtein.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/pad.cpp +9 -5
- package/src/duckdb/{src → extension}/core_functions/scalar/string/parse_path.cpp +4 -4
- package/src/duckdb/{src → extension}/core_functions/scalar/string/printf.cpp +3 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/repeat.cpp +4 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/replace.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/reverse.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/starts_with.cpp +5 -3
- package/src/duckdb/{src → extension}/core_functions/scalar/string/to_base.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/translate.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/trim.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/unicode.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/string/url_encode.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/struct/struct_insert.cpp +25 -31
- package/src/duckdb/{src → extension}/core_functions/scalar/union/union_extract.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/union/union_tag.cpp +1 -1
- package/src/duckdb/{src → extension}/core_functions/scalar/union/union_value.cpp +3 -3
- package/src/duckdb/extension/icu/icu-dateadd.cpp +16 -11
- package/src/duckdb/extension/icu/icu-datefunc.cpp +2 -2
- package/src/duckdb/extension/icu/icu-datepart.cpp +8 -5
- package/src/duckdb/extension/icu/icu-datesub.cpp +2 -2
- package/src/duckdb/extension/icu/icu-datetrunc.cpp +8 -1
- package/src/duckdb/extension/icu/icu-list-range.cpp +2 -2
- package/src/duckdb/extension/icu/icu-makedate.cpp +18 -7
- package/src/duckdb/extension/icu/icu-strptime.cpp +9 -3
- package/src/duckdb/extension/icu/icu-table-range.cpp +2 -2
- package/src/duckdb/extension/icu/icu-timebucket.cpp +4 -1
- package/src/duckdb/extension/icu/icu-timezone.cpp +67 -1
- package/src/duckdb/extension/icu/icu_extension.cpp +60 -5
- package/src/duckdb/extension/icu/include/icu-datefunc.hpp +2 -1
- package/src/duckdb/extension/icu/third_party/icu/common/bytestriebuilder.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/dtintrv.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/filteredbrk.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/locid.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/lsr.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/lsr.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/common/messagepattern.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/common/normlzr.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/rbbinode.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/schriter.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/stringtriebuilder.cpp +8 -8
- package/src/duckdb/extension/icu/third_party/icu/common/ucharstriebuilder.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/uchriter.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/brkiter.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/bytestriebuilder.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/chariter.h +3 -3
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/dtintrv.h +3 -3
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/locid.h +3 -3
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/messagepattern.h +4 -4
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/normlzr.h +3 -3
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/parsepos.h +4 -4
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/rbbi.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/schriter.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/strenum.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/stringpiece.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/stringtriebuilder.h +9 -9
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/ucharstriebuilder.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/uchriter.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/uniset.h +3 -3
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/unistr.h +12 -12
- package/src/duckdb/extension/icu/third_party/icu/common/unicode/uobject.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/common/unifiedcache.h +4 -4
- package/src/duckdb/extension/icu/third_party/icu/common/uniset.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/ustr_titlecase_brkiter.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/ustrenum.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/common/uvector.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/uvector.h +3 -3
- package/src/duckdb/extension/icu/third_party/icu/common/uvectr32.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/uvectr32.h +3 -3
- package/src/duckdb/extension/icu/third_party/icu/common/uvectr64.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/common/uvectr64.h +3 -3
- package/src/duckdb/extension/icu/third_party/icu/i18n/alphaindex.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/calendar.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/choicfmt.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/coleitr.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/coll.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/collationiterator.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/collationiterator.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/collationsettings.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/collationsettings.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/currpinf.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/datefmt.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/dcfmtsym.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/decimfmt.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/dtfmtsym.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/dtitvfmt.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/dtitvinf.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/dtptngen.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/dtptngen_impl.h +4 -4
- package/src/duckdb/extension/icu/third_party/icu/i18n/dtrule.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/fmtable.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/format.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/fpositer.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/measfmt.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/measunit.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/measure.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/msgfmt.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/nfrs.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/nfrs.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/nfrule.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/nfrule.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/nfsubs.cpp +9 -9
- package/src/duckdb/extension/icu/third_party/icu/i18n/nfsubs.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/number_asformat.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/number_asformat.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/numfmt.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/olsontz.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/olsontz.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/plurfmt.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/plurrule.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/rbnf.cpp +4 -4
- package/src/duckdb/extension/icu/third_party/icu/i18n/rbtz.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/region.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/reldtfmt.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/reldtfmt.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/rulebasedcollator.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/selfmt.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/simpletz.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/smpdtfmt.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/sortkey.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/timezone.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/tmutamt.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/tzfmt.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/tzgnames.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/tzgnames.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/tznames.cpp +3 -3
- package/src/duckdb/extension/icu/third_party/icu/i18n/tznames_impl.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/tznames_impl.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/tzrule.cpp +8 -8
- package/src/duckdb/extension/icu/third_party/icu/i18n/tztrans.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/alphaindex.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/calendar.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/choicfmt.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/coleitr.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/coll.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/currpinf.h +3 -3
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/datefmt.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/dcfmtsym.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/decimfmt.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/dtfmtsym.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/dtitvfmt.h +3 -3
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/dtitvinf.h +3 -3
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/dtptngen.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/dtrule.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/fieldpos.h +4 -4
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/fmtable.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/format.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/fpositer.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/measfmt.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/measunit.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/measure.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/msgfmt.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/numfmt.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/plurfmt.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/plurrule.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/rbnf.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/rbtz.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/region.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/search.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/selfmt.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/simpletz.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/smpdtfmt.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/sortkey.h +3 -3
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/stsearch.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/tblcoll.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/timezone.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/tmutamt.h +3 -3
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/tmutfmt.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/tzfmt.h +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/tznames.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/tzrule.h +8 -8
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/tztrans.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/vtzone.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/utf16collationiterator.cpp +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/utf16collationiterator.h +2 -2
- package/src/duckdb/extension/icu/third_party/icu/i18n/vtzone.cpp +2 -2
- package/src/duckdb/extension/json/buffered_json_reader.cpp +6 -1
- package/src/duckdb/extension/json/include/buffered_json_reader.hpp +2 -0
- package/src/duckdb/extension/json/include/json_common.hpp +14 -10
- package/src/duckdb/extension/json/include/json_scan.hpp +48 -7
- package/src/duckdb/extension/json/include/json_structure.hpp +2 -1
- package/src/duckdb/extension/json/include/json_transform.hpp +5 -2
- package/src/duckdb/extension/json/json_functions/copy_json.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_create.cpp +57 -20
- package/src/duckdb/extension/json/json_functions/json_serialize_plan.cpp +7 -6
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +6 -5
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +20 -17
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +48 -17
- package/src/duckdb/extension/json/json_functions/read_json.cpp +83 -34
- package/src/duckdb/extension/json/json_functions/read_json_objects.cpp +3 -3
- package/src/duckdb/extension/json/json_functions.cpp +14 -16
- package/src/duckdb/extension/json/json_scan.cpp +36 -16
- package/src/duckdb/extension/json/json_serializer.cpp +1 -1
- package/src/duckdb/extension/json/serialize_json.cpp +2 -2
- package/src/duckdb/extension/parquet/column_reader.cpp +136 -116
- package/src/duckdb/extension/parquet/column_writer.cpp +870 -604
- package/src/duckdb/extension/parquet/geo_parquet.cpp +4 -5
- package/src/duckdb/extension/parquet/include/boolean_column_reader.hpp +0 -4
- package/src/duckdb/extension/parquet/include/column_reader.hpp +24 -19
- package/src/duckdb/extension/parquet/include/column_writer.hpp +7 -5
- package/src/duckdb/extension/parquet/include/decode_utils.hpp +138 -18
- package/src/duckdb/extension/parquet/include/geo_parquet.hpp +4 -3
- package/src/duckdb/extension/parquet/include/null_column_reader.hpp +1 -14
- package/src/duckdb/extension/parquet/include/parquet_bss_encoder.hpp +45 -0
- package/src/duckdb/extension/parquet/include/parquet_crypto.hpp +1 -1
- package/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp +101 -90
- package/src/duckdb/extension/parquet/include/parquet_dbp_encoder.hpp +179 -0
- package/src/duckdb/extension/parquet/include/parquet_decimal_utils.hpp +2 -3
- package/src/duckdb/extension/parquet/include/parquet_dlba_encoder.hpp +48 -0
- package/src/duckdb/extension/parquet/include/parquet_extension.hpp +8 -0
- package/src/duckdb/extension/parquet/include/parquet_file_metadata_cache.hpp +2 -2
- package/src/duckdb/extension/parquet/include/parquet_metadata.hpp +5 -0
- package/src/duckdb/extension/parquet/include/parquet_reader.hpp +22 -18
- package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +1 -5
- package/src/duckdb/extension/parquet/include/parquet_statistics.hpp +87 -3
- package/src/duckdb/extension/parquet/include/parquet_writer.hpp +30 -16
- package/src/duckdb/extension/parquet/include/resizable_buffer.hpp +1 -0
- package/src/duckdb/extension/parquet/include/string_column_reader.hpp +0 -8
- package/src/duckdb/extension/parquet/include/struct_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/templated_column_reader.hpp +1 -42
- package/src/duckdb/extension/parquet/include/thrift_tools.hpp +13 -1
- package/src/duckdb/extension/parquet/include/zstd_file_system.hpp +4 -0
- package/src/duckdb/extension/parquet/parquet_extension.cpp +240 -197
- package/src/duckdb/extension/parquet/parquet_metadata.cpp +138 -6
- package/src/duckdb/extension/parquet/parquet_reader.cpp +155 -79
- package/src/duckdb/extension/parquet/parquet_statistics.cpp +258 -38
- package/src/duckdb/extension/parquet/parquet_timestamp.cpp +17 -3
- package/src/duckdb/extension/parquet/parquet_writer.cpp +65 -34
- package/src/duckdb/extension/parquet/serialize_parquet.cpp +4 -0
- package/src/duckdb/extension/parquet/zstd_file_system.cpp +13 -0
- package/src/duckdb/src/catalog/catalog.cpp +272 -97
- package/src/duckdb/src/catalog/catalog_entry/duck_index_entry.cpp +9 -4
- package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +8 -0
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +145 -95
- package/src/duckdb/src/catalog/catalog_entry/scalar_function_catalog_entry.cpp +9 -3
- package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +15 -0
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +40 -24
- package/src/duckdb/src/catalog/catalog_entry/table_function_catalog_entry.cpp +1 -1
- package/src/duckdb/src/catalog/catalog_entry/type_catalog_entry.cpp +2 -2
- package/src/duckdb/src/catalog/catalog_entry.cpp +3 -0
- package/src/duckdb/src/catalog/catalog_entry_retriever.cpp +60 -5
- package/src/duckdb/src/catalog/catalog_search_path.cpp +27 -14
- package/src/duckdb/src/catalog/catalog_set.cpp +75 -31
- package/src/duckdb/src/catalog/default/default_functions.cpp +13 -8
- package/src/duckdb/src/catalog/default/default_views.cpp +1 -0
- package/src/duckdb/src/catalog/dependency_manager.cpp +133 -5
- package/src/duckdb/src/catalog/duck_catalog.cpp +17 -9
- package/src/duckdb/src/common/adbc/adbc.cpp +18 -0
- package/src/duckdb/src/common/allocator.cpp +3 -1
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +30 -9
- package/src/duckdb/src/common/arrow/arrow_converter.cpp +63 -82
- package/src/duckdb/src/common/arrow/arrow_merge_event.cpp +4 -3
- package/src/duckdb/src/common/arrow/arrow_type_extension.cpp +361 -0
- package/src/duckdb/src/common/arrow/arrow_util.cpp +10 -6
- package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +6 -2
- package/src/duckdb/src/common/arrow/physical_arrow_collector.cpp +2 -1
- package/src/duckdb/src/common/arrow/schema_metadata.cpp +27 -14
- package/src/duckdb/src/common/assert.cpp +1 -2
- package/src/duckdb/src/common/bind_helpers.cpp +1 -1
- package/src/duckdb/src/common/box_renderer.cpp +316 -26
- package/src/duckdb/src/common/cgroups.cpp +7 -1
- package/src/duckdb/src/common/compressed_file_system.cpp +1 -1
- package/src/duckdb/src/common/enum_util.cpp +2865 -6882
- package/src/duckdb/src/common/enums/compression_type.cpp +12 -0
- package/src/duckdb/src/common/enums/metric_type.cpp +24 -0
- package/src/duckdb/src/common/enums/optimizer_type.cpp +4 -0
- package/src/duckdb/src/common/enums/physical_operator_type.cpp +2 -0
- package/src/duckdb/src/common/error_data.cpp +23 -6
- package/src/duckdb/src/common/exception/binder_exception.cpp +1 -1
- package/src/duckdb/src/common/exception.cpp +20 -28
- package/src/duckdb/src/common/extra_type_info.cpp +85 -20
- package/src/duckdb/src/common/file_buffer.cpp +5 -2
- package/src/duckdb/src/common/file_system.cpp +8 -3
- package/src/duckdb/src/common/fsst.cpp +3 -3
- package/src/duckdb/src/common/hive_partitioning.cpp +1 -1
- package/src/duckdb/src/common/local_file_system.cpp +169 -60
- package/src/duckdb/src/common/multi_file_list.cpp +4 -1
- package/src/duckdb/src/common/multi_file_reader.cpp +240 -63
- package/src/duckdb/src/common/opener_file_system.cpp +37 -0
- package/src/duckdb/src/common/operator/cast_operators.cpp +77 -11
- package/src/duckdb/src/common/operator/string_cast.cpp +6 -2
- package/src/duckdb/src/common/pipe_file_system.cpp +4 -4
- package/src/duckdb/src/common/progress_bar/progress_bar.cpp +25 -14
- package/src/duckdb/src/common/radix_partitioning.cpp +17 -16
- package/src/duckdb/src/common/random_engine.cpp +39 -3
- package/src/duckdb/src/common/render_tree.cpp +3 -19
- package/src/duckdb/src/common/row_operations/row_external.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_gather.cpp +2 -58
- package/src/duckdb/src/common/row_operations/row_matcher.cpp +2 -2
- package/src/duckdb/src/common/row_operations/row_radix_scatter.cpp +2 -0
- package/src/duckdb/src/common/row_operations/row_scatter.cpp +20 -19
- package/src/duckdb/src/common/serializer/buffered_file_writer.cpp +1 -1
- package/src/duckdb/src/common/serializer/memory_stream.cpp +36 -0
- package/src/duckdb/src/common/sort/comparators.cpp +7 -7
- package/src/duckdb/src/common/sort/partition_state.cpp +2 -2
- package/src/duckdb/src/common/stacktrace.cpp +127 -0
- package/src/duckdb/src/common/string_util.cpp +157 -32
- package/src/duckdb/src/common/tree_renderer/text_tree_renderer.cpp +15 -3
- package/src/duckdb/src/common/types/column/column_data_allocator.cpp +4 -0
- package/src/duckdb/src/common/types/column/column_data_collection.cpp +71 -8
- package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +27 -6
- package/src/duckdb/src/common/types/conflict_manager.cpp +21 -7
- package/src/duckdb/src/common/types/date.cpp +39 -25
- package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +4 -11
- package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +21 -7
- package/src/duckdb/src/common/types/row/tuple_data_collection.cpp +10 -1
- package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +17 -17
- package/src/duckdb/src/common/types/timestamp.cpp +70 -33
- package/src/duckdb/src/common/types/uuid.cpp +11 -0
- package/src/duckdb/src/common/types/validity_mask.cpp +16 -5
- package/src/duckdb/src/common/types/value.cpp +357 -199
- package/src/duckdb/src/common/types/varint.cpp +64 -18
- package/src/duckdb/src/common/types/vector.cpp +78 -38
- package/src/duckdb/src/common/types.cpp +199 -92
- package/src/duckdb/src/common/vector_operations/comparison_operators.cpp +2 -1
- package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +32 -5
- package/src/duckdb/src/common/vector_operations/vector_hash.cpp +3 -1
- package/src/duckdb/src/execution/adaptive_filter.cpp +6 -2
- package/src/duckdb/src/execution/aggregate_hashtable.cpp +410 -111
- package/src/duckdb/src/execution/column_binding_resolver.cpp +2 -2
- package/src/duckdb/src/execution/expression_executor/execute_between.cpp +6 -0
- package/src/duckdb/src/execution/expression_executor/execute_cast.cpp +4 -3
- package/src/duckdb/src/execution/expression_executor/execute_comparison.cpp +2 -2
- package/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp +2 -2
- package/src/duckdb/src/execution/expression_executor/execute_function.cpp +1 -0
- package/src/duckdb/src/execution/expression_executor/execute_operator.cpp +5 -4
- package/src/duckdb/src/execution/expression_executor.cpp +5 -3
- package/src/duckdb/src/execution/index/art/art.cpp +208 -72
- package/src/duckdb/src/execution/index/art/base_leaf.cpp +1 -1
- package/src/duckdb/src/execution/index/art/leaf.cpp +12 -7
- package/src/duckdb/src/execution/index/art/node.cpp +2 -1
- package/src/duckdb/src/execution/index/art/node256_leaf.cpp +6 -6
- package/src/duckdb/src/execution/index/art/plan_art.cpp +50 -55
- package/src/duckdb/src/execution/index/art/prefix.cpp +7 -13
- package/src/duckdb/src/execution/index/bound_index.cpp +30 -5
- package/src/duckdb/src/execution/index/fixed_size_allocator.cpp +3 -5
- package/src/duckdb/src/execution/index/fixed_size_buffer.cpp +14 -9
- package/src/duckdb/src/execution/join_hashtable.cpp +254 -158
- package/src/duckdb/src/execution/operator/aggregate/grouped_aggregate_data.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +7 -7
- package/src/duckdb/src/execution/operator/aggregate/physical_partitioned_aggregate.cpp +226 -0
- package/src/duckdb/src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp +3 -3
- package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +3 -3
- package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +77 -70
- package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +114 -50
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer.cpp +2 -2
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp +19 -10
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_file_handle.cpp +22 -15
- package/src/duckdb/src/execution/operator/csv_scanner/encode/csv_encoder.cpp +95 -0
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/column_count_scanner.cpp +6 -1
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/csv_schema.cpp +75 -2
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/scanner_boundary.cpp +40 -12
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp +395 -163
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp +20 -23
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp +115 -49
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp +66 -12
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_detection.cpp +20 -23
- package/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.cpp +220 -46
- package/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp +43 -32
- package/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp +54 -119
- package/src/duckdb/src/execution/operator/csv_scanner/util/csv_error.cpp +184 -20
- package/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp +83 -21
- package/src/duckdb/src/execution/operator/csv_scanner/util/csv_validator.cpp +63 -0
- package/src/duckdb/src/execution/operator/helper/physical_reservoir_sample.cpp +7 -4
- package/src/duckdb/src/execution/operator/helper/physical_set.cpp +1 -1
- package/src/duckdb/src/execution/operator/helper/physical_vacuum.cpp +3 -2
- package/src/duckdb/src/execution/operator/helper/physical_verify_vector.cpp +9 -1
- package/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +132 -15
- package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +64 -55
- package/src/duckdb/src/execution/operator/join/physical_hash_join.cpp +284 -154
- package/src/duckdb/src/execution/operator/join/physical_iejoin.cpp +40 -55
- package/src/duckdb/src/execution/operator/join/physical_range_join.cpp +0 -1
- package/src/duckdb/src/execution/operator/order/physical_order.cpp +7 -3
- package/src/duckdb/src/execution/operator/order/physical_top_n.cpp +298 -227
- package/src/duckdb/src/execution/operator/persistent/csv_rejects_table.cpp +5 -2
- package/src/duckdb/src/execution/operator/persistent/physical_batch_copy_to_file.cpp +3 -4
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +32 -19
- package/src/duckdb/src/execution/operator/persistent/physical_copy_database.cpp +1 -0
- package/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp +6 -0
- package/src/duckdb/src/execution/operator/persistent/physical_delete.cpp +58 -19
- package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +11 -27
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +308 -119
- package/src/duckdb/src/execution/operator/persistent/physical_update.cpp +105 -55
- package/src/duckdb/src/execution/operator/projection/physical_tableinout_function.cpp +6 -2
- package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +1 -1
- package/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp +15 -6
- package/src/duckdb/src/execution/operator/scan/physical_table_scan.cpp +92 -50
- package/src/duckdb/src/execution/operator/schema/physical_alter.cpp +0 -1
- package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +8 -4
- package/src/duckdb/src/execution/operator/schema/physical_create_art_index.cpp +54 -22
- package/src/duckdb/src/execution/operator/set/physical_union.cpp +5 -1
- package/src/duckdb/src/execution/physical_operator.cpp +15 -9
- package/src/duckdb/src/execution/physical_plan/plan_aggregate.cpp +101 -12
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +11 -140
- package/src/duckdb/src/execution/physical_plan/plan_create_index.cpp +11 -13
- package/src/duckdb/src/execution/physical_plan/plan_cte.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_delete.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_delim_join.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_distinct.cpp +6 -5
- package/src/duckdb/src/execution/physical_plan/plan_export.cpp +0 -4
- package/src/duckdb/src/execution/physical_plan/plan_filter.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_get.cpp +16 -13
- package/src/duckdb/src/execution/physical_plan/plan_insert.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_order.cpp +7 -7
- package/src/duckdb/src/execution/physical_plan/plan_prepare.cpp +2 -2
- package/src/duckdb/src/execution/physical_plan/plan_projection.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_sample.cpp +8 -3
- package/src/duckdb/src/execution/physical_plan/plan_set_operation.cpp +1 -2
- package/src/duckdb/src/execution/physical_plan/plan_simple.cpp +1 -2
- package/src/duckdb/src/execution/physical_plan/plan_top_n.cpp +3 -2
- package/src/duckdb/src/execution/physical_plan_generator.cpp +0 -22
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +136 -116
- package/src/duckdb/src/execution/sample/base_reservoir_sample.cpp +136 -0
- package/src/duckdb/src/execution/sample/reservoir_sample.cpp +930 -0
- package/src/duckdb/src/function/aggregate/distributive/count.cpp +6 -12
- package/src/duckdb/src/function/aggregate/distributive/{first.cpp → first_last_any.cpp} +37 -18
- package/src/duckdb/src/{core_functions → function}/aggregate/distributive/minmax.cpp +19 -12
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +72 -13
- package/src/duckdb/src/function/built_in_functions.cpp +85 -2
- package/src/duckdb/src/function/cast/decimal_cast.cpp +1 -1
- package/src/duckdb/src/function/cast/string_cast.cpp +1 -1
- package/src/duckdb/src/function/cast/struct_cast.cpp +81 -49
- package/src/duckdb/src/function/cast/union/from_struct.cpp +7 -5
- package/src/duckdb/src/function/compression_config.cpp +6 -0
- package/src/duckdb/src/function/encoding_function.cpp +134 -0
- package/src/duckdb/src/function/function.cpp +8 -13
- package/src/duckdb/src/function/function_binder.cpp +100 -21
- package/src/duckdb/src/function/function_list.cpp +178 -0
- package/src/duckdb/src/function/macro_function.cpp +4 -4
- package/src/duckdb/src/function/pragma/pragma_functions.cpp +0 -2
- package/src/duckdb/src/function/pragma/pragma_queries.cpp +0 -4
- package/src/duckdb/src/{core_functions/core_functions.cpp → function/register_function_list.cpp} +12 -8
- package/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp +62 -23
- package/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp +33 -16
- package/src/duckdb/src/function/scalar/compressed_materialization_utils.cpp +21 -0
- package/src/duckdb/src/{core_functions/scalar/blob → function/scalar}/create_sort_key.cpp +86 -23
- package/src/duckdb/src/{core_functions → function}/scalar/date/strftime.cpp +6 -4
- package/src/duckdb/src/function/scalar/generic/constant_or_null.cpp +5 -7
- package/src/duckdb/src/{core_functions → function}/scalar/generic/error.cpp +3 -1
- package/src/duckdb/src/function/scalar/generic/getvariable.cpp +2 -2
- package/src/duckdb/src/function/scalar/list/contains_or_position.cpp +1 -7
- package/src/duckdb/src/function/scalar/list/list_extract.cpp +27 -21
- package/src/duckdb/src/function/scalar/list/list_resize.cpp +8 -12
- package/src/duckdb/src/function/scalar/list/list_select.cpp +1 -4
- package/src/duckdb/src/function/scalar/list/list_zip.cpp +6 -6
- package/src/duckdb/src/{core_functions → function}/scalar/map/map_contains.cpp +2 -2
- package/src/duckdb/src/function/scalar/nested_functions.cpp +0 -11
- package/src/duckdb/src/function/scalar/{operators → operator}/add.cpp +2 -1
- package/src/duckdb/src/function/scalar/{operators → operator}/arithmetic.cpp +195 -127
- package/src/duckdb/src/function/scalar/sequence/nextval.cpp +30 -21
- package/src/duckdb/src/function/scalar/strftime_format.cpp +10 -0
- package/src/duckdb/src/function/scalar/string/caseconvert.cpp +11 -41
- package/src/duckdb/src/function/scalar/string/concat.cpp +22 -20
- package/src/duckdb/src/function/scalar/string/concat_ws.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/contains.cpp +16 -19
- package/src/duckdb/src/function/scalar/string/length.cpp +38 -24
- package/src/duckdb/src/function/scalar/string/like.cpp +80 -47
- package/src/duckdb/src/{core_functions → function}/scalar/string/md5.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/nfc_normalize.cpp +2 -6
- package/src/duckdb/src/function/scalar/string/prefix.cpp +0 -4
- package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +2 -1
- package/src/duckdb/src/function/scalar/string/regexp.cpp +17 -7
- package/src/duckdb/src/{core_functions → function}/scalar/string/regexp_escape.cpp +2 -2
- package/src/duckdb/src/{core_functions → function}/scalar/string/sha1.cpp +1 -1
- package/src/duckdb/src/{core_functions → function}/scalar/string/sha256.cpp +1 -1
- package/src/duckdb/src/{core_functions → function}/scalar/string/string_split.cpp +4 -5
- package/src/duckdb/src/function/scalar/string/strip_accents.cpp +3 -6
- package/src/duckdb/src/function/scalar/string/substring.cpp +14 -13
- package/src/duckdb/src/function/scalar/string/suffix.cpp +0 -4
- package/src/duckdb/src/function/scalar/struct/struct_concat.cpp +115 -0
- package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +35 -31
- package/src/duckdb/src/{core_functions → function}/scalar/struct/struct_pack.cpp +7 -7
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +5 -8
- package/src/duckdb/src/function/scalar/system/write_log.cpp +170 -0
- package/src/duckdb/src/function/scalar_function.cpp +5 -5
- package/src/duckdb/src/function/table/arrow/arrow_array_scan_state.cpp +3 -2
- package/src/duckdb/src/function/table/arrow/arrow_duck_schema.cpp +287 -1
- package/src/duckdb/src/function/table/arrow/arrow_type_info.cpp +6 -6
- package/src/duckdb/src/function/table/arrow.cpp +32 -352
- package/src/duckdb/src/function/table/arrow_conversion.cpp +43 -7
- package/src/duckdb/src/function/table/copy_csv.cpp +38 -23
- package/src/duckdb/src/function/table/glob.cpp +1 -1
- package/src/duckdb/src/function/table/query_function.cpp +12 -7
- package/src/duckdb/src/function/table/read_csv.cpp +114 -46
- package/src/duckdb/src/function/table/read_file.cpp +26 -6
- package/src/duckdb/src/function/table/sniff_csv.cpp +25 -5
- package/src/duckdb/src/function/table/system/duckdb_columns.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_dependencies.cpp +6 -7
- package/src/duckdb/src/function/table/system/duckdb_extensions.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +141 -16
- package/src/duckdb/src/function/table/system/duckdb_log.cpp +64 -0
- package/src/duckdb/src/function/table/system/duckdb_log_contexts.cpp +65 -0
- package/src/duckdb/src/function/table/system/duckdb_memory.cpp +0 -1
- package/src/duckdb/src/function/table/system/duckdb_settings.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_tables.cpp +1 -13
- package/src/duckdb/src/function/table/system/duckdb_types.cpp +1 -1
- package/src/duckdb/src/function/table/system/pragma_storage_info.cpp +17 -0
- package/src/duckdb/src/function/table/system/pragma_table_info.cpp +6 -0
- package/src/duckdb/src/function/table/system/pragma_table_sample.cpp +95 -0
- package/src/duckdb/src/function/table/system/test_all_types.cpp +56 -46
- package/src/duckdb/src/function/table/system_functions.cpp +3 -0
- package/src/duckdb/src/function/table/table_scan.cpp +487 -289
- package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
- package/src/duckdb/src/function/table_function.cpp +10 -6
- package/src/duckdb/src/function/window/window_aggregate_function.cpp +248 -0
- package/src/duckdb/src/function/window/window_aggregate_states.cpp +48 -0
- package/src/duckdb/src/function/window/window_aggregator.cpp +88 -0
- package/src/duckdb/src/function/window/window_boundaries_state.cpp +854 -0
- package/src/duckdb/src/function/window/window_collection.cpp +146 -0
- package/src/duckdb/src/function/window/window_constant_aggregator.cpp +357 -0
- package/src/duckdb/src/function/window/window_custom_aggregator.cpp +146 -0
- package/src/duckdb/src/function/window/window_distinct_aggregator.cpp +758 -0
- package/src/duckdb/src/function/window/window_executor.cpp +99 -0
- package/src/duckdb/src/function/window/window_index_tree.cpp +63 -0
- package/src/duckdb/src/function/window/window_merge_sort_tree.cpp +275 -0
- package/src/duckdb/src/function/window/window_naive_aggregator.cpp +361 -0
- package/src/duckdb/src/function/window/window_rank_function.cpp +288 -0
- package/src/duckdb/src/function/window/window_rownumber_function.cpp +191 -0
- package/src/duckdb/src/function/window/window_segment_tree.cpp +594 -0
- package/src/duckdb/src/function/window/window_shared_expressions.cpp +50 -0
- package/src/duckdb/src/function/window/window_token_tree.cpp +142 -0
- package/src/duckdb/src/function/window/window_value_function.cpp +566 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +74 -17
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_index_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_schema_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +9 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/function_entry.hpp +4 -10
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +18 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp +2 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +5 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry_retriever.hpp +21 -18
- package/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp +3 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp +10 -2
- package/src/duckdb/src/include/duckdb/catalog/dependency_manager.hpp +11 -0
- package/src/duckdb/src/include/duckdb/catalog/duck_catalog.hpp +9 -4
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/array_ptr.hpp +8 -0
- package/src/duckdb/src/include/duckdb/common/arrow/appender/append_data.hpp +4 -1
- package/src/duckdb/src/include/duckdb/common/arrow/appender/list_data.hpp +3 -1
- package/src/duckdb/src/include/duckdb/common/arrow/appender/list_view_data.hpp +3 -1
- package/src/duckdb/src/include/duckdb/common/arrow/appender/varchar_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_appender.hpp +7 -3
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_converter.hpp +26 -3
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_query_result.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_type_extension.hpp +144 -0
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_util.hpp +5 -2
- package/src/duckdb/src/include/duckdb/common/arrow/result_arrow_wrapper.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/arrow/schema_metadata.hpp +11 -4
- package/src/duckdb/src/include/duckdb/common/assert.hpp +12 -1
- package/src/duckdb/src/include/duckdb/common/atomic_ptr.hpp +102 -0
- package/src/duckdb/src/include/duckdb/common/box_renderer.hpp +65 -6
- package/src/duckdb/src/include/duckdb/common/chrono.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/column_index.hpp +72 -0
- package/src/duckdb/src/include/duckdb/common/enum_util.hpp +120 -0
- package/src/duckdb/src/include/duckdb/{core_functions/core_functions.hpp → common/enums/collation_type.hpp} +2 -7
- package/src/duckdb/src/include/duckdb/common/enums/compression_type.hpp +5 -2
- package/src/duckdb/src/include/duckdb/common/enums/function_errors.hpp +18 -0
- package/src/duckdb/src/include/duckdb/common/enums/memory_tag.hpp +3 -2
- package/src/duckdb/src/include/duckdb/common/enums/metric_type.hpp +7 -2
- package/src/duckdb/src/include/duckdb/common/enums/optimizer_type.hpp +4 -0
- package/src/duckdb/src/include/duckdb/common/enums/order_preservation_type.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/enums/physical_operator_type.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/enums/profiler_format.hpp +1 -1
- package/src/duckdb/src/include/duckdb/{core_functions/aggregate → common/enums}/quantile_enum.hpp +3 -1
- package/src/duckdb/src/include/duckdb/common/enums/scan_vector_type.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/error_data.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/exception/parser_exception.hpp +4 -0
- package/src/duckdb/src/include/duckdb/common/exception.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/extension_type_info.hpp +37 -0
- package/src/duckdb/src/include/duckdb/common/extra_operator_info.hpp +7 -2
- package/src/duckdb/src/include/duckdb/common/extra_type_info.hpp +9 -3
- package/src/duckdb/src/include/duckdb/common/fast_mem.hpp +6 -6
- package/src/duckdb/src/include/duckdb/common/file_buffer.hpp +19 -10
- package/src/duckdb/src/include/duckdb/common/file_opener.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/file_system.hpp +6 -1
- package/src/duckdb/src/include/duckdb/common/fsst.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/helper.hpp +6 -0
- package/src/duckdb/src/include/duckdb/common/hugeint.hpp +10 -0
- package/src/duckdb/src/include/duckdb/common/insertion_order_preserving_map.hpp +12 -2
- package/src/duckdb/src/include/duckdb/common/local_file_system.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/multi_file_list.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +147 -27
- package/src/duckdb/src/include/duckdb/common/multi_file_reader_options.hpp +4 -0
- package/src/duckdb/src/include/duckdb/common/numeric_utils.hpp +2 -7
- package/src/duckdb/src/include/duckdb/common/opener_file_system.hpp +16 -5
- package/src/duckdb/src/include/duckdb/common/operator/cast_operators.hpp +16 -0
- package/src/duckdb/src/include/duckdb/common/optional_idx.hpp +4 -0
- package/src/duckdb/src/include/duckdb/common/platform.hpp +34 -3
- package/src/duckdb/src/include/duckdb/common/radix_partitioning.hpp +10 -13
- package/src/duckdb/src/include/duckdb/common/random_engine.hpp +8 -3
- package/src/duckdb/src/include/duckdb/common/row_operations/row_operations.hpp +0 -2
- package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_writer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/serializer/memory_stream.hpp +7 -0
- package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/serializer/serializer.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/stacktrace.hpp +25 -0
- package/src/duckdb/src/include/duckdb/common/string_util.hpp +30 -2
- package/src/duckdb/src/include/duckdb/common/tree_renderer/graphviz_tree_renderer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/tree_renderer/html_tree_renderer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/tree_renderer/json_tree_renderer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/tree_renderer/text_tree_renderer.hpp +3 -2
- package/src/duckdb/src/include/duckdb/common/tree_renderer.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/type_util.hpp +8 -0
- package/src/duckdb/src/include/duckdb/common/types/column/column_data_allocator.hpp +8 -0
- package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp +13 -2
- package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection_segment.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/types/conflict_manager.hpp +21 -4
- package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +4 -1
- package/src/duckdb/src/include/duckdb/common/types/date.hpp +9 -4
- package/src/duckdb/src/include/duckdb/common/types/date_lookup_cache.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/interval.hpp +58 -10
- package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +0 -4
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_allocator.hpp +4 -0
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_collection.hpp +4 -0
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +10 -0
- package/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +43 -16
- package/src/duckdb/src/include/duckdb/common/types/uuid.hpp +3 -1
- package/src/duckdb/src/include/duckdb/common/types/validity_mask.hpp +63 -21
- package/src/duckdb/src/include/duckdb/common/types/value.hpp +62 -16
- package/src/duckdb/src/include/duckdb/common/types/varint.hpp +13 -0
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +34 -7
- package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +15 -0
- package/src/duckdb/src/include/duckdb/common/types.hpp +12 -7
- package/src/duckdb/src/include/duckdb/common/uhugeint.hpp +10 -0
- package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +12 -13
- package/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp +27 -0
- package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +111 -4
- package/src/duckdb/src/include/duckdb/common/vector_operations/vector_operations.hpp +0 -1
- package/src/duckdb/src/include/duckdb/execution/adaptive_filter.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +48 -10
- package/src/duckdb/src/include/duckdb/execution/executor.hpp +2 -1
- package/src/duckdb/src/include/duckdb/execution/expression_executor.hpp +0 -1
- package/src/duckdb/src/include/duckdb/execution/ht_entry.hpp +25 -27
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +28 -18
- package/src/duckdb/src/include/duckdb/execution/index/art/node.hpp +1 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/prefix.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/index/bound_index.hpp +23 -16
- package/src/duckdb/src/include/duckdb/execution/index/fixed_size_allocator.hpp +4 -0
- package/src/duckdb/src/include/duckdb/execution/index/fixed_size_buffer.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/join_hashtable.hpp +25 -16
- package/src/duckdb/src/include/duckdb/execution/merge_sort_tree.hpp +15 -10
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/{persistent/physical_fixed_batch_copy.hpp → aggregate/physical_partitioned_aggregate.hpp} +25 -27
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_ungrouped_aggregate.hpp +1 -2
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_window.hpp +5 -4
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/ungrouped_aggregate_state.hpp +21 -1
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp +38 -9
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer.hpp +8 -9
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp +7 -1
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_error.hpp +29 -23
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_handle.hpp +15 -13
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_scanner.hpp +13 -5
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_option.hpp +2 -1
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp +24 -10
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_schema.hpp +36 -1
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state.hpp +21 -13
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine.hpp +52 -22
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine_cache.hpp +6 -6
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_validator.hpp +58 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/encode/csv_encoder.hpp +62 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/global_csv_state.hpp +6 -3
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner_boundary.hpp +16 -6
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp +9 -4
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/state_machine_options.hpp +8 -4
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp +55 -10
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_batch_collector.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_buffered_batch_collector.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_limit.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_reservoir_sample.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/join/join_filter_pushdown.hpp +28 -7
- package/src/duckdb/src/include/duckdb/execution/operator/join/perfect_hash_join_executor.hpp +6 -9
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_hash_join.hpp +17 -16
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_iejoin.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/order/physical_order.hpp +7 -3
- package/src/duckdb/src/include/duckdb/execution/operator/order/physical_top_n.hpp +5 -1
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_copy_to_file.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_insert.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_insert.hpp +55 -4
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_update.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/operator/projection/physical_tableinout_function.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_positional_scan.hpp +2 -1
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_table_scan.hpp +10 -9
- package/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_art_index.hpp +16 -13
- package/src/duckdb/src/include/duckdb/execution/operator/set/physical_cte.hpp +0 -4
- package/src/duckdb/src/include/duckdb/execution/partition_info.hpp +79 -0
- package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +20 -9
- package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +1 -11
- package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +0 -2
- package/src/duckdb/src/include/duckdb/execution/progress_data.hpp +58 -0
- package/src/duckdb/src/include/duckdb/execution/radix_partitioned_hashtable.hpp +2 -1
- package/src/duckdb/src/include/duckdb/execution/reservoir_sample.hpp +160 -31
- package/src/duckdb/src/include/duckdb/function/aggregate/distributive_function_utils.hpp +31 -0
- package/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp +61 -10
- package/src/duckdb/src/include/duckdb/{core_functions → function}/aggregate/minmax_n_helpers.hpp +1 -1
- package/src/duckdb/src/include/duckdb/{core_functions → function}/aggregate/sort_key_helpers.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +47 -27
- package/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +2 -0
- package/src/duckdb/src/include/duckdb/function/built_in_functions.hpp +3 -10
- package/src/duckdb/src/include/duckdb/function/cast/bound_cast_data.hpp +13 -6
- package/src/duckdb/src/include/duckdb/function/compression/compression.hpp +15 -0
- package/src/duckdb/src/include/duckdb/function/compression_function.hpp +29 -6
- package/src/duckdb/src/include/duckdb/{core_functions → function}/create_sort_key.hpp +4 -1
- package/src/duckdb/src/include/duckdb/function/encoding_function.hpp +78 -0
- package/src/duckdb/src/include/duckdb/function/function.hpp +22 -1
- package/src/duckdb/src/include/duckdb/function/function_binder.hpp +3 -0
- package/src/duckdb/src/include/duckdb/function/function_list.hpp +39 -0
- package/src/duckdb/src/include/duckdb/function/function_set.hpp +13 -7
- package/src/duckdb/src/include/duckdb/{core_functions → function}/lambda_functions.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/partition_stats.hpp +36 -0
- package/src/duckdb/src/include/duckdb/function/register_function_list_helper.hpp +69 -0
- package/src/duckdb/src/include/duckdb/function/scalar/compressed_materialization_functions.hpp +154 -23
- package/src/duckdb/src/include/duckdb/function/scalar/compressed_materialization_utils.hpp +45 -0
- package/src/duckdb/src/include/duckdb/function/scalar/date_functions.hpp +45 -0
- package/src/duckdb/src/include/duckdb/function/scalar/generic_common.hpp +36 -0
- package/src/duckdb/src/include/duckdb/function/scalar/generic_functions.hpp +32 -23
- package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/scalar/list_functions.hpp +156 -0
- package/src/duckdb/src/include/duckdb/function/scalar/map_functions.hpp +27 -0
- package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +4 -45
- package/src/duckdb/src/include/duckdb/function/scalar/operator_functions.hpp +102 -0
- package/src/duckdb/src/include/duckdb/function/scalar/operators.hpp +2 -16
- package/src/duckdb/src/include/duckdb/function/scalar/sequence_functions.hpp +16 -25
- package/src/duckdb/src/include/duckdb/function/scalar/sequence_utils.hpp +38 -0
- package/src/duckdb/src/include/duckdb/function/scalar/strftime_format.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/string_common.hpp +49 -0
- package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +401 -76
- package/src/duckdb/src/include/duckdb/function/scalar/struct_functions.hpp +63 -0
- package/src/duckdb/src/include/duckdb/function/scalar/struct_utils.hpp +33 -0
- package/src/duckdb/src/include/duckdb/function/scalar/system_functions.hpp +45 -0
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +17 -8
- package/src/duckdb/src/include/duckdb/function/table/arrow/arrow_duck_schema.hpp +59 -6
- package/src/duckdb/src/include/duckdb/function/table/arrow/arrow_type_info.hpp +12 -9
- package/src/duckdb/src/include/duckdb/function/table/arrow/enum/arrow_type_info_type.hpp +2 -0
- package/src/duckdb/src/include/duckdb/function/table/arrow.hpp +18 -13
- package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +7 -4
- package/src/duckdb/src/include/duckdb/function/table/system_functions.hpp +14 -0
- package/src/duckdb/src/include/duckdb/function/table/table_scan.hpp +15 -10
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +94 -18
- package/src/duckdb/src/include/duckdb/{core_functions → function}/to_interval.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/window/window_aggregate_function.hpp +44 -0
- package/src/duckdb/src/include/duckdb/function/window/window_aggregate_states.hpp +56 -0
- package/src/duckdb/src/include/duckdb/function/window/window_aggregator.hpp +194 -0
- package/src/duckdb/src/include/duckdb/function/window/window_boundaries_state.hpp +153 -0
- package/src/duckdb/src/include/duckdb/function/window/window_collection.hpp +146 -0
- package/src/duckdb/src/include/duckdb/function/window/window_constant_aggregator.hpp +38 -0
- package/src/duckdb/src/include/duckdb/function/window/window_custom_aggregator.hpp +32 -0
- package/src/duckdb/src/include/duckdb/function/window/window_distinct_aggregator.hpp +39 -0
- package/src/duckdb/src/include/duckdb/function/window/window_executor.hpp +122 -0
- package/src/duckdb/src/include/duckdb/function/window/window_index_tree.hpp +42 -0
- package/src/duckdb/src/include/duckdb/function/window/window_merge_sort_tree.hpp +108 -0
- package/src/duckdb/src/include/duckdb/function/window/window_naive_aggregator.hpp +33 -0
- package/src/duckdb/src/include/duckdb/function/window/window_rank_function.hpp +63 -0
- package/src/duckdb/src/include/duckdb/function/window/window_rownumber_function.hpp +43 -0
- package/src/duckdb/src/include/duckdb/function/window/window_segment_tree.hpp +31 -0
- package/src/duckdb/src/include/duckdb/function/window/window_shared_expressions.hpp +76 -0
- package/src/duckdb/src/include/duckdb/function/window/window_token_tree.hpp +46 -0
- package/src/duckdb/src/include/duckdb/function/window/window_value_function.hpp +79 -0
- package/src/duckdb/src/include/duckdb/logging/http_logger.hpp +2 -0
- package/src/duckdb/src/include/duckdb/logging/log_manager.hpp +81 -0
- package/src/duckdb/src/include/duckdb/logging/log_storage.hpp +127 -0
- package/src/duckdb/src/include/duckdb/logging/logger.hpp +287 -0
- package/src/duckdb/src/include/duckdb/logging/logging.hpp +83 -0
- package/src/duckdb/src/include/duckdb/main/appender.hpp +41 -18
- package/src/duckdb/src/include/duckdb/main/attached_database.hpp +6 -3
- package/src/duckdb/src/include/duckdb/main/capi/capi_internal.hpp +7 -2
- package/src/duckdb/src/include/duckdb/main/capi/extension_api.hpp +317 -231
- package/src/duckdb/src/include/duckdb/main/client_config.hpp +17 -1
- package/src/duckdb/src/include/duckdb/main/client_context.hpp +28 -6
- package/src/duckdb/src/include/duckdb/main/client_context_file_opener.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/client_context_wrapper.hpp +5 -0
- package/src/duckdb/src/include/duckdb/main/client_data.hpp +3 -2
- package/src/duckdb/src/include/duckdb/main/client_properties.hpp +8 -3
- package/src/duckdb/src/include/duckdb/main/config.hpp +52 -8
- package/src/duckdb/src/include/duckdb/main/connection.hpp +18 -3
- package/src/duckdb/src/include/duckdb/main/database.hpp +8 -7
- package/src/duckdb/src/include/duckdb/main/database_file_opener.hpp +5 -1
- package/src/duckdb/src/include/duckdb/main/database_manager.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/db_instance_cache.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/extension.hpp +8 -2
- package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +548 -9
- package/src/duckdb/src/include/duckdb/main/extension_helper.hpp +18 -0
- package/src/duckdb/src/include/duckdb/main/extension_util.hpp +12 -7
- package/src/duckdb/src/include/duckdb/main/prepared_statement.hpp +3 -3
- package/src/duckdb/src/include/duckdb/main/profiling_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/query_profiler.hpp +8 -4
- package/src/duckdb/src/include/duckdb/main/relation/create_table_relation.hpp +3 -1
- package/src/duckdb/src/include/duckdb/main/relation/delete_relation.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/relation/subquery_relation.hpp +1 -4
- package/src/duckdb/src/include/duckdb/main/relation/table_function_relation.hpp +3 -1
- package/src/duckdb/src/include/duckdb/main/relation/table_relation.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/relation/update_relation.hpp +3 -2
- package/src/duckdb/src/include/duckdb/main/relation/value_relation.hpp +7 -0
- package/src/duckdb/src/include/duckdb/main/relation/view_relation.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/relation/write_parquet_relation.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/relation.hpp +45 -9
- package/src/duckdb/src/include/duckdb/main/secret/secret_storage.hpp +20 -22
- package/src/duckdb/src/include/duckdb/main/settings.hpp +613 -378
- package/src/duckdb/src/include/duckdb/main/table_description.hpp +14 -4
- package/src/duckdb/src/include/duckdb/optimizer/build_probe_side_optimizer.hpp +1 -3
- package/src/duckdb/src/include/duckdb/optimizer/column_lifetime_analyzer.hpp +14 -7
- package/src/duckdb/src/include/duckdb/optimizer/common_aggregate_optimizer.hpp +2 -2
- package/src/duckdb/src/include/duckdb/optimizer/empty_result_pullup.hpp +27 -0
- package/src/duckdb/src/include/duckdb/optimizer/expression_heuristics.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/filter_combiner.hpp +6 -1
- package/src/duckdb/src/include/duckdb/optimizer/filter_pushdown.hpp +2 -0
- package/src/duckdb/src/include/duckdb/optimizer/in_clause_rewriter.hpp +3 -0
- package/src/duckdb/src/include/duckdb/optimizer/join_filter_pushdown_optimizer.hpp +5 -0
- package/src/duckdb/src/include/duckdb/optimizer/join_order/plan_enumerator.hpp +2 -0
- package/src/duckdb/src/include/duckdb/optimizer/join_order/relation_statistics_helper.hpp +2 -2
- package/src/duckdb/src/include/duckdb/optimizer/late_materialization.hpp +45 -0
- package/src/duckdb/src/include/duckdb/optimizer/matcher/expression_matcher.hpp +23 -0
- package/src/duckdb/src/include/duckdb/optimizer/matcher/type_matcher.hpp +18 -0
- package/src/duckdb/src/include/duckdb/optimizer/optimizer.hpp +9 -0
- package/src/duckdb/src/include/duckdb/optimizer/remove_unused_columns.hpp +33 -11
- package/src/duckdb/src/include/duckdb/optimizer/rule/distinct_aggregate_optimizer.hpp +34 -0
- package/src/duckdb/src/include/duckdb/optimizer/sampling_pushdown.hpp +25 -0
- package/src/duckdb/src/include/duckdb/optimizer/statistics_propagator.hpp +3 -1
- package/src/duckdb/src/include/duckdb/optimizer/sum_rewriter.hpp +37 -0
- package/src/duckdb/src/include/duckdb/optimizer/topn_optimizer.hpp +4 -0
- package/src/duckdb/src/include/duckdb/parallel/event.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parallel/pipeline.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parallel/pipeline_executor.hpp +26 -8
- package/src/duckdb/src/include/duckdb/parallel/thread_context.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/base_expression.hpp +51 -3
- package/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp +28 -44
- package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +6 -6
- package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +11 -1
- package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +12 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_scalar_function_info.hpp +3 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +22 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp +3 -4
- package/src/duckdb/src/include/duckdb/parser/parsed_data/comment_on_column_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp +16 -12
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +3 -3
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_type_info.hpp +5 -5
- package/src/duckdb/src/include/duckdb/parser/parsed_data/sample_options.hpp +12 -3
- package/src/duckdb/src/include/duckdb/parser/parser.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/qualified_name.hpp +17 -57
- package/src/duckdb/src/include/duckdb/parser/qualified_name_set.hpp +19 -3
- package/src/duckdb/src/include/duckdb/parser/simplified_token.hpp +2 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +12 -9
- package/src/duckdb/src/include/duckdb/parser/tokens.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +45 -28
- package/src/duckdb/src/include/duckdb/planner/binder.hpp +23 -11
- package/src/duckdb/src/include/duckdb/planner/binding_alias.hpp +44 -0
- package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/collation_binding.hpp +4 -3
- package/src/duckdb/src/include/duckdb/planner/constraints/bound_unique_constraint.hpp +11 -10
- package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +4 -4
- package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +6 -0
- package/src/duckdb/src/include/duckdb/planner/expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/expression_binder/having_binder.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/expression_binder/index_binder.hpp +9 -4
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +8 -2
- package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +1 -2
- package/src/duckdb/src/include/duckdb/planner/filter/dynamic_filter.hpp +48 -0
- package/src/duckdb/src/include/duckdb/planner/filter/in_filter.hpp +37 -0
- package/src/duckdb/src/include/duckdb/planner/filter/optional_filter.hpp +35 -0
- package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/logical_operator_visitor.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_create_index.hpp +9 -9
- package/src/duckdb/src/include/duckdb/planner/operator/logical_filter.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +16 -7
- package/src/duckdb/src/include/duckdb/planner/operator/logical_insert.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_join.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_order.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_top_n.hpp +5 -3
- package/src/duckdb/src/include/duckdb/planner/table_binding.hpp +14 -6
- package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +12 -8
- package/src/duckdb/src/include/duckdb/storage/arena_allocator.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/block_manager.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +82 -26
- package/src/duckdb/src/include/duckdb/storage/buffer/buffer_handle.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/buffer/buffer_pool.hpp +10 -3
- package/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/checkpoint/string_checkpoint_state.hpp +4 -13
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_compress.hpp +14 -15
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_constants.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_compress.hpp +13 -15
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_compress.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/dictionary/analyze.hpp +46 -0
- package/src/duckdb/src/include/duckdb/storage/compression/dictionary/common.hpp +60 -0
- package/src/duckdb/src/include/duckdb/storage/compression/dictionary/compression.hpp +61 -0
- package/src/duckdb/src/include/duckdb/storage/compression/dictionary/decompression.hpp +50 -0
- package/src/duckdb/src/include/duckdb/storage/compression/empty_validity.hpp +100 -0
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_compress.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/roaring/appender.hpp +150 -0
- package/src/duckdb/src/include/duckdb/storage/compression/roaring/roaring.hpp +618 -0
- package/src/duckdb/src/include/duckdb/storage/data_table.hpp +53 -31
- package/src/duckdb/src/include/duckdb/storage/index.hpp +2 -3
- package/src/duckdb/src/include/duckdb/storage/object_cache.hpp +0 -1
- package/src/duckdb/src/include/duckdb/storage/segment/uncompressed.hpp +4 -1
- package/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/statistics/column_statistics.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp +5 -4
- package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats.hpp +16 -1
- package/src/duckdb/src/include/duckdb/storage/statistics/string_stats.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/storage_index.hpp +70 -0
- package/src/duckdb/src/include/duckdb/storage/storage_info.hpp +5 -7
- package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +4 -3
- package/src/duckdb/src/include/duckdb/storage/storage_options.hpp +23 -0
- package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +34 -6
- package/src/duckdb/src/include/duckdb/storage/table/append_state.hpp +2 -0
- package/src/duckdb/src/include/duckdb/storage/table/array_column_data.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +39 -10
- package/src/duckdb/src/include/duckdb/storage/table/column_data_checkpointer.hpp +56 -14
- package/src/duckdb/src/include/duckdb/storage/table/column_segment.hpp +35 -29
- package/src/duckdb/src/include/duckdb/storage/table/delete_state.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +7 -1
- package/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp +19 -6
- package/src/duckdb/src/include/duckdb/storage/table/row_version_manager.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +29 -6
- package/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp +10 -10
- package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +5 -0
- package/src/duckdb/src/include/duckdb/storage/table/table_index_list.hpp +26 -19
- package/src/duckdb/src/include/duckdb/storage/table/table_statistics.hpp +8 -1
- package/src/duckdb/src/include/duckdb/storage/table/update_segment.hpp +16 -14
- package/src/duckdb/src/include/duckdb/storage/table/validity_column_data.hpp +2 -0
- package/src/duckdb/src/include/duckdb/storage/table_io_manager.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/table_storage_info.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/temporary_file_manager.hpp +228 -61
- package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +14 -10
- package/src/duckdb/src/include/duckdb/transaction/commit_state.hpp +3 -1
- package/src/duckdb/src/include/duckdb/transaction/duck_transaction.hpp +3 -2
- package/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +1 -0
- package/src/duckdb/src/include/duckdb/transaction/local_storage.hpp +19 -17
- package/src/duckdb/src/include/duckdb/transaction/rollback_state.hpp +5 -2
- package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +1 -2
- package/src/duckdb/src/include/duckdb/transaction/undo_buffer.hpp +13 -8
- package/src/duckdb/src/include/duckdb/transaction/undo_buffer_allocator.hpp +79 -0
- package/src/duckdb/src/include/duckdb/transaction/update_info.hpp +43 -13
- package/src/duckdb/src/include/duckdb/transaction/wal_write_state.hpp +4 -1
- package/src/duckdb/src/include/duckdb/verification/copied_statement_verifier.hpp +4 -2
- package/src/duckdb/src/include/duckdb/verification/deserialized_statement_verifier.hpp +4 -2
- package/src/duckdb/src/include/duckdb/verification/external_statement_verifier.hpp +4 -2
- package/src/duckdb/src/include/duckdb/verification/fetch_row_verifier.hpp +4 -2
- package/src/duckdb/src/include/duckdb/verification/no_operator_caching_verifier.hpp +4 -2
- package/src/duckdb/src/include/duckdb/verification/parsed_statement_verifier.hpp +4 -2
- package/src/duckdb/src/include/duckdb/verification/prepared_statement_verifier.hpp +7 -3
- package/src/duckdb/src/include/duckdb/verification/statement_verifier.hpp +11 -5
- package/src/duckdb/src/include/duckdb/verification/unoptimized_statement_verifier.hpp +4 -2
- package/src/duckdb/src/include/duckdb.h +424 -41
- package/src/duckdb/src/include/duckdb_extension.h +301 -195
- package/src/duckdb/src/logging/log_manager.cpp +157 -0
- package/src/duckdb/src/logging/log_storage.cpp +209 -0
- package/src/duckdb/src/logging/logger.cpp +211 -0
- package/src/duckdb/src/logging/logging.cpp +42 -0
- package/src/duckdb/src/main/appender.cpp +187 -45
- package/src/duckdb/src/main/attached_database.cpp +16 -8
- package/src/duckdb/src/main/capi/appender-c.cpp +47 -4
- package/src/duckdb/src/main/capi/arrow-c.cpp +9 -4
- package/src/duckdb/src/main/capi/config-c.cpp +17 -4
- package/src/duckdb/src/main/capi/datetime-c.cpp +15 -0
- package/src/duckdb/src/main/capi/duckdb-c.cpp +54 -13
- package/src/duckdb/src/main/capi/duckdb_value-c.cpp +212 -4
- package/src/duckdb/src/main/capi/helper-c.cpp +3 -0
- package/src/duckdb/src/main/capi/prepared-c.cpp +26 -7
- package/src/duckdb/src/main/capi/replacement_scan-c.cpp +1 -1
- package/src/duckdb/src/main/capi/result-c.cpp +3 -0
- package/src/duckdb/src/main/capi/table_description-c.cpp +43 -10
- package/src/duckdb/src/main/capi/threading-c.cpp +4 -4
- package/src/duckdb/src/main/client_context.cpp +125 -51
- package/src/duckdb/src/main/client_context_file_opener.cpp +4 -0
- package/src/duckdb/src/main/client_context_wrapper.cpp +4 -0
- package/src/duckdb/src/main/client_data.cpp +1 -1
- package/src/duckdb/src/main/client_verify.cpp +39 -20
- package/src/duckdb/src/main/config.cpp +266 -74
- package/src/duckdb/src/main/connection.cpp +53 -13
- package/src/duckdb/src/main/database.cpp +39 -18
- package/src/duckdb/src/main/database_manager.cpp +12 -11
- package/src/duckdb/src/main/db_instance_cache.cpp +14 -7
- package/src/duckdb/src/main/extension/extension_helper.cpp +24 -23
- package/src/duckdb/src/main/extension/extension_install.cpp +19 -7
- package/src/duckdb/src/main/extension/extension_load.cpp +91 -41
- package/src/duckdb/src/main/extension/extension_util.cpp +40 -19
- package/src/duckdb/src/main/extension.cpp +20 -11
- package/src/duckdb/src/main/profiling_info.cpp +19 -5
- package/src/duckdb/src/main/query_profiler.cpp +135 -36
- package/src/duckdb/src/main/query_result.cpp +2 -1
- package/src/duckdb/src/main/relation/aggregate_relation.cpp +3 -3
- package/src/duckdb/src/main/relation/create_table_relation.cpp +5 -4
- package/src/duckdb/src/main/relation/create_view_relation.cpp +2 -2
- package/src/duckdb/src/main/relation/cross_product_relation.cpp +2 -2
- package/src/duckdb/src/main/relation/delete_relation.cpp +2 -2
- package/src/duckdb/src/main/relation/delim_get_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/distinct_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/explain_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/filter_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/insert_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/join_relation.cpp +5 -5
- package/src/duckdb/src/main/relation/order_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/projection_relation.cpp +3 -3
- package/src/duckdb/src/main/relation/query_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/read_csv_relation.cpp +58 -20
- package/src/duckdb/src/main/relation/setop_relation.cpp +2 -2
- package/src/duckdb/src/main/relation/subquery_relation.cpp +3 -8
- package/src/duckdb/src/main/relation/table_function_relation.cpp +10 -1
- package/src/duckdb/src/main/relation/table_relation.cpp +19 -3
- package/src/duckdb/src/main/relation/update_relation.cpp +2 -2
- package/src/duckdb/src/main/relation/value_relation.cpp +42 -2
- package/src/duckdb/src/main/relation/view_relation.cpp +8 -2
- package/src/duckdb/src/main/relation/write_csv_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/write_parquet_relation.cpp +1 -1
- package/src/duckdb/src/main/relation.cpp +49 -28
- package/src/duckdb/src/main/secret/secret_manager.cpp +1 -1
- package/src/duckdb/src/main/secret/secret_storage.cpp +6 -4
- package/src/duckdb/src/main/settings/autogenerated_settings.cpp +1102 -0
- package/src/duckdb/src/main/settings/custom_settings.cpp +1343 -0
- package/src/duckdb/src/optimizer/build_probe_side_optimizer.cpp +60 -37
- package/src/duckdb/src/optimizer/column_binding_replacer.cpp +1 -1
- package/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp +126 -72
- package/src/duckdb/src/optimizer/common_aggregate_optimizer.cpp +22 -6
- package/src/duckdb/src/optimizer/compressed_materialization/compress_aggregate.cpp +3 -3
- package/src/duckdb/src/optimizer/compressed_materialization/compress_distinct.cpp +2 -2
- package/src/duckdb/src/optimizer/compressed_materialization.cpp +3 -3
- package/src/duckdb/src/optimizer/cse_optimizer.cpp +7 -7
- package/src/duckdb/src/optimizer/deliminator.cpp +6 -5
- package/src/duckdb/src/optimizer/empty_result_pullup.cpp +96 -0
- package/src/duckdb/src/optimizer/expression_heuristics.cpp +11 -3
- package/src/duckdb/src/optimizer/expression_rewriter.cpp +9 -2
- package/src/duckdb/src/optimizer/filter_combiner.cpp +190 -88
- package/src/duckdb/src/optimizer/filter_pushdown.cpp +6 -5
- package/src/duckdb/src/optimizer/in_clause_rewriter.cpp +25 -9
- package/src/duckdb/src/optimizer/join_filter_pushdown_optimizer.cpp +170 -72
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +5 -4
- package/src/duckdb/src/optimizer/join_order/plan_enumerator.cpp +3 -1
- package/src/duckdb/src/optimizer/join_order/query_graph_manager.cpp +7 -7
- package/src/duckdb/src/optimizer/join_order/relation_manager.cpp +15 -6
- package/src/duckdb/src/optimizer/join_order/relation_statistics_helper.cpp +37 -22
- package/src/duckdb/src/optimizer/late_materialization.cpp +414 -0
- package/src/duckdb/src/optimizer/limit_pushdown.cpp +1 -0
- package/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +30 -2
- package/src/duckdb/src/optimizer/optimizer.cpp +67 -7
- package/src/duckdb/src/optimizer/pullup/pullup_filter.cpp +3 -3
- package/src/duckdb/src/optimizer/pullup/pullup_projection.cpp +2 -2
- package/src/duckdb/src/optimizer/pullup/pullup_set_operation.cpp +1 -1
- package/src/duckdb/src/optimizer/pushdown/pushdown_aggregate.cpp +2 -2
- package/src/duckdb/src/optimizer/pushdown/pushdown_filter.cpp +1 -1
- package/src/duckdb/src/optimizer/pushdown/pushdown_left_join.cpp +1 -1
- package/src/duckdb/src/optimizer/pushdown/pushdown_mark_join.cpp +3 -3
- package/src/duckdb/src/optimizer/pushdown/pushdown_projection.cpp +5 -3
- package/src/duckdb/src/optimizer/pushdown/pushdown_set_operation.cpp +1 -1
- package/src/duckdb/src/optimizer/pushdown/pushdown_unnest.cpp +52 -0
- package/src/duckdb/src/optimizer/pushdown/pushdown_window.cpp +2 -2
- package/src/duckdb/src/optimizer/regex_range_filter.cpp +1 -1
- package/src/duckdb/src/optimizer/remove_duplicate_groups.cpp +1 -1
- package/src/duckdb/src/optimizer/remove_unused_columns.cpp +168 -38
- package/src/duckdb/src/optimizer/rule/arithmetic_simplification.cpp +2 -1
- package/src/duckdb/src/optimizer/rule/comparison_simplification.cpp +8 -5
- package/src/duckdb/src/optimizer/rule/conjunction_simplification.cpp +2 -2
- package/src/duckdb/src/optimizer/rule/constant_folding.cpp +2 -2
- package/src/duckdb/src/optimizer/rule/distinct_aggregate_optimizer.cpp +65 -0
- package/src/duckdb/src/optimizer/rule/distributivity.cpp +2 -2
- package/src/duckdb/src/optimizer/rule/enum_comparison.cpp +2 -1
- package/src/duckdb/src/optimizer/rule/equal_or_null_simplification.cpp +4 -3
- package/src/duckdb/src/optimizer/rule/in_clause_simplification_rule.cpp +3 -3
- package/src/duckdb/src/optimizer/rule/like_optimizations.cpp +3 -1
- package/src/duckdb/src/optimizer/rule/move_constants.cpp +9 -9
- package/src/duckdb/src/optimizer/rule/regex_optimizations.cpp +4 -3
- package/src/duckdb/src/optimizer/rule/timestamp_comparison.cpp +1 -1
- package/src/duckdb/src/optimizer/sampling_pushdown.cpp +24 -0
- package/src/duckdb/src/optimizer/statistics/expression/propagate_comparison.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_conjunction.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_operator.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/operator/propagate_aggregate.cpp +74 -0
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +10 -7
- package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +3 -3
- package/src/duckdb/src/optimizer/statistics/operator/propagate_join.cpp +3 -3
- package/src/duckdb/src/optimizer/statistics/operator/propagate_window.cpp +3 -0
- package/src/duckdb/src/optimizer/sum_rewriter.cpp +174 -0
- package/src/duckdb/src/optimizer/topn_optimizer.cpp +71 -0
- package/src/duckdb/src/optimizer/unnest_rewriter.cpp +5 -5
- package/src/duckdb/src/parallel/event.cpp +4 -0
- package/src/duckdb/src/parallel/executor.cpp +11 -29
- package/src/duckdb/src/parallel/executor_task.cpp +8 -3
- package/src/duckdb/src/parallel/pipeline.cpp +15 -8
- package/src/duckdb/src/parallel/pipeline_executor.cpp +67 -43
- package/src/duckdb/src/parallel/thread_context.cpp +12 -1
- package/src/duckdb/src/parser/column_definition.cpp +3 -3
- package/src/duckdb/src/parser/constraints/unique_constraint.cpp +72 -9
- package/src/duckdb/src/parser/expression/columnref_expression.cpp +15 -3
- package/src/duckdb/src/parser/expression/conjunction_expression.cpp +1 -1
- package/src/duckdb/src/parser/expression/function_expression.cpp +1 -1
- package/src/duckdb/src/parser/expression/lambda_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/lambdaref_expression.cpp +1 -1
- package/src/duckdb/src/parser/expression/star_expression.cpp +46 -2
- package/src/duckdb/src/parser/expression/window_expression.cpp +24 -1
- package/src/duckdb/src/parser/parsed_data/alter_info.cpp +26 -2
- package/src/duckdb/src/parser/parsed_data/alter_scalar_function_info.cpp +5 -3
- package/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +29 -1
- package/src/duckdb/src/parser/parsed_data/attach_info.cpp +6 -6
- package/src/duckdb/src/parser/parsed_data/create_aggregate_function_info.cpp +1 -1
- package/src/duckdb/src/parser/parsed_data/create_function_info.cpp +17 -0
- package/src/duckdb/src/parser/parsed_data/create_index_info.cpp +16 -15
- package/src/duckdb/src/parser/parsed_data/create_macro_info.cpp +1 -1
- package/src/duckdb/src/parser/parsed_data/create_pragma_function_info.cpp +1 -1
- package/src/duckdb/src/parser/parsed_data/create_scalar_function_info.cpp +3 -2
- package/src/duckdb/src/parser/parsed_data/create_schema_info.cpp +1 -1
- package/src/duckdb/src/parser/parsed_data/create_table_function_info.cpp +1 -1
- package/src/duckdb/src/parser/parsed_data/create_table_info.cpp +1 -0
- package/src/duckdb/src/parser/parsed_data/create_type_info.cpp +4 -4
- package/src/duckdb/src/parser/parsed_data/load_info.cpp +1 -0
- package/src/duckdb/src/parser/parsed_data/sample_options.cpp +31 -1
- package/src/duckdb/src/parser/parsed_expression.cpp +1 -1
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +4 -1
- package/src/duckdb/src/parser/parser.cpp +129 -0
- package/src/duckdb/src/parser/qualified_name.cpp +99 -0
- package/src/duckdb/src/parser/query_error_context.cpp +35 -6
- package/src/duckdb/src/parser/query_node/select_node.cpp +4 -4
- package/src/duckdb/src/parser/statement/delete_statement.cpp +6 -1
- package/src/duckdb/src/parser/statement/insert_statement.cpp +4 -3
- package/src/duckdb/src/parser/statement/update_statement.cpp +6 -1
- package/src/duckdb/src/parser/tableref/pivotref.cpp +2 -2
- package/src/duckdb/src/parser/tableref.cpp +2 -2
- package/src/duckdb/src/parser/transform/constraint/transform_constraint.cpp +16 -24
- package/src/duckdb/src/parser/transform/expression/transform_array_access.cpp +1 -1
- package/src/duckdb/src/parser/transform/expression/transform_bool_expr.cpp +5 -5
- package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +61 -13
- package/src/duckdb/src/parser/transform/expression/transform_constant.cpp +10 -4
- package/src/duckdb/src/parser/transform/expression/transform_expression.cpp +2 -2
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +30 -3
- package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +1 -1
- package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +25 -6
- package/src/duckdb/src/parser/transform/helpers/transform_groupby.cpp +1 -1
- package/src/duckdb/src/parser/transform/helpers/transform_sample.cpp +10 -3
- package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +4 -3
- package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +18 -3
- package/src/duckdb/src/parser/transform/statement/transform_comment_on.cpp +1 -1
- package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +0 -1
- package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +5 -5
- package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +26 -12
- package/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +11 -3
- package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +1 -1
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +2 -0
- package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +3 -3
- package/src/duckdb/src/parser/transform/statement/transform_prepare.cpp +4 -4
- package/src/duckdb/src/parser/transform/statement/transform_set.cpp +2 -2
- package/src/duckdb/src/parser/transform/statement/transform_show.cpp +21 -3
- package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +8 -6
- package/src/duckdb/src/parser/transformer.cpp +2 -2
- package/src/duckdb/src/planner/bind_context.cpp +308 -136
- package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +30 -31
- package/src/duckdb/src/planner/binder/expression/bind_between_expression.cpp +4 -2
- package/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +102 -94
- package/src/duckdb/src/planner/binder/expression/bind_comparison_expression.cpp +7 -5
- package/src/duckdb/src/planner/binder/expression/bind_conjunction_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +7 -7
- package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +10 -10
- package/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp +24 -6
- package/src/duckdb/src/planner/binder/expression/bind_operator_expression.cpp +23 -15
- package/src/duckdb/src/planner/binder/expression/bind_parameter_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +97 -19
- package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +74 -16
- package/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp +6 -6
- package/src/duckdb/src/planner/binder/expression/bind_window_expression.cpp +49 -15
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +32 -23
- package/src/duckdb/src/planner/binder/query_node/bind_setop_node.cpp +20 -3
- package/src/duckdb/src/planner/binder/query_node/bind_table_macro_node.cpp +2 -2
- package/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp +3 -0
- package/src/duckdb/src/planner/binder/query_node/plan_setop.cpp +6 -5
- package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +38 -19
- package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +2 -12
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +117 -412
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +423 -144
- package/src/duckdb/src/planner/binder/statement/bind_delete.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +5 -0
- package/src/duckdb/src/planner/binder/statement/bind_execute.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_export.cpp +0 -4
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +31 -13
- package/src/duckdb/src/planner/binder/statement/bind_pragma.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_simple.cpp +96 -27
- package/src/duckdb/src/planner/binder/statement/bind_summarize.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +5 -3
- package/src/duckdb/src/planner/binder/statement/bind_vacuum.cpp +7 -6
- package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +36 -9
- package/src/duckdb/src/planner/binder/tableref/bind_joinref.cpp +34 -34
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +72 -35
- package/src/duckdb/src/planner/binder/tableref/bind_showref.cpp +99 -18
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +23 -11
- package/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp +22 -19
- package/src/duckdb/src/planner/binder.cpp +23 -45
- package/src/duckdb/src/planner/binding_alias.cpp +69 -0
- package/src/duckdb/src/planner/bound_parameter_map.cpp +1 -1
- package/src/duckdb/src/planner/bound_result_modifier.cpp +6 -2
- package/src/duckdb/src/planner/collation_binding.cpp +38 -4
- package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +17 -5
- package/src/duckdb/src/planner/expression/bound_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_function_expression.cpp +8 -1
- package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_window_expression.cpp +24 -4
- package/src/duckdb/src/planner/expression.cpp +7 -1
- package/src/duckdb/src/planner/expression_binder/aggregate_binder.cpp +1 -1
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder/group_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder/having_binder.cpp +16 -0
- package/src/duckdb/src/planner/expression_binder/index_binder.cpp +53 -1
- package/src/duckdb/src/planner/expression_binder/lateral_binder.cpp +3 -3
- package/src/duckdb/src/planner/expression_binder/order_binder.cpp +8 -8
- package/src/duckdb/src/planner/expression_binder/relation_binder.cpp +1 -1
- package/src/duckdb/src/planner/expression_binder/select_bind_state.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder/table_function_binder.cpp +1 -1
- package/src/duckdb/src/planner/expression_binder/update_binder.cpp +1 -1
- package/src/duckdb/src/planner/expression_binder.cpp +7 -7
- package/src/duckdb/src/planner/expression_iterator.cpp +6 -3
- package/src/duckdb/src/planner/filter/constant_filter.cpp +17 -2
- package/src/duckdb/src/planner/filter/dynamic_filter.cpp +68 -0
- package/src/duckdb/src/planner/filter/in_filter.cpp +84 -0
- package/src/duckdb/src/planner/filter/null_filter.cpp +1 -2
- package/src/duckdb/src/planner/filter/optional_filter.cpp +29 -0
- package/src/duckdb/src/planner/filter/struct_filter.cpp +11 -6
- package/src/duckdb/src/planner/joinside.cpp +6 -5
- package/src/duckdb/src/planner/logical_operator.cpp +4 -1
- package/src/duckdb/src/planner/logical_operator_visitor.cpp +68 -2
- package/src/duckdb/src/planner/operator/logical_comparison_join.cpp +23 -0
- package/src/duckdb/src/planner/operator/logical_create_index.cpp +16 -12
- package/src/duckdb/src/planner/operator/logical_filter.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_get.cpp +48 -25
- package/src/duckdb/src/planner/operator/logical_insert.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_join.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_order.cpp +4 -11
- package/src/duckdb/src/planner/operator/logical_top_n.cpp +7 -0
- package/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp +33 -5
- package/src/duckdb/src/planner/subquery/rewrite_correlated_expressions.cpp +2 -2
- package/src/duckdb/src/planner/table_binding.cpp +74 -36
- package/src/duckdb/src/planner/table_filter.cpp +5 -8
- package/src/duckdb/src/storage/arena_allocator.cpp +5 -4
- package/src/duckdb/src/storage/buffer/block_handle.cpp +88 -17
- package/src/duckdb/src/storage/buffer/block_manager.cpp +34 -26
- package/src/duckdb/src/storage/buffer/buffer_handle.cpp +2 -2
- package/src/duckdb/src/storage/buffer/buffer_pool.cpp +70 -49
- package/src/duckdb/src/storage/buffer_manager.cpp +4 -0
- package/src/duckdb/src/storage/checkpoint_manager.cpp +24 -5
- package/src/duckdb/src/storage/compression/bitpacking.cpp +14 -16
- package/src/duckdb/src/storage/compression/dictionary/analyze.cpp +54 -0
- package/src/duckdb/src/storage/compression/dictionary/common.cpp +90 -0
- package/src/duckdb/src/storage/compression/dictionary/compression.cpp +174 -0
- package/src/duckdb/src/storage/compression/dictionary/decompression.cpp +115 -0
- package/src/duckdb/src/storage/compression/dictionary_compression.cpp +53 -545
- package/src/duckdb/src/storage/compression/empty_validity.cpp +15 -0
- package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +25 -16
- package/src/duckdb/src/storage/compression/fsst.cpp +101 -47
- package/src/duckdb/src/storage/compression/numeric_constant.cpp +92 -2
- package/src/duckdb/src/storage/compression/rle.cpp +216 -46
- package/src/duckdb/src/storage/compression/roaring/analyze.cpp +179 -0
- package/src/duckdb/src/storage/compression/roaring/common.cpp +282 -0
- package/src/duckdb/src/storage/compression/roaring/compress.cpp +481 -0
- package/src/duckdb/src/storage/compression/roaring/metadata.cpp +262 -0
- package/src/duckdb/src/storage/compression/roaring/scan.cpp +364 -0
- package/src/duckdb/src/storage/compression/string_uncompressed.cpp +47 -65
- package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +102 -39
- package/src/duckdb/src/storage/compression/zstd.cpp +1049 -0
- package/src/duckdb/src/storage/data_table.cpp +312 -172
- package/src/duckdb/src/storage/local_storage.cpp +104 -46
- package/src/duckdb/src/storage/metadata/metadata_manager.cpp +1 -1
- package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +7 -3
- package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +138 -58
- package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +14 -0
- package/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp +19 -8
- package/src/duckdb/src/storage/serialization/serialize_statement.cpp +2 -0
- package/src/duckdb/src/storage/serialization/serialize_table_filter.cpp +43 -0
- package/src/duckdb/src/storage/serialization/serialize_types.cpp +32 -5
- package/src/duckdb/src/storage/single_file_block_manager.cpp +6 -8
- package/src/duckdb/src/storage/standard_buffer_manager.cpp +82 -71
- package/src/duckdb/src/storage/statistics/column_statistics.cpp +3 -3
- package/src/duckdb/src/storage/statistics/distinct_statistics.cpp +18 -17
- package/src/duckdb/src/storage/statistics/numeric_stats.cpp +34 -22
- package/src/duckdb/src/storage/statistics/string_stats.cpp +14 -3
- package/src/duckdb/src/storage/storage_info.cpp +72 -10
- package/src/duckdb/src/storage/storage_manager.cpp +41 -47
- package/src/duckdb/src/storage/table/array_column_data.cpp +7 -1
- package/src/duckdb/src/storage/table/column_checkpoint_state.cpp +10 -9
- package/src/duckdb/src/storage/table/column_data.cpp +105 -43
- package/src/duckdb/src/storage/table/column_data_checkpointer.cpp +307 -132
- package/src/duckdb/src/storage/table/column_segment.cpp +36 -13
- package/src/duckdb/src/storage/table/list_column_data.cpp +4 -4
- package/src/duckdb/src/storage/table/row_group.cpp +159 -66
- package/src/duckdb/src/storage/table/row_group_collection.cpp +157 -68
- package/src/duckdb/src/storage/table/row_version_manager.cpp +33 -10
- package/src/duckdb/src/storage/table/scan_state.cpp +21 -7
- package/src/duckdb/src/storage/table/standard_column_data.cpp +68 -5
- package/src/duckdb/src/storage/table/struct_column_data.cpp +42 -4
- package/src/duckdb/src/storage/table/table_statistics.cpp +91 -5
- package/src/duckdb/src/storage/table/update_segment.cpp +287 -210
- package/src/duckdb/src/storage/table_index_list.cpp +55 -58
- package/src/duckdb/src/storage/temporary_file_manager.cpp +412 -149
- package/src/duckdb/src/storage/wal_replay.cpp +132 -48
- package/src/duckdb/src/storage/write_ahead_log.cpp +75 -48
- package/src/duckdb/src/transaction/cleanup_state.cpp +0 -1
- package/src/duckdb/src/transaction/commit_state.cpp +23 -14
- package/src/duckdb/src/transaction/duck_transaction.cpp +29 -25
- package/src/duckdb/src/transaction/duck_transaction_manager.cpp +18 -6
- package/src/duckdb/src/transaction/meta_transaction.cpp +3 -2
- package/src/duckdb/src/transaction/rollback_state.cpp +5 -2
- package/src/duckdb/src/transaction/transaction_context.cpp +9 -1
- package/src/duckdb/src/transaction/undo_buffer.cpp +35 -27
- package/src/duckdb/src/transaction/undo_buffer_allocator.cpp +72 -0
- package/src/duckdb/src/transaction/wal_write_state.cpp +12 -10
- package/src/duckdb/src/verification/copied_statement_verifier.cpp +7 -4
- package/src/duckdb/src/verification/deserialized_statement_verifier.cpp +7 -5
- package/src/duckdb/src/verification/external_statement_verifier.cpp +7 -4
- package/src/duckdb/src/verification/fetch_row_verifier.cpp +7 -4
- package/src/duckdb/src/verification/no_operator_caching_verifier.cpp +8 -4
- package/src/duckdb/src/verification/parsed_statement_verifier.cpp +7 -4
- package/src/duckdb/src/verification/prepared_statement_verifier.cpp +16 -12
- package/src/duckdb/src/verification/statement_verifier.cpp +20 -15
- package/src/duckdb/src/verification/unoptimized_statement_verifier.cpp +7 -4
- package/src/duckdb/third_party/fsst/libfsst.hpp +1 -0
- package/src/duckdb/third_party/httplib/httplib.hpp +15 -22
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +4 -2
- package/src/duckdb/third_party/libpg_query/pg_functions.cpp +2 -4
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +14278 -13832
- package/src/duckdb/third_party/parquet/parquet_types.cpp +3410 -1686
- package/src/duckdb/third_party/parquet/parquet_types.h +1585 -1204
- package/src/duckdb/third_party/skiplist/SkipList.h +0 -1
- package/src/duckdb/third_party/snappy/snappy-stubs-internal.h +13 -15
- package/src/duckdb/third_party/zstd/common/debug.cpp +36 -0
- package/src/duckdb/third_party/zstd/common/entropy_common.cpp +173 -49
- package/src/duckdb/third_party/zstd/common/error_private.cpp +11 -3
- package/src/duckdb/third_party/zstd/common/fse_decompress.cpp +126 -97
- package/src/duckdb/third_party/zstd/common/pool.cpp +376 -0
- package/src/duckdb/third_party/zstd/common/threading.cpp +193 -0
- package/src/duckdb/third_party/zstd/common/xxhash.cpp +18 -14
- package/src/duckdb/third_party/zstd/common/zstd_common.cpp +3 -38
- package/src/duckdb/third_party/zstd/compress/fse_compress.cpp +93 -165
- package/src/duckdb/third_party/zstd/compress/hist.cpp +28 -31
- package/src/duckdb/third_party/zstd/compress/huf_compress.cpp +957 -291
- package/src/duckdb/third_party/zstd/compress/zstd_compress.cpp +3988 -1124
- package/src/duckdb/third_party/zstd/compress/zstd_compress_literals.cpp +120 -43
- package/src/duckdb/third_party/zstd/compress/zstd_compress_sequences.cpp +47 -23
- package/src/duckdb/third_party/zstd/compress/zstd_compress_superblock.cpp +274 -424
- package/src/duckdb/third_party/zstd/compress/zstd_double_fast.cpp +403 -153
- package/src/duckdb/third_party/zstd/compress/zstd_fast.cpp +741 -268
- package/src/duckdb/third_party/zstd/compress/zstd_lazy.cpp +1339 -278
- package/src/duckdb/third_party/zstd/compress/zstd_ldm.cpp +334 -222
- package/src/duckdb/third_party/zstd/compress/zstd_opt.cpp +674 -298
- package/src/duckdb/third_party/zstd/compress/zstdmt_compress.cpp +1885 -0
- package/src/duckdb/third_party/zstd/decompress/huf_decompress.cpp +1247 -586
- package/src/duckdb/third_party/zstd/decompress/zstd_ddict.cpp +18 -17
- package/src/duckdb/third_party/zstd/decompress/zstd_decompress.cpp +724 -270
- package/src/duckdb/third_party/zstd/decompress/zstd_decompress_block.cpp +1193 -393
- package/src/duckdb/third_party/zstd/deprecated/zbuff_common.cpp +30 -0
- package/src/duckdb/third_party/zstd/deprecated/zbuff_compress.cpp +171 -0
- package/src/duckdb/third_party/zstd/deprecated/zbuff_decompress.cpp +80 -0
- package/src/duckdb/third_party/zstd/dict/cover.cpp +1271 -0
- package/src/duckdb/third_party/zstd/dict/divsufsort.cpp +1916 -0
- package/src/duckdb/third_party/zstd/dict/fastcover.cpp +775 -0
- package/src/duckdb/third_party/zstd/dict/zdict.cpp +1139 -0
- package/src/duckdb/third_party/zstd/include/zdict.h +473 -0
- package/src/duckdb/third_party/zstd/include/zstd/common/allocations.h +58 -0
- package/src/duckdb/third_party/zstd/include/zstd/common/bits.h +204 -0
- package/src/duckdb/third_party/zstd/include/zstd/common/bitstream.h +88 -85
- package/src/duckdb/third_party/zstd/include/zstd/common/compiler.h +243 -47
- package/src/duckdb/third_party/zstd/include/zstd/common/cpu.h +253 -0
- package/src/duckdb/third_party/zstd/include/zstd/common/debug.h +31 -31
- package/src/duckdb/third_party/zstd/include/zstd/common/error_private.h +94 -6
- package/src/duckdb/third_party/zstd/include/zstd/common/fse.h +424 -64
- package/src/duckdb/third_party/zstd/include/zstd/common/huf.h +255 -70
- package/src/duckdb/third_party/zstd/include/zstd/common/mem.h +125 -85
- package/src/duckdb/third_party/zstd/include/zstd/common/pool.h +84 -0
- package/src/duckdb/third_party/zstd/include/zstd/common/portability_macros.h +158 -0
- package/src/duckdb/third_party/zstd/include/zstd/common/threading.h +152 -0
- package/src/duckdb/third_party/zstd/include/zstd/common/{xxhash.h → xxhash.hpp} +0 -1
- package/src/duckdb/third_party/zstd/include/zstd/common/{xxhash_static.h → xxhash_static.hpp} +1 -1
- package/src/duckdb/third_party/zstd/include/zstd/common/zstd_deps.h +122 -0
- package/src/duckdb/third_party/zstd/include/zstd/common/zstd_internal.h +143 -174
- package/src/duckdb/third_party/zstd/include/zstd/common/zstd_trace.h +159 -0
- package/src/duckdb/third_party/zstd/include/zstd/compress/clevels.h +136 -0
- package/src/duckdb/third_party/zstd/include/zstd/compress/hist.h +4 -4
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_internal.h +631 -220
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_literals.h +17 -7
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_sequences.h +2 -2
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_superblock.h +3 -2
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_cwksp.h +256 -153
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_double_fast.h +16 -3
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_fast.h +4 -3
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_lazy.h +145 -11
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_ldm.h +14 -6
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_ldm_geartab.h +110 -0
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_opt.h +33 -9
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstdmt_compress.h +107 -0
- package/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_ddict.h +4 -3
- package/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_decompress_block.h +20 -6
- package/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_decompress_internal.h +88 -16
- package/src/duckdb/third_party/zstd/include/zstd/deprecated/zbuff.h +214 -0
- package/src/duckdb/third_party/zstd/include/zstd/dict/cover.h +156 -0
- package/src/duckdb/third_party/zstd/include/zstd/dict/divsufsort.h +62 -0
- package/src/duckdb/third_party/zstd/include/zstd.h +2171 -93
- package/src/duckdb/third_party/zstd/include/{zstd/common/zstd_errors.h → zstd_errors.h} +32 -10
- package/src/duckdb/ub_extension_core_functions_aggregate_algebraic.cpp +8 -0
- package/src/duckdb/ub_extension_core_functions_aggregate_distributive.cpp +20 -0
- package/src/duckdb/ub_extension_core_functions_aggregate_holistic.cpp +12 -0
- package/src/duckdb/ub_extension_core_functions_aggregate_nested.cpp +6 -0
- package/src/duckdb/ub_extension_core_functions_aggregate_regression.cpp +14 -0
- package/src/duckdb/ub_extension_core_functions_scalar_array.cpp +4 -0
- package/src/duckdb/ub_extension_core_functions_scalar_bit.cpp +2 -0
- package/src/duckdb/ub_extension_core_functions_scalar_blob.cpp +4 -0
- package/src/duckdb/ub_extension_core_functions_scalar_date.cpp +20 -0
- package/src/duckdb/ub_extension_core_functions_scalar_debug.cpp +2 -0
- package/src/duckdb/ub_extension_core_functions_scalar_enum.cpp +2 -0
- package/src/duckdb/ub_extension_core_functions_scalar_generic.cpp +18 -0
- package/src/duckdb/ub_extension_core_functions_scalar_list.cpp +22 -0
- package/src/duckdb/ub_extension_core_functions_scalar_map.cpp +14 -0
- package/src/duckdb/ub_extension_core_functions_scalar_math.cpp +2 -0
- package/src/duckdb/ub_extension_core_functions_scalar_operators.cpp +2 -0
- package/src/duckdb/ub_extension_core_functions_scalar_random.cpp +4 -0
- package/src/duckdb/ub_extension_core_functions_scalar_string.cpp +48 -0
- package/src/duckdb/ub_extension_core_functions_scalar_struct.cpp +2 -0
- package/src/duckdb/ub_extension_core_functions_scalar_union.cpp +6 -0
- package/src/duckdb/ub_src_common.cpp +4 -0
- package/src/duckdb/ub_src_common_arrow.cpp +3 -1
- package/src/duckdb/ub_src_execution.cpp +0 -6
- package/src/duckdb/ub_src_execution_operator_aggregate.cpp +2 -0
- package/src/duckdb/ub_src_execution_operator_csv_scanner_encode.cpp +2 -0
- package/src/duckdb/ub_src_execution_operator_csv_scanner_util.cpp +2 -0
- package/src/duckdb/ub_src_execution_sample.cpp +4 -0
- package/src/duckdb/ub_src_function.cpp +6 -0
- package/src/duckdb/ub_src_function_aggregate.cpp +0 -2
- package/src/duckdb/ub_src_function_aggregate_distributive.cpp +3 -1
- package/src/duckdb/ub_src_function_scalar.cpp +2 -8
- package/src/duckdb/ub_src_function_scalar_date.cpp +2 -0
- package/src/duckdb/ub_src_function_scalar_generic.cpp +2 -2
- package/src/duckdb/ub_src_function_scalar_map.cpp +2 -0
- package/src/duckdb/ub_src_function_scalar_operator.cpp +8 -0
- package/src/duckdb/ub_src_function_scalar_string.cpp +10 -0
- package/src/duckdb/ub_src_function_scalar_struct.cpp +4 -0
- package/src/duckdb/ub_src_function_scalar_system.cpp +2 -0
- package/src/duckdb/ub_src_function_table_system.cpp +6 -0
- package/src/duckdb/ub_src_function_window.cpp +36 -0
- package/src/duckdb/ub_src_logging.cpp +8 -0
- package/src/duckdb/ub_src_main_settings.cpp +3 -1
- package/src/duckdb/ub_src_optimizer.cpp +8 -0
- package/src/duckdb/ub_src_optimizer_pushdown.cpp +2 -0
- package/src/duckdb/ub_src_optimizer_rule.cpp +2 -0
- package/src/duckdb/ub_src_parser.cpp +2 -0
- package/src/duckdb/ub_src_parser_parsed_data.cpp +2 -0
- package/src/duckdb/ub_src_planner.cpp +2 -0
- package/src/duckdb/ub_src_planner_filter.cpp +6 -0
- package/src/duckdb/ub_src_storage_compression.cpp +4 -0
- package/src/duckdb/ub_src_storage_compression_dictionary.cpp +8 -0
- package/src/duckdb/ub_src_storage_compression_roaring.cpp +10 -0
- package/src/duckdb/ub_src_transaction.cpp +2 -0
- package/vendor.py +1 -1
- package/src/duckdb/extension/json/yyjson/include/yyjson.hpp +0 -6003
- package/src/duckdb/extension/json/yyjson/yyjson.cpp +0 -8218
- package/src/duckdb/src/common/arrow/appender/list_data.cpp +0 -78
- package/src/duckdb/src/common/arrow/appender/map_data.cpp +0 -91
- package/src/duckdb/src/common/cycle_counter.cpp +0 -76
- package/src/duckdb/src/common/field_writer.cpp +0 -97
- package/src/duckdb/src/common/http_state.cpp +0 -95
- package/src/duckdb/src/common/preserved_error.cpp +0 -87
- package/src/duckdb/src/common/row_operations/row_match.cpp +0 -359
- package/src/duckdb/src/common/serializer/buffered_deserializer.cpp +0 -27
- package/src/duckdb/src/common/serializer/buffered_serializer.cpp +0 -36
- package/src/duckdb/src/common/serializer/format_serializer.cpp +0 -15
- package/src/duckdb/src/common/serializer.cpp +0 -24
- package/src/duckdb/src/common/types/chunk_collection.cpp +0 -190
- package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +0 -183
- package/src/duckdb/src/core_functions/scalar/date/current.cpp +0 -54
- package/src/duckdb/src/core_functions/scalar/list/list_cosine_similarity.cpp +0 -78
- package/src/duckdb/src/core_functions/scalar/list/list_inner_product.cpp +0 -70
- package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +0 -412
- package/src/duckdb/src/core_functions/scalar/secret/which_secret.cpp +0 -28
- package/src/duckdb/src/core_functions/scalar/string/jaro_winkler.cpp +0 -71
- package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +0 -238
- package/src/duckdb/src/execution/index/art/node16.cpp +0 -196
- package/src/duckdb/src/execution/index/art/node4.cpp +0 -189
- package/src/duckdb/src/execution/index/unknown_index.cpp +0 -65
- package/src/duckdb/src/execution/operator/csv_scanner/base_csv_reader.cpp +0 -595
- package/src/duckdb/src/execution/operator/csv_scanner/buffered_csv_reader.cpp +0 -434
- package/src/duckdb/src/execution/operator/csv_scanner/csv_buffer.cpp +0 -89
- package/src/duckdb/src/execution/operator/csv_scanner/csv_buffer_manager.cpp +0 -90
- package/src/duckdb/src/execution/operator/csv_scanner/csv_file_handle.cpp +0 -95
- package/src/duckdb/src/execution/operator/csv_scanner/csv_reader_options.cpp +0 -494
- package/src/duckdb/src/execution/operator/csv_scanner/csv_state_machine.cpp +0 -35
- package/src/duckdb/src/execution/operator/csv_scanner/csv_state_machine_cache.cpp +0 -99
- package/src/duckdb/src/execution/operator/csv_scanner/parallel_csv_reader.cpp +0 -689
- package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +0 -242
- package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +0 -695
- package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +0 -1487
- package/src/duckdb/src/execution/operator/persistent/csv_buffer.cpp +0 -72
- package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +0 -158
- package/src/duckdb/src/execution/operator/persistent/csv_reader_options.cpp +0 -280
- package/src/duckdb/src/execution/operator/persistent/parallel_csv_reader.cpp +0 -666
- package/src/duckdb/src/execution/operator/persistent/physical_fixed_batch_copy.cpp +0 -499
- package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +0 -207
- package/src/duckdb/src/execution/partitionable_hashtable.cpp +0 -207
- package/src/duckdb/src/execution/physical_plan/plan_limit_percent.cpp +0 -18
- package/src/duckdb/src/execution/physical_plan/plan_show_select.cpp +0 -47
- package/src/duckdb/src/execution/reservoir_sample.cpp +0 -324
- package/src/duckdb/src/execution/window_executor.cpp +0 -1830
- package/src/duckdb/src/execution/window_segment_tree.cpp +0 -2073
- package/src/duckdb/src/extension_forward_decl/icu.cpp +0 -59
- package/src/duckdb/src/function/aggregate/distributive_functions.cpp +0 -15
- package/src/duckdb/src/function/scalar/compressed_materialization_functions.cpp +0 -29
- package/src/duckdb/src/function/scalar/generic_functions.cpp +0 -11
- package/src/duckdb/src/function/scalar/list/list_concat.cpp +0 -143
- package/src/duckdb/src/function/scalar/operators.cpp +0 -14
- package/src/duckdb/src/function/scalar/sequence_functions.cpp +0 -10
- package/src/duckdb/src/function/scalar/string_functions.cpp +0 -22
- package/src/duckdb/src/function/table/pragma_detailed_profiling_output.cpp +0 -173
- package/src/duckdb/src/function/table/pragma_last_profiling_output.cpp +0 -101
- package/src/duckdb/src/include/duckdb/catalog/mapping_value.hpp +0 -92
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_types_extension.hpp +0 -42
- package/src/duckdb/src/include/duckdb/common/cycle_counter.hpp +0 -68
- package/src/duckdb/src/include/duckdb/common/enums/index_type.hpp +0 -34
- package/src/duckdb/src/include/duckdb/common/http_state.hpp +0 -113
- package/src/duckdb/src/include/duckdb/common/platform.h +0 -58
- package/src/duckdb/src/include/duckdb/common/preserved_error.hpp +0 -59
- package/src/duckdb/src/include/duckdb/common/serializer/deserialization_data.hpp +0 -192
- package/src/duckdb/src/include/duckdb/common/types/chunk_collection.hpp +0 -137
- package/src/duckdb/src/include/duckdb/execution/index/art/node16.hpp +0 -65
- package/src/duckdb/src/include/duckdb/execution/index/art/node4.hpp +0 -63
- package/src/duckdb/src/include/duckdb/execution/index/unknown_index.hpp +0 -65
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/buffer_manager/csv_buffer.hpp +0 -103
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.hpp +0 -74
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/buffer_manager/csv_file_handle.hpp +0 -60
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_sniffer.hpp +0 -253
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/options/csv_option.hpp +0 -155
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/options/csv_reader_options.hpp +0 -163
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/options/state_machine_options.hpp +0 -35
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner/base_scanner.hpp +0 -228
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner/column_count_scanner.hpp +0 -70
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner/scanner_boundary.hpp +0 -93
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner/skip_scanner.hpp +0 -60
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner/string_value_scanner.hpp +0 -197
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/quote_rules.hpp +0 -21
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/state_machine/csv_state.hpp +0 -30
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/state_machine/csv_state_machine.hpp +0 -99
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.hpp +0 -87
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/table_function/csv_file_scanner.hpp +0 -70
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/table_function/global_csv_state.hpp +0 -80
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/util/csv_casting.hpp +0 -137
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/util/csv_error.hpp +0 -104
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_index_join.hpp +0 -79
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/base_csv_reader.hpp +0 -119
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/buffered_csv_reader.hpp +0 -72
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_buffer.hpp +0 -110
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_buffer_manager.hpp +0 -103
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_file_handle.hpp +0 -59
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_line_info.hpp +0 -46
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_reader_options.hpp +0 -210
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_sniffer.hpp +0 -131
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_state.hpp +0 -28
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_state_machine.hpp +0 -70
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_state_machine_cache.hpp +0 -65
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/parallel_csv_reader.hpp +0 -167
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/quote_rules.hpp +0 -21
- package/src/duckdb/src/include/duckdb/execution/window_executor.hpp +0 -343
- package/src/duckdb/src/include/duckdb/execution/window_segment_tree.hpp +0 -165
- package/src/duckdb/src/include/duckdb/optimizer/column_lifetime_optimizer.hpp +0 -45
- package/src/duckdb/src/include/duckdb/optimizer/join_order/estimated_properties.hpp +0 -57
- package/src/duckdb/src/include/duckdb/parser/parsed_data/comment_on_info.hpp +0 -45
- package/src/duckdb/src/include/duckdb/parser/statement/show_statement.hpp +0 -32
- package/src/duckdb/src/include/duckdb/planner/operator/logical_limit_percent.hpp +0 -49
- package/src/duckdb/src/include/duckdb/planner/operator/logical_show.hpp +0 -42
- package/src/duckdb/src/main/settings/settings.cpp +0 -2056
- package/src/duckdb/src/optimizer/join_order/estimated_properties.cpp +0 -36
- package/src/duckdb/src/parser/parsed_data/comment_on_info.cpp +0 -19
- package/src/duckdb/src/parser/statement/show_statement.cpp +0 -15
- package/src/duckdb/src/planner/binder/statement/bind_show.cpp +0 -30
- package/src/duckdb/src/planner/operator/logical_limit_percent.cpp +0 -14
- package/src/duckdb/src/storage/statistics/numeric_stats_union.cpp +0 -70
- package/src/duckdb/third_party/fsst/fsst_avx512.cpp +0 -140
- package/src/duckdb/third_party/fsst/fsst_avx512.inc +0 -57
- package/src/duckdb/third_party/fsst/fsst_avx512_unroll1.inc +0 -57
- package/src/duckdb/third_party/fsst/fsst_avx512_unroll2.inc +0 -114
- package/src/duckdb/third_party/fsst/fsst_avx512_unroll3.inc +0 -171
- package/src/duckdb/third_party/fsst/fsst_avx512_unroll4.inc +0 -228
- package/src/duckdb/third_party/parquet/parquet_constants.cpp +0 -17
- package/src/duckdb/third_party/parquet/parquet_constants.h +0 -24
- package/src/duckdb/third_party/re2/util/pod_array.h +0 -55
- package/src/duckdb/third_party/re2/util/sparse_array.h +0 -392
- package/src/duckdb/third_party/re2/util/sparse_set.h +0 -264
- package/src/duckdb/third_party/zstd/include/zstd/common/fse_static.h +0 -421
- package/src/duckdb/third_party/zstd/include/zstd/common/huf_static.h +0 -238
- package/src/duckdb/third_party/zstd/include/zstd_static.h +0 -1070
- package/src/duckdb/ub_src_core_functions.cpp +0 -6
- package/src/duckdb/ub_src_core_functions_aggregate_algebraic.cpp +0 -8
- package/src/duckdb/ub_src_core_functions_aggregate_distributive.cpp +0 -24
- package/src/duckdb/ub_src_core_functions_aggregate_holistic.cpp +0 -12
- package/src/duckdb/ub_src_core_functions_aggregate_nested.cpp +0 -6
- package/src/duckdb/ub_src_core_functions_aggregate_regression.cpp +0 -14
- package/src/duckdb/ub_src_core_functions_scalar_array.cpp +0 -4
- package/src/duckdb/ub_src_core_functions_scalar_bit.cpp +0 -2
- package/src/duckdb/ub_src_core_functions_scalar_blob.cpp +0 -6
- package/src/duckdb/ub_src_core_functions_scalar_date.cpp +0 -22
- package/src/duckdb/ub_src_core_functions_scalar_debug.cpp +0 -2
- package/src/duckdb/ub_src_core_functions_scalar_enum.cpp +0 -2
- package/src/duckdb/ub_src_core_functions_scalar_generic.cpp +0 -18
- package/src/duckdb/ub_src_core_functions_scalar_list.cpp +0 -22
- package/src/duckdb/ub_src_core_functions_scalar_map.cpp +0 -16
- package/src/duckdb/ub_src_core_functions_scalar_math.cpp +0 -2
- package/src/duckdb/ub_src_core_functions_scalar_operators.cpp +0 -2
- package/src/duckdb/ub_src_core_functions_scalar_random.cpp +0 -4
- package/src/duckdb/ub_src_core_functions_scalar_secret.cpp +0 -2
- package/src/duckdb/ub_src_core_functions_scalar_string.cpp +0 -58
- package/src/duckdb/ub_src_core_functions_scalar_struct.cpp +0 -4
- package/src/duckdb/ub_src_core_functions_scalar_union.cpp +0 -6
- package/src/duckdb/ub_src_execution_operator_csv_scanner.cpp +0 -18
- package/src/duckdb/ub_src_function_scalar_operators.cpp +0 -8
- /package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/algebraic/covar.hpp +0 -0
- /package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/algebraic/stddev.hpp +0 -0
- /package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/aggregate/sum_helpers.hpp +0 -0
- /package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/array_kernels.hpp +0 -0
- /package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/function_list.hpp +0 -0
- /package/src/duckdb/{src/include/duckdb → extension/core_functions/include}/core_functions/scalar/secret_functions.hpp +0 -0
- /package/src/duckdb/src/function/scalar/{operators → operator}/multiply.cpp +0 -0
- /package/src/duckdb/src/function/scalar/{operators → operator}/subtract.cpp +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* Autogenerated by Thrift Compiler (0.
|
2
|
+
* Autogenerated by Thrift Compiler (0.21.0)
|
3
3
|
*
|
4
4
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
5
5
|
* @generated
|
@@ -9,20 +9,27 @@
|
|
9
9
|
|
10
10
|
#include <iosfwd>
|
11
11
|
|
12
|
-
#include
|
12
|
+
#include <thrift/Thrift.h>
|
13
|
+
#include <thrift/TApplicationException.h>
|
14
|
+
#include <thrift/TBase.h>
|
15
|
+
#include <thrift/protocol/TProtocol.h>
|
16
|
+
#include <thrift/transport/TTransport.h>
|
13
17
|
|
14
|
-
#include
|
15
|
-
#include
|
16
|
-
#include "thrift/TBase.h"
|
17
|
-
#include "thrift/protocol/TProtocol.h"
|
18
|
-
#include "thrift/transport/TTransport.h"
|
18
|
+
#include <functional>
|
19
|
+
#include <memory>
|
19
20
|
|
20
|
-
#include "thrift/stdcxx.h"
|
21
21
|
|
22
22
|
#include "windows_compatibility.h"
|
23
|
+
namespace apache = duckdb_apache;
|
23
24
|
|
24
|
-
namespace duckdb_parquet {
|
25
|
+
namespace duckdb_parquet {
|
25
26
|
|
27
|
+
/**
|
28
|
+
* Types supported by Parquet. These types are intended to be used in combination
|
29
|
+
* with the encodings to control the on disk storage format.
|
30
|
+
* For example INT16 is not included as a type since a good encoding of INT32
|
31
|
+
* would handle this.
|
32
|
+
*/
|
26
33
|
struct Type {
|
27
34
|
enum type {
|
28
35
|
BOOLEAN = 0,
|
@@ -36,66 +43,263 @@ struct Type {
|
|
36
43
|
};
|
37
44
|
};
|
38
45
|
|
46
|
+
extern const std::map<int, const char*> _Type_VALUES_TO_NAMES;
|
47
|
+
|
39
48
|
std::ostream& operator<<(std::ostream& out, const Type::type& val);
|
40
49
|
|
50
|
+
std::string to_string(const Type::type& val);
|
51
|
+
|
52
|
+
/**
|
53
|
+
* DEPRECATED: Common types used by frameworks(e.g. hive, pig) using parquet.
|
54
|
+
* ConvertedType is superseded by LogicalType. This enum should not be extended.
|
55
|
+
*
|
56
|
+
* See LogicalTypes.md for conversion between ConvertedType and LogicalType.
|
57
|
+
*/
|
41
58
|
struct ConvertedType {
|
42
59
|
enum type {
|
60
|
+
/**
|
61
|
+
* a BYTE_ARRAY actually contains UTF8 encoded chars
|
62
|
+
*/
|
43
63
|
UTF8 = 0,
|
64
|
+
/**
|
65
|
+
* a map is converted as an optional field containing a repeated key/value pair
|
66
|
+
*/
|
44
67
|
MAP = 1,
|
68
|
+
/**
|
69
|
+
* a key/value pair is converted into a group of two fields
|
70
|
+
*/
|
45
71
|
MAP_KEY_VALUE = 2,
|
72
|
+
/**
|
73
|
+
* a list is converted into an optional field containing a repeated field for its
|
74
|
+
* values
|
75
|
+
*/
|
46
76
|
LIST = 3,
|
77
|
+
/**
|
78
|
+
* an enum is converted into a BYTE_ARRAY field
|
79
|
+
*/
|
47
80
|
ENUM = 4,
|
81
|
+
/**
|
82
|
+
* A decimal value.
|
83
|
+
*
|
84
|
+
* This may be used to annotate BYTE_ARRAY or FIXED_LEN_BYTE_ARRAY primitive
|
85
|
+
* types. The underlying byte array stores the unscaled value encoded as two's
|
86
|
+
* complement using big-endian byte order (the most significant byte is the
|
87
|
+
* zeroth element). The value of the decimal is the value * 10^{-scale}.
|
88
|
+
*
|
89
|
+
* This must be accompanied by a (maximum) precision and a scale in the
|
90
|
+
* SchemaElement. The precision specifies the number of digits in the decimal
|
91
|
+
* and the scale stores the location of the decimal point. For example 1.23
|
92
|
+
* would have precision 3 (3 total digits) and scale 2 (the decimal point is
|
93
|
+
* 2 digits over).
|
94
|
+
*/
|
48
95
|
DECIMAL = 5,
|
96
|
+
/**
|
97
|
+
* A Date
|
98
|
+
*
|
99
|
+
* Stored as days since Unix epoch, encoded as the INT32 physical type.
|
100
|
+
*
|
101
|
+
*/
|
49
102
|
DATE = 6,
|
103
|
+
/**
|
104
|
+
* A time
|
105
|
+
*
|
106
|
+
* The total number of milliseconds since midnight. The value is stored
|
107
|
+
* as an INT32 physical type.
|
108
|
+
*/
|
50
109
|
TIME_MILLIS = 7,
|
110
|
+
/**
|
111
|
+
* A time.
|
112
|
+
*
|
113
|
+
* The total number of microseconds since midnight. The value is stored as
|
114
|
+
* an INT64 physical type.
|
115
|
+
*/
|
51
116
|
TIME_MICROS = 8,
|
117
|
+
/**
|
118
|
+
* A date/time combination
|
119
|
+
*
|
120
|
+
* Date and time recorded as milliseconds since the Unix epoch. Recorded as
|
121
|
+
* a physical type of INT64.
|
122
|
+
*/
|
52
123
|
TIMESTAMP_MILLIS = 9,
|
124
|
+
/**
|
125
|
+
* A date/time combination
|
126
|
+
*
|
127
|
+
* Date and time recorded as microseconds since the Unix epoch. The value is
|
128
|
+
* stored as an INT64 physical type.
|
129
|
+
*/
|
53
130
|
TIMESTAMP_MICROS = 10,
|
131
|
+
/**
|
132
|
+
* An unsigned integer value.
|
133
|
+
*
|
134
|
+
* The number describes the maximum number of meaningful data bits in
|
135
|
+
* the stored value. 8, 16 and 32 bit values are stored using the
|
136
|
+
* INT32 physical type. 64 bit values are stored using the INT64
|
137
|
+
* physical type.
|
138
|
+
*
|
139
|
+
*/
|
54
140
|
UINT_8 = 11,
|
55
141
|
UINT_16 = 12,
|
56
142
|
UINT_32 = 13,
|
57
143
|
UINT_64 = 14,
|
144
|
+
/**
|
145
|
+
* A signed integer value.
|
146
|
+
*
|
147
|
+
* The number describes the maximum number of meaningful data bits in
|
148
|
+
* the stored value. 8, 16 and 32 bit values are stored using the
|
149
|
+
* INT32 physical type. 64 bit values are stored using the INT64
|
150
|
+
* physical type.
|
151
|
+
*
|
152
|
+
*/
|
58
153
|
INT_8 = 15,
|
59
154
|
INT_16 = 16,
|
60
155
|
INT_32 = 17,
|
61
156
|
INT_64 = 18,
|
157
|
+
/**
|
158
|
+
* An embedded JSON document
|
159
|
+
*
|
160
|
+
* A JSON document embedded within a single UTF8 column.
|
161
|
+
*/
|
62
162
|
JSON = 19,
|
163
|
+
/**
|
164
|
+
* An embedded BSON document
|
165
|
+
*
|
166
|
+
* A BSON document embedded within a single BYTE_ARRAY column.
|
167
|
+
*/
|
63
168
|
BSON = 20,
|
64
|
-
|
65
|
-
|
169
|
+
/**
|
170
|
+
* An interval of time
|
171
|
+
*
|
172
|
+
* This type annotates data stored as a FIXED_LEN_BYTE_ARRAY of length 12
|
173
|
+
* This data is composed of three separate little endian unsigned
|
174
|
+
* integers. Each stores a component of a duration of time. The first
|
175
|
+
* integer identifies the number of months associated with the duration,
|
176
|
+
* the second identifies the number of days associated with the duration
|
177
|
+
* and the third identifies the number of milliseconds associated with
|
178
|
+
* the provided duration. This duration of time is independent of any
|
179
|
+
* particular timezone or date.
|
180
|
+
*/
|
181
|
+
INTERVAL = 21
|
66
182
|
};
|
67
183
|
};
|
68
184
|
|
185
|
+
extern const std::map<int, const char*> _ConvertedType_VALUES_TO_NAMES;
|
186
|
+
|
69
187
|
std::ostream& operator<<(std::ostream& out, const ConvertedType::type& val);
|
70
188
|
|
189
|
+
std::string to_string(const ConvertedType::type& val);
|
190
|
+
|
191
|
+
/**
|
192
|
+
* Representation of Schemas
|
193
|
+
*/
|
71
194
|
struct FieldRepetitionType {
|
72
195
|
enum type {
|
196
|
+
/**
|
197
|
+
* This field is required (can not be null) and each row has exactly 1 value.
|
198
|
+
*/
|
73
199
|
REQUIRED = 0,
|
200
|
+
/**
|
201
|
+
* The field is optional (can be null) and each row has 0 or 1 values.
|
202
|
+
*/
|
74
203
|
OPTIONAL = 1,
|
204
|
+
/**
|
205
|
+
* The field is repeated and can contain 0 or more values
|
206
|
+
*/
|
75
207
|
REPEATED = 2
|
76
208
|
};
|
77
209
|
};
|
78
210
|
|
211
|
+
extern const std::map<int, const char*> _FieldRepetitionType_VALUES_TO_NAMES;
|
212
|
+
|
79
213
|
std::ostream& operator<<(std::ostream& out, const FieldRepetitionType::type& val);
|
80
214
|
|
215
|
+
std::string to_string(const FieldRepetitionType::type& val);
|
216
|
+
|
217
|
+
/**
|
218
|
+
* Encodings supported by Parquet. Not all encodings are valid for all types. These
|
219
|
+
* enums are also used to specify the encoding of definition and repetition levels.
|
220
|
+
* See the accompanying doc for the details of the more complicated encodings.
|
221
|
+
*/
|
81
222
|
struct Encoding {
|
82
223
|
enum type {
|
224
|
+
/**
|
225
|
+
* Default encoding.
|
226
|
+
* BOOLEAN - 1 bit per value. 0 is false; 1 is true.
|
227
|
+
* INT32 - 4 bytes per value. Stored as little-endian.
|
228
|
+
* INT64 - 8 bytes per value. Stored as little-endian.
|
229
|
+
* FLOAT - 4 bytes per value. IEEE. Stored as little-endian.
|
230
|
+
* DOUBLE - 8 bytes per value. IEEE. Stored as little-endian.
|
231
|
+
* BYTE_ARRAY - 4 byte length stored as little endian, followed by bytes.
|
232
|
+
* FIXED_LEN_BYTE_ARRAY - Just the bytes.
|
233
|
+
*/
|
83
234
|
PLAIN = 0,
|
235
|
+
/**
|
236
|
+
* Deprecated: Dictionary encoding. The values in the dictionary are encoded in the
|
237
|
+
* plain type.
|
238
|
+
* in a data page use RLE_DICTIONARY instead.
|
239
|
+
* in a Dictionary page use PLAIN instead
|
240
|
+
*/
|
84
241
|
PLAIN_DICTIONARY = 2,
|
242
|
+
/**
|
243
|
+
* Group packed run length encoding. Usable for definition/repetition levels
|
244
|
+
* encoding and Booleans (on one bit: 0 is false; 1 is true.)
|
245
|
+
*/
|
85
246
|
RLE = 3,
|
247
|
+
/**
|
248
|
+
* Bit packed encoding. This can only be used if the data has a known max
|
249
|
+
* width. Usable for definition/repetition levels encoding.
|
250
|
+
*/
|
86
251
|
BIT_PACKED = 4,
|
252
|
+
/**
|
253
|
+
* Delta encoding for integers. This can be used for int columns and works best
|
254
|
+
* on sorted data
|
255
|
+
*/
|
87
256
|
DELTA_BINARY_PACKED = 5,
|
257
|
+
/**
|
258
|
+
* Encoding for byte arrays to separate the length values and the data. The lengths
|
259
|
+
* are encoded using DELTA_BINARY_PACKED
|
260
|
+
*/
|
88
261
|
DELTA_LENGTH_BYTE_ARRAY = 6,
|
262
|
+
/**
|
263
|
+
* Incremental-encoded byte array. Prefix lengths are encoded using DELTA_BINARY_PACKED.
|
264
|
+
* Suffixes are stored as delta length byte arrays.
|
265
|
+
*/
|
89
266
|
DELTA_BYTE_ARRAY = 7,
|
267
|
+
/**
|
268
|
+
* Dictionary encoding: the ids are encoded using the RLE encoding
|
269
|
+
*/
|
90
270
|
RLE_DICTIONARY = 8,
|
91
|
-
|
271
|
+
/**
|
272
|
+
* Encoding for fixed-width data (FLOAT, DOUBLE, INT32, INT64, FIXED_LEN_BYTE_ARRAY).
|
273
|
+
* K byte-streams are created where K is the size in bytes of the data type.
|
274
|
+
* The individual bytes of a value are scattered to the corresponding stream and
|
275
|
+
* the streams are concatenated.
|
276
|
+
* This itself does not reduce the size of the data but can lead to better compression
|
277
|
+
* afterwards.
|
278
|
+
*
|
279
|
+
* Added in 2.8 for FLOAT and DOUBLE.
|
280
|
+
* Support for INT32, INT64 and FIXED_LEN_BYTE_ARRAY added in 2.11.
|
281
|
+
*/
|
282
|
+
BYTE_STREAM_SPLIT = 9
|
92
283
|
};
|
93
284
|
};
|
94
285
|
|
286
|
+
extern const std::map<int, const char*> _Encoding_VALUES_TO_NAMES;
|
287
|
+
|
95
288
|
std::ostream& operator<<(std::ostream& out, const Encoding::type& val);
|
96
289
|
|
290
|
+
std::string to_string(const Encoding::type& val);
|
291
|
+
|
292
|
+
/**
|
293
|
+
* Supported compression algorithms.
|
294
|
+
*
|
295
|
+
* Codecs added in format version X.Y can be read by readers based on X.Y and later.
|
296
|
+
* Codec support may vary between readers based on the format version and
|
297
|
+
* libraries available at runtime.
|
298
|
+
*
|
299
|
+
* See Compression.md for a detailed specification of these algorithms.
|
300
|
+
*/
|
97
301
|
struct CompressionCodec {
|
98
|
-
enum type
|
302
|
+
enum type {
|
99
303
|
UNCOMPRESSED = 0,
|
100
304
|
SNAPPY = 1,
|
101
305
|
GZIP = 2,
|
@@ -103,12 +307,16 @@ struct CompressionCodec {
|
|
103
307
|
BROTLI = 4,
|
104
308
|
LZ4 = 5,
|
105
309
|
ZSTD = 6,
|
106
|
-
|
310
|
+
LZ4_RAW = 7
|
107
311
|
};
|
108
312
|
};
|
109
313
|
|
314
|
+
extern const std::map<int, const char*> _CompressionCodec_VALUES_TO_NAMES;
|
315
|
+
|
110
316
|
std::ostream& operator<<(std::ostream& out, const CompressionCodec::type& val);
|
111
317
|
|
318
|
+
std::string to_string(const CompressionCodec::type& val);
|
319
|
+
|
112
320
|
struct PageType {
|
113
321
|
enum type {
|
114
322
|
DATA_PAGE = 0,
|
@@ -118,8 +326,16 @@ struct PageType {
|
|
118
326
|
};
|
119
327
|
};
|
120
328
|
|
329
|
+
extern const std::map<int, const char*> _PageType_VALUES_TO_NAMES;
|
330
|
+
|
121
331
|
std::ostream& operator<<(std::ostream& out, const PageType::type& val);
|
122
332
|
|
333
|
+
std::string to_string(const PageType::type& val);
|
334
|
+
|
335
|
+
/**
|
336
|
+
* Enum to annotate whether lists of min/max elements inside ColumnIndex
|
337
|
+
* are ordered and if so, in which direction.
|
338
|
+
*/
|
123
339
|
struct BoundaryOrder {
|
124
340
|
enum type {
|
125
341
|
UNORDERED = 0,
|
@@ -128,8 +344,14 @@ struct BoundaryOrder {
|
|
128
344
|
};
|
129
345
|
};
|
130
346
|
|
347
|
+
extern const std::map<int, const char*> _BoundaryOrder_VALUES_TO_NAMES;
|
348
|
+
|
131
349
|
std::ostream& operator<<(std::ostream& out, const BoundaryOrder::type& val);
|
132
350
|
|
351
|
+
std::string to_string(const BoundaryOrder::type& val);
|
352
|
+
|
353
|
+
class SizeStatistics;
|
354
|
+
|
133
355
|
class Statistics;
|
134
356
|
|
135
357
|
class StringType;
|
@@ -144,6 +366,8 @@ class EnumType;
|
|
144
366
|
|
145
367
|
class DateType;
|
146
368
|
|
369
|
+
class Float16Type;
|
370
|
+
|
147
371
|
class NullType;
|
148
372
|
|
149
373
|
class DecimalType;
|
@@ -178,6 +402,20 @@ class DictionaryPageHeader;
|
|
178
402
|
|
179
403
|
class DataPageHeaderV2;
|
180
404
|
|
405
|
+
class SplitBlockAlgorithm;
|
406
|
+
|
407
|
+
class BloomFilterAlgorithm;
|
408
|
+
|
409
|
+
class XxHash;
|
410
|
+
|
411
|
+
class BloomFilterHash;
|
412
|
+
|
413
|
+
class Uncompressed;
|
414
|
+
|
415
|
+
class BloomFilterCompression;
|
416
|
+
|
417
|
+
class BloomFilterHeader;
|
418
|
+
|
181
419
|
class PageHeader;
|
182
420
|
|
183
421
|
class KeyValue;
|
@@ -218,31 +456,159 @@ class FileMetaData;
|
|
218
456
|
|
219
457
|
class FileCryptoMetaData;
|
220
458
|
|
459
|
+
typedef struct _SizeStatistics__isset {
|
460
|
+
_SizeStatistics__isset() : unencoded_byte_array_data_bytes(false), repetition_level_histogram(false), definition_level_histogram(false) {}
|
461
|
+
bool unencoded_byte_array_data_bytes :1;
|
462
|
+
bool repetition_level_histogram :1;
|
463
|
+
bool definition_level_histogram :1;
|
464
|
+
} _SizeStatistics__isset;
|
465
|
+
|
466
|
+
/**
|
467
|
+
* A structure for capturing metadata for estimating the unencoded,
|
468
|
+
* uncompressed size of data written. This is useful for readers to estimate
|
469
|
+
* how much memory is needed to reconstruct data in their memory model and for
|
470
|
+
* fine grained filter pushdown on nested structures (the histograms contained
|
471
|
+
* in this structure can help determine the number of nulls at a particular
|
472
|
+
* nesting level and maximum length of lists).
|
473
|
+
*/
|
474
|
+
class SizeStatistics : public virtual ::apache::thrift::TBase {
|
475
|
+
public:
|
476
|
+
|
477
|
+
SizeStatistics(const SizeStatistics&);
|
478
|
+
SizeStatistics& operator=(const SizeStatistics&);
|
479
|
+
SizeStatistics() noexcept;
|
480
|
+
|
481
|
+
virtual ~SizeStatistics() noexcept;
|
482
|
+
/**
|
483
|
+
* The number of physical bytes stored for BYTE_ARRAY data values assuming
|
484
|
+
* no encoding. This is exclusive of the bytes needed to store the length of
|
485
|
+
* each byte array. In other words, this field is equivalent to the `(size
|
486
|
+
* of PLAIN-ENCODING the byte array values) - (4 bytes * number of values
|
487
|
+
* written)`. To determine unencoded sizes of other types readers can use
|
488
|
+
* schema information multiplied by the number of non-null and null values.
|
489
|
+
* The number of null/non-null values can be inferred from the histograms
|
490
|
+
* below.
|
491
|
+
*
|
492
|
+
* For example, if a column chunk is dictionary-encoded with dictionary
|
493
|
+
* ["a", "bc", "cde"], and a data page contains the indices [0, 0, 1, 2],
|
494
|
+
* then this value for that data page should be 7 (1 + 1 + 2 + 3).
|
495
|
+
*
|
496
|
+
* This field should only be set for types that use BYTE_ARRAY as their
|
497
|
+
* physical type.
|
498
|
+
*/
|
499
|
+
int64_t unencoded_byte_array_data_bytes;
|
500
|
+
/**
|
501
|
+
* When present, there is expected to be one element corresponding to each
|
502
|
+
* repetition (i.e. size=max repetition_level+1) where each element
|
503
|
+
* represents the number of times the repetition level was observed in the
|
504
|
+
* data.
|
505
|
+
*
|
506
|
+
* This field may be omitted if max_repetition_level is 0 without loss
|
507
|
+
* of information.
|
508
|
+
*
|
509
|
+
*/
|
510
|
+
duckdb::vector<int64_t> repetition_level_histogram;
|
511
|
+
/**
|
512
|
+
* Same as repetition_level_histogram except for definition levels.
|
513
|
+
*
|
514
|
+
* This field may be omitted if max_definition_level is 0 or 1 without
|
515
|
+
* loss of information.
|
516
|
+
*
|
517
|
+
*/
|
518
|
+
duckdb::vector<int64_t> definition_level_histogram;
|
519
|
+
|
520
|
+
_SizeStatistics__isset __isset;
|
521
|
+
|
522
|
+
void __set_unencoded_byte_array_data_bytes(const int64_t val);
|
523
|
+
|
524
|
+
void __set_repetition_level_histogram(const duckdb::vector<int64_t> & val);
|
525
|
+
|
526
|
+
void __set_definition_level_histogram(const duckdb::vector<int64_t> & val);
|
527
|
+
|
528
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
529
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
530
|
+
|
531
|
+
virtual void printTo(std::ostream& out) const;
|
532
|
+
};
|
533
|
+
|
534
|
+
void swap(SizeStatistics &a, SizeStatistics &b);
|
535
|
+
|
536
|
+
std::ostream& operator<<(std::ostream& out, const SizeStatistics& obj);
|
537
|
+
|
221
538
|
typedef struct _Statistics__isset {
|
222
|
-
_Statistics__isset() : max(false), min(false), null_count(false), distinct_count(false), max_value(false), min_value(false) {}
|
539
|
+
_Statistics__isset() : max(false), min(false), null_count(false), distinct_count(false), max_value(false), min_value(false), is_max_value_exact(false), is_min_value_exact(false) {}
|
223
540
|
bool max :1;
|
224
541
|
bool min :1;
|
225
542
|
bool null_count :1;
|
226
543
|
bool distinct_count :1;
|
227
544
|
bool max_value :1;
|
228
545
|
bool min_value :1;
|
546
|
+
bool is_max_value_exact :1;
|
547
|
+
bool is_min_value_exact :1;
|
229
548
|
} _Statistics__isset;
|
230
549
|
|
231
|
-
|
550
|
+
/**
|
551
|
+
* Statistics per row group and per page
|
552
|
+
* All fields are optional.
|
553
|
+
*/
|
554
|
+
class Statistics : public virtual ::apache::thrift::TBase {
|
232
555
|
public:
|
233
556
|
|
234
557
|
Statistics(const Statistics&);
|
235
558
|
Statistics& operator=(const Statistics&);
|
236
|
-
Statistics()
|
237
|
-
|
238
|
-
|
239
|
-
|
559
|
+
Statistics() noexcept;
|
560
|
+
|
561
|
+
virtual ~Statistics() noexcept;
|
562
|
+
/**
|
563
|
+
* DEPRECATED: min and max value of the column. Use min_value and max_value.
|
564
|
+
*
|
565
|
+
* Values are encoded using PLAIN encoding, except that variable-length byte
|
566
|
+
* arrays do not include a length prefix.
|
567
|
+
*
|
568
|
+
* These fields encode min and max values determined by signed comparison
|
569
|
+
* only. New files should use the correct order for a column's logical type
|
570
|
+
* and store the values in the min_value and max_value fields.
|
571
|
+
*
|
572
|
+
* To support older readers, these may be set when the column order is
|
573
|
+
* signed.
|
574
|
+
*/
|
240
575
|
std::string max;
|
241
576
|
std::string min;
|
577
|
+
/**
|
578
|
+
* Count of null values in the column.
|
579
|
+
*
|
580
|
+
* Writers SHOULD always write this field even if it is zero (i.e. no null value)
|
581
|
+
* or the column is not nullable.
|
582
|
+
* Readers MUST distinguish between null_count not being present and null_count == 0.
|
583
|
+
* If null_count is not present, readers MUST NOT assume null_count == 0.
|
584
|
+
*/
|
242
585
|
int64_t null_count;
|
586
|
+
/**
|
587
|
+
* count of distinct values occurring
|
588
|
+
*/
|
243
589
|
int64_t distinct_count;
|
590
|
+
/**
|
591
|
+
* Lower and upper bound values for the column, determined by its ColumnOrder.
|
592
|
+
*
|
593
|
+
* These may be the actual minimum and maximum values found on a page or column
|
594
|
+
* chunk, but can also be (more compact) values that do not exist on a page or
|
595
|
+
* column chunk. For example, instead of storing "Blart Versenwald III", a writer
|
596
|
+
* may set min_value="B", max_value="C". Such more compact values must still be
|
597
|
+
* valid values within the column's logical type.
|
598
|
+
*
|
599
|
+
* Values are encoded using PLAIN encoding, except that variable-length byte
|
600
|
+
* arrays do not include a length prefix.
|
601
|
+
*/
|
244
602
|
std::string max_value;
|
245
603
|
std::string min_value;
|
604
|
+
/**
|
605
|
+
* If true, max_value is the actual maximum value for a column
|
606
|
+
*/
|
607
|
+
bool is_max_value_exact;
|
608
|
+
/**
|
609
|
+
* If true, min_value is the actual minimum value for a column
|
610
|
+
*/
|
611
|
+
bool is_min_value_exact;
|
246
612
|
|
247
613
|
_Statistics__isset __isset;
|
248
614
|
|
@@ -258,42 +624,12 @@ class Statistics : public virtual ::duckdb_apache::thrift::TBase {
|
|
258
624
|
|
259
625
|
void __set_min_value(const std::string& val);
|
260
626
|
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
if (__isset.min != rhs.__isset.min)
|
268
|
-
return false;
|
269
|
-
else if (__isset.min && !(min == rhs.min))
|
270
|
-
return false;
|
271
|
-
if (__isset.null_count != rhs.__isset.null_count)
|
272
|
-
return false;
|
273
|
-
else if (__isset.null_count && !(null_count == rhs.null_count))
|
274
|
-
return false;
|
275
|
-
if (__isset.distinct_count != rhs.__isset.distinct_count)
|
276
|
-
return false;
|
277
|
-
else if (__isset.distinct_count && !(distinct_count == rhs.distinct_count))
|
278
|
-
return false;
|
279
|
-
if (__isset.max_value != rhs.__isset.max_value)
|
280
|
-
return false;
|
281
|
-
else if (__isset.max_value && !(max_value == rhs.max_value))
|
282
|
-
return false;
|
283
|
-
if (__isset.min_value != rhs.__isset.min_value)
|
284
|
-
return false;
|
285
|
-
else if (__isset.min_value && !(min_value == rhs.min_value))
|
286
|
-
return false;
|
287
|
-
return true;
|
288
|
-
}
|
289
|
-
bool operator != (const Statistics &rhs) const {
|
290
|
-
return !(*this == rhs);
|
291
|
-
}
|
292
|
-
|
293
|
-
bool operator < (const Statistics & ) const;
|
294
|
-
|
295
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
296
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
627
|
+
void __set_is_max_value_exact(const bool val);
|
628
|
+
|
629
|
+
void __set_is_min_value_exact(const bool val);
|
630
|
+
|
631
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
632
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
297
633
|
|
298
634
|
virtual void printTo(std::ostream& out) const;
|
299
635
|
};
|
@@ -303,28 +639,20 @@ void swap(Statistics &a, Statistics &b);
|
|
303
639
|
std::ostream& operator<<(std::ostream& out, const Statistics& obj);
|
304
640
|
|
305
641
|
|
306
|
-
|
642
|
+
/**
|
643
|
+
* Empty structs to use as logical type annotations
|
644
|
+
*/
|
645
|
+
class StringType : public virtual ::apache::thrift::TBase {
|
307
646
|
public:
|
308
647
|
|
309
|
-
StringType(const StringType&);
|
310
|
-
StringType& operator=(const StringType&);
|
311
|
-
StringType()
|
312
|
-
}
|
648
|
+
StringType(const StringType&) noexcept;
|
649
|
+
StringType& operator=(const StringType&) noexcept;
|
650
|
+
StringType() noexcept;
|
313
651
|
|
314
|
-
virtual ~StringType()
|
652
|
+
virtual ~StringType() noexcept;
|
315
653
|
|
316
|
-
|
317
|
-
|
318
|
-
return true;
|
319
|
-
}
|
320
|
-
bool operator != (const StringType &rhs) const {
|
321
|
-
return !(*this == rhs);
|
322
|
-
}
|
323
|
-
|
324
|
-
bool operator < (const StringType & ) const;
|
325
|
-
|
326
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
327
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
654
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
655
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
328
656
|
|
329
657
|
virtual void printTo(std::ostream& out) const;
|
330
658
|
};
|
@@ -334,28 +662,17 @@ void swap(StringType &a, StringType &b);
|
|
334
662
|
std::ostream& operator<<(std::ostream& out, const StringType& obj);
|
335
663
|
|
336
664
|
|
337
|
-
class UUIDType : public virtual ::
|
665
|
+
class UUIDType : public virtual ::apache::thrift::TBase {
|
338
666
|
public:
|
339
667
|
|
340
|
-
UUIDType(const UUIDType&);
|
341
|
-
UUIDType& operator=(const UUIDType&);
|
342
|
-
UUIDType()
|
343
|
-
}
|
344
|
-
|
345
|
-
virtual ~UUIDType() throw();
|
346
|
-
|
347
|
-
bool operator == (const UUIDType & /* rhs */) const
|
348
|
-
{
|
349
|
-
return true;
|
350
|
-
}
|
351
|
-
bool operator != (const UUIDType &rhs) const {
|
352
|
-
return !(*this == rhs);
|
353
|
-
}
|
668
|
+
UUIDType(const UUIDType&) noexcept;
|
669
|
+
UUIDType& operator=(const UUIDType&) noexcept;
|
670
|
+
UUIDType() noexcept;
|
354
671
|
|
355
|
-
|
672
|
+
virtual ~UUIDType() noexcept;
|
356
673
|
|
357
|
-
uint32_t read(::
|
358
|
-
uint32_t write(::
|
674
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
675
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
359
676
|
|
360
677
|
virtual void printTo(std::ostream& out) const;
|
361
678
|
};
|
@@ -365,28 +682,17 @@ void swap(UUIDType &a, UUIDType &b);
|
|
365
682
|
std::ostream& operator<<(std::ostream& out, const UUIDType& obj);
|
366
683
|
|
367
684
|
|
368
|
-
class MapType : public virtual ::
|
685
|
+
class MapType : public virtual ::apache::thrift::TBase {
|
369
686
|
public:
|
370
687
|
|
371
|
-
MapType(const MapType&);
|
372
|
-
MapType& operator=(const MapType&);
|
373
|
-
MapType()
|
374
|
-
}
|
688
|
+
MapType(const MapType&) noexcept;
|
689
|
+
MapType& operator=(const MapType&) noexcept;
|
690
|
+
MapType() noexcept;
|
375
691
|
|
376
|
-
virtual ~MapType()
|
692
|
+
virtual ~MapType() noexcept;
|
377
693
|
|
378
|
-
|
379
|
-
|
380
|
-
return true;
|
381
|
-
}
|
382
|
-
bool operator != (const MapType &rhs) const {
|
383
|
-
return !(*this == rhs);
|
384
|
-
}
|
385
|
-
|
386
|
-
bool operator < (const MapType & ) const;
|
387
|
-
|
388
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
389
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
694
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
695
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
390
696
|
|
391
697
|
virtual void printTo(std::ostream& out) const;
|
392
698
|
};
|
@@ -396,28 +702,17 @@ void swap(MapType &a, MapType &b);
|
|
396
702
|
std::ostream& operator<<(std::ostream& out, const MapType& obj);
|
397
703
|
|
398
704
|
|
399
|
-
class ListType : public virtual ::
|
705
|
+
class ListType : public virtual ::apache::thrift::TBase {
|
400
706
|
public:
|
401
707
|
|
402
|
-
ListType(const ListType&);
|
403
|
-
ListType& operator=(const ListType&);
|
404
|
-
ListType()
|
405
|
-
}
|
406
|
-
|
407
|
-
virtual ~ListType() throw();
|
408
|
-
|
409
|
-
bool operator == (const ListType & /* rhs */) const
|
410
|
-
{
|
411
|
-
return true;
|
412
|
-
}
|
413
|
-
bool operator != (const ListType &rhs) const {
|
414
|
-
return !(*this == rhs);
|
415
|
-
}
|
708
|
+
ListType(const ListType&) noexcept;
|
709
|
+
ListType& operator=(const ListType&) noexcept;
|
710
|
+
ListType() noexcept;
|
416
711
|
|
417
|
-
|
712
|
+
virtual ~ListType() noexcept;
|
418
713
|
|
419
|
-
uint32_t read(::
|
420
|
-
uint32_t write(::
|
714
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
715
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
421
716
|
|
422
717
|
virtual void printTo(std::ostream& out) const;
|
423
718
|
};
|
@@ -427,28 +722,17 @@ void swap(ListType &a, ListType &b);
|
|
427
722
|
std::ostream& operator<<(std::ostream& out, const ListType& obj);
|
428
723
|
|
429
724
|
|
430
|
-
class EnumType : public virtual ::
|
725
|
+
class EnumType : public virtual ::apache::thrift::TBase {
|
431
726
|
public:
|
432
727
|
|
433
|
-
EnumType(const EnumType&);
|
434
|
-
EnumType& operator=(const EnumType&);
|
435
|
-
EnumType()
|
436
|
-
}
|
728
|
+
EnumType(const EnumType&) noexcept;
|
729
|
+
EnumType& operator=(const EnumType&) noexcept;
|
730
|
+
EnumType() noexcept;
|
437
731
|
|
438
|
-
virtual ~EnumType()
|
732
|
+
virtual ~EnumType() noexcept;
|
439
733
|
|
440
|
-
|
441
|
-
|
442
|
-
return true;
|
443
|
-
}
|
444
|
-
bool operator != (const EnumType &rhs) const {
|
445
|
-
return !(*this == rhs);
|
446
|
-
}
|
447
|
-
|
448
|
-
bool operator < (const EnumType & ) const;
|
449
|
-
|
450
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
451
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
734
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
735
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
452
736
|
|
453
737
|
virtual void printTo(std::ostream& out) const;
|
454
738
|
};
|
@@ -458,28 +742,17 @@ void swap(EnumType &a, EnumType &b);
|
|
458
742
|
std::ostream& operator<<(std::ostream& out, const EnumType& obj);
|
459
743
|
|
460
744
|
|
461
|
-
class DateType : public virtual ::
|
745
|
+
class DateType : public virtual ::apache::thrift::TBase {
|
462
746
|
public:
|
463
747
|
|
464
|
-
DateType(const DateType&);
|
465
|
-
DateType& operator=(const DateType&);
|
466
|
-
DateType()
|
467
|
-
}
|
468
|
-
|
469
|
-
virtual ~DateType() throw();
|
470
|
-
|
471
|
-
bool operator == (const DateType & /* rhs */) const
|
472
|
-
{
|
473
|
-
return true;
|
474
|
-
}
|
475
|
-
bool operator != (const DateType &rhs) const {
|
476
|
-
return !(*this == rhs);
|
477
|
-
}
|
748
|
+
DateType(const DateType&) noexcept;
|
749
|
+
DateType& operator=(const DateType&) noexcept;
|
750
|
+
DateType() noexcept;
|
478
751
|
|
479
|
-
|
752
|
+
virtual ~DateType() noexcept;
|
480
753
|
|
481
|
-
uint32_t read(::
|
482
|
-
uint32_t write(::
|
754
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
755
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
483
756
|
|
484
757
|
virtual void printTo(std::ostream& out) const;
|
485
758
|
};
|
@@ -489,28 +762,44 @@ void swap(DateType &a, DateType &b);
|
|
489
762
|
std::ostream& operator<<(std::ostream& out, const DateType& obj);
|
490
763
|
|
491
764
|
|
492
|
-
class
|
765
|
+
class Float16Type : public virtual ::apache::thrift::TBase {
|
493
766
|
public:
|
494
767
|
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
}
|
768
|
+
Float16Type(const Float16Type&) noexcept;
|
769
|
+
Float16Type& operator=(const Float16Type&) noexcept;
|
770
|
+
Float16Type() noexcept;
|
499
771
|
|
500
|
-
virtual ~
|
772
|
+
virtual ~Float16Type() noexcept;
|
501
773
|
|
502
|
-
|
503
|
-
|
504
|
-
return true;
|
505
|
-
}
|
506
|
-
bool operator != (const NullType &rhs) const {
|
507
|
-
return !(*this == rhs);
|
508
|
-
}
|
774
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
775
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
509
776
|
|
510
|
-
|
777
|
+
virtual void printTo(std::ostream& out) const;
|
778
|
+
};
|
779
|
+
|
780
|
+
void swap(Float16Type &a, Float16Type &b);
|
781
|
+
|
782
|
+
std::ostream& operator<<(std::ostream& out, const Float16Type& obj);
|
783
|
+
|
784
|
+
|
785
|
+
/**
|
786
|
+
* Logical type to annotate a column that is always null.
|
787
|
+
*
|
788
|
+
* Sometimes when discovering the schema of existing data, values are always
|
789
|
+
* null and the physical type can't be determined. This annotation signals
|
790
|
+
* the case where the physical type was guessed from all null values.
|
791
|
+
*/
|
792
|
+
class NullType : public virtual ::apache::thrift::TBase {
|
793
|
+
public:
|
511
794
|
|
512
|
-
|
513
|
-
|
795
|
+
NullType(const NullType&) noexcept;
|
796
|
+
NullType& operator=(const NullType&) noexcept;
|
797
|
+
NullType() noexcept;
|
798
|
+
|
799
|
+
virtual ~NullType() noexcept;
|
800
|
+
|
801
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
802
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
514
803
|
|
515
804
|
virtual void printTo(std::ostream& out) const;
|
516
805
|
};
|
@@ -520,15 +809,25 @@ void swap(NullType &a, NullType &b);
|
|
520
809
|
std::ostream& operator<<(std::ostream& out, const NullType& obj);
|
521
810
|
|
522
811
|
|
523
|
-
|
812
|
+
/**
|
813
|
+
* Decimal logical type annotation
|
814
|
+
*
|
815
|
+
* Scale must be zero or a positive integer less than or equal to the precision.
|
816
|
+
* Precision must be a non-zero positive integer.
|
817
|
+
*
|
818
|
+
* To maintain forward-compatibility in v1, implementations using this logical
|
819
|
+
* type must also set scale and precision on the annotated SchemaElement.
|
820
|
+
*
|
821
|
+
* Allowed for physical types: INT32, INT64, FIXED_LEN_BYTE_ARRAY, and BYTE_ARRAY.
|
822
|
+
*/
|
823
|
+
class DecimalType : public virtual ::apache::thrift::TBase {
|
524
824
|
public:
|
525
825
|
|
526
|
-
DecimalType(const DecimalType&);
|
527
|
-
DecimalType& operator=(const DecimalType&);
|
528
|
-
DecimalType()
|
529
|
-
}
|
826
|
+
DecimalType(const DecimalType&) noexcept;
|
827
|
+
DecimalType& operator=(const DecimalType&) noexcept;
|
828
|
+
DecimalType() noexcept;
|
530
829
|
|
531
|
-
virtual ~DecimalType()
|
830
|
+
virtual ~DecimalType() noexcept;
|
532
831
|
int32_t scale;
|
533
832
|
int32_t precision;
|
534
833
|
|
@@ -536,22 +835,8 @@ class DecimalType : public virtual ::duckdb_apache::thrift::TBase {
|
|
536
835
|
|
537
836
|
void __set_precision(const int32_t val);
|
538
837
|
|
539
|
-
|
540
|
-
|
541
|
-
if (!(scale == rhs.scale))
|
542
|
-
return false;
|
543
|
-
if (!(precision == rhs.precision))
|
544
|
-
return false;
|
545
|
-
return true;
|
546
|
-
}
|
547
|
-
bool operator != (const DecimalType &rhs) const {
|
548
|
-
return !(*this == rhs);
|
549
|
-
}
|
550
|
-
|
551
|
-
bool operator < (const DecimalType & ) const;
|
552
|
-
|
553
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
554
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
838
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
839
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
555
840
|
|
556
841
|
virtual void printTo(std::ostream& out) const;
|
557
842
|
};
|
@@ -561,28 +846,20 @@ void swap(DecimalType &a, DecimalType &b);
|
|
561
846
|
std::ostream& operator<<(std::ostream& out, const DecimalType& obj);
|
562
847
|
|
563
848
|
|
564
|
-
|
849
|
+
/**
|
850
|
+
* Time units for logical types
|
851
|
+
*/
|
852
|
+
class MilliSeconds : public virtual ::apache::thrift::TBase {
|
565
853
|
public:
|
566
854
|
|
567
|
-
MilliSeconds(const MilliSeconds&);
|
568
|
-
MilliSeconds& operator=(const MilliSeconds&);
|
569
|
-
MilliSeconds()
|
570
|
-
}
|
855
|
+
MilliSeconds(const MilliSeconds&) noexcept;
|
856
|
+
MilliSeconds& operator=(const MilliSeconds&) noexcept;
|
857
|
+
MilliSeconds() noexcept;
|
571
858
|
|
572
|
-
virtual ~MilliSeconds()
|
859
|
+
virtual ~MilliSeconds() noexcept;
|
573
860
|
|
574
|
-
|
575
|
-
|
576
|
-
return true;
|
577
|
-
}
|
578
|
-
bool operator != (const MilliSeconds &rhs) const {
|
579
|
-
return !(*this == rhs);
|
580
|
-
}
|
581
|
-
|
582
|
-
bool operator < (const MilliSeconds & ) const;
|
583
|
-
|
584
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
585
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
861
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
862
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
586
863
|
|
587
864
|
virtual void printTo(std::ostream& out) const;
|
588
865
|
};
|
@@ -592,28 +869,17 @@ void swap(MilliSeconds &a, MilliSeconds &b);
|
|
592
869
|
std::ostream& operator<<(std::ostream& out, const MilliSeconds& obj);
|
593
870
|
|
594
871
|
|
595
|
-
class MicroSeconds : public virtual ::
|
872
|
+
class MicroSeconds : public virtual ::apache::thrift::TBase {
|
596
873
|
public:
|
597
874
|
|
598
|
-
MicroSeconds(const MicroSeconds&);
|
599
|
-
MicroSeconds& operator=(const MicroSeconds&);
|
600
|
-
MicroSeconds()
|
601
|
-
}
|
602
|
-
|
603
|
-
virtual ~MicroSeconds() throw();
|
604
|
-
|
605
|
-
bool operator == (const MicroSeconds & /* rhs */) const
|
606
|
-
{
|
607
|
-
return true;
|
608
|
-
}
|
609
|
-
bool operator != (const MicroSeconds &rhs) const {
|
610
|
-
return !(*this == rhs);
|
611
|
-
}
|
875
|
+
MicroSeconds(const MicroSeconds&) noexcept;
|
876
|
+
MicroSeconds& operator=(const MicroSeconds&) noexcept;
|
877
|
+
MicroSeconds() noexcept;
|
612
878
|
|
613
|
-
|
879
|
+
virtual ~MicroSeconds() noexcept;
|
614
880
|
|
615
|
-
uint32_t read(::
|
616
|
-
uint32_t write(::
|
881
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
882
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
617
883
|
|
618
884
|
virtual void printTo(std::ostream& out) const;
|
619
885
|
};
|
@@ -623,28 +889,17 @@ void swap(MicroSeconds &a, MicroSeconds &b);
|
|
623
889
|
std::ostream& operator<<(std::ostream& out, const MicroSeconds& obj);
|
624
890
|
|
625
891
|
|
626
|
-
class NanoSeconds : public virtual ::
|
892
|
+
class NanoSeconds : public virtual ::apache::thrift::TBase {
|
627
893
|
public:
|
628
894
|
|
629
|
-
NanoSeconds(const NanoSeconds&);
|
630
|
-
NanoSeconds& operator=(const NanoSeconds&);
|
631
|
-
NanoSeconds()
|
632
|
-
}
|
895
|
+
NanoSeconds(const NanoSeconds&) noexcept;
|
896
|
+
NanoSeconds& operator=(const NanoSeconds&) noexcept;
|
897
|
+
NanoSeconds() noexcept;
|
633
898
|
|
634
|
-
virtual ~NanoSeconds()
|
899
|
+
virtual ~NanoSeconds() noexcept;
|
635
900
|
|
636
|
-
|
637
|
-
|
638
|
-
return true;
|
639
|
-
}
|
640
|
-
bool operator != (const NanoSeconds &rhs) const {
|
641
|
-
return !(*this == rhs);
|
642
|
-
}
|
643
|
-
|
644
|
-
bool operator < (const NanoSeconds & ) const;
|
645
|
-
|
646
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
647
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
901
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
902
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
648
903
|
|
649
904
|
virtual void printTo(std::ostream& out) const;
|
650
905
|
};
|
@@ -660,15 +915,14 @@ typedef struct _TimeUnit__isset {
|
|
660
915
|
bool NANOS :1;
|
661
916
|
} _TimeUnit__isset;
|
662
917
|
|
663
|
-
class TimeUnit : public virtual ::
|
918
|
+
class TimeUnit : public virtual ::apache::thrift::TBase {
|
664
919
|
public:
|
665
920
|
|
666
|
-
TimeUnit(const TimeUnit&);
|
667
|
-
TimeUnit& operator=(const TimeUnit&);
|
668
|
-
TimeUnit()
|
669
|
-
}
|
921
|
+
TimeUnit(const TimeUnit&) noexcept;
|
922
|
+
TimeUnit& operator=(const TimeUnit&) noexcept;
|
923
|
+
TimeUnit() noexcept;
|
670
924
|
|
671
|
-
virtual ~TimeUnit()
|
925
|
+
virtual ~TimeUnit() noexcept;
|
672
926
|
MilliSeconds MILLIS;
|
673
927
|
MicroSeconds MICROS;
|
674
928
|
NanoSeconds NANOS;
|
@@ -681,30 +935,8 @@ class TimeUnit : public virtual ::duckdb_apache::thrift::TBase {
|
|
681
935
|
|
682
936
|
void __set_NANOS(const NanoSeconds& val);
|
683
937
|
|
684
|
-
|
685
|
-
|
686
|
-
if (__isset.MILLIS != rhs.__isset.MILLIS)
|
687
|
-
return false;
|
688
|
-
else if (__isset.MILLIS && !(MILLIS == rhs.MILLIS))
|
689
|
-
return false;
|
690
|
-
if (__isset.MICROS != rhs.__isset.MICROS)
|
691
|
-
return false;
|
692
|
-
else if (__isset.MICROS && !(MICROS == rhs.MICROS))
|
693
|
-
return false;
|
694
|
-
if (__isset.NANOS != rhs.__isset.NANOS)
|
695
|
-
return false;
|
696
|
-
else if (__isset.NANOS && !(NANOS == rhs.NANOS))
|
697
|
-
return false;
|
698
|
-
return true;
|
699
|
-
}
|
700
|
-
bool operator != (const TimeUnit &rhs) const {
|
701
|
-
return !(*this == rhs);
|
702
|
-
}
|
703
|
-
|
704
|
-
bool operator < (const TimeUnit & ) const;
|
705
|
-
|
706
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
707
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
938
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
939
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
708
940
|
|
709
941
|
virtual void printTo(std::ostream& out) const;
|
710
942
|
};
|
@@ -714,15 +946,19 @@ void swap(TimeUnit &a, TimeUnit &b);
|
|
714
946
|
std::ostream& operator<<(std::ostream& out, const TimeUnit& obj);
|
715
947
|
|
716
948
|
|
717
|
-
|
949
|
+
/**
|
950
|
+
* Timestamp logical type annotation
|
951
|
+
*
|
952
|
+
* Allowed for physical types: INT64
|
953
|
+
*/
|
954
|
+
class TimestampType : public virtual ::apache::thrift::TBase {
|
718
955
|
public:
|
719
956
|
|
720
|
-
TimestampType(const TimestampType&);
|
721
|
-
TimestampType& operator=(const TimestampType&);
|
722
|
-
TimestampType()
|
723
|
-
}
|
957
|
+
TimestampType(const TimestampType&) noexcept;
|
958
|
+
TimestampType& operator=(const TimestampType&) noexcept;
|
959
|
+
TimestampType() noexcept;
|
724
960
|
|
725
|
-
virtual ~TimestampType()
|
961
|
+
virtual ~TimestampType() noexcept;
|
726
962
|
bool isAdjustedToUTC;
|
727
963
|
TimeUnit unit;
|
728
964
|
|
@@ -730,22 +966,8 @@ class TimestampType : public virtual ::duckdb_apache::thrift::TBase {
|
|
730
966
|
|
731
967
|
void __set_unit(const TimeUnit& val);
|
732
968
|
|
733
|
-
|
734
|
-
|
735
|
-
if (!(isAdjustedToUTC == rhs.isAdjustedToUTC))
|
736
|
-
return false;
|
737
|
-
if (!(unit == rhs.unit))
|
738
|
-
return false;
|
739
|
-
return true;
|
740
|
-
}
|
741
|
-
bool operator != (const TimestampType &rhs) const {
|
742
|
-
return !(*this == rhs);
|
743
|
-
}
|
744
|
-
|
745
|
-
bool operator < (const TimestampType & ) const;
|
746
|
-
|
747
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
748
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
969
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
970
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
749
971
|
|
750
972
|
virtual void printTo(std::ostream& out) const;
|
751
973
|
};
|
@@ -755,15 +977,19 @@ void swap(TimestampType &a, TimestampType &b);
|
|
755
977
|
std::ostream& operator<<(std::ostream& out, const TimestampType& obj);
|
756
978
|
|
757
979
|
|
758
|
-
|
980
|
+
/**
|
981
|
+
* Time logical type annotation
|
982
|
+
*
|
983
|
+
* Allowed for physical types: INT32 (millis), INT64 (micros, nanos)
|
984
|
+
*/
|
985
|
+
class TimeType : public virtual ::apache::thrift::TBase {
|
759
986
|
public:
|
760
987
|
|
761
|
-
TimeType(const TimeType&);
|
762
|
-
TimeType& operator=(const TimeType&);
|
763
|
-
TimeType()
|
764
|
-
}
|
988
|
+
TimeType(const TimeType&) noexcept;
|
989
|
+
TimeType& operator=(const TimeType&) noexcept;
|
990
|
+
TimeType() noexcept;
|
765
991
|
|
766
|
-
virtual ~TimeType()
|
992
|
+
virtual ~TimeType() noexcept;
|
767
993
|
bool isAdjustedToUTC;
|
768
994
|
TimeUnit unit;
|
769
995
|
|
@@ -771,22 +997,8 @@ class TimeType : public virtual ::duckdb_apache::thrift::TBase {
|
|
771
997
|
|
772
998
|
void __set_unit(const TimeUnit& val);
|
773
999
|
|
774
|
-
|
775
|
-
|
776
|
-
if (!(isAdjustedToUTC == rhs.isAdjustedToUTC))
|
777
|
-
return false;
|
778
|
-
if (!(unit == rhs.unit))
|
779
|
-
return false;
|
780
|
-
return true;
|
781
|
-
}
|
782
|
-
bool operator != (const TimeType &rhs) const {
|
783
|
-
return !(*this == rhs);
|
784
|
-
}
|
785
|
-
|
786
|
-
bool operator < (const TimeType & ) const;
|
787
|
-
|
788
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
789
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
1000
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1001
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
790
1002
|
|
791
1003
|
virtual void printTo(std::ostream& out) const;
|
792
1004
|
};
|
@@ -796,15 +1008,21 @@ void swap(TimeType &a, TimeType &b);
|
|
796
1008
|
std::ostream& operator<<(std::ostream& out, const TimeType& obj);
|
797
1009
|
|
798
1010
|
|
799
|
-
|
1011
|
+
/**
|
1012
|
+
* Integer logical type annotation
|
1013
|
+
*
|
1014
|
+
* bitWidth must be 8, 16, 32, or 64.
|
1015
|
+
*
|
1016
|
+
* Allowed for physical types: INT32, INT64
|
1017
|
+
*/
|
1018
|
+
class IntType : public virtual ::apache::thrift::TBase {
|
800
1019
|
public:
|
801
1020
|
|
802
|
-
IntType(const IntType&);
|
803
|
-
IntType& operator=(const IntType&);
|
804
|
-
IntType()
|
805
|
-
}
|
1021
|
+
IntType(const IntType&) noexcept;
|
1022
|
+
IntType& operator=(const IntType&) noexcept;
|
1023
|
+
IntType() noexcept;
|
806
1024
|
|
807
|
-
virtual ~IntType()
|
1025
|
+
virtual ~IntType() noexcept;
|
808
1026
|
int8_t bitWidth;
|
809
1027
|
bool isSigned;
|
810
1028
|
|
@@ -812,22 +1030,8 @@ class IntType : public virtual ::duckdb_apache::thrift::TBase {
|
|
812
1030
|
|
813
1031
|
void __set_isSigned(const bool val);
|
814
1032
|
|
815
|
-
|
816
|
-
|
817
|
-
if (!(bitWidth == rhs.bitWidth))
|
818
|
-
return false;
|
819
|
-
if (!(isSigned == rhs.isSigned))
|
820
|
-
return false;
|
821
|
-
return true;
|
822
|
-
}
|
823
|
-
bool operator != (const IntType &rhs) const {
|
824
|
-
return !(*this == rhs);
|
825
|
-
}
|
826
|
-
|
827
|
-
bool operator < (const IntType & ) const;
|
828
|
-
|
829
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
830
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
1033
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1034
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
831
1035
|
|
832
1036
|
virtual void printTo(std::ostream& out) const;
|
833
1037
|
};
|
@@ -837,28 +1041,22 @@ void swap(IntType &a, IntType &b);
|
|
837
1041
|
std::ostream& operator<<(std::ostream& out, const IntType& obj);
|
838
1042
|
|
839
1043
|
|
840
|
-
|
1044
|
+
/**
|
1045
|
+
* Embedded JSON logical type annotation
|
1046
|
+
*
|
1047
|
+
* Allowed for physical types: BYTE_ARRAY
|
1048
|
+
*/
|
1049
|
+
class JsonType : public virtual ::apache::thrift::TBase {
|
841
1050
|
public:
|
842
1051
|
|
843
|
-
JsonType(const JsonType&);
|
844
|
-
JsonType& operator=(const JsonType&);
|
845
|
-
JsonType()
|
846
|
-
}
|
847
|
-
|
848
|
-
virtual ~JsonType() throw();
|
1052
|
+
JsonType(const JsonType&) noexcept;
|
1053
|
+
JsonType& operator=(const JsonType&) noexcept;
|
1054
|
+
JsonType() noexcept;
|
849
1055
|
|
850
|
-
|
851
|
-
{
|
852
|
-
return true;
|
853
|
-
}
|
854
|
-
bool operator != (const JsonType &rhs) const {
|
855
|
-
return !(*this == rhs);
|
856
|
-
}
|
1056
|
+
virtual ~JsonType() noexcept;
|
857
1057
|
|
858
|
-
|
859
|
-
|
860
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
861
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
1058
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1059
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
862
1060
|
|
863
1061
|
virtual void printTo(std::ostream& out) const;
|
864
1062
|
};
|
@@ -868,28 +1066,22 @@ void swap(JsonType &a, JsonType &b);
|
|
868
1066
|
std::ostream& operator<<(std::ostream& out, const JsonType& obj);
|
869
1067
|
|
870
1068
|
|
871
|
-
|
1069
|
+
/**
|
1070
|
+
* Embedded BSON logical type annotation
|
1071
|
+
*
|
1072
|
+
* Allowed for physical types: BYTE_ARRAY
|
1073
|
+
*/
|
1074
|
+
class BsonType : public virtual ::apache::thrift::TBase {
|
872
1075
|
public:
|
873
1076
|
|
874
|
-
BsonType(const BsonType&);
|
875
|
-
BsonType& operator=(const BsonType&);
|
876
|
-
BsonType()
|
877
|
-
}
|
878
|
-
|
879
|
-
virtual ~BsonType() throw();
|
1077
|
+
BsonType(const BsonType&) noexcept;
|
1078
|
+
BsonType& operator=(const BsonType&) noexcept;
|
1079
|
+
BsonType() noexcept;
|
880
1080
|
|
881
|
-
|
882
|
-
{
|
883
|
-
return true;
|
884
|
-
}
|
885
|
-
bool operator != (const BsonType &rhs) const {
|
886
|
-
return !(*this == rhs);
|
887
|
-
}
|
1081
|
+
virtual ~BsonType() noexcept;
|
888
1082
|
|
889
|
-
|
890
|
-
|
891
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
892
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
1083
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1084
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
893
1085
|
|
894
1086
|
virtual void printTo(std::ostream& out) const;
|
895
1087
|
};
|
@@ -899,7 +1091,7 @@ void swap(BsonType &a, BsonType &b);
|
|
899
1091
|
std::ostream& operator<<(std::ostream& out, const BsonType& obj);
|
900
1092
|
|
901
1093
|
typedef struct _LogicalType__isset {
|
902
|
-
_LogicalType__isset() : STRING(false), MAP(false), LIST(false), ENUM(false), DECIMAL(false), DATE(false), TIME(false), TIMESTAMP(false), INTEGER(false), UNKNOWN(false), JSON(false), BSON(false), UUID(false) {}
|
1094
|
+
_LogicalType__isset() : STRING(false), MAP(false), LIST(false), ENUM(false), DECIMAL(false), DATE(false), TIME(false), TIMESTAMP(false), INTEGER(false), UNKNOWN(false), JSON(false), BSON(false), UUID(false), FLOAT16(false) {}
|
903
1095
|
bool STRING :1;
|
904
1096
|
bool MAP :1;
|
905
1097
|
bool LIST :1;
|
@@ -913,17 +1105,24 @@ typedef struct _LogicalType__isset {
|
|
913
1105
|
bool JSON :1;
|
914
1106
|
bool BSON :1;
|
915
1107
|
bool UUID :1;
|
1108
|
+
bool FLOAT16 :1;
|
916
1109
|
} _LogicalType__isset;
|
917
1110
|
|
918
|
-
|
1111
|
+
/**
|
1112
|
+
* LogicalType annotations to replace ConvertedType.
|
1113
|
+
*
|
1114
|
+
* To maintain compatibility, implementations using LogicalType for a
|
1115
|
+
* SchemaElement must also set the corresponding ConvertedType (if any)
|
1116
|
+
* from the following table.
|
1117
|
+
*/
|
1118
|
+
class LogicalType : public virtual ::apache::thrift::TBase {
|
919
1119
|
public:
|
920
1120
|
|
921
|
-
LogicalType(const LogicalType&);
|
922
|
-
LogicalType& operator=(const LogicalType&);
|
923
|
-
LogicalType()
|
924
|
-
}
|
1121
|
+
LogicalType(const LogicalType&) noexcept;
|
1122
|
+
LogicalType& operator=(const LogicalType&) noexcept;
|
1123
|
+
LogicalType() noexcept;
|
925
1124
|
|
926
|
-
virtual ~LogicalType()
|
1125
|
+
virtual ~LogicalType() noexcept;
|
927
1126
|
StringType STRING;
|
928
1127
|
MapType MAP;
|
929
1128
|
ListType LIST;
|
@@ -937,6 +1136,7 @@ class LogicalType : public virtual ::duckdb_apache::thrift::TBase {
|
|
937
1136
|
JsonType JSON;
|
938
1137
|
BsonType BSON;
|
939
1138
|
UUIDType UUID;
|
1139
|
+
Float16Type FLOAT16;
|
940
1140
|
|
941
1141
|
_LogicalType__isset __isset;
|
942
1142
|
|
@@ -966,70 +1166,10 @@ class LogicalType : public virtual ::duckdb_apache::thrift::TBase {
|
|
966
1166
|
|
967
1167
|
void __set_UUID(const UUIDType& val);
|
968
1168
|
|
969
|
-
|
970
|
-
|
971
|
-
|
972
|
-
|
973
|
-
else if (__isset.STRING && !(STRING == rhs.STRING))
|
974
|
-
return false;
|
975
|
-
if (__isset.MAP != rhs.__isset.MAP)
|
976
|
-
return false;
|
977
|
-
else if (__isset.MAP && !(MAP == rhs.MAP))
|
978
|
-
return false;
|
979
|
-
if (__isset.LIST != rhs.__isset.LIST)
|
980
|
-
return false;
|
981
|
-
else if (__isset.LIST && !(LIST == rhs.LIST))
|
982
|
-
return false;
|
983
|
-
if (__isset.ENUM != rhs.__isset.ENUM)
|
984
|
-
return false;
|
985
|
-
else if (__isset.ENUM && !(ENUM == rhs.ENUM))
|
986
|
-
return false;
|
987
|
-
if (__isset.DECIMAL != rhs.__isset.DECIMAL)
|
988
|
-
return false;
|
989
|
-
else if (__isset.DECIMAL && !(DECIMAL == rhs.DECIMAL))
|
990
|
-
return false;
|
991
|
-
if (__isset.DATE != rhs.__isset.DATE)
|
992
|
-
return false;
|
993
|
-
else if (__isset.DATE && !(DATE == rhs.DATE))
|
994
|
-
return false;
|
995
|
-
if (__isset.TIME != rhs.__isset.TIME)
|
996
|
-
return false;
|
997
|
-
else if (__isset.TIME && !(TIME == rhs.TIME))
|
998
|
-
return false;
|
999
|
-
if (__isset.TIMESTAMP != rhs.__isset.TIMESTAMP)
|
1000
|
-
return false;
|
1001
|
-
else if (__isset.TIMESTAMP && !(TIMESTAMP == rhs.TIMESTAMP))
|
1002
|
-
return false;
|
1003
|
-
if (__isset.INTEGER != rhs.__isset.INTEGER)
|
1004
|
-
return false;
|
1005
|
-
else if (__isset.INTEGER && !(INTEGER == rhs.INTEGER))
|
1006
|
-
return false;
|
1007
|
-
if (__isset.UNKNOWN != rhs.__isset.UNKNOWN)
|
1008
|
-
return false;
|
1009
|
-
else if (__isset.UNKNOWN && !(UNKNOWN == rhs.UNKNOWN))
|
1010
|
-
return false;
|
1011
|
-
if (__isset.JSON != rhs.__isset.JSON)
|
1012
|
-
return false;
|
1013
|
-
else if (__isset.JSON && !(JSON == rhs.JSON))
|
1014
|
-
return false;
|
1015
|
-
if (__isset.BSON != rhs.__isset.BSON)
|
1016
|
-
return false;
|
1017
|
-
else if (__isset.BSON && !(BSON == rhs.BSON))
|
1018
|
-
return false;
|
1019
|
-
if (__isset.UUID != rhs.__isset.UUID)
|
1020
|
-
return false;
|
1021
|
-
else if (__isset.UUID && !(UUID == rhs.UUID))
|
1022
|
-
return false;
|
1023
|
-
return true;
|
1024
|
-
}
|
1025
|
-
bool operator != (const LogicalType &rhs) const {
|
1026
|
-
return !(*this == rhs);
|
1027
|
-
}
|
1028
|
-
|
1029
|
-
bool operator < (const LogicalType & ) const;
|
1030
|
-
|
1031
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1032
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
1169
|
+
void __set_FLOAT16(const Float16Type& val);
|
1170
|
+
|
1171
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1172
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1033
1173
|
|
1034
1174
|
virtual void printTo(std::ostream& out) const;
|
1035
1175
|
};
|
@@ -1051,24 +1191,79 @@ typedef struct _SchemaElement__isset {
|
|
1051
1191
|
bool logicalType :1;
|
1052
1192
|
} _SchemaElement__isset;
|
1053
1193
|
|
1054
|
-
|
1194
|
+
/**
|
1195
|
+
* Represents a element inside a schema definition.
|
1196
|
+
* - if it is a group (inner node) then type is undefined and num_children is defined
|
1197
|
+
* - if it is a primitive type (leaf) then type is defined and num_children is undefined
|
1198
|
+
* the nodes are listed in depth first traversal order.
|
1199
|
+
*/
|
1200
|
+
class SchemaElement : public virtual ::apache::thrift::TBase {
|
1055
1201
|
public:
|
1056
1202
|
|
1057
1203
|
SchemaElement(const SchemaElement&);
|
1058
1204
|
SchemaElement& operator=(const SchemaElement&);
|
1059
|
-
SchemaElement()
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1205
|
+
SchemaElement() noexcept;
|
1206
|
+
|
1207
|
+
virtual ~SchemaElement() noexcept;
|
1208
|
+
/**
|
1209
|
+
* Data type for this field. Not set if the current element is a non-leaf node
|
1210
|
+
*
|
1211
|
+
* @see Type
|
1212
|
+
*/
|
1063
1213
|
Type::type type;
|
1214
|
+
/**
|
1215
|
+
* If type is FIXED_LEN_BYTE_ARRAY, this is the byte length of the values.
|
1216
|
+
* Otherwise, if specified, this is the maximum bit length to store any of the values.
|
1217
|
+
* (e.g. a low cardinality INT col could have this set to 3). Note that this is
|
1218
|
+
* in the schema, and therefore fixed for the entire file.
|
1219
|
+
*/
|
1064
1220
|
int32_t type_length;
|
1221
|
+
/**
|
1222
|
+
* repetition of the field. The root of the schema does not have a repetition_type.
|
1223
|
+
* All other nodes must have one
|
1224
|
+
*
|
1225
|
+
* @see FieldRepetitionType
|
1226
|
+
*/
|
1065
1227
|
FieldRepetitionType::type repetition_type;
|
1228
|
+
/**
|
1229
|
+
* Name of the field in the schema
|
1230
|
+
*/
|
1066
1231
|
std::string name;
|
1232
|
+
/**
|
1233
|
+
* Nested fields. Since thrift does not support nested fields,
|
1234
|
+
* the nesting is flattened to a single list by a depth-first traversal.
|
1235
|
+
* The children count is used to construct the nested relationship.
|
1236
|
+
* This field is not set when the element is a primitive type
|
1237
|
+
*/
|
1067
1238
|
int32_t num_children;
|
1239
|
+
/**
|
1240
|
+
* DEPRECATED: When the schema is the result of a conversion from another model.
|
1241
|
+
* Used to record the original type to help with cross conversion.
|
1242
|
+
*
|
1243
|
+
* This is superseded by logicalType.
|
1244
|
+
*
|
1245
|
+
* @see ConvertedType
|
1246
|
+
*/
|
1068
1247
|
ConvertedType::type converted_type;
|
1248
|
+
/**
|
1249
|
+
* DEPRECATED: Used when this column contains decimal data.
|
1250
|
+
* See the DECIMAL converted type for more details.
|
1251
|
+
*
|
1252
|
+
* This is superseded by using the DecimalType annotation in logicalType.
|
1253
|
+
*/
|
1069
1254
|
int32_t scale;
|
1070
1255
|
int32_t precision;
|
1256
|
+
/**
|
1257
|
+
* When the original schema supports field ids, this will save the
|
1258
|
+
* original field id in the parquet schema
|
1259
|
+
*/
|
1071
1260
|
int32_t field_id;
|
1261
|
+
/**
|
1262
|
+
* The logical type of this SchemaElement
|
1263
|
+
*
|
1264
|
+
* LogicalType replaces ConvertedType, but ConvertedType is still required
|
1265
|
+
* for some logical types to ensure forward-compatibility in format v1.
|
1266
|
+
*/
|
1072
1267
|
LogicalType logicalType;
|
1073
1268
|
|
1074
1269
|
_SchemaElement__isset __isset;
|
@@ -1093,56 +1288,8 @@ class SchemaElement : public virtual ::duckdb_apache::thrift::TBase {
|
|
1093
1288
|
|
1094
1289
|
void __set_logicalType(const LogicalType& val);
|
1095
1290
|
|
1096
|
-
|
1097
|
-
|
1098
|
-
if (__isset.type != rhs.__isset.type)
|
1099
|
-
return false;
|
1100
|
-
else if (__isset.type && !(type == rhs.type))
|
1101
|
-
return false;
|
1102
|
-
if (__isset.type_length != rhs.__isset.type_length)
|
1103
|
-
return false;
|
1104
|
-
else if (__isset.type_length && !(type_length == rhs.type_length))
|
1105
|
-
return false;
|
1106
|
-
if (__isset.repetition_type != rhs.__isset.repetition_type)
|
1107
|
-
return false;
|
1108
|
-
else if (__isset.repetition_type && !(repetition_type == rhs.repetition_type))
|
1109
|
-
return false;
|
1110
|
-
if (!(name == rhs.name))
|
1111
|
-
return false;
|
1112
|
-
if (__isset.num_children != rhs.__isset.num_children)
|
1113
|
-
return false;
|
1114
|
-
else if (__isset.num_children && !(num_children == rhs.num_children))
|
1115
|
-
return false;
|
1116
|
-
if (__isset.converted_type != rhs.__isset.converted_type)
|
1117
|
-
return false;
|
1118
|
-
else if (__isset.converted_type && !(converted_type == rhs.converted_type))
|
1119
|
-
return false;
|
1120
|
-
if (__isset.scale != rhs.__isset.scale)
|
1121
|
-
return false;
|
1122
|
-
else if (__isset.scale && !(scale == rhs.scale))
|
1123
|
-
return false;
|
1124
|
-
if (__isset.precision != rhs.__isset.precision)
|
1125
|
-
return false;
|
1126
|
-
else if (__isset.precision && !(precision == rhs.precision))
|
1127
|
-
return false;
|
1128
|
-
if (__isset.field_id != rhs.__isset.field_id)
|
1129
|
-
return false;
|
1130
|
-
else if (__isset.field_id && !(field_id == rhs.field_id))
|
1131
|
-
return false;
|
1132
|
-
if (__isset.logicalType != rhs.__isset.logicalType)
|
1133
|
-
return false;
|
1134
|
-
else if (__isset.logicalType && !(logicalType == rhs.logicalType))
|
1135
|
-
return false;
|
1136
|
-
return true;
|
1137
|
-
}
|
1138
|
-
bool operator != (const SchemaElement &rhs) const {
|
1139
|
-
return !(*this == rhs);
|
1140
|
-
}
|
1141
|
-
|
1142
|
-
bool operator < (const SchemaElement & ) const;
|
1143
|
-
|
1144
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1145
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
1291
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1292
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1146
1293
|
|
1147
1294
|
virtual void printTo(std::ostream& out) const;
|
1148
1295
|
};
|
@@ -1156,19 +1303,47 @@ typedef struct _DataPageHeader__isset {
|
|
1156
1303
|
bool statistics :1;
|
1157
1304
|
} _DataPageHeader__isset;
|
1158
1305
|
|
1159
|
-
|
1306
|
+
/**
|
1307
|
+
* Data page header
|
1308
|
+
*/
|
1309
|
+
class DataPageHeader : public virtual ::apache::thrift::TBase {
|
1160
1310
|
public:
|
1161
1311
|
|
1162
1312
|
DataPageHeader(const DataPageHeader&);
|
1163
1313
|
DataPageHeader& operator=(const DataPageHeader&);
|
1164
|
-
DataPageHeader()
|
1165
|
-
|
1166
|
-
|
1167
|
-
|
1314
|
+
DataPageHeader() noexcept;
|
1315
|
+
|
1316
|
+
virtual ~DataPageHeader() noexcept;
|
1317
|
+
/**
|
1318
|
+
* Number of values, including NULLs, in this data page.
|
1319
|
+
*
|
1320
|
+
* If a OffsetIndex is present, a page must begin at a row
|
1321
|
+
* boundary (repetition_level = 0). Otherwise, pages may begin
|
1322
|
+
* within a row (repetition_level > 0).
|
1323
|
+
*
|
1324
|
+
*/
|
1168
1325
|
int32_t num_values;
|
1326
|
+
/**
|
1327
|
+
* Encoding used for this data page *
|
1328
|
+
*
|
1329
|
+
* @see Encoding
|
1330
|
+
*/
|
1169
1331
|
Encoding::type encoding;
|
1332
|
+
/**
|
1333
|
+
* Encoding used for definition levels *
|
1334
|
+
*
|
1335
|
+
* @see Encoding
|
1336
|
+
*/
|
1170
1337
|
Encoding::type definition_level_encoding;
|
1338
|
+
/**
|
1339
|
+
* Encoding used for repetition levels *
|
1340
|
+
*
|
1341
|
+
* @see Encoding
|
1342
|
+
*/
|
1171
1343
|
Encoding::type repetition_level_encoding;
|
1344
|
+
/**
|
1345
|
+
* Optional statistics for the data in this page *
|
1346
|
+
*/
|
1172
1347
|
Statistics statistics;
|
1173
1348
|
|
1174
1349
|
_DataPageHeader__isset __isset;
|
@@ -1183,30 +1358,8 @@ class DataPageHeader : public virtual ::duckdb_apache::thrift::TBase {
|
|
1183
1358
|
|
1184
1359
|
void __set_statistics(const Statistics& val);
|
1185
1360
|
|
1186
|
-
|
1187
|
-
|
1188
|
-
if (!(num_values == rhs.num_values))
|
1189
|
-
return false;
|
1190
|
-
if (!(encoding == rhs.encoding))
|
1191
|
-
return false;
|
1192
|
-
if (!(definition_level_encoding == rhs.definition_level_encoding))
|
1193
|
-
return false;
|
1194
|
-
if (!(repetition_level_encoding == rhs.repetition_level_encoding))
|
1195
|
-
return false;
|
1196
|
-
if (__isset.statistics != rhs.__isset.statistics)
|
1197
|
-
return false;
|
1198
|
-
else if (__isset.statistics && !(statistics == rhs.statistics))
|
1199
|
-
return false;
|
1200
|
-
return true;
|
1201
|
-
}
|
1202
|
-
bool operator != (const DataPageHeader &rhs) const {
|
1203
|
-
return !(*this == rhs);
|
1204
|
-
}
|
1205
|
-
|
1206
|
-
bool operator < (const DataPageHeader & ) const;
|
1207
|
-
|
1208
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1209
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
1361
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1362
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1210
1363
|
|
1211
1364
|
virtual void printTo(std::ostream& out) const;
|
1212
1365
|
};
|
@@ -1216,28 +1369,17 @@ void swap(DataPageHeader &a, DataPageHeader &b);
|
|
1216
1369
|
std::ostream& operator<<(std::ostream& out, const DataPageHeader& obj);
|
1217
1370
|
|
1218
1371
|
|
1219
|
-
class IndexPageHeader : public virtual ::
|
1372
|
+
class IndexPageHeader : public virtual ::apache::thrift::TBase {
|
1220
1373
|
public:
|
1221
1374
|
|
1222
|
-
IndexPageHeader(const IndexPageHeader&);
|
1223
|
-
IndexPageHeader& operator=(const IndexPageHeader&);
|
1224
|
-
IndexPageHeader()
|
1225
|
-
}
|
1226
|
-
|
1227
|
-
virtual ~IndexPageHeader() throw();
|
1228
|
-
|
1229
|
-
bool operator == (const IndexPageHeader & /* rhs */) const
|
1230
|
-
{
|
1231
|
-
return true;
|
1232
|
-
}
|
1233
|
-
bool operator != (const IndexPageHeader &rhs) const {
|
1234
|
-
return !(*this == rhs);
|
1235
|
-
}
|
1375
|
+
IndexPageHeader(const IndexPageHeader&) noexcept;
|
1376
|
+
IndexPageHeader& operator=(const IndexPageHeader&) noexcept;
|
1377
|
+
IndexPageHeader() noexcept;
|
1236
1378
|
|
1237
|
-
|
1379
|
+
virtual ~IndexPageHeader() noexcept;
|
1238
1380
|
|
1239
|
-
uint32_t read(::
|
1240
|
-
uint32_t write(::
|
1381
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1382
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1241
1383
|
|
1242
1384
|
virtual void printTo(std::ostream& out) const;
|
1243
1385
|
};
|
@@ -1251,17 +1393,33 @@ typedef struct _DictionaryPageHeader__isset {
|
|
1251
1393
|
bool is_sorted :1;
|
1252
1394
|
} _DictionaryPageHeader__isset;
|
1253
1395
|
|
1254
|
-
|
1396
|
+
/**
|
1397
|
+
* The dictionary page must be placed at the first position of the column chunk
|
1398
|
+
* if it is partly or completely dictionary encoded. At most one dictionary page
|
1399
|
+
* can be placed in a column chunk.
|
1400
|
+
*
|
1401
|
+
*/
|
1402
|
+
class DictionaryPageHeader : public virtual ::apache::thrift::TBase {
|
1255
1403
|
public:
|
1256
1404
|
|
1257
|
-
DictionaryPageHeader(const DictionaryPageHeader&);
|
1258
|
-
DictionaryPageHeader& operator=(const DictionaryPageHeader&);
|
1259
|
-
DictionaryPageHeader()
|
1260
|
-
}
|
1405
|
+
DictionaryPageHeader(const DictionaryPageHeader&) noexcept;
|
1406
|
+
DictionaryPageHeader& operator=(const DictionaryPageHeader&) noexcept;
|
1407
|
+
DictionaryPageHeader() noexcept;
|
1261
1408
|
|
1262
|
-
virtual ~DictionaryPageHeader()
|
1409
|
+
virtual ~DictionaryPageHeader() noexcept;
|
1410
|
+
/**
|
1411
|
+
* Number of values in the dictionary *
|
1412
|
+
*/
|
1263
1413
|
int32_t num_values;
|
1414
|
+
/**
|
1415
|
+
* Encoding using this dictionary page *
|
1416
|
+
*
|
1417
|
+
* @see Encoding
|
1418
|
+
*/
|
1264
1419
|
Encoding::type encoding;
|
1420
|
+
/**
|
1421
|
+
* If true, the entries in the dictionary are sorted in ascending order *
|
1422
|
+
*/
|
1265
1423
|
bool is_sorted;
|
1266
1424
|
|
1267
1425
|
_DictionaryPageHeader__isset __isset;
|
@@ -1272,26 +1430,8 @@ class DictionaryPageHeader : public virtual ::duckdb_apache::thrift::TBase {
|
|
1272
1430
|
|
1273
1431
|
void __set_is_sorted(const bool val);
|
1274
1432
|
|
1275
|
-
|
1276
|
-
|
1277
|
-
if (!(num_values == rhs.num_values))
|
1278
|
-
return false;
|
1279
|
-
if (!(encoding == rhs.encoding))
|
1280
|
-
return false;
|
1281
|
-
if (__isset.is_sorted != rhs.__isset.is_sorted)
|
1282
|
-
return false;
|
1283
|
-
else if (__isset.is_sorted && !(is_sorted == rhs.is_sorted))
|
1284
|
-
return false;
|
1285
|
-
return true;
|
1286
|
-
}
|
1287
|
-
bool operator != (const DictionaryPageHeader &rhs) const {
|
1288
|
-
return !(*this == rhs);
|
1289
|
-
}
|
1290
|
-
|
1291
|
-
bool operator < (const DictionaryPageHeader & ) const;
|
1292
|
-
|
1293
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1294
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
1433
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1434
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1295
1435
|
|
1296
1436
|
virtual void printTo(std::ostream& out) const;
|
1297
1437
|
};
|
@@ -1306,22 +1446,61 @@ typedef struct _DataPageHeaderV2__isset {
|
|
1306
1446
|
bool statistics :1;
|
1307
1447
|
} _DataPageHeaderV2__isset;
|
1308
1448
|
|
1309
|
-
|
1449
|
+
/**
|
1450
|
+
* New page format allowing reading levels without decompressing the data
|
1451
|
+
* Repetition and definition levels are uncompressed
|
1452
|
+
* The remaining section containing the data is compressed if is_compressed is true
|
1453
|
+
*
|
1454
|
+
*/
|
1455
|
+
class DataPageHeaderV2 : public virtual ::apache::thrift::TBase {
|
1310
1456
|
public:
|
1311
1457
|
|
1312
1458
|
DataPageHeaderV2(const DataPageHeaderV2&);
|
1313
1459
|
DataPageHeaderV2& operator=(const DataPageHeaderV2&);
|
1314
|
-
DataPageHeaderV2()
|
1315
|
-
}
|
1460
|
+
DataPageHeaderV2() noexcept;
|
1316
1461
|
|
1317
|
-
virtual ~DataPageHeaderV2()
|
1462
|
+
virtual ~DataPageHeaderV2() noexcept;
|
1463
|
+
/**
|
1464
|
+
* Number of values, including NULLs, in this data page. *
|
1465
|
+
*/
|
1318
1466
|
int32_t num_values;
|
1467
|
+
/**
|
1468
|
+
* Number of NULL values, in this data page.
|
1469
|
+
* Number of non-null = num_values - num_nulls which is also the number of values in the data section *
|
1470
|
+
*/
|
1319
1471
|
int32_t num_nulls;
|
1472
|
+
/**
|
1473
|
+
* Number of rows in this data page. Every page must begin at a
|
1474
|
+
* row boundary (repetition_level = 0): rows must **not** be
|
1475
|
+
* split across page boundaries when using V2 data pages.
|
1476
|
+
*
|
1477
|
+
*/
|
1320
1478
|
int32_t num_rows;
|
1479
|
+
/**
|
1480
|
+
* Encoding used for data in this page *
|
1481
|
+
*
|
1482
|
+
* @see Encoding
|
1483
|
+
*/
|
1321
1484
|
Encoding::type encoding;
|
1485
|
+
/**
|
1486
|
+
* Length of the definition levels
|
1487
|
+
*/
|
1322
1488
|
int32_t definition_levels_byte_length;
|
1489
|
+
/**
|
1490
|
+
* Length of the repetition levels
|
1491
|
+
*/
|
1323
1492
|
int32_t repetition_levels_byte_length;
|
1493
|
+
/**
|
1494
|
+
* Whether the values are compressed.
|
1495
|
+
* Which means the section of the page between
|
1496
|
+
* definition_levels_byte_length + repetition_levels_byte_length + 1 and compressed_page_size (included)
|
1497
|
+
* is compressed with the compression_codec.
|
1498
|
+
* If missing it is considered compressed
|
1499
|
+
*/
|
1324
1500
|
bool is_compressed;
|
1501
|
+
/**
|
1502
|
+
* Optional statistics for the data in this page *
|
1503
|
+
*/
|
1325
1504
|
Statistics statistics;
|
1326
1505
|
|
1327
1506
|
_DataPageHeaderV2__isset __isset;
|
@@ -1342,38 +1521,8 @@ class DataPageHeaderV2 : public virtual ::duckdb_apache::thrift::TBase {
|
|
1342
1521
|
|
1343
1522
|
void __set_statistics(const Statistics& val);
|
1344
1523
|
|
1345
|
-
|
1346
|
-
|
1347
|
-
if (!(num_values == rhs.num_values))
|
1348
|
-
return false;
|
1349
|
-
if (!(num_nulls == rhs.num_nulls))
|
1350
|
-
return false;
|
1351
|
-
if (!(num_rows == rhs.num_rows))
|
1352
|
-
return false;
|
1353
|
-
if (!(encoding == rhs.encoding))
|
1354
|
-
return false;
|
1355
|
-
if (!(definition_levels_byte_length == rhs.definition_levels_byte_length))
|
1356
|
-
return false;
|
1357
|
-
if (!(repetition_levels_byte_length == rhs.repetition_levels_byte_length))
|
1358
|
-
return false;
|
1359
|
-
if (__isset.is_compressed != rhs.__isset.is_compressed)
|
1360
|
-
return false;
|
1361
|
-
else if (__isset.is_compressed && !(is_compressed == rhs.is_compressed))
|
1362
|
-
return false;
|
1363
|
-
if (__isset.statistics != rhs.__isset.statistics)
|
1364
|
-
return false;
|
1365
|
-
else if (__isset.statistics && !(statistics == rhs.statistics))
|
1366
|
-
return false;
|
1367
|
-
return true;
|
1368
|
-
}
|
1369
|
-
bool operator != (const DataPageHeaderV2 &rhs) const {
|
1370
|
-
return !(*this == rhs);
|
1371
|
-
}
|
1372
|
-
|
1373
|
-
bool operator < (const DataPageHeaderV2 & ) const;
|
1374
|
-
|
1375
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1376
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
1524
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1525
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1377
1526
|
|
1378
1527
|
virtual void printTo(std::ostream& out) const;
|
1379
1528
|
};
|
@@ -1382,6 +1531,228 @@ void swap(DataPageHeaderV2 &a, DataPageHeaderV2 &b);
|
|
1382
1531
|
|
1383
1532
|
std::ostream& operator<<(std::ostream& out, const DataPageHeaderV2& obj);
|
1384
1533
|
|
1534
|
+
|
1535
|
+
/**
|
1536
|
+
* Block-based algorithm type annotation. *
|
1537
|
+
*/
|
1538
|
+
class SplitBlockAlgorithm : public virtual ::apache::thrift::TBase {
|
1539
|
+
public:
|
1540
|
+
|
1541
|
+
SplitBlockAlgorithm(const SplitBlockAlgorithm&) noexcept;
|
1542
|
+
SplitBlockAlgorithm& operator=(const SplitBlockAlgorithm&) noexcept;
|
1543
|
+
SplitBlockAlgorithm() noexcept;
|
1544
|
+
|
1545
|
+
virtual ~SplitBlockAlgorithm() noexcept;
|
1546
|
+
|
1547
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1548
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1549
|
+
|
1550
|
+
virtual void printTo(std::ostream& out) const;
|
1551
|
+
};
|
1552
|
+
|
1553
|
+
void swap(SplitBlockAlgorithm &a, SplitBlockAlgorithm &b);
|
1554
|
+
|
1555
|
+
std::ostream& operator<<(std::ostream& out, const SplitBlockAlgorithm& obj);
|
1556
|
+
|
1557
|
+
typedef struct _BloomFilterAlgorithm__isset {
|
1558
|
+
_BloomFilterAlgorithm__isset() : BLOCK(false) {}
|
1559
|
+
bool BLOCK :1;
|
1560
|
+
} _BloomFilterAlgorithm__isset;
|
1561
|
+
|
1562
|
+
/**
|
1563
|
+
* The algorithm used in Bloom filter. *
|
1564
|
+
*/
|
1565
|
+
class BloomFilterAlgorithm : public virtual ::apache::thrift::TBase {
|
1566
|
+
public:
|
1567
|
+
|
1568
|
+
BloomFilterAlgorithm(const BloomFilterAlgorithm&) noexcept;
|
1569
|
+
BloomFilterAlgorithm& operator=(const BloomFilterAlgorithm&) noexcept;
|
1570
|
+
BloomFilterAlgorithm() noexcept;
|
1571
|
+
|
1572
|
+
virtual ~BloomFilterAlgorithm() noexcept;
|
1573
|
+
/**
|
1574
|
+
* Block-based Bloom filter. *
|
1575
|
+
*/
|
1576
|
+
SplitBlockAlgorithm BLOCK;
|
1577
|
+
|
1578
|
+
_BloomFilterAlgorithm__isset __isset;
|
1579
|
+
|
1580
|
+
void __set_BLOCK(const SplitBlockAlgorithm& val);
|
1581
|
+
|
1582
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1583
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1584
|
+
|
1585
|
+
virtual void printTo(std::ostream& out) const;
|
1586
|
+
};
|
1587
|
+
|
1588
|
+
void swap(BloomFilterAlgorithm &a, BloomFilterAlgorithm &b);
|
1589
|
+
|
1590
|
+
std::ostream& operator<<(std::ostream& out, const BloomFilterAlgorithm& obj);
|
1591
|
+
|
1592
|
+
|
1593
|
+
/**
|
1594
|
+
* Hash strategy type annotation. xxHash is an extremely fast non-cryptographic hash
|
1595
|
+
* algorithm. It uses 64 bits version of xxHash.
|
1596
|
+
*
|
1597
|
+
*/
|
1598
|
+
class XxHash : public virtual ::apache::thrift::TBase {
|
1599
|
+
public:
|
1600
|
+
|
1601
|
+
XxHash(const XxHash&) noexcept;
|
1602
|
+
XxHash& operator=(const XxHash&) noexcept;
|
1603
|
+
XxHash() noexcept;
|
1604
|
+
|
1605
|
+
virtual ~XxHash() noexcept;
|
1606
|
+
|
1607
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1608
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1609
|
+
|
1610
|
+
virtual void printTo(std::ostream& out) const;
|
1611
|
+
};
|
1612
|
+
|
1613
|
+
void swap(XxHash &a, XxHash &b);
|
1614
|
+
|
1615
|
+
std::ostream& operator<<(std::ostream& out, const XxHash& obj);
|
1616
|
+
|
1617
|
+
typedef struct _BloomFilterHash__isset {
|
1618
|
+
_BloomFilterHash__isset() : XXHASH(false) {}
|
1619
|
+
bool XXHASH :1;
|
1620
|
+
} _BloomFilterHash__isset;
|
1621
|
+
|
1622
|
+
/**
|
1623
|
+
* The hash function used in Bloom filter. This function takes the hash of a column value
|
1624
|
+
* using plain encoding.
|
1625
|
+
*
|
1626
|
+
*/
|
1627
|
+
class BloomFilterHash : public virtual ::apache::thrift::TBase {
|
1628
|
+
public:
|
1629
|
+
|
1630
|
+
BloomFilterHash(const BloomFilterHash&) noexcept;
|
1631
|
+
BloomFilterHash& operator=(const BloomFilterHash&) noexcept;
|
1632
|
+
BloomFilterHash() noexcept;
|
1633
|
+
|
1634
|
+
virtual ~BloomFilterHash() noexcept;
|
1635
|
+
/**
|
1636
|
+
* xxHash Strategy. *
|
1637
|
+
*/
|
1638
|
+
XxHash XXHASH;
|
1639
|
+
|
1640
|
+
_BloomFilterHash__isset __isset;
|
1641
|
+
|
1642
|
+
void __set_XXHASH(const XxHash& val);
|
1643
|
+
|
1644
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1645
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1646
|
+
|
1647
|
+
virtual void printTo(std::ostream& out) const;
|
1648
|
+
};
|
1649
|
+
|
1650
|
+
void swap(BloomFilterHash &a, BloomFilterHash &b);
|
1651
|
+
|
1652
|
+
std::ostream& operator<<(std::ostream& out, const BloomFilterHash& obj);
|
1653
|
+
|
1654
|
+
|
1655
|
+
/**
|
1656
|
+
* The compression used in the Bloom filter.
|
1657
|
+
*
|
1658
|
+
*/
|
1659
|
+
class Uncompressed : public virtual ::apache::thrift::TBase {
|
1660
|
+
public:
|
1661
|
+
|
1662
|
+
Uncompressed(const Uncompressed&) noexcept;
|
1663
|
+
Uncompressed& operator=(const Uncompressed&) noexcept;
|
1664
|
+
Uncompressed() noexcept;
|
1665
|
+
|
1666
|
+
virtual ~Uncompressed() noexcept;
|
1667
|
+
|
1668
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1669
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1670
|
+
|
1671
|
+
virtual void printTo(std::ostream& out) const;
|
1672
|
+
};
|
1673
|
+
|
1674
|
+
void swap(Uncompressed &a, Uncompressed &b);
|
1675
|
+
|
1676
|
+
std::ostream& operator<<(std::ostream& out, const Uncompressed& obj);
|
1677
|
+
|
1678
|
+
typedef struct _BloomFilterCompression__isset {
|
1679
|
+
_BloomFilterCompression__isset() : UNCOMPRESSED(false) {}
|
1680
|
+
bool UNCOMPRESSED :1;
|
1681
|
+
} _BloomFilterCompression__isset;
|
1682
|
+
|
1683
|
+
class BloomFilterCompression : public virtual ::apache::thrift::TBase {
|
1684
|
+
public:
|
1685
|
+
|
1686
|
+
BloomFilterCompression(const BloomFilterCompression&) noexcept;
|
1687
|
+
BloomFilterCompression& operator=(const BloomFilterCompression&) noexcept;
|
1688
|
+
BloomFilterCompression() noexcept;
|
1689
|
+
|
1690
|
+
virtual ~BloomFilterCompression() noexcept;
|
1691
|
+
Uncompressed UNCOMPRESSED;
|
1692
|
+
|
1693
|
+
_BloomFilterCompression__isset __isset;
|
1694
|
+
|
1695
|
+
void __set_UNCOMPRESSED(const Uncompressed& val);
|
1696
|
+
|
1697
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1698
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1699
|
+
|
1700
|
+
virtual void printTo(std::ostream& out) const;
|
1701
|
+
};
|
1702
|
+
|
1703
|
+
void swap(BloomFilterCompression &a, BloomFilterCompression &b);
|
1704
|
+
|
1705
|
+
std::ostream& operator<<(std::ostream& out, const BloomFilterCompression& obj);
|
1706
|
+
|
1707
|
+
|
1708
|
+
/**
|
1709
|
+
* Bloom filter header is stored at beginning of Bloom filter data of each column
|
1710
|
+
* and followed by its bitset.
|
1711
|
+
*
|
1712
|
+
*/
|
1713
|
+
class BloomFilterHeader : public virtual ::apache::thrift::TBase {
|
1714
|
+
public:
|
1715
|
+
|
1716
|
+
BloomFilterHeader(const BloomFilterHeader&) noexcept;
|
1717
|
+
BloomFilterHeader& operator=(const BloomFilterHeader&) noexcept;
|
1718
|
+
BloomFilterHeader() noexcept;
|
1719
|
+
|
1720
|
+
virtual ~BloomFilterHeader() noexcept;
|
1721
|
+
/**
|
1722
|
+
* The size of bitset in bytes *
|
1723
|
+
*/
|
1724
|
+
int32_t numBytes;
|
1725
|
+
/**
|
1726
|
+
* The algorithm for setting bits. *
|
1727
|
+
*/
|
1728
|
+
BloomFilterAlgorithm algorithm;
|
1729
|
+
/**
|
1730
|
+
* The hash function used for Bloom filter. *
|
1731
|
+
*/
|
1732
|
+
BloomFilterHash hash;
|
1733
|
+
/**
|
1734
|
+
* The compression used in the Bloom filter *
|
1735
|
+
*/
|
1736
|
+
BloomFilterCompression compression;
|
1737
|
+
|
1738
|
+
void __set_numBytes(const int32_t val);
|
1739
|
+
|
1740
|
+
void __set_algorithm(const BloomFilterAlgorithm& val);
|
1741
|
+
|
1742
|
+
void __set_hash(const BloomFilterHash& val);
|
1743
|
+
|
1744
|
+
void __set_compression(const BloomFilterCompression& val);
|
1745
|
+
|
1746
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1747
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1748
|
+
|
1749
|
+
virtual void printTo(std::ostream& out) const;
|
1750
|
+
};
|
1751
|
+
|
1752
|
+
void swap(BloomFilterHeader &a, BloomFilterHeader &b);
|
1753
|
+
|
1754
|
+
std::ostream& operator<<(std::ostream& out, const BloomFilterHeader& obj);
|
1755
|
+
|
1385
1756
|
typedef struct _PageHeader__isset {
|
1386
1757
|
_PageHeader__isset() : crc(false), data_page_header(false), index_page_header(false), dictionary_page_header(false), data_page_header_v2(false) {}
|
1387
1758
|
bool crc :1;
|
@@ -1391,18 +1762,46 @@ typedef struct _PageHeader__isset {
|
|
1391
1762
|
bool data_page_header_v2 :1;
|
1392
1763
|
} _PageHeader__isset;
|
1393
1764
|
|
1394
|
-
class PageHeader : public virtual ::
|
1765
|
+
class PageHeader : public virtual ::apache::thrift::TBase {
|
1395
1766
|
public:
|
1396
1767
|
|
1397
1768
|
PageHeader(const PageHeader&);
|
1398
1769
|
PageHeader& operator=(const PageHeader&);
|
1399
|
-
PageHeader()
|
1400
|
-
|
1401
|
-
|
1402
|
-
|
1770
|
+
PageHeader() noexcept;
|
1771
|
+
|
1772
|
+
virtual ~PageHeader() noexcept;
|
1773
|
+
/**
|
1774
|
+
* the type of the page: indicates which of the *_header fields is set *
|
1775
|
+
*
|
1776
|
+
* @see PageType
|
1777
|
+
*/
|
1403
1778
|
PageType::type type;
|
1779
|
+
/**
|
1780
|
+
* Uncompressed page size in bytes (not including this header) *
|
1781
|
+
*/
|
1404
1782
|
int32_t uncompressed_page_size;
|
1783
|
+
/**
|
1784
|
+
* Compressed (and potentially encrypted) page size in bytes, not including this header *
|
1785
|
+
*/
|
1405
1786
|
int32_t compressed_page_size;
|
1787
|
+
/**
|
1788
|
+
* The 32-bit CRC checksum for the page, to be be calculated as follows:
|
1789
|
+
*
|
1790
|
+
* - The standard CRC32 algorithm is used (with polynomial 0x04C11DB7,
|
1791
|
+
* the same as in e.g. GZip).
|
1792
|
+
* - All page types can have a CRC (v1 and v2 data pages, dictionary pages,
|
1793
|
+
* etc.).
|
1794
|
+
* - The CRC is computed on the serialization binary representation of the page
|
1795
|
+
* (as written to disk), excluding the page header. For example, for v1
|
1796
|
+
* data pages, the CRC is computed on the concatenation of repetition levels,
|
1797
|
+
* definition levels and column values (optionally compressed, optionally
|
1798
|
+
* encrypted).
|
1799
|
+
* - The CRC computation therefore takes place after any compression
|
1800
|
+
* and encryption steps, if any.
|
1801
|
+
*
|
1802
|
+
* If enabled, this allows for disabling checksumming in HDFS if only a few
|
1803
|
+
* pages need to be read.
|
1804
|
+
*/
|
1406
1805
|
int32_t crc;
|
1407
1806
|
DataPageHeader data_page_header;
|
1408
1807
|
IndexPageHeader index_page_header;
|
@@ -1427,44 +1826,8 @@ class PageHeader : public virtual ::duckdb_apache::thrift::TBase {
|
|
1427
1826
|
|
1428
1827
|
void __set_data_page_header_v2(const DataPageHeaderV2& val);
|
1429
1828
|
|
1430
|
-
|
1431
|
-
|
1432
|
-
if (!(type == rhs.type))
|
1433
|
-
return false;
|
1434
|
-
if (!(uncompressed_page_size == rhs.uncompressed_page_size))
|
1435
|
-
return false;
|
1436
|
-
if (!(compressed_page_size == rhs.compressed_page_size))
|
1437
|
-
return false;
|
1438
|
-
if (__isset.crc != rhs.__isset.crc)
|
1439
|
-
return false;
|
1440
|
-
else if (__isset.crc && !(crc == rhs.crc))
|
1441
|
-
return false;
|
1442
|
-
if (__isset.data_page_header != rhs.__isset.data_page_header)
|
1443
|
-
return false;
|
1444
|
-
else if (__isset.data_page_header && !(data_page_header == rhs.data_page_header))
|
1445
|
-
return false;
|
1446
|
-
if (__isset.index_page_header != rhs.__isset.index_page_header)
|
1447
|
-
return false;
|
1448
|
-
else if (__isset.index_page_header && !(index_page_header == rhs.index_page_header))
|
1449
|
-
return false;
|
1450
|
-
if (__isset.dictionary_page_header != rhs.__isset.dictionary_page_header)
|
1451
|
-
return false;
|
1452
|
-
else if (__isset.dictionary_page_header && !(dictionary_page_header == rhs.dictionary_page_header))
|
1453
|
-
return false;
|
1454
|
-
if (__isset.data_page_header_v2 != rhs.__isset.data_page_header_v2)
|
1455
|
-
return false;
|
1456
|
-
else if (__isset.data_page_header_v2 && !(data_page_header_v2 == rhs.data_page_header_v2))
|
1457
|
-
return false;
|
1458
|
-
return true;
|
1459
|
-
}
|
1460
|
-
bool operator != (const PageHeader &rhs) const {
|
1461
|
-
return !(*this == rhs);
|
1462
|
-
}
|
1463
|
-
|
1464
|
-
bool operator < (const PageHeader & ) const;
|
1465
|
-
|
1466
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1467
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
1829
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1830
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1468
1831
|
|
1469
1832
|
virtual void printTo(std::ostream& out) const;
|
1470
1833
|
};
|
@@ -1478,15 +1841,17 @@ typedef struct _KeyValue__isset {
|
|
1478
1841
|
bool value :1;
|
1479
1842
|
} _KeyValue__isset;
|
1480
1843
|
|
1481
|
-
|
1844
|
+
/**
|
1845
|
+
* Wrapper struct to store key values
|
1846
|
+
*/
|
1847
|
+
class KeyValue : public virtual ::apache::thrift::TBase {
|
1482
1848
|
public:
|
1483
1849
|
|
1484
1850
|
KeyValue(const KeyValue&);
|
1485
1851
|
KeyValue& operator=(const KeyValue&);
|
1486
|
-
KeyValue()
|
1487
|
-
}
|
1852
|
+
KeyValue() noexcept;
|
1488
1853
|
|
1489
|
-
virtual ~KeyValue()
|
1854
|
+
virtual ~KeyValue() noexcept;
|
1490
1855
|
std::string key;
|
1491
1856
|
std::string value;
|
1492
1857
|
|
@@ -1496,24 +1861,8 @@ class KeyValue : public virtual ::duckdb_apache::thrift::TBase {
|
|
1496
1861
|
|
1497
1862
|
void __set_value(const std::string& val);
|
1498
1863
|
|
1499
|
-
|
1500
|
-
|
1501
|
-
if (!(key == rhs.key))
|
1502
|
-
return false;
|
1503
|
-
if (__isset.value != rhs.__isset.value)
|
1504
|
-
return false;
|
1505
|
-
else if (__isset.value && !(value == rhs.value))
|
1506
|
-
return false;
|
1507
|
-
return true;
|
1508
|
-
}
|
1509
|
-
bool operator != (const KeyValue &rhs) const {
|
1510
|
-
return !(*this == rhs);
|
1511
|
-
}
|
1512
|
-
|
1513
|
-
bool operator < (const KeyValue & ) const;
|
1514
|
-
|
1515
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1516
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
1864
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1865
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1517
1866
|
|
1518
1867
|
virtual void printTo(std::ostream& out) const;
|
1519
1868
|
};
|
@@ -1523,17 +1872,29 @@ void swap(KeyValue &a, KeyValue &b);
|
|
1523
1872
|
std::ostream& operator<<(std::ostream& out, const KeyValue& obj);
|
1524
1873
|
|
1525
1874
|
|
1526
|
-
|
1875
|
+
/**
|
1876
|
+
* Sort order within a RowGroup of a leaf column
|
1877
|
+
*/
|
1878
|
+
class SortingColumn : public virtual ::apache::thrift::TBase {
|
1527
1879
|
public:
|
1528
1880
|
|
1529
|
-
SortingColumn(const SortingColumn&);
|
1530
|
-
SortingColumn& operator=(const SortingColumn&);
|
1531
|
-
SortingColumn()
|
1532
|
-
}
|
1881
|
+
SortingColumn(const SortingColumn&) noexcept;
|
1882
|
+
SortingColumn& operator=(const SortingColumn&) noexcept;
|
1883
|
+
SortingColumn() noexcept;
|
1533
1884
|
|
1534
|
-
virtual ~SortingColumn()
|
1885
|
+
virtual ~SortingColumn() noexcept;
|
1886
|
+
/**
|
1887
|
+
* The ordinal position of the column (in this row group) *
|
1888
|
+
*/
|
1535
1889
|
int32_t column_idx;
|
1890
|
+
/**
|
1891
|
+
* If true, indicates this column is sorted in descending order. *
|
1892
|
+
*/
|
1536
1893
|
bool descending;
|
1894
|
+
/**
|
1895
|
+
* If true, nulls will come before non-null values, otherwise,
|
1896
|
+
* nulls go at the end.
|
1897
|
+
*/
|
1537
1898
|
bool nulls_first;
|
1538
1899
|
|
1539
1900
|
void __set_column_idx(const int32_t val);
|
@@ -1542,24 +1903,8 @@ class SortingColumn : public virtual ::duckdb_apache::thrift::TBase {
|
|
1542
1903
|
|
1543
1904
|
void __set_nulls_first(const bool val);
|
1544
1905
|
|
1545
|
-
|
1546
|
-
|
1547
|
-
if (!(column_idx == rhs.column_idx))
|
1548
|
-
return false;
|
1549
|
-
if (!(descending == rhs.descending))
|
1550
|
-
return false;
|
1551
|
-
if (!(nulls_first == rhs.nulls_first))
|
1552
|
-
return false;
|
1553
|
-
return true;
|
1554
|
-
}
|
1555
|
-
bool operator != (const SortingColumn &rhs) const {
|
1556
|
-
return !(*this == rhs);
|
1557
|
-
}
|
1558
|
-
|
1559
|
-
bool operator < (const SortingColumn & ) const;
|
1560
|
-
|
1561
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1562
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
1906
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1907
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1563
1908
|
|
1564
1909
|
virtual void printTo(std::ostream& out) const;
|
1565
1910
|
};
|
@@ -1569,17 +1914,32 @@ void swap(SortingColumn &a, SortingColumn &b);
|
|
1569
1914
|
std::ostream& operator<<(std::ostream& out, const SortingColumn& obj);
|
1570
1915
|
|
1571
1916
|
|
1572
|
-
|
1917
|
+
/**
|
1918
|
+
* statistics of a given page type and encoding
|
1919
|
+
*/
|
1920
|
+
class PageEncodingStats : public virtual ::apache::thrift::TBase {
|
1573
1921
|
public:
|
1574
1922
|
|
1575
|
-
PageEncodingStats(const PageEncodingStats&);
|
1576
|
-
PageEncodingStats& operator=(const PageEncodingStats&);
|
1577
|
-
PageEncodingStats()
|
1578
|
-
}
|
1923
|
+
PageEncodingStats(const PageEncodingStats&) noexcept;
|
1924
|
+
PageEncodingStats& operator=(const PageEncodingStats&) noexcept;
|
1925
|
+
PageEncodingStats() noexcept;
|
1579
1926
|
|
1580
|
-
virtual ~PageEncodingStats()
|
1927
|
+
virtual ~PageEncodingStats() noexcept;
|
1928
|
+
/**
|
1929
|
+
* the page type (data/dic/...) *
|
1930
|
+
*
|
1931
|
+
* @see PageType
|
1932
|
+
*/
|
1581
1933
|
PageType::type page_type;
|
1934
|
+
/**
|
1935
|
+
* encoding of the page *
|
1936
|
+
*
|
1937
|
+
* @see Encoding
|
1938
|
+
*/
|
1582
1939
|
Encoding::type encoding;
|
1940
|
+
/**
|
1941
|
+
* number of pages of this type with this encoding *
|
1942
|
+
*/
|
1583
1943
|
int32_t count;
|
1584
1944
|
|
1585
1945
|
void __set_page_type(const PageType::type val);
|
@@ -1588,24 +1948,8 @@ class PageEncodingStats : public virtual ::duckdb_apache::thrift::TBase {
|
|
1588
1948
|
|
1589
1949
|
void __set_count(const int32_t val);
|
1590
1950
|
|
1591
|
-
|
1592
|
-
|
1593
|
-
if (!(page_type == rhs.page_type))
|
1594
|
-
return false;
|
1595
|
-
if (!(encoding == rhs.encoding))
|
1596
|
-
return false;
|
1597
|
-
if (!(count == rhs.count))
|
1598
|
-
return false;
|
1599
|
-
return true;
|
1600
|
-
}
|
1601
|
-
bool operator != (const PageEncodingStats &rhs) const {
|
1602
|
-
return !(*this == rhs);
|
1603
|
-
}
|
1604
|
-
|
1605
|
-
bool operator < (const PageEncodingStats & ) const;
|
1606
|
-
|
1607
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1608
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
1951
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
1952
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1609
1953
|
|
1610
1954
|
virtual void printTo(std::ostream& out) const;
|
1611
1955
|
};
|
@@ -1615,36 +1959,107 @@ void swap(PageEncodingStats &a, PageEncodingStats &b);
|
|
1615
1959
|
std::ostream& operator<<(std::ostream& out, const PageEncodingStats& obj);
|
1616
1960
|
|
1617
1961
|
typedef struct _ColumnMetaData__isset {
|
1618
|
-
_ColumnMetaData__isset() : key_value_metadata(false), index_page_offset(false), dictionary_page_offset(false), statistics(false), encoding_stats(false) {}
|
1962
|
+
_ColumnMetaData__isset() : key_value_metadata(false), index_page_offset(false), dictionary_page_offset(false), statistics(false), encoding_stats(false), bloom_filter_offset(false), bloom_filter_length(false), size_statistics(false) {}
|
1619
1963
|
bool key_value_metadata :1;
|
1620
1964
|
bool index_page_offset :1;
|
1621
1965
|
bool dictionary_page_offset :1;
|
1622
1966
|
bool statistics :1;
|
1623
1967
|
bool encoding_stats :1;
|
1968
|
+
bool bloom_filter_offset :1;
|
1969
|
+
bool bloom_filter_length :1;
|
1970
|
+
bool size_statistics :1;
|
1624
1971
|
} _ColumnMetaData__isset;
|
1625
1972
|
|
1626
|
-
|
1973
|
+
/**
|
1974
|
+
* Description for column metadata
|
1975
|
+
*/
|
1976
|
+
class ColumnMetaData : public virtual ::apache::thrift::TBase {
|
1627
1977
|
public:
|
1628
1978
|
|
1629
1979
|
ColumnMetaData(const ColumnMetaData&);
|
1630
1980
|
ColumnMetaData& operator=(const ColumnMetaData&);
|
1631
|
-
ColumnMetaData()
|
1632
|
-
|
1633
|
-
|
1634
|
-
|
1981
|
+
ColumnMetaData() noexcept;
|
1982
|
+
|
1983
|
+
virtual ~ColumnMetaData() noexcept;
|
1984
|
+
/**
|
1985
|
+
* Type of this column *
|
1986
|
+
*
|
1987
|
+
* @see Type
|
1988
|
+
*/
|
1635
1989
|
Type::type type;
|
1990
|
+
/**
|
1991
|
+
* Set of all encodings used for this column. The purpose is to validate
|
1992
|
+
* whether we can decode those pages. *
|
1993
|
+
*/
|
1636
1994
|
duckdb::vector<Encoding::type> encodings;
|
1995
|
+
/**
|
1996
|
+
* Path in schema *
|
1997
|
+
*/
|
1637
1998
|
duckdb::vector<std::string> path_in_schema;
|
1999
|
+
/**
|
2000
|
+
* Compression codec *
|
2001
|
+
*
|
2002
|
+
* @see CompressionCodec
|
2003
|
+
*/
|
1638
2004
|
CompressionCodec::type codec;
|
2005
|
+
/**
|
2006
|
+
* Number of values in this column *
|
2007
|
+
*/
|
1639
2008
|
int64_t num_values;
|
2009
|
+
/**
|
2010
|
+
* total byte size of all uncompressed pages in this column chunk (including the headers) *
|
2011
|
+
*/
|
1640
2012
|
int64_t total_uncompressed_size;
|
2013
|
+
/**
|
2014
|
+
* total byte size of all compressed, and potentially encrypted, pages
|
2015
|
+
* in this column chunk (including the headers) *
|
2016
|
+
*/
|
1641
2017
|
int64_t total_compressed_size;
|
2018
|
+
/**
|
2019
|
+
* Optional key/value metadata *
|
2020
|
+
*/
|
1642
2021
|
duckdb::vector<KeyValue> key_value_metadata;
|
2022
|
+
/**
|
2023
|
+
* Byte offset from beginning of file to first data page *
|
2024
|
+
*/
|
1643
2025
|
int64_t data_page_offset;
|
2026
|
+
/**
|
2027
|
+
* Byte offset from beginning of file to root index page *
|
2028
|
+
*/
|
1644
2029
|
int64_t index_page_offset;
|
2030
|
+
/**
|
2031
|
+
* Byte offset from the beginning of file to first (only) dictionary page *
|
2032
|
+
*/
|
1645
2033
|
int64_t dictionary_page_offset;
|
2034
|
+
/**
|
2035
|
+
* optional statistics for this column chunk
|
2036
|
+
*/
|
1646
2037
|
Statistics statistics;
|
2038
|
+
/**
|
2039
|
+
* Set of all encodings used for pages in this column chunk.
|
2040
|
+
* This information can be used to determine if all data pages are
|
2041
|
+
* dictionary encoded for example *
|
2042
|
+
*/
|
1647
2043
|
duckdb::vector<PageEncodingStats> encoding_stats;
|
2044
|
+
/**
|
2045
|
+
* Byte offset from beginning of file to Bloom filter data. *
|
2046
|
+
*/
|
2047
|
+
int64_t bloom_filter_offset;
|
2048
|
+
/**
|
2049
|
+
* Size of Bloom filter data including the serialized header, in bytes.
|
2050
|
+
* Added in 2.10 so readers may not read this field from old files and
|
2051
|
+
* it can be obtained after the BloomFilterHeader has been deserialized.
|
2052
|
+
* Writers should write this field so readers can read the bloom filter
|
2053
|
+
* in a single I/O.
|
2054
|
+
*/
|
2055
|
+
int32_t bloom_filter_length;
|
2056
|
+
/**
|
2057
|
+
* Optional statistics to help estimate total memory when converted to in-memory
|
2058
|
+
* representations. The histograms contained in these statistics can
|
2059
|
+
* also be useful in some cases for more fine-grained nullability/list length
|
2060
|
+
* filter pushdown.
|
2061
|
+
*/
|
2062
|
+
SizeStatistics size_statistics;
|
1648
2063
|
|
1649
2064
|
_ColumnMetaData__isset __isset;
|
1650
2065
|
|
@@ -1674,54 +2089,14 @@ class ColumnMetaData : public virtual ::duckdb_apache::thrift::TBase {
|
|
1674
2089
|
|
1675
2090
|
void __set_encoding_stats(const duckdb::vector<PageEncodingStats> & val);
|
1676
2091
|
|
1677
|
-
|
1678
|
-
|
1679
|
-
|
1680
|
-
|
1681
|
-
|
1682
|
-
|
1683
|
-
|
1684
|
-
|
1685
|
-
if (!(codec == rhs.codec))
|
1686
|
-
return false;
|
1687
|
-
if (!(num_values == rhs.num_values))
|
1688
|
-
return false;
|
1689
|
-
if (!(total_uncompressed_size == rhs.total_uncompressed_size))
|
1690
|
-
return false;
|
1691
|
-
if (!(total_compressed_size == rhs.total_compressed_size))
|
1692
|
-
return false;
|
1693
|
-
if (__isset.key_value_metadata != rhs.__isset.key_value_metadata)
|
1694
|
-
return false;
|
1695
|
-
else if (__isset.key_value_metadata && !(key_value_metadata == rhs.key_value_metadata))
|
1696
|
-
return false;
|
1697
|
-
if (!(data_page_offset == rhs.data_page_offset))
|
1698
|
-
return false;
|
1699
|
-
if (__isset.index_page_offset != rhs.__isset.index_page_offset)
|
1700
|
-
return false;
|
1701
|
-
else if (__isset.index_page_offset && !(index_page_offset == rhs.index_page_offset))
|
1702
|
-
return false;
|
1703
|
-
if (__isset.dictionary_page_offset != rhs.__isset.dictionary_page_offset)
|
1704
|
-
return false;
|
1705
|
-
else if (__isset.dictionary_page_offset && !(dictionary_page_offset == rhs.dictionary_page_offset))
|
1706
|
-
return false;
|
1707
|
-
if (__isset.statistics != rhs.__isset.statistics)
|
1708
|
-
return false;
|
1709
|
-
else if (__isset.statistics && !(statistics == rhs.statistics))
|
1710
|
-
return false;
|
1711
|
-
if (__isset.encoding_stats != rhs.__isset.encoding_stats)
|
1712
|
-
return false;
|
1713
|
-
else if (__isset.encoding_stats && !(encoding_stats == rhs.encoding_stats))
|
1714
|
-
return false;
|
1715
|
-
return true;
|
1716
|
-
}
|
1717
|
-
bool operator != (const ColumnMetaData &rhs) const {
|
1718
|
-
return !(*this == rhs);
|
1719
|
-
}
|
1720
|
-
|
1721
|
-
bool operator < (const ColumnMetaData & ) const;
|
1722
|
-
|
1723
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1724
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2092
|
+
void __set_bloom_filter_offset(const int64_t val);
|
2093
|
+
|
2094
|
+
void __set_bloom_filter_length(const int32_t val);
|
2095
|
+
|
2096
|
+
void __set_size_statistics(const SizeStatistics& val);
|
2097
|
+
|
2098
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2099
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1725
2100
|
|
1726
2101
|
virtual void printTo(std::ostream& out) const;
|
1727
2102
|
};
|
@@ -1731,28 +2106,17 @@ void swap(ColumnMetaData &a, ColumnMetaData &b);
|
|
1731
2106
|
std::ostream& operator<<(std::ostream& out, const ColumnMetaData& obj);
|
1732
2107
|
|
1733
2108
|
|
1734
|
-
class EncryptionWithFooterKey : public virtual ::
|
2109
|
+
class EncryptionWithFooterKey : public virtual ::apache::thrift::TBase {
|
1735
2110
|
public:
|
1736
2111
|
|
1737
|
-
EncryptionWithFooterKey(const EncryptionWithFooterKey&);
|
1738
|
-
EncryptionWithFooterKey& operator=(const EncryptionWithFooterKey&);
|
1739
|
-
EncryptionWithFooterKey()
|
1740
|
-
}
|
1741
|
-
|
1742
|
-
virtual ~EncryptionWithFooterKey() throw();
|
2112
|
+
EncryptionWithFooterKey(const EncryptionWithFooterKey&) noexcept;
|
2113
|
+
EncryptionWithFooterKey& operator=(const EncryptionWithFooterKey&) noexcept;
|
2114
|
+
EncryptionWithFooterKey() noexcept;
|
1743
2115
|
|
1744
|
-
|
1745
|
-
{
|
1746
|
-
return true;
|
1747
|
-
}
|
1748
|
-
bool operator != (const EncryptionWithFooterKey &rhs) const {
|
1749
|
-
return !(*this == rhs);
|
1750
|
-
}
|
2116
|
+
virtual ~EncryptionWithFooterKey() noexcept;
|
1751
2117
|
|
1752
|
-
|
1753
|
-
|
1754
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1755
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2118
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2119
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1756
2120
|
|
1757
2121
|
virtual void printTo(std::ostream& out) const;
|
1758
2122
|
};
|
@@ -1766,16 +2130,21 @@ typedef struct _EncryptionWithColumnKey__isset {
|
|
1766
2130
|
bool key_metadata :1;
|
1767
2131
|
} _EncryptionWithColumnKey__isset;
|
1768
2132
|
|
1769
|
-
class EncryptionWithColumnKey : public virtual ::
|
2133
|
+
class EncryptionWithColumnKey : public virtual ::apache::thrift::TBase {
|
1770
2134
|
public:
|
1771
2135
|
|
1772
2136
|
EncryptionWithColumnKey(const EncryptionWithColumnKey&);
|
1773
2137
|
EncryptionWithColumnKey& operator=(const EncryptionWithColumnKey&);
|
1774
|
-
EncryptionWithColumnKey()
|
1775
|
-
}
|
2138
|
+
EncryptionWithColumnKey() noexcept;
|
1776
2139
|
|
1777
|
-
virtual ~EncryptionWithColumnKey()
|
2140
|
+
virtual ~EncryptionWithColumnKey() noexcept;
|
2141
|
+
/**
|
2142
|
+
* Column path in schema *
|
2143
|
+
*/
|
1778
2144
|
duckdb::vector<std::string> path_in_schema;
|
2145
|
+
/**
|
2146
|
+
* Retrieval metadata of column encryption key *
|
2147
|
+
*/
|
1779
2148
|
std::string key_metadata;
|
1780
2149
|
|
1781
2150
|
_EncryptionWithColumnKey__isset __isset;
|
@@ -1784,24 +2153,8 @@ class EncryptionWithColumnKey : public virtual ::duckdb_apache::thrift::TBase {
|
|
1784
2153
|
|
1785
2154
|
void __set_key_metadata(const std::string& val);
|
1786
2155
|
|
1787
|
-
|
1788
|
-
|
1789
|
-
if (!(path_in_schema == rhs.path_in_schema))
|
1790
|
-
return false;
|
1791
|
-
if (__isset.key_metadata != rhs.__isset.key_metadata)
|
1792
|
-
return false;
|
1793
|
-
else if (__isset.key_metadata && !(key_metadata == rhs.key_metadata))
|
1794
|
-
return false;
|
1795
|
-
return true;
|
1796
|
-
}
|
1797
|
-
bool operator != (const EncryptionWithColumnKey &rhs) const {
|
1798
|
-
return !(*this == rhs);
|
1799
|
-
}
|
1800
|
-
|
1801
|
-
bool operator < (const EncryptionWithColumnKey & ) const;
|
1802
|
-
|
1803
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1804
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2156
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2157
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1805
2158
|
|
1806
2159
|
virtual void printTo(std::ostream& out) const;
|
1807
2160
|
};
|
@@ -1816,15 +2169,14 @@ typedef struct _ColumnCryptoMetaData__isset {
|
|
1816
2169
|
bool ENCRYPTION_WITH_COLUMN_KEY :1;
|
1817
2170
|
} _ColumnCryptoMetaData__isset;
|
1818
2171
|
|
1819
|
-
class ColumnCryptoMetaData : public virtual ::
|
2172
|
+
class ColumnCryptoMetaData : public virtual ::apache::thrift::TBase {
|
1820
2173
|
public:
|
1821
2174
|
|
1822
2175
|
ColumnCryptoMetaData(const ColumnCryptoMetaData&);
|
1823
2176
|
ColumnCryptoMetaData& operator=(const ColumnCryptoMetaData&);
|
1824
|
-
ColumnCryptoMetaData()
|
1825
|
-
}
|
2177
|
+
ColumnCryptoMetaData() noexcept;
|
1826
2178
|
|
1827
|
-
virtual ~ColumnCryptoMetaData()
|
2179
|
+
virtual ~ColumnCryptoMetaData() noexcept;
|
1828
2180
|
EncryptionWithFooterKey ENCRYPTION_WITH_FOOTER_KEY;
|
1829
2181
|
EncryptionWithColumnKey ENCRYPTION_WITH_COLUMN_KEY;
|
1830
2182
|
|
@@ -1834,26 +2186,8 @@ class ColumnCryptoMetaData : public virtual ::duckdb_apache::thrift::TBase {
|
|
1834
2186
|
|
1835
2187
|
void __set_ENCRYPTION_WITH_COLUMN_KEY(const EncryptionWithColumnKey& val);
|
1836
2188
|
|
1837
|
-
|
1838
|
-
|
1839
|
-
if (__isset.ENCRYPTION_WITH_FOOTER_KEY != rhs.__isset.ENCRYPTION_WITH_FOOTER_KEY)
|
1840
|
-
return false;
|
1841
|
-
else if (__isset.ENCRYPTION_WITH_FOOTER_KEY && !(ENCRYPTION_WITH_FOOTER_KEY == rhs.ENCRYPTION_WITH_FOOTER_KEY))
|
1842
|
-
return false;
|
1843
|
-
if (__isset.ENCRYPTION_WITH_COLUMN_KEY != rhs.__isset.ENCRYPTION_WITH_COLUMN_KEY)
|
1844
|
-
return false;
|
1845
|
-
else if (__isset.ENCRYPTION_WITH_COLUMN_KEY && !(ENCRYPTION_WITH_COLUMN_KEY == rhs.ENCRYPTION_WITH_COLUMN_KEY))
|
1846
|
-
return false;
|
1847
|
-
return true;
|
1848
|
-
}
|
1849
|
-
bool operator != (const ColumnCryptoMetaData &rhs) const {
|
1850
|
-
return !(*this == rhs);
|
1851
|
-
}
|
1852
|
-
|
1853
|
-
bool operator < (const ColumnCryptoMetaData & ) const;
|
1854
|
-
|
1855
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1856
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2189
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2190
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1857
2191
|
|
1858
2192
|
virtual void printTo(std::ostream& out) const;
|
1859
2193
|
};
|
@@ -1874,23 +2208,62 @@ typedef struct _ColumnChunk__isset {
|
|
1874
2208
|
bool encrypted_column_metadata :1;
|
1875
2209
|
} _ColumnChunk__isset;
|
1876
2210
|
|
1877
|
-
class ColumnChunk : public virtual ::
|
2211
|
+
class ColumnChunk : public virtual ::apache::thrift::TBase {
|
1878
2212
|
public:
|
1879
2213
|
|
1880
2214
|
ColumnChunk(const ColumnChunk&);
|
1881
2215
|
ColumnChunk& operator=(const ColumnChunk&);
|
1882
|
-
ColumnChunk()
|
1883
|
-
|
1884
|
-
|
1885
|
-
|
2216
|
+
ColumnChunk() noexcept;
|
2217
|
+
|
2218
|
+
virtual ~ColumnChunk() noexcept;
|
2219
|
+
/**
|
2220
|
+
* File where column data is stored. If not set, assumed to be same file as
|
2221
|
+
* metadata. This path is relative to the current file.
|
2222
|
+
*
|
2223
|
+
*/
|
1886
2224
|
std::string file_path;
|
2225
|
+
/**
|
2226
|
+
* Deprecated: Byte offset in file_path to the ColumnMetaData
|
2227
|
+
*
|
2228
|
+
* Past use of this field has been inconsistent, with some implementations
|
2229
|
+
* using it to point to the ColumnMetaData and some using it to point to
|
2230
|
+
* the first page in the column chunk. In many cases, the ColumnMetaData at this
|
2231
|
+
* location is wrong. This field is now deprecated and should not be used.
|
2232
|
+
* Writers should set this field to 0 if no ColumnMetaData has been written outside
|
2233
|
+
* the footer.
|
2234
|
+
*/
|
1887
2235
|
int64_t file_offset;
|
2236
|
+
/**
|
2237
|
+
* Column metadata for this chunk. Some writers may also replicate this at the
|
2238
|
+
* location pointed to by file_path/file_offset.
|
2239
|
+
* Note: while marked as optional, this field is in fact required by most major
|
2240
|
+
* Parquet implementations. As such, writers MUST populate this field.
|
2241
|
+
*
|
2242
|
+
*/
|
1888
2243
|
ColumnMetaData meta_data;
|
2244
|
+
/**
|
2245
|
+
* File offset of ColumnChunk's OffsetIndex *
|
2246
|
+
*/
|
1889
2247
|
int64_t offset_index_offset;
|
2248
|
+
/**
|
2249
|
+
* Size of ColumnChunk's OffsetIndex, in bytes *
|
2250
|
+
*/
|
1890
2251
|
int32_t offset_index_length;
|
2252
|
+
/**
|
2253
|
+
* File offset of ColumnChunk's ColumnIndex *
|
2254
|
+
*/
|
1891
2255
|
int64_t column_index_offset;
|
2256
|
+
/**
|
2257
|
+
* Size of ColumnChunk's ColumnIndex, in bytes *
|
2258
|
+
*/
|
1892
2259
|
int32_t column_index_length;
|
2260
|
+
/**
|
2261
|
+
* Crypto metadata of encrypted columns *
|
2262
|
+
*/
|
1893
2263
|
ColumnCryptoMetaData crypto_metadata;
|
2264
|
+
/**
|
2265
|
+
* Encrypted column metadata for this chunk *
|
2266
|
+
*/
|
1894
2267
|
std::string encrypted_column_metadata;
|
1895
2268
|
|
1896
2269
|
_ColumnChunk__isset __isset;
|
@@ -1913,52 +2286,8 @@ class ColumnChunk : public virtual ::duckdb_apache::thrift::TBase {
|
|
1913
2286
|
|
1914
2287
|
void __set_encrypted_column_metadata(const std::string& val);
|
1915
2288
|
|
1916
|
-
|
1917
|
-
|
1918
|
-
if (__isset.file_path != rhs.__isset.file_path)
|
1919
|
-
return false;
|
1920
|
-
else if (__isset.file_path && !(file_path == rhs.file_path))
|
1921
|
-
return false;
|
1922
|
-
if (!(file_offset == rhs.file_offset))
|
1923
|
-
return false;
|
1924
|
-
if (__isset.meta_data != rhs.__isset.meta_data)
|
1925
|
-
return false;
|
1926
|
-
else if (__isset.meta_data && !(meta_data == rhs.meta_data))
|
1927
|
-
return false;
|
1928
|
-
if (__isset.offset_index_offset != rhs.__isset.offset_index_offset)
|
1929
|
-
return false;
|
1930
|
-
else if (__isset.offset_index_offset && !(offset_index_offset == rhs.offset_index_offset))
|
1931
|
-
return false;
|
1932
|
-
if (__isset.offset_index_length != rhs.__isset.offset_index_length)
|
1933
|
-
return false;
|
1934
|
-
else if (__isset.offset_index_length && !(offset_index_length == rhs.offset_index_length))
|
1935
|
-
return false;
|
1936
|
-
if (__isset.column_index_offset != rhs.__isset.column_index_offset)
|
1937
|
-
return false;
|
1938
|
-
else if (__isset.column_index_offset && !(column_index_offset == rhs.column_index_offset))
|
1939
|
-
return false;
|
1940
|
-
if (__isset.column_index_length != rhs.__isset.column_index_length)
|
1941
|
-
return false;
|
1942
|
-
else if (__isset.column_index_length && !(column_index_length == rhs.column_index_length))
|
1943
|
-
return false;
|
1944
|
-
if (__isset.crypto_metadata != rhs.__isset.crypto_metadata)
|
1945
|
-
return false;
|
1946
|
-
else if (__isset.crypto_metadata && !(crypto_metadata == rhs.crypto_metadata))
|
1947
|
-
return false;
|
1948
|
-
if (__isset.encrypted_column_metadata != rhs.__isset.encrypted_column_metadata)
|
1949
|
-
return false;
|
1950
|
-
else if (__isset.encrypted_column_metadata && !(encrypted_column_metadata == rhs.encrypted_column_metadata))
|
1951
|
-
return false;
|
1952
|
-
return true;
|
1953
|
-
}
|
1954
|
-
bool operator != (const ColumnChunk &rhs) const {
|
1955
|
-
return !(*this == rhs);
|
1956
|
-
}
|
1957
|
-
|
1958
|
-
bool operator < (const ColumnChunk & ) const;
|
1959
|
-
|
1960
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
1961
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2289
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2290
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
1962
2291
|
|
1963
2292
|
virtual void printTo(std::ostream& out) const;
|
1964
2293
|
};
|
@@ -1975,21 +2304,46 @@ typedef struct _RowGroup__isset {
|
|
1975
2304
|
bool ordinal :1;
|
1976
2305
|
} _RowGroup__isset;
|
1977
2306
|
|
1978
|
-
class RowGroup : public virtual ::
|
2307
|
+
class RowGroup : public virtual ::apache::thrift::TBase {
|
1979
2308
|
public:
|
1980
2309
|
|
1981
2310
|
RowGroup(const RowGroup&);
|
1982
2311
|
RowGroup& operator=(const RowGroup&);
|
1983
|
-
RowGroup()
|
1984
|
-
|
1985
|
-
|
1986
|
-
|
2312
|
+
RowGroup() noexcept;
|
2313
|
+
|
2314
|
+
virtual ~RowGroup() noexcept;
|
2315
|
+
/**
|
2316
|
+
* Metadata for each column chunk in this row group.
|
2317
|
+
* This list must have the same order as the SchemaElement list in FileMetaData.
|
2318
|
+
*
|
2319
|
+
*/
|
1987
2320
|
duckdb::vector<ColumnChunk> columns;
|
2321
|
+
/**
|
2322
|
+
* Total byte size of all the uncompressed column data in this row group *
|
2323
|
+
*/
|
1988
2324
|
int64_t total_byte_size;
|
2325
|
+
/**
|
2326
|
+
* Number of rows in this row group *
|
2327
|
+
*/
|
1989
2328
|
int64_t num_rows;
|
2329
|
+
/**
|
2330
|
+
* If set, specifies a sort ordering of the rows in this RowGroup.
|
2331
|
+
* The sorting columns can be a subset of all the columns.
|
2332
|
+
*/
|
1990
2333
|
duckdb::vector<SortingColumn> sorting_columns;
|
2334
|
+
/**
|
2335
|
+
* Byte offset from beginning of file to first page (data or dictionary)
|
2336
|
+
* in this row group *
|
2337
|
+
*/
|
1991
2338
|
int64_t file_offset;
|
2339
|
+
/**
|
2340
|
+
* Total byte size of all compressed (and potentially encrypted) column data
|
2341
|
+
* in this row group *
|
2342
|
+
*/
|
1992
2343
|
int64_t total_compressed_size;
|
2344
|
+
/**
|
2345
|
+
* Row group ordinal in the file *
|
2346
|
+
*/
|
1993
2347
|
int16_t ordinal;
|
1994
2348
|
|
1995
2349
|
_RowGroup__isset __isset;
|
@@ -2008,40 +2362,8 @@ class RowGroup : public virtual ::duckdb_apache::thrift::TBase {
|
|
2008
2362
|
|
2009
2363
|
void __set_ordinal(const int16_t val);
|
2010
2364
|
|
2011
|
-
|
2012
|
-
|
2013
|
-
if (!(columns == rhs.columns))
|
2014
|
-
return false;
|
2015
|
-
if (!(total_byte_size == rhs.total_byte_size))
|
2016
|
-
return false;
|
2017
|
-
if (!(num_rows == rhs.num_rows))
|
2018
|
-
return false;
|
2019
|
-
if (__isset.sorting_columns != rhs.__isset.sorting_columns)
|
2020
|
-
return false;
|
2021
|
-
else if (__isset.sorting_columns && !(sorting_columns == rhs.sorting_columns))
|
2022
|
-
return false;
|
2023
|
-
if (__isset.file_offset != rhs.__isset.file_offset)
|
2024
|
-
return false;
|
2025
|
-
else if (__isset.file_offset && !(file_offset == rhs.file_offset))
|
2026
|
-
return false;
|
2027
|
-
if (__isset.total_compressed_size != rhs.__isset.total_compressed_size)
|
2028
|
-
return false;
|
2029
|
-
else if (__isset.total_compressed_size && !(total_compressed_size == rhs.total_compressed_size))
|
2030
|
-
return false;
|
2031
|
-
if (__isset.ordinal != rhs.__isset.ordinal)
|
2032
|
-
return false;
|
2033
|
-
else if (__isset.ordinal && !(ordinal == rhs.ordinal))
|
2034
|
-
return false;
|
2035
|
-
return true;
|
2036
|
-
}
|
2037
|
-
bool operator != (const RowGroup &rhs) const {
|
2038
|
-
return !(*this == rhs);
|
2039
|
-
}
|
2040
|
-
|
2041
|
-
bool operator < (const RowGroup & ) const;
|
2042
|
-
|
2043
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
2044
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2365
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2366
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
2045
2367
|
|
2046
2368
|
virtual void printTo(std::ostream& out) const;
|
2047
2369
|
};
|
@@ -2051,28 +2373,20 @@ void swap(RowGroup &a, RowGroup &b);
|
|
2051
2373
|
std::ostream& operator<<(std::ostream& out, const RowGroup& obj);
|
2052
2374
|
|
2053
2375
|
|
2054
|
-
|
2376
|
+
/**
|
2377
|
+
* Empty struct to signal the order defined by the physical or logical type
|
2378
|
+
*/
|
2379
|
+
class TypeDefinedOrder : public virtual ::apache::thrift::TBase {
|
2055
2380
|
public:
|
2056
2381
|
|
2057
|
-
TypeDefinedOrder(const TypeDefinedOrder&);
|
2058
|
-
TypeDefinedOrder& operator=(const TypeDefinedOrder&);
|
2059
|
-
TypeDefinedOrder()
|
2060
|
-
}
|
2061
|
-
|
2062
|
-
virtual ~TypeDefinedOrder() throw();
|
2382
|
+
TypeDefinedOrder(const TypeDefinedOrder&) noexcept;
|
2383
|
+
TypeDefinedOrder& operator=(const TypeDefinedOrder&) noexcept;
|
2384
|
+
TypeDefinedOrder() noexcept;
|
2063
2385
|
|
2064
|
-
|
2065
|
-
{
|
2066
|
-
return true;
|
2067
|
-
}
|
2068
|
-
bool operator != (const TypeDefinedOrder &rhs) const {
|
2069
|
-
return !(*this == rhs);
|
2070
|
-
}
|
2386
|
+
virtual ~TypeDefinedOrder() noexcept;
|
2071
2387
|
|
2072
|
-
|
2073
|
-
|
2074
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
2075
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2388
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2389
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
2076
2390
|
|
2077
2391
|
virtual void printTo(std::ostream& out) const;
|
2078
2392
|
};
|
@@ -2086,37 +2400,84 @@ typedef struct _ColumnOrder__isset {
|
|
2086
2400
|
bool TYPE_ORDER :1;
|
2087
2401
|
} _ColumnOrder__isset;
|
2088
2402
|
|
2089
|
-
|
2403
|
+
/**
|
2404
|
+
* Union to specify the order used for the min_value and max_value fields for a
|
2405
|
+
* column. This union takes the role of an enhanced enum that allows rich
|
2406
|
+
* elements (which will be needed for a collation-based ordering in the future).
|
2407
|
+
*
|
2408
|
+
* Possible values are:
|
2409
|
+
* * TypeDefinedOrder - the column uses the order defined by its logical or
|
2410
|
+
* physical type (if there is no logical type).
|
2411
|
+
*
|
2412
|
+
* If the reader does not support the value of this union, min and max stats
|
2413
|
+
* for this column should be ignored.
|
2414
|
+
*/
|
2415
|
+
class ColumnOrder : public virtual ::apache::thrift::TBase {
|
2090
2416
|
public:
|
2091
2417
|
|
2092
|
-
ColumnOrder(const ColumnOrder&);
|
2093
|
-
ColumnOrder& operator=(const ColumnOrder&);
|
2094
|
-
ColumnOrder()
|
2095
|
-
|
2096
|
-
|
2097
|
-
|
2418
|
+
ColumnOrder(const ColumnOrder&) noexcept;
|
2419
|
+
ColumnOrder& operator=(const ColumnOrder&) noexcept;
|
2420
|
+
ColumnOrder() noexcept;
|
2421
|
+
|
2422
|
+
virtual ~ColumnOrder() noexcept;
|
2423
|
+
/**
|
2424
|
+
* The sort orders for logical types are:
|
2425
|
+
* UTF8 - unsigned byte-wise comparison
|
2426
|
+
* INT8 - signed comparison
|
2427
|
+
* INT16 - signed comparison
|
2428
|
+
* INT32 - signed comparison
|
2429
|
+
* INT64 - signed comparison
|
2430
|
+
* UINT8 - unsigned comparison
|
2431
|
+
* UINT16 - unsigned comparison
|
2432
|
+
* UINT32 - unsigned comparison
|
2433
|
+
* UINT64 - unsigned comparison
|
2434
|
+
* DECIMAL - signed comparison of the represented value
|
2435
|
+
* DATE - signed comparison
|
2436
|
+
* TIME_MILLIS - signed comparison
|
2437
|
+
* TIME_MICROS - signed comparison
|
2438
|
+
* TIMESTAMP_MILLIS - signed comparison
|
2439
|
+
* TIMESTAMP_MICROS - signed comparison
|
2440
|
+
* INTERVAL - undefined
|
2441
|
+
* JSON - unsigned byte-wise comparison
|
2442
|
+
* BSON - unsigned byte-wise comparison
|
2443
|
+
* ENUM - unsigned byte-wise comparison
|
2444
|
+
* LIST - undefined
|
2445
|
+
* MAP - undefined
|
2446
|
+
*
|
2447
|
+
* In the absence of logical types, the sort order is determined by the physical type:
|
2448
|
+
* BOOLEAN - false, true
|
2449
|
+
* INT32 - signed comparison
|
2450
|
+
* INT64 - signed comparison
|
2451
|
+
* INT96 (only used for legacy timestamps) - undefined
|
2452
|
+
* FLOAT - signed comparison of the represented value (*)
|
2453
|
+
* DOUBLE - signed comparison of the represented value (*)
|
2454
|
+
* BYTE_ARRAY - unsigned byte-wise comparison
|
2455
|
+
* FIXED_LEN_BYTE_ARRAY - unsigned byte-wise comparison
|
2456
|
+
*
|
2457
|
+
* (*) Because the sorting order is not specified properly for floating
|
2458
|
+
* point values (relations vs. total ordering) the following
|
2459
|
+
* compatibility rules should be applied when reading statistics:
|
2460
|
+
* - If the min is a NaN, it should be ignored.
|
2461
|
+
* - If the max is a NaN, it should be ignored.
|
2462
|
+
* - If the min is +0, the row group may contain -0 values as well.
|
2463
|
+
* - If the max is -0, the row group may contain +0 values as well.
|
2464
|
+
* - When looking for NaN values, min and max should be ignored.
|
2465
|
+
*
|
2466
|
+
* When writing statistics the following rules should be followed:
|
2467
|
+
* - NaNs should not be written to min or max statistics fields.
|
2468
|
+
* - If the computed max value is zero (whether negative or positive),
|
2469
|
+
* `+0.0` should be written into the max statistics field.
|
2470
|
+
* - If the computed min value is zero (whether negative or positive),
|
2471
|
+
* `-0.0` should be written into the min statistics field.
|
2472
|
+
*/
|
2098
2473
|
TypeDefinedOrder TYPE_ORDER;
|
2099
2474
|
|
2100
2475
|
_ColumnOrder__isset __isset;
|
2101
2476
|
|
2102
2477
|
void __set_TYPE_ORDER(const TypeDefinedOrder& val);
|
2103
2478
|
|
2104
|
-
|
2105
|
-
|
2106
|
-
if (__isset.TYPE_ORDER != rhs.__isset.TYPE_ORDER)
|
2107
|
-
return false;
|
2108
|
-
else if (__isset.TYPE_ORDER && !(TYPE_ORDER == rhs.TYPE_ORDER))
|
2109
|
-
return false;
|
2110
|
-
return true;
|
2111
|
-
}
|
2112
|
-
bool operator != (const ColumnOrder &rhs) const {
|
2113
|
-
return !(*this == rhs);
|
2114
|
-
}
|
2115
|
-
|
2116
|
-
bool operator < (const ColumnOrder & ) const;
|
2117
|
-
|
2118
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
2119
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2479
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2480
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
2120
2481
|
|
2121
2482
|
virtual void printTo(std::ostream& out) const;
|
2122
2483
|
};
|
@@ -2126,17 +2487,28 @@ void swap(ColumnOrder &a, ColumnOrder &b);
|
|
2126
2487
|
std::ostream& operator<<(std::ostream& out, const ColumnOrder& obj);
|
2127
2488
|
|
2128
2489
|
|
2129
|
-
class PageLocation : public virtual ::
|
2490
|
+
class PageLocation : public virtual ::apache::thrift::TBase {
|
2130
2491
|
public:
|
2131
2492
|
|
2132
|
-
PageLocation(const PageLocation&);
|
2133
|
-
PageLocation& operator=(const PageLocation&);
|
2134
|
-
PageLocation()
|
2135
|
-
}
|
2493
|
+
PageLocation(const PageLocation&) noexcept;
|
2494
|
+
PageLocation& operator=(const PageLocation&) noexcept;
|
2495
|
+
PageLocation() noexcept;
|
2136
2496
|
|
2137
|
-
virtual ~PageLocation()
|
2497
|
+
virtual ~PageLocation() noexcept;
|
2498
|
+
/**
|
2499
|
+
* Offset of the page in the file *
|
2500
|
+
*/
|
2138
2501
|
int64_t offset;
|
2502
|
+
/**
|
2503
|
+
* Size of the page, including header. Sum of compressed_page_size and header
|
2504
|
+
* length
|
2505
|
+
*/
|
2139
2506
|
int32_t compressed_page_size;
|
2507
|
+
/**
|
2508
|
+
* Index within the RowGroup of the first row of the page. When an
|
2509
|
+
* OffsetIndex is present, pages must begin on row boundaries
|
2510
|
+
* (repetition_level = 0).
|
2511
|
+
*/
|
2140
2512
|
int64_t first_row_index;
|
2141
2513
|
|
2142
2514
|
void __set_offset(const int64_t val);
|
@@ -2145,24 +2517,8 @@ class PageLocation : public virtual ::duckdb_apache::thrift::TBase {
|
|
2145
2517
|
|
2146
2518
|
void __set_first_row_index(const int64_t val);
|
2147
2519
|
|
2148
|
-
|
2149
|
-
|
2150
|
-
if (!(offset == rhs.offset))
|
2151
|
-
return false;
|
2152
|
-
if (!(compressed_page_size == rhs.compressed_page_size))
|
2153
|
-
return false;
|
2154
|
-
if (!(first_row_index == rhs.first_row_index))
|
2155
|
-
return false;
|
2156
|
-
return true;
|
2157
|
-
}
|
2158
|
-
bool operator != (const PageLocation &rhs) const {
|
2159
|
-
return !(*this == rhs);
|
2160
|
-
}
|
2161
|
-
|
2162
|
-
bool operator < (const PageLocation & ) const;
|
2163
|
-
|
2164
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
2165
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2520
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2521
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
2166
2522
|
|
2167
2523
|
virtual void printTo(std::ostream& out) const;
|
2168
2524
|
};
|
@@ -2171,34 +2527,47 @@ void swap(PageLocation &a, PageLocation &b);
|
|
2171
2527
|
|
2172
2528
|
std::ostream& operator<<(std::ostream& out, const PageLocation& obj);
|
2173
2529
|
|
2530
|
+
typedef struct _OffsetIndex__isset {
|
2531
|
+
_OffsetIndex__isset() : unencoded_byte_array_data_bytes(false) {}
|
2532
|
+
bool unencoded_byte_array_data_bytes :1;
|
2533
|
+
} _OffsetIndex__isset;
|
2174
2534
|
|
2175
|
-
|
2535
|
+
/**
|
2536
|
+
* Optional offsets for each data page in a ColumnChunk.
|
2537
|
+
*
|
2538
|
+
* Forms part of the page index, along with ColumnIndex.
|
2539
|
+
*
|
2540
|
+
* OffsetIndex may be present even if ColumnIndex is not.
|
2541
|
+
*/
|
2542
|
+
class OffsetIndex : public virtual ::apache::thrift::TBase {
|
2176
2543
|
public:
|
2177
2544
|
|
2178
2545
|
OffsetIndex(const OffsetIndex&);
|
2179
2546
|
OffsetIndex& operator=(const OffsetIndex&);
|
2180
|
-
OffsetIndex()
|
2181
|
-
}
|
2547
|
+
OffsetIndex() noexcept;
|
2182
2548
|
|
2183
|
-
virtual ~OffsetIndex()
|
2549
|
+
virtual ~OffsetIndex() noexcept;
|
2550
|
+
/**
|
2551
|
+
* PageLocations, ordered by increasing PageLocation.offset. It is required
|
2552
|
+
* that page_locations[i].first_row_index < page_locations[i+1].first_row_index.
|
2553
|
+
*/
|
2184
2554
|
duckdb::vector<PageLocation> page_locations;
|
2555
|
+
/**
|
2556
|
+
* Unencoded/uncompressed size for BYTE_ARRAY types.
|
2557
|
+
*
|
2558
|
+
* See documention for unencoded_byte_array_data_bytes in SizeStatistics for
|
2559
|
+
* more details on this field.
|
2560
|
+
*/
|
2561
|
+
duckdb::vector<int64_t> unencoded_byte_array_data_bytes;
|
2185
2562
|
|
2186
|
-
|
2563
|
+
_OffsetIndex__isset __isset;
|
2187
2564
|
|
2188
|
-
|
2189
|
-
{
|
2190
|
-
if (!(page_locations == rhs.page_locations))
|
2191
|
-
return false;
|
2192
|
-
return true;
|
2193
|
-
}
|
2194
|
-
bool operator != (const OffsetIndex &rhs) const {
|
2195
|
-
return !(*this == rhs);
|
2196
|
-
}
|
2565
|
+
void __set_page_locations(const duckdb::vector<PageLocation> & val);
|
2197
2566
|
|
2198
|
-
|
2567
|
+
void __set_unencoded_byte_array_data_bytes(const duckdb::vector<int64_t> & val);
|
2199
2568
|
|
2200
|
-
uint32_t read(::
|
2201
|
-
uint32_t write(::
|
2569
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2570
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
2202
2571
|
|
2203
2572
|
virtual void printTo(std::ostream& out) const;
|
2204
2573
|
};
|
@@ -2208,24 +2577,89 @@ void swap(OffsetIndex &a, OffsetIndex &b);
|
|
2208
2577
|
std::ostream& operator<<(std::ostream& out, const OffsetIndex& obj);
|
2209
2578
|
|
2210
2579
|
typedef struct _ColumnIndex__isset {
|
2211
|
-
_ColumnIndex__isset() : null_counts(false) {}
|
2580
|
+
_ColumnIndex__isset() : null_counts(false), repetition_level_histograms(false), definition_level_histograms(false) {}
|
2212
2581
|
bool null_counts :1;
|
2582
|
+
bool repetition_level_histograms :1;
|
2583
|
+
bool definition_level_histograms :1;
|
2213
2584
|
} _ColumnIndex__isset;
|
2214
2585
|
|
2215
|
-
|
2586
|
+
/**
|
2587
|
+
* Optional statistics for each data page in a ColumnChunk.
|
2588
|
+
*
|
2589
|
+
* Forms part the page index, along with OffsetIndex.
|
2590
|
+
*
|
2591
|
+
* If this structure is present, OffsetIndex must also be present.
|
2592
|
+
*
|
2593
|
+
* For each field in this structure, <field>[i] refers to the page at
|
2594
|
+
* OffsetIndex.page_locations[i]
|
2595
|
+
*/
|
2596
|
+
class ColumnIndex : public virtual ::apache::thrift::TBase {
|
2216
2597
|
public:
|
2217
2598
|
|
2218
2599
|
ColumnIndex(const ColumnIndex&);
|
2219
2600
|
ColumnIndex& operator=(const ColumnIndex&);
|
2220
|
-
ColumnIndex()
|
2221
|
-
|
2222
|
-
|
2223
|
-
|
2601
|
+
ColumnIndex() noexcept;
|
2602
|
+
|
2603
|
+
virtual ~ColumnIndex() noexcept;
|
2604
|
+
/**
|
2605
|
+
* A list of Boolean values to determine the validity of the corresponding
|
2606
|
+
* min and max values. If true, a page contains only null values, and writers
|
2607
|
+
* have to set the corresponding entries in min_values and max_values to
|
2608
|
+
* byte[0], so that all lists have the same length. If false, the
|
2609
|
+
* corresponding entries in min_values and max_values must be valid.
|
2610
|
+
*/
|
2224
2611
|
duckdb::vector<bool> null_pages;
|
2612
|
+
/**
|
2613
|
+
* Two lists containing lower and upper bounds for the values of each page
|
2614
|
+
* determined by the ColumnOrder of the column. These may be the actual
|
2615
|
+
* minimum and maximum values found on a page, but can also be (more compact)
|
2616
|
+
* values that do not exist on a page. For example, instead of storing ""Blart
|
2617
|
+
* Versenwald III", a writer may set min_values[i]="B", max_values[i]="C".
|
2618
|
+
* Such more compact values must still be valid values within the column's
|
2619
|
+
* logical type. Readers must make sure that list entries are populated before
|
2620
|
+
* using them by inspecting null_pages.
|
2621
|
+
*/
|
2225
2622
|
duckdb::vector<std::string> min_values;
|
2226
2623
|
duckdb::vector<std::string> max_values;
|
2624
|
+
/**
|
2625
|
+
* Stores whether both min_values and max_values are ordered and if so, in
|
2626
|
+
* which direction. This allows readers to perform binary searches in both
|
2627
|
+
* lists. Readers cannot assume that max_values[i] <= min_values[i+1], even
|
2628
|
+
* if the lists are ordered.
|
2629
|
+
*
|
2630
|
+
* @see BoundaryOrder
|
2631
|
+
*/
|
2227
2632
|
BoundaryOrder::type boundary_order;
|
2633
|
+
/**
|
2634
|
+
* A list containing the number of null values for each page
|
2635
|
+
*
|
2636
|
+
* Writers SHOULD always write this field even if no null values
|
2637
|
+
* are present or the column is not nullable.
|
2638
|
+
* Readers MUST distinguish between null_counts not being present
|
2639
|
+
* and null_count being 0.
|
2640
|
+
* If null_counts are not present, readers MUST NOT assume all
|
2641
|
+
* null counts are 0.
|
2642
|
+
*/
|
2228
2643
|
duckdb::vector<int64_t> null_counts;
|
2644
|
+
/**
|
2645
|
+
* Contains repetition level histograms for each page
|
2646
|
+
* concatenated together. The repetition_level_histogram field on
|
2647
|
+
* SizeStatistics contains more details.
|
2648
|
+
*
|
2649
|
+
* When present the length should always be (number of pages *
|
2650
|
+
* (max_repetition_level + 1)) elements.
|
2651
|
+
*
|
2652
|
+
* Element 0 is the first element of the histogram for the first page.
|
2653
|
+
* Element (max_repetition_level + 1) is the first element of the histogram
|
2654
|
+
* for the second page.
|
2655
|
+
*
|
2656
|
+
*/
|
2657
|
+
duckdb::vector<int64_t> repetition_level_histograms;
|
2658
|
+
/**
|
2659
|
+
* Same as repetition_level_histograms except for definitions levels.
|
2660
|
+
*
|
2661
|
+
*/
|
2662
|
+
duckdb::vector<int64_t> definition_level_histograms;
|
2229
2663
|
|
2230
2664
|
_ColumnIndex__isset __isset;
|
2231
2665
|
|
@@ -2239,30 +2673,12 @@ class ColumnIndex : public virtual ::duckdb_apache::thrift::TBase {
|
|
2239
2673
|
|
2240
2674
|
void __set_null_counts(const duckdb::vector<int64_t> & val);
|
2241
2675
|
|
2242
|
-
|
2243
|
-
|
2244
|
-
|
2245
|
-
|
2246
|
-
|
2247
|
-
|
2248
|
-
if (!(max_values == rhs.max_values))
|
2249
|
-
return false;
|
2250
|
-
if (!(boundary_order == rhs.boundary_order))
|
2251
|
-
return false;
|
2252
|
-
if (__isset.null_counts != rhs.__isset.null_counts)
|
2253
|
-
return false;
|
2254
|
-
else if (__isset.null_counts && !(null_counts == rhs.null_counts))
|
2255
|
-
return false;
|
2256
|
-
return true;
|
2257
|
-
}
|
2258
|
-
bool operator != (const ColumnIndex &rhs) const {
|
2259
|
-
return !(*this == rhs);
|
2260
|
-
}
|
2261
|
-
|
2262
|
-
bool operator < (const ColumnIndex & ) const;
|
2263
|
-
|
2264
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
2265
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2676
|
+
void __set_repetition_level_histograms(const duckdb::vector<int64_t> & val);
|
2677
|
+
|
2678
|
+
void __set_definition_level_histograms(const duckdb::vector<int64_t> & val);
|
2679
|
+
|
2680
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2681
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
2266
2682
|
|
2267
2683
|
virtual void printTo(std::ostream& out) const;
|
2268
2684
|
};
|
@@ -2278,17 +2694,26 @@ typedef struct _AesGcmV1__isset {
|
|
2278
2694
|
bool supply_aad_prefix :1;
|
2279
2695
|
} _AesGcmV1__isset;
|
2280
2696
|
|
2281
|
-
class AesGcmV1 : public virtual ::
|
2697
|
+
class AesGcmV1 : public virtual ::apache::thrift::TBase {
|
2282
2698
|
public:
|
2283
2699
|
|
2284
2700
|
AesGcmV1(const AesGcmV1&);
|
2285
2701
|
AesGcmV1& operator=(const AesGcmV1&);
|
2286
|
-
AesGcmV1()
|
2287
|
-
}
|
2702
|
+
AesGcmV1() noexcept;
|
2288
2703
|
|
2289
|
-
virtual ~AesGcmV1()
|
2704
|
+
virtual ~AesGcmV1() noexcept;
|
2705
|
+
/**
|
2706
|
+
* AAD prefix *
|
2707
|
+
*/
|
2290
2708
|
std::string aad_prefix;
|
2709
|
+
/**
|
2710
|
+
* Unique file identifier part of AAD suffix *
|
2711
|
+
*/
|
2291
2712
|
std::string aad_file_unique;
|
2713
|
+
/**
|
2714
|
+
* In files encrypted with AAD prefix without storing it,
|
2715
|
+
* readers must supply the prefix *
|
2716
|
+
*/
|
2292
2717
|
bool supply_aad_prefix;
|
2293
2718
|
|
2294
2719
|
_AesGcmV1__isset __isset;
|
@@ -2299,30 +2724,8 @@ class AesGcmV1 : public virtual ::duckdb_apache::thrift::TBase {
|
|
2299
2724
|
|
2300
2725
|
void __set_supply_aad_prefix(const bool val);
|
2301
2726
|
|
2302
|
-
|
2303
|
-
|
2304
|
-
if (__isset.aad_prefix != rhs.__isset.aad_prefix)
|
2305
|
-
return false;
|
2306
|
-
else if (__isset.aad_prefix && !(aad_prefix == rhs.aad_prefix))
|
2307
|
-
return false;
|
2308
|
-
if (__isset.aad_file_unique != rhs.__isset.aad_file_unique)
|
2309
|
-
return false;
|
2310
|
-
else if (__isset.aad_file_unique && !(aad_file_unique == rhs.aad_file_unique))
|
2311
|
-
return false;
|
2312
|
-
if (__isset.supply_aad_prefix != rhs.__isset.supply_aad_prefix)
|
2313
|
-
return false;
|
2314
|
-
else if (__isset.supply_aad_prefix && !(supply_aad_prefix == rhs.supply_aad_prefix))
|
2315
|
-
return false;
|
2316
|
-
return true;
|
2317
|
-
}
|
2318
|
-
bool operator != (const AesGcmV1 &rhs) const {
|
2319
|
-
return !(*this == rhs);
|
2320
|
-
}
|
2321
|
-
|
2322
|
-
bool operator < (const AesGcmV1 & ) const;
|
2323
|
-
|
2324
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
2325
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2727
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2728
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
2326
2729
|
|
2327
2730
|
virtual void printTo(std::ostream& out) const;
|
2328
2731
|
};
|
@@ -2338,17 +2741,26 @@ typedef struct _AesGcmCtrV1__isset {
|
|
2338
2741
|
bool supply_aad_prefix :1;
|
2339
2742
|
} _AesGcmCtrV1__isset;
|
2340
2743
|
|
2341
|
-
class AesGcmCtrV1 : public virtual ::
|
2744
|
+
class AesGcmCtrV1 : public virtual ::apache::thrift::TBase {
|
2342
2745
|
public:
|
2343
2746
|
|
2344
2747
|
AesGcmCtrV1(const AesGcmCtrV1&);
|
2345
2748
|
AesGcmCtrV1& operator=(const AesGcmCtrV1&);
|
2346
|
-
AesGcmCtrV1()
|
2347
|
-
}
|
2749
|
+
AesGcmCtrV1() noexcept;
|
2348
2750
|
|
2349
|
-
virtual ~AesGcmCtrV1()
|
2751
|
+
virtual ~AesGcmCtrV1() noexcept;
|
2752
|
+
/**
|
2753
|
+
* AAD prefix *
|
2754
|
+
*/
|
2350
2755
|
std::string aad_prefix;
|
2756
|
+
/**
|
2757
|
+
* Unique file identifier part of AAD suffix *
|
2758
|
+
*/
|
2351
2759
|
std::string aad_file_unique;
|
2760
|
+
/**
|
2761
|
+
* In files encrypted with AAD prefix without storing it,
|
2762
|
+
* readers must supply the prefix *
|
2763
|
+
*/
|
2352
2764
|
bool supply_aad_prefix;
|
2353
2765
|
|
2354
2766
|
_AesGcmCtrV1__isset __isset;
|
@@ -2359,30 +2771,8 @@ class AesGcmCtrV1 : public virtual ::duckdb_apache::thrift::TBase {
|
|
2359
2771
|
|
2360
2772
|
void __set_supply_aad_prefix(const bool val);
|
2361
2773
|
|
2362
|
-
|
2363
|
-
|
2364
|
-
if (__isset.aad_prefix != rhs.__isset.aad_prefix)
|
2365
|
-
return false;
|
2366
|
-
else if (__isset.aad_prefix && !(aad_prefix == rhs.aad_prefix))
|
2367
|
-
return false;
|
2368
|
-
if (__isset.aad_file_unique != rhs.__isset.aad_file_unique)
|
2369
|
-
return false;
|
2370
|
-
else if (__isset.aad_file_unique && !(aad_file_unique == rhs.aad_file_unique))
|
2371
|
-
return false;
|
2372
|
-
if (__isset.supply_aad_prefix != rhs.__isset.supply_aad_prefix)
|
2373
|
-
return false;
|
2374
|
-
else if (__isset.supply_aad_prefix && !(supply_aad_prefix == rhs.supply_aad_prefix))
|
2375
|
-
return false;
|
2376
|
-
return true;
|
2377
|
-
}
|
2378
|
-
bool operator != (const AesGcmCtrV1 &rhs) const {
|
2379
|
-
return !(*this == rhs);
|
2380
|
-
}
|
2381
|
-
|
2382
|
-
bool operator < (const AesGcmCtrV1 & ) const;
|
2383
|
-
|
2384
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
2385
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2774
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2775
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
2386
2776
|
|
2387
2777
|
virtual void printTo(std::ostream& out) const;
|
2388
2778
|
};
|
@@ -2397,15 +2787,14 @@ typedef struct _EncryptionAlgorithm__isset {
|
|
2397
2787
|
bool AES_GCM_CTR_V1 :1;
|
2398
2788
|
} _EncryptionAlgorithm__isset;
|
2399
2789
|
|
2400
|
-
class EncryptionAlgorithm : public virtual ::
|
2790
|
+
class EncryptionAlgorithm : public virtual ::apache::thrift::TBase {
|
2401
2791
|
public:
|
2402
2792
|
|
2403
2793
|
EncryptionAlgorithm(const EncryptionAlgorithm&);
|
2404
2794
|
EncryptionAlgorithm& operator=(const EncryptionAlgorithm&);
|
2405
|
-
EncryptionAlgorithm()
|
2406
|
-
}
|
2795
|
+
EncryptionAlgorithm() noexcept;
|
2407
2796
|
|
2408
|
-
virtual ~EncryptionAlgorithm()
|
2797
|
+
virtual ~EncryptionAlgorithm() noexcept;
|
2409
2798
|
AesGcmV1 AES_GCM_V1;
|
2410
2799
|
AesGcmCtrV1 AES_GCM_CTR_V1;
|
2411
2800
|
|
@@ -2415,26 +2804,8 @@ class EncryptionAlgorithm : public virtual ::duckdb_apache::thrift::TBase {
|
|
2415
2804
|
|
2416
2805
|
void __set_AES_GCM_CTR_V1(const AesGcmCtrV1& val);
|
2417
2806
|
|
2418
|
-
|
2419
|
-
|
2420
|
-
if (__isset.AES_GCM_V1 != rhs.__isset.AES_GCM_V1)
|
2421
|
-
return false;
|
2422
|
-
else if (__isset.AES_GCM_V1 && !(AES_GCM_V1 == rhs.AES_GCM_V1))
|
2423
|
-
return false;
|
2424
|
-
if (__isset.AES_GCM_CTR_V1 != rhs.__isset.AES_GCM_CTR_V1)
|
2425
|
-
return false;
|
2426
|
-
else if (__isset.AES_GCM_CTR_V1 && !(AES_GCM_CTR_V1 == rhs.AES_GCM_CTR_V1))
|
2427
|
-
return false;
|
2428
|
-
return true;
|
2429
|
-
}
|
2430
|
-
bool operator != (const EncryptionAlgorithm &rhs) const {
|
2431
|
-
return !(*this == rhs);
|
2432
|
-
}
|
2433
|
-
|
2434
|
-
bool operator < (const EncryptionAlgorithm & ) const;
|
2435
|
-
|
2436
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
2437
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2807
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2808
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
2438
2809
|
|
2439
2810
|
virtual void printTo(std::ostream& out) const;
|
2440
2811
|
};
|
@@ -2452,23 +2823,76 @@ typedef struct _FileMetaData__isset {
|
|
2452
2823
|
bool footer_signing_key_metadata :1;
|
2453
2824
|
} _FileMetaData__isset;
|
2454
2825
|
|
2455
|
-
|
2826
|
+
/**
|
2827
|
+
* Description for file metadata
|
2828
|
+
*/
|
2829
|
+
class FileMetaData : public virtual ::apache::thrift::TBase {
|
2456
2830
|
public:
|
2457
2831
|
|
2458
2832
|
FileMetaData(const FileMetaData&);
|
2459
2833
|
FileMetaData& operator=(const FileMetaData&);
|
2460
|
-
FileMetaData()
|
2461
|
-
}
|
2834
|
+
FileMetaData() noexcept;
|
2462
2835
|
|
2463
|
-
virtual ~FileMetaData()
|
2836
|
+
virtual ~FileMetaData() noexcept;
|
2837
|
+
/**
|
2838
|
+
* Version of this file *
|
2839
|
+
*/
|
2464
2840
|
int32_t version;
|
2841
|
+
/**
|
2842
|
+
* Parquet schema for this file. This schema contains metadata for all the columns.
|
2843
|
+
* The schema is represented as a tree with a single root. The nodes of the tree
|
2844
|
+
* are flattened to a list by doing a depth-first traversal.
|
2845
|
+
* The column metadata contains the path in the schema for that column which can be
|
2846
|
+
* used to map columns to nodes in the schema.
|
2847
|
+
* The first element is the root *
|
2848
|
+
*/
|
2465
2849
|
duckdb::vector<SchemaElement> schema;
|
2850
|
+
/**
|
2851
|
+
* Number of rows in this file *
|
2852
|
+
*/
|
2466
2853
|
int64_t num_rows;
|
2854
|
+
/**
|
2855
|
+
* Row groups in this file *
|
2856
|
+
*/
|
2467
2857
|
duckdb::vector<RowGroup> row_groups;
|
2858
|
+
/**
|
2859
|
+
* Optional key/value metadata *
|
2860
|
+
*/
|
2468
2861
|
duckdb::vector<KeyValue> key_value_metadata;
|
2862
|
+
/**
|
2863
|
+
* String for application that wrote this file. This should be in the format
|
2864
|
+
* <Application> version <App Version> (build <App Build Hash>).
|
2865
|
+
* e.g. impala version 1.0 (build 6cf94d29b2b7115df4de2c06e2ab4326d721eb55)
|
2866
|
+
*
|
2867
|
+
*/
|
2469
2868
|
std::string created_by;
|
2869
|
+
/**
|
2870
|
+
* Sort order used for the min_value and max_value fields in the Statistics
|
2871
|
+
* objects and the min_values and max_values fields in the ColumnIndex
|
2872
|
+
* objects of each column in this file. Sort orders are listed in the order
|
2873
|
+
* matching the columns in the schema. The indexes are not necessary the same
|
2874
|
+
* though, because only leaf nodes of the schema are represented in the list
|
2875
|
+
* of sort orders.
|
2876
|
+
*
|
2877
|
+
* Without column_orders, the meaning of the min_value and max_value fields
|
2878
|
+
* in the Statistics object and the ColumnIndex object is undefined. To ensure
|
2879
|
+
* well-defined behaviour, if these fields are written to a Parquet file,
|
2880
|
+
* column_orders must be written as well.
|
2881
|
+
*
|
2882
|
+
* The obsolete min and max fields in the Statistics object are always sorted
|
2883
|
+
* by signed comparison regardless of column_orders.
|
2884
|
+
*/
|
2470
2885
|
duckdb::vector<ColumnOrder> column_orders;
|
2886
|
+
/**
|
2887
|
+
* Encryption algorithm. This field is set only in encrypted files
|
2888
|
+
* with plaintext footer. Files with encrypted footer store algorithm id
|
2889
|
+
* in FileCryptoMetaData structure.
|
2890
|
+
*/
|
2471
2891
|
EncryptionAlgorithm encryption_algorithm;
|
2892
|
+
/**
|
2893
|
+
* Retrieval metadata of key used for signing the footer.
|
2894
|
+
* Used only in encrypted files with plaintext footer.
|
2895
|
+
*/
|
2472
2896
|
std::string footer_signing_key_metadata;
|
2473
2897
|
|
2474
2898
|
_FileMetaData__isset __isset;
|
@@ -2491,46 +2915,8 @@ class FileMetaData : public virtual ::duckdb_apache::thrift::TBase {
|
|
2491
2915
|
|
2492
2916
|
void __set_footer_signing_key_metadata(const std::string& val);
|
2493
2917
|
|
2494
|
-
|
2495
|
-
|
2496
|
-
if (!(version == rhs.version))
|
2497
|
-
return false;
|
2498
|
-
if (!(schema == rhs.schema))
|
2499
|
-
return false;
|
2500
|
-
if (!(num_rows == rhs.num_rows))
|
2501
|
-
return false;
|
2502
|
-
if (!(row_groups == rhs.row_groups))
|
2503
|
-
return false;
|
2504
|
-
if (__isset.key_value_metadata != rhs.__isset.key_value_metadata)
|
2505
|
-
return false;
|
2506
|
-
else if (__isset.key_value_metadata && !(key_value_metadata == rhs.key_value_metadata))
|
2507
|
-
return false;
|
2508
|
-
if (__isset.created_by != rhs.__isset.created_by)
|
2509
|
-
return false;
|
2510
|
-
else if (__isset.created_by && !(created_by == rhs.created_by))
|
2511
|
-
return false;
|
2512
|
-
if (__isset.column_orders != rhs.__isset.column_orders)
|
2513
|
-
return false;
|
2514
|
-
else if (__isset.column_orders && !(column_orders == rhs.column_orders))
|
2515
|
-
return false;
|
2516
|
-
if (__isset.encryption_algorithm != rhs.__isset.encryption_algorithm)
|
2517
|
-
return false;
|
2518
|
-
else if (__isset.encryption_algorithm && !(encryption_algorithm == rhs.encryption_algorithm))
|
2519
|
-
return false;
|
2520
|
-
if (__isset.footer_signing_key_metadata != rhs.__isset.footer_signing_key_metadata)
|
2521
|
-
return false;
|
2522
|
-
else if (__isset.footer_signing_key_metadata && !(footer_signing_key_metadata == rhs.footer_signing_key_metadata))
|
2523
|
-
return false;
|
2524
|
-
return true;
|
2525
|
-
}
|
2526
|
-
bool operator != (const FileMetaData &rhs) const {
|
2527
|
-
return !(*this == rhs);
|
2528
|
-
}
|
2529
|
-
|
2530
|
-
bool operator < (const FileMetaData & ) const;
|
2531
|
-
|
2532
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
2533
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2918
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2919
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
2534
2920
|
|
2535
2921
|
virtual void printTo(std::ostream& out) const;
|
2536
2922
|
};
|
@@ -2544,16 +2930,27 @@ typedef struct _FileCryptoMetaData__isset {
|
|
2544
2930
|
bool key_metadata :1;
|
2545
2931
|
} _FileCryptoMetaData__isset;
|
2546
2932
|
|
2547
|
-
|
2933
|
+
/**
|
2934
|
+
* Crypto metadata for files with encrypted footer *
|
2935
|
+
*/
|
2936
|
+
class FileCryptoMetaData : public virtual ::apache::thrift::TBase {
|
2548
2937
|
public:
|
2549
2938
|
|
2550
2939
|
FileCryptoMetaData(const FileCryptoMetaData&);
|
2551
2940
|
FileCryptoMetaData& operator=(const FileCryptoMetaData&);
|
2552
|
-
FileCryptoMetaData()
|
2553
|
-
|
2554
|
-
|
2555
|
-
|
2941
|
+
FileCryptoMetaData() noexcept;
|
2942
|
+
|
2943
|
+
virtual ~FileCryptoMetaData() noexcept;
|
2944
|
+
/**
|
2945
|
+
* Encryption algorithm. This field is only used for files
|
2946
|
+
* with encrypted footer. Files with plaintext footer store algorithm id
|
2947
|
+
* inside footer (FileMetaData structure).
|
2948
|
+
*/
|
2556
2949
|
EncryptionAlgorithm encryption_algorithm;
|
2950
|
+
/**
|
2951
|
+
* Retrieval metadata of key used for encryption of footer,
|
2952
|
+
* and (possibly) columns *
|
2953
|
+
*/
|
2557
2954
|
std::string key_metadata;
|
2558
2955
|
|
2559
2956
|
_FileCryptoMetaData__isset __isset;
|
@@ -2562,24 +2959,8 @@ class FileCryptoMetaData : public virtual ::duckdb_apache::thrift::TBase {
|
|
2562
2959
|
|
2563
2960
|
void __set_key_metadata(const std::string& val);
|
2564
2961
|
|
2565
|
-
|
2566
|
-
|
2567
|
-
if (!(encryption_algorithm == rhs.encryption_algorithm))
|
2568
|
-
return false;
|
2569
|
-
if (__isset.key_metadata != rhs.__isset.key_metadata)
|
2570
|
-
return false;
|
2571
|
-
else if (__isset.key_metadata && !(key_metadata == rhs.key_metadata))
|
2572
|
-
return false;
|
2573
|
-
return true;
|
2574
|
-
}
|
2575
|
-
bool operator != (const FileCryptoMetaData &rhs) const {
|
2576
|
-
return !(*this == rhs);
|
2577
|
-
}
|
2578
|
-
|
2579
|
-
bool operator < (const FileCryptoMetaData & ) const;
|
2580
|
-
|
2581
|
-
uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot);
|
2582
|
-
uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const;
|
2962
|
+
uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override;
|
2963
|
+
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override;
|
2583
2964
|
|
2584
2965
|
virtual void printTo(std::ostream& out) const;
|
2585
2966
|
};
|
@@ -2588,6 +2969,6 @@ void swap(FileCryptoMetaData &a, FileCryptoMetaData &b);
|
|
2588
2969
|
|
2589
2970
|
std::ostream& operator<<(std::ostream& out, const FileCryptoMetaData& obj);
|
2590
2971
|
|
2591
|
-
}
|
2972
|
+
} // namespace
|
2592
2973
|
|
2593
2974
|
#endif
|