duckdb 0.7.2-dev14.0 → 0.7.2-dev225.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.
Files changed (129) hide show
  1. package/binding.gyp +2 -0
  2. package/package.json +1 -1
  3. package/src/duckdb/extension/icu/icu-extension.cpp +2 -0
  4. package/src/duckdb/extension/icu/icu-table-range.cpp +194 -0
  5. package/src/duckdb/extension/icu/include/icu-table-range.hpp +17 -0
  6. package/src/duckdb/extension/parquet/column_writer.cpp +0 -1
  7. package/src/duckdb/extension/parquet/parquet-extension.cpp +11 -2
  8. package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +4 -0
  9. package/src/duckdb/src/catalog/catalog_entry/scalar_function_catalog_entry.cpp +7 -6
  10. package/src/duckdb/src/catalog/catalog_entry/table_function_catalog_entry.cpp +20 -1
  11. package/src/duckdb/src/common/enums/statement_type.cpp +2 -0
  12. package/src/duckdb/src/common/types/bit.cpp +95 -58
  13. package/src/duckdb/src/common/types/value.cpp +149 -53
  14. package/src/duckdb/src/common/types/vector.cpp +13 -10
  15. package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +1 -1
  16. package/src/duckdb/src/function/aggregate/algebraic/avg.cpp +0 -6
  17. package/src/duckdb/src/function/aggregate/distributive/bitagg.cpp +99 -95
  18. package/src/duckdb/src/function/aggregate/distributive/bitstring_agg.cpp +261 -0
  19. package/src/duckdb/src/function/aggregate/distributive/sum.cpp +0 -3
  20. package/src/duckdb/src/function/aggregate/distributive_functions.cpp +1 -0
  21. package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +16 -5
  22. package/src/duckdb/src/function/cast/bit_cast.cpp +0 -2
  23. package/src/duckdb/src/function/cast/blob_cast.cpp +0 -1
  24. package/src/duckdb/src/function/scalar/bit/bitstring.cpp +99 -0
  25. package/src/duckdb/src/function/scalar/map/map_entries.cpp +61 -0
  26. package/src/duckdb/src/function/scalar/map/map_keys_values.cpp +97 -0
  27. package/src/duckdb/src/function/scalar/nested_functions.cpp +3 -0
  28. package/src/duckdb/src/function/scalar/operators/add.cpp +0 -9
  29. package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +2 -14
  30. package/src/duckdb/src/function/scalar/operators/bitwise.cpp +0 -63
  31. package/src/duckdb/src/function/scalar/operators/multiply.cpp +0 -6
  32. package/src/duckdb/src/function/scalar/operators/subtract.cpp +0 -6
  33. package/src/duckdb/src/function/scalar/string_functions.cpp +1 -0
  34. package/src/duckdb/src/function/table/read_csv.cpp +9 -0
  35. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  36. package/src/duckdb/src/function/table_function.cpp +19 -0
  37. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp +6 -8
  38. package/src/duckdb/src/include/duckdb/common/constants.hpp +0 -19
  39. package/src/duckdb/src/include/duckdb/common/enums/statement_type.hpp +2 -1
  40. package/src/duckdb/src/include/duckdb/common/enums/tableref_type.hpp +2 -1
  41. package/src/duckdb/src/include/duckdb/common/types/bit.hpp +5 -1
  42. package/src/duckdb/src/include/duckdb/common/types/value.hpp +2 -8
  43. package/src/duckdb/src/include/duckdb/common/types.hpp +1 -2
  44. package/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp +5 -0
  45. package/src/duckdb/src/include/duckdb/function/scalar/bit_functions.hpp +4 -0
  46. package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +12 -0
  47. package/src/duckdb/src/include/duckdb/function/table_function.hpp +2 -0
  48. package/src/duckdb/src/include/duckdb/main/capi/capi_internal.hpp +2 -0
  49. package/src/duckdb/src/include/duckdb/main/config.hpp +3 -0
  50. package/src/duckdb/src/include/duckdb/main/database.hpp +1 -0
  51. package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +2 -2
  52. package/src/duckdb/src/include/duckdb/parser/common_table_expression_info.hpp +2 -0
  53. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +2 -1
  54. package/src/duckdb/src/include/duckdb/parser/parsed_data/{alter_function_info.hpp → alter_scalar_function_info.hpp} +13 -13
  55. package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_function_info.hpp +47 -0
  56. package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_function_info.hpp +2 -1
  57. package/src/duckdb/src/include/duckdb/parser/query_node.hpp +2 -1
  58. package/src/duckdb/src/include/duckdb/parser/statement/multi_statement.hpp +28 -0
  59. package/src/duckdb/src/include/duckdb/parser/tableref/list.hpp +1 -0
  60. package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +76 -0
  61. package/src/duckdb/src/include/duckdb/parser/tokens.hpp +2 -0
  62. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +28 -0
  63. package/src/duckdb/src/include/duckdb/planner/binder.hpp +8 -0
  64. package/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +2 -0
  65. package/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +76 -44
  66. package/src/duckdb/src/include/duckdb/storage/statistics/base_statistics.hpp +2 -0
  67. package/src/duckdb/src/include/duckdb/storage/statistics/node_statistics.hpp +26 -0
  68. package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +1 -1
  69. package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +2 -0
  70. package/src/duckdb/src/include/duckdb.h +49 -1
  71. package/src/duckdb/src/include/duckdb.hpp +0 -1
  72. package/src/duckdb/src/main/capi/pending-c.cpp +16 -3
  73. package/src/duckdb/src/main/capi/result-c.cpp +27 -1
  74. package/src/duckdb/src/main/capi/stream-c.cpp +25 -0
  75. package/src/duckdb/src/main/client_context.cpp +8 -1
  76. package/src/duckdb/src/main/database.cpp +10 -2
  77. package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +98 -66
  78. package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +16 -3
  79. package/src/duckdb/src/parser/parsed_data/alter_info.cpp +7 -3
  80. package/src/duckdb/src/parser/parsed_data/alter_scalar_function_info.cpp +56 -0
  81. package/src/duckdb/src/parser/parsed_data/alter_table_function_info.cpp +51 -0
  82. package/src/duckdb/src/parser/parsed_data/create_scalar_function_info.cpp +3 -2
  83. package/src/duckdb/src/parser/parsed_data/create_table_function_info.cpp +6 -0
  84. package/src/duckdb/src/parser/parsed_expression_iterator.cpp +8 -0
  85. package/src/duckdb/src/parser/query_node.cpp +1 -1
  86. package/src/duckdb/src/parser/statement/multi_statement.cpp +18 -0
  87. package/src/duckdb/src/parser/tableref/pivotref.cpp +296 -0
  88. package/src/duckdb/src/parser/tableref.cpp +3 -0
  89. package/src/duckdb/src/parser/transform/helpers/transform_alias.cpp +12 -6
  90. package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +24 -0
  91. package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +4 -0
  92. package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +4 -0
  93. package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +150 -0
  94. package/src/duckdb/src/parser/transform/statement/transform_select.cpp +8 -0
  95. package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +1 -1
  96. package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +105 -0
  97. package/src/duckdb/src/parser/transform/tableref/transform_tableref.cpp +2 -0
  98. package/src/duckdb/src/parser/transformer.cpp +15 -3
  99. package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +11 -3
  100. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +1 -1
  101. package/src/duckdb/src/planner/binder/statement/bind_logical_plan.cpp +17 -0
  102. package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +365 -0
  103. package/src/duckdb/src/planner/binder.cpp +5 -0
  104. package/src/duckdb/src/planner/pragma_handler.cpp +10 -2
  105. package/src/duckdb/src/storage/buffer_manager.cpp +44 -46
  106. package/src/duckdb/src/storage/compression/bitpacking.cpp +25 -21
  107. package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +41 -43
  108. package/src/duckdb/src/storage/compression/rle.cpp +17 -13
  109. package/src/duckdb/src/storage/statistics/base_statistics.cpp +3 -3
  110. package/src/duckdb/src/storage/storage_info.cpp +1 -1
  111. package/src/duckdb/src/storage/table/column_data.cpp +5 -2
  112. package/src/duckdb/src/storage/table/list_column_data.cpp +32 -47
  113. package/src/duckdb/third_party/libpg_query/include/nodes/nodes.hpp +3 -0
  114. package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +34 -1
  115. package/src/duckdb/third_party/libpg_query/include/parser/gram.hpp +1016 -530
  116. package/src/duckdb/third_party/libpg_query/include/parser/kwlist.hpp +5 -0
  117. package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +22697 -21987
  118. package/src/duckdb/ub_src_function_aggregate_distributive.cpp +2 -0
  119. package/src/duckdb/ub_src_function_scalar_bit.cpp +2 -0
  120. package/src/duckdb/ub_src_function_scalar_map.cpp +4 -0
  121. package/src/duckdb/ub_src_main_capi.cpp +2 -0
  122. package/src/duckdb/ub_src_parser_parsed_data.cpp +4 -2
  123. package/src/duckdb/ub_src_parser_statement.cpp +2 -0
  124. package/src/duckdb/ub_src_parser_tableref.cpp +2 -0
  125. package/src/duckdb/ub_src_parser_transform_statement.cpp +2 -0
  126. package/src/duckdb/ub_src_parser_transform_tableref.cpp +2 -0
  127. package/src/duckdb/ub_src_planner_binder_tableref.cpp +2 -0
  128. package/src/duckdb/src/include/duckdb/main/loadable_extension.hpp +0 -59
  129. package/src/duckdb/src/parser/parsed_data/alter_function_info.cpp +0 -55
