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 +1 -1
- package/src/duckdb.cpp +46 -31
- package/src/duckdb.hpp +8 -2
- package/src/parquet-amalgamation.cpp +26984 -26984
package/package.json
CHANGED
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 "
|
|
15
|
-
#define DUCKDB_VERSION "v0.4.1-
|
|
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];
|