Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postgres/src/test/examples/   (Postgres Database Version 18.4©)  Datei vom 11.4.2026 mit Größe 2 kB image not shown  

SSL restrictinfo.h

  Sprache: C
 

/*-------------------------------------------------------------------------
 *
 * restrictinfo.h
 *   prototypes for restrictinfo.c.
 *
 *
 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 * src/include/optimizer/restrictinfo.h
 *
 *-------------------------------------------------------------------------
 */

#ifndef RESTRICTINFO_H
#define RESTRICTINFO_H

#include "nodes/pathnodes.h"


/* Convenience macro for the common case of a valid-everywhere qual */
#define make_simple_restrictinfo(root, clause)  \
 make_restrictinfo(root, clause, truefalsefalsefalse0, \
  NULL, NULL, NULL)

extern RestrictInfo *make_plain_restrictinfo(PlannerInfo *root,
            Expr *clause,
            Expr *orclause,
            bool is_pushed_down,
            bool has_clone,
            bool is_clone,
            bool pseudoconstant,
            Index security_level,
            Relids required_relids,
            Relids incompatible_relids,
            Relids outer_relids);
extern RestrictInfo *make_restrictinfo(PlannerInfo *root,
            Expr *clause,
            bool is_pushed_down,
            bool has_clone,
            bool is_clone,
            bool pseudoconstant,
            Index security_level,
            Relids required_relids,
            Relids incompatible_relids,
            Relids outer_relids);
extern RestrictInfo *commute_restrictinfo(RestrictInfo *rinfo, Oid comm_op);
extern bool restriction_is_or_clause(RestrictInfo *restrictinfo);
extern bool restriction_is_securely_promotable(RestrictInfo *restrictinfo,
              RelOptInfo *rel);
extern List *get_actual_clauses(List *restrictinfo_list);
extern List *extract_actual_clauses(List *restrictinfo_list,
         bool pseudoconstant);
extern void extract_actual_join_clauses(List *restrictinfo_list,
          Relids joinrelids,
          List **joinquals,
          List **otherquals);
extern bool join_clause_is_movable_to(RestrictInfo *rinfo, RelOptInfo *baserel);
extern bool join_clause_is_movable_into(RestrictInfo *rinfo,
          Relids currentrelids,
          Relids current_and_outer);

/*
 * clause_sides_match_join
 *   Determine whether a join clause is of the right form to use in this join.
 *
 * We already know that the clause is a binary opclause referencing only the
 * rels in the current join.  The point here is to check whether it has the
 * form "outerrel_expr op innerrel_expr" or "innerrel_expr op outerrel_expr",
 * rather than mixing outer and inner vars on either side.  If it matches,
 * we set the transient flag outer_is_left to identify which side is which.
 */

static inline bool
clause_sides_match_join(RestrictInfo *rinfo, Relids outerrelids,
      Relids innerrelids)
{
 if (bms_is_subset(rinfo->left_relids, outerrelids) &&
  bms_is_subset(rinfo->right_relids, innerrelids))
 {
  /* lefthand side is outer */
  rinfo->outer_is_left = true;
  return true;
 }
 else if (bms_is_subset(rinfo->left_relids, innerrelids) &&
    bms_is_subset(rinfo->right_relids, outerrelids))
 {
  /* righthand side is outer */
  rinfo->outer_is_left = false;
  return true;
 }
 return false;    /* no good for these input relations */
}

#endif       /* RESTRICTINFO_H */

Messung V0.5 in Prozent
C=93 H=95 G=93

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.1Bemerkung:  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.