diff --git a/.github/workflows/LinuxRelease.yml b/.github/workflows/LinuxRelease.yml index 2322b16ed858..6a9ce5f8092a 100644 --- a/.github/workflows/LinuxRelease.yml +++ b/.github/workflows/LinuxRelease.yml @@ -138,7 +138,7 @@ jobs: - uses: ./.github/actions/ubuntu_18_setup with: - cccache: 1 + ccache: 1 aarch64_cross_compile: 1 - name: Install unixODBC diff --git a/.github/workflows/NodeJS.yml b/.github/workflows/NodeJS.yml index a904994ef548..779b341b3215 100644 --- a/.github/workflows/NodeJS.yml +++ b/.github/workflows/NodeJS.yml @@ -70,7 +70,8 @@ jobs: DUCKDB_NODE_BUILD_CACHE: 0 strategy: matrix: - node: [ '10', '12', '14', '15', '16', '17', '18', '19', '20' ] + # node.js current support policy to be found at https://github.com/duckdb/duckdb/tree/master/tools/nodejs#Supported-Node-versions + node: [ '10', '12', '14', '16', '17', '18', '19', '20' ] target_arch: [ x64, arm64 ] isRelease: - ${{ startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/master' }} @@ -84,9 +85,6 @@ jobs: - isRelease: false node: 14 target_arch: x64 - - isRelease: false - node: 15 - target_arch: x64 - isRelease: false node: 16 target_arch: x64 @@ -108,9 +106,6 @@ jobs: - isRelease: false node: 14 target_arch: arm64 - - isRelease: false - node: 15 - target_arch: arm64 - isRelease: false node: 16 target_arch: arm64 @@ -188,7 +183,7 @@ jobs: strategy: matrix: target_arch: [ x64, arm64 ] - node: [ '10', '12', '14', '15', '16', '17', '18', '19', '20' ] + node: [ '10', '12', '14', '16', '17', '18', '19', '20' ] isRelease: - ${{ startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/master' }} exclude: @@ -198,8 +193,6 @@ jobs: node: 12 - isRelease: false node: 14 - - isRelease: false - node: 15 - isRelease: false node: 16 - isRelease: false @@ -212,8 +205,6 @@ jobs: node: 12 - target_arch: arm64 node: 14 - - target_arch: arm64 - node: 15 # these older versions of NodeJS don't have M1 support env: @@ -269,7 +260,7 @@ jobs: strategy: matrix: - node: [ '10', '12', '14', '15', '16', '17', '18', '19', '20' ] + node: [ '10', '12', '14', '16', '17', '18', '19', '20' ] isRelease: - ${{ startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/master' }} exclude: @@ -279,8 +270,6 @@ jobs: node: 12 - isRelease: false node: 14 - - isRelease: false - node: 15 - isRelease: false node: 16 - isRelease: false diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 287d5b9844b7..fc62b5b56d01 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -2,7 +2,7 @@ **All creatures are welcome**: We aim to create a safe space for all community members, regardless of their age, race, gender, sexual orientation, physical appearance or disability, choice of text editor, or any other qualities by which living beings can be discriminated. -**Be excellent to each other**: We do not tolerate verbal or physical harrassment, violence or intimidation. +**Be excellent to each other**: We do not tolerate verbal or physical harassment, violence or intimidation. We do not tolerate life forms who refuse to share this openness and respect towards others: Creatures that are not excellent to others are not welcome. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 04101e39f360..250b4615d4bf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,7 +35,7 @@ This project and everyone participating in it is governed by a [Code of Conduct] ## CI for pull requests -* Pull requests will need to be pass all continous integration checks before merging. +* Pull requests will need to be pass all continuous integration checks before merging. * For faster iteration and more control, consider running CI on your own fork or when possible directly locally. * Submitting changes to a open pull requests will move it to 'draft' state. * Pull requests will get a complete run on the main repo CI only when marked as 'ready for review' (via Web UI, button on bottom right). diff --git a/extension/parquet/include/parquet_reader.hpp b/extension/parquet/include/parquet_reader.hpp index b723e4165a41..6fa8f7758184 100644 --- a/extension/parquet/include/parquet_reader.hpp +++ b/extension/parquet/include/parquet_reader.hpp @@ -93,6 +93,7 @@ class ParquetReader { shared_ptr metadata; ParquetOptions parquet_options; MultiFileReaderData reader_data; + unique_ptr root_reader; public: void InitializeScan(ParquetReaderScanState &state, vector groups_to_read); diff --git a/extension/parquet/parquet_reader.cpp b/extension/parquet/parquet_reader.cpp index 30f65d7ab1b6..61066c017e41 100644 --- a/extension/parquet/parquet_reader.cpp +++ b/extension/parquet/parquet_reader.cpp @@ -399,8 +399,7 @@ void ParquetReader::InitializeSchema() { if (file_meta_data->schema.size() < 2) { throw FormatException("Need at least one non-root column in the file"); } - auto root_reader = CreateReader(); - + root_reader = CreateReader(); auto &root_type = root_reader->Type(); auto &child_types = StructType::GetChildTypes(root_type); D_ASSERT(root_type.id() == LogicalTypeId::STRUCT); @@ -450,7 +449,6 @@ ParquetReader::ParquetReader(ClientContext &context_p, string file_name_p, Parqu ObjectCache::GetObjectCache(context_p).Put(file_name, metadata); } } - InitializeSchema(); } @@ -483,7 +481,6 @@ unique_ptr ParquetReader::ReadStatistics(const string &name) { unique_ptr column_stats; auto file_meta_data = GetFileMetadata(); - auto root_reader = CreateReader(); auto column_reader = root_reader->Cast().GetChildReader(file_col_idx); for (idx_t row_group_idx = 0; row_group_idx < file_meta_data->row_groups.size(); row_group_idx++) { diff --git a/scripts/node_build.sh b/scripts/node_build.sh index 9c6218a444b7..33607eae9057 100755 --- a/scripts/node_build.sh +++ b/scripts/node_build.sh @@ -9,11 +9,6 @@ cd tools/nodejs make clean ./configure -if [[ "$1" == "15" ]] ; then - # force upgrade npm's internal copy of node-gyp - npm explore npm/node_modules/@npmcli/run-script -g -- npm_config_global=false npm install node-gyp@latest -fi - npm install --build-from-source --target_arch="$TARGET_ARCH" ./node_modules/.bin/node-pre-gyp reveal --target_arch="$TARGET_ARCH" diff --git a/tools/juliapkg/src/result.jl b/tools/juliapkg/src/result.jl index f4803704f29b..2b10a01ee2ad 100644 --- a/tools/juliapkg/src/result.jl +++ b/tools/juliapkg/src/result.jl @@ -833,4 +833,4 @@ DBInterface.execute(con::Connection, sql::AbstractString) = DBInterface.execute( DBInterface.execute(db::DB, sql::AbstractString, result_type::Type) = DBInterface.execute(db.main_connection, sql, result_type) -Base.show(io::IO, result::DuckDB.QueryResult) = print(io, Tables.rows(result)) +Base.show(io::IO, result::DuckDB.QueryResult) = print(io, Tables.columntable(result)) diff --git a/tools/nodejs/README.md b/tools/nodejs/README.md index 28f33ed7919e..a264212b9a86 100644 --- a/tools/nodejs/README.md +++ b/tools/nodejs/README.md @@ -100,6 +100,13 @@ var stmt = con.prepare('select ?::INTEGER as fortytwo', function(err, stmt) { }); ``` +## Supported Node versions +We actively support only LTS and In-Support Node versions, as per July 2023, they are: Node 16, Node 18 and Node 20. +Release schedule for Node.js can be checked here: https://github.com/nodejs/release#release-schedule. + +We currently bundle and test DuckDB also for Node 10, 12, 14, 17 and 19. We plan of going so going forward as long as the tooling supports it. +As per July 2023, Node 15 has been removed from the supported versions. + ## Development ### First install: