Skip to content

Differences in branches (v. 1.5)

Andrey Lepikhov edited this page Dec 22, 2022 · 4 revisions

Common differences

c-cpp.yml - names of branches, patch filename.

stable13 -> stable14

  • QueryID machinery. From stable14 we can use the jumbling technique to generate queryid or another lightweight signature of a query or expression.
  • compute_query_id = 'regress' - added to avoid regression tests inconsistencies.
  • Core patch - estimate_num_groups() signature has changed, partitioning logic.
  • New MemoizePath node introduced in the core planner.
  • Structure of ModifyTablePath changed
  • Added more tests on team working of AQO and pg_stat_statements with the same queryid.
  • Wrapper for the expression_tree_mutator() not needed.

stable14 -> stable15

  • Inconsistency in declaration of aqo_cleanup() - should be fixed in v 1.6
  • ./configure $CONFIGURE_OPTS CFLAGS="-O3"
  • Starting from PG15, shared memory request have been doing not in _PG_init(), by in specific hook shmem_request_hook_type.
  • New function MarkGUCPrefixReserved() should be used instead of EmitWarningsOnPlaceholders().
  • Core patch - the same.
  • auto_tuning.c - query_context.use_aqo - use pg_prng_double instead of random() because of core changes.
  • clean_aqo_data.sql - output changed because of the core.
  • path_utils.c - changes in the Value node - Begining with PG15 we use specific Integer node instead of AConst.
  • TAP tests - core changes in package definition

stable15 -> master

  • Implementation of the cleanup bgworker requires object_access_hook_type, new GUC 'aqo.cleanup_bgworker', changing of cleanup_aqo_database()
  • Core patch - multilevel adjustment logic
  • Core logic of copyfuncs.c is changed