1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
3
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
4
<title>Run-time Limits</title>
5
<style type="text/css">
8
font-family: Verdana, sans-serif;
13
a:visited { color: #734559 }
15
.logo { position:absolute; margin:3px; }
31
.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }
32
.toolbar a:visited { color: white; }
33
.toolbar a:hover { color: #044a64; background: white; }
35
.content { margin: 5%; }
36
.content dt { font-weight:bold; }
37
.content dd { margin-bottom: 25px; margin-left:20%; }
38
.content ul { padding:0px; padding-left: 15px; margin:0px; }
41
.se { background: url(../images/se.gif) 100% 100% no-repeat #044a64}
42
.sw { background: url(../images/sw.gif) 0% 100% no-repeat }
43
.ne { background: url(../images/ne.gif) 100% 0% no-repeat }
44
.nw { background: url(../images/nw.gif) 0% 0% no-repeat }
46
/* Things for "fancyformat" documents start here. */
47
.fancy img+p {font-style:italic}
48
.fancy .codeblock i { color: darkblue; }
49
.fancy h1,.fancy h2,.fancy h3,.fancy h4 {font-weight:normal;color:#044a64}
50
.fancy h2 { margin-left: 10px }
51
.fancy h3 { margin-left: 20px }
52
.fancy h4 { margin-left: 30px }
53
.fancy th {white-space:nowrap;text-align:left;border-bottom:solid 1px #444}
54
.fancy th, .fancy td {padding: 0.2em 1ex; vertical-align:top}
55
.fancy #toc a { color: darkblue ; text-decoration: none }
56
.fancy .todo { color: #AA3333 ; font-style : italic }
57
.fancy .todo:before { content: 'TODO:' }
58
.fancy p.todo { border: solid #AA3333 1px; padding: 1ex }
59
.fancy img { display:block; }
60
.fancy :link:hover, .fancy :visited:hover { background: wheat }
61
.fancy p,.fancy ul,.fancy ol { margin: 1em 5ex }
62
.fancy li p { margin: 1em 0 }
63
/* End of "fancyformat" specific rules. */
69
<div><!-- container div to satisfy validator -->
71
<a href="../index.html">
72
<img class="logo" src="../images/sqlite370_banner.gif" alt="SQLite Logo"
74
<div><!-- IE hack to prevent disappearing logo--></div>
75
<div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div>
77
<table width=100% style="clear:both"><tr><td>
78
<div class="se"><div class="sw"><div class="ne"><div class="nw">
79
<table width=100% style="padding:0;margin:0;cell-spacing:0"><tr>
82
<a href="../about.html">About</a>
83
<a href="../sitemap.html">Sitemap</a>
84
<a href="../docs.html">Documentation</a>
85
<a href="../download.html">Download</a>
86
<a href="../copyright.html">License</a>
87
<a href="../news.html">News</a>
88
<a href="../support.html">Support</a>
91
gMsg = "Search SQLite Docs..."
92
function entersearch() {
93
var q = document.getElementById("q");
94
if( q.value == gMsg ) { q.value = "" }
95
q.style.color = "black"
96
q.style.fontStyle = "normal"
98
function leavesearch() {
99
var q = document.getElementById("q");
100
if( q.value == "" ) {
102
q.style.color = "#044a64"
103
q.style.fontStyle = "italic"
108
<div style="padding:0 1em 0px 0;white-space:nowrap">
109
<form name=f method="GET" action="http://www.sqlite.org/search">
110
<input id=q name=q type=text
111
onfocus="entersearch()" onblur="leavesearch()" style="width:24ex;padding:1px 1ex; border:solid white 1px; font-size:0.9em ; font-style:italic;color:#044a64;" value="Search SQLite Docs...">
112
<input type=submit value="Go" style="border:solid white 1px;background-color:#044a64;color:white;font-size:0.9em;padding:0 1ex">
116
</div></div></div></div>
118
<div class=startsearch></div>
120
<a href="intro.html"><h2>SQLite C Interface</h2></a><h2>Run-time Limits</h2><blockquote><pre>int sqlite3_limit(sqlite3*, int id, int newVal);
121
</pre></blockquote><p>
122
This interface allows the size of various constructs to be limited
123
on a connection by connection basis. The first parameter is the
124
<a href="../c3ref/sqlite3.html">database connection</a> whose limit is to be set or queried. The
125
second parameter is one of the <a href="../c3ref/c_limit_attached.html">limit categories</a> that define a
126
class of constructs to be size limited. The third parameter is the
127
new limit for that construct.</p>
129
<p>If the new limit is a negative number, the limit is unchanged.
130
For each limit category SQLITE_LIMIT_<i>NAME</i> there is a
131
<a href="../limits.html">hard upper bound</a>
132
set at compile-time by a C preprocessor macro called
133
<a href="../limits.html">SQLITE_MAX_<i>NAME</i></a>.
134
(The "_LIMIT_" in the name is changed to "_MAX_".)
135
Attempts to increase a limit above its hard upper bound are
136
silently truncated to the hard upper bound.</p>
138
<p>Regardless of whether or not the limit was changed, the
139
<a href="../c3ref/limit.html">sqlite3_limit()</a> interface returns the prior value of the limit.
140
Hence, to find the current value of a limit without changing it,
141
simply invoke this interface with the third parameter set to -1.</p>
143
<p>Run-time limits are intended for use in applications that manage
144
both their own internal database and also databases that are controlled
145
by untrusted external sources. An example application might be a
146
web browser that has its own databases for storing history and
147
separate databases controlled by JavaScript applications downloaded
148
off the Internet. The internal databases can be given the
149
large, default limits. Databases managed by external sources can
150
be given much smaller limits designed to prevent a denial of service
151
attack. Developers might also want to use the <a href="../c3ref/set_authorizer.html">sqlite3_set_authorizer()</a>
152
interface to further control untrusted SQL. The size of the database
153
created by an untrusted script can be contained using the
154
<a href="../pragma.html#pragma_max_page_count">max_page_count</a> <a href="../pragma.html#syntax">PRAGMA</a>.</p>
156
<p>New run-time limit categories may be added in future releases.
157
</p><p>See also lists of
158
<a href="objlist.html">Objects</a>,
159
<a href="constlist.html">Constants</a>, and
160
<a href="funclist.html">Functions</a>.</p>