Thread: BUG #16434: some data lost

BUG #16434: some data lost

From
PG Bug reporting form
Date:
The following bug has been logged on the website:

Bug reference:      16434
Logged by:          Kos Dav
Email address:      davydenka@mail.ru
PostgreSQL version: 11.5
Operating system:   Ubuntu 11.5-3.pgdg18.04+1) on x86_64-pc-linux-gnu,
Description:

i have parent table:
table
CREATE TABLE public.audit (
    id bigserial NOT NULL,
    ... some fields....
    created_at timestamp NULL
);
and partitions for every month :
CREATE TABLE public.a202001 PARTITION OF public.audit    FOR VALUES FROM
('2020-01-01') TO ('2020-02-01');
CREATE TABLE public.a202002 PARTITION OF public.audit    FOR VALUES FROM
('2020-02-01') TO ('2020-03-01');
CREATE TABLE public.a202003 PARTITION OF public.audit    FOR VALUES FROM
('2020-03-01') TO ('2020-04-01')...
permissions on table only select, insert.
periodically i copy data from one partition table to foreign server via
fdw.
yesteday i copied data from patrition  a202003

insert into public.a202003_foreign select * from public.a202003;
INSERT 0 61140720   -- copied 61140720    rows

Today I double-checked the quantity
select count(*) from public.a202003;           -- result 60594707  
select count(*) from public.a202003_foreign;   -- result 61140720 -- all
copied rows
Part of data missing (from 2020/03/01 00:00 to 2020/03/01 17:35) in table
a202003.
 
destination table has all id in row -start 643096815, 643096816 ....
but source table has lost  part of data and id start from id 643642828...

how it is possible?  no errors in log file. system not restarted. uptime
since 2020-03-10 02:48:09


Re:BUG #16434: some data lost

From
Konstantin Davydenka
Date:
 
today i copied rows again;
insert into public.a202003_foreign_new  select * from public.a202003;
copied 61140720! 
select count(*) from a202003  ; return result 60594707!
but how?  why i cannot see some rows in old tables ?
run: vacuum(full) a202003 and i can see  all rows in source table…
I don't understand that... why  "insert into select" statement query can see all rows,
 but other select queries can not see all rows.

Re: Re:BUG #16434: some data lost

From
Tom Lane
Date:
=?UTF-8?B?S29uc3RhbnRpbiBEYXZ5ZGVua2E=?= <davydenka@mail.ru> writes:
> I don't understand that... why  "insert into select" statement query can see all rows,
>  but other select queries can not see all rows.

I wonder if you have a corrupt index in there.  REINDEX should fix it if
so.

            regards, tom lane