Thread: Bug with sequences and WAL ?
Hi, If a new sequence is created, its creation is propagated via WAL. However, instead of getting the property 'is_called'=false (the correct value before its first use), we get 'is_called'=true after a PITR recovery. Is it a bug, or a normal behaviour ? (version of PostgreSQL : 8.0.4) Thank you, Philippe Ferreira.
Philippe Ferreira <phil.f@worldonline.fr> writes: > If a new sequence is created, its creation is propagated via WAL. > However, instead of getting the property 'is_called'=false (the correct > value before its first use), > we get 'is_called'=true after a PITR recovery. > Is it a bug, or a normal behaviour ? I don't think this is very important, because the normal behavior of sequences is that after a crash the sequence can be up to 32 (IIRC) counts beyond the last value actually delivered before the crash. To get "exact" restart behavior we'd need to emit a separate xlog record for each nextval() command, which seems like a pretty high price considering that you cannot assume no holes in the sequence values anyway. regards, tom lane
>I don't think this is very important, because the normal behavior of >sequences is that after a crash the sequence can be up to 32 (IIRC) >counts beyond the last value actually delivered before the crash. >To get "exact" restart behavior we'd need to emit a separate xlog >record for each nextval() command, which seems like a pretty high >price considering that you cannot assume no holes in the sequence >values anyway. > > Hi, You are right. I've already seen sequences increase up to 24 or 32 after a failover with PITR. However, I'm also using PITR in order to do switchover. In this case, I think that nothing should change... But, I recognize that using PITR for switchover is rather an "unsupported" functionnality... Thank you, Philippe Ferreira.
>To get "exact" restart behavior we'd need to emit a separate xlog >record for each nextval() command, which seems like a pretty high >price considering that you cannot assume no holes in the sequence >values anyway. > > Hi, Why not give the choice at compile-time ? Philippe.