duckdb 0.3.5-dev113.0 → 0.3.5-dev116.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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "duckdb",
3
3
  "main": "./lib/duckdb.js",
4
- "version": "0.3.5-dev113.0",
4
+ "version": "0.3.5-dev116.0",
5
5
  "description": "DuckDB node.js API",
6
6
  "gypfile": true,
7
7
  "dependencies": {
package/src/duckdb.cpp CHANGED
@@ -46772,8 +46772,8 @@ static bool ListCastSwitch(Vector &source, Vector &result, idx_t count, string *
46772
46772
  }
46773
46773
 
46774
46774
  template <class SRC_TYPE, class RES_TYPE>
46775
- void FillEnum(Vector &source, Vector &result, idx_t count) {
46776
-
46775
+ bool FillEnum(Vector &source, Vector &result, idx_t count, string *error_message) {
46776
+ bool all_converted = true;
46777
46777
  result.SetVectorType(VectorType::FLAT_VECTOR);
46778
46778
 
46779
46779
  auto &str_vec = EnumType::GetValuesInsertOrder(source.GetType());
@@ -46801,25 +46801,29 @@ void FillEnum(Vector &source, Vector &result, idx_t count) {
46801
46801
  auto key = EnumType::GetPos(res_enum_type, str);
46802
46802
  if (key == -1) {
46803
46803
  // key doesn't exist on result enum
46804
- result_mask.SetInvalid(i);
46804
+ if (!error_message) {
46805
+ result_data[i] = HandleVectorCastError::Operation<RES_TYPE>(
46806
+ CastExceptionText<SRC_TYPE, RES_TYPE>(source_data[src_idx]), result_mask, i, error_message,
46807
+ all_converted);
46808
+ } else {
46809
+ result_mask.SetInvalid(i);
46810
+ }
46805
46811
  continue;
46806
46812
  }
46807
46813
  result_data[i] = key;
46808
46814
  }
46815
+ return all_converted;
46809
46816
  }
46810
46817
 
46811
46818
  template <class SRC_TYPE>
46812
- void FillEnumResultTemplate(Vector &source, Vector &result, idx_t count) {
46819
+ bool FillEnumResultTemplate(Vector &source, Vector &result, idx_t count, string *error_message) {
46813
46820
  switch (source.GetType().InternalType()) {
46814
46821
  case PhysicalType::UINT8:
46815
- FillEnum<SRC_TYPE, uint8_t>(source, result, count);
46816
- break;
46822
+ return FillEnum<SRC_TYPE, uint8_t>(source, result, count, error_message);
46817
46823
  case PhysicalType::UINT16:
46818
- FillEnum<SRC_TYPE, uint16_t>(source, result, count);
46819
- break;
46824
+ return FillEnum<SRC_TYPE, uint16_t>(source, result, count, error_message);
46820
46825
  case PhysicalType::UINT32:
46821
- FillEnum<SRC_TYPE, uint32_t>(source, result, count);
46822
- break;
46826
+ return FillEnum<SRC_TYPE, uint32_t>(source, result, count, error_message);
46823
46827
  default:
46824
46828
  throw InternalException("ENUM can only have unsigned integers (except UINT64) as physical types");
46825
46829
  }
@@ -46867,18 +46871,14 @@ static bool EnumCastSwitch(Vector &source, Vector &result, idx_t count, string *
46867
46871
  // This means they are both ENUMs, but of different types.
46868
46872
  switch (enum_physical_type) {
46869
46873
  case PhysicalType::UINT8:
46870
- FillEnumResultTemplate<uint8_t>(source, result, count);
46871
- break;
46874
+ return FillEnumResultTemplate<uint8_t>(source, result, count, error_message);
46872
46875
  case PhysicalType::UINT16:
46873
- FillEnumResultTemplate<uint16_t>(source, result, count);
46874
- break;
46876
+ return FillEnumResultTemplate<uint16_t>(source, result, count, error_message);
46875
46877
  case PhysicalType::UINT32:
46876
- FillEnumResultTemplate<uint32_t>(source, result, count);
46877
- break;
46878
+ return FillEnumResultTemplate<uint32_t>(source, result, count, error_message);
46878
46879
  default:
46879
46880
  throw InternalException("ENUM can only have unsigned integers (except UINT64) as physical types");
46880
46881
  }
46881
- break;
46882
46882
  }
46883
46883
  case LogicalTypeId::JSON:
46884
46884
  case LogicalTypeId::VARCHAR: {
@@ -129685,7 +129685,7 @@ unique_ptr<Expression> EnumComparisonRule::Apply(LogicalOperator &op, vector<Exp
129685
129685
  }
129686
129686
 
129687
129687
  auto cast_left_to_right =
129688
- make_unique<BoundCastExpression>(move(left_child->child), right_child->child->return_type);
129688
+ make_unique<BoundCastExpression>(move(left_child->child), right_child->child->return_type, true);
129689
129689
 
129690
129690
  return make_unique<BoundComparisonExpression>(root->type, move(cast_left_to_right), move(right_child->child));
129691
129691
  }
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 "4048fca78"
15
- #define DUCKDB_VERSION "v0.3.5-dev113"
14
+ #define DUCKDB_SOURCE_ID "4523b1e22"
15
+ #define DUCKDB_VERSION "v0.3.5-dev116"
16
16
  //===----------------------------------------------------------------------===//
17
17
  // DuckDB
18
18
  //