@@ -2,6 +2,8 @@
2
2
 
3
3
  #include "src/function/aggregate/distributive/bitagg.cpp"
4
4
 
5
+ #include "src/function/aggregate/distributive/bitstring_agg.cpp"
6
+
5
7
  #include "src/function/aggregate/distributive/count.cpp"
6
8
 
7
9
  #include "src/function/aggregate/distributive/first.cpp"
@@ -0,0 +1,2 @@
1
+ #include "src/function/scalar/bit/bitstring.cpp"
2
+
@@ -4,5 +4,9 @@
4
4
 
5
5
  #include "src/function/scalar/map/map_from_entries.cpp"
6
6
 
7
+ #include "src/function/scalar/map/map_entries.cpp"
8
+
9
+ #include "src/function/scalar/map/map_keys_values.cpp"
10
+
7
11
  #include "src/function/scalar/map/cardinality.cpp"
8
12
 
@@ -26,6 +26,8 @@
26
26
 
27
27
  #include "src/main/capi/result-c.cpp"
28
28
 
29
+ #include "src/main/capi/stream-c.cpp"
30
+
29
31
  #include "src/main/capi/table_function-c.cpp"
30
32
 
31
33
  #include "src/main/capi/threading-c.cpp"
@@ -1,7 +1,9 @@
1
- #include "src/parser/parsed_data/alter_function_info.cpp"
2
-
3
1
  #include "src/parser/parsed_data/alter_info.cpp"
