mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
Improve pg_set_attribute_stats() error message.
Previously, an invalid attribute name was caught, but the error message was unhelpful.
This commit is contained in:
parent
7b8b8dddd6
commit
4b096c67e0
@ -161,6 +161,11 @@ attribute_statistics_update(FunctionCallInfo fcinfo, int elevel)
|
||||
stats_check_required_arg(fcinfo, attarginfo, ATTNAME_ARG);
|
||||
attname = PG_GETARG_NAME(ATTNAME_ARG);
|
||||
attnum = get_attnum(reloid, NameStr(*attname));
|
||||
if (attnum == InvalidAttrNumber)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_UNDEFINED_COLUMN),
|
||||
errmsg("column \"%s\" of relation \"%s\" does not exist",
|
||||
NameStr(*attname), get_rel_name(reloid))));
|
||||
|
||||
stats_check_required_arg(fcinfo, attarginfo, INHERITED_ARG);
|
||||
inherited = PG_GETARG_BOOL(INHERITED_ARG);
|
||||
@ -860,6 +865,11 @@ pg_clear_attribute_stats(PG_FUNCTION_ARGS)
|
||||
stats_check_required_arg(fcinfo, attarginfo, ATTNAME_ARG);
|
||||
attname = PG_GETARG_NAME(ATTNAME_ARG);
|
||||
attnum = get_attnum(reloid, NameStr(*attname));
|
||||
if (attnum == InvalidAttrNumber)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_UNDEFINED_COLUMN),
|
||||
errmsg("column \"%s\" of relation \"%s\" does not exist",
|
||||
NameStr(*attname), get_rel_name(reloid))));
|
||||
|
||||
stats_check_required_arg(fcinfo, attarginfo, INHERITED_ARG);
|
||||
inherited = PG_GETARG_BOOL(INHERITED_ARG);
|
||||
|
@ -180,6 +180,12 @@ SELECT pg_catalog.pg_set_attribute_stats(
|
||||
avg_width => 2::integer,
|
||||
n_distinct => 0.3::real);
|
||||
ERROR: could not open relation with OID 0
|
||||
-- error: object doesn't exist
|
||||
SELECT pg_catalog.pg_clear_attribute_stats(
|
||||
relation => '0'::oid,
|
||||
attname => 'id'::name,
|
||||
inherited => false::boolean);
|
||||
ERROR: could not open relation with OID 0
|
||||
-- error: relation null
|
||||
SELECT pg_catalog.pg_set_attribute_stats(
|
||||
relation => NULL::oid,
|
||||
@ -189,6 +195,21 @@ SELECT pg_catalog.pg_set_attribute_stats(
|
||||
avg_width => 2::integer,
|
||||
n_distinct => 0.3::real);
|
||||
ERROR: "relation" cannot be NULL
|
||||
-- error: attname doesn't exist
|
||||
SELECT pg_catalog.pg_set_attribute_stats(
|
||||
relation => 'stats_import.test'::regclass,
|
||||
attname => 'nope'::name,
|
||||
inherited => false::boolean,
|
||||
null_frac => 0.1::real,
|
||||
avg_width => 2::integer,
|
||||
n_distinct => 0.3::real);
|
||||
ERROR: column "nope" of relation "test" does not exist
|
||||
-- error: attname doesn't exist
|
||||
SELECT pg_catalog.pg_clear_attribute_stats(
|
||||
relation => 'stats_import.test'::regclass,
|
||||
attname => 'nope'::name,
|
||||
inherited => false::boolean);
|
||||
ERROR: column "nope" of relation "test" does not exist
|
||||
-- error: attname null
|
||||
SELECT pg_catalog.pg_set_attribute_stats(
|
||||
relation => 'stats_import.test'::regclass,
|
||||
@ -301,7 +322,7 @@ SELECT pg_catalog.pg_set_attribute_stats(
|
||||
most_common_freqs => '{0.2,0.1}'::real[]
|
||||
);
|
||||
ERROR: invalid input syntax for type integer: "2023-09-30"
|
||||
-- warning: mcv cast failure
|
||||
-- error: mcv cast failure
|
||||
SELECT pg_catalog.pg_set_attribute_stats(
|
||||
relation => 'stats_import.test'::regclass,
|
||||
attname => 'id'::name,
|
||||
|
@ -130,6 +130,12 @@ SELECT pg_catalog.pg_set_attribute_stats(
|
||||
avg_width => 2::integer,
|
||||
n_distinct => 0.3::real);
|
||||
|
||||
-- error: object doesn't exist
|
||||
SELECT pg_catalog.pg_clear_attribute_stats(
|
||||
relation => '0'::oid,
|
||||
attname => 'id'::name,
|
||||
inherited => false::boolean);
|
||||
|
||||
-- error: relation null
|
||||
SELECT pg_catalog.pg_set_attribute_stats(
|
||||
relation => NULL::oid,
|
||||
@ -139,6 +145,21 @@ SELECT pg_catalog.pg_set_attribute_stats(
|
||||
avg_width => 2::integer,
|
||||
n_distinct => 0.3::real);
|
||||
|
||||
-- error: attname doesn't exist
|
||||
SELECT pg_catalog.pg_set_attribute_stats(
|
||||
relation => 'stats_import.test'::regclass,
|
||||
attname => 'nope'::name,
|
||||
inherited => false::boolean,
|
||||
null_frac => 0.1::real,
|
||||
avg_width => 2::integer,
|
||||
n_distinct => 0.3::real);
|
||||
|
||||
-- error: attname doesn't exist
|
||||
SELECT pg_catalog.pg_clear_attribute_stats(
|
||||
relation => 'stats_import.test'::regclass,
|
||||
attname => 'nope'::name,
|
||||
inherited => false::boolean);
|
||||
|
||||
-- error: attname null
|
||||
SELECT pg_catalog.pg_set_attribute_stats(
|
||||
relation => 'stats_import.test'::regclass,
|
||||
@ -231,7 +252,7 @@ SELECT pg_catalog.pg_set_attribute_stats(
|
||||
most_common_freqs => '{0.2,0.1}'::real[]
|
||||
);
|
||||
|
||||
-- warning: mcv cast failure
|
||||
-- error: mcv cast failure
|
||||
SELECT pg_catalog.pg_set_attribute_stats(
|
||||
relation => 'stats_import.test'::regclass,
|
||||
attname => 'id'::name,
|
||||
|
Loading…
x
Reference in New Issue
Block a user