BUG #17886: Error disabling user triggers on a partitioned table

Поиск
Список
Период
Сортировка
От PG Bug reporting form
Тема BUG #17886: Error disabling user triggers on a partitioned table
Дата
Msg-id 17886-5406d5d828aa4aa3@postgresql.org
обсуждение исходный текст
Ответы Re: BUG #17886: Error disabling user triggers on a partitioned table  (jazzl 0013 <jazz001319@gmail.com>)
Re: BUG #17886: Error disabling user triggers on a partitioned table  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      17886
Logged by:          DzmitryH
Email address:      jazz001319@gmail.com
PostgreSQL version: 14.7
Operating system:   Linux 883a37b156f7 5.15.0-52-generic #58-Ubuntu SM
Description:

sequence of steps:
1. clean install PostgreSQL 14.7
2. Create test database
3. Create partiton table and partitions (for example only default
partiton)
4. Create trigger 
5. Disable user trigger on partitions

verbose step:
psql (14.7 (Debian 14.7-1.pgdg110+1))
Type "help" for help.

postgres=# \set VERBOSITY verbose
postgres=# create database testdb;
CREATE DATABASE
postgres=# CREATE TABLE IF NOT EXISTS public.test
(
    id bigserial,
    user_id bigint,
    type text NOT NULL,
    status text NOT NULL,
    details jsonb,
    created_timestamp timestamp with time zone NOT NULL DEFAULT 'now()',
        modified_timestamp timestamp with time zone NOT NULL DEFAULT
'now()',
    shard_id integer NOT NULL DEFAULT '1',
    demo boolean NOT NULL,
    CONSTRAINT test_pkey PRIMARY KEY (id, created_timestamp)
) PARTITION BY RANGE (created_timestamp);
CREATE TABLE
postgres=# CREATE TABLE public.test_def PARTITION OF public.test
    DEFAULT;
CREATE TABLE
postgres=# CREATE OR REPLACE FUNCTION
public.update_last_modified_timestamp()
    RETURNS trigger
    LANGUAGE 'plpgsql'
    COST 100
    VOLATILE NOT LEAKPROOF
AS $BODY$
BEGIN
  IF NEW != OLD
  THEN
    NEW.modified_timestamp := CURRENT_TIMESTAMP;
  END IF;
  RETURN NEW;
END;
$BODY$;
CREATE FUNCTION
postgres=# CREATE TRIGGER trigger_test
    BEFORE UPDATE
    ON public.test
    FOR EACH ROW
    EXECUTE FUNCTION public.update_last_modified_timestamp();
CREATE TRIGGER
postgres=# alter table public.test DISABLE TRIGGER USER;
ERROR:  42704: trigger "trigger_test" for table "test_def" does not exist
LOCATION:  EnableDisableTriggerNew, trigger.c:1658

result:
postgres=# alter table public.test DISABLE TRIGGER USER;
ERROR:  42704: trigger "trigger_test" for table "test_def" does not exist
LOCATION:  EnableDisableTriggerNew, trigger.c:1658

Expected Result (Postgresql 15.2 and 14.4 - fine):
testdb=> alter table public.test DISABLE TRIGGER USER;
ALTER TABLE


В списке pgsql-bugs по дате отправления:

Предыдущее
От: PG Bug reporting form
Дата:
Сообщение: BUG #17885: slow planning constraint_exclusion
Следующее
От: jazzl 0013
Дата:
Сообщение: Re: BUG #17886: Error disabling user triggers on a partitioned table