diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c8fe4b..de6fbe6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,15 @@ All changes that a user can see are in this file. The version is 0.M.patch, wher ## Unreleased +## 0.1.15 (2026-10-10) + +A patch release on the way to M2. rupg now has all the regular expression functions of PostgreSQL and runs set-returning functions in the target list. Thus the setup makes all the views of `system_views.sql`. + +### Added + +- The regular expression functions that find each match (#227): `regexp_replace`, `regexp_count`, `regexp_instr`, `regexp_substr`, `regexp_matches`, `regexp_split_to_table` and `regexp_split_to_array`. +- Set-returning functions in the target list (#228). The calls run side by side and give nulls for the shorter sets, as the `ProjectSet` node of PostgreSQL does, and a call in a wrong place gives the error of PostgreSQL. The view `pg_stats_ext_exprs` is now in the catalog, with `row_security_active` and the functions of extended statistics. + ## 0.1.14 (2026-10-10) A patch release on the way to M2. rupg now has rows as values and the regular expression functions that give the text of a match. Thus 9 of the 11 functions in SQL of `information_schema` now run. diff --git a/Cargo.lock b/Cargo.lock index 03d6c0f..5c1f2a1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -257,7 +257,7 @@ dependencies = [ [[package]] name = "rupg" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-buffer", "rupg-common", @@ -272,7 +272,7 @@ dependencies = [ [[package]] name = "rupg-analyze" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-catalog", "rupg-common", @@ -283,11 +283,11 @@ dependencies = [ [[package]] name = "rupg-ann" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-buffer" -version = "0.1.14" +version = "0.1.15" dependencies = [ "loom", "rupg-common", @@ -297,41 +297,41 @@ dependencies = [ [[package]] name = "rupg-capi" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-catalog" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-common", ] [[package]] name = "rupg-cli" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg", ] [[package]] name = "rupg-cluster" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-column" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-common" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-contrib" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-crash" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg", "rupg-common", @@ -341,15 +341,15 @@ dependencies = [ [[package]] name = "rupg-encode" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-exchange" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-exec" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-analyze", "rupg-catalog", @@ -362,11 +362,11 @@ dependencies = [ [[package]] name = "rupg-ext" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-file" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-common", "rupg-platform", @@ -374,7 +374,7 @@ dependencies = [ [[package]] name = "rupg-func" -version = "0.1.14" +version = "0.1.15" dependencies = [ "md-5", "rupg-analyze", @@ -387,11 +387,11 @@ dependencies = [ [[package]] name = "rupg-graph" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-hot" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-buffer", "rupg-common", @@ -402,23 +402,23 @@ dependencies = [ [[package]] name = "rupg-import" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-index" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-jit" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-kernels" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-log" -version = "0.1.14" +version = "0.1.15" dependencies = [ "loom", "rupg-buffer", @@ -430,19 +430,19 @@ dependencies = [ [[package]] name = "rupg-opt" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-pgcatalog" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-plan" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-platform" -version = "0.1.14" +version = "0.1.15" dependencies = [ "libc", "rupg-common", @@ -450,15 +450,15 @@ dependencies = [ [[package]] name = "rupg-plpgsql" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-raft" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-server" -version = "0.1.14" +version = "0.1.15" dependencies = [ "ring", "rupg-common", @@ -470,7 +470,7 @@ dependencies = [ [[package]] name = "rupg-session" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-analyze", "rupg-catalog", @@ -486,22 +486,22 @@ dependencies = [ [[package]] name = "rupg-shim" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-sql" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-common", ] [[package]] name = "rupg-summary" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-table" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-common", "rupg-file", @@ -512,7 +512,7 @@ dependencies = [ [[package]] name = "rupg-tree" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-buffer", "rupg-common", @@ -522,7 +522,7 @@ dependencies = [ [[package]] name = "rupg-txn" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-buffer", "rupg-common", @@ -537,18 +537,18 @@ dependencies = [ [[package]] name = "rupg-types" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-common", ] [[package]] name = "rupg-wasm" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-wire" -version = "0.1.14" +version = "0.1.15" dependencies = [ "hmac", "md-5", @@ -822,7 +822,7 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "xtask" -version = "0.1.14" +version = "0.1.15" [[package]] name = "zeroize" diff --git a/Cargo.toml b/Cargo.toml index e791114..d1ce123 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,7 +6,7 @@ exclude = ["fuzz"] [workspace.package] # The version is 0.M.patch, where M is the last milestone that closed. See spec/23-milestones.md section 23.17. -version = "0.1.14" +version = "0.1.15" edition = "2024" # The MSRV is 1.88.0. Safe functions with target_feature need 1.86. core::hint::select_unpredictable needs 1.88. See spec/22-crate-layout.md section 22.11. rust-version = "1.88.0" @@ -20,47 +20,47 @@ readme = "README.md" # One version for the whole workspace. Internal crates are pinned exactly, so a partial publish cannot make a build with mixed versions. `cargo xtask version` changes all the pins together. [workspace.dependencies] -rupg = { version = "=0.1.14", path = "crates/rupg" } -rupg-analyze = { version = "=0.1.14", path = "crates/rupg-analyze" } -rupg-ann = { version = "=0.1.14", path = "crates/rupg-ann" } -rupg-buffer = { version = "=0.1.14", path = "crates/rupg-buffer" } -rupg-capi = { version = "=0.1.14", path = "crates/rupg-capi" } -rupg-catalog = { version = "=0.1.14", path = "crates/rupg-catalog" } -rupg-cli = { version = "=0.1.14", path = "crates/rupg-cli" } -rupg-cluster = { version = "=0.1.14", path = "crates/rupg-cluster" } -rupg-column = { version = "=0.1.14", path = "crates/rupg-column" } -rupg-common = { version = "=0.1.14", path = "crates/rupg-common" } -rupg-contrib = { version = "=0.1.14", path = "crates/rupg-contrib" } -rupg-encode = { version = "=0.1.14", path = "crates/rupg-encode" } -rupg-exchange = { version = "=0.1.14", path = "crates/rupg-exchange" } -rupg-exec = { version = "=0.1.14", path = "crates/rupg-exec" } -rupg-ext = { version = "=0.1.14", path = "crates/rupg-ext" } -rupg-file = { version = "=0.1.14", path = "crates/rupg-file" } -rupg-func = { version = "=0.1.14", path = "crates/rupg-func" } -rupg-graph = { version = "=0.1.14", path = "crates/rupg-graph" } -rupg-hot = { version = "=0.1.14", path = "crates/rupg-hot" } -rupg-import = { version = "=0.1.14", path = "crates/rupg-import" } -rupg-index = { version = "=0.1.14", path = "crates/rupg-index" } -rupg-jit = { version = "=0.1.14", path = "crates/rupg-jit" } -rupg-kernels = { version = "=0.1.14", path = "crates/rupg-kernels" } -rupg-log = { version = "=0.1.14", path = "crates/rupg-log" } -rupg-opt = { version = "=0.1.14", path = "crates/rupg-opt" } -rupg-pgcatalog = { version = "=0.1.14", path = "crates/rupg-pgcatalog" } -rupg-plan = { version = "=0.1.14", path = "crates/rupg-plan" } -rupg-platform = { version = "=0.1.14", path = "crates/rupg-platform" } -rupg-plpgsql = { version = "=0.1.14", path = "crates/rupg-plpgsql" } -rupg-raft = { version = "=0.1.14", path = "crates/rupg-raft" } -rupg-server = { version = "=0.1.14", path = "crates/rupg-server" } -rupg-session = { version = "=0.1.14", path = "crates/rupg-session" } -rupg-shim = { version = "=0.1.14", path = "crates/rupg-shim" } -rupg-sql = { version = "=0.1.14", path = "crates/rupg-sql" } -rupg-summary = { version = "=0.1.14", path = "crates/rupg-summary" } -rupg-table = { version = "=0.1.14", path = "crates/rupg-table" } -rupg-tree = { version = "=0.1.14", path = "crates/rupg-tree" } -rupg-txn = { version = "=0.1.14", path = "crates/rupg-txn" } -rupg-types = { version = "=0.1.14", path = "crates/rupg-types" } -rupg-wasm = { version = "=0.1.14", path = "crates/rupg-wasm" } -rupg-wire = { version = "=0.1.14", path = "crates/rupg-wire" } +rupg = { version = "=0.1.15", path = "crates/rupg" } +rupg-analyze = { version = "=0.1.15", path = "crates/rupg-analyze" } +rupg-ann = { version = "=0.1.15", path = "crates/rupg-ann" } +rupg-buffer = { version = "=0.1.15", path = "crates/rupg-buffer" } +rupg-capi = { version = "=0.1.15", path = "crates/rupg-capi" } +rupg-catalog = { version = "=0.1.15", path = "crates/rupg-catalog" } +rupg-cli = { version = "=0.1.15", path = "crates/rupg-cli" } +rupg-cluster = { version = "=0.1.15", path = "crates/rupg-cluster" } +rupg-column = { version = "=0.1.15", path = "crates/rupg-column" } +rupg-common = { version = "=0.1.15", path = "crates/rupg-common" } +rupg-contrib = { version = "=0.1.15", path = "crates/rupg-contrib" } +rupg-encode = { version = "=0.1.15", path = "crates/rupg-encode" } +rupg-exchange = { version = "=0.1.15", path = "crates/rupg-exchange" } +rupg-exec = { version = "=0.1.15", path = "crates/rupg-exec" } +rupg-ext = { version = "=0.1.15", path = "crates/rupg-ext" } +rupg-file = { version = "=0.1.15", path = "crates/rupg-file" } +rupg-func = { version = "=0.1.15", path = "crates/rupg-func" } +rupg-graph = { version = "=0.1.15", path = "crates/rupg-graph" } +rupg-hot = { version = "=0.1.15", path = "crates/rupg-hot" } +rupg-import = { version = "=0.1.15", path = "crates/rupg-import" } +rupg-index = { version = "=0.1.15", path = "crates/rupg-index" } +rupg-jit = { version = "=0.1.15", path = "crates/rupg-jit" } +rupg-kernels = { version = "=0.1.15", path = "crates/rupg-kernels" } +rupg-log = { version = "=0.1.15", path = "crates/rupg-log" } +rupg-opt = { version = "=0.1.15", path = "crates/rupg-opt" } +rupg-pgcatalog = { version = "=0.1.15", path = "crates/rupg-pgcatalog" } +rupg-plan = { version = "=0.1.15", path = "crates/rupg-plan" } +rupg-platform = { version = "=0.1.15", path = "crates/rupg-platform" } +rupg-plpgsql = { version = "=0.1.15", path = "crates/rupg-plpgsql" } +rupg-raft = { version = "=0.1.15", path = "crates/rupg-raft" } +rupg-server = { version = "=0.1.15", path = "crates/rupg-server" } +rupg-session = { version = "=0.1.15", path = "crates/rupg-session" } +rupg-shim = { version = "=0.1.15", path = "crates/rupg-shim" } +rupg-sql = { version = "=0.1.15", path = "crates/rupg-sql" } +rupg-summary = { version = "=0.1.15", path = "crates/rupg-summary" } +rupg-table = { version = "=0.1.15", path = "crates/rupg-table" } +rupg-tree = { version = "=0.1.15", path = "crates/rupg-tree" } +rupg-txn = { version = "=0.1.15", path = "crates/rupg-txn" } +rupg-types = { version = "=0.1.15", path = "crates/rupg-types" } +rupg-wasm = { version = "=0.1.15", path = "crates/rupg-wasm" } +rupg-wire = { version = "=0.1.15", path = "crates/rupg-wire" } # Outside crates. Each one is in the table of spec/22-crate-layout.md section 22.5. # libc: the system calls of rupg-platform on Unix, for example F_FULLFSYNC and getentropy. diff --git a/fuzz/Cargo.lock b/fuzz/Cargo.lock index fe5db81..dcb21db 100644 --- a/fuzz/Cargo.lock +++ b/fuzz/Cargo.lock @@ -207,7 +207,7 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rupg" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-buffer", "rupg-common", @@ -221,7 +221,7 @@ dependencies = [ [[package]] name = "rupg-analyze" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-catalog", "rupg-common", @@ -232,7 +232,7 @@ dependencies = [ [[package]] name = "rupg-buffer" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-common", "rupg-file", @@ -241,18 +241,18 @@ dependencies = [ [[package]] name = "rupg-catalog" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-common", ] [[package]] name = "rupg-common" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-file" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-common", "rupg-platform", @@ -260,7 +260,7 @@ dependencies = [ [[package]] name = "rupg-func" -version = "0.1.14" +version = "0.1.15" dependencies = [ "md-5", "rupg-analyze", @@ -290,7 +290,7 @@ dependencies = [ [[package]] name = "rupg-hot" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-common", "rupg-file", @@ -299,11 +299,11 @@ dependencies = [ [[package]] name = "rupg-kernels" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-log" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-buffer", "rupg-common", @@ -313,11 +313,11 @@ dependencies = [ [[package]] name = "rupg-pgcatalog" -version = "0.1.14" +version = "0.1.15" [[package]] name = "rupg-platform" -version = "0.1.14" +version = "0.1.15" dependencies = [ "libc", "rupg-common", @@ -325,14 +325,14 @@ dependencies = [ [[package]] name = "rupg-sql" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-common", ] [[package]] name = "rupg-table" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-common", "rupg-file", @@ -342,7 +342,7 @@ dependencies = [ [[package]] name = "rupg-tree" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-common", "rupg-file", @@ -350,7 +350,7 @@ dependencies = [ [[package]] name = "rupg-txn" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-buffer", "rupg-common", @@ -364,14 +364,14 @@ dependencies = [ [[package]] name = "rupg-types" -version = "0.1.14" +version = "0.1.15" dependencies = [ "rupg-common", ] [[package]] name = "rupg-wire" -version = "0.1.14" +version = "0.1.15" dependencies = [ "hmac", "md-5",