Punctuation in TelegraphCQ

TelegraphCQ supports basic punctuation tuples. A punctuation tuple is a tuple with just a timestamp attribute and no data. TelegraphCQ inserts punctuation tuples into streams to indicate that no tuples with timestamps before than the indicated value will occur in the stream.

Implementation of Punctuation

Punctuation tuples are implemented as HeapTuples with every field Additionally, TelegraphCQ sets the bit HEAP_ISPUNCT in a punctuation tuple's header. Code can use the HeapTupleIsPunct() macro to check whether a tuple is a punctuation tuple.

TelegraphCQ uses the function form_punct_tup() to create punctuation tuples.

Punctuation Producers

Portions of TelegraphCQ that generate punctuation tuples are:

Punctuation Consumers

We modified several operators to handle punctuation properly: