Better documentation on the limits of user-defined functions. And a

marginally better error message when those limits are exceeded.
Ticket #1847. (CVS 3247)

FossilOrigin-Name: 0d369ff071d296501cc33d4622144b22946ac555
This commit is contained in:
drh 2006-06-14 15:35:36 +00:00
parent 26e4144d64
commit badf7a7a2f
4 changed files with 20 additions and 13 deletions

View File

@ -1,5 +1,5 @@
C Add\sxUpdate\smethod\sto\sthe\secho\stest\smodule.\sCurrently\suntested.\s(CVS\s3246)
D 2006-06-14T15:16:36
C Better\sdocumentation\son\sthe\slimits\sof\suser-defined\sfunctions.\s\sAnd\sa\nmarginally\sbetter\serror\smessage\swhen\sthose\slimits\sare\sexceeded.\nTicket\s#1847.\s(CVS\s3247)
D 2006-06-14T15:35:37
F Makefile.in 200f6dc376ecfd9b01e5359c4e0c10c02f649b34
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@ -49,7 +49,7 @@ F src/hash.h 1b3f7e2609141fd571f62199fc38687d262e9564
F src/insert.c 2c3eeb4bcde13c1006824ef14953c2fdad31cf36
F src/legacy.c fa15d505dd4e45044177ee4d1c6aeaf8c836d390
F src/loadext.c d8c7bd14e6ebc4e9f1ff269475bf63e131919449
F src/main.c f4397bf95216496e49db2153789788f4b1207b91
F src/main.c 4e48472d06ac3fc0250023e2eb406fc7d8d0a27c
F src/md5.c c5fdfa5c2593eaee2e32a5ce6c6927c986eaf217
F src/os.c 59f05de8c5777c34876607114a2fbe55ae578235
F src/os.h ac2ccb4f48902c1611a7e1f171eb81d17e3b8eb2
@ -322,7 +322,7 @@ F www/audit.tcl 90e09d580f79c7efec0c7d6f447b7ec5c2dce5c0
F www/autoinc.tcl b357f5ba954b046ee35392ce0f884a2fcfcdea06
F www/c_interface.tcl b51b08591554c16a0c3ef718364a508ac25abc7e
F www/capi3.tcl 7a7cc225fe02eb7ab861a6019b08baa0014409e1
F www/capi3ref.tcl ab76e918c52f7d4027accc6f84a8845ee5c43b16
F www/capi3ref.tcl 530fffe3b5729981dc4cfd32e2bafd4ba3dad2ec
F www/changes.tcl ec6d4fa4d302a76d662509c7c4796a159bd66b31
F www/common.tcl 14d121c28532ad20c3e349caa4db708b0b822083
F www/compile.tcl 276546d7eb445add5a867193bbd80f6919a6b084
@ -366,7 +366,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
P e5fff87d004ccf0cf8ba1f6afa032f31144527d9
R d24bc91ccb9a06f930675327990c7800
U danielk1977
Z db7c917a9ca4e17b1b7a1b3ea7331c7f
P 676de55b28f0b22cf78f5e71f4a960f3d76c2d72
R a8a1cc8c95b40bc320a675a33fc7e864
U drh
Z a5cbc134908c784d2a3323e83c952926

View File

@ -1 +1 @@
676de55b28f0b22cf78f5e71f4a960f3d76c2d72
0d369ff071d296501cc33d4622144b22946ac555

View File

@ -14,7 +14,7 @@
** other files are for internal use by SQLite and should not be
** accessed by users of the library.
**
** $Id: main.c,v 1.342 2006/06/11 23:41:55 drh Exp $
** $Id: main.c,v 1.343 2006/06/14 15:35:37 drh Exp $
*/
#include "sqliteInt.h"
#include "os.h"
@ -415,6 +415,7 @@ int sqlite3CreateFunc(
(!xFunc && (!xFinal && xStep)) ||
(nArg<-1 || nArg>127) ||
(255<(nName = strlen(zFunctionName))) ){
sqlite3Error(db, SQLITE_ERROR, "bad parameters");
return SQLITE_ERROR;
}

View File

@ -1,4 +1,4 @@
set rcsid {$Id: capi3ref.tcl,v 1.39 2006/05/27 11:15:48 drh Exp $}
set rcsid {$Id: capi3ref.tcl,v 1.40 2006/06/14 15:35:37 drh Exp $}
source common.tcl
header {C/C++ Interface For SQLite Version 3}
puts {
@ -669,7 +669,11 @@ int sqlite3_create_function16(
only difference between these two routines is that the second argument, the
name of the (scalar) function or aggregate, is encoded in UTF-8 for
sqlite3_create_function() and UTF-16 for sqlite3_create_function16().
The length of the name is limited to 255 bytes, exclusive of the
zero-terminator. Note that the name length limit is in bytes, not
characters. Any attempt to create a function with a longer name
will result in an SQLITE_ERROR error.
The first argument is the database handle that the new function or
aggregate is to be added to. If a single program uses more than one
database handle internally, then user functions or aggregates must
@ -678,7 +682,9 @@ int sqlite3_create_function16(
The third argument is the number of arguments that the function or
aggregate takes. If this argument is -1 then the function or
aggregate may take any number of arguments.
aggregate may take any number of arguments. The maximum number
of arguments to a new SQL function is 127. A number larger than
127 for the third argument results in an SQLITE_ERROR error.
The fourth argument, eTextRep, specifies what type of text arguments
this function prefers to receive. Any function should be able to work