Documentation Source Text

Check-in [4f36464caa]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Remove requirement H16124. If the 3rd parameter to sqlite3_create_function is outside the range -1...127 then the behavior is undefined.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:4f36464caadbc74498b320f66f29c62ec5eb8a15
User & Date: drh 2009-05-24 22:00:21
Context
2009-05-24
23:20
Fill in some missing definitions and combine some requirements in fileformat.html. check-in: 9c0dadcbb7 user: dan tags: trunk
22:00
Remove requirement H16124. If the 3rd parameter to sqlite3_create_function is outside the range -1...127 then the behavior is undefined. check-in: 4f36464caa user: drh tags: trunk
11:01
Documentation fix: the sqlite3_create_function() interfaces return SQLITE_MISUSE of the number of arguments parameter is out of range. check-in: d06c1c4318 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to pages/limits.in.

123
124
125
126
127
128
129
130
131
132
133
134

135
136
137
138
139
140
141
<li>The number of columns in the result set of a SELECT statement</li>
<li>The number of terms in a GROUP BY or ORDER BY clause</li>
<li>The number of values in an INSERT statement</li>
</ul>

<p>
The default setting for SQLITE_MAX_COLUMN is 2000.  You can change it
at compile time to values as large as 32676.  You might be able to
redefine this value to be as large as billions, though nobody has ever
tried doing that so we do not know if it will work.  On the other hand, there
are people who will argue that a well-normalized database design
will never need a value larger than about 100.

</p>

<p>
In most applications, the number of columns is small - a few dozen.
There are places in the SQLite code generator that use algorithms
that are O(N&sup2;) where N is the number of columns.  
So if you redefine SQLITE_MAX_COLUMN to be a







|
<
<
|
<
>







123
124
125
126
127
128
129
130


131

132
133
134
135
136
137
138
139
<li>The number of columns in the result set of a SELECT statement</li>
<li>The number of terms in a GROUP BY or ORDER BY clause</li>
<li>The number of values in an INSERT statement</li>
</ul>

<p>
The default setting for SQLITE_MAX_COLUMN is 2000.  You can change it
at compile time to values as large as 32767. On the other hand, many


experienced database designers will argue that a well-normalized database

will never need more than 100 columns in a table.
</p>

<p>
In most applications, the number of columns is small - a few dozen.
There are places in the SQLite code generator that use algorithms
that are O(N&sup2;) where N is the number of columns.  
So if you redefine SQLITE_MAX_COLUMN to be a

Changes to req/hlr10000.txt.

1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
F is non-NULL and S and L are NULL.

HLR H16121 S20200
The [sqlite3_create_function(D,...)] interface shall fails with an
error code of [SQLITE_BUSY] if there exist [prepared statements]
associated with the [database connection] D.

HLR H16124 S20200
The [sqlite3_create_function(D,X,N,...)] interface shall fail with
an error code of [SQLITE_MISUSE] if parameter N is less
than -1 or greater than 127.

HLR H16127 S20200
When N is non-negative, the [sqlite3_create_function(D,X,N,...)]
interface shall register callbacks to be invoked for the
SQL function
named X when the number of arguments to the SQL function is
exactly N.








<
<
<
<
<







1396
1397
1398
1399
1400
1401
1402





1403
1404
1405
1406
1407
1408
1409
F is non-NULL and S and L are NULL.

HLR H16121 S20200
The [sqlite3_create_function(D,...)] interface shall fails with an
error code of [SQLITE_BUSY] if there exist [prepared statements]
associated with the [database connection] D.






HLR H16127 S20200
When N is non-negative, the [sqlite3_create_function(D,X,N,...)]
interface shall register callbacks to be invoked for the
SQL function
named X when the number of arguments to the SQL function is
exactly N.