]>
Commit | Line | Data |
---|---|---|
b3a6c129 MŁ |
1 | diff -uNr sqlite-3.2.7.orig/src/func.c sqlite-3.2.7/src/func.c |
2 | --- sqlite-3.2.7.orig/src/func.c 2005-09-17 18:34:55.000000000 +0200 | |
3 | +++ sqlite-3.2.7/src/func.c 2005-10-17 00:11:22.000000000 +0200 | |
4 | @@ -139,6 +139,31 @@ | |
5 | } | |
6 | ||
7 | /* | |
8 | +** Implementation of the sign() function | |
9 | +*/ | |
10 | +static void signFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ | |
11 | + assert( argc==1 ); | |
12 | + switch( sqlite3_value_type(argv[0]) ){ | |
13 | + case SQLITE_INTEGER: { | |
14 | + i64 iVal = sqlite3_value_int64(argv[0]); | |
15 | + iVal = (iVal > 0)? 1 : (iVal < 0)? -1 : 0; | |
16 | + sqlite3_result_int64(context, iVal); | |
17 | + break; | |
18 | + } | |
19 | + case SQLITE_NULL: { | |
20 | + sqlite3_result_null(context); | |
21 | + break; | |
22 | + } | |
23 | + default: { | |
24 | + double rVal = sqlite3_value_double(argv[0]); | |
25 | + rVal = (rVal > 0)? 1.0 : (rVal < 0)? -1.0 : 0; | |
26 | + sqlite3_result_double(context, rVal); | |
27 | + break; | |
28 | + } | |
29 | + } | |
30 | +} | |
31 | + | |
32 | +/* | |
33 | ** Implementation of the substr() function | |
34 | */ | |
35 | static void substrFunc( | |
36 | @@ -963,6 +988,7 @@ | |
37 | { "substr", 3, 0, SQLITE_UTF16LE, 0, sqlite3utf16Substr }, | |
38 | #endif | |
39 | { "abs", 1, 0, SQLITE_UTF8, 0, absFunc }, | |
40 | + { "sign", 1, 0, SQLITE_UTF8, 0, signFunc }, | |
41 | { "round", 1, 0, SQLITE_UTF8, 0, roundFunc }, | |
42 | { "round", 2, 0, SQLITE_UTF8, 0, roundFunc }, | |
43 | { "upper", 1, 0, SQLITE_UTF8, 0, upperFunc }, |