#ifndef QUERYENVIRONMENT_H
#define QUERYENVIRONMENT_H
#include "access/tupdesc.h"
typedef enum EphemeralNameRelationType
{
ENR_NAMED_TUPLESTORE
} EphemeralNameRelationType;
typedef struct EphemeralNamedRelationMetadataData
{
char *name;
Oid reliddesc;
TupleDesc tupdesc;
EphemeralNameRelationType enrtype;
double enrtuples;
} EphemeralNamedRelationMetadataData;
typedef EphemeralNamedRelationMetadataData *EphemeralNamedRelationMetadata;
typedef struct EphemeralNamedRelationData
{
EphemeralNamedRelationMetadataData md;
void *reldata;
} EphemeralNamedRelationData;
typedef EphemeralNamedRelationData *EphemeralNamedRelation;
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