This file is indexed.

/usr/share/doc/postgresql-10-pgq3/html/files/schema-sql.html is in postgresql-10-pgq3 3.2.6-7.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Internal Tables - PgQ</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>

<!--  Generated by Natural Docs, version 1.51 -->
<!--  http://www.naturaldocs.org  -->

<!-- saved from url=(0026)http://www.naturaldocs.org -->




<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Internal_Tables"></a>Internal Tables</h1><div class=CBody><h4 class=CHeading>Overview</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pgq.queue</td><td class=CDLDescription>Queue configuration</td></tr><tr><td class=CDLEntry>pgq.consumer</td><td class=CDLDescription>Consumer names</td></tr><tr><td class=CDLEntry>pgq.subscription</td><td class=CDLDescription>Consumer registrations</td></tr><tr><td class=CDLEntry>pgq.tick</td><td class=CDLDescription>Per-queue snapshots (ticks)</td></tr><tr><td class=CDLEntry>pgq.event_*</td><td class=CDLDescription>Data tables</td></tr><tr><td class=CDLEntry>pgq.retry_queue</td><td class=CDLDescription>Events to be retried later</td></tr></table><p>Standard triggers store events in the pgq.event_* data tables There is one top event table pgq.event_&lt;queue_id&gt; for each queue inherited from pgq.event_template wuith three tables for actual data pgq.event_&lt;queue_id&gt;_0 to pgq.event_&lt;queue_id&gt;_2.</p><p>The active table is rotated at interval, so that if all the consubers have passed some poin the oldes one can be emptied using TRUNCATE command for efficiency</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Internal_Tables" >Internal Tables</a></td><td class=SDescription></td></tr><tr class="SDatabaseTable"><td class=SEntry><a href="#pgq.consumer" >pgq.<wbr>consumer</a></td><td class=SDescription>Name to id lookup for consumers</td></tr><tr class="SDatabaseTable"><td class=SEntry><a href="#pgq.queue" >pgq.<wbr>queue</a></td><td class=SDescription>Information about available queues</td></tr><tr class="SDatabaseTable"><td class=SEntry><a href="#pgq.tick" >pgq.tick</a></td><td class=SDescription>Snapshots for event batching</td></tr><tr class="SDatabaseTable"><td class=SEntry><a href="#pgq.subscription" >pgq.<wbr>subscription</a></td><td class=SDescription>Consumer registration on a queue.</td></tr><tr class="SDatabaseTable"><td class=SEntry><a href="#pgq.event_template" >pgq.<wbr>event_template</a></td><td class=SDescription>Parent table for all event tables</td></tr><tr class="SDatabaseTable"><td class=SEntry><a href="#pgq.retry_queue" >pgq.<wbr>retry_queue</a></td><td class=SDescription>Events to be retried. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CDatabaseTable"><div class=CTopic><h2 class=CTitle><a name="pgq.consumer"></a>pgq.<wbr>consumer</h2><div class=CBody><p>Name to id lookup for consumers</p><h4 class=CHeading>Columns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>co_id</td><td class=CDLDescription>consumer&rsquo;s id for internal usage</td></tr><tr><td class=CDLEntry>co_name</td><td class=CDLDescription>consumer&rsquo;s id for external usage</td></tr></table></div></div></div>

<div class="CDatabaseTable"><div class=CTopic><h2 class=CTitle><a name="pgq.queue"></a>pgq.<wbr>queue</h2><div class=CBody><p>Information about available queues</p><h4 class=CHeading>Columns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>queue_id</td><td class=CDLDescription>queue id for internal usage</td></tr><tr><td class=CDLEntry>queue_name</td><td class=CDLDescription>queue name visible outside</td></tr><tr><td class=CDLEntry>queue_ntables</td><td class=CDLDescription>how many data tables the queue has</td></tr><tr><td class=CDLEntry>queue_cur_table</td><td class=CDLDescription>which data table is currently active</td></tr><tr><td class=CDLEntry>queue_rotation_period</td><td class=CDLDescription>period for data table rotation</td></tr><tr><td class=CDLEntry>queue_switch_step1</td><td class=CDLDescription>tx when rotation happened</td></tr><tr><td class=CDLEntry>queue_switch_step2</td><td class=CDLDescription>tx after rotation was committed</td></tr><tr><td class=CDLEntry>queue_switch_time</td><td class=CDLDescription>time when switch happened</td></tr><tr><td class=CDLEntry>queue_external_ticker</td><td class=CDLDescription>ticks come from some external sources</td></tr><tr><td class=CDLEntry>queue_ticker_paused</td><td class=CDLDescription>ticker is paused</td></tr><tr><td class=CDLEntry>queue_disable_insert</td><td class=CDLDescription>disallow pgq.insert_event()</td></tr><tr><td class=CDLEntry>queue_ticker_max_count</td><td class=CDLDescription>batch should not contain more events</td></tr><tr><td class=CDLEntry>queue_ticker_max_lag</td><td class=CDLDescription>events should not age more</td></tr><tr><td class=CDLEntry>queue_ticker_idle_period</td><td class=CDLDescription>how often to tick when no events happen</td></tr><tr><td class=CDLEntry>queue_per_tx_limit</td><td class=CDLDescription>Max number of events single TX can insert</td></tr><tr><td class=CDLEntry>queue_data_pfx</td><td class=CDLDescription>prefix for data table names</td></tr><tr><td class=CDLEntry>queue_event_seq</td><td class=CDLDescription>sequence for event id&rsquo;s</td></tr><tr><td class=CDLEntry>queue_tick_seq</td><td class=CDLDescription>sequence for tick id&rsquo;s</td></tr><tr><td class=CDLEntry>queue_extra_maint</td><td class=CDLDescription>array of functon names to call during maintenance</td></tr></table></div></div></div>

