File: sequence.html

package info (click to toggle)
db4.8 4.8.30-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 112,668 kB
  • ctags: 53,848
  • sloc: ansic: 177,324; java: 66,060; tcl: 61,580; cs: 27,778; cpp: 24,761; sh: 15,649; perl: 14,013; xml: 8,309; makefile: 2,303; awk: 1,749; sql: 390; python: 26; php: 22; asm: 14
file content (201 lines) | stat: -rw-r--r-- 8,305 bytes parent folder | download | duplicates (5)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Chapter 19.  Sequences</title>
    <link rel="stylesheet" href="gettingStarted.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Berkeley DB Programmer's Reference Guide" />
    <link rel="up" href="index.html" title="Berkeley DB Programmer's Reference Guide" />
    <link rel="prev" href="txn_limits.html" title="Transaction limits" />
    <link rel="next" href="tcl.html" title="Chapter 20.  Berkeley DB Extensions: Tcl" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Chapter 19. 
		Sequences
        </th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="txn_limits.html">Prev</a> </td>
          <th width="60%" align="center"> </th>
          <td width="20%" align="right"> <a accesskey="n" href="tcl.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="chapter" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title"><a id="sequence"></a>Chapter 19. 
		Sequences
        </h2>
          </div>
        </div>
      </div>
      <div class="toc">
        <p>
          <b>Table of Contents</b>
        </p>
        <dl>
          <dt>
            <span class="sect1">
              <a href="sequence.html#sequence_intro">Introduction to sequences</a>
            </span>
          </dt>
        </dl>
      </div>
      <div class="sect1" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title" style="clear: both"><a id="sequence_intro"></a>Introduction to sequences</h2>
            </div>
          </div>
        </div>
        <p>Sequences provide an arbitrary number of persistent objects that return
an increasing or decreasing sequence of integers.  Opening a sequence
handle associates it with a record in a database.  The handle can
maintain a cache of values from the database so that a database update
is not needed as the application allocates a value.</p>
        <p>A sequence is stored as a record pair in a database.  The database may
be of any type, but may not have been configured to support duplicate
data items.  The sequence is referenced by the key used when the
sequence is created, therefore the key must be compatible with the
underlying access method.  If the database stores fixed-length records,
the record size must be at least 64 bytes long.</p>
        <p>Since a sequence handle is opened using a database handle, the use of
transactions with the sequence must follow how the database handle was
opened.  In other words, if the database handle was opened within a
transaction, operations on the sequence handle must use transactions.
Of course, if sequences are cached, not all operations will actually
trigger a transaction.</p>
        <p>For the highest concurrency, caching should be used and the
<a href="../api_reference/C/envset_flags.html#envset_flags_DB_AUTO_COMMIT" class="olink">DB_AUTO_COMMIT</a> and <a href="../api_reference/C/envset_flags.html#envset_flags_DB_TXN_NOSYNC" class="olink">DB_TXN_NOSYNC</a> flags should be
specified to the <a href="../api_reference/C/seqget.html" class="olink">DB_SEQUENCE-&gt;get()</a> method call.  If the allocation of the
sequence value must be part of a transaction, and rolled back if the
transaction aborts, then no caching should be specified and the
transaction handle must be passed to the <a href="../api_reference/C/seqget.html" class="olink">DB_SEQUENCE-&gt;get()</a> method.</p>
        <div class="informaltable">
          <table border="1" width="80%">
            <colgroup>
              <col />
              <col />
            </colgroup>
            <thead>
              <tr>
                <th>Sequences and Related Methods</th>
                <th>Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td>
                  <a href="../api_reference/C/seq.html" class="olink">Sequence class</a>
                </td>
                <td>Create a sequence handle</td>
              </tr>
              <tr>
                <td>
                  <a href="../api_reference/C/seqclose.html" class="olink">DB_SEQUENCE-&gt;close()</a>
                </td>
                <td>Close a sequence</td>
              </tr>
              <tr>
                <td>
                  <a href="../api_reference/C/seqget.html" class="olink">DB_SEQUENCE-&gt;get()</a>
                </td>
                <td>Get the next sequence element(s)</td>
              </tr>
              <tr>
                <td>
                  <a href="../api_reference/C/seqopen.html" class="olink">DB_SEQUENCE-&gt;open()</a>
                </td>
                <td>Return a handle for the underlying sequence database</td>
              </tr>
              <tr>
                <td>
                  <a href="../api_reference/C/seqopen.html" class="olink">DB_SEQUENCE-&gt;open()</a>
                </td>
                <td>Return the key for a sequence</td>
              </tr>
              <tr>
                <td>
                  <a href="../api_reference/C/seqinitial_value.html" class="olink">DB_SEQUENCE-&gt;initial_value()</a>
                </td>
                <td>Set the initial value of a sequence</td>
              </tr>
              <tr>
                <td>
                  <a href="../api_reference/C/seqopen.html" class="olink">DB_SEQUENCE-&gt;open()</a>
                </td>
                <td>Open a sequence</td>
              </tr>
              <tr>
                <td>
                  <a href="../api_reference/C/seqremove.html" class="olink">DB_SEQUENCE-&gt;remove()</a>
                </td>
                <td>Remove a sequence</td>
              </tr>
              <tr>
                <td>
                  <a href="../api_reference/C/seqstat.html" class="olink">DB_SEQUENCE-&gt;stat()</a>
                </td>
                <td>Return sequence statistics</td>
              </tr>
              <tr>
                <td>
                  <span class="emphasis">
                    <em>Sequences Configuration</em>
                  </span>
                </td>
                <td> </td>
              </tr>
              <tr>
                <td>
                  <a href="../api_reference/C/seqset_cachesize.html" class="olink">DB_SEQUENCE-&gt;set_cachesize()</a>
                </td>
                <td>Set the cache size of a sequence</td>
              </tr>
              <tr>
                <td>
                  <a href="../api_reference/C/seqset_flags.html" class="olink">DB_SEQUENCE-&gt;set_flags()</a>
                </td>
                <td>Set the flags for a sequence</td>
              </tr>
              <tr>
                <td>
                  <a href="../api_reference/C/seqset_range.html" class="olink">DB_SEQUENCE-&gt;set_range()</a>
                </td>
                <td>Set the range for a sequence</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="txn_limits.html">Prev</a> </td>
          <td width="20%" align="center"> </td>
          <td width="40%" align="right"> <a accesskey="n" href="tcl.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Transaction limits </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Chapter 20. 
		Berkeley DB Extensions: Tcl
        </td>
        </tr>
      </table>
    </div>
  </body>
</html>