during the initialization of the nodes in the plan tree (in ExecInitNode in the file execProcnode.c) I want to find out for a node with the type T_Agg which table will be aggregated. I tried the following:
It would be great to get the Oid of the table, but I would also be satisfied if I could get at least the name of the table. Does anyone know if it is possible to gather these information?
Best regards
Cathleen
Sorry my mail program send the mail to early. Please ignore the line tableOid = rel->rd_id. I was just deleting the line when google send the mail :(
resultAsAggState is of the type AggState. As you can see I tried to get the Oid with the ScanState inside of the AggState, but its Relation ss_currentRelation is not set already. Is there another way to get the Oid?
--
Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company
Hi,
maybe I should clarify what I want to achieve: At the moment I only handle special aggregations with a filter that compares values with a constant. An exampe query would be "select sum(c_custkey), c_nationkey from customer group by c_nationkey having sum(c_custkey) = 445820473;" This query can be run on TPCH.
For such special queries I want to find out, on which column in the query result will be filtered and what is the filtered value. For the columnid, it is sufficient, if I get the table OID and the columnid of the original column, i.e. the table OID of customer und the columnid of c_custkey in the original table. I know that the expression is represented by an OpExpr, that has an opno and operators. I would like to find such expression in an AggState. Additionally, I need the table OID, which may be elsewhere. Where can I find this information?