/
ihtiandr9
/
httpserver
Обзор
Документация
Войти
/
ihtiandr9
/
httpserver
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
class-stylesheet
cpp/third_party/postgresql/include/pgsql/server/utils/queryenvironment.h
74 строки
3 KB
ihtiandr9 (note)
build Win. Supported only x64
25 авг 2025, 05:07
25 авг 2025, 05:07
ea9dcd2
Код
Авторство
О чём код?
/*------------------------------------------------------------------------- * * queryenvironment.h * Access to functions to mutate the query environment and retrieve the * actual data related to entries (if any). * * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/utils/queryenvironment.h * *------------------------------------------------------------------------- */ #ifndef QUERYENVIRONMENT_H #define QUERYENVIRONMENT_H #include "access/tupdesc.h" typedef enum EphemeralNameRelationType { ENR_NAMED_TUPLESTORE /* named tuplestore relation; e.g., deltas */ } EphemeralNameRelationType; /* * Some ephemeral named relations must match some relation (e.g., trigger * transition tables), so to properly handle cached plans and DDL, we should * carry the OID of that relation. In other cases an ENR might be independent * of any relation which is stored in the system catalogs, so we need to be * able to directly store the TupleDesc. We never need both. */ typedef struct EphemeralNamedRelationMetadataData { char *name; /* name used to identify the relation */ /* only one of the next two fields should be used */ Oid reliddesc; /* oid of relation to get tupdesc */ TupleDesc tupdesc; /* description of result rows */ EphemeralNameRelationType enrtype; /* to identify type of relation */ double enrtuples; /* estimated number of tuples */ } EphemeralNamedRelationMetadataData; typedef EphemeralNamedRelationMetadataData *EphemeralNamedRelationMetadata; /* * Ephemeral Named Relation data; used for parsing named relations not in the * catalog, like transition tables in AFTER triggers. */ typedef struct EphemeralNamedRelationData { EphemeralNamedRelationMetadataData md; void *reldata; /* structure for execution-time access to data */ } EphemeralNamedRelationData; typedef EphemeralNamedRelationData *EphemeralNamedRelation; /* * This is an opaque structure outside of queryenvironment.c itself. The * intention is to be able to change the implementation or add new context * features without needing to change existing code for use of existing * features. */ typedef struct QueryEnvironment QueryEnvironment; extern QueryEnvironment *create_queryEnv(void); extern EphemeralNamedRelationMetadata get_visible_ENR_metadata(QueryEnvironment *queryEnv, const char *refname); extern void register_ENR(QueryEnvironment *queryEnv, EphemeralNamedRelation enr); extern void unregister_ENR(QueryEnvironment *queryEnv, const char *name); extern EphemeralNamedRelation get_ENR(QueryEnvironment *queryEnv, const char *name); extern TupleDesc ENRMetadataGetTupDesc(EphemeralNamedRelationMetadata enrmd); #endif /* QUERYENVIRONMENT_H */