When upgrading Tanzu Greenplum Platform Extension Framework (PXF) from version 6.x to 8.0.0 in environments without root access, running the following SQL command fails:
Error Message: ERROR: extension "pxf" has no update path from version "2.1" to version "4.0"
Greenplum 6/7
PXF
This issue typically occurs when PXF is installed via manual extraction (tarball) rather than the standard RPM package.
In a standard RPM installation, a postinstall scriptlet automatically executes sed commands to inject absolute paths into the pxf.control file. When the RPM is bypassed, these metadata fields remain unset or point to incorrect default locations:
directory: The location of the Greenplum extension artifacts.module_pathname: The absolute path to the PXF shared library (pxf.so).Because the control file does not point to the correct 8.0.0 artifacts, PostgreSQL cannot identify the valid update path.
To resolve this, you must manually perform the path injection that the RPM installer normally handles.
On the coordinator and all segment hosts, locate the pxf.control file. It is typically found in the Greenplum installation directory: $GPHOME/share/postgresql/extension/pxf.control
Edit the pxf.control file on all hosts in the cluster. Update the directory and module_pathname fields to match your manual extraction prefix (${PXF_BASE}).
Example Configuration: If your PXF extraction prefix is /usr/local/pxf-gp6, the file should be updated as follows:
directory = '/usr/local/pxf-gp6/gpextable/'
module_pathname = '/usr/local/pxf-gp6/gpextable/pxf'
ALTER EXTENSION pxf UPDATE;SELECT name, default_version, installed_version
FROM pg_available_extensions
WHERE name = 'pxf';The 'installed_version should now show 4.0