diff --git a/src/backend/commands/statscmds.c b/src/backend/commands/statscmds.c index acae19176c0..b244a0fbd7b 100644 --- a/src/backend/commands/statscmds.c +++ b/src/backend/commands/statscmds.c @@ -220,26 +220,14 @@ CreateStatistics(CreateStatsStmt *stmt) */ foreach(cell, stmt->exprs) { - Node *expr = (Node *) lfirst(cell); - StatsElem *selem; - HeapTuple atttuple; - Form_pg_attribute attForm; - TypeCacheEntry *type; - - /* - * We should not get anything else than StatsElem, given the grammar. - * But let's keep it as a safety. - */ - if (!IsA(expr, StatsElem)) - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("only simple column references and expressions are allowed in CREATE STATISTICS"))); - - selem = (StatsElem *) expr; + StatsElem *selem = lfirst_node(StatsElem, cell); if (selem->name) /* column reference */ { char *attname; + HeapTuple atttuple; + Form_pg_attribute attForm; + TypeCacheEntry *type; attname = selem->name; @@ -273,6 +261,7 @@ CreateStatistics(CreateStatsStmt *stmt) { Node *expr = selem->expr; Oid atttype; + TypeCacheEntry *type; Assert(expr != NULL);