diff --git a/.github/workflows/nightly-rust.yml b/.github/workflows/nightly-rust.yml index ab3cc0302cce9..e6afb6970daec 100644 --- a/.github/workflows/nightly-rust.yml +++ b/.github/workflows/nightly-rust.yml @@ -11,6 +11,14 @@ jobs: build: runs-on: ubuntu-latest steps: + - name: Maximize build space + uses: easimon/maximize-build-space@master + with: + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + remove-docker-images: 'true' - uses: actions/checkout@v3 - name: Setup Rust toolchain run: | @@ -18,6 +26,8 @@ jobs: rustup update nightly - name: Install dependencies run: sudo apt-get update && sudo apt-get install -y make build-essential cmake protobuf-compiler curl openssl libssl-dev libsasl2-dev libcurl4-openssl-dev pkg-config postgresql-client tmux lld - - name: cargo build + - name: cargo check run: | - cargo build + export CARGO_INCREMENTAL=0 + export CARGO_PROFILE_DEV_DEBUG=false + cargo check diff --git a/Cargo.lock b/Cargo.lock index e82b87c5dec8c..9ba9676f4299a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,16 +8,16 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" dependencies = [ - "gimli", + "gimli 0.27.3", ] [[package]] name = "addr2line" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ - "gimli", + "gimli 0.28.0", ] [[package]] @@ -138,9 +138,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" +checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea" [[package]] name = "anstyle-parse" @@ -244,7 +244,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -489,7 +489,7 @@ dependencies = [ "serde_nanos", "serde_repr", "thiserror", - "time 0.3.28", + "time", "tokio", "tokio-retry", "tokio-rustls 0.24.1", @@ -505,7 +505,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -527,7 +527,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -544,7 +544,7 @@ checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -573,7 +573,7 @@ dependencies = [ "derive_utils", "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -640,7 +640,7 @@ dependencies = [ "fastrand 1.9.0", "http", "hyper", - "time 0.3.28", + "time", "tokio", "tower", "tracing", @@ -837,7 +837,7 @@ dependencies = [ "percent-encoding", "regex", "sha2 0.10.7", - "time 0.3.28", + "time", "tracing", ] @@ -893,7 +893,7 @@ dependencies = [ "hyper-tls", "lazy_static", "pin-project-lite", - "rustls 0.20.8", + "rustls 0.20.9", "tokio", "tower", "tracing", @@ -978,7 +978,7 @@ dependencies = [ "itoa", "num-integer", "ryu", - "time 0.3.28", + "time", ] [[package]] @@ -1069,16 +1069,16 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ - "addr2line 0.20.0", + "addr2line 0.21.0", "cc", "cfg-if", "libc", "miniz_oxide", - "object 0.31.1", + "object 0.32.1", "rustc-demangle", ] @@ -1333,9 +1333,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.6.0" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" +checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a" dependencies = [ "memchr", ] @@ -1376,9 +1376,9 @@ checksum = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c" [[package]] name = "bytemuck" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" [[package]] name = "byteorder" @@ -1388,9 +1388,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -1537,9 +1537,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", "libc", @@ -1574,23 +1574,22 @@ checksum = "cf85d5384815558275789d91d1895d1d9919a6e2534d6144650f036ac65691a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] name = "chrono" -version = "0.4.29" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87d9d13be47a5b7c3907137f1290b0459a7f80efb26be8c52afb11963bccb02" +checksum = "defd4e7873dbddba6c7c91e199c7fcb946abc4a6a4ac3195400bcfb01b5de877" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", - "time 0.1.45", "wasm-bindgen", - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -1701,14 +1700,14 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] name = "clap_lex" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" +checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" [[package]] name = "clickhouse" @@ -1727,7 +1726,7 @@ dependencies = [ "serde", "static_assertions", "thiserror", - "time 0.3.28", + "time", "tokio", "url", ] @@ -1778,7 +1777,7 @@ checksum = "a90d114103adbc625300f346d4d09dfb4ab1c4a8df6868435dd903392ecf4354" dependencies = [ "libc", "once_cell", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1945,9 +1944,9 @@ dependencies = [ [[package]] name = "cpp_demangle" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee34052ee3d93d6d8f3e6f81d85c47921f6653a19a7b70e939e3e602d893a674" +checksum = "7e8227005286ec39567949b33df9896bcadfa6051bccca2488129f108ca23119" dependencies = [ "cfg-if", ] @@ -1983,7 +1982,7 @@ dependencies = [ "cranelift-control", "cranelift-entity", "cranelift-isle", - "gimli", + "gimli 0.27.3", "hashbrown 0.13.2", "log", "regalloc2", @@ -2112,7 +2111,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -2305,7 +2304,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f34ba9a9bcb8645379e9de8cb3ecfcf4d1c85ba66d90deb3259206fa5aa193b" dependencies = [ "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -2323,9 +2322,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.105" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666a3ec767f4bbaf0dcfcc3b4ea048b90520b254fdf88813e763f4c762636c14" +checksum = "bbe98ba1789d56fb3db3bee5e032774d4f421b685de7ba703643584ba24effbe" dependencies = [ "cc", "cxxbridge-flags", @@ -2335,9 +2334,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.105" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162bec16c4cc28b19e26db0197b60ba5480fdb9a4cbf0f4c6c104a937741b78e" +checksum = "c4ce20f6b8433da4841b1dadfb9468709868022d829d5ca1f2ffbda928455ea3" dependencies = [ "cc", "codespan-reporting", @@ -2345,24 +2344,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] name = "cxxbridge-flags" -version = "1.0.105" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6e8c238aadc4b9f2c00269d04c87abb23f96dd240803872536eed1a304bb40e" +checksum = "20888d9e1d2298e2ff473cee30efe7d5036e437857ab68bbfea84c74dba91da2" [[package]] name = "cxxbridge-macro" -version = "1.0.105" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d9ffb4193dd22180b8d5747b1e095c3d9c9c665ce39b0483a488948f437e06" +checksum = "2fa16a70dd58129e4dfffdff535fb1bce66673f7bbeec4a5a1765a504e1ccd84" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -2434,7 +2433,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -2467,7 +2466,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core 0.20.3", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -2587,7 +2586,7 @@ checksum = "9abcad25e9720609ccb3dcdb795d845e37d8ce34183330a9f48b03a1a71c8e21" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -2684,9 +2683,9 @@ checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632" [[package]] name = "dlv-list" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d529fd73d344663edfd598ccb3f344e46034db51ebd103518eae34338248ad73" +checksum = "8aead04dc46b5f263c25721cf25c9e595951d15055f8063f92392fa0d7f64cf4" dependencies = [ "const-random", ] @@ -2726,7 +2725,7 @@ dependencies = [ "rust_decimal", "serde", "thiserror", - "time 0.3.28", + "time", ] [[package]] @@ -2764,9 +2763,9 @@ dependencies = [ [[package]] name = "educe" -version = "0.4.22" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "079044df30bb07de7d846d41a184c4b00e66ebdac93ee459253474f3a47e50ae" +checksum = "0f0042ff8246a363dbe77d2ceedb073339e85a804b9a47636c6e016a9a32c05f" dependencies = [ "enum-ordinalize", "proc-macro2", @@ -2788,9 +2787,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.32" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" dependencies = [ "cfg-if", ] @@ -2804,7 +2803,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -2824,7 +2823,7 @@ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -2837,7 +2836,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -2874,9 +2873,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" +checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" dependencies = [ "errno-dragonfly", "libc", @@ -2961,9 +2960,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "faster-hex" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9042d281a5eec0f2387f8c3ea6c4514e2cf2732c90a85aaf383b761ee3b290d" +checksum = "239f7bfb930f820ab16a9cd95afc26f88264cf6905c960b340a615384aa3338a" dependencies = [ "serde", ] @@ -2990,7 +2989,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b0377f1edc77dbd1118507bc7a66e4ab64d2b90c66f90726dc801e73a8c68f9" dependencies = [ "cfg-if", - "rustix 0.38.8", + "rustix 0.38.11", "windows-sys 0.48.0", ] @@ -3025,6 +3024,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "finl_unicode" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" + [[package]] name = "fixedbitset" version = "0.4.2" @@ -3109,35 +3114,18 @@ dependencies = [ [[package]] name = "foyer" version = "0.1.0" -source = "git+https://github.com/mrcroxx/foyer?rev=2b8907c#2b8907c3cc629da22622a17bbc6bf16dc52c7bc1" +source = "git+https://github.com/mrcroxx/foyer?rev=2c6f080#2c6f080835f49fc6026b97fd53d389bae81e9361" dependencies = [ - "async-trait", - "bytes", - "cmsketch", - "crossbeam", "foyer-common", "foyer-intrusive", "foyer-storage", "foyer-workspace-hack", - "futures", - "itertools 0.11.0", - "libc", - "memoffset 0.9.0", - "nix 0.27.1", - "parking_lot 0.12.1", - "paste", - "prometheus", - "rand", - "thiserror", - "tokio", - "tracing", - "twox-hash", ] [[package]] name = "foyer-common" version = "0.1.0" -source = "git+https://github.com/mrcroxx/foyer?rev=2b8907c#2b8907c3cc629da22622a17bbc6bf16dc52c7bc1" +source = "git+https://github.com/mrcroxx/foyer?rev=2c6f080#2c6f080835f49fc6026b97fd53d389bae81e9361" dependencies = [ "bytes", "foyer-workspace-hack", @@ -3151,7 +3139,7 @@ dependencies = [ [[package]] name = "foyer-intrusive" version = "0.1.0" -source = "git+https://github.com/mrcroxx/foyer?rev=2b8907c#2b8907c3cc629da22622a17bbc6bf16dc52c7bc1" +source = "git+https://github.com/mrcroxx/foyer?rev=2c6f080#2c6f080835f49fc6026b97fd53d389bae81e9361" dependencies = [ "bytes", "cmsketch", @@ -3161,7 +3149,6 @@ dependencies = [ "memoffset 0.9.0", "parking_lot 0.12.1", "paste", - "thiserror", "tracing", "twox-hash", ] @@ -3169,7 +3156,7 @@ dependencies = [ [[package]] name = "foyer-storage" version = "0.1.0" -source = "git+https://github.com/mrcroxx/foyer?rev=2b8907c#2b8907c3cc629da22622a17bbc6bf16dc52c7bc1" +source = "git+https://github.com/mrcroxx/foyer?rev=2c6f080#2c6f080835f49fc6026b97fd53d389bae81e9361" dependencies = [ "anyhow", "async-channel", @@ -3188,7 +3175,6 @@ dependencies = [ "nix 0.27.1", "parking_lot 0.12.1", "paste", - "pin-project", "prometheus", "rand", "thiserror", @@ -3200,19 +3186,19 @@ dependencies = [ [[package]] name = "foyer-workspace-hack" version = "0.1.0" -source = "git+https://github.com/mrcroxx/foyer?rev=2b8907c#2b8907c3cc629da22622a17bbc6bf16dc52c7bc1" +source = "git+https://github.com/mrcroxx/foyer?rev=2c6f080#2c6f080835f49fc6026b97fd53d389bae81e9361" dependencies = [ - "crossbeam-channel", "crossbeam-utils", "either", "futures-channel", - "futures-core", "futures-executor", "futures-sink", "futures-util", + "hyper", "itertools 0.10.5", + "libc", "lock_api", - "nix 0.27.1", + "memchr", "parking_lot 0.12.1", "parking_lot_core 0.9.8", "proc-macro2", @@ -3221,8 +3207,9 @@ dependencies = [ "regex", "regex-automata 0.3.8", "regex-syntax 0.7.5", - "syn 2.0.31", + "syn 2.0.32", "tokio", + "tracing", "tracing-core", ] @@ -3257,7 +3244,7 @@ checksum = "b0fa992f1656e1707946bbba340ad244f0814009ef8c0118eb7b658395f19a2e" dependencies = [ "frunk_proc_macro_helpers", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -3269,7 +3256,7 @@ dependencies = [ "frunk_core", "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -3281,7 +3268,7 @@ dependencies = [ "frunk_core", "frunk_proc_macro_helpers", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -3297,7 +3284,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d167b646a876ba8fda6b50ac645cfd96242553cbaf0ca4fccaa39afcbf0801f" dependencies = [ "io-lifetimes 1.0.11", - "rustix 0.38.8", + "rustix 0.38.11", "windows-sys 0.48.0", ] @@ -3425,7 +3412,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -3517,7 +3504,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -3532,6 +3519,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + [[package]] name = "glob" version = "0.3.1" @@ -3554,7 +3547,7 @@ dependencies = [ "serde", "serde_json", "thiserror", - "time 0.3.28", + "time", "tokio", "tracing", "urlencoding", @@ -3645,9 +3638,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.20" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" dependencies = [ "bytes", "fnv", @@ -3884,7 +3877,7 @@ dependencies = [ "http", "hyper", "log", - "rustls 0.20.8", + "rustls 0.20.9", "rustls-native-certs", "tokio", "tokio-rustls 0.23.4", @@ -3899,7 +3892,7 @@ dependencies = [ "futures-util", "http", "hyper", - "rustls 0.21.6", + "rustls 0.21.7", "tokio", "tokio-rustls 0.24.1", ] @@ -3987,7 +3980,7 @@ dependencies = [ "log", "once_cell", "opendal", - "ordered-float 3.7.0", + "ordered-float 3.9.1", "parquet", "regex", "rust_decimal", @@ -4065,12 +4058,12 @@ dependencies = [ [[package]] name = "inferno" -version = "0.11.15" +version = "0.11.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fb7c1b80a1dfa604bb4a649a5c5aeef3d913f7c520cb42b40e534e8a61bcdfc" +checksum = "73c0fefcb6d409a6587c07515951495d482006f89a21daa0f2f783aa4fd5e027" dependencies = [ "ahash 0.8.3", - "indexmap 1.9.3", + "indexmap 2.0.0", "is-terminal", "itoa", "log", @@ -4152,7 +4145,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi 0.3.2", - "rustix 0.38.8", + "rustix 0.38.11", "windows-sys 0.48.0", ] @@ -4269,7 +4262,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ "base64 0.21.3", - "pem", + "pem 1.1.1", "ring", "serde", "serde_json", @@ -4524,15 +4517,6 @@ dependencies = [ "hashbrown 0.12.3", ] -[[package]] -name = "lru" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" -dependencies = [ - "hashbrown 0.12.3", -] - [[package]] name = "lru" version = "0.10.1" @@ -4617,7 +4601,7 @@ dependencies = [ "spin 0.9.8", "tokio", "tokio-util", - "toml 0.7.6", + "toml 0.7.8", "tracing", "tracing-subscriber", ] @@ -4653,7 +4637,7 @@ dependencies = [ "spin 0.9.8", "thiserror", "tokio", - "toml 0.7.6", + "toml 0.7.8", "tonic", "tracing", ] @@ -4822,15 +4806,6 @@ dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.8.0" @@ -4888,7 +4863,7 @@ checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", "log", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys 0.48.0", ] @@ -4959,11 +4934,29 @@ dependencies = [ "serde", ] +[[package]] +name = "mysql-common-derive" +version = "0.30.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56b0d8a0db9bf6d2213e11f2c701cb91387b0614361625ab7b9743b41aa4938f" +dependencies = [ + "darling 0.20.3", + "heck 0.4.1", + "num-bigint", + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.32", + "termcolor", + "thiserror", +] + [[package]] name = "mysql_async" -version = "0.31.3" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2975442c70450b8f3a0400216321f6ab7b8bda177579f533d312ac511f913655" +checksum = "f5272f59b5b1f93d65f7f826c1f025d6e410e89fb50a67e05aa20b35a55a8c0a" dependencies = [ "bytes", "crossbeam", @@ -4972,18 +4965,18 @@ dependencies = [ "futures-sink", "futures-util", "lazy_static", - "lru 0.8.1", + "lru 0.10.1", "mio", "mysql_common", "native-tls", "once_cell", - "pem", + "pem 2.0.1", "percent-encoding", "pin-project", "priority-queue", "serde", "serde_json", - "socket2 0.4.9", + "socket2 0.5.3", "thiserror", "tokio", "tokio-native-tls", @@ -4994,14 +4987,14 @@ dependencies = [ [[package]] name = "mysql_common" -version = "0.29.2" +version = "0.30.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9006c95034ccf7b903d955f210469119f6c3477fc9c9e7a7845ce38a3e665c2a" +checksum = "57349d5a326b437989b6ee4dc8f2f34b0cc131202748414712a8e7d98952fc8c" dependencies = [ - "base64 0.13.1", + "base64 0.21.3", "bigdecimal", "bindgen", - "bitflags 1.3.2", + "bitflags 2.4.0", "bitvec", "byteorder", "bytes", @@ -5013,6 +5006,7 @@ dependencies = [ "frunk", "lazy_static", "lexical", + "mysql-common-derive", "num-bigint", "num-traits", "rand", @@ -5026,7 +5020,7 @@ dependencies = [ "smallvec", "subprocess", "thiserror", - "time 0.3.28", + "time", "uuid", ] @@ -5076,16 +5070,13 @@ dependencies = [ [[package]] name = "nix" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", - "memoffset 0.7.1", - "pin-utils", - "static_assertions", ] [[package]] @@ -5324,9 +5315,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "oauth2" -version = "4.4.1" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a6e2a2b13a56ebeabba9142f911745be6456163fd6c3d361274ebcd891a80c" +checksum = "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f" dependencies = [ "base64 0.13.1", "chrono", @@ -5356,9 +5347,9 @@ dependencies = [ [[package]] name = "object" -version = "0.31.1" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "memchr", ] @@ -5464,7 +5455,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -5475,18 +5466,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.1.3+3.1.2" +version = "111.25.3+1.1.1t" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd2c101a165fff9935e34def4669595ab1c7847943c42be86e21503e482be107" +checksum = "924757a6a226bf60da5f7dd0311a34d2b52283dd82ddeb103208ddc66362f80c" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.93" +version = "0.9.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" +checksum = "db7e971c2c2bba161b2d2fdf37080177eff520b3bc044787c7f1f5f9e78d869b" dependencies = [ "cc", "libc", @@ -5574,7 +5565,7 @@ dependencies = [ "futures-util", "once_cell", "opentelemetry_api", - "ordered-float 3.7.0", + "ordered-float 3.9.1", "percent-encoding", "rand", "regex", @@ -5595,9 +5586,9 @@ dependencies = [ [[package]] name = "ordered-float" -version = "3.7.0" +version = "3.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc2dbde8f8a79f2102cc474ceb0ad68e3b80b85289ea62389b60e66777e4213" +checksum = "2a54938017eacd63036332b4ae5c8a49fc8c0c1d6d629893057e4f13609edd06" dependencies = [ "num-traits", ] @@ -5700,7 +5691,7 @@ dependencies = [ "redox_syscall 0.3.5", "smallvec", "thread-id", - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -5759,7 +5750,7 @@ dependencies = [ "regex", "regex-syntax 0.7.5", "structmeta", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -5779,18 +5770,18 @@ checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "path-absolutize" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43eb3595c63a214e1b37b44f44b0a84900ef7ae0b4c5efce59e123d246d7a0de" +checksum = "e4af381fe79fa195b4909485d99f73a80792331df0625188e707854f0b3383f5" dependencies = [ "path-dedot", ] [[package]] name = "path-dedot" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d55e486337acb9973cdea3ec5638c1b3bcb22e573b2b7b41969e0c744d5a15e" +checksum = "07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397" dependencies = [ "once_cell", ] @@ -5832,6 +5823,16 @@ dependencies = [ "base64 0.13.1", ] +[[package]] +name = "pem" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b13fe415cdf3c8e44518e18a7c95a13431d9bdf6d15367d82b23c377fdd441a" +dependencies = [ + "base64 0.21.3", + "serde", +] + [[package]] name = "pem-rfc7468" version = "0.2.3" @@ -5954,7 +5955,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -6054,9 +6055,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f32154ba0af3a075eefa1eda8bb414ee928f62303a54ea85b8d6638ff1a6ee9e" +checksum = "31114a898e107c51bb1609ffaf55a0e011cf6a4d7f1170d0015a165082c0338b" [[package]] name = "postgres" @@ -6081,14 +6082,14 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] name = "postgres-protocol" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b7fa9f396f51dffd61546fd8573ee20592287996568e6175ceb0f8699ad75d" +checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520" dependencies = [ "base64 0.21.3", "byteorder", @@ -6129,7 +6130,7 @@ dependencies = [ "inferno", "libc", "log", - "nix 0.26.2", + "nix 0.26.4", "once_cell", "parking_lot 0.12.1", "smallvec", @@ -6330,7 +6331,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "time 0.3.28", + "time", "url", ] @@ -6385,7 +6386,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", "workspace-hack", ] @@ -6509,7 +6510,7 @@ dependencies = [ "nom", "oauth2", "openidconnect", - "pem", + "pem 1.1.1", "prost", "prost-build", "prost-derive", @@ -6541,7 +6542,7 @@ dependencies = [ "mach2", "once_cell", "raw-cpuid", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "web-sys", "winapi", ] @@ -6736,9 +6737,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29" +checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" dependencies = [ "aho-corasick", "memchr", @@ -6843,7 +6844,7 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls 0.21.6", + "rustls 0.21.7", "rustls-native-certs", "rustls-pemfile", "serde", @@ -7022,7 +7023,7 @@ dependencies = [ "itertools 0.11.0", "libc", "madsim-tokio", - "nix 0.26.2", + "nix 0.27.1", "opentelemetry", "parking_lot 0.12.1", "prometheus", @@ -7032,7 +7033,7 @@ dependencies = [ "risingwave_storage", "serde", "tokio-stream", - "toml 0.7.6", + "toml 0.7.8", "tracing", "tracing-subscriber", "workspace-hack", @@ -7168,7 +7169,7 @@ dependencies = [ "tempfile", "thiserror", "tinyvec", - "toml 0.7.6", + "toml 0.7.8", "tower-layer", "tower-service", "tracing", @@ -7483,7 +7484,7 @@ dependencies = [ "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -7849,7 +7850,7 @@ dependencies = [ "prometheus", "risingwave_common", "risingwave_variables", - "time 0.3.28", + "time", "tracing", "tracing-opentelemetry", "tracing-subscriber", @@ -7993,7 +7994,7 @@ dependencies = [ "serde_with 3.3.0", "tokio-postgres", "tokio-stream", - "toml 0.7.6", + "toml 0.7.8", "tracing", "workspace-hack", ] @@ -8029,7 +8030,7 @@ dependencies = [ "memcomparable", "moka", "more-asserts", - "nix 0.26.2", + "nix 0.27.1", "num-integer", "parking_lot 0.12.1", "procfs 0.15.1", @@ -8300,9 +8301,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.8" +version = "0.38.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f" +checksum = "c0c3dde1fc030af041adc40e79c0e7fbcf431dd24870053d187d7c66e4b87453" dependencies = [ "bitflags 2.4.0", "errno", @@ -8313,9 +8314,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.8" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" dependencies = [ "log", "ring", @@ -8325,9 +8326,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.6" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" dependencies = [ "log", "ring", @@ -8584,7 +8585,7 @@ checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -8600,9 +8601,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.105" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" +checksum = "2cc66a619ed80bf7a0f6b17dd063a84b88f6dea1813737cf469aef1d081142c2" dependencies = [ "itoa", "ryu", @@ -8630,9 +8631,9 @@ dependencies = [ [[package]] name = "serde_plain" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6018081315db179d0ce57b1fe4b62a12a0028c9cf9bbef868c9cf477b3c34ae" +checksum = "9ce1fc6db65a611022b23a0dec6975d63fb80a302cb3388835ff02c097258d50" dependencies = [ "serde", ] @@ -8645,7 +8646,7 @@ checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -8692,7 +8693,7 @@ dependencies = [ "serde", "serde_json", "serde_with_macros 2.3.3", - "time 0.3.28", + "time", ] [[package]] @@ -8709,7 +8710,7 @@ dependencies = [ "serde", "serde_json", "serde_with_macros 3.3.0", - "time 0.3.28", + "time", ] [[package]] @@ -8733,7 +8734,7 @@ dependencies = [ "darling 0.20.3", "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -8745,7 +8746,7 @@ dependencies = [ "darling 0.20.3", "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -8783,7 +8784,7 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -8863,9 +8864,9 @@ dependencies = [ [[package]] name = "shlex" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" +checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" [[package]] name = "signal-hook" @@ -8960,14 +8961,14 @@ dependencies = [ "num-bigint", "num-traits", "thiserror", - "time 0.3.28", + "time", ] [[package]] name = "siphasher" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "size" @@ -8992,9 +8993,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] @@ -9117,9 +9118,9 @@ checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" [[package]] name = "sqllogictest" -version = "0.15.2" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2883a176844bd22f2ded429ec6a1e16f3522f770475bf47e3494dcf22a50abd6" +checksum = "ee18b0100bc1e1a6d1f9aa242b263c34d3f475f3a2de49da2affa6c00223a2ec" dependencies = [ "async-trait", "educe", @@ -9158,10 +9159,11 @@ checksum = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb" [[package]] name = "stringprep" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3737bde7edce97102e0e2b15365bf7a20bfdb5f60f4f9e8d7004258a51a8da" +checksum = "bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6" dependencies = [ + "finl_unicode", "unicode-bidi", "unicode-normalization", ] @@ -9187,7 +9189,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -9198,7 +9200,7 @@ checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -9239,7 +9241,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -9260,9 +9262,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "symbolic-common" -version = "12.3.0" +version = "12.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167a4ffd7c35c143fd1030aa3c2caf76ba42220bd5a6b5f4781896434723b8c3" +checksum = "9e0e9bc48b3852f36a84f8d0da275d50cb3c2b88b59b9ec35fdd8b7fa239e37d" dependencies = [ "debugid", "memmap2", @@ -9272,11 +9274,11 @@ dependencies = [ [[package]] name = "symbolic-demangle" -version = "12.3.0" +version = "12.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e378c50e80686c1c5c205674e1f86a2858bec3d2a7dfdd690331a8a19330f293" +checksum = "691e53bdc0702aba3a5abc2cffff89346fcbd4050748883c7e2f714b33a69045" dependencies = [ - "cpp_demangle 0.4.2", + "cpp_demangle 0.4.3", "rustc-demangle", "symbolic-common", ] @@ -9294,9 +9296,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.31" +version = "2.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398" +checksum = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2" dependencies = [ "proc-macro2", "quote", @@ -9344,7 +9346,7 @@ dependencies = [ "cap-std", "fd-lock", "io-lifetimes 2.0.2", - "rustix 0.38.8", + "rustix 0.38.11", "windows-sys 0.48.0", "winx 0.36.2", ] @@ -9384,7 +9386,7 @@ dependencies = [ "cfg-if", "fastrand 2.0.0", "redox_syscall 0.3.5", - "rustix 0.38.8", + "rustix 0.38.11", "windows-sys 0.48.0", ] @@ -9429,14 +9431,14 @@ checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] name = "thread-id" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee93aa2b8331c0fec9091548843f2c90019571814057da3b783f9de09349d73" +checksum = "79474f573561cdc4871a0de34a51c92f7f5a56039113fbb5b9c9f96bdb756669" dependencies = [ "libc", "redox_syscall 0.2.16", @@ -9476,7 +9478,7 @@ dependencies = [ [[package]] name = "tikv-jemalloc-ctl" version = "0.5.4" -source = "git+https://github.com/yuhao-su/jemallocator.git?rev=a0911601bb7bb263ca55c7ea161ef308fdc623f8#a0911601bb7bb263ca55c7ea161ef308fdc623f8" +source = "git+https://github.com/risingwavelabs/jemallocator.git?rev=b7f9f3#b7f9f34664dcfea190e64bef64587e23f9f2710c" dependencies = [ "libc", "paste", @@ -9486,7 +9488,7 @@ dependencies = [ [[package]] name = "tikv-jemalloc-sys" version = "0.5.4+5.3.0-patched" -source = "git+https://github.com/yuhao-su/jemallocator.git?rev=a0911601bb7bb263ca55c7ea161ef308fdc623f8#a0911601bb7bb263ca55c7ea161ef308fdc623f8" +source = "git+https://github.com/risingwavelabs/jemallocator.git?rev=b7f9f3#b7f9f34664dcfea190e64bef64587e23f9f2710c" dependencies = [ "cc", "libc", @@ -9495,23 +9497,12 @@ dependencies = [ [[package]] name = "tikv-jemallocator" version = "0.5.4" -source = "git+https://github.com/yuhao-su/jemallocator.git?rev=a0911601bb7bb263ca55c7ea161ef308fdc623f8#a0911601bb7bb263ca55c7ea161ef308fdc623f8" +source = "git+https://github.com/risingwavelabs/jemallocator.git?rev=b7f9f3#b7f9f34664dcfea190e64bef64587e23f9f2710c" dependencies = [ "libc", "tikv-jemalloc-sys", ] -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - [[package]] name = "time" version = "0.3.28" @@ -9578,9 +9569,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.31.0" +version = "1.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40de3a2ba249dcb097e01be5e67a5ff53cf250397715a071a81543e8a832a920" +checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" dependencies = [ "backtrace", "bytes", @@ -9614,7 +9605,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -9690,7 +9681,7 @@ version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls 0.20.8", + "rustls 0.20.9", "tokio", "webpki", ] @@ -9701,7 +9692,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.6", + "rustls 0.21.7", "tokio", ] @@ -9740,9 +9731,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.6" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" dependencies = [ "serde", "serde_spanned", @@ -9761,9 +9752,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.19.14" +version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ "indexmap 2.0.0", "serde", @@ -9896,7 +9887,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -9974,7 +9965,7 @@ dependencies = [ "sharded-slab", "smallvec", "thread_local", - "time 0.3.28", + "time", "tracing", "tracing-core", "tracing-log", @@ -10061,9 +10052,9 @@ dependencies = [ [[package]] name = "unicase" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" dependencies = [ "version_check", ] @@ -10192,7 +10183,7 @@ checksum = "bbc5ad0d9d26b2c49a5ab7da76c3e79d3ee37e7821799f8223fcb8f2f391a2e7" dependencies = [ "anyhow", "rustversion", - "time 0.3.28", + "time", ] [[package]] @@ -10247,12 +10238,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -10324,7 +10309,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", "wasm-bindgen-shared", ] @@ -10358,7 +10343,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -10531,7 +10516,7 @@ dependencies = [ "cranelift-frontend", "cranelift-native", "cranelift-wasm", - "gimli", + "gimli 0.27.3", "log", "object 0.30.4", "target-lexicon", @@ -10551,7 +10536,7 @@ dependencies = [ "cranelift-codegen", "cranelift-control", "cranelift-native", - "gimli", + "gimli 0.27.3", "object 0.30.4", "target-lexicon", "wasmtime-environ", @@ -10565,7 +10550,7 @@ checksum = "41f9e58e0ee7d43ff13e75375c726b16bce022db798d3a099a65eeaa7d7a544b" dependencies = [ "anyhow", "cranelift-entity", - "gimli", + "gimli 0.27.3", "indexmap 1.9.3", "log", "object 0.30.4", @@ -10603,7 +10588,7 @@ dependencies = [ "bincode 1.3.3", "cfg-if", "cpp_demangle 0.3.5", - "gimli", + "gimli 0.27.3", "ittapi", "log", "object 0.30.4", @@ -10714,7 +10699,7 @@ checksum = "60160d8f7d2b301790730dac8ff25156c61d4fed79481e7074c21dd1283cfe2f" dependencies = [ "anyhow", "cranelift-codegen", - "gimli", + "gimli 0.27.3", "object 0.30.4", "target-lexicon", "wasmparser 0.107.0", @@ -10776,9 +10761,9 @@ dependencies = [ [[package]] name = "webpki" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +checksum = "f0e74f82d49d545ad128049b7e88f6576df2da6b02e9ce565c6f533be576957e" dependencies = [ "ring", "untrusted", @@ -10801,13 +10786,14 @@ checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" [[package]] name = "which" -version = "4.4.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix 0.38.11", ] [[package]] @@ -10891,7 +10877,7 @@ checksum = "525fdd0d4e82d1bd3083bd87e8ca8014abfbdc5bf290d1d5371dac440d351e89" dependencies = [ "anyhow", "cranelift-codegen", - "gimli", + "gimli 0.27.3", "regalloc2", "smallvec", "target-lexicon", @@ -10905,7 +10891,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -10923,7 +10909,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -10943,17 +10929,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -10964,9 +10950,9 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" @@ -10976,9 +10962,9 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" @@ -10988,9 +10974,9 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" @@ -11000,9 +10986,9 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" @@ -11012,9 +10998,9 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" @@ -11024,9 +11010,9 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" @@ -11036,15 +11022,15 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.10" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5504cc7644f4b593cbc05c4a55bf9bd4e94b867c3c0bd440934174d50482427d" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" dependencies = [ "memchr", ] @@ -11129,6 +11115,8 @@ dependencies = [ "aws-credential-types", "aws-sdk-s3", "aws-smithy-client", + "base64 0.21.3", + "bitflags 2.4.0", "byteorder", "bytes", "cc", @@ -11154,7 +11142,6 @@ dependencies = [ "futures-sink", "futures-task", "futures-util", - "gimli", "hashbrown 0.12.3", "hashbrown 0.13.2", "hashbrown 0.14.0", @@ -11172,8 +11159,6 @@ dependencies = [ "log", "madsim-rdkafka", "madsim-tokio", - "memchr", - "miniz_oxide", "mio", "multimap", "nom", @@ -11210,14 +11195,16 @@ dependencies = [ "stable_deref_trait", "subtle", "syn 1.0.109", - "syn 2.0.31", - "time 0.3.28", + "syn 2.0.32", + "time", "time-macros", "tinyvec", "tokio", "tokio-postgres", "tokio-stream", "tokio-util", + "toml_datetime", + "toml_edit", "tonic", "tower", "tracing", @@ -11287,9 +11274,9 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "zerocopy" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b9c234616391070b0b173963ebc65a9195068e7ed3731c6edac2ec45ebe106" +checksum = "20707b61725734c595e840fb3704378a0cd2b9c74cc9e6e20724838fc6a1e2f9" dependencies = [ "byteorder", "zerocopy-derive", @@ -11297,13 +11284,13 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f7f3a471f98d0a61c34322fbbfd10c384b07687f680d4119813713f72308d91" +checksum = "56097d5b91d711293a42be9289403896b68654625021732067eac7a4ca388a1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] @@ -11323,7 +11310,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.31", + "syn 2.0.32", ] [[package]] diff --git a/e2e_test/batch/functions/array_sort.slt.part b/e2e_test/batch/functions/array_sort.slt.part new file mode 100644 index 0000000000000..1a9ee1bcc3088 --- /dev/null +++ b/e2e_test/batch/functions/array_sort.slt.part @@ -0,0 +1,37 @@ +query I +select array_sort(array[3, 2, 1]); +---- +{1,2,3} + +query I +select array_sort(array[3.14, 2.12, 1.14514]); +---- +{1.14514,2.12,3.14} + +query I +select array_sort(array['b', 'a', 'c']); +---- +{a,b,c} + +query I +select array_sort(array[-1000, 2000, 0]); +---- +{-1000,0,2000} + +query I +select array_sort(array['abcdef', 'aacedf', 'aaadef']); +---- +{aaadef,aacedf,abcdef} + +query I +select array_sort(array['114514🤔️1919810', '113514🥵1919810', '112514😅1919810']); +---- +{112514😅1919810,113514🥵1919810,114514🤔️1919810} + +query I +select array_sort(array[3, 2, NULL, 1, NULL]); +---- +{1,2,3,NULL,NULL} + +query error invalid digit found in string +select array_sort(array[3, 2, 1, 'a']); \ No newline at end of file diff --git a/e2e_test/ddl/table/generated_columns.slt.part b/e2e_test/ddl/table/generated_columns.slt.part index 8ade4be8548c6..08f07eb88f670 100644 --- a/e2e_test/ddl/table/generated_columns.slt.part +++ b/e2e_test/ddl/table/generated_columns.slt.part @@ -149,3 +149,11 @@ CREATE TABLE t (v INT, t timestamptz as now()) WITH ( datagen.rows.per.second='15', datagen.split.num = '1' ) FORMAT PLAIN ENCODE JSON; + +# create a table with impure generated column as pk. +statement error QueryError: Bind error: Generated columns should not be part of the primary key. Here column "v2" is defined as part of the primary key. +CREATE TABLE t ( + v1 INT, + v2 timestamptz AS proctime(), + PRIMARY KEY (v1, v2) +); \ No newline at end of file diff --git a/proto/expr.proto b/proto/expr.proto index 2ba219a0ee6b8..fdeee76ce2425 100644 --- a/proto/expr.proto +++ b/proto/expr.proto @@ -199,6 +199,7 @@ message ExprNode { ARRAY_TRANSFORM = 545; ARRAY_MIN = 546; ARRAY_MAX = 547; + ARRAY_SORT = 549; // Int256 functions HEX_TO_INT256 = 560; diff --git a/risedev.yml b/risedev.yml index 000971004bf51..0ad428794e37c 100644 --- a/risedev.yml +++ b/risedev.yml @@ -20,14 +20,14 @@ profile: # config-path: src/config/example.toml steps: # If you want to use the local s3 storage, enable the following line - - use: minio + # - use: minio # If you want to use aws-s3, configure AK and SK in env var and enable the following lines: # - use: aws-s3 # bucket: test-bucket # If you want to create CDC source table, uncomment the following line - - use: connector-node + # - use: connector-node # if you want to enable etcd backend, uncomment the following lines. # - use: etcd @@ -43,7 +43,7 @@ profile: - use: frontend # If you want to enable compactor, uncomment the following line, and enable either minio or aws-s3 as well. - - use: compactor + # - use: compactor # If you want to create source from Kafka, uncomment the following lines # Note that kafka depends on zookeeper, so zookeeper must be started beforehand. diff --git a/src/batch/Cargo.toml b/src/batch/Cargo.toml index f3c5032d5619a..5f90151a400ab 100644 --- a/src/batch/Cargo.toml +++ b/src/batch/Cargo.toml @@ -67,7 +67,7 @@ rand = "0.8" tempfile = "3" [target.'cfg(unix)'.dev-dependencies] -tikv-jemallocator = { git = "https://github.com/yuhao-su/jemallocator.git", rev = "a0911601bb7bb263ca55c7ea161ef308fdc623f8" } +tikv-jemallocator = { git = "https://github.com/risingwavelabs/jemallocator.git", rev = "b7f9f3" } [[bench]] name = "filter" diff --git a/src/bench/Cargo.toml b/src/bench/Cargo.toml index 80d8e484dfa8f..d3c74e385a4fe 100644 --- a/src/bench/Cargo.toml +++ b/src/bench/Cargo.toml @@ -46,7 +46,7 @@ tracing-subscriber = "0.3.17" workspace-hack = { path = "../workspace-hack" } [target.'cfg(target_os = "linux")'.dependencies] -nix = { version = "0.26", features = ["fs", "mman"] } +nix = { version = "0.27", features = ["fs", "mman"] } [[bin]] name = "s3-bench" diff --git a/src/cmd/Cargo.toml b/src/cmd/Cargo.toml index 45b715ebcb206..46a33654d3545 100644 --- a/src/cmd/Cargo.toml +++ b/src/cmd/Cargo.toml @@ -46,7 +46,11 @@ workspace-hack = { path = "../workspace-hack" } task_stats_alloc = { path = "../utils/task_stats_alloc" } [target.'cfg(unix)'.dependencies] -tikv-jemallocator = { git = "https://github.com/yuhao-su/jemallocator.git", features = ["profiling", "stats", "unprefixed_malloc_on_supported_platforms"], rev = "a0911601bb7bb263ca55c7ea161ef308fdc623f8" } +tikv-jemallocator = { git = "https://github.com/risingwavelabs/jemallocator.git", features = [ + "profiling", + "stats", + "unprefixed_malloc_on_supported_platforms", +], rev = "b7f9f3" } [[bin]] name = "frontend" diff --git a/src/cmd_all/Cargo.toml b/src/cmd_all/Cargo.toml index 3c3b207637b10..b6907cdebaeff 100644 --- a/src/cmd_all/Cargo.toml +++ b/src/cmd_all/Cargo.toml @@ -59,7 +59,11 @@ vergen = { version = "8", default-features = false, features = ["build", "git", task_stats_alloc = { path = "../utils/task_stats_alloc" } [target.'cfg(unix)'.dependencies] -tikv-jemallocator = { git = "https://github.com/yuhao-su/jemallocator.git", features = ["profiling", "stats", "unprefixed_malloc_on_supported_platforms"], rev = "a0911601bb7bb263ca55c7ea161ef308fdc623f8" } +tikv-jemallocator = { git = "https://github.com/risingwavelabs/jemallocator.git", features = [ + "profiling", + "stats", + "unprefixed_malloc_on_supported_platforms", +], rev = "b7f9f3" } [[bin]] name = "risingwave" diff --git a/src/common/src/catalog/column.rs b/src/common/src/catalog/column.rs index 173253f34dc8a..cde16ef8d7652 100644 --- a/src/common/src/catalog/column.rs +++ b/src/common/src/catalog/column.rs @@ -15,6 +15,7 @@ use std::borrow::Cow; use itertools::Itertools; +use risingwave_pb::expr::ExprNode; use risingwave_pb::plan_common::column_desc::GeneratedOrDefaultColumn; use risingwave_pb::plan_common::{PbColumnCatalog, PbColumnDesc}; @@ -282,6 +283,17 @@ impl ColumnCatalog { self.column_desc.is_generated() } + /// If the column is a generated column + pub fn generated_expr(&self) -> Option<&ExprNode> { + if let Some(GeneratedOrDefaultColumn::GeneratedColumn(desc)) = + &self.column_desc.generated_or_default_column + { + Some(desc.expr.as_ref().unwrap()) + } else { + None + } + } + /// If the column is a column with default expr pub fn is_default(&self) -> bool { self.column_desc.is_default() diff --git a/src/common/src/config.rs b/src/common/src/config.rs index 61789430965cf..878914298b5c1 100644 --- a/src/common/src/config.rs +++ b/src/common/src/config.rs @@ -370,7 +370,7 @@ pub struct ServerConfig { pub unrecognized: Unrecognized, /// Enable heap profile dump when memory usage is high. - #[serde(default = "default::server::auto_dump_heap_profile")] + #[serde(default)] pub auto_dump_heap_profile: AutoDumpHeapProfileConfig, } @@ -658,18 +658,19 @@ impl AsyncStackTraceOption { #[derive(Clone, Debug, Serialize, Deserialize, DefaultFromSerde)] pub struct AutoDumpHeapProfileConfig { + /// Enable to auto dump heap profile when memory usage is high + #[serde(default = "default::auto_dump_heap_profile::enabled")] + pub enabled: bool, + + /// The directory to dump heap profile. If empty, the prefix in `MALLOC_CONF` will be used #[serde(default = "default::auto_dump_heap_profile::dir")] pub dir: String, + + /// The proportion (number between 0 and 1) of memory usage to trigger heap profile dump #[serde(default = "default::auto_dump_heap_profile::threshold")] pub threshold: f32, } -impl AutoDumpHeapProfileConfig { - pub fn enabled(&self) -> bool { - !self.dir.is_empty() - } -} - serde_with::with_prefix!(streaming_prefix "stream_"); serde_with::with_prefix!(batch_prefix "batch_"); @@ -911,7 +912,7 @@ pub mod default { } pub mod server { - use crate::config::{AutoDumpHeapProfileConfig, MetricLevel}; + use crate::config::MetricLevel; pub fn heartbeat_interval_ms() -> u32 { 1000 @@ -928,10 +929,6 @@ pub mod default { pub fn telemetry_enabled() -> bool { true } - - pub fn auto_dump_heap_profile() -> AutoDumpHeapProfileConfig { - Default::default() - } } pub mod storage { @@ -1133,6 +1130,10 @@ pub mod default { } pub mod auto_dump_heap_profile { + pub fn enabled() -> bool { + true + } + pub fn dir() -> String { "".to_string() } diff --git a/src/common/src/row/mod.rs b/src/common/src/row/mod.rs index 691893587dd24..60419537ec315 100644 --- a/src/common/src/row/mod.rs +++ b/src/common/src/row/mod.rs @@ -337,8 +337,8 @@ impl Row for Option { fn iter(&self) -> impl Iterator> { match self { - Some(row) => itertools::Either::Left(row.iter()), - None => itertools::Either::Right(EMPTY.iter()), + Some(row) => either::Either::Left(row.iter()), + None => either::Either::Right(EMPTY.iter()), } } @@ -369,6 +369,65 @@ impl Row for Option { } } +/// Implements [`Row`] for an [`either::Either`] of two different types of rows. +impl Row for either::Either { + fn datum_at(&self, index: usize) -> DatumRef<'_> { + either::for_both!(self, row => row.datum_at(index)) + } + + unsafe fn datum_at_unchecked(&self, index: usize) -> DatumRef<'_> { + either::for_both!(self, row => row.datum_at_unchecked(index)) + } + + fn len(&self) -> usize { + either::for_both!(self, row => row.len()) + } + + fn is_empty(&self) -> bool { + either::for_both!(self, row => row.is_empty()) + } + + fn iter(&self) -> impl Iterator> { + self.as_ref().map_either(Row::iter, Row::iter) + } + + fn to_owned_row(&self) -> OwnedRow { + either::for_both!(self, row => row.to_owned_row()) + } + + fn into_owned_row(self) -> OwnedRow { + either::for_both!(self, row => row.into_owned_row()) + } + + fn value_serialize_into(&self, buf: impl BufMut) { + either::for_both!(self, row => row.value_serialize_into(buf)) + } + + fn value_serialize(&self) -> Vec { + either::for_both!(self, row => row.value_serialize()) + } + + fn value_serialize_bytes(&self) -> Bytes { + either::for_both!(self, row => row.value_serialize_bytes()) + } + + fn memcmp_serialize_into(&self, serde: &OrderedRowSerde, buf: impl BufMut) { + either::for_both!(self, row => row.memcmp_serialize_into(serde, buf)) + } + + fn memcmp_serialize(&self, serde: &OrderedRowSerde) -> Vec { + either::for_both!(self, row => row.memcmp_serialize(serde)) + } + + fn hash(&self, hash_builder: H) -> HashCode { + either::for_both!(self, row => row.hash(hash_builder)) + } + + fn eq(this: &Self, other: impl Row) -> bool { + either::for_both!(this, row => Row::eq(row, other)) + } +} + mod chain; mod compacted_row; mod empty; diff --git a/src/compute/Cargo.toml b/src/compute/Cargo.toml index 8276f93db8ae7..7774a2d917731 100644 --- a/src/compute/Cargo.toml +++ b/src/compute/Cargo.toml @@ -55,7 +55,7 @@ tower = { version = "0.4", features = ["util", "load-shed"] } tracing = "0.1" [target.'cfg(target_os = "linux")'.dependencies] -tikv-jemalloc-ctl = { git = "https://github.com/yuhao-su/jemallocator.git", rev = "a0911601bb7bb263ca55c7ea161ef308fdc623f8" } +tikv-jemalloc-ctl = { git = "https://github.com/risingwavelabs/jemallocator.git", rev = "b7f9f3" } [target.'cfg(not(madsim))'.dependencies] workspace-hack = { path = "../workspace-hack" } diff --git a/src/compute/src/memory_management/memory_manager.rs b/src/compute/src/memory_management/memory_manager.rs index 1c43cdb29fdab..9481ef0ebef71 100644 --- a/src/compute/src/memory_management/memory_manager.rs +++ b/src/compute/src/memory_management/memory_manager.rs @@ -54,7 +54,7 @@ impl GlobalMemoryManager { .unwrap(); tracing::info!("memory control policy: {:?}", &memory_control_policy); - if auto_dump_heap_profile_config.enabled() { + if auto_dump_heap_profile_config.enabled { fs::create_dir_all(&auto_dump_heap_profile_config.dir).unwrap(); } Arc::new(Self { diff --git a/src/compute/src/memory_management/mod.rs b/src/compute/src/memory_management/mod.rs index 23f5303eabc72..f9553f860ae41 100644 --- a/src/compute/src/memory_management/mod.rs +++ b/src/compute/src/memory_management/mod.rs @@ -74,15 +74,8 @@ pub fn build_memory_control_policy( total_memory_bytes: usize, auto_dump_heap_profile_config: AutoDumpHeapProfileConfig, ) -> Result { - use risingwave_common::bail; - use tikv_jemalloc_ctl::opt; - use self::policy::JemallocMemoryControl; - if !opt::prof::read().unwrap() && auto_dump_heap_profile_config.enabled() { - bail!("Auto heap profile dump should not be enabled with Jemalloc profile disable"); - } - Ok(Box::new(JemallocMemoryControl::new( total_memory_bytes, auto_dump_heap_profile_config, @@ -122,6 +115,14 @@ impl MemoryControl for DummyPolicy { /// overhead, network buffer, etc. based on `SYSTEM_RESERVED_MEMORY_PROPORTION`. The reserve memory /// size must be larger than `MIN_SYSTEM_RESERVED_MEMORY_MB` pub fn reserve_memory_bytes(total_memory_bytes: usize) -> (usize, usize) { + if total_memory_bytes < MIN_COMPUTE_MEMORY_MB << 20 { + panic!( + "The total memory size ({}) is too small. It must be at least {} MB.", + convert(total_memory_bytes as _), + MIN_COMPUTE_MEMORY_MB + ); + } + let reserved = std::cmp::max( (total_memory_bytes as f64 * SYSTEM_RESERVED_MEMORY_PROPORTION).ceil() as usize, MIN_SYSTEM_RESERVED_MEMORY_MB << 20, diff --git a/src/compute/src/memory_management/policy.rs b/src/compute/src/memory_management/policy.rs index 085d7cfcf98a5..5c3602a46fe68 100644 --- a/src/compute/src/memory_management/policy.rs +++ b/src/compute/src/memory_management/policy.rs @@ -22,7 +22,9 @@ use risingwave_batch::task::BatchManager; use risingwave_common::config::AutoDumpHeapProfileConfig; use risingwave_common::util::epoch::Epoch; use risingwave_stream::task::LocalStreamManager; -use tikv_jemalloc_ctl::{epoch as jemalloc_epoch, prof as jemalloc_prof, stats as jemalloc_stats}; +use tikv_jemalloc_ctl::{ + epoch as jemalloc_epoch, opt as jemalloc_opt, prof as jemalloc_prof, stats as jemalloc_stats, +}; use super::{MemoryControl, MemoryControlStats}; @@ -100,22 +102,39 @@ impl JemallocMemoryControl { } fn dump_heap_prof(&self, cur_used_memory_bytes: usize, prev_used_memory_bytes: usize) { - if !self.auto_dump_heap_profile_config.enabled() { + if !self.auto_dump_heap_profile_config.enabled { return; } + if cur_used_memory_bytes > self.threshold_auto_dump_heap_profile && prev_used_memory_bytes <= self.threshold_auto_dump_heap_profile { + let opt_prof = jemalloc_opt::prof::read().unwrap(); + if !opt_prof { + tracing::info!("Cannot dump heap profile because Jemalloc prof is not enabled"); + return; + } + let time_prefix = chrono::Local::now().format("%Y-%m-%d-%H-%M-%S").to_string(); let file_name = format!( "{}.exceed-threshold-aggressive-heap-prof.compute.dump.{}\0", time_prefix, self.dump_seq, ); - let file_path = Path::new(&self.auto_dump_heap_profile_config.dir) - .join(Path::new(&file_name)) - .to_str() - .unwrap() - .to_string(); + + let file_path = if !self.auto_dump_heap_profile_config.dir.is_empty() { + Path::new(&self.auto_dump_heap_profile_config.dir) + .join(Path::new(&file_name)) + .to_str() + .unwrap() + .to_string() + } else { + let prof_prefix_mib = jemalloc_prof::prefix::mib().unwrap(); + let prof_prefix = prof_prefix_mib.read().unwrap(); + let mut file_path = prof_prefix.to_string_lossy().to_string(); + file_path.push_str(&file_name); + file_path + }; + let file_path_str = Box::leak(file_path.into_boxed_str()); let file_path_bytes = unsafe { file_path_str.as_bytes_mut() }; let file_path_ptr = file_path_bytes.as_mut_ptr(); @@ -124,6 +143,8 @@ impl JemallocMemoryControl { .write(CStr::from_bytes_with_nul(file_path_bytes).unwrap()) { tracing::warn!("Auto Jemalloc dump heap file failed! {:?}", e); + } else { + tracing::info!("Successfully dumped heap profile to {}", file_name); } let _ = unsafe { Box::from_raw(file_path_ptr) }; } diff --git a/src/config/ci-compaction-test-meta.toml b/src/config/ci-compaction-test-meta.toml index 1fe668bdd9c9a..af4b9d2dde758 100644 --- a/src/config/ci-compaction-test-meta.toml +++ b/src/config/ci-compaction-test-meta.toml @@ -28,3 +28,6 @@ data_directory = "hummock_001" checkpoint_frequency = 99999999 barrier_interval_ms = 250 max_concurrent_creating_streaming_jobs = 0 + +[server] +metrics_level = "Disabled" diff --git a/src/config/ci-compaction-test.toml b/src/config/ci-compaction-test.toml index e8258efc08178..f7e23bbd0d62b 100644 --- a/src/config/ci-compaction-test.toml +++ b/src/config/ci-compaction-test.toml @@ -26,3 +26,6 @@ data_directory = "hummock_001" checkpoint_frequency = 10 barrier_interval_ms = 250 max_concurrent_creating_streaming_jobs = 0 + +[server] +metrics_level = "Disabled" diff --git a/src/config/ci-meta-backup-test.toml b/src/config/ci-meta-backup-test.toml index 9aa5e2ec5a9a3..9559390360e33 100644 --- a/src/config/ci-meta-backup-test.toml +++ b/src/config/ci-meta-backup-test.toml @@ -5,4 +5,7 @@ vacuum_interval_sec = 10 [system] backup_storage_url = "minio://hummockadmin:hummockadmin@127.0.0.1:9301/hummock001" -backup_storage_directory = "backup" \ No newline at end of file +backup_storage_directory = "backup" + +[server] +metrics_level = "Disabled" diff --git a/src/config/example.toml b/src/config/example.toml index 0e6d50e8f3f1e..b088843c66c65 100644 --- a/src/config/example.toml +++ b/src/config/example.toml @@ -7,6 +7,7 @@ metrics_level = "Info" telemetry_enabled = true [server.auto_dump_heap_profile] +enabled = true dir = "" threshold = 0.8999999761581421 diff --git a/src/connector/Cargo.toml b/src/connector/Cargo.toml index 34b416fe4d8e6..33e32c5685113 100644 --- a/src/connector/Cargo.toml +++ b/src/connector/Cargo.toml @@ -56,8 +56,8 @@ itertools = "0.11" jsonschema-transpiler = "1.10.0" maplit = "1.0.2" moka = { version = "0.11", features = ["future"] } -mysql_async = { version = "0.31", default-features = false, features = ["default"] } -mysql_common = { version = "0.29.2", default-features = false, features = ["chrono"] } +mysql_async = { version = "0.32", default-features = false, features = ["default"] } +mysql_common = { version = "0.30", default-features = false, features = ["chrono"] } nexmark = { version = "0.2", features = ["serde"] } num-bigint = "0.4" opendal = "0.39" diff --git a/src/connector/src/source/kafka/mod.rs b/src/connector/src/source/kafka/mod.rs index 7b8e3a4d1e4eb..50fabadb41365 100644 --- a/src/connector/src/source/kafka/mod.rs +++ b/src/connector/src/source/kafka/mod.rs @@ -75,6 +75,14 @@ pub struct RdKafkaPropertiesConsumer { #[serde(rename = "properties.fetch.max.bytes")] #[serde_as(as = "Option")] pub fetch_max_bytes: Option, + + /// Automatically and periodically commit offsets in the background. + /// Note: setting this to false does not prevent the consumer from fetching previously committed start offsets. + /// To circumvent this behaviour set specific start offsets per partition in the call to assign(). + /// default: true + #[serde(rename = "properties.enable.auto.commit")] + #[serde_as(as = "Option")] + pub enable_auto_commit: Option, } #[derive(Clone, Debug, Deserialize)] @@ -143,6 +151,9 @@ impl RdKafkaPropertiesConsumer { if let Some(v) = &self.fetch_max_bytes { c.set("fetch.max.bytes", v.to_string()); } + if let Some(v) = &self.enable_auto_commit { + c.set("enable.auto.commit", v.to_string()); + } } } @@ -170,6 +181,7 @@ mod test { "properties.queued.max.messages.kbytes".to_string() => "114514".to_string(), "properties.fetch.wait.max.ms".to_string() => "114514".to_string(), "properties.fetch.max.bytes".to_string() => "114514".to_string(), + "properties.enable.auto.commit".to_string() => "true".to_string(), }; let props: KafkaProperties = @@ -191,5 +203,6 @@ mod test { ); assert_eq!(props.rdkafka_properties.fetch_wait_max_ms, Some(114514)); assert_eq!(props.rdkafka_properties.fetch_max_bytes, Some(114514)); + assert_eq!(props.rdkafka_properties.enable_auto_commit, Some(true)); } } diff --git a/src/connector/src/source/kafka/source/reader.rs b/src/connector/src/source/kafka/source/reader.rs index 103255a882ed7..65887bb825f92 100644 --- a/src/connector/src/source/kafka/source/reader.rs +++ b/src/connector/src/source/kafka/source/reader.rs @@ -64,7 +64,8 @@ impl SplitReader for KafkaSplitReader { // disable partition eof config.set("enable.partition.eof", "false"); - config.set("enable.auto.commit", "false"); + // change to `RdKafkaPropertiesConsumer::enable_auto_commit` to enable auto commit + // config.set("enable.auto.commit", "false"); config.set("auto.offset.reset", "smallest"); config.set("isolation.level", KAFKA_ISOLATION_LEVEL); config.set("bootstrap.servers", bootstrap_servers); diff --git a/src/ctl/Cargo.toml b/src/ctl/Cargo.toml index 802262ff02fb3..50a6843b14013 100644 --- a/src/ctl/Cargo.toml +++ b/src/ctl/Cargo.toml @@ -23,7 +23,7 @@ etcd-client = { workspace = true } futures = { version = "0.3", default-features = false, features = ["alloc"] } inquire = "0.6.2" itertools = "0.11" -regex = "1.9.4" +regex = "1.9.5" risingwave_common = { workspace = true } risingwave_connector = { workspace = true } risingwave_frontend = { workspace = true } diff --git a/src/expr/src/vector_op/array_sort.rs b/src/expr/src/vector_op/array_sort.rs new file mode 100644 index 0000000000000..7ba455d6bbd61 --- /dev/null +++ b/src/expr/src/vector_op/array_sort.rs @@ -0,0 +1,31 @@ +// Copyright 2023 RisingWave Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use risingwave_common::array::*; +use risingwave_common::types::{Datum, DatumRef, DefaultOrdered, ToOwnedDatum}; +use risingwave_expr_macro::function; + +#[function("array_sort(list) -> list")] +pub fn array_sort(list: ListRef<'_>) -> ListValue { + let mut v = list + .iter() + .map(DefaultOrdered) + .collect::>>>(); + v.sort(); + ListValue::new( + v.into_iter() + .map(|x| x.0.to_owned_datum()) + .collect::>(), + ) +} diff --git a/src/expr/src/vector_op/mod.rs b/src/expr/src/vector_op/mod.rs index f4aaa375f8f76..ae88452b8ea7a 100644 --- a/src/expr/src/vector_op/mod.rs +++ b/src/expr/src/vector_op/mod.rs @@ -21,6 +21,7 @@ pub mod array_positions; pub mod array_range_access; pub mod array_remove; pub mod array_replace; +pub mod array_sort; pub mod ascii; pub mod bitwise_op; pub mod cardinality; diff --git a/src/frontend/planner_test/tests/testdata/input/update.yaml b/src/frontend/planner_test/tests/testdata/input/update.yaml index 7770992d78b34..a63e5192073e6 100644 --- a/src/frontend/planner_test/tests/testdata/input/update.yaml +++ b/src/frontend/planner_test/tests/testdata/input/update.yaml @@ -69,4 +69,10 @@ create table t(v1 int as v2-1, v2 int, v3 int as v2+1); update t set v1 = 3; expected_outputs: + - binder_error +- name: update columns references by generated pk + sql: | + create table t(v1 int as v2-1, v2 int, v3 int as v2+1, primary key (v3)); + update t set v2 = 3; + expected_outputs: - binder_error \ No newline at end of file diff --git a/src/frontend/planner_test/tests/testdata/output/update.yaml b/src/frontend/planner_test/tests/testdata/output/update.yaml index 543393911aa42..f3a27a3d2e514 100644 --- a/src/frontend/planner_test/tests/testdata/output/update.yaml +++ b/src/frontend/planner_test/tests/testdata/output/update.yaml @@ -111,3 +111,8 @@ create table t(v1 int as v2-1, v2 int, v3 int as v2+1); update t set v1 = 3; binder_error: 'Bind error: update modifying the generated column is unsupported' +- name: update columns references by generated pk + sql: | + create table t(v1 int as v2-1, v2 int, v3 int as v2+1, primary key (v3)); + update t set v2 = 3; + binder_error: 'Bind error: update modifying the column referenced by generated columns that are part of the primary key is not allowed' diff --git a/src/frontend/src/binder/expr/function.rs b/src/frontend/src/binder/expr/function.rs index 51b18b0837584..6bfa4883c6a5e 100644 --- a/src/frontend/src/binder/expr/function.rs +++ b/src/frontend/src/binder/expr/function.rs @@ -795,6 +795,7 @@ impl Binder { ("array_to_string", raw_call(ExprType::ArrayToString)), ("array_distinct", raw_call(ExprType::ArrayDistinct)), ("array_min", raw_call(ExprType::ArrayMin)), + ("array_sort", raw_call(ExprType::ArraySort)), ("array_length", raw_call(ExprType::ArrayLength)), ("cardinality", raw_call(ExprType::Cardinality)), ("array_remove", raw_call(ExprType::ArrayRemove)), diff --git a/src/frontend/src/binder/update.rs b/src/frontend/src/binder/update.rs index bd7c8a92fd95a..aabe2a5bd43ca 100644 --- a/src/frontend/src/binder/update.rs +++ b/src/frontend/src/binder/update.rs @@ -15,6 +15,7 @@ use std::collections::hash_map::Entry; use std::collections::{BTreeMap, HashMap}; +use fixedbitset::FixedBitSet; use itertools::Itertools; use risingwave_common::catalog::{Schema, TableVersionId}; use risingwave_common::error::{ErrorCode, Result, RwError}; @@ -26,6 +27,7 @@ use super::{Binder, BoundBaseTable}; use crate::catalog::TableId; use crate::expr::{Expr as _, ExprImpl, InputRef}; use crate::user::UserId; +use crate::TableCatalog; #[derive(Debug, Clone)] pub struct BoundUpdate { @@ -77,6 +79,23 @@ impl RewriteExprsRecursive for BoundUpdate { } } +fn get_col_referenced_by_generated_pk(table_catalog: &TableCatalog) -> Result { + let column_num = table_catalog.columns().len(); + let pk_col_id = table_catalog.pk_column_ids(); + let mut bitset = FixedBitSet::with_capacity(column_num); + + let generated_pk_col_exprs = table_catalog + .columns + .iter() + .filter(|c| pk_col_id.contains(&c.column_id())) + .flat_map(|c| c.generated_expr()); + for expr_node in generated_pk_col_exprs { + let expr = ExprImpl::from_expr_proto(expr_node)?; + bitset.union_with(&expr.collect_input_refs(column_num)); + } + Ok(bitset) +} + impl Binder { pub(super) fn bind_update( &mut self, @@ -99,6 +118,7 @@ impl Binder { let table_id = table_catalog.id; let owner = table_catalog.owner; let table_version_id = table_catalog.version_id().expect("table must be versioned"); + let cols_refed_by_generated_pk = get_col_referenced_by_generated_pk(table_catalog)?; let table = self.bind_table(schema_name.as_deref(), &table_name, None)?; @@ -161,6 +181,12 @@ impl Binder { ) .into()); } + if cols_refed_by_generated_pk.contains(id_index) { + return Err(ErrorCode::BindError( + "update modifying the column referenced by generated columns that are part of the primary key is not allowed".to_owned(), + ) + .into()); + } id_index } else { unreachable!() diff --git a/src/frontend/src/expr/pure.rs b/src/frontend/src/expr/pure.rs index bb2e1d12d8f87..a229fed79b4f0 100644 --- a/src/frontend/src/expr/pure.rs +++ b/src/frontend/src/expr/pure.rs @@ -154,6 +154,7 @@ impl ExprVisitor for ImpureAnalyzer { | expr_node::Type::ArrayToString | expr_node::Type::ArrayCat | expr_node::Type::ArrayMax + | expr_node::Type::ArraySort | expr_node::Type::ArrayAppend | expr_node::Type::ArrayPrepend | expr_node::Type::FormatType diff --git a/src/frontend/src/expr/type_inference/func.rs b/src/frontend/src/expr/type_inference/func.rs index 1febc46788af5..771d7a1c6406d 100644 --- a/src/frontend/src/expr/type_inference/func.rs +++ b/src/frontend/src/expr/type_inference/func.rs @@ -601,6 +601,12 @@ fn infer_type_for_special( Ok(Some(inputs[0].return_type().as_list().clone())) } + ExprType::ArraySort => { + ensure_arity!("array_sort", | inputs | == 1); + inputs[0].ensure_array_type()?; + + Ok(Some(inputs[0].return_type())) + } ExprType::ArrayDims => { ensure_arity!("array_dims", | inputs | == 1); inputs[0].ensure_array_type()?; diff --git a/src/frontend/src/handler/create_source.rs b/src/frontend/src/handler/create_source.rs index 7b38e6289e164..78e85fca77e0c 100644 --- a/src/frontend/src/handler/create_source.rs +++ b/src/frontend/src/handler/create_source.rs @@ -1107,7 +1107,13 @@ pub async fn handle_create_source( // TODO(yuhao): allow multiple watermark on source. assert!(watermark_descs.len() <= 1); - bind_sql_column_constraints(&session, name.clone(), &mut columns, stmt.columns)?; + bind_sql_column_constraints( + &session, + name.clone(), + &mut columns, + stmt.columns, + &pk_column_ids, + )?; check_source_schema(&with_properties, row_id_index, &columns)?; diff --git a/src/frontend/src/handler/create_table.rs b/src/frontend/src/handler/create_table.rs index d8419ac98da38..476e15885c65d 100644 --- a/src/frontend/src/handler/create_table.rs +++ b/src/frontend/src/handler/create_table.rs @@ -197,9 +197,11 @@ pub fn bind_sql_columns(column_defs: &[ColumnDef]) -> Result> fn check_generated_column_constraints( column_name: &String, + column_id: ColumnId, expr: &ExprImpl, column_catalogs: &[ColumnCatalog], generated_column_names: &[String], + pk_column_ids: &[ColumnId], ) -> Result<()> { let input_refs = expr.collect_input_refs(column_catalogs.len()); for idx in input_refs.ones() { @@ -214,6 +216,14 @@ fn check_generated_column_constraints( .into()); } } + + if pk_column_ids.contains(&column_id) && expr.is_impure() { + return Err(ErrorCode::BindError( + format!("Generated columns should not be part of the primary key. Here column \"{}\" is defined as part of the primary key.", column_name), + ) + .into()); + } + Ok(()) } @@ -243,6 +253,7 @@ pub fn bind_sql_column_constraints( table_name: String, column_catalogs: &mut [ColumnCatalog], columns: Vec, + pk_column_ids: &[ColumnId], ) -> Result<()> { let generated_column_names = { let mut names = vec![]; @@ -271,9 +282,11 @@ pub fn bind_sql_column_constraints( check_generated_column_constraints( &column.name.real_value(), + column_catalogs[idx].column_id(), &expr_impl, column_catalogs, &generated_column_names, + pk_column_ids, )?; column_catalogs[idx].column_desc.generated_or_default_column = Some( @@ -460,7 +473,13 @@ pub(crate) async fn gen_create_table_plan_with_source( let definition = context.normalized_sql().to_owned(); - bind_sql_column_constraints(session, table_name.real_value(), &mut columns, column_defs)?; + bind_sql_column_constraints( + session, + table_name.real_value(), + &mut columns, + column_defs, + &pk_column_ids, + )?; check_source_schema(&properties, row_id_index, &columns)?; @@ -592,6 +611,7 @@ pub(crate) fn gen_create_table_plan_without_bind( table_name.real_value(), &mut columns, column_defs, + &pk_column_ids, )?; gen_table_plan_inner( diff --git a/src/storage/Cargo.toml b/src/storage/Cargo.toml index 166b76cec1b5e..1cdaccf3cdba5 100644 --- a/src/storage/Cargo.toml +++ b/src/storage/Cargo.toml @@ -26,7 +26,7 @@ dyn-clone = "1.0.13" either = "1" enum-as-inner = "0.6" fail = "0.5" -foyer = { git = "https://github.com/mrcroxx/foyer", rev = "2b8907c" } +foyer = { git = "https://github.com/mrcroxx/foyer", rev = "2c6f080" } futures = { version = "0.3", default-features = false, features = ["alloc"] } futures-async-stream = { workspace = true } hex = "0.4" @@ -75,7 +75,7 @@ zstd = { version = "0.12", default-features = false } [target.'cfg(target_os = "linux")'.dependencies] procfs = { version = "0.15", default-features = false } libc = "0.2" -nix = { version = "0.26", features = ["fs", "mman"] } +nix = { version = "0.27", features = ["fs", "mman"] } [target.'cfg(target_os = "macos")'.dependencies] darwin-libproc = { git = "https://github.com/risingwavelabs/darwin-libproc.git", rev = "a502be24bd0971463f5bcbfe035a248d8ba503b7" } diff --git a/src/tests/simulation/Cargo.toml b/src/tests/simulation/Cargo.toml index e4f0d5c99bc82..594f06b3b61c3 100644 --- a/src/tests/simulation/Cargo.toml +++ b/src/tests/simulation/Cargo.toml @@ -42,11 +42,13 @@ risingwave_rpc_client = { workspace = true } risingwave_sqlparser = { workspace = true } risingwave_sqlsmith = { workspace = true } serde = "1.0.188" -serde_derive = "1.0.183" -serde_json = "1.0.105" -sqllogictest = "0.15.2" +serde_derive = "1.0.188" +serde_json = "1.0.106" +sqllogictest = "0.15.3" tempfile = "3" -tikv-jemallocator = { git = "https://github.com/yuhao-su/jemallocator.git", features = ["profiling"], rev = "a0911601bb7bb263ca55c7ea161ef308fdc623f8" } +tikv-jemallocator = { git = "https://github.com/risingwavelabs/jemallocator.git", features = [ + "profiling", +], rev = "b7f9f3" } tokio = { version = "0.2.23", package = "madsim-tokio" } tokio-postgres = "0.7" tracing = "0.1" diff --git a/src/udf/src/error.rs b/src/udf/src/error.rs index d787808a32810..f20816ee5b2c0 100644 --- a/src/udf/src/error.rs +++ b/src/udf/src/error.rs @@ -40,6 +40,9 @@ pub enum Error { #[error("UDF service returned no data")] NoReturned, + + #[error("Flight service error: {0}")] + ServiceError(String), } static_assertions::const_assert_eq!(std::mem::size_of::(), 32); diff --git a/src/udf/src/external.rs b/src/udf/src/external.rs index 1a666f4d4e378..585adc7ebec5b 100644 --- a/src/udf/src/external.rs +++ b/src/udf/src/external.rs @@ -49,6 +49,15 @@ impl ArrowFlightUdfClient { let input_num = info.total_records as usize; let full_schema = Schema::try_from(info) .map_err(|e| FlightError::DecodeError(format!("Error decoding schema: {e}")))?; + if input_num > full_schema.fields.len() { + return Err(Error::ServiceError(format!( + "function {:?} schema info not consistency: input_num: {}, total_fields: {}", + id, + input_num, + full_schema.fields.len() + ))); + } + let (input_fields, return_fields) = full_schema.fields.split_at(input_num); let actual_input_types: Vec<_> = input_fields.iter().map(|f| f.data_type()).collect(); let actual_result_types: Vec<_> = return_fields.iter().map(|f| f.data_type()).collect(); diff --git a/src/utils/workspace-config/Cargo.toml b/src/utils/workspace-config/Cargo.toml index 2159f5508a75b..d8b2dd800ab1b 100644 --- a/src/utils/workspace-config/Cargo.toml +++ b/src/utils/workspace-config/Cargo.toml @@ -16,7 +16,9 @@ rw-dynamic-link = ["zstd-sys"] [dependencies] log = { version = "0.4", features = ["release_max_level_debug"] } -openssl-sys = { version = "0.9", optional = true, features = ["vendored"] } +# FIXME: 0.9.93 upgrades openssl-src to openssl@3, but we failed to build it. +# fix it later https://github.com/risingwavelabs/risingwave/pull/12198 +openssl-sys = { version = "=0.9.92", optional = true, features = ["vendored"] } sasl2-sys = { version = "0.1", optional = true, features = ["gssapi-vendored"] } tracing = { version = "0.1", features = ["release_max_level_debug"] } zstd-sys = { version = "2", optional = true, default-features = false, features = ["pkg-config"] } diff --git a/src/workspace-hack/Cargo.toml b/src/workspace-hack/Cargo.toml index 83da12ddbeb10..e492244bee9f5 100644 --- a/src/workspace-hack/Cargo.toml +++ b/src/workspace-hack/Cargo.toml @@ -23,6 +23,8 @@ anyhow = { version = "1", features = ["backtrace"] } aws-credential-types = { version = "0.55", default-features = false, features = ["hardcoded-credentials"] } aws-sdk-s3 = { version = "0.28", features = ["native-tls"] } aws-smithy-client = { version = "0.55", default-features = false, features = ["native-tls", "rustls"] } +base64 = { version = "0.21", features = ["alloc"] } +bitflags = { version = "2", default-features = false, features = ["std"] } byteorder = { version = "1", features = ["i128"] } bytes = { version = "1", features = ["serde"] } chrono = { version = "0.4", features = ["alloc", "serde"] } @@ -47,7 +49,6 @@ futures-io = { version = "0.3" } futures-sink = { version = "0.3" } futures-task = { version = "0.3" } futures-util = { version = "0.3", features = ["channel", "io", "sink"] } -gimli = { version = "0.27", default-features = false, features = ["read", "std", "write"] } hashbrown-582f2526e08bb6a0 = { package = "hashbrown", version = "0.14", features = ["nightly", "raw"] } hashbrown-594e8ee84c453af0 = { package = "hashbrown", version = "0.13", features = ["raw"] } hashbrown-5ef9efb8ec2df382 = { package = "hashbrown", version = "0.12", features = ["nightly", "raw"] } @@ -65,8 +66,6 @@ lock_api = { version = "0.4", features = ["arc_lock"] } log = { version = "0.4", default-features = false, features = ["std"] } madsim-rdkafka = { git = "https://github.com/madsim-rs/madsim.git", rev = "bb8f063", features = ["cmake-build", "gssapi", "ssl-vendored", "zstd"] } madsim-tokio = { version = "0.2", default-features = false, features = ["fs", "io-util", "macros", "net", "process", "rt", "rt-multi-thread", "signal", "sync", "time", "tracing"] } -memchr = { version = "2" } -miniz_oxide = { version = "0.7", default-features = false, features = ["with-alloc"] } mio = { version = "0.8", features = ["net", "os-ext"] } multimap = { version = "0.8" } nom = { version = "7" } @@ -107,6 +106,8 @@ tokio = { version = "1", features = ["full", "stats", "tracing"] } tokio-postgres = { git = "https://github.com/madsim-rs/rust-postgres.git", rev = "4538cd6", features = ["with-chrono-0_4"] } tokio-stream = { git = "https://github.com/madsim-rs/tokio.git", rev = "fe39bb8e", features = ["fs", "net"] } tokio-util = { version = "0.7", features = ["codec", "io"] } +toml_datetime = { version = "0.6", default-features = false, features = ["serde"] } +toml_edit = { version = "0.19", features = ["serde"] } tonic = { version = "0.9", features = ["gzip", "tls-webpki-roots"] } tower = { version = "0.4", features = ["balance", "buffer", "filter", "limit", "load-shed", "retry", "timeout", "util"] } tracing = { version = "0.1", features = ["log"] } @@ -125,6 +126,8 @@ auto_enums = { version = "0.8", features = ["futures03"] } aws-credential-types = { version = "0.55", default-features = false, features = ["hardcoded-credentials"] } aws-sdk-s3 = { version = "0.28", features = ["native-tls"] } aws-smithy-client = { version = "0.55", default-features = false, features = ["native-tls", "rustls"] } +base64 = { version = "0.21", features = ["alloc"] } +bitflags = { version = "2", default-features = false, features = ["std"] } byteorder = { version = "1", features = ["i128"] } bytes = { version = "1", features = ["serde"] } cc = { version = "1", default-features = false, features = ["parallel"] } @@ -150,7 +153,6 @@ futures-io = { version = "0.3" } futures-sink = { version = "0.3" } futures-task = { version = "0.3" } futures-util = { version = "0.3", features = ["channel", "io", "sink"] } -gimli = { version = "0.27", default-features = false, features = ["read", "std", "write"] } hashbrown-582f2526e08bb6a0 = { package = "hashbrown", version = "0.14", features = ["nightly", "raw"] } hashbrown-594e8ee84c453af0 = { package = "hashbrown", version = "0.13", features = ["raw"] } hashbrown-5ef9efb8ec2df382 = { package = "hashbrown", version = "0.12", features = ["nightly", "raw"] } @@ -168,8 +170,6 @@ lock_api = { version = "0.4", features = ["arc_lock"] } log = { version = "0.4", default-features = false, features = ["std"] } madsim-rdkafka = { git = "https://github.com/madsim-rs/madsim.git", rev = "bb8f063", features = ["cmake-build", "gssapi", "ssl-vendored", "zstd"] } madsim-tokio = { version = "0.2", default-features = false, features = ["fs", "io-util", "macros", "net", "process", "rt", "rt-multi-thread", "signal", "sync", "time", "tracing"] } -memchr = { version = "2" } -miniz_oxide = { version = "0.7", default-features = false, features = ["with-alloc"] } mio = { version = "0.8", features = ["net", "os-ext"] } multimap = { version = "0.8" } nom = { version = "7" } @@ -214,6 +214,8 @@ tokio = { version = "1", features = ["full", "stats", "tracing"] } tokio-postgres = { git = "https://github.com/madsim-rs/rust-postgres.git", rev = "4538cd6", features = ["with-chrono-0_4"] } tokio-stream = { git = "https://github.com/madsim-rs/tokio.git", rev = "fe39bb8e", features = ["fs", "net"] } tokio-util = { version = "0.7", features = ["codec", "io"] } +toml_datetime = { version = "0.6", default-features = false, features = ["serde"] } +toml_edit = { version = "0.19", features = ["serde"] } tonic = { version = "0.9", features = ["gzip", "tls-webpki-roots"] } tower = { version = "0.4", features = ["balance", "buffer", "filter", "limit", "load-shed", "retry", "timeout", "util"] } tracing = { version = "0.1", features = ["log"] }