Hello, I've been using Postgresql-8.0.1 (Release date: 2005-01-31) for my research work and I guess I finally need some help with it...
I'm not trying to modify the existing functionality, but I want to add few things. In particular, I'm calculating two new Cost values and I need to use them while the query is executing. Please See code snippets below- 1.) New Variables ADDED to src/include/nodes/plannodes.h typedef struct Plan { Cost hutz_tbl_benefit; /* Benefit for TableAccess */ Cost hutz_idx_benefit; /* Benefit for IndexScan */ } 2.) New Variables ADDED to src/include/nodes/relation.h typedef struct Plan { Cost hutz_tbl_benefit; /* Benefit for TableAccess */ Cost hutz_idx_benefit; /* Benefit for IndexScan */ } 3.) ADDITIONS to costsize.c void cost_seqscan(Path *path, Query *root, RelOptInfo *baserel) { path->hutz_tbl_benefit = xxxxx; path->hutz_idx_benefit = xxxxx; } void cost_index(Path *path, Query *root, RelOptInfo *baserel, IndexOptInfo *index, List *indexQuals, bool is_injoin) { path->hutz_tbl_benefit = xxxxx; path->hutz_idx_benefit = xxxxx; } However, after these modifications the server process crashes on running a Join query like "select s_suppkey,c_custkey from supplier,customer where s_suppkey>125 and s_suppkey<128 and c_custkey>100 and c_custkey<103 and c_custkey=s_suppkey" But, this query runs fine "select s_suppkey from supplier where s_suppkey>125 and s_suppkey<128" I'm tracing the point at which the process crashes and at this point it seems to inside src/backend/optimizer/path/joinrels.c>>make_rels_by_joins() So, my question is, after adding the two new variables what other modifications do I need to make for code to work, And later on, what changes are reqd so that I can access these variables while executing the Query Plan in lets say ExecutePlan() and its sub-functions like ExecProcNode()... Thanks to everybody on this group, -Vikram Kalsi MSEE PennStateUniv ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster