Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
338 commits
Select commit Hold shift + click to select a range
5257cec
prop: add jsonb containment and key-existence laws property tests (js…
gburd Oct 13, 2026
6f1175b
prop: add jsonb delete operators and relationships property tests (js…
gburd Oct 13, 2026
c9e8c3f
prop: add jsonb existence operators ?/?|/?& property tests (jsonbexists)
gburd Oct 13, 2026
db3f805
prop: add jsonb concatenation and shallow-merge semantics property te…
gburd Oct 13, 2026
5adccf3
prop: add jsonb array element access, length, and concat property tes…
gburd Oct 13, 2026
deec19c
prop: add jsonb value round-trips through text and pretty property te…
gburd Oct 13, 2026
293e4f4
prop: add nested jsonb path navigation (#>, #>>) property tests (json…
gburd Oct 13, 2026
d230111
prop: add jsonbuild property tests
gburd Oct 13, 2026
0b830f5
prop: add jsonb_build_object/array construction property tests (jsonc…
gburd Oct 13, 2026
e384af4
prop: add jsontext property tests
gburd Oct 13, 2026
e279a1f
prop: add JSON formatting, dedup, and normalization property tests (j…
gburd Oct 13, 2026
6fd01bd
prop: add jsonpath property tests
gburd Oct 13, 2026
e077a74
prop: add jsonb_path_query/exists/match operators property tests (jso…
gburd Oct 13, 2026
58374d8
prop: add jsonpath arithmetic and filter methods property tests (json…
gburd Oct 13, 2026
7b0ef7b
prop: add jsonb_each, object_keys, and element round-trips property t…
gburd Oct 13, 2026
d87e8d0
prop: add array property tests
gburd Oct 13, 2026
ca705a4
prop: add array concat, position, remove, and round-trips property te…
gburd Oct 13, 2026
4095c18
prop: add arrayslice property tests
gburd Oct 13, 2026
d069ac5
prop: add array containment, overlap, and comparison property tests (…
gburd Oct 13, 2026
e778ba5
prop: add ARRAY constructor, fill, and dimensions property tests (arr…
gburd Oct 13, 2026
da1244c
prop: add array_positions, trim_array, and reduction property tests (…
gburd Oct 13, 2026
637276a
prop: add array sorting via unnest and array_agg property tests (arra…
gburd Oct 13, 2026
f47e9f3
prop: add arrays with NULL elements and NULL-aware ops property tests…
gburd Oct 13, 2026
ee17998
prop: add = ANY / = ALL over generated arrays property tests (anyall)
gburd Oct 13, 2026
cbac348
prop: add IN/NOT IN/ANY/ALL consistency and NULL semantics property t…
gburd Oct 13, 2026
563d775
prop: add range property tests
gburd Oct 13, 2026
b82f5f4
prop: add int4range merge, difference, and adjacency property tests (…
gburd Oct 13, 2026
62b0480
prop: add range_agg and multirange aggregation property tests (rangeagg)
gburd Oct 13, 2026
4dea0e4
prop: add multirange property tests
gburd Oct 13, 2026
f23cd92
prop: add inet property tests
gburd Oct 13, 2026
05d2b93
prop: add inetarith property tests
gburd Oct 13, 2026
c1e0f79
prop: add inet/cidr host, network, and masklen property tests (networ…
gburd Oct 13, 2026
47f067e
prop: add cidr normalization and network containment property tests (…
gburd Oct 13, 2026
caec585
prop: add IPv6 inet family, masklen, and containment property tests (…
gburd Oct 13, 2026
38b899f
prop: add macaddr property tests
gburd Oct 13, 2026
b63a7d0
prop: add macaddr8 round-trip, trunc, and conversion property tests (…
gburd Oct 13, 2026
f6d5ba4
prop: add tsquery property tests
gburd Oct 13, 2026
ee60aa8
prop: add tsvector property tests
gburd Oct 13, 2026
1fa4095
prop: add tsvector concat, setweight, strip, and delete property test…
gburd Oct 13, 2026
f062e56
prop: add tsquery boolean laws and matching property tests (tsquerylaw)
gburd Oct 13, 2026
79fe50e
prop: add full-text ranking bounds and determinism property tests (ts…
gburd Oct 13, 2026
e1f6133
prop: add date property tests
gburd Oct 13, 2026
3dea9f5
prop: add date arithmetic and field extraction property tests (datepa…
gburd Oct 13, 2026
8ccce03
prop: add to_char/to_date for dates property tests (datefmt)
gburd Oct 13, 2026
7c8812a
prop: add date/timestamp/timestamptz cast relationships property test…
gburd Oct 13, 2026
f91254f
prop: add date_trunc and date_part across units property tests (datet…
gburd Oct 13, 2026
8d9c637
prop: add time and timestamp round-trips and arithmetic property test…
gburd Oct 13, 2026
dddc3a8
prop: add time field extraction and arithmetic property tests (timeex…
gburd Oct 13, 2026
2e15de6
prop: add timestamptz property tests
gburd Oct 13, 2026
762481f
prop: add timestamptz arithmetic and timezone conversion property tes…
gburd Oct 13, 2026
f2bc1a0
prop: add timezone conversion identities property tests (tzconv)
gburd Oct 13, 2026
0d1e177
prop: add interval property tests
gburd Oct 13, 2026
db72ac6
prop: add interval field extraction and justification property tests …
gburd Oct 13, 2026
b0a9a0c
prop: add interval comparison and arithmetic property tests (interval…
gburd Oct 13, 2026
23d86c2
prop: add interval text and ISO 8601 I/O round-trips property tests (…
gburd Oct 13, 2026
e469232
prop: add tochar property tests
gburd Oct 13, 2026
2933ae6
prop: add to_char/to_number/to_date formatting round-trips property t…
gburd Oct 13, 2026
e934aef
prop: add miscellaneous scalar function contracts property tests (sca…
gburd Oct 13, 2026
5997b1c
prop: add hashfn property tests
gburd Oct 13, 2026
ede974a
prop: add hash-function determinism and consistency property tests (h…
gburd Oct 13, 2026
0cb936b
prop: add pglsn property tests
gburd Oct 13, 2026
4d71d5d
prop: add width_bucket property tests
gburd Oct 13, 2026
5be2687
prop: add genseries property tests
gburd Oct 13, 2026
395c1a6
prop: add generate_series over timestamp/numeric and subscripts prope…
gburd Oct 13, 2026
78df556
prop: add cross-type cast chains and text round-trips property tests …
gburd Oct 13, 2026
27a09b3
prop: add || operator across text/array/jsonb/bytea property tests (c…
gburd Oct 13, 2026
dcbf856
prop: add type coercion and operator resolution property tests (coerce)
gburd Oct 13, 2026
3f21fa5
prop: add COLLATE clause ordering determinism property tests (collate)
gburd Oct 13, 2026
233a759
prop: add text comparison and ordering under C collation property tes…
gburd Oct 13, 2026
c341056
prop: add json vs jsonb normalization differences property tests (jso…
gburd Oct 13, 2026
8f8d14a
prop: add geopoint property tests
gburd Oct 13, 2026
42e1fc7
prop: add line-segment and circle geometry property tests (geoseg)
gburd Oct 13, 2026
1f92e77
prop: add geometric box and polygon operation property tests (boxops)
gburd Oct 13, 2026
1b74a50
prop: add XML construction and escaping property tests (xmlfmt)
gburd Oct 13, 2026
939ca76
prop: add aggregate property tests
gburd Oct 13, 2026
2ebf564
prop: add hash vs sorted aggregate equivalence property tests (aggstr…
gburd Oct 13, 2026
fb2d2a8
prop: add ordered-aggregate determinism and sorting property tests (a…
gburd Oct 13, 2026
0897cc1
prop: add DISTINCT-in-aggregate relationships property tests (aggdist…
gburd Oct 13, 2026
ffe9998
prop: add aggregate ALL/DISTINCT and GROUP BY consistency property te…
gburd Oct 13, 2026
bd834ec
prop: add EVERY/SOME, FILTER, and grouped aggregates property tests (…
gburd Oct 13, 2026
dd5d6e0
prop: add min/max/bool/bit aggregate identities property tests (minma…
gburd Oct 13, 2026
fbbb41a
prop: add ordered-set and boolean/bit aggregates property tests (ordagg)
gburd Oct 13, 2026
6456965
prop: add percentile_cont/disc and mode ordered-set aggregates proper…
gburd Oct 13, 2026
18a94c0
prop: add aggregate FILTER vs CASE and DISTINCT-in-agg property tests…
gburd Oct 13, 2026
506db6d
prop: add count/sum FILTER and boolean aggregation property tests (co…
gburd Oct 13, 2026
de9fc3f
prop: add string_agg and array_agg aggregation property tests (string…
gburd Oct 13, 2026
337e3e3
prop: add string_agg/array_to_string consistency property tests (strc…
gburd Oct 13, 2026
5b4cf04
prop: add JSON aggregate array and object building property tests (js…
gburd Oct 13, 2026
a31dde1
prop: add json/jsonb aggregate ordering and filtering property tests …
gburd Oct 13, 2026
5111eaf
prop: add jsonb_object_agg over a table property tests (jsonobjectagg)
gburd Oct 13, 2026
22a820e
prop: add window property tests
gburd Oct 13, 2026
9337b5a
prop: add window frame and running-aggregate property tests (windowfr…
gburd Oct 13, 2026
7a00dbd
prop: add window ranking function relationships property tests (windo…
gburd Oct 13, 2026
2a3279e
prop: add window frame EXCLUDE and GROUPS mode property tests (window…
gburd Oct 13, 2026
1cf9817
prop: add window aggregate vs GROUP BY equivalence property tests (wi…
gburd Oct 13, 2026
8edd081
prop: add window navigation lag/lead/first/last/nth_value property te…
gburd Oct 13, 2026
ac10cf0
prop: add window running/filter aggregate bounds property tests (wind…
gburd Oct 13, 2026
c43db9e
prop: add HAVING, GROUP BY expression, and agg equivalence property t…
gburd Oct 13, 2026
5ba2e81
prop: add GROUPING SETS/ROLLUP/CUBE vs UNION ALL property tests (grou…
gburd Oct 13, 2026
9679646
prop: add GROUPING SETS with FILTER and grouping_id property tests (g…
gburd Oct 13, 2026
c68c4e3
prop: add multi-key GROUP BY hash vs sort equivalence property tests …
gburd Oct 13, 2026
bfe5441
prop: add HAVING clause filtering semantics property tests (havingcla…
gburd Oct 13, 2026
5644d76
prop: add ROLLUP/CUBE grand-total and subtotal relationships property…
gburd Oct 13, 2026
98ce869
prop: add partprune property tests
gburd Oct 13, 2026
d840d77
prop: add nbtree property tests
gburd Oct 13, 2026
84446b2
prop: add index vs bitmap vs sequential scan equivalence property tes…
gburd Oct 13, 2026
084e97d
prop: add GIN/GiST/partial/expression index vs seqscan equivalence pr…
gburd Oct 13, 2026
ee5b8b4
prop: add hash/merge/nestloop join method equivalence property tests …
gburd Oct 13, 2026
49dadd2
prop: add outer-join identity and reordering property tests (outerjoin)
gburd Oct 13, 2026
a707067
prop: add join cardinality and identity-join laws property tests (joi…
gburd Oct 13, 2026
f8615b5
prop: add self-join cardinality and method equivalence property tests…
gburd Oct 13, 2026
d01dd5d
prop: add USING/NATURAL/ON join equivalence property tests (jointypes)
gburd Oct 13, 2026
4680072
prop: add semi-join/anti-join and EXISTS/IN equivalence property test…
gburd Oct 13, 2026
aac8579
prop: add setops property tests
gburd Oct 13, 2026
694f651
prop: add hashed vs sorted set-operation equivalence property tests (…
gburd Oct 13, 2026
adb60b9
prop: add EXCEPT/INTERSECT vs semijoin/antijoin property tests (excep…
gburd Oct 13, 2026
abc4a91
prop: add UNION ALL multiplicity and MergeAppend ordering property te…
gburd Oct 13, 2026
14765bf
prop: add subquery pull-up and flattening equivalence property tests …
gburd Oct 13, 2026
1642fc9
prop: add scalar subquery single-row and NULL semantics property test…
gburd Oct 13, 2026
c203db0
prop: add correlated-subquery decorrelation equivalence property test…
gburd Oct 13, 2026
4bdf348
prop: add CTE inlining, materialization, and recursion property tests…
gburd Oct 13, 2026
36c8c90
prop: add recursive CTE forest traversal and closure property tests (…
gburd Oct 13, 2026
071b1f6
prop: add data-modifying CTE snapshot and chaining property tests (dm…
gburd Oct 13, 2026
0978a59
prop: add LATERAL join and set-returning-function property tests (lat…
gburd Oct 13, 2026
ebc45c3
prop: add VALUES, unnest, and row-source equivalence property tests (…
gburd Oct 13, 2026
f0d7e63
prop: add set-returning function position equivalence property tests …
gburd Oct 13, 2026
8fe20b9
prop: add unnest in joins and array expansion property tests (unnestj…
gburd Oct 13, 2026
5aded63
prop: add DISTINCT, DISTINCT ON, and GROUP BY equivalence property te…
gburd Oct 13, 2026
1084c1d
prop: add DISTINCT ON row-selection semantics property tests (distinc…
gburd Oct 13, 2026
dfbe3f6
prop: add ORDER BY, LIMIT, OFFSET, and top-N property tests (sortlimit)
gburd Oct 13, 2026
23f41a3
prop: add multi-key sort and incremental-sort equivalence property te…
gburd Oct 13, 2026
a37985f
prop: add ORDER BY NULLS ordering and sort/index equivalence property…
gburd Oct 13, 2026
13164f4
prop: add FETCH WITH TIES, LIMIT, and OFFSET property tests (fetchties)
gburd Oct 13, 2026
3129639
prop: add OFFSET/LIMIT and keyset pagination equivalence property tes…
gburd Oct 13, 2026
f763fcf
prop: add predicate placement and pushdown equivalence property tests…
gburd Oct 13, 2026
84717e2
prop: add memory-bounded spill-path result equivalence property tests…
gburd Oct 13, 2026
5a0a22e
prop: add TABLESAMPLE subset and determinism property tests (tablesam…
gburd Oct 13, 2026
b8a2019
prop: add row-value comparison and IS DISTINCT property tests (rowcom…
gburd Oct 13, 2026
8433272
prop: add MVCC snapshot and transaction visibility property tests (mvcc)
gburd Oct 13, 2026
3281788
prop: add savepoint and subtransaction rollback property tests (savep…
gburd Oct 13, 2026
7b29004
prop: add RETURNING, ON CONFLICT, and MERGE property tests (returning)
gburd Oct 13, 2026
aaf404b
prop: add INSERT ON CONFLICT DO NOTHING/UPDATE semantics property tes…
gburd Oct 13, 2026
2037657
prop: add MERGE command matched/not-matched semantics property tests …
gburd Oct 13, 2026
d5fcf3d
prop: add UPDATE SET, FROM-join, and RETURNING semantics property tes…
gburd Oct 13, 2026
fa7fe39
prop: add column DEFAULT, generated columns, NOT NULL property tests …
gburd Oct 13, 2026
6b8f3c7
prop: add CHECK and domain constraint enforcement property tests (che…
gburd Oct 13, 2026
e97cd32
prop: add FOREIGN KEY enforcement and cascade actions property tests …
gburd Oct 13, 2026
22154cf
prop: add views and the rule-system rewrite property tests (views)
gburd Oct 13, 2026
146ff9c
prop: add count(*) vs count(col) vs count(DISTINCT) property tests (c…
gburd Oct 13, 2026
e6bfd21
prop: add hstore property tests
gburd Oct 13, 2026
62f3e23
prop: add hstore slice, delete, akeys, and json round-trip property t…
gburd Oct 13, 2026
b188505
prop: add ltree property tests
gburd Oct 13, 2026
7f6beb7
prop: add ltree subpath, lquery, and ancestor operators property test…
gburd Oct 13, 2026
d658ac8
prop: add citext property tests
gburd Oct 13, 2026
c087adf
prop: add citext LIKE, grouping, and ordering property tests (citext2)
gburd Oct 13, 2026
58e6f54
prop: add cube property tests
gburd Oct 13, 2026
bdbbe4d
prop: add cube distance metric axioms property tests (cubedist)
gburd Oct 13, 2026
c25dc17
prop: add seg interval containment and overlap property tests (seg)
gburd Oct 13, 2026
5a722fc
prop: add intarray property tests
gburd Oct 13, 2026
98292ee
prop: add intarray count, set ops, and sort/uniq property tests (inta…
gburd Oct 13, 2026
dcf4be0
prop: add pgtrgm property tests
gburd Oct 13, 2026
1b5547d
prop: add pg_trgm word similarity and show_trgm property tests (pgtrgm2)
gburd Oct 13, 2026
76954a5
prop: add fuzzystrmatch levenshtein metric axioms property tests (fuz…
gburd Oct 13, 2026
df91634
prop: add unaccent diacritic stripping property tests (unaccent)
gburd Oct 13, 2026
f89e1f6
prop: add isn ISBN/EAN13 standard numbers property tests (isn)
gburd Oct 13, 2026
e470467
prop: add SQL query-generation areas (TLP, NoREC, plan advice)
gburd Oct 13, 2026
1691130
prop: add TLP-aggregate, TLP-distinct, cardinality, and PQS query areas
gburd Oct 13, 2026
dd6baa0
prop: extend NoREC and plan-advice query areas
gburd Oct 13, 2026
7b3579d
prop: steer a merge join in the plan-advice area, measure branch cove…
gburd Oct 13, 2026
5e9cfcb
prop: add extension points and a schema-driven query generator
gburd Oct 13, 2026
09b996e
prop: add citext worked example for the extension points
gburd Oct 13, 2026
f3f24d2
prop: exclude the harness headers from headerscheck/cpluspluscheck
gburd Oct 13, 2026
565dc25
prop: add a multi-table database model to the query generator
gburd Oct 13, 2026
af5aef2
prop: add query_multi area over the multi-table database
gburd Oct 13, 2026
9787db2
prop: fix to_char numeric-scale property for rounding carry
gburd Oct 13, 2026
4ffd327
prop: add TOAST storage modes, triggers, and a deep query builder
gburd Oct 13, 2026
2b59973
prop: add query_deep area (TLP, NoREC, CTE-inlining, const-fold, unnest)
gburd Oct 13, 2026
6c12339
prop: select the generator profile via PG_PROP_DEEP
gburd Oct 13, 2026
d136960
prop: add a trait-based index access-method test harness
gburd Oct 14, 2026
72308bf
prop: add a trait-based table access-method test harness
gburd Oct 14, 2026
f230cf2
prop: wire up the AM trait areas and document the design
gburd Oct 14, 2026
c8264b8
prop: quiet trait_unique DROP notice; document the coverage lift
gburd Oct 14, 2026
2fa6efd
prop: decouple from TAP; add skip and require-extension framework
gburd Oct 14, 2026
b102572
prop: add procedural-language differential area (pl_langs)
gburd Oct 14, 2026
2114010
prop: add integrity-oracle area over amcheck/pg_visibility/pgstattuple
gburd Oct 14, 2026
02a5f58
prop: drive bloom through the index trait harness; wire areas; docs
gburd Oct 14, 2026
8653699
prop: retarget pl_langs at the procedural-language / SQL boundary
gburd Oct 14, 2026
00128c6
prop: add constraint-enforcement area (constraints)
gburd Oct 14, 2026
1d9cded
prop: add transaction-isolation area (isolation)
gburd Oct 14, 2026
1f71f7d
prop: wire constraints/isolation areas; fix compiler warnings; docs
gburd Oct 14, 2026
0ecf8fa
prop: deepen integrity area (GIN amcheck, heapallindexed, pageinspect)
gburd Oct 14, 2026
a317889
prop: deepen isolation area (predicate-lock phantom, row-lock timeout)
gburd Oct 14, 2026
fe6f47c
prop: add contrib-breadth area (tablefunc, TSMs, walinspect, dblink)
gburd Oct 14, 2026
ee3f2d6
prop: add window-function and grouping-sets area (query_window)
gburd Oct 15, 2026
43508ac
prop: add outer-join-order invariant to the plan-advice area
gburd Oct 15, 2026
4e13193
prop: add SP-GiST AM-specific area; wire window/spgist; docs
gburd Oct 15, 2026
bf44f75
prop: add async statements and server-side row digest to the harness
gburd Oct 15, 2026
d258342
prop: compare deep row oracles by server-side digest
gburd Oct 15, 2026
2196b1e
prop: add deadlock-victim-selection property (deadlock_one_victim)
gburd Oct 15, 2026
f3ebb1f
prop: add authorization and multi-backend concurrency areas
gburd Oct 15, 2026
6e93940
prop: add GEQO equivalence property
gburd Oct 15, 2026
ec01810
prop: make the query generators adversarial, not uniform-small
gburd Oct 16, 2026
013c652
prop: add full-configuration differential oracle (query_diff)
gburd Oct 16, 2026
9b550d9
prop: abort the run and save the statement when a backend crashes
gburd Oct 16, 2026
c6daf29
prop: generate the plan shapes the planner's fragile code acts on
gburd Oct 16, 2026
0ffacf6
prop: widen the differential oracle to the planner's proof-based rewr…
gburd Oct 16, 2026
db837da
prop: keep the expression index bigint-safe against INT_MAX data
gburd Oct 16, 2026
7bc62a5
prop: suppress the TooSlow health check in deep-hunt mode only
gburd Oct 17, 2026
bd3ebc3
prop: add a stateful model test of the write path (dml_model)
gburd Oct 17, 2026
71750b4
prop: make the differential oracle fail on malformed queries
gburd Oct 17, 2026
8f80aa3
prop: give deep-join predicates the nullability-sensitive forms
gburd Oct 17, 2026
14d1f9b
prop: add a LATERAL UNION ALL member over a sorted uncorrelated arm
gburd Oct 17, 2026
427a064
prop: never walk the join chain through an fk the member does not expose
gburd Oct 17, 2026
28ddb74
prop: check that system columns identify the row (syscol)
gburd Oct 17, 2026
0816e39
prop: check case-insensitive matching across encodings and locales (c…
gburd Oct 17, 2026
f7d8127
prop: do not drop failure messages longer than the initial buffer
gburd Oct 17, 2026
d392e41
prop: properties for open planner wrong-results fixes (cf_planner)
gburd Oct 17, 2026
7822275
prop: properties for open DDL / partitioning / FK / RLS fixes (cf_ddl2)
gburd Oct 17, 2026
63b93af
prop: reference-model properties for open type/function fixes (cf_types)
gburd Oct 17, 2026
ae02447
prop: index-scan-equals-seqscan properties for open index AM fixes (c…
gburd Oct 17, 2026
866c90f
prop: no-internal-error and model properties for open executor fixes …
gburd Oct 17, 2026
421ab51
prop: give FULL JOIN only joinable conditions in the JsonExpr pull-up…
gburd Oct 17, 2026
64c5d44
prop: add pg_trgm GiST union and SET STORAGE properties (CF 7385, 7413)
gburd Oct 18, 2026
3401c76
prop: stateful ALTER TABLE / ALTER TYPE properties (cf_ddl)
gburd Oct 18, 2026
e78a0e0
prop: six more executor-error properties (cf_exec)
gburd Oct 18, 2026
c4b55de
prop: deparse round-trip properties for views and rules (cf_deparse)
gburd Oct 18, 2026
10e6d05
prop: statistics-versus-model properties (cf_stats)
gburd Oct 18, 2026
2c3efd2
prop: two-session race properties (cf_race)
gburd Oct 18, 2026
8fe13e1
prop: slot, plan-cache and decoding properties (cf_exec)
gburd Oct 18, 2026
09aa32b
prop: fast-forward snapshot property for user catalog tables (cf_exec)
gburd Oct 18, 2026
4c41011
prop: forced-interleaving deadlock property for ATTACH PARTITION (cf_…
gburd Oct 18, 2026
25e04bd
prop: pageinspect on corrupted page images must not crash (cf_exec)
gburd Oct 18, 2026
d072eb2
prop: encoding verifier and text-producer properties (cf_encoding)
gburd Oct 18, 2026
a379fa3
prop: composite values read after ALTER ATTRIBUTE TYPE (cf_ddl)
gburd Oct 18, 2026
bb4827a
prop: correct the boolean DEFAULT reference in sqljson_bool_default_i…
gburd Oct 18, 2026
1296257
prop: freeze the per-type scalar areas; add a CF retirement check
gburd Oct 19, 2026
2ab0336
prop: widen the query generator (FULL/RIGHT joins, nondeterministic c…
gburd Oct 19, 2026
01f82aa
prop: set-operation and empty-arm differential properties (query_diff)
gburd Oct 19, 2026
97bb88f
prop: note the deep multi-table generator is not reproducible for a seed
gburd Oct 19, 2026
e1356c1
prop: heap rewrite / index build over vacuumed toast of a held tuple …
gburd Oct 20, 2026
89ddc3f
prop: deep-generator reproducibility (PRNG) and patch-biased generation
gburd Oct 23, 2026
3d04381
prop: make the joins bias boost non-lateral member shapes too
gburd Oct 23, 2026
82446d6
prop: sharpen cf-features.py after testing it on 12 real CF entries
gburd Oct 23, 2026
dd94cfd
prop: soften the deep-generator reproducibility caveat (041 does not …
gburd Oct 23, 2026
c76c8df
prop: UPDATE preserves CHECK constraints (vet CF 6270)
gburd Oct 23, 2026
10ebe03
prop: UPDATE preserves CHECK over generated columns (vet CF 6270)
gburd Oct 23, 2026
f716427
prop: XMLNAMESPACES URI survives deparse (vet CF 7492)
gburd Oct 24, 2026
bba318d
prop: fail a property that runs zero non-vacuous cases
gburd Oct 24, 2026
a483394
prop: cf-features.py --classify emits a vettability verdict
gburd Oct 24, 2026
1aae059
prop: default the deep-generator PRNG on under a deep profile
gburd Oct 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 18 additions & 0 deletions .github/workflows/fork-ocr-model-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Weekly check for a newer Claude Opus on Bedrock; opens/updates one issue here
# when OCR_BEDROCK_MODEL is behind. Notify-only (GITHUB_TOKEN cannot write
# Actions variables). Logic lives in gburd/ci-workflows.

name: OCR model self-check

on:
schedule:
- cron: '0 12 * * 1' # Mondays 12:00 UTC
workflow_dispatch:

jobs:
check:
uses: gburd/ci-workflows/.github/workflows/ocr-model-check.yml@v1
with:
aws_role_arn: ${{ vars.AWS_ROLE_ARN }}
aws_region: ${{ vars.AWS_REGION }}
bedrock_model: ${{ vars.OCR_BEDROCK_MODEL }}
43 changes: 43 additions & 0 deletions .github/workflows/fork-ocr-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# AI PR review (Claude Opus on Bedrock). Logic and review rules live in
# gburd/ci-workflows so this fork's master carries a stub instead of ~1000
# lines that have to be rebased onto upstream forever.
#
# Needs repo variables AWS_ROLE_ARN, AWS_REGION, OCR_BEDROCK_MODEL. Auth is
# GitHub OIDC; no static AWS keys. See the ci-workflows README.

name: OCR AI Review

on:
pull_request:
# Note: no draft filter — drafts are reviewed too.
types: [opened, synchronize, reopened, ready_for_review]
issue_comment:
types: [created]
workflow_dispatch:
inputs:
pr_number:
description: 'PR number to review'
required: true
type: number

# One review per PR; cancel superseded runs to save Bedrock spend.
concurrency:
group: ocr-review-${{ github.event.pull_request.number || github.event.issue.number || github.event.inputs.pr_number }}
cancel-in-progress: true

jobs:
review:
# Comment events only when the comment is on a PR and starts with the
# trigger keyword; PR events and manual dispatch always.
if: |
github.event_name == 'pull_request' ||
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'issue_comment' && github.event.issue.pull_request &&
(startsWith(github.event.comment.body, '/open-code-review') ||
startsWith(github.event.comment.body, '@open-code-review') ||
startsWith(github.event.comment.body, '/pg-history')))
uses: gburd/ci-workflows/.github/workflows/ocr-review.yml@v1
with:
aws_role_arn: ${{ vars.AWS_ROLE_ARN }}
aws_region: ${{ vars.AWS_REGION }}
bedrock_model: ${{ vars.OCR_BEDROCK_MODEL }}
48 changes: 48 additions & 0 deletions .github/workflows/fork-sync-upstream.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Keep this fork's master rebased on postgres/postgres master, carrying only
# the fork-owned CI stubs (.github/workflows/fork-*.yml). The workflows they
# call, and the OCR review rules, live in gburd/ci-workflows.
#
# Requires the SYNC_TOKEN secret: a PAT with repo+workflow scope. The default
# GITHUB_TOKEN is not allowed to push commits that touch .github/workflows/,
# and every commit we carry does.

name: Sync from upstream

on:
schedule:
- cron: '17 */3 * * *'
workflow_dispatch:

concurrency:
group: fork-sync-upstream

permissions:
contents: read

jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
token: ${{ secrets.SYNC_TOKEN }}

- name: Rebase master onto upstream
run: |
set -euo pipefail
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git remote add upstream https://github.com/postgres/postgres.git
git fetch --no-tags upstream master

# Master carries fork CI only. Anything else means work landed here
# that belongs on a branch; force-rebasing it on a timer would be wrong.
if git diff --name-only upstream/master...HEAD |
grep -v '^\.github/workflows/fork-'; then
echo "::error::master carries non-CI changes (listed above); move them to a branch"
exit 1
fi

git rebase upstream/master
git push --force-with-lease
28 changes: 28 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,22 @@ PGAC_ARG_BOOL(enable, injection-points, no, [enable injection points (for testin
[AC_DEFINE([USE_INJECTION_POINTS], 1, [Define to 1 to build with injection points. (--enable-injection-points)])])
AC_SUBST(enable_injection_points)

#
# Property-based tests (src/test/prop), built on libhegel. TAP is NOT
# required: pg_prop is a standalone C program that emits TAP output and runs on
# its own. When --enable-tap-tests is also given, the Perl drivers are run as
# part of the TAP suite; otherwise the binary is still built (run it directly).
# The actual presence of libhegel's header and library is checked further
# below, once --with-includes / --with-libraries are in effect.
#
PGAC_ARG_BOOL(with, hegel, no,
[build property-based tests (requires libhegel; uses TAP when --enable-tap-tests)])
AC_SUBST(with_hegel)
# Export the extra library directories so the property-test Makefile can add
# them to pg_prop's rpath; libhegel is typically installed outside the system
# loader path and reached via --with-libraries.
AC_SUBST(LIBRARY_DIRS)

#
# Block size
#
Expand Down Expand Up @@ -1416,6 +1432,18 @@ failure. It is possible the compiler isn't looking in the proper directory.
Use --without-zlib to disable zlib support.])])
fi

# libhegel for property-based tests. The C ABI header has no PostgreSQL
# dependencies; the engine ships as a plain shared library, libhegel_c. Both
# must be reachable via --with-includes / --with-libraries (or a system path).
if test "$with_hegel" = yes; then
AC_CHECK_HEADER(hegel.h, [],
[AC_MSG_ERROR([header file <hegel.h> is required for --with-hegel
Point --with-includes at libhegel's include directory.])])
AC_CHECK_LIB(hegel_c, hegel_version, [],
[AC_MSG_ERROR([library 'hegel_c' (libhegel) is required for --with-hegel
Point --with-libraries at libhegel's library directory.])])
fi

if test "$with_libcurl" = yes ; then
PGAC_CHECK_LIBCURL
fi
Expand Down
49 changes: 49 additions & 0 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -1827,6 +1827,54 @@ endif



###############################################################
# Library: libhegel (property-based testing engine)
###############################################################

# Property-based tests (src/test/prop) require:
# 1. -Dprop_tests=enabled (explicit opt-in; default disabled), and
# 2. libhegel's header and shared library present (found via
# extra_include_dirs / extra_lib_dirs or a system path).
# TAP is NOT required: the pg_prop binary is a standalone C program that emits
# TAP output and runs on its own (./pg_prop <area> ...), against any cluster
# PGHOST/PGPORT point at for the SQL-oracle areas. When TAP tests are also
# enabled the Perl drivers (t/001_prop.pl, t/002_sql_props.pl) are registered
# as the 'prop' meson suite for convenience -- they start a throwaway cluster
# and run the binary -- but the suite is a methodology on top of the harness,
# not gated by TAP. With -Dprop_tests=enabled a missing libhegel is a hard
# error so the opt-in cannot silently do nothing.
prop_tests_enabled = false
prop_tests_tap = false
libhegel = not_found_dep
propopt = get_option('prop_tests')
if not propopt.disabled()
# The C ABI header has no PostgreSQL dependencies; the engine ships as a
# plain shared library named libhegel_c. Look for both.
libhegel_h = cc.has_header('hegel.h',
args: test_c_args, include_directories: postgres_inc,
required: propopt)
libhegel_lib = cc.find_library('hegel_c',
dirs: postgres_lib_d, required: propopt)
if libhegel_h and libhegel_lib.found()
libhegel = declare_dependency(dependencies: libhegel_lib)
prop_tests_enabled = true
# Register the Perl TAP drivers only when TAP is available; without it the
# binary still builds and can be run by hand.
prop_tests_tap = tap_tests_enabled
if not tap_tests_enabled
message('property-based tests: building pg_prop; TAP drivers not ' +
'registered (tap_tests disabled) -- run the binary directly')
endif
elif propopt.enabled()
error('prop_tests requires libhegel (hegel.h and libhegel_c); ' +
'point --extra-include-dirs / --extra-lib-dirs at its install')
else
message('property-based tests disabled: libhegel not found')
endif
endif



###############################################################
# Library: zstd
###############################################################
Expand Down Expand Up @@ -4322,6 +4370,7 @@ summary(
'icu': icu,
'ldap': ldap,
'libcurl': libcurl,
'libhegel (prop_tests)': libhegel,
'libnuma': libnuma,
'liburing': liburing,
'libxml': libxml,
Expand Down
3 changes: 3 additions & 0 deletions meson_options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ option('tap_tests', type: 'feature', value: 'auto',
option('injection_points', type: 'boolean', value: false,
description: 'Enable injection points')

option('prop_tests', type: 'feature', value: 'disabled',
description: 'Enable property-based tests (requires libhegel and TAP tests)')

option('PG_TEST_EXTRA', type: 'string', value: '',
description: 'Enable selected extra tests. Overridden by PG_TEST_EXTRA environment variable.')

Expand Down
2 changes: 2 additions & 0 deletions src/Makefile.global.in
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,8 @@ enable_dtrace = @enable_dtrace@
enable_coverage = @enable_coverage@
enable_injection_points = @enable_injection_points@
enable_tap_tests = @enable_tap_tests@
with_hegel = @with_hegel@
LIBRARY_DIRS = @LIBRARY_DIRS@

python_includespec = @python_includespec@
python_libdir = @python_libdir@
Expand Down
5 changes: 4 additions & 1 deletion src/test/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,15 @@ endif
ifeq ($(with_ssl),openssl)
SUBDIRS += ssl
endif
ifeq ($(with_hegel),yes)
SUBDIRS += prop
endif

# We don't build or execute these by default, but we do want "make
# clean" etc to recurse into them. (We must filter out those that we
# have conditionally included into SUBDIRS above, else there will be
# make confusion.)
ALWAYS_SUBDIRS = $(filter-out $(SUBDIRS),examples kerberos icu ldap ssl)
ALWAYS_SUBDIRS = $(filter-out $(SUBDIRS),examples kerberos icu ldap ssl prop)

# We want to recurse to all subdirs for all standard targets, except that
# installcheck and install should not recurse into the subdirectory "modules".
Expand Down
4 changes: 4 additions & 0 deletions src/test/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,7 @@ if icu.found()
endif

subdir('perl')

if prop_tests_enabled
subdir('prop')
endif
Loading
Loading