Fix SUBSTR() so that it returns NULL if any argument is NULL.

Ticket #3626. (CVS 6228)

FossilOrigin-Name: 779fce82b7a89b972da488ce8bd35e23ca120c04
This commit is contained in:
drh
2009-02-01 19:42:37 +00:00
parent 4e79c59454
commit 8198d25442
4 changed files with 33 additions and 10 deletions
+19 -1
View File
@@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this file is testing the built-in SUBSTR() functions.
#
# $Id: substr.test,v 1.4 2009/02/01 19:23:32 drh Exp $
# $Id: substr.test,v 1.5 2009/02/01 19:42:38 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@@ -79,6 +79,24 @@ substr-test 1.14 abcdefg -5 -1 b
substr-test 1.15 abcdefg -5 -2 ab
substr-test 1.16 abcdefg -5 -3 ab
# Make sure NULL is returned if any parameter is NULL
#
do_test substr-1.90 {
db eval {SELECT ifnull(substr(NULL,1,1),'nil')}
} nil
do_test substr-1.91 {
db eval {SELECT ifnull(substr(NULL,1),'nil')}
} nil
do_test substr-1.92 {
db eval {SELECT ifnull(substr('abcdefg',NULL,1),'nil')}
} nil
do_test substr-1.93 {
db eval {SELECT ifnull(substr('abcdefg',NULL),'nil')}
} nil
do_test substr-1.94 {
db eval {SELECT ifnull(substr('abcdefg',1,NULL),'nil')}
} nil
# Make sure everything works with long unicode characters
#
substr-test 2.1 \u1234\u2345\u3456 1 1 \u1234