You can subscribe to this list here.
2010 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
(28) |
Jun
(12) |
Jul
(11) |
Aug
(12) |
Sep
(5) |
Oct
(19) |
Nov
(14) |
Dec
(12) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
(18) |
Feb
(30) |
Mar
(115) |
Apr
(89) |
May
(50) |
Jun
(44) |
Jul
(22) |
Aug
(13) |
Sep
(11) |
Oct
(30) |
Nov
(28) |
Dec
(39) |
2012 |
Jan
(38) |
Feb
(18) |
Mar
(43) |
Apr
(91) |
May
(108) |
Jun
(46) |
Jul
(37) |
Aug
(44) |
Sep
(33) |
Oct
(29) |
Nov
(36) |
Dec
(15) |
2013 |
Jan
(35) |
Feb
(611) |
Mar
(5) |
Apr
(55) |
May
(30) |
Jun
(28) |
Jul
(458) |
Aug
(34) |
Sep
(9) |
Oct
(39) |
Nov
(22) |
Dec
(32) |
2014 |
Jan
(16) |
Feb
(16) |
Mar
(42) |
Apr
(179) |
May
(7) |
Jun
(6) |
Jul
(9) |
Aug
|
Sep
(4) |
Oct
|
Nov
(3) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
1
(2) |
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
(1) |
16
(3) |
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
(2) |
25
|
26
|
27
(1) |
28
(1) |
29
(1) |
30
(1) |
|
|
|
From: mason_s <ma...@us...> - 2010-06-16 15:25:18
|
Project "Postgres-XC". The branch, master has been updated via a216b00661e2b76267681bade35a620566fe9345 (commit) from a0429d3f49568868602efb8881a79c3716201134 (commit) - Log ----------------------------------------------------------------- commit a216b00661e2b76267681bade35a620566fe9345 Author: Mason S <masonsharp@mason-sharps-macbook.local> Date: Wed Jun 16 11:24:34 2010 -0400 Do not yet allow creation of temp tables until we properly handle them. diff --git a/src/backend/pgxc/plan/planner.c b/src/backend/pgxc/plan/planner.c index cc8a664..0d73fc9 100644 --- a/src/backend/pgxc/plan/planner.c +++ b/src/backend/pgxc/plan/planner.c @@ -1601,6 +1601,15 @@ GetQueryPlan(Node *parsetree, const char *sql_statement, List *querytree_list) query_plan->exec_loc_type = EXEC_ON_COORD | EXEC_ON_DATA_NODES; break; + case T_CreateStmt: + if (((CreateStmt *)parsetree)->relation->istemp) + ereport(ERROR, + (errcode(ERRCODE_STATEMENT_TOO_COMPLEX), + (errmsg("Temp tables are not yet supported.")))); + + query_plan->exec_loc_type = EXEC_ON_COORD | EXEC_ON_DATA_NODES; + break; + /* * Statements that we execute on both the Coordinator and Data Nodes */ @@ -1626,7 +1635,6 @@ GetQueryPlan(Node *parsetree, const char *sql_statement, List *querytree_list) case T_CreateOpClassStmt: case T_CreateOpFamilyStmt: case T_CreatePLangStmt: - case T_CreateStmt: case T_CreateSchemaStmt: case T_DeallocateStmt: /* Allow for DEALLOCATE ALL */ case T_DiscardStmt: ----------------------------------------------------------------------- Summary of changes: src/backend/pgxc/plan/planner.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) hooks/post-receive -- Postgres-XC |
From: mason_s <ma...@us...> - 2010-06-16 15:08:42
|
Project "Postgres-XC". The branch, master has been updated via a0429d3f49568868602efb8881a79c3716201134 (commit) from b65c64d294d9a91583534d951b758c5bccacea48 (commit) - Log ----------------------------------------------------------------- commit a0429d3f49568868602efb8881a79c3716201134 Author: Mason S <masonsharp@mason-sharps-macbook.local> Date: Wed Jun 16 11:07:40 2010 -0400 Do not allow WITH RECURSIVE or windowing functions until we add support for them. diff --git a/src/backend/pgxc/plan/planner.c b/src/backend/pgxc/plan/planner.c index 78c13a1..cc8a664 100644 --- a/src/backend/pgxc/plan/planner.c +++ b/src/backend/pgxc/plan/planner.c @@ -403,7 +403,7 @@ get_plan_nodes_insert(Query *query) if (!IsA(tle->expr, Const)) { - eval_expr = eval_const_expressions(NULL, tle->expr); + eval_expr = eval_const_expressions(NULL, (Node *) tle->expr); checkexpr = get_numeric_constant(eval_expr); } @@ -540,7 +540,7 @@ examine_conditions(Special_Conditions *conditions, List *rtables, Node *expr_nod if (!IsA(arg2, Const)) { /* this gets freed when the memory context gets freed */ - Expr *eval_expr = eval_const_expressions(NULL, arg2); + Expr *eval_expr = eval_const_expressions(NULL, (Node *) arg2); checkexpr = get_numeric_constant(eval_expr); } @@ -1413,6 +1413,31 @@ GetQueryPlan(Node *parsetree, const char *sql_statement, List *querytree_list) case T_DeleteStmt: /* just use first one in querytree_list */ query = (Query *) linitial(querytree_list); + + /* Perform some checks to make sure we can support the statement */ + if (nodeTag(parsetree) == T_SelectStmt) + { + if (query->intoClause) + ereport(ERROR, + (errcode(ERRCODE_STATEMENT_TOO_COMPLEX), + (errmsg("INTO clause not yet supported")))); + + if (query->setOperations) + ereport(ERROR, + (errcode(ERRCODE_STATEMENT_TOO_COMPLEX), + (errmsg("UNION, INTERSECT and EXCEPT are not yet supported")))); + + if (query->hasRecursive) + ereport(ERROR, + (errcode(ERRCODE_STATEMENT_TOO_COMPLEX), + (errmsg("WITH RECURSIVE not yet supported")))); + + if (query->hasWindowFuncs) + ereport(ERROR, + (errcode(ERRCODE_STATEMENT_TOO_COMPLEX), + (errmsg("Window functions not yet supported")))); + } + query_step->exec_nodes = get_plan_nodes_command(query_plan, query); if (query_step->exec_nodes) @@ -1463,16 +1488,6 @@ GetQueryPlan(Node *parsetree, const char *sql_statement, List *querytree_list) */ if (nodeTag(parsetree) == T_SelectStmt) { - if (query->intoClause) - ereport(ERROR, - (errcode(ERRCODE_STATEMENT_TOO_COMPLEX), - (errmsg("INTO clause not yet supported")))); - - if (query->setOperations) - ereport(ERROR, - (errcode(ERRCODE_STATEMENT_TOO_COMPLEX), - (errmsg("UNION, INTERSECT and EXCEPT are not yet supported")))); - if (StrictStatementChecking && query_step->exec_nodes && list_length(query_step->exec_nodes->nodelist) > 1) { ----------------------------------------------------------------------- Summary of changes: src/backend/pgxc/plan/planner.c | 39 +++++++++++++++++++++++++++------------ 1 files changed, 27 insertions(+), 12 deletions(-) hooks/post-receive -- Postgres-XC |
From: mason_s <ma...@us...> - 2010-06-16 14:04:53
|
Project "Postgres-XC". The branch, master has been updated via b65c64d294d9a91583534d951b758c5bccacea48 (commit) from 4a16b67e0239abda5f2ca8ec45489b7fc906ec4b (commit) - Log ----------------------------------------------------------------- commit b65c64d294d9a91583534d951b758c5bccacea48 Author: Mason S <masonsharp@mason-sharps-macbook.local> Date: Wed Jun 16 10:02:05 2010 -0400 When using hash distributed tables and a value that corresponds to the distribution column, if it is an expression containing constants, try and evaluate it to determine the destination execution node. This corresponds to bug 3008130. diff --git a/src/backend/pgxc/plan/planner.c b/src/backend/pgxc/plan/planner.c index 5e318dc..78c13a1 100644 --- a/src/backend/pgxc/plan/planner.c +++ b/src/backend/pgxc/plan/planner.c @@ -23,6 +23,7 @@ #include "lib/stringinfo.h" #include "nodes/nodeFuncs.h" #include "nodes/parsenodes.h" +#include "optimizer/clauses.h" #include "parser/parse_agg.h" #include "parser/parse_coerce.h" #include "pgxc/locator.h" @@ -257,7 +258,6 @@ free_join_list(void) static Expr * get_numeric_constant(Expr *expr) { - if (expr == NULL) return NULL; @@ -356,6 +356,7 @@ get_plan_nodes_insert(Query *query) ListCell *lc; long part_value; long *part_value_ptr = NULL; + Expr *eval_expr = NULL; /* Looks complex (correlated?) - best to skip */ if (query->jointree != NULL && query->jointree->fromlist != NULL) @@ -398,7 +399,13 @@ get_plan_nodes_insert(Query *query) if (strcmp(tle->resname, rel_loc_info->partAttrName) == 0) { /* We may have a cast, try and handle it */ - Expr *checkexpr = get_numeric_constant(tle->expr); + Expr *checkexpr = tle->expr; + + if (!IsA(tle->expr, Const)) + { + eval_expr = eval_const_expressions(NULL, tle->expr); + checkexpr = get_numeric_constant(eval_expr); + } if (checkexpr == NULL) break; /* no constant */ @@ -425,6 +432,9 @@ get_plan_nodes_insert(Query *query) /* single call handles both replicated and partitioned types */ exec_nodes = GetRelationNodes(rel_loc_info, part_value_ptr, false); + if (eval_expr) + pfree(eval_expr); + return exec_nodes; } @@ -524,9 +534,15 @@ examine_conditions(Special_Conditions *conditions, List *rtables, Node *expr_nod return false; /* Look at other argument */ + checkexpr = arg2; - /* We may have a cast, try and handle it */ - checkexpr = get_numeric_constant(arg2); + /* We may have a cast or expression, try and handle it */ + if (!IsA(arg2, Const)) + { + /* this gets freed when the memory context gets freed */ + Expr *eval_expr = eval_const_expressions(NULL, arg2); + checkexpr = get_numeric_constant(eval_expr); + } if (checkexpr != NULL) arg2 = checkexpr; ----------------------------------------------------------------------- Summary of changes: src/backend/pgxc/plan/planner.c | 24 ++++++++++++++++++++---- 1 files changed, 20 insertions(+), 4 deletions(-) hooks/post-receive -- Postgres-XC |