mirror of
https://github.com/postgres/postgres.git
synced 2025-07-17 06:41:09 +03:00
Replace run-time error check with assertion
The error message was checking that the structures returned from the parser matched expectations. That's something we usually use assertions for, not a full user-facing error message. So replace that with an assertion (hidden inside lfirst_node()). Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://www.postgresql.org/message-id/flat/452e9df8-ec89-e01b-b64a-8cc6ce830458%40enterprisedb.com
This commit is contained in:
@ -220,26 +220,14 @@ CreateStatistics(CreateStatsStmt *stmt)
|
|||||||
*/
|
*/
|
||||||
foreach(cell, stmt->exprs)
|
foreach(cell, stmt->exprs)
|
||||||
{
|
{
|
||||||
Node *expr = (Node *) lfirst(cell);
|
StatsElem *selem = lfirst_node(StatsElem, 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;
|
|
||||||
|
|
||||||
if (selem->name) /* column reference */
|
if (selem->name) /* column reference */
|
||||||
{
|
{
|
||||||
char *attname;
|
char *attname;
|
||||||
|
HeapTuple atttuple;
|
||||||
|
Form_pg_attribute attForm;
|
||||||
|
TypeCacheEntry *type;
|
||||||
|
|
||||||
attname = selem->name;
|
attname = selem->name;
|
||||||
|
|
||||||
@ -273,6 +261,7 @@ CreateStatistics(CreateStatsStmt *stmt)
|
|||||||
{
|
{
|
||||||
Node *expr = selem->expr;
|
Node *expr = selem->expr;
|
||||||
Oid atttype;
|
Oid atttype;
|
||||||
|
TypeCacheEntry *type;
|
||||||
|
|
||||||
Assert(expr != NULL);
|
Assert(expr != NULL);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user