JFMT

Specifies how to size VARCHAR column data when joining tables on those columns, and buffer that data accordingly. The JFMT hint overrides the default behavior that is set by configuration parameter JoinDefaultTupleFormat, which can be set at database and session levels.

For more information, see Joining Variable Length String Data.

Syntax

…JOIN /*+ JFMT(format-type) */

Arguments

format‑type

Specifies how to format VARCHAR column data when joining tables on those columns, and buffers the data accordingly. Set to one of the following:

  • f (fixed): Use join column metadata to size column data to a fixed length, and buffer accordingly.
  • v (variable): Use the actual length of join column data, so buffer size varies for each join.

For example:

SELECT /*+ SYNTACTIC_JOIN */ s.store_region, SUM(e.vacation_days) TotalVacationDays
   FROM public.employee_dimension e
   JOIN /*+JFMT(f)*/ store.store_dimension s ON s.store_region=e.employee_region
   GROUP BY s.store_region ORDER BY TotalVacationDays;

Requirements

  • Queries that include the JFMT hint must also include the SYNTACTIC_JOIN hint. Otherwise, the optimizer ignores the JFMT hint and throws a warning.
  • Join syntax must conform with ANSI SQL-92 join conventions.