duckdb 0.4.1-dev87.0 → 0.4.1-dev91.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.4.1-dev87.0",
4
+ "version": "0.4.1-dev91.0",
5
5
  "description": "DuckDB node.js API",
6
6
  "gypfile": true,
7
7
  "dependencies": {
package/src/duckdb.cpp CHANGED
@@ -43597,6 +43597,7 @@ int64_t Timestamp::GetEpochNanoSeconds(timestamp_t timestamp) {
43597
43597
  } // namespace duckdb
43598
43598
 
43599
43599
 
43600
+
43600
43601
  namespace duckdb {
43601
43602
 
43602
43603
  bool UUID::FromString(string str, hugeint_t &result) {
@@ -43681,6 +43682,45 @@ void UUID::ToString(hugeint_t input, char *buf) {
43681
43682
  byte_to_hex(input.lower & 0xFF, buf, pos);
43682
43683
  }
43683
43684
 
43685
+ hugeint_t UUID::GenerateRandomUUID(RandomEngine &engine) {
43686
+ uint8_t bytes[16];
43687
+ for (int i = 0; i < 16; i += 4) {
43688
+ *reinterpret_cast<uint32_t *>(bytes + i) = engine.NextRandomInteger();
43689
+ }
43690
+ // variant must be 10xxxxxx
43691
+ bytes[8] &= 0xBF;
43692
+ bytes[8] |= 0x80;
43693
+ // version must be 0100xxxx
43694
+ bytes[6] &= 0x4F;
43695
+ bytes[6] |= 0x40;
43696
+
43697
+ hugeint_t result;
43698
+ result.upper = 0;
43699
+ result.upper |= ((int64_t)bytes[0] << 56);
43700
+ result.upper |= ((int64_t)bytes[1] << 48);
43701
+ result.upper |= ((int64_t)bytes[3] << 40);
43702
+ result.upper |= ((int64_t)bytes[4] << 32);
43703
+ result.upper |= ((int64_t)bytes[5] << 24);
43704
+ result.upper |= ((int64_t)bytes[6] << 16);
43705
+ result.upper |= ((int64_t)bytes[7] << 8);
43706
+ result.upper |= bytes[8];
43707
+ result.lower = 0;
43708
+ result.lower |= ((uint64_t)bytes[8] << 56);
43709
+ result.lower |= ((uint64_t)bytes[9] << 48);
43710
+ result.lower |= ((uint64_t)bytes[10] << 40);
43711
+ result.lower |= ((uint64_t)bytes[11] << 32);
43712
+ result.lower |= ((uint64_t)bytes[12] << 24);
43713
+ result.lower |= ((uint64_t)bytes[13] << 16);
43714
+ result.lower |= ((uint64_t)bytes[14] << 8);
43715
+ result.lower |= bytes[15];
43716
+ return result;
43717
+ }
43718
+
43719
+ hugeint_t UUID::GenerateRandomUUID() {
43720
+ RandomEngine engine;
43721
+ return GenerateRandomUUID(engine);
43722
+ }
43723
+
43684
43724
  } // namespace duckdb
43685
43725
 
43686
43726
 
@@ -98591,35 +98631,7 @@ static void GenerateUUIDFunction(DataChunk &args, ExpressionState &state, Vector
98591
98631
  auto result_data = FlatVector::GetData<hugeint_t>(result);
98592
98632
 
98593
98633
  for (idx_t i = 0; i < args.size(); i++) {
98594
- uint8_t bytes[16];
98595
- for (int i = 0; i < 16; i += 4) {
98596
- *reinterpret_cast<uint32_t *>(bytes + i) = lstate.random_engine.NextRandomInteger();
98597
- }
98598
- // variant must be 10xxxxxx
98599
- bytes[8] &= 0xBF;
98600
- bytes[8] |= 0x80;
98601
- // version must be 0100xxxx
98602
- bytes[6] &= 0x4F;
98603
- bytes[6] |= 0x40;
98604
-
98605
- result_data[i].upper = 0;
98606
- result_data[i].upper |= ((int64_t)bytes[0] << 56);
98607
- result_data[i].upper |= ((int64_t)bytes[1] << 48);
98608
- result_data[i].upper |= ((int64_t)bytes[3] << 40);
98609
- result_data[i].upper |= ((int64_t)bytes[4] << 32);
98610
- result_data[i].upper |= ((int64_t)bytes[5] << 24);
98611
- result_data[i].upper |= ((int64_t)bytes[6] << 16);
98612
- result_data[i].upper |= ((int64_t)bytes[7] << 8);
98613
- result_data[i].upper |= bytes[8];
98614
- result_data[i].lower = 0;
98615
- result_data[i].lower |= ((uint64_t)bytes[8] << 56);
98616
- result_data[i].lower |= ((uint64_t)bytes[9] << 48);
98617
- result_data[i].lower |= ((uint64_t)bytes[10] << 40);
98618
- result_data[i].lower |= ((uint64_t)bytes[11] << 32);
98619
- result_data[i].lower |= ((uint64_t)bytes[12] << 24);
98620
- result_data[i].lower |= ((uint64_t)bytes[13] << 16);
98621
- result_data[i].lower |= ((uint64_t)bytes[14] << 8);
98622
- result_data[i].lower |= bytes[15];
98634
+ result_data[i] = UUID::GenerateRandomUUID(lstate.random_engine);
98623
98635
  }
98624
98636
  }
98625
98637
 
@@ -112719,7 +112731,8 @@ duckdb_state duckdb_append_varchar_length(duckdb_appender appender, const char *
112719
112731
  return duckdb_append_internal<string_t>(appender, string_t(val, length));
112720
112732
  }
112721
112733
  duckdb_state duckdb_append_blob(duckdb_appender appender, const void *data, idx_t length) {
112722
- return duckdb_append_internal<string_t>(appender, string_t((const char *)data, length));
112734
+ auto value = duckdb::Value::BLOB((duckdb::const_data_ptr_t)data, length);
112735
+ return duckdb_append_internal<duckdb::Value>(appender, value);
112723
112736
  }
112724
112737
 
112725
112738
  duckdb_state duckdb_appender_flush(duckdb_appender appender) {
@@ -118307,6 +118320,7 @@ ExtensionLoadResult ExtensionHelper::LoadExtensionInternal(DuckDB &db, const std
118307
118320
 
118308
118321
 
118309
118322
 
118323
+
118310
118324
  #ifndef DISABLE_DUCKDB_REMOTE_INSTALL
118311
118325
 
118312
118326
 
@@ -126550,7 +126564,8 @@ void ExtensionHelper::InstallExtension(DatabaseInstance &db, const string &exten
126550
126564
  return;
126551
126565
  }
126552
126566
 
126553
- string temp_path = local_extension_path + ".tmp";
126567
+ auto uuid = UUID::ToString(UUID::GenerateRandomUUID());
126568
+ string temp_path = local_extension_path + ".tmp-" + uuid;
126554
126569
  if (fs.FileExists(temp_path)) {
126555
126570
  fs.RemoveFile(temp_path);
126556
126571
  }
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 "40005dbc5"
15
- #define DUCKDB_VERSION "v0.4.1-dev87"
14
+ #define DUCKDB_SOURCE_ID "3473bea41"
15
+ #define DUCKDB_VERSION "v0.4.1-dev91"
16
16
  //===----------------------------------------------------------------------===//
17
17
  // DuckDB
18
18
  //
@@ -19093,6 +19093,8 @@ public:
19093
19093
 
19094
19094
 
19095
19095
  namespace duckdb {
19096
+ class ClientContext;
19097
+ struct RandomEngine;
19096
19098
 
19097
19099
  //! The UUID class contains static operations for the UUID type
19098
19100
  class UUID {
@@ -19107,6 +19109,10 @@ public:
19107
19109
  //! Convert a hugeint object to a uuid style string
19108
19110
  static void ToString(hugeint_t input, char *buf);
19109
19111
 
19112
+ //! Convert a hugeint object to a uuid style string
19113
+ static hugeint_t GenerateRandomUUID(RandomEngine &engine);
19114
+ static hugeint_t GenerateRandomUUID();
19115
+
19110
19116
  //! Convert a hugeint object to a uuid style string
19111
19117
  static string ToString(hugeint_t input) {
19112
19118
  char buff[STRING_SIZE];