duckdb 0.5.2-dev1575.0 → 0.5.2-dev1579.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/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "duckdb",
3
3
  "main": "./lib/duckdb.js",
4
4
  "types": "./lib/duckdb.d.ts",
5
- "version": "0.5.2-dev1575.0",
5
+ "version": "0.5.2-dev1579.0",
6
6
  "description": "DuckDB node.js API",
7
7
  "gypfile": true,
8
8
  "dependencies": {
package/src/duckdb.cpp CHANGED
@@ -111082,14 +111082,18 @@ namespace duckdb {
111082
111082
  static void CardinalityFunction(DataChunk &args, ExpressionState &state, Vector &result) {
111083
111083
  auto &map = args.data[0];
111084
111084
  UnifiedVectorFormat list_data;
111085
+ UnifiedVectorFormat map_data;
111085
111086
  result.SetVectorType(VectorType::FLAT_VECTOR);
111086
111087
  auto result_data = FlatVector::GetData<uint64_t>(result);
111088
+ auto &result_validity = FlatVector::Validity(result);
111087
111089
 
111090
+ map.ToUnifiedFormat(args.size(), map_data);
111088
111091
  auto &children = StructVector::GetEntries(map);
111089
111092
  children[0]->ToUnifiedFormat(args.size(), list_data);
111090
111093
  for (idx_t row = 0; row < args.size(); row++) {
111091
111094
  auto list_entry = ((list_entry_t *)list_data.data)[list_data.sel->get_index(row)];
111092
111095
  result_data[row] = list_entry.length;
111096
+ result_validity.Set(row, map_data.validity.RowIsValid(map_data.sel->get_index(row)));
111093
111097
  }
111094
111098
 
111095
111099
  if (args.size() == 1) {
@@ -111099,6 +111103,9 @@ static void CardinalityFunction(DataChunk &args, ExpressionState &state, Vector
111099
111103
 
111100
111104
  static unique_ptr<FunctionData> CardinalityBind(ClientContext &context, ScalarFunction &bound_function,
111101
111105
  vector<unique_ptr<Expression>> &arguments) {
111106
+ if (arguments.size() != 1) {
111107
+ throw BinderException("Cardinality must have exactly one arguments");
111108
+ }
111102
111109
 
111103
111110
  if (arguments[0]->return_type.id() != LogicalTypeId::MAP) {
111104
111111
  throw BinderException("Cardinality can only operate on MAPs");
@@ -111111,7 +111118,7 @@ static unique_ptr<FunctionData> CardinalityBind(ClientContext &context, ScalarFu
111111
111118
  void CardinalityFun::RegisterFunction(BuiltinFunctions &set) {
111112
111119
  ScalarFunction fun("cardinality", {LogicalType::ANY}, LogicalType::UBIGINT, CardinalityFunction, CardinalityBind);
111113
111120
  fun.varargs = LogicalType::ANY;
111114
- fun.null_handling = FunctionNullHandling::SPECIAL_HANDLING;
111121
+ fun.null_handling = FunctionNullHandling::DEFAULT_NULL_HANDLING;
111115
111122
  set.AddFunction(fun);
111116
111123
  }
111117
111124
 
package/src/duckdb.hpp CHANGED
@@ -11,8 +11,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
11
11
  #pragma once
12
12
  #define DUCKDB_AMALGAMATION 1
13
13
  #define DUCKDB_AMALGAMATION_EXTENDED 1
14
- #define DUCKDB_SOURCE_ID "e7d035edf9"
15
- #define DUCKDB_VERSION "v0.5.2-dev1575"
14
+ #define DUCKDB_SOURCE_ID "e22c424b40"
15
+ #define DUCKDB_VERSION "v0.5.2-dev1579"
16
16
  //===----------------------------------------------------------------------===//
17
17
  // DuckDB
18
18
  //