mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-07 13:32:57 +00:00
- Add support for splitting async postgres_backend into read and write halfes. Safekeeper needs this for bidirectional streams. To this end, encapsulate reading-writing postgres messages to framed.rs with split support without any additional changes (relying on BufRead for reading and BytesMut out buffer for writing). - Use async postgres_backend throughout safekeeper (and in proxy auth link part). - In both safekeeper COPY streams, do read-write from the same thread/task with select! for easier error handling. - Tidy up finishing CopyBoth streams in safekeeper sending and receiving WAL -- join split parts back catching errors from them before returning. Initially I hoped to do that read-write without split at all, through polling IO: https://github.com/neondatabase/neon/pull/3522 However that turned out to be more complicated than I initially expected due to 1) borrow checking and 2) anon Future types. 1) required Rc<Refcell<...>> which is Send construct just to satisfy the checker; 2) can be workaround with transmute. But this is so messy that I decided to leave split.
29 lines
1.3 KiB
Bash
Executable File
29 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# If you save this in your path under the name "cargo-zclippy" (or whatever
|
||
# name you like), then you can run it as "cargo zclippy" from the shell prompt.
|
||
#
|
||
# If your text editor has rust-analyzer integration, you can also use this new
|
||
# command as a replacement for "cargo check" or "cargo clippy" and see clippy
|
||
# warnings and errors right in the editor.
|
||
# In vscode, this setting is Rust-analyzer>Check On Save:Command
|
||
|
||
|
||
# Not every feature is supported in macOS builds. Avoid running regular linting
|
||
# script that checks every feature.
|
||
#
|
||
# manual-range-contains wants
|
||
# !(8..=MAX_STARTUP_PACKET_LENGTH).contains(&len)
|
||
# instead of
|
||
# len < 4 || len > MAX_STARTUP_PACKET_LENGTH
|
||
# , let's disagree.
|
||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||
# no extra features to test currently, add more here when needed
|
||
cargo clippy --locked --all --all-targets --features testing -- -A unknown_lints -A clippy::manual-range-contains -D warnings
|
||
else
|
||
# * `-A unknown_lints` – do not warn about unknown lint suppressions
|
||
# that people with newer toolchains might use
|
||
# * `-D warnings` - fail on any warnings (`cargo` returns non-zero exit status)
|
||
cargo clippy --locked --all --all-targets --all-features -- -A unknown_lints -A clippy::manual-range-contains -D warnings
|
||
fi
|