mirror of
https://github.com/neondatabase/neon.git
synced 2025-12-22 21:59:59 +00:00
This makes it possible for the compiler to validate that a match block matched all PostgreSQL versions we support. ## Problem We did not have a complete picture about which places we had to test against PG versions, and what format these versions were: The full PG version ID format (Major/minor/bugfix `MMmmbb`) as transfered in protocol messages, or only the Major release version (`MM`). This meant type confusion was rampant. With this change, it becomes easier to develop new version-dependent features, by making type and niche confusion impossible. ## Summary of changes Every use of `pg_version` is now typed as either `PgVersionId` (u32, valued in decimal `MMmmbb`) or PgMajorVersion (an enum, with a value for every major version we support, serialized and stored like a u32 with the value of that major version) --------- Co-authored-by: Arpad Müller <arpad-m@users.noreply.github.com>
44 lines
1.1 KiB
TOML
44 lines
1.1 KiB
TOML
[package]
|
|
name = "pageserver_api"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
license.workspace = true
|
|
|
|
[features]
|
|
# See pageserver/Cargo.toml
|
|
testing = ["dep:nix"]
|
|
|
|
[dependencies]
|
|
serde.workspace = true
|
|
serde_with.workspace = true
|
|
serde_json.workspace = true
|
|
const_format.workspace = true
|
|
anyhow.workspace = true
|
|
bytes.workspace = true
|
|
byteorder.workspace = true
|
|
utils.workspace = true
|
|
postgres_ffi_types.workspace = true
|
|
postgres_versioninfo.workspace = true
|
|
enum-map.workspace = true
|
|
strum.workspace = true
|
|
strum_macros.workspace = true
|
|
hex.workspace = true
|
|
humantime.workspace = true
|
|
thiserror.workspace = true
|
|
humantime-serde.workspace = true
|
|
chrono = { workspace = true, features = ["serde"] }
|
|
itertools.workspace = true
|
|
storage_broker.workspace = true
|
|
camino = {workspace = true, features = ["serde1"]}
|
|
remote_storage.workspace = true
|
|
postgres_backend.workspace = true
|
|
nix = {workspace = true, optional = true}
|
|
reqwest.workspace = true
|
|
rand.workspace = true
|
|
tracing-utils.workspace = true
|
|
once_cell.workspace = true
|
|
|
|
[dev-dependencies]
|
|
bincode.workspace = true
|
|
rand.workspace = true
|