<div class="CDatabaseTable"><div class=CTopic><h2 class=CTitle><a name="pgq.tick"></a>pgq.tick</h2><div class=CBody><p>Snapshots for event batching</p><h4 class=CHeading>Columns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>tick_queue</td><td class=CDLDescription>queue id whose tick it is</td></tr><tr><td class=CDLEntry>tick_id</td><td class=CDLDescription>ticks id (per-queue)</td></tr><tr><td class=CDLEntry>tick_time</td><td class=CDLDescription>time when tick happened</td></tr><tr><td class=CDLEntry>tick_snapshot</td><td class=CDLDescription>transaction state</td></tr><tr><td class=CDLEntry>tick_event_seq</td><td class=CDLDescription>last value for event seq</td></tr></table></div></div></div>

<div class="CDatabaseTable"><div class=CTopic><h2 class=CTitle><a name="pgq.subscription"></a>pgq.<wbr>subscription</h2><div class=CBody><p>Consumer registration on a queue.</p><h4 class=CHeading>Columns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sub_id</td><td class=CDLDescription>subscription id for internal usage</td></tr><tr><td class=CDLEntry>sub_queue</td><td class=CDLDescription>queue id</td></tr><tr><td class=CDLEntry>sub_consumer</td><td class=CDLDescription>consumer&rsquo;s id</td></tr><tr><td class=CDLEntry>sub_last_tick</td><td class=CDLDescription>last tick the consumer processed</td></tr><tr><td class=CDLEntry>sub_batch</td><td class=CDLDescription>shortcut for queue_id/consumer_id/tick_id</td></tr><tr><td class=CDLEntry>sub_next_tick</td><td class=CDLDescription>batch end pos</td></tr></table></div></div></div>

<div class="CDatabaseTable"><div class=CTopic><h2 class=CTitle><a name="pgq.event_template"></a>pgq.<wbr>event_template</h2><div class=CBody><p>Parent table for all event tables</p><h4 class=CHeading>Columns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>ev_id</td><td class=CDLDescription>event&rsquo;s id, supposed to be unique per queue</td></tr><tr><td class=CDLEntry>ev_time</td><td class=CDLDescription>when the event was inserted</td></tr><tr><td class=CDLEntry>ev_txid</td><td class=CDLDescription>transaction id which inserted the event</td></tr><tr><td class=CDLEntry>ev_owner</td><td class=CDLDescription>subscription id that wanted to retry this</td></tr><tr><td class=CDLEntry>ev_retry</td><td class=CDLDescription>how many times the event has been retried, NULL for new events</td></tr><tr><td class=CDLEntry>ev_type</td><td class=CDLDescription>consumer/producer can specify what the data fields contain</td></tr><tr><td class=CDLEntry>ev_data</td><td class=CDLDescription>data field</td></tr><tr><td class=CDLEntry>ev_extra1</td><td class=CDLDescription>extra data field</td></tr><tr><td class=CDLEntry>ev_extra2</td><td class=CDLDescription>extra data field</td></tr><tr><td class=CDLEntry>ev_extra3</td><td class=CDLDescription>extra data field</td></tr><tr><td class=CDLEntry>ev_extra4</td><td class=CDLDescription>extra data field</td></tr></table></div></div></div>

<div class="CDatabaseTable"><div class=CTopic><h2 class=CTitle><a name="pgq.retry_queue"></a>pgq.<wbr>retry_queue</h2><div class=CBody><p>Events to be retried.&nbsp;  When retry time reaches, they will be put back into main queue.</p><h4 class=CHeading>Columns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>ev_retry_after</td><td class=CDLDescription>time when it should be re-inserted to main queue</td></tr><tr><td class=CDLEntry>ev_queue</td><td class=CDLDescription>queue id, used to speed up event copy into queue</td></tr><tr><td class=CDLEntry>*</td><td class=CDLDescription>same as pgq.event_template</td></tr></table></div></div></div>

</div><!--Content-->


<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->


<div id=Menu><div class=MTitle>PgQ<div class=MSubTitle>Database API</div></div><div class=MEntry><div class=MFile><a href="external-sql.html">Public Functions</a></div></div><div class=MEntry><div class=MFile><a href="triggers-sql.html">Public Triggers</a></div></div><div class=MEntry><div class=MFile><a href="internal-sql.html">Internal Functions</a></div></div><div class=MEntry><div class=MFile id=MSelected>Internal Tables</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Index</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/DatabaseTables.html">Database Tables</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div></div></div></div><script type="text/javascript"><!--
var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="DatabaseTables">Database Tables</option><option value="Functions">Functions</option></select></div></div><!--Menu-->



<!--START_ND_TOOLTIPS-->
<!--END_ND_TOOLTIPS-->




<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>


<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>