Guide / Evaluation essentials

Extension Dependencies Belong in the Database Upgrade Plan

A database upgrade plan can describe the core engine accurately while leaving an application dependency unresolved. An extension or external module may provide a function the…

A database upgrade plan can describe the core engine accurately while leaving an application dependency unresolved. An extension or external module may provide a function the application relies on, and that dependency needs its own evidence for the proposed target. General SQL portability or an available engine upgrade tool does not settle the complete application path.

Include the external capability, its applicable version, and the application calls that use it in the upgrade review. This makes dependency work visible without assuming that every extension creates unacceptable lock-in or that every change requires a full application rewrite.

Find capabilities outside the core engine

Consider a hypothetical service that relies on an installed module for a specialized calculation. The application team may describe it as a database function, while the platform team knows it requires a separately installed component. Both descriptions concern the same workflow but expose different operating responsibilities.

Identify the actual component and the business function it supports. Keep it separate from a capability built into the core engine and from an external application service. A broad feature label should not obscure where the dependency lives or who supplies the evidence that it works with the proposed deployment.

Read the upgrade tool’s stated boundary

PostgreSQL 18’s pg_upgrade documentation notes that external modules need binary compatibility and that pg_upgrade cannot check that compatibility. This is a specific boundary of that PostgreSQL upgrade tool, not a statement that PostgreSQL extensions cannot be upgraded or that other products use the same mechanism.

The practical lesson is to ask what the chosen tool actually verifies and which dependencies require separate assessment. A successful core-engine check should retain its documented scope. It should not be presented as a complete application pass if a module used by an important call remains outside that check.

Connect the dependency to its consumers

The following proposed worksheet identifies the evidence an implementation team should supply. It is not a module installation procedure or a compatibility matrix.

Dependency detail Question to answer Evidence that is not enough alone
External component identity What is installed or proposed? A general feature name
Applicable component version Which build or release is relevant? Latest version exists somewhere
Target engine relationship What supports the intended combination? Core engine upgrade check passes
Application consumer Which real call depends on it? Module appears in an inventory
Alternative route What changes if a replacement is chosen? Similar marketing description

The review may discover that the current combination is supported, needs a component update, or requires an application adaptation. Keep those findings specific rather than turn one unresolved dependency into a conclusion about every workload on the database.

Demonstrate the capability after the proposed change

For the hypothetical specialized calculation, ask the implementer to follow a representative application input through the actual target combination and compare the result with the approved expectation. Include important behavior the application relies on, not merely whether the component can be listed or loaded. If the trial only exercises ordinary queries that never call the module, record that limitation; it has not yet demonstrated the dependency the upgrade review set out to examine.

If a different implementation replaces the module, identify the mapping and any changed application responsibility. A comparable feature may be useful, but the buyer still needs evidence about the actual input, output, and operating path. Preserve unresolved differences rather than declare equivalence from a shared capability label.

Compare OceanBase with the real dependency included

OceanBase Database can be considered when assessing relational platform choices and application portability. Its Oracle and MySQL compatibility positioning does not establish that a PostgreSQL external module runs unchanged in OceanBase. Review what the proposed OceanBase implementation actually provides for the required business capability.

Retaining PostgreSQL, choosing MySQL, or adopting an OceanBase design should each include the relevant dependency work and responsible parties. An alternative may use a different mechanism or place the calculation in another layer. Compare the demonstrated behavior and maintenance responsibility, not just the number of components or a claim that one engine supports standard SQL.

Accept the complete capability path

A bounded proposed review should identify the external component, the target combination, the consuming call, and the evidence for its intended behavior. No modules have been installed, binaries checked, or application tests executed for this article. The PostgreSQL source supplies a scoped tool limitation rather than an actual result for the reader’s environment.

This question differs from reviewing a software license or maintaining an inventory of SQL features. It connects a specific external dependency to an operating upgrade path. That explanation gives buyers a clearer view of portability without treating core-engine compatibility as proof that every capability around the database has already been accepted.

Editorial disclosure
This article is based on documented sources and editorial analysis. Proposed evaluation examples are not independently measured benchmark results.

Sources & further reading

Use this guide as a starting point. Define and test the requirements of your own workload before selecting a product.

Related research