Skip to content

Commit 8c33a3a

Browse files
committed
Update pgq.md
1 parent 68bd8ed commit 8c33a3a

File tree

1 file changed

+49
-14
lines changed

1 file changed

+49
-14
lines changed

pgq.md

+49-14
Original file line numberDiff line numberDiff line change
@@ -370,8 +370,13 @@ when 'table_change_rec0' then
370370
select x_id into v_x_id from mq.table_change_rec0 where consumed=false order by crt_time,id limit 1;
371371
open curs1 for select * from mq.table_change_rec0 where consumed=false and x_id=v_x_id order by crt_time,id for update;
372372
else
373-
select crt_time into v_crt_time from mq.table_change_rec0 where consumed=false order by crt_time,id limit n;
374-
open curs1 for select * from mq.table_change_rec0 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
373+
select crt_time into v_crt_time from mq.table_change_rec0 where consumed=false order by crt_time,id limit 1 offset n-1;
374+
if found then
375+
open curs1 for select * from mq.table_change_rec0 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
376+
else
377+
-- n超出所剩跟踪记录
378+
open curs1 for select * from mq.table_change_rec0 where consumed=false order by crt_time,id for update;
379+
end if;
375380
end if;
376381
377382
fetch curs1 into v_table_change_rec;
@@ -468,8 +473,13 @@ when 'table_change_rec1' then
468473
select x_id into v_x_id from mq.table_change_rec1 where consumed=false order by crt_time,id limit 1;
469474
open curs1 for select * from mq.table_change_rec1 where consumed=false and x_id=v_x_id order by crt_time,id for update;
470475
else
471-
select crt_time into v_crt_time from mq.table_change_rec1 where consumed=false order by crt_time,id limit n;
472-
open curs1 for select * from mq.table_change_rec1 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
476+
select crt_time into v_crt_time from mq.table_change_rec1 where consumed=false order by crt_time,id limit 1 offset n-1;
477+
if found then
478+
open curs1 for select * from mq.table_change_rec1 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
479+
else
480+
-- n超出所剩跟踪记录
481+
open curs1 for select * from mq.table_change_rec1 where consumed=false order by crt_time,id for update;
482+
end if;
473483
end if;
474484
475485
fetch curs1 into v_table_change_rec;
@@ -566,8 +576,13 @@ when 'table_change_rec2' then
566576
select x_id into v_x_id from mq.table_change_rec2 where consumed=false order by crt_time,id limit 1;
567577
open curs1 for select * from mq.table_change_rec2 where consumed=false and x_id=v_x_id order by crt_time,id for update;
568578
else
569-
select crt_time into v_crt_time from mq.table_change_rec2 where consumed=false order by crt_time,id limit n;
570-
open curs1 for select * from mq.table_change_rec2 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
579+
select crt_time into v_crt_time from mq.table_change_rec2 where consumed=false order by crt_time,id limit 1 offset n-1;
580+
if found then
581+
open curs1 for select * from mq.table_change_rec2 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
582+
else
583+
-- n超出所剩跟踪记录
584+
open curs1 for select * from mq.table_change_rec2 where consumed=false order by crt_time,id for update;
585+
end if;
571586
end if;
572587
573588
fetch curs1 into v_table_change_rec;
@@ -664,8 +679,13 @@ when 'table_change_rec3' then
664679
select x_id into v_x_id from mq.table_change_rec3 where consumed=false order by crt_time,id limit 1;
665680
open curs1 for select * from mq.table_change_rec3 where consumed=false and x_id=v_x_id order by crt_time,id for update;
666681
else
667-
select crt_time into v_crt_time from mq.table_change_rec3 where consumed=false order by crt_time,id limit n;
668-
open curs1 for select * from mq.table_change_rec3 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
682+
select crt_time into v_crt_time from mq.table_change_rec3 where consumed=false order by crt_time,id limit 1 offset n-1;
683+
if found then
684+
open curs1 for select * from mq.table_change_rec3 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
685+
else
686+
-- n超出所剩跟踪记录
687+
open curs1 for select * from mq.table_change_rec3 where consumed=false order by crt_time,id for update;
688+
end if;
669689
end if;
670690
671691
fetch curs1 into v_table_change_rec;
@@ -762,8 +782,13 @@ when 'table_change_rec4' then
762782
select x_id into v_x_id from mq.table_change_rec4 where consumed=false order by crt_time,id limit 1;
763783
open curs1 for select * from mq.table_change_rec4 where consumed=false and x_id=v_x_id order by crt_time,id for update;
764784
else
765-
select crt_time into v_crt_time from mq.table_change_rec4 where consumed=false order by crt_time,id limit n;
766-
open curs1 for select * from mq.table_change_rec4 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
785+
select crt_time into v_crt_time from mq.table_change_rec4 where consumed=false order by crt_time,id limit 1 offset n-1;
786+
if found then
787+
open curs1 for select * from mq.table_change_rec4 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
788+
else
789+
-- n超出所剩跟踪记录
790+
open curs1 for select * from mq.table_change_rec4 where consumed=false order by crt_time,id for update;
791+
end if;
767792
end if;
768793
769794
fetch curs1 into v_table_change_rec;
@@ -860,8 +885,13 @@ when 'table_change_rec5' then
860885
select x_id into v_x_id from mq.table_change_rec5 where consumed=false order by crt_time,id limit 1;
861886
open curs1 for select * from mq.table_change_rec5 where consumed=false and x_id=v_x_id order by crt_time,id for update;
862887
else
863-
select crt_time into v_crt_time from mq.table_change_rec5 where consumed=false order by crt_time,id limit n;
864-
open curs1 for select * from mq.table_change_rec5 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
888+
select crt_time into v_crt_time from mq.table_change_rec5 where consumed=false order by crt_time,id limit 1 offset n-1;
889+
if found then
890+
open curs1 for select * from mq.table_change_rec5 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
891+
else
892+
-- n超出所剩跟踪记录
893+
open curs1 for select * from mq.table_change_rec5 where consumed=false order by crt_time,id for update;
894+
end if;
865895
end if;
866896
867897
fetch curs1 into v_table_change_rec;
@@ -958,8 +988,13 @@ when 'table_change_rec6' then
958988
select x_id into v_x_id from mq.table_change_rec6 where consumed=false order by crt_time,id limit 1;
959989
open curs1 for select * from mq.table_change_rec6 where consumed=false and x_id=v_x_id order by crt_time,id for update;
960990
else
961-
select crt_time into v_crt_time from mq.table_change_rec6 where consumed=false order by crt_time,id limit n;
962-
open curs1 for select * from mq.table_change_rec6 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
991+
select crt_time into v_crt_time from mq.table_change_rec6 where consumed=false order by crt_time,id limit 1 offset n-1;
992+
if found then
993+
open curs1 for select * from mq.table_change_rec6 where consumed=false and crt_time<=v_crt_time order by crt_time,id for update;
994+
else
995+
-- n超出所剩跟踪记录
996+
open curs1 for select * from mq.table_change_rec6 where consumed=false order by crt_time,id for update;
997+
end if;
963998
end if;
964999
9651000
fetch curs1 into v_table_change_rec;

0 commit comments

Comments
 (0)