if (type->lt_opr == InvalidOid)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("column \"%s\" cannot be used in multivariate statistics because its type %s has no default btree operator class",
- attname, format_type_be(attForm->atttypid))));
+ errmsg("cannot create multivariate statistics on column \"%s\"",
+ attname),
+ errdetail("The type %s has no default btree operator class.",
+ format_type_be(attForm->atttypid))));
}
/* Treat virtual generated columns as expressions */
if (type->lt_opr == InvalidOid)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("column \"%s\" cannot be used in multivariate statistics because its type %s has no default btree operator class",
- get_attname(relid, var->varattno, false), format_type_be(var->vartype))));
+ errmsg("cannot create multivariate statistics on column \"%s\"",
+ get_attname(relid, var->varattno, false)),
+ errdetail("The type %s has no default btree operator class.",
+ format_type_be(var->vartype))));
}
/* Treat virtual generated columns as expressions */
if (type->lt_opr == InvalidOid)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("expression cannot be used in multivariate statistics because its type %s has no default btree operator class",
- format_type_be(atttype))));
+ errmsg("cannot create multivariate statistics on this expression"),
+ errdetail("The type %s has no default btree operator class.",
+ format_type_be(atttype))));
}
stxexprs = lappend(stxexprs, expr);
ERROR: cannot specify statistics kinds when building univariate statistics
-- multivariate statistics without a less-than operator not supported
CREATE STATISTICS tst (ndistinct) ON x, w from ext_stats_test;
-ERROR: column "w" cannot be used in multivariate statistics because its type xid has no default btree operator class
+ERROR: cannot create multivariate statistics on column "w"
+DETAIL: The type xid has no default btree operator class.
DROP TABLE ext_stats_test;
-- Ensure stats are dropped sanely, and test IF NOT EXISTS while at it
CREATE TABLE ab1 (a INTEGER, b INTEGER, c INTEGER);