Hi,

I use PostgreSQL 9.6 (9.6.3)  with table partitioning, when I use INSERT order 
psql, it does not show the number of lines inserted.
I do not see any information in the version notes from the PostgreSQL 
documentation, even with the 9.6.5 update, is it some bug ?

Here is a short test case :

--
-- table
--

CREATE TABLE t1_part

   ( id         BIGINT ,
     libelle   VARCHAR(30 )
   )
   WITH ( FILLFACTOR = 70 )
   TABLESPACE data_1
;

--
-- partitions : 2.
--
CREATE TABLE t1_part_01
  ( CHECK ( id >= 1 AND id <= 1000 )
  )
  INHERITS ( t1_part ) ;

CREATE TABLE t1_part_02
  ( CHECK ( id > 1000 AND id <= 22000000 )
  )
  INHERITS ( t1_part ) ;

--
-- function of partitionning
--

CREATE FUNCTION t1_part_test_trigger()
RETURNS TRIGGER AS $$
BEGIN
    IF NEW.id >= 1 AND NEW.id <= 1000 THEN
        INSERT INTO t1_part_01 VALUES (NEW.*);
    ELSIF NEW.id > 1000 AND NEW.id <= 22000000 THEN
        INSERT INTO t1_part_02 VALUES (NEW.*);
    END IF ;
    RETURN NULL;
END;
$$
LANGUAGE plpgsql;

--
-- trigger
--

CREATE TRIGGER insert_t1_part
    BEFORE INSERT ON t1_part
    FOR EACH ROW EXECUTE PROCEDURE t1_part_test_trigger();

--
-- Insert
--

hba=> insert into t1_part values (3000001, '3000001' ) ;
INSERT 0 0                                    -- should be "INSERT 0 1"

hba=> select * from t1_part ;
   id    | libelle
---------+----------
3000001 | 3000001
(1 row)                     -- proof of successful insert.

Thanks by advance.
Didier Sterbecq

Reply via email to