From d39c3b740f7391c32c1f84e72160fc5eebed2124 Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Tue, 19 Sep 2023 10:24:51 -0400 Subject: [PATCH 1/6] Migrates aarch64 CI runners to Ubuntu (#385) Ubuntu generally does not require workarounds or tricks to get Postgres + PL/Rust to play nicely, so we are going to move the CI runners to use Ubuntu 22.04 instead of AL2. This should make future updates a little less painless. --- .github/workflows/ci.yml | 177 +++++++++++++++++++++++++-------------- 1 file changed, 113 insertions(+), 64 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c45178ad..ad617f9a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,95 +13,134 @@ on: env: RUST_BACKTRACE: 1 + SCCACHE_VER: 0.5.4 # Change this to bump the sccache version across all jobs # CARGO_LOG: cargo::core::compiler::fingerprint=info # Uncomment this to output compiler fingerprint info jobs: - # A job for running tasks on an Amazon Linux 2 instance, which are self-hosted runners on another cloud service. - # The image created for running these tasks already have a majority of the dependencies installed, such as system - # libraries, sccache, github runners, rust, etc. This is to cut back on the amount of time it takes to launch a runner. - # If something is missing, it can be added here or baked into a new image outside of Github Actions. - plrust_arm64_amzn2: - name: aarch64 tests (amzn2) - runs-on: [self-hosted, linux, ARM64, launch_template_id__lt-0013395587950cb5d] + # This job runs all tasks within an Ubuntu 22.04 image launched in AWS. + # A few things to note about the environment in which these run: + # * Ubuntu AMIs in AWS require extra storage to be mounted via EBS. As such, EBS volumes are pre-mounted + # in these images under /workdir + # * /workdir is the root directory for almost all things CI-build related, such as: + # - The "ubuntu" user's home directory is relocated to /workdir/ubuntu + # - TMPDIR is now set to /workdir/tmp so that Rust builds won't run out of drive space + # - rustup/cargo/etc are now located under various subdirectories of /workdir/ubuntu + # - sccache directory is located under /workdir/sccache + # - Any artifacts that need to be produces (like cache archives) need to be put under /workdir/ubuntu/artifacts + # - Github Actions runner is downloaded and installed to /workdir/ubuntu/actions-runner -- this is also where + # the runner application will be configured and launched + # * Caches are stored to and pulled from private S3 buckets + plrust_arm64_ubuntu: + name: arm64 tests on Ubuntu + + runs-on: [self-hosted, linux, ARM64, launch_template_id__lt-0726d9ff7411af069] defaults: run: shell: bash strategy: matrix: - version: ["pg13", "pg14", "pg15"] + version: ["pg13", "pg14", "pg15", "pg16"] target: ["host", "postgrestd"] fail-fast: false - # Note about environment variables: Even though a majority of these environment variables are baked into the runner image, - # Github Actions seemingly runs self-hosted tasks in a different manner such that even baken-in environment variables are - # removed. Howevever, they can be declared here and persist through all tasks. Assume that the home directory for the - # runner is /home/ec2-user env: + ARTIFACTS_DIR: /workdir/ubuntu/artifacts AWS_CACHE_BUCKET: tcdi-ci-plrust-build-cache.private CACHE_KEY_VERSION: v0 CI: true - PLRUST_TRUSTED_PGRX_OVERRIDE: "pgrx = { path = '/home/ec2-user/actions-runner/_work/plrust/plrust/plrust-trusted-pgrx', package='plrust-trusted-pgrx' }" - RUSTUP_HOME: /home/ec2-user/.rustup + PLRUST_TRUSTED_PGRX_OVERRIDE: "pgrx = { path = '/workdir/ubuntu/actions-runner/_work/plrust/plrust/plrust-trusted-pgrx', package='plrust-trusted-pgrx' }" + RUSTUP_HOME: /workdir/ubuntu/.rustup RUSTC_WRAPPER: sccache RUSTFLAGS: -Copt-level=0 -Dwarnings - SCCACHE_BIN_DIR: /home/ec2-user/.local/bin + SCCACHE_BIN_DIR: /workdir/ubuntu/.local/bin SCCACHE_CACHE_SIZE: 20G - SCCACHE_DIR: /home/ec2-user/.cache/sccache + SCCACHE_DIR: /workdir/sccache SCCACHE_IDLE_TIMEOUT: 0 - WORK_DIR: /home/ec2-user/actions-runner/_work/plrust/plrust + WORK_DIR: /workdir/ubuntu/actions-runner/_work/plrust/plrust + TMPDIR: /workdir/tmp steps: - uses: actions/checkout@v3 - - name: Generate cache filename checksum + - name: Generate cache filenames run: | cd $WORK_DIR shopt -s globstar checksum=$(cat **/Cargo.lock **/rust-toolchain.toml .github/workflows/ci.yml .cargo/config | sha256sum | awk '{print $1}') echo "CACHE_KEY_CHECKSUM=$checksum" >> $GITHUB_ENV + echo "CARGO_CACHE_KEY=plrust-arm64-ubuntu-cargo-cache-$CACHE_KEY_VERSION-$checksum.tar.lz4" >> $GITHUB_ENV + echo "SCCACHE_CACHE_KEY=plrust-arm64-ubuntu-sccache-cache-$CACHE_KEY_VERSION-$checksum.tar.lz4" >> $GITHUB_ENV + mkdir -p $ARTIFACTS_DIR - name: Set up (Linux) prerequisites and environment run: | echo "" - echo "----- Print kernel info -----" - uname -a - echo "" echo "----- Set up dynamic variables -----" export PG_VER=$(echo ${{ matrix.version }} | cut -c 3-) echo "PG_VER=$PG_VER" >> $GITHUB_ENV echo "MAKEFLAGS=$MAKEFLAGS -j $(grep -c ^processor /proc/cpuinfo)" >> $GITHUB_ENV - echo "$SCCACHE_BIN_DIR" >> $GITHUB_PATH - echo "PATH=$HOME/.cargo/bin:$PATH" >> $GITHUB_ENV + cat $GITHUB_ENV echo "" - echo "----- Install system dependencies -----" - # Add any extra dependencies here if necessary - echo "----- Install PostgreSQL $PG_VER -----" - sudo yum install -y "postgresql$PG_VER" "postgresql$PG_VER-server" "postgresql$PG_VER-devel" - export PATH="/usr/pgsql-$PG_VER/bin/:$PATH" - echo "/usr/pgsql-$PG_VER/bin/" >> $GITHUB_PATH + echo "----- Install sccache -----" + mkdir -p $SCCACHE_BIN_DIR + curl -L "https://github.com/mozilla/sccache/releases/download/v$SCCACHE_VER/sccache-v$SCCACHE_VER-aarch64-unknown-linux-musl.tar.gz" | tar xz + mv -f "sccache-v$SCCACHE_VER-aarch64-unknown-linux-musl/sccache" "$SCCACHE_BIN_DIR/sccache" + chmod +x "$SCCACHE_BIN_DIR/sccache" + echo "$SCCACHE_BIN_DIR" >> "$GITHUB_PATH" + mkdir -p "$SCCACHE_DIR" + echo "" - echo "----- Set postgres permissions -----" - sudo chmod a+rwx `$(which pg_config) --pkglibdir` `$(which pg_config) --sharedir`/extension + echo "----- Remove old postgres and libraries -----" + sudo apt remove -y '^postgres.*' '^libpq.*' '^clang.*' '^llvm.*' '^libclang.*' '^libllvm.*' # '^mono-llvm.*' echo "" - echo "----- Create artifacts directory -----" - mkdir -p $HOME/artifacts + echo "----- Set up PostgreSQL Apt repository -----" + sudo apt-get install -y wget gnupg + sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' + wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null + sudo apt-get update -y -qq --fix-missing echo "" - cat $GITHUB_ENV + echo "----- Install system dependencies and PostgreSQL version $PG_VER -----" + sudo apt-get install -y \ + build-essential \ + clang-14 \ + gcc \ + libclang-14-dev \ + libssl-dev \ + libz-dev \ + llvm-14-dev \ + lz4 \ + make \ + pkg-config \ + strace \ + zlib1g-dev echo "" + + echo "----- Install rustup -----" + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + echo "$HOME/.cargo/bin" >> $GITHUB_PATH + source "$HOME/.cargo/env" + cargo --version + echo "" + + echo "----- Print env -----" env + echo "" - - name: Load Cargo cache if available + - name: Load Cargo and sccache caches if available run: | # See /.github/scripts/load_cache.sh for more details . $WORK_DIR/.github/scripts/load_cache.sh - cargo_cache_key="plrust-arm64-amzn2-cargo-cache-$CACHE_KEY_VERSION-$CACHE_KEY_CHECKSUM.tar.lz4" - loadcache $cargo_cache_key + loadcache $CARGO_CACHE_KEY + loadcache $SCCACHE_CACHE_KEY + + - name: Start sccache server + run: sccache --start-server && sccache --show-stats - name: Create protected files run: | @@ -111,20 +150,22 @@ jobs: sudo chmod -R 600 /var/ci-stuff/secret_rust_files if: matrix.target == 'postgrestd' - - name: Load sccache cache if available + - name: Install release version of PostgreSQL run: | - # See /.github/scripts/load_cache.sh for more details - . $WORK_DIR/.github/scripts/load_cache.sh - sccache_key="plrust-arm64-amzn2-sccache-cache-$CACHE_KEY_VERSION-$CACHE_KEY_CHECKSUM.tar.lz4" - loadcache $sccache_key + sudo apt-get install -y \ + postgresql-"$PG_VER" \ + postgresql-server-dev-"$PG_VER" - - name: Start sccache server - run: sccache --start-server && sccache --show-stats + echo "---- pg_config info ----" + /usr/lib/postgresql/"$PG_VER"/bin/pg_config + + - name: Set up Postgres permissions + run: sudo chmod a+rwx "$(/usr/lib/postgresql/"$PG_VER"/bin/pg_config --pkglibdir)" "$(/usr/lib/postgresql/"$PG_VER"/bin/pg_config --sharedir)"/extension /var/run/postgresql/ # See /.github/scripts/install_cargo_pgrx.sh for more details - name: Install cargo-pgrx defined in plrust/Cargo.toml run: | - . $WORK_DIR/.github/scripts/install_cargo_pgrx.sh + . $GITHUB_WORKSPACE/.github/scripts/install_cargo_pgrx.sh install_cargo_pgrx - name: Print sccache stats @@ -133,19 +174,33 @@ jobs: - name: Install llvm-tools-preview run: rustup component add llvm-tools-preview rustc-dev + - name: Create protected files + run: | + sudo mkdir -p /var/ci-stuff/secret_rust_files + sudo echo "const FOO:i32 = 7;" /var/ci-stuff/secret_rust_files/const_foo.rs + sudo echo "const BAR:i32 = 8;" /var/ci-stuff/const_bar.rs + sudo chmod -R 600 /var/ci-stuff/secret_rust_files + if: matrix.target == 'postgrestd' + - name: Test plrustc run: cd plrustc && cargo test -p plrustc - name: Print sccache stats run: sccache --show-stats - - name: install plrustc + - name: Test plrustc + run: cd plrustc && cargo test + + - name: Print sccache stats + run: sccache --show-stats + + - name: Install plrustc run: cd plrustc && ./build.sh && cp ../build/bin/plrustc ~/.cargo/bin - name: Print sccache stats run: sccache --show-stats - - name: Run cargo pgrx init + - name: Run 'cargo pgrx init' against system-level ${{ matrix.version }} run: cargo pgrx init --pg$PG_VER $(which pg_config) - name: Install PL/Rust as "trusted" @@ -172,29 +227,23 @@ jobs: if: matrix.target == 'host' run: cd plrust && echo "\q" | cargo pgrx run "pg$PG_VER" && cd ../plrust-tests && cargo test --no-default-features --features "pg$PG_VER" - - name: Print sccache stats (after build) + - name: Print sccache stats run: sccache --show-stats - name: Stop sccache server run: sccache --stop-server || true - - name: Store Cargo cache if applicable + - name: Store Cargo and sccache caches if applicable run: | . $WORK_DIR/.github/scripts/save_cache.sh # See /.github/scripts/save_cache.sh for more details - cargo_cache_key="plrust-arm64-amzn2-cargo-cache-$CACHE_KEY_VERSION-$CACHE_KEY_CHECKSUM.tar.lz4" cargo_dirs=( \ $HOME/.cargo/ \ ) - savecache $cargo_cache_key "${cargo_dirs[@]}" + savecache $CARGO_CACHE_KEY "${cargo_dirs[@]}" - - name: Store sccache if applicable - run: | - # See /.github/scripts/save_cache.sh for more details - . $WORK_DIR/.github/scripts/save_cache.sh - sccache_key="plrust-arm64-amzn2-sccache-cache-$CACHE_KEY_VERSION-$CACHE_KEY_CHECKSUM.tar.lz4" sccache_dirs=($SCCACHE_DIR) - savecache $sccache_key "${sccache_dirs[@]}" + savecache $SCCACHE_CACHE_KEY "${sccache_dirs[@]}" plrust_x86_64: name: x86_64 tests @@ -234,12 +283,12 @@ jobs: echo "----- Install sccache -----" - mkdir -p $SCCACHE_BIN_DIR - curl -L https://github.com/mozilla/sccache/releases/download/v0.5.0/sccache-v0.5.0-x86_64-unknown-linux-musl.tar.gz | tar xz - mv -f sccache-v0.5.0-x86_64-unknown-linux-musl/sccache $SCCACHE_BIN_DIR/sccache - chmod +x $SCCACHE_BIN_DIR/sccache + mkdir -p "$SCCACHE_BIN_DIR" + curl -L "https://github.com/mozilla/sccache/releases/download/v$SCCACHE_VER/sccache-v$SCCACHE_VER-x86_64-unknown-linux-musl.tar.gz" | tar xz + mv -f "sccache-v$SCCACHE_VER-x86_64-unknown-linux-musl/sccache" "$SCCACHE_BIN_DIR/sccache" + chmod +x "$SCCACHE_BIN_DIR/sccache" echo "$SCCACHE_BIN_DIR" >> $GITHUB_PATH - mkdir -p $SCCACHE_DIR + mkdir -p "$SCCACHE_DIR" echo "" echo "----- Remove old postgres -----" @@ -269,7 +318,7 @@ jobs: echo "----- Installed Packages -----" sudo apt list --installed echo "" - + echo "----- Print env -----" env echo "" @@ -290,7 +339,7 @@ jobs: sudo apt-get install -y \ postgresql-"$PG_VER" \ postgresql-server-dev-"$PG_VER" - + echo "---- pg_config info ----" /usr/lib/postgresql/"$PG_VER"/bin/pg_config From 4d21a396a3744ccf45e35fc6306d4e80c80e7f56 Mon Sep 17 00:00:00 2001 From: Thom Chiovoloni Date: Wed, 18 Oct 2023 06:59:25 -0700 Subject: [PATCH 2/6] Update Rust to 1.73.0 (#388) Depends on https://github.com/tcdi/postgrestd/pull/51 --- doc/book.toml | 2 +- doc/src/install-plrust-on-debian-ubuntu.md | 2 +- plrust/build | 2 +- plrustc/build.sh | 4 ++-- plrustc/plrustc/uitests/ice_hook.stderr | 3 ++- plrustc/rust-toolchain.toml | 2 +- rust-toolchain.toml | 2 +- 7 files changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/book.toml b/doc/book.toml index 39812464..c1ae2ac3 100644 --- a/doc/book.toml +++ b/doc/book.toml @@ -6,4 +6,4 @@ src = "src" title = "PL/Rust Guide" [preprocessor.variables.variables] -toolchain_ver = "1.72.0" +toolchain_ver = "1.73.0" diff --git a/doc/src/install-plrust-on-debian-ubuntu.md b/doc/src/install-plrust-on-debian-ubuntu.md index 8eac6d7d..7c0f4c00 100644 --- a/doc/src/install-plrust-on-debian-ubuntu.md +++ b/doc/src/install-plrust-on-debian-ubuntu.md @@ -28,7 +28,7 @@ Where: Example: ``` -plrust-trusted-1.2.3_1.72.0-debian-pg15-amd64.deb +plrust-trusted-1.2.3_1.73.0-debian-pg15-amd64.deb ``` ## Preparing the environment diff --git a/plrust/build b/plrust/build index 678bcfec..4d3fa2d6 100755 --- a/plrust/build +++ b/plrust/build @@ -75,7 +75,7 @@ fi git pull git submodule update --init --recursive else - git clone https://github.com/tcdi/postgrestd.git --branch "rust-1.72.0" --recurse-submodules + git clone https://github.com/tcdi/postgrestd.git --branch "rust-1.73.0" --recurse-submodules cd ./postgrestd fi rm -f rust-toolchain.toml diff --git a/plrustc/build.sh b/plrustc/build.sh index 42315378..6a757c84 100755 --- a/plrustc/build.sh +++ b/plrustc/build.sh @@ -25,8 +25,8 @@ fi export RUSTC_BOOTSTRAP=1 version=$($RUSTC --version | cut -d ' ' -f 2) -if [ "$version" != "1.72.0" ]; then - echo "rustc ('$RUSTC') is not version 1.72.0" >&2 +if [ "$version" != "1.73.0" ]; then + echo "rustc ('$RUSTC') is not version 1.73.0" >&2 exit 1 fi diff --git a/plrustc/plrustc/uitests/ice_hook.stderr b/plrustc/plrustc/uitests/ice_hook.stderr index 74149be3..89319efb 100644 --- a/plrustc/plrustc/uitests/ice_hook.stderr +++ b/plrustc/plrustc/uitests/ice_hook.stderr @@ -1,4 +1,5 @@ -thread 'rustc' panicked at 'Here is your ICE', plrustc/src/lints/force_ice.rs +thread 'rustc' panicked at plrustc/src/lints/force_ice.rs: +Here is your ICE note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace error: the compiler unexpectedly panicked. this is a bug. diff --git a/plrustc/rust-toolchain.toml b/plrustc/rust-toolchain.toml index 3f04015d..cdb699f0 100644 --- a/plrustc/rust-toolchain.toml +++ b/plrustc/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.72.0" +channel = "1.73.0" components = [ "rustfmt", "rust-src", "rustc-dev", "cargo", "llvm-tools" ] targets = [ ] profile = "minimal" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index ffb76ff9..a61a3669 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.72.0" +channel = "1.73.0" components = [ "rustfmt", "rust-src", "rustc-dev", "llvm-tools" ] targets = [ ] profile = "minimal" From 89df8aae545bf24ff3ec4d137c044aa22c578e1b Mon Sep 17 00:00:00 2001 From: Eric Ridge Date: Wed, 18 Oct 2023 11:50:59 -0400 Subject: [PATCH 3/6] update dependencies, including to pgrx v0.11.0 (#389) --- Cargo.lock | 404 +++++++++++++-------------------- plrust-tests/Cargo.toml | 4 +- plrust-trusted-pgrx/Cargo.toml | 2 +- plrust/Cargo.toml | 18 +- plrust/src/hooks.rs | 2 +- plrustc/Cargo.lock | 56 ++--- plrustc/plrustc/Cargo.toml | 2 +- 7 files changed, 204 insertions(+), 284 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c7a92d27..5ff4cbb9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,18 +19,18 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aho-corasick" -version = "1.0.5" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] [[package]] name = "anstyle" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anyhow" @@ -40,13 +40,13 @@ checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "async-trait" -version = "0.1.73" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.33", + "syn 2.0.38", ] [[package]] @@ -101,7 +101,7 @@ version = "0.68.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "cexpr", "clang-sys", "lazy_static", @@ -112,7 +112,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.33", + "syn 2.0.38", ] [[package]] @@ -138,9 +138,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] name = "bitvec" @@ -165,15 +165,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" @@ -183,12 +183,12 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cargo_toml" -version = "0.15.3" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" +checksum = "e3f9629bc6c4388ea699781dc988c2b99766d7679b151c81990b4fa1208fafd3" dependencies = [ "serde", - "toml 0.7.8", + "toml", ] [[package]] @@ -228,9 +228,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.3" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84ed82781cea27b43c9b106a979fe450a13a31aab0500595fb3fc06616de08e6" +checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956" dependencies = [ "clap_builder", "clap_derive", @@ -248,9 +248,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.2" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08" +checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45" dependencies = [ "anstyle", "clap_lex", @@ -265,7 +265,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.33", + "syn 2.0.38", ] [[package]] @@ -340,16 +340,6 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" -[[package]] -name = "crossbeam-channel" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - [[package]] name = "crossbeam-deque" version = "0.8.3" @@ -454,7 +444,7 @@ checksum = "04d0b288e3bb1d861c4403c1774a6f7a798781dfc519b3647df2a3dd4ae95f25" dependencies = [ "proc-macro2", "quote", - "syn 2.0.33", + "syn 2.0.38", ] [[package]] @@ -465,25 +455,14 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" +checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" dependencies = [ - "errno-dragonfly", "libc", "windows-sys", ] -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - [[package]] name = "eyre" version = "0.6.8" @@ -502,9 +481,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "finl_unicode" @@ -520,9 +499,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" dependencies = [ "crc32fast", "miniz_oxide", @@ -573,7 +552,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.33", + "syn 2.0.38", ] [[package]] @@ -653,9 +632,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" [[package]] name = "heapless" @@ -676,12 +655,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -[[package]] -name = "hermit-abi" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" - [[package]] name = "hmac" version = "0.12.1" @@ -718,25 +691,14 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "2.0.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" dependencies = [ "equivalent", "hashbrown", ] -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys", -] - [[package]] name = "itoa" version = "1.0.9" @@ -766,9 +728,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.148" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "libloading" @@ -782,9 +744,9 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb" +checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" dependencies = [ "cfg-if", "windows-sys", @@ -792,27 +754,21 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.7" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128" +checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg", "scopeguard", @@ -835,26 +791,27 @@ dependencies = [ [[package]] name = "md-5" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ + "cfg-if", "digest", ] [[package]] name = "memchr" -version = "2.6.3" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memfd" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.37.23", + "rustix", ] [[package]] @@ -923,24 +880,14 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", "libm", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "object" version = "0.32.1" @@ -992,13 +939,13 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", + "redox_syscall 0.4.1", "smallvec", "windows-targets", ] @@ -1027,9 +974,9 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.7.3" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33" +checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4" dependencies = [ "memchr", "thiserror", @@ -1048,12 +995,12 @@ dependencies = [ [[package]] name = "pgrx" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c4fe036f9493e674a7db27f7a06d54acb89735a0c1d4421128c341d3cf240f" +checksum = "bd3c4b36fbe84329b86c83bfd33b9514a50606f00074f47085f99062a7dd8c9c" dependencies = [ "atomic-traits", - "bitflags 2.4.0", + "bitflags 2.4.1", "bitvec", "enum-map", "heapless", @@ -1073,9 +1020,9 @@ dependencies = [ [[package]] name = "pgrx-macros" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943f9e2f46585b8f4540c72e26b079303b3520f8de0da090f96acaabe3f99e28" +checksum = "9c6a41e021321a814fac1aa27bd4266208b4507709ecbc28fc99693adfbd0c41" dependencies = [ "pgrx-sql-entity-graph", "proc-macro2", @@ -1085,9 +1032,9 @@ dependencies = [ [[package]] name = "pgrx-pg-config" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a48800161320294c5a5ab72d38235e2e97f3bf1849661ee977502c8e64362285" +checksum = "17da1e26800e747d501b8d8bb8aeee4530a07d93a39c3fb2c4229a8feff213b2" dependencies = [ "cargo_toml", "dirs", @@ -1097,15 +1044,15 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "toml 0.8.0", + "toml", "url", ] [[package]] name = "pgrx-pg-sys" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27dd6c4f2f098f62b5a8f07cf6447f640ce81637d20f269662a043a55195ed9d" +checksum = "f9032b517525ec71579cc68e92905b5f5f63e892c094834202313c42f2f1a669" dependencies = [ "bindgen", "eyre", @@ -1125,9 +1072,9 @@ dependencies = [ [[package]] name = "pgrx-sql-entity-graph" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7514a083c8c062f8bb9f53ced124f120515af3b49b92a57305e749ec736f98c" +checksum = "2e4a88203974b887bca8bfdea17ab9936411fb7e84957763dc0124df78d07907" dependencies = [ "convert_case", "eyre", @@ -1140,9 +1087,9 @@ dependencies = [ [[package]] name = "pgrx-tests" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a71327ab5e5ddbc2d43ffad391ce515a358096c3713b360b57c5eec107d1cb7" +checksum = "c80deb4310538e6ef14f4cbb30b56eb24b6d7aae66bfd4e516f153987159e65e" dependencies = [ "clap-cargo", "eyre", @@ -1202,7 +1149,7 @@ dependencies = [ "eyre", "flate2", "home", - "libloading 0.8.0", + "libloading 0.8.1", "memfd", "omnipath", "once_cell", @@ -1211,13 +1158,13 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "semver 1.0.18", + "semver 1.0.20", "serde", "serde_json", - "syn 2.0.33", + "syn 2.0.38", "tempfile", "thiserror", - "toml 0.8.0", + "toml", "tracing", "tracing-error", "tracing-subscriber", @@ -1296,33 +1243,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ "proc-macro2", - "syn 2.0.33", + "syn 2.0.38", ] [[package]] name = "proc-macro2" -version = "1.0.67" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] [[package]] name = "proptest" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e35c06b98bf36aba164cc17cb25f7e232f5c4aeea73baa14b8a9f0d92dbfa65" +checksum = "7c003ac8c77cb07bb74f5f198bce836a689bcd5a42574612bf14d17bfd08c20e" dependencies = [ "bit-set", - "bitflags 1.3.2", - "byteorder", + "bit-vec", + "bitflags 2.4.1", "lazy_static", "num-traits", "rand", "rand_chacha", "rand_xorshift", - "regex-syntax 0.6.29", + "regex-syntax 0.7.5", "rusty-fork", "tempfile", "unarray", @@ -1390,9 +1337,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -1400,14 +1347,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] @@ -1428,6 +1373,15 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "redox_users" version = "0.4.3" @@ -1441,14 +1395,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.5" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.3.8", - "regex-syntax 0.7.5", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", ] [[package]] @@ -1462,13 +1416,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.8" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.5", + "regex-syntax 0.8.2", ] [[package]] @@ -1483,6 +1437,12 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + [[package]] name = "rustc-demangle" version = "0.1.23" @@ -1510,33 +1470,19 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.18", -] - -[[package]] -name = "rustix" -version = "0.37.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys", + "semver 1.0.20", ] [[package]] name = "rustix" -version = "0.38.13" +version = "0.38.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662" +checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "errno", "libc", - "linux-raw-sys 0.4.7", + "linux-raw-sys", "windows-sys", ] @@ -1581,9 +1527,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "semver-parser" @@ -1602,9 +1548,9 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" [[package]] name = "serde" -version = "1.0.188" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" +checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" dependencies = [ "serde_derive", ] @@ -1621,13 +1567,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.188" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.33", + "syn 2.0.38", ] [[package]] @@ -1652,9 +1598,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -1663,9 +1609,9 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] @@ -1693,9 +1639,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "socket2" @@ -1758,9 +1704,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.33" +version = "2.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9caece70c63bfba29ec2fed841a09851b14a235c60010fa4de58089b6c025668" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" dependencies = [ "proc-macro2", "quote", @@ -1797,28 +1743,28 @@ dependencies = [ "cfg-if", "fastrand", "redox_syscall 0.3.5", - "rustix 0.38.13", + "rustix", "windows-sys", ] [[package]] name = "thiserror" -version = "1.0.48" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" +checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.48" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" +checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.33", + "syn 2.0.38", ] [[package]] @@ -1848,9 +1794,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.32.0" +version = "1.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" +checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" dependencies = [ "backtrace", "bytes", @@ -1889,9 +1835,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" dependencies = [ "bytes", "futures-core", @@ -1903,26 +1849,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.19.15", -] - -[[package]] -name = "toml" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c226a7bba6d859b63c92c4b4fe69c5b6b72d0cb897dbc8e6012298e6154cb56e" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.20.0", + "toml_edit", ] [[package]] @@ -1936,22 +1870,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.19.15" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "toml_edit" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ff63e60a958cefbb518ae1fd6566af80d9d4be430a33f3723dfc47d1d411d95" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ "indexmap", "serde", @@ -1962,11 +1883,10 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9" dependencies = [ - "cfg-if", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -1974,20 +1894,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.33", + "syn 2.0.38", ] [[package]] name = "tracing-core" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -2034,9 +1954,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" @@ -2096,9 +2016,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" +checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" dependencies = [ "getrandom", ] @@ -2151,7 +2071,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.33", + "syn 2.0.38", "wasm-bindgen-shared", ] @@ -2173,7 +2093,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.33", + "syn 2.0.38", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2294,9 +2214,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.15" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c" dependencies = [ "memchr", ] diff --git a/plrust-tests/Cargo.toml b/plrust-tests/Cargo.toml index 7ce24868..9833290b 100644 --- a/plrust-tests/Cargo.toml +++ b/plrust-tests/Cargo.toml @@ -16,11 +16,11 @@ pg_test = [] trusted = [] [dependencies] -pgrx = "=0.10.1" +pgrx = "=0.11.0" tempfile = "3.8.0" once_cell = "1.18.0" [dev-dependencies] -pgrx-tests = "=0.10.1" +pgrx-tests = "=0.11.0" tempfile = "3.8.0" once_cell = "1.18.0" diff --git a/plrust-trusted-pgrx/Cargo.toml b/plrust-trusted-pgrx/Cargo.toml index 35075379..ff70b16f 100644 --- a/plrust-trusted-pgrx/Cargo.toml +++ b/plrust-trusted-pgrx/Cargo.toml @@ -19,7 +19,7 @@ pg16 = ["pgrx/pg16"] [dependencies] # changing the pgrx version will likely require at least a minor version bump to this create -pgrx = { version = "=0.10.1", features = [ "no-schema-generation" ], default-features = false } +pgrx = { version = "=0.11.0", features = [ "no-schema-generation" ], default-features = false } [package.metadata.docs.rs] features = ["pg14"] diff --git a/plrust/Cargo.toml b/plrust/Cargo.toml index 1642bf0f..64a9b15a 100644 --- a/plrust/Cargo.toml +++ b/plrust/Cargo.toml @@ -30,21 +30,21 @@ force_enable_x86_64_darwin_generations = [] [dependencies] cfg-if = "1" # platform conditional helper once_cell = "1.18.0" # polyfills a nightly feature -semver = "1.0.18" +semver = "1.0.20" home = "0.5.5" # where can we find cargo? # working with our entry in pg_catalog.pg_proc base64 = "0.21.4" -flate2 = "1.0.27" -serde = "1.0.188" +flate2 = "1.0.28" +serde = "1.0.189" serde_json = "1.0.107" # pgrx core details -pgrx = { version = "=0.10.1" } +pgrx = { version = "=0.11.0" } # language handler support -libloading = "0.8.0" -toml = "0.8.0" +libloading = "0.8.1" +toml = "0.8.2" tempfile = "3.8.0" # error handling, tracing, formatting @@ -63,10 +63,10 @@ proc-macro2 = "1" omnipath = "0.1.6" [target.'cfg(target_os="linux")'.dependencies] -memfd = "0.6.3" # for anonymously writing/loading user function .so +memfd = "0.6.4" # for anonymously writing/loading user function .so [dev-dependencies] -pgrx-tests = { version = "=0.10.1" } +pgrx-tests = { version = "=0.11.0" } once_cell = "1.18.0" -toml = "0.8.0" +toml = "0.8.2" diff --git a/plrust/src/hooks.rs b/plrust/src/hooks.rs index 81916bbd..a4e35e04 100644 --- a/plrust/src/hooks.rs +++ b/plrust/src/hooks.rs @@ -104,7 +104,7 @@ fn plrust_process_utility_hook_internal( }; // examine the UtilityStatement itself. We're only interested in "ALTER FUNCTION". - if utility_stmt.type_ == pg_sys::NodeTag_T_AlterFunctionStmt { + if utility_stmt.type_ == pg_sys::NodeTag::T_AlterFunctionStmt { // for ALTER FUNCTION we call the previous hook first as it could decide it needs to change // the STRICT-ness of the function and we absolutely need to stop that in its tracks #[rustfmt::skip] diff --git a/plrustc/Cargo.lock b/plrustc/Cargo.lock index 45e543b5..18d8e075 100644 --- a/plrustc/Cargo.lock +++ b/plrustc/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "aho-corasick" -version = "1.0.5" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] @@ -112,9 +112,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "itoa" @@ -130,9 +130,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.148" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "log" @@ -142,9 +142,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "memchr" -version = "2.6.3" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "miow" @@ -182,9 +182,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.67" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -229,9 +229,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.5" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -241,9 +241,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.8" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -252,9 +252,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.5" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "rustfix" @@ -282,18 +282,18 @@ checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "serde" -version = "1.0.188" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" +checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.188" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" dependencies = [ "proc-macro2", "quote", @@ -313,9 +313,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.33" +version = "2.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9caece70c63bfba29ec2fed841a09851b14a235c60010fa4de58089b6c025668" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" dependencies = [ "proc-macro2", "quote", @@ -348,18 +348,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.48" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" +checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.48" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" +checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" dependencies = [ "proc-macro2", "quote", @@ -374,9 +374,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "wasi" diff --git a/plrustc/plrustc/Cargo.toml b/plrustc/plrustc/Cargo.toml index ad2b3276..b7046ffe 100644 --- a/plrustc/plrustc/Cargo.toml +++ b/plrustc/plrustc/Cargo.toml @@ -9,7 +9,7 @@ homepage = "https://github.com/tcdi/plrust/" repository = "https://github.com/tcdi/plrust/" [dependencies] -libc = "0.2.148" +libc = "0.2.149" once_cell = "1.18.0" [dev-dependencies] From a3140128237388c14aa9e3be5b8dd72dcbddabcd Mon Sep 17 00:00:00 2001 From: "Eric B. Ridge" Date: Sat, 18 Nov 2023 10:36:37 -0500 Subject: [PATCH 4/6] Revert "Update Rust to 1.73.0 (#388)" This reverts commit 4d21a396a3744ccf45e35fc6306d4e80c80e7f56. --- doc/book.toml | 2 +- doc/src/install-plrust-on-debian-ubuntu.md | 2 +- plrust/build | 2 +- plrustc/build.sh | 4 ++-- plrustc/plrustc/uitests/ice_hook.stderr | 3 +-- plrustc/rust-toolchain.toml | 2 +- rust-toolchain.toml | 2 +- 7 files changed, 8 insertions(+), 9 deletions(-) diff --git a/doc/book.toml b/doc/book.toml index c1ae2ac3..39812464 100644 --- a/doc/book.toml +++ b/doc/book.toml @@ -6,4 +6,4 @@ src = "src" title = "PL/Rust Guide" [preprocessor.variables.variables] -toolchain_ver = "1.73.0" +toolchain_ver = "1.72.0" diff --git a/doc/src/install-plrust-on-debian-ubuntu.md b/doc/src/install-plrust-on-debian-ubuntu.md index 7c0f4c00..8eac6d7d 100644 --- a/doc/src/install-plrust-on-debian-ubuntu.md +++ b/doc/src/install-plrust-on-debian-ubuntu.md @@ -28,7 +28,7 @@ Where: Example: ``` -plrust-trusted-1.2.3_1.73.0-debian-pg15-amd64.deb +plrust-trusted-1.2.3_1.72.0-debian-pg15-amd64.deb ``` ## Preparing the environment diff --git a/plrust/build b/plrust/build index 4d3fa2d6..678bcfec 100755 --- a/plrust/build +++ b/plrust/build @@ -75,7 +75,7 @@ fi git pull git submodule update --init --recursive else - git clone https://github.com/tcdi/postgrestd.git --branch "rust-1.73.0" --recurse-submodules + git clone https://github.com/tcdi/postgrestd.git --branch "rust-1.72.0" --recurse-submodules cd ./postgrestd fi rm -f rust-toolchain.toml diff --git a/plrustc/build.sh b/plrustc/build.sh index 6a757c84..42315378 100755 --- a/plrustc/build.sh +++ b/plrustc/build.sh @@ -25,8 +25,8 @@ fi export RUSTC_BOOTSTRAP=1 version=$($RUSTC --version | cut -d ' ' -f 2) -if [ "$version" != "1.73.0" ]; then - echo "rustc ('$RUSTC') is not version 1.73.0" >&2 +if [ "$version" != "1.72.0" ]; then + echo "rustc ('$RUSTC') is not version 1.72.0" >&2 exit 1 fi diff --git a/plrustc/plrustc/uitests/ice_hook.stderr b/plrustc/plrustc/uitests/ice_hook.stderr index 89319efb..74149be3 100644 --- a/plrustc/plrustc/uitests/ice_hook.stderr +++ b/plrustc/plrustc/uitests/ice_hook.stderr @@ -1,5 +1,4 @@ -thread 'rustc' panicked at plrustc/src/lints/force_ice.rs: -Here is your ICE +thread 'rustc' panicked at 'Here is your ICE', plrustc/src/lints/force_ice.rs note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace error: the compiler unexpectedly panicked. this is a bug. diff --git a/plrustc/rust-toolchain.toml b/plrustc/rust-toolchain.toml index cdb699f0..3f04015d 100644 --- a/plrustc/rust-toolchain.toml +++ b/plrustc/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.73.0" +channel = "1.72.0" components = [ "rustfmt", "rust-src", "rustc-dev", "cargo", "llvm-tools" ] targets = [ ] profile = "minimal" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index a61a3669..ffb76ff9 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.73.0" +channel = "1.72.0" components = [ "rustfmt", "rust-src", "rustc-dev", "llvm-tools" ] targets = [ ] profile = "minimal" From a068dffd1886640de2399ca6e8cb9694743d14f0 Mon Sep 17 00:00:00 2001 From: Eric Ridge Date: Sat, 18 Nov 2023 11:06:20 -0500 Subject: [PATCH 5/6] Add dynamic function call support (#390) This adds support for pgrx' `fn_call` interface that enables calling other schema-defined functions dynamically. The only code changes, as it were, are in the `plrust-trusted-pgrx` reexport crate. The bulk of this PR is adding a little chapter to the book along with a simple unit test. --- README.md | 2 + doc/src/SUMMARY.md | 1 + doc/src/dynamic-function-calling.md | 214 ++++++++++++++++++++++++++++ plrust-tests/src/fn_call.rs | 34 +++++ plrust-tests/src/lib.rs | 1 + plrust-trusted-pgrx/src/lib.rs | 7 + 6 files changed, 259 insertions(+) create mode 100644 doc/src/dynamic-function-calling.md create mode 100644 plrust-tests/src/fn_call.rs diff --git a/README.md b/README.md index 7628274a..f1662f3d 100644 --- a/README.md +++ b/README.md @@ -170,3 +170,5 @@ Please read the [Security](SECURITY.md) for directions on reporting a potential # License PL/Rust is licensed under "The PostgreSQL License", which can be found [here](LICENSE.md). + + diff --git a/doc/src/SUMMARY.md b/doc/src/SUMMARY.md index 0dd83239..c8e3cfce 100644 --- a/doc/src/SUMMARY.md +++ b/doc/src/SUMMARY.md @@ -26,6 +26,7 @@ - [Logging to PostgreSQL from PL/Rust](./logging.md) - [Triggers](./triggers.md) - [SPI](./spi.md) + - [Dynamic Function Calling](dynamic-function-calling.md) - [Trusted and Untrusted PL/Rust](./trusted-untrusted.md) - [PostgreSQL configuration](./config-pg.md) diff --git a/doc/src/dynamic-function-calling.md b/doc/src/dynamic-function-calling.md new file mode 100644 index 00000000..3687bc7d --- /dev/null +++ b/doc/src/dynamic-function-calling.md @@ -0,0 +1,214 @@ +# Dynamic Function Calling + +PL/Rust provides the ability to dynamically call any function (callable to the current user) directly from a Rust +function. These functions can be in *any* language, including `sql`, `plpgsql`, `plrust`, `plperl`, etc. + +The call interface is dynamic in that the callee is resolved at runtime and its argument and return types are also +checked at runtime. While this does introduce a small bit of overhead, it's significantly less than doing +what might be the equivalent operation via Spi. + +The ability to dynamically call functions enables users to write functions in the language that makes the most sense +for the operation being performed. In many cases, a `LANGUAGE plpgsql` function is exactly what's needed, and a +`LANGUAGE plrust` function can now use its result to execute further, possibly CPU-intensive, work. + + +## Important Rust Types + +This dynamic calling interface introduces two new types that are used to facilitate dynamically calling functions: +`Arg` and `FnCallError`. + +### `Arg` + +`Arg` describes the style of a user-provided function argument. + +```rust +/// The kinds of [`fn_call`] arguments. +pub enum Arg { + /// The argument value is a SQL NULL + Null, + + /// The argument's `DEFAULT` value should be used + Default, + + /// Use this actual value + Value(T), +} +``` + +Rust doesn't exactly have the concept of "NULL" nor does it have direct support for overloaded functions. This is where +the `Null` and `Default` variants come in. + +There's a sealed trait that corresponds to this enum named `FnCallArg`. It is not a trait that users needs to implement, +but is used by PL/Rust to dynamically represent a set of heterogeneous argument types. + +### `FnCallError` + +There's also a set of runtime error conditions if function resolution fails. These are recoverable errors in that user +code could `match` on the return value and potentially make different decisions, or just raise a panic with the error to +immediately abort the current transaction. + +```rust +/// [`FnCallError`]s represent the set of conditions that could case [`fn_call()`] to fail in a +/// user-recoverable manner. +#[derive(thiserror::Error, Debug, Clone, Eq, PartialEq)] +pub enum FnCallError { + #[error("Invalid identifier: `{0}`")] + InvalidIdentifier(String), + + #[error("The specified function does not exist")] + UndefinedFunction, + + #[error("The specified function exists, but has overloaded versions which are ambiguous given the argument types provided")] + AmbiguousFunction, + + #[error("Can only dynamically call plain functions")] + UnsupportedFunctionType, + + #[error("Functions with OUT/IN_OUT/TABLE arguments are not supported")] + UnsupportedArgumentModes, + + #[error("Functions with argument or return types of `internal` are not supported")] + InternalTypeNotSupported, + + #[error("The requested return type `{0}` is not compatible with the actual return type `{1}`")] + IncompatibleReturnType(pg_sys::Oid, pg_sys::Oid), + + #[error("Function call has more arguments than are supported")] + TooManyArguments, + + #[error("Did not provide enough non-default arguments")] + NotEnoughArguments, + + #[error("Function has no default arguments")] + NoDefaultArguments, + + #[error("Argument #{0} does not have a DEFAULT value")] + NotDefaultArgument(usize), + + #[error("Argument's default value is not a constant expression")] + DefaultNotConstantExpression, +} +``` + +## Calling a Function + +The top-level function `fn_call()` is what is used to dynamically call a function. Its signature is: + +```rust +pub fn fn_call( + fname: &str, + args: &[&dyn FnCallArg], +) -> Result, FnCallError> +``` + +`fn_call` itself takes two arguments. The first, `fname` is the (possibly schema-qualified) function name, as a string. + + +The second argument, `args`, is a slice of `FnCallArg` dyn references (these are written using `&Arg::XXX`). And it +returns a `Result, FnCallError>`. + +An `Ok` response will either contain `Some(R)` if the called function returned a non-null value, or `None` if it did. + +An `Err` response will contain one of the `FnCallError` variants detailed above, indicating the problem encountered +while trying to call the function. It is guaranteed that if `fn_call` returns an `Err`, then the desired function was +**not** called. + +If the called function raises a Postgres `ERROR` then the current transaction is aborted and control is returned back +to Postgres, not the caller. This is typical Postgres and PL/Rust behavior in the face of an `ERROR` or Rust panic. + +## Simple Example + +First, define a SQL function that sums the elements of an `int[]`. We're using a `LANGUAGE sql` function here +to demonstrate how PL/Rust can call functions of any other language: + +```sql +CREATE OR REPLACE FUNCTION sum_array(a int[]) RETURNS int STRICT LANGUAGE sql AS $$ SELECT sum(e) FROM unnest(a) e $$; +``` + +Now, call this function from a PL/Rust function: + +```sql +CREATE OR REPLACE FUNCTION transform_array(a int[]) RETURNS int STRICT LANGUAGE plrust AS $$ + let a = a.into_iter().map(|e| e.unwrap_or(0) + 1).collect::>(); // add one to every element of the array + Ok(fn_call("sum_array", &[&Arg::Value(a)])?) +$$; + +SELECT transform_array(ARRAY[1,2,3]); +transform_array +----------------- + 9 +(1 row) +``` + +## Complex Example + +This is contrived, of course, but let's make a PL/Rust function with a few different argument types and have it simply +convert their values to a debug-formatted String. Then we'll call that function from another PL/Rust function. + +```sql +CREATE OR REPLACE FUNCTION debug_format_args(a text, b bigint, c float4 DEFAULT 0.99) RETURNS text LANGUAGE plrust AS $$ + Ok(Some(format!("{:?}, {:?}, {:?}", a, b, c))) +$$; + +SELECT debug_format_args('hi', NULL); + debug_format_args +------------------------------ + Some("hi"), None, Some(0.99) +(1 row) +``` + +Now, call it from another PL/Rust function using these same argument values. Which is `'hi'` for the first argument, +NULL for the second, and using the default value for the third: + +```sql +CREATE OR REPLACE FUNCTION complex_example() RETURNS text LANGUAGE plrust AS $$ + let result = fn_call("debug_format_args", &[&Arg::Value("hi"), &Arg::::Null, &Arg::::Default])?; + Ok(result) +$$; + +SELECT complex_example(); +complex_example +------------------------------ + Some("hi"), None, Some(0.99) +(1 row) +``` + +You'll notice here that the `Arg::Null` and `Arg::Default` argument values are typed with `::` and `::` +respectively. It is necessary for PL/Rust to know the types of each argument at compile time, so that during runtime +the proper function can be chosen. This helps to ensure there's no ambiguity related to Postgres' function overloading +features. For example, let's overload `debug_format_args` with a different type for the second argument: + +```sql +CREATE OR REPLACE FUNCTION debug_format_args(a text, b bool, c float4 DEFAULT 0.99) RETURNS text LANGUAGE plrust AS $$ + Ok(Some(format!("{:?}, {:?}, {:?}", a, b, c))) +$$; + +SELECT debug_format_args('hi', NULL); +ERROR: 42725: function debug_format_args(unknown, unknown) is not unique +LINE 1: SELECT debug_format_args('hi', NULL); + ^ +HINT: Could not choose a best candidate function. You might need to add explicit type casts. +``` + +As you can see, even Postgres can't figure out which `debug_format_args` function to call as it doesn't know the intended +type of the second `NULL` argument. We can tell it, of course: + +```sql +SELECT debug_format_args('hi', NULL::bool); + debug_format_args +------------------------------ + Some("hi"), None, Some(0.99) +(1 row) +``` + +Note that if we call our `complex_example` function again, now that we've added another version of `debug_format_args`, +it *still* calls the correct one -- the version with an `int` as the second argument. + + +## Limitations + +PL/Rust does **not** support dynamically calling functions with `OUT` or `IN OUT` arguments. Nor does it support +calling functions that return `SETOF $type` or `TABLE(...)`. + +It is possible these limitations will be lifted in a future version. + diff --git a/plrust-tests/src/fn_call.rs b/plrust-tests/src/fn_call.rs new file mode 100644 index 00000000..b17ddcdc --- /dev/null +++ b/plrust-tests/src/fn_call.rs @@ -0,0 +1,34 @@ +/* +Portions Copyright 2020-2021 ZomboDB, LLC. +Portions Copyright 2021-2023 Technology Concepts & Design, Inc. + +All rights reserved. + +Use of this source code is governed by the PostgreSQL license that can be found in the LICENSE.md file. +*/ + +#[cfg(any(test, feature = "pg_test"))] +#[pgrx::pg_schema] +mod tests { + use pgrx::prelude::*; + + #[pg_test] + #[search_path(@extschema@)] + fn plrust_fn_call() -> spi::Result<()> { + let sql = r#" + CREATE FUNCTION dynamic_function(i int) RETURNS int LANGUAGE plrust AS $$ Ok(i) $$; + + CREATE FUNCTION test_plrust_fn_call() RETURNS int LANGUAGE plrust + AS $$ + let result = fn_call("dynamic_function", &[&Arg::Value(42i32)]); + + assert_eq!(result, Ok(Some(42i32))); + + Ok(None) + $$; + + SELECT test_plrust_fn_call(); + "#; + Spi::run(sql) + } +} diff --git a/plrust-tests/src/lib.rs b/plrust-tests/src/lib.rs index ca066415..b0e72743 100644 --- a/plrust-tests/src/lib.rs +++ b/plrust-tests/src/lib.rs @@ -5,6 +5,7 @@ mod blocked_code; mod borrow_mut_error; mod ddl; mod dependencies; +mod fn_call; mod matches; mod panics; mod range; diff --git a/plrust-trusted-pgrx/src/lib.rs b/plrust-trusted-pgrx/src/lib.rs index 55d8fa24..3a223b3a 100644 --- a/plrust-trusted-pgrx/src/lib.rs +++ b/plrust-trusted-pgrx/src/lib.rs @@ -53,6 +53,13 @@ pub mod datum { pub use ::pgrx::pg_sys::Oid; } +pub use fn_call::{fn_call, Arg, FnCallArg, FnCallError}; +pub mod fn_call { + pub use ::pgrx::fn_call::{ + fn_call, fn_call_with_collation, Arg, FnCallArg, FnCallError, Result, + }; +} + #[doc(hidden)] pub mod fcinfo { pub use ::pgrx::fcinfo::pg_getarg; From f631af30a773e922786ac28cdd5b905f8df26ef0 Mon Sep 17 00:00:00 2001 From: Eric Ridge Date: Sat, 18 Nov 2023 11:44:36 -0500 Subject: [PATCH 6/6] Prepare v1.2.7 (#398) Welcome to PL/Rust v1.2.7. This is a small feature release that adds the ability to call user defined functions (UDFs) from a `LANGUAGE plrust` function. As a contrived example, perhaps your database has a `LANGUAGE sql` function like: ```sql CREATE OR REPLACE FUNCTION sum_array(a int[]) RETURNS int STRICT LANGUAGE sql AS $$ SELECT sum(e) FROM unnest(a) e $$; ``` And you wish to call it from a PL/Rust function. Well, now you can! ```sql CREATE OR REPLACE FUNCTION transform_array(a int[]) RETURNS int STRICT LANGUAGE plrust AS $$ // add one to every element of `a`, the input argument array, collecting into a new Vec let a = a.into_iter().map(|e| e.unwrap_or(0) + 1).collect::>(); // call the existing "sum_array(int[])" function to sum the values of `a` Ok(fn_call("sum_array", &[&Arg::Value(a)])?) $$; SELECT transform_array(ARRAY[1,2,3]); transform_array ----------------- 9 (1 row) ``` PL/Rust's dynamic function call API is documented in [the book](https://tcdi.github.io/plrust). Other than also upgrading the underlying `pgrx` dependency to v0.11.0, there have been no other changes to PL/Rust since v1.2.6. This release took quite a bit longer than expected as we had a desire to upgrade it to work with Rust v1.73.0. Unfortunately, rustc v1.73.0 introduced a bug around custom lints and it took our team *weeks* to track this down and ultimately provide the Rust project a PR. Based on Rust's release schedule, that fix won't be released until v1.75.0. ### A note on Postgres 16 support Postgres 16 has added some "SIMD" code, and includes the compiler built-in header for SIMD support. This can cause compilation problems with pgrx if the host system has multiple `clang` versions installed. It's suggested a machine running PL/Rust only have one `clang` version and the matching `llvm` packages installed. It doesn't seem to matter which version, only that there's one. --- Cargo.lock | 287 ++++++++++++++++----------------- plrust-tests/Cargo.toml | 6 +- plrust-trusted-pgrx/Cargo.toml | 2 +- plrust/Cargo.toml | 14 +- plrustc/Cargo.lock | 69 +++++--- plrustc/plrustc/Cargo.toml | 4 +- 6 files changed, 193 insertions(+), 189 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5ff4cbb9..5ec94a45 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -46,7 +46,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "base64" -version = "0.21.4" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "bindgen" @@ -112,7 +112,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -228,9 +228,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.6" +version = "4.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956" +checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64" dependencies = [ "clap_builder", "clap_derive", @@ -248,9 +248,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.6" +version = "4.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45" +checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc" dependencies = [ "anstyle", "clap_lex", @@ -258,21 +258,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.4.2" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" +checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] name = "clap_lex" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" [[package]] name = "color-eyre" @@ -291,9 +291,9 @@ dependencies = [ [[package]] name = "color-spantrace" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba75b3d9449ecdccb27ecbc479fdc0b87fa2dd43d2f8298f9bf0e59aacc8dce" +checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" dependencies = [ "once_cell", "owo-colors", @@ -318,9 +318,9 @@ checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "cpufeatures" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] @@ -429,22 +429,22 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "enum-map" -version = "2.6.3" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c188012f8542dee7b3996e44dd89461d64aa471b0a7c71a1ae2f595d259e96e5" +checksum = "09e6b4f374c071b18172e23134e01026653dc980636ee139e0dfe59c538c61e5" dependencies = [ "enum-map-derive", ] [[package]] name = "enum-map-derive" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04d0b288e3bb1d861c4403c1774a6f7a798781dfc519b3647df2a3dd4ae95f25" +checksum = "bfdb3d73d1beaf47c8593a1364e577fde072677cbfd103600345c0f547408cc0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -455,9 +455,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" +checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8" dependencies = [ "libc", "windows-sys", @@ -465,9 +465,9 @@ dependencies = [ [[package]] name = "eyre" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" +checksum = "80f656be11ddf91bd709454d15d5bd896fbaf4cc3314e69349e4d1569f5b46cd" dependencies = [ "indenter", "once_cell", @@ -530,9 +530,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures-channel" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ "futures-core", "futures-sink", @@ -540,38 +540,38 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" [[package]] name = "futures-macro" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] name = "futures-sink" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" [[package]] name = "futures-task" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ "futures-core", "futures-macro", @@ -594,9 +594,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", @@ -632,9 +632,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" [[package]] name = "heapless" @@ -691,9 +691,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "2.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", "hashbrown", @@ -707,9 +707,9 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" dependencies = [ "wasm-bindgen", ] @@ -728,9 +728,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.149" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" [[package]] name = "libloading" @@ -758,11 +758,22 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +[[package]] +name = "libredox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall", +] + [[package]] name = "linux-raw-sys" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -840,9 +851,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", "wasi", @@ -945,7 +956,7 @@ checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", + "redox_syscall", "smallvec", "windows-targets", ] @@ -974,9 +985,9 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4" +checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" dependencies = [ "memchr", "thiserror", @@ -1141,7 +1152,7 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "plrust" -version = "1.2.6" +version = "1.2.7" dependencies = [ "base64", "cfg-if", @@ -1161,7 +1172,7 @@ dependencies = [ "semver 1.0.20", "serde", "serde_json", - "syn 2.0.38", + "syn 2.0.39", "tempfile", "thiserror", "toml", @@ -1172,7 +1183,7 @@ dependencies = [ [[package]] name = "plrust-tests" -version = "1.2.6" +version = "1.2.7" dependencies = [ "once_cell", "pgrx", @@ -1182,7 +1193,7 @@ dependencies = [ [[package]] name = "plrust-trusted-pgrx" -version = "1.2.6" +version = "1.2.7" dependencies = [ "pgrx", ] @@ -1243,7 +1254,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ "proc-macro2", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -1257,9 +1268,9 @@ dependencies = [ [[package]] name = "proptest" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c003ac8c77cb07bb74f5f198bce836a689bcd5a42574612bf14d17bfd08c20e" +checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" dependencies = [ "bit-set", "bit-vec", @@ -1269,7 +1280,7 @@ dependencies = [ "rand", "rand_chacha", "rand_xorshift", - "regex-syntax 0.7.5", + "regex-syntax 0.8.2", "rusty-fork", "tempfile", "unarray", @@ -1355,24 +1366,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.4.1" @@ -1384,12 +1377,12 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ "getrandom", - "redox_syscall 0.2.16", + "libredox", "thiserror", ] @@ -1431,12 +1424,6 @@ version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - [[package]] name = "regex-syntax" version = "0.8.2" @@ -1475,9 +1462,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.19" +version = "0.38.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed" +checksum = "9ad981d6c340a49cdc40a1028d9c6084ec7e9fa33fcb839cab656a267071e234" dependencies = [ "bitflags 2.4.1", "errno", @@ -1548,9 +1535,9 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" [[package]] name = "serde" -version = "1.0.189" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] @@ -1567,20 +1554,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.189" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.107" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -1589,9 +1576,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" +checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" dependencies = [ "serde", ] @@ -1639,15 +1626,15 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "socket2" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", "windows-sys", @@ -1704,9 +1691,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.38" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -1736,35 +1723,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.8.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", - "redox_syscall 0.3.5", + "redox_syscall", "rustix", "windows-sys", ] [[package]] name = "thiserror" -version = "1.0.49" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.49" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -1794,9 +1781,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.33.0" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ "backtrace", "bytes", @@ -1835,9 +1822,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ "bytes", "futures-core", @@ -1849,9 +1836,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.2" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" dependencies = [ "serde", "serde_spanned", @@ -1861,18 +1848,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.20.2" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ "indexmap", "serde", @@ -1883,9 +1870,9 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.39" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -1900,7 +1887,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -1925,20 +1912,20 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ - "lazy_static", "log", + "once_cell", "tracing-core", ] [[package]] name = "tracing-subscriber" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "matchers", "nu-ansi-term", @@ -2052,9 +2039,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2062,24 +2049,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2087,28 +2074,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" [[package]] name = "web-sys" -version = "0.3.64" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" dependencies = [ "js-sys", "wasm-bindgen", @@ -2214,9 +2201,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.17" +version = "0.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c" +checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" dependencies = [ "memchr", ] diff --git a/plrust-tests/Cargo.toml b/plrust-tests/Cargo.toml index 9833290b..08248a1b 100644 --- a/plrust-tests/Cargo.toml +++ b/plrust-tests/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "plrust-tests" -version = "1.2.6" +version = "1.2.7" edition = "2021" [lib] @@ -17,10 +17,10 @@ trusted = [] [dependencies] pgrx = "=0.11.0" -tempfile = "3.8.0" +tempfile = "3.8.1" once_cell = "1.18.0" [dev-dependencies] pgrx-tests = "=0.11.0" -tempfile = "3.8.0" +tempfile = "3.8.1" once_cell = "1.18.0" diff --git a/plrust-trusted-pgrx/Cargo.toml b/plrust-trusted-pgrx/Cargo.toml index ff70b16f..15640559 100644 --- a/plrust-trusted-pgrx/Cargo.toml +++ b/plrust-trusted-pgrx/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "plrust-trusted-pgrx" -version = "1.2.6" +version = "1.2.7" authors = ["TCDI "] edition = "2021" license = "PostgreSQL" diff --git a/plrust/Cargo.toml b/plrust/Cargo.toml index 64a9b15a..77adcb3c 100644 --- a/plrust/Cargo.toml +++ b/plrust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "plrust" -version = "1.2.6" +version = "1.2.7" authors = ["TCDI "] edition = "2021" license = "PostgreSQL Open Source License" @@ -34,18 +34,18 @@ semver = "1.0.20" home = "0.5.5" # where can we find cargo? # working with our entry in pg_catalog.pg_proc -base64 = "0.21.4" +base64 = "0.21.5" flate2 = "1.0.28" -serde = "1.0.189" -serde_json = "1.0.107" +serde = "1.0.192" +serde_json = "1.0.108" # pgrx core details pgrx = { version = "=0.11.0" } # language handler support libloading = "0.8.1" -toml = "0.8.2" -tempfile = "3.8.0" +toml = "0.8.8" +tempfile = "3.8.1" # error handling, tracing, formatting thiserror = "1.0" @@ -69,4 +69,4 @@ memfd = "0.6.4" # for anonymously writing/loading user function .so [dev-dependencies] pgrx-tests = { version = "=0.11.0" } once_cell = "1.18.0" -toml = "0.8.2" +toml = "0.8.8" diff --git a/plrustc/Cargo.lock b/plrustc/Cargo.lock index 18d8e075..6dcccbe0 100644 --- a/plrustc/Cargo.lock +++ b/plrustc/Cargo.lock @@ -23,6 +23,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + [[package]] name = "cfg-if" version = "1.0.0" @@ -101,9 +107,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", @@ -130,9 +136,20 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.149" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libredox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall 0.4.1", +] [[package]] name = "log" @@ -173,7 +190,7 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "plrustc" -version = "1.2.6" +version = "1.2.7" dependencies = [ "compiletest_rs", "libc", @@ -200,30 +217,30 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.16" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] name = "redox_syscall" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] name = "redox_users" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ "getrandom", - "redox_syscall 0.2.16", + "libredox", "thiserror", ] @@ -282,18 +299,18 @@ checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "serde" -version = "1.0.189" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.189" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", @@ -302,9 +319,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.107" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -313,9 +330,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.38" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -348,18 +365,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.49" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.49" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", diff --git a/plrustc/plrustc/Cargo.toml b/plrustc/plrustc/Cargo.toml index b7046ffe..86c83ec1 100644 --- a/plrustc/plrustc/Cargo.toml +++ b/plrustc/plrustc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "plrustc" -version = "1.2.6" +version = "1.2.7" edition = "2021" description = "`rustc_driver` wrapper for plrust" license = "PostgreSQL" @@ -9,7 +9,7 @@ homepage = "https://github.com/tcdi/plrust/" repository = "https://github.com/tcdi/plrust/" [dependencies] -libc = "0.2.149" +libc = "0.2.150" once_cell = "1.18.0" [dev-dependencies]