(functional-limitations)=

Functional limitations

Influence of planner GUC parameters

The planner does not try to consider joining order for FROM clause entries more than from_collapse_limit. pg_hint_plan cannot affect the joining order in this case.

Hints trying to enforce non-executable plans

Planner chooses any executable plans when the enforced plan cannot be executed:

  • FULL OUTER JOIN to use nested loop.
  • Use of indexes that do not have columns used in quals.
  • TID scans for queries without ctid conditions.

Queries in ECPG

ECPG removes comments in queries written as embedded SQLs so hints cannot be passed to it. The only exception EXECUTE, that passes the query string to the server as-is. The hint table can be used in the case.

Query Identifiers

When compute_query_id is enabled, PostgreSQL generates a query ID, ignoring comments. Hence, queries with different hints, still written the same way, may compute the same query ID.