summaryrefslogtreecommitdiff
path: root/src/backend/optimizer
diff options
context:
space:
mode:
authorMichael P2011-10-27 01:57:30 +0000
committerMichael P2011-10-27 01:57:30 +0000
commit56a90674444df1464c8e7012c6113efd7f9bc7db (patch)
tree67b151ad250bad909d2cbf7e6a33b4d36632e2c3 /src/backend/optimizer
parentef4717fab54d11cbc4cf8b6607bee346fc99d85a (diff)
Support for Node and Node Group DDL
Node information is not anymore supported by node number using GUC parameters but node names. Node connection information is taken from a new catalog table called pgxc_node. Node group information can be found in pgxc_group. Node connection information is taken from catalog when user session begins and sticks with it for the duration of the session. This brings more flexibility to the cluster settings. Cluster node information can now be set when node is initialized with initdb using cluster_nodes.sql located in share directory. This commits adds support for the following new DDL: - CREATE NODE - ALTER NODE - DROP NODE - CREATE NODE GROUP - DROP NODE GROUP The following parameters are deleted from postgresql.conf: - num_data_nodes - preferred_data_nodes - data_node_hosts - data_node_ports - primary_data_node - num_coordinators - coordinator_hosts - coordinator_ports pgxc_node_id is replaced by pgxc_node_name to identify the node-self. Documentation is added for the new queries. Functionalities such as EXECUTE DIRECT, CLEAN CONNECTION use node names instead of node numbers now.
Diffstat (limited to 'src/backend/optimizer')
-rw-r--r--src/backend/optimizer/plan/createplan.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index 3abcd6cfe5..ba9f6c0af7 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -2648,6 +2648,7 @@ create_remotequery_plan(PlannerInfo *root, Path *best_path,
scan_plan->exec_nodes->baselocatortype = rel_loc_info->locatorType;
else
scan_plan->exec_nodes->baselocatortype = '\0';
+
scan_plan->exec_nodes = GetRelationNodes(rel_loc_info, 0, UNKNOWNOID, RELATION_ACCESS_READ);
copy_path_costsize(&scan_plan->scan.plan, best_path);
@@ -5567,7 +5568,7 @@ create_remotedelete_plan(PlannerInfo *root, Plan *topplan)
xstep->exec_nodes->baselocatortype = rel_loc_info->locatorType;
xstep->exec_nodes->tableusagetype = TABLE_USAGE_TYPE_USER;
xstep->exec_nodes->primarynodelist = NULL;
- xstep->exec_nodes->nodelist = NULL;
+ xstep->exec_nodes->nodeList = NULL;
xstep->exec_nodes->en_relid = ttab->relid;
xstep->exec_nodes->accesstype = RELATION_ACCESS_READ;
@@ -5597,7 +5598,7 @@ create_remotedelete_plan(PlannerInfo *root, Plan *topplan)
fstep->exec_nodes->baselocatortype = rel_loc_info->locatorType;
fstep->exec_nodes->tableusagetype = TABLE_USAGE_TYPE_USER;
fstep->exec_nodes->primarynodelist = NULL;
- fstep->exec_nodes->nodelist = NULL;
+ fstep->exec_nodes->nodeList = NULL;
fstep->exec_nodes->en_relid = ttab->relid;
fstep->exec_nodes->accesstype = RELATION_ACCESS_UPDATE;