4
2
 
3
+ #include "src/parser/parsed_data/alter_scalar_function_info.cpp"
4
+
5
+ #include "src/parser/parsed_data/alter_table_function_info.cpp"
6
+
5
7
  #include "src/parser/parsed_data/alter_table_info.cpp"
6
8
 
7
9
  #include "src/parser/parsed_data/create_info.cpp"
@@ -26,6 +26,8 @@
26
26
 
27
27
  #include "src/parser/statement/load_statement.cpp"
28
28
 
29
+ #include "src/parser/statement/multi_statement.cpp"
30
+
29
31
  #include "src/parser/statement/pragma_statement.cpp"
30
32
 
31
33
  #include "src/parser/statement/prepare_statement.cpp"
@@ -6,6 +6,8 @@
6
6
 
7
7
  #include "src/parser/tableref/joinref.cpp"
8
8
 
9
+ #include "src/parser/tableref/pivotref.cpp"
10
+
9
11
  #include "src/parser/tableref/subqueryref.cpp"
10
12
 
11
13
  #include "src/parser/tableref/table_function.cpp"
@@ -50,6 +50,8 @@
50
50
 
51
51
  #include "src/parser/transform/statement/transform_set.cpp"
52
52
 
53
+ #include "src/parser/transform/statement/transform_pivot_stmt.cpp"
54
+
53
55
  #include "src/parser/transform/statement/transform_prepare.cpp"
54
56
 
55
57
  #include "src/parser/transform/statement/transform_show.cpp"
@@ -4,6 +4,8 @@
4
4
 
5
5
  #include "src/parser/transform/tableref/transform_from.cpp"
6
6
 
7
+ #include "src/parser/transform/tableref/transform_pivot.cpp"
8
+
7
9
  #include "src/parser/transform/tableref/transform_subquery.cpp"
8
10
 
9
11
  #include "src/parser/transform/tableref/transform_table_function.cpp"
@@ -6,6 +6,8 @@
6
6
 
7
7
  #include "src/planner/binder/tableref/bind_joinref.cpp"
8
8
 
9
+ #include "src/planner/binder/tableref/bind_pivot.cpp"
10
+
9
11
  #include "src/planner/binder/tableref/bind_subqueryref.cpp"
10
12
 
11
13
  #include "src/planner/binder/tableref/bind_table_function.cpp"
