Open LevNikolaev opened 10 months ago
Dear pg_store_plans Development Team,
I am excited to present an update to my previous pull request, incorporating additional enhancements and necessary modifications for PostgreSQL version 16.1. These changes not only ensure compatibility but also introduce new requirements for the build process under PostgreSQL 16. Below, I have detailed the new key changes along with a summary of the previous updates:
Significant Updates in Makefile for PostgreSQL 16 Support:
Makefile
to incorporate logic for PostgreSQL 16 detection and support. This includes a conditional check for the PostgreSQL version to correctly configure the build process for this version.PG_CPPFLAGS
) are set, targeting the use of appropriate PostgreSQL source directories.PATH_TO_SOURCE_CODE
) and the gram.h
file within the specified directory. This is critical for building with PostgreSQL 16, especially in light of changes in internal structure and API.Requirement of PostgreSQL Source Code for Building:
Path Adjustments in pgsp_json.c:
gram.h
in pgsp_json.c
, reflecting the new directory structure of PostgreSQL 16.cassert
Compatibility.The overarching goal of these comprehensive updates is to ensure that pg_store_plans remains compatible with the latest PostgreSQL release, while addressing the new build requirements introduced in PostgreSQL 16. These changes aim to enhance the extension's robustness and adaptability across various build environments.
I hope these additional modifications will be beneficial to the pg_store_plans project. I am open to discussing any aspects of these changes and am ready to make further adjustments as needed.
Thank you for considering these enhancements to the project.
Best regards, Lev Nikolaev, Tantor Labs
Dear pg_store_plans Development Team,
I am pleased to submit this pull request, which brings forward compatibility updates and enhancements for PostgreSQL version 16.1, along with modifications for better support when building with
cassert
. Below, I have detailed the key changes made:Conditional Compilation Adaptation for PostgreSQL 16.1:
pg_store_plans.c
. These modifications extend support to PostgreSQL 16.1, ensuring the codebase remains compatible with the latest PostgreSQL version.Header File Path Adjustments for PostgreSQL 16.1:
#include "nodes/queryjumble.h"
), aligning with the changes in PostgreSQL 16.1’s directory structure and APIs.Variable Initializations for cassert Compatibility:
track_level
,plan_format
, andplan_storage
). These were previously uninitialized, potentially causing issues when building withcassert
, as it necessitates all variables to be initialized to ensure robust error checking. I have set their default values to1
, aligning with the expected default behavior of the system.cassert
is commonly enabled, and ensures predictable behavior across different builds and environments.JSON and YAML Processing Function Modifications:
Cleaning Up Outdated Conditional Compilations:
The primary motivation behind these changes is to ensure that
pg_store_plans
stays up-to-date with the latest PostgreSQL release, while also addressing build compatibility issues when usingcassert
. This will not only benefit environments where strict error checking is required but also contribute to the overall reliability of the software.I hope these updates will be valuable to the
pg_store_plans
project, and I am keen to discuss any aspects of this pull request or make further modifications if required.Thank you for considering these enhancements.
Best regards, Lev Nikolaev, Tantor Labs