1266 Node *arg1 = (Node*) linitial(
args);
1267 Node *arg2 = (Node*) lsecond(
args);
1268 Var *var1 = (Var*) arg1;
1269 Var *var2 = (Var*) arg2;
1271 POSTGIS_DEBUGF(2,
"%s: entered function", __func__);
1275 if (!IsA(arg1, Var) || !IsA(arg2, Var))
1277 POSTGIS_DEBUGF(1,
"%s called with arguments that are not column references", __func__);
1282 relid1 = rt_fetch(var1->varno, root->parse->rtable)->relid;
1283 relid2 = rt_fetch(var2->varno, root->parse->rtable)->relid;
1292 POSTGIS_DEBUGF(2,
"%s: cannot find stats for \"%s\"", __func__, get_rel_name(relid2) ? get_rel_name(relid2) :
"NULL");
1297 POSTGIS_DEBUGF(2,
"%s: cannot find stats for \"%s\"", __func__, get_rel_name(relid2) ? get_rel_name(relid2) :
"NULL");
1302 POSTGIS_DEBUGF(2,
"got selectivity %g", selectivity);
static ND_STATS * pg_get_nd_stats(const Oid table_oid, AttrNumber att_num, int mode, bool only_parent)
Pull the stats object from the PgSQL system catalogs.
#define DEFAULT_ND_JOINSEL
static float8 estimate_join_selectivity(const ND_STATS *s1, const ND_STATS *s2)
Given two statistics histograms, what is the selectivity of a join driven by the && or &&& operator?
N-dimensional statistics structure.