[prev] 11 [next]

QOpt Data Structures (cont)

Specialised Path nodes:

typedef struct IndexPath
{
   Path    path;
   List   *indexinfo;    /* physical info on indexes */
   List   *indexclauses; /* index select conditions */
   ...
   double  rows;         /* estimated #results */
} IndexPath;

typedef struct JoinPath
{
   Path      path;
   JoinType  jointype;   /* inner/outer/semi/anti */
   Path     *outerpath;  /* outer part of the join */
   Path     *innerpath;  /* inner part of the join */
   List     *restrictinfo; /* where/join conds */
} JoinPath;