-C Avoid\sa\ssegfault\swhen\srunning\svacuum\son\san\sin-memory\sdatabase.\sTicket\s#3620.\s(CVS\s6221)
-D 2009-01-31T14:54:07
+C Better\serror\smessage\swhen\scoalesce()\shas\stoo\sfew\sarguments.\s\sTicket\s#3623.\s(CVS\s6222)
+D 2009-01-31T22:28:49
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 3871d308188cefcb7c5ab20da4c7b6aad023bc52
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/btree.h 07359623fa24748709dd61212a32364a6adc6b56
F src/btreeInt.h 44bcbfe387ba99a3a9f2527bd12fa1bb8bc574b3
F src/build.c c8bf5dcef4d5889bc57eecdb8b3dba178e5e06a8
-F src/callback.c bee8949d619b1b7b1e4dfac8a19c5116ae1dd12a
+F src/callback.c 5f10bca853e59a2c272bbfd5b720303f8b69e520
F src/complete.c cb14e06dbe79dee031031f0d9e686ff306afe07c
F src/date.c 870770dde3fb56772ab247dfb6a6eda44d16cfbc
F src/delete.c 6249005bdd8f85db6ec5f31ddb5c07de023693cc
F test/fts3expr.test 000f05df771e203187ceac49ad21c303c720b783
F test/fts3expr2.test 8501de895a4c0631e7226c9bac055cd49c9f6646
F test/fts3near.test dc196dd17b4606f440c580d45b3d23aa975fd077
-F test/func.test a50f0a4b69ac251debe1dce3ba29da7476dc8c52
+F test/func.test e361349bcae8c51976f1826fd7d6355e483cf9b8
F test/fuzz.test 8bad3b9b09bad47c50f3433f9598707a70247ce1
F test/fuzz2.test ea38692ce2da99ad79fe0be5eb1a452c1c4d37bb
F test/fuzz3.test aec64345184d1662bd30e6a17851ff659d596dc5
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P 86be908c5e77ba2b9ac98e394fa987b443d790f8
-R 338358bbac17f79c52e09eabfb9a08f6
-U danielk1977
-Z 69820336f312727069bd2180b04a2b93
+P 407830c6839a81fa0a1010940740df3011713a88
+R c3945ec4bae662615ea149b764aed5c3
+U drh
+Z 5e40bffc92d9593bf4b2389c15a0c92c
-407830c6839a81fa0a1010940740df3011713a88
\ No newline at end of file
+9cd43c82a3c123829806aa7bf14efdd29f4424d8
\ No newline at end of file
** This file contains functions used to access the internal hash tables
** of user defined functions and collation sequences.
**
-** $Id: callback.c,v 1.34 2008/12/10 21:19:57 drh Exp $
+** $Id: callback.c,v 1.35 2009/01/31 22:28:49 drh Exp $
*/
#include "sqliteInt.h"
** that uses encoding enc. The value returned indicates how well the
** request is matched. A higher value indicates a better match.
**
-** The returned value is always between 1 and 6, as follows:
+** The returned value is always between 0 and 6, as follows:
**
+** 0: Not a match, or if nArg<0 and the function is has no implementation.
** 1: A variable arguments function that prefers UTF-8 when a UTF-16
** encoding is requested, or vice versa.
** 2: A variable arguments function that uses UTF-16BE when UTF-16LE is
*/
static int matchQuality(FuncDef *p, int nArg, u8 enc){
int match = 0;
- if( p->nArg==-1 || p->nArg==nArg || nArg==-1 ){
+ if( p->nArg==-1 || p->nArg==nArg
+ || (nArg==-1 && (p->xFunc!=0 || p->xStep!=0))
+ ){
match = 1;
if( p->nArg==nArg || nArg==-1 ){
match = 4;
# This file implements regression tests for SQLite library. The
# focus of this file is testing built-in functions.
#
-# $Id: func.test,v 1.87 2008/10/12 00:27:54 shane Exp $
+# $Id: func.test,v 1.88 2009/01/31 22:28:49 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
"
} {1 {no such function: nullx_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789a}}
+do_test func-27.1 {
+ catchsql {SELECT coalesce()}
+} {1 {wrong number of arguments to function coalesce()}}
+do_test func-27.2 {
+ catchsql {SELECT coalesce(1)}
+} {1 {wrong number of arguments to function coalesce()}}
+do_test func-27.3 {
+ catchsql {SELECT coalesce(1,2)}
+} {0 1}
+
finish_test