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

Quelle  pg_cast.h

  Sprache: C
 

/*-------------------------------------------------------------------------
 *
 * pg_cast.h
 *   definition of the "type casts" system catalog (pg_cast)
 *
 * As of Postgres 8.0, pg_cast describes not only type coercion functions
 * but also length coercion functions.
 *
 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 * src/include/catalog/pg_cast.h
 *
 * NOTES
 *   The Catalog.pm module reads this file and derives schema
 *   information.
 *
 *-------------------------------------------------------------------------
 */

#ifndef PG_CAST_H
#define PG_CAST_H

#include "catalog/dependency.h"
#include "catalog/genbki.h"
#include "catalog/pg_cast_d.h" /* IWYU pragma: export */

/* ----------------
 *  pg_cast definition.  cpp turns this into
 *  typedef struct FormData_pg_cast
 * ----------------
 */

CATALOG(pg_cast,2605,CastRelationId)
{
 Oid   oid;   /* oid */

 /* source datatype for cast */
 Oid   castsource BKI_LOOKUP(pg_type);

 /* destination datatype for cast */
 Oid   casttarget BKI_LOOKUP(pg_type);

 /* cast function; 0 = binary coercible */
 Oid   castfunc BKI_LOOKUP_OPT(pg_proc);

 /* contexts in which cast can be used */
 char  castcontext;

 /* cast method */
 char  castmethod;
} FormData_pg_cast;

/* ----------------
 *  Form_pg_cast corresponds to a pointer to a tuple with
 *  the format of pg_cast relation.
 * ----------------
 */

typedef FormData_pg_cast *Form_pg_cast;

DECLARE_UNIQUE_INDEX_PKEY(pg_cast_oid_index, 2660, CastOidIndexId, pg_cast, btree(oid oid_ops));
DECLARE_UNIQUE_INDEX(pg_cast_source_target_index, 2661, CastSourceTargetIndexId, pg_cast, btree(castsource oid_ops, casttarget oid_ops));

MAKE_SYSCACHE(CASTSOURCETARGET, pg_cast_source_target_index, 256);

#ifdef EXPOSE_TO_CLIENT_CODE

/*
 * The allowable values for pg_cast.castcontext are specified by this enum.
 * Since castcontext is stored as a "char", we use ASCII codes for human
 * convenience in reading the table.  Note that internally to the backend,
 * these values are converted to the CoercionContext enum (see primnodes.h),
 * which is defined to sort in a convenient order; the ASCII codes don't
 * have to sort in any special order.
 */


typedef enum CoercionCodes
{
 COERCION_CODE_IMPLICIT = 'i'/* coercion in context of expression */
 COERCION_CODE_ASSIGNMENT = 'a'/* coercion in context of assignment */
 COERCION_CODE_EXPLICIT = 'e'/* explicit cast operation */
}   CoercionCodes;

/*
 * The allowable values for pg_cast.castmethod are specified by this enum.
 * Since castmethod is stored as a "char", we use ASCII codes for human
 * convenience in reading the table.
 */

typedef enum CoercionMethod
{
 COERCION_METHOD_FUNCTION = 'f'/* use a function */
 COERCION_METHOD_BINARY = 'b'/* types are binary-compatible */
 COERCION_METHOD_INOUT = 'i'/* use input/output functions */
}   CoercionMethod;

#endif       /* EXPOSE_TO_CLIENT_CODE */


extern ObjectAddress CastCreate(Oid sourcetypeid,
        Oid targettypeid,
        Oid funcid,
        Oid incastid,
        Oid outcastid,
        char castcontext,
        char castmethod,
        DependencyType behavior);

#endif       /* PG_CAST_H */

Messung V0.5 in Prozent
C=82 H=96 G=89

¤ Dauer der Verarbeitung: 0.17 Sekunden  (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.