@@ -1,59 +0,0 @@
1
- //===----------------------------------------------------------------------===//
2
- // DuckDB
3
- //
4
- // duckdb/main/loadable_extension.hpp
5
- //
6
- //
7
- //===----------------------------------------------------------------------===//
8
-
9
- #pragma once
10
-
11
- #if defined(DUCKDB_BUILD_LOADABLE_EXTENSION) && defined(DUCKDB_EXTENSION_MAIN)
12
- #if defined(_WIN32) || defined(_WIN64)
13
- #ifndef NOMINMAX
14
- #define NOMINMAX
15
- #endif
16
-
17
- #ifndef _WINSOCKAPI_
18
- #define _WINSOCKAPI_
19
- #endif
20
- #include <windows.h>
21
-
22
- #undef CreateDirectory
23
- #undef MoveFile
24
- #undef RemoveDirectory
25
-
26
- #include <delayimp.h>
27
-
28
- extern "C" {
29
- /*
30
- This is interesting: Windows would normally require a duckdb.dll being on the DLL search path when we load an extension
31
- using LoadLibrary(). However, there is likely no such dll, because DuckDB was statically linked, or is running as part
32
- of an R or Python module with a completely different name (that we don't know) or something of the sorts. Amazingly,
33
- Windows supports lazy-loading DLLs by linking them with /DELAYLOAD. Then a callback will be triggered whenever we access
34
- symbols in the extension. Since DuckDB is already running in the host process (hopefully), we can use
35
- GetModuleHandle(NULL) to return the current process so the symbols are looked for there. See here for another
36
- explanation of this crazy process:
37
-
38
- * https://docs.microsoft.com/en-us/cpp/build/reference/linker-support-for-delay-loaded-dlls?view=msvc-160
39
- * https://docs.microsoft.com/en-us/cpp/build/reference/understanding-the-helper-function?view=msvc-160
40
- */
41
- FARPROC WINAPI duckdb_dllimport_delay_hook(unsigned dliNotify, PDelayLoadInfo pdli) {
42
- switch (dliNotify) {
43
- case dliNotePreLoadLibrary:
44
- if (strcmp(pdli->szDll, "duckdb.dll") != 0) {
45
- return NULL;
46
- }
47
- return (FARPROC)GetModuleHandle(NULL);
48
- default:
49
- return NULL;
50
- }
51
-
52
- return NULL;
53
- }
54
-
55
- ExternC const PfnDliHook __pfnDliNotifyHook2 = duckdb_dllimport_delay_hook;
56
- ExternC const PfnDliHook __pfnDliFailureHook2 = duckdb_dllimport_delay_hook;
57
- }
58
- #endif
59
- #endif
@@ -1,55 +0,0 @@
1
- #include "duckdb/parser/parsed_data/alter_function_info.hpp"
2
-
3
- #include "duckdb/common/field_writer.hpp"
4
- #include "duckdb/parser/constraint.hpp"
5
-
6
- namespace duckdb {
7
-
8
- //===--------------------------------------------------------------------===//
9
- // AlterFunctionInfo
10
- //===--------------------------------------------------------------------===//
11
- AlterFunctionInfo::AlterFunctionInfo(AlterFunctionType type, AlterEntryData data)
12
- : AlterInfo(AlterType::ALTER_FUNCTION, std::move(data.catalog), std::move(data.schema), std::move(data.name),
13
- data.if_exists),
14
- alter_function_type(type) {
15
- }
16
- AlterFunctionInfo::~AlterFunctionInfo() {
17
- }
18
-
19
- CatalogType AlterFunctionInfo::GetCatalogType() const {
20
- return CatalogType::SCALAR_FUNCTION_ENTRY;
21
- }
22
-
23
- void AlterFunctionInfo::Serialize(FieldWriter &writer) const {
24
- writer.WriteField<AlterFunctionType>(alter_function_type);
25
- writer.WriteString(catalog);
26
- writer.WriteString(schema);
27
- writer.WriteString(name);
28
- writer.WriteField(if_exists);
29
- }
30
-
31
- unique_ptr<AlterInfo> AlterFunctionInfo::Deserialize(FieldReader &reader) {
32
- // auto type = reader.ReadRequired<AlterFunctionType>();
33
- // auto schema = reader.ReadRequired<string>();
34
- // auto table = reader.ReadRequired<string>();
35
- // auto if_exists = reader.ReadRequired<bool>();
36
-
37
- throw NotImplementedException("AlterFunctionInfo cannot be deserialized");
38
- }
39
-
40
- //===--------------------------------------------------------------------===//
41
- // AddFunctionOverloadInfo
42
- //===--------------------------------------------------------------------===//
43
- AddFunctionOverloadInfo::AddFunctionOverloadInfo(AlterEntryData data, ScalarFunctionSet new_overloads_p)
44
- : AlterFunctionInfo(AlterFunctionType::ADD_FUNCTION_OVERLOADS, std::move(data)),
45
- new_overloads(std::move(new_overloads_p)) {
46
- this->allow_internal = true;
47
- }
48
- AddFunctionOverloadInfo::~AddFunctionOverloadInfo() {
49
- }
50
-
51
- unique_ptr<AlterInfo> AddFunctionOverloadInfo::Copy() const {
52
- return make_unique_base<AlterInfo, AddFunctionOverloadInfo>(GetAlterEntryData(), new_overloads);
53
- }
54
-
55
- } // namespace duckdb