60 lines
1.4 KiB
C++
60 lines
1.4 KiB
C++
/*-------------------------------------------------------------------------
|
|
*
|
|
* deparse_single.cpp
|
|
* Query deparser for gc_fdw
|
|
*
|
|
* IDENTIFICATION
|
|
* contrib/gc_fdw/deparse_single.cpp
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
#include "postgres.h"
|
|
#include "knl/knl_variable.h"
|
|
|
|
#include "gc_fdw.h"
|
|
|
|
#include "access/heapam.h"
|
|
#include "access/htup.h"
|
|
#include "access/sysattr.h"
|
|
#include "catalog/pg_aggregate.h"
|
|
#include "catalog/pg_collation.h"
|
|
#include "catalog/pg_namespace.h"
|
|
#include "catalog/pg_operator.h"
|
|
#include "catalog/pg_proc.h"
|
|
#include "catalog/pg_type.h"
|
|
#include "commands/defrem.h"
|
|
#include "nodes/makefuncs.h"
|
|
#include "nodes/nodeFuncs.h"
|
|
#include "nodes/plannodes.h"
|
|
#include "optimizer/clauses.h"
|
|
#include "optimizer/prep.h"
|
|
#include "optimizer/tlist.h"
|
|
#include "optimizer/var.h"
|
|
#include "parser/parsetree.h"
|
|
#include "utils/builtins.h"
|
|
#include "utils/lsyscache.h"
|
|
#include "utils/rel.h"
|
|
#include "utils/syscache.h"
|
|
#include "utils/typcache.h"
|
|
|
|
|
|
/*
|
|
* the string list of the targetlist of ForeignScan is used in explain command when agg
|
|
* is deparsed to remote sql.
|
|
*/
|
|
List* get_str_targetlist(List* fdw_private)
|
|
{
|
|
List* str_targetlist = (List*)list_nth(fdw_private, FdwScanPrivateStrTargetlist);
|
|
|
|
List* rs = NIL;
|
|
ListCell* lc = NULL;
|
|
foreach (lc, str_targetlist) {
|
|
Value* val = (Value*)lfirst(lc);
|
|
rs = lappend(rs, val->val.str);
|
|
}
|
|
|
|
return rs;
|
|
}
|
|
|