aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifest22
-rw-r--r--manifest.uuid2
-rw-r--r--src/printf.c2
-rw-r--r--src/sqliteInt.h6
-rw-r--r--src/util.c10
-rw-r--r--src/vdbe.c4
-rw-r--r--src/vdbemem.c2
7 files changed, 28 insertions, 20 deletions
diff --git a/manifest b/manifest
index 09462d54c..b88de430c 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sshared-cache\smode\sproblem\striggered\swhen\ssqlite3_open16()\swas\sused\sto\sopen\sthe\ssecond\sor\ssubsequent\sconnections\sto\sa\sutf-8\sdatabase.\s(CVS\s5059)
-D 2008-04-28T16:19:35
+C Change\sthe\simplementation\sof\sthe\sNaN\srecognition\sto\sbe\smore\scross-platform.\nTicket\s#3089.\s(CVS\s5060)
+D 2008-04-28T16:55:26
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
F Makefile.in 25b3282a4ac39388632c2fb0e044ff494d490952
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -127,14 +127,14 @@ F src/pager.h 45ec2188593afd48a25c743529646771d75e83e4
F src/parse.y fc4bd35c6088901f7c8daead26c6fb11c87d22e7
F src/pragma.c 2e4bb2e76e48a32750529fdc4bfe86ac5f54e01b
F src/prepare.c adc7e1fc08dfbab63cd213d4c0aff8f3fa70d477
-F src/printf.c 05d2b44d7b5b80c8a4a09108ddad9c20e254370d
+F src/printf.c 2d9bac813d1319babf3c6e925cf7ec5be1281c94
F src/random.c 2b2db2de4ab491f5a14d3480466f8f4b5a5db74a
F src/select.c b02ee16591f0194739e7deb12099d3e98e60b7f3
F src/server.c 087b92a39d883e3fa113cae259d64e4c7438bc96
F src/shell.c be22ec05c8c4a43a95a6ad3b8068542200451e07
F src/sqlite.h.in abb785d2afcf45bb9344fe6edc1c7b428e1b719f
F src/sqlite3ext.h faacd0e6a81aabee0861c6d7883c9172e74ef5b3
-F src/sqliteInt.h d038951808706ae039b05090e068674d307f3e3f
+F src/sqliteInt.h 1884454ab9c29b331c31a659c56d73ff2af2e077
F src/sqliteLimit.h f435e728c6b620ef7312814d660a81f9356eb5c8
F src/table.c 46ccf9b7892a86f57420ae7bac69ecd5e72d26b5
F src/tclsqlite.c 2877726bf32f7d72ff057b37ed6c93485b667ea1
@@ -167,16 +167,16 @@ F src/tokenize.c a96abe15a8db6fea2e964cdce2acba9ed17bc26f
F src/trigger.c 9bd3b6fa0beff4a02d262c96466f752ec15a7fc3
F src/update.c 57282dae1ffffaf4aedc3201ed77f8ef09be4f45
F src/utf.c 8c94fa10efc78c2568d08d436acc59df4df7191b
-F src/util.c 943caa4071488b20ed90588f0704c6825f91836b
+F src/util.c 6b030399aa362338316ba5726cb625318ea74bed
F src/vacuum.c 3524411bfb58aac0d87eadd3e5b7cd532772af30
-F src/vdbe.c 2d75ac15ec69721340f0320e5b2fefbbd1aa2831
+F src/vdbe.c 1e0ee231e5b035195c6d0043f059fe7f3df563da
F src/vdbe.h bfd84bda447f39cb599302c7ec85067dae20453c
F src/vdbeInt.h 05316345da487b0cf540482576f9ae3337d133cd
F src/vdbeapi.c 0e1b5a808bb0e556f2a975eb7d11fd3153e922bf
F src/vdbeaux.c 7a0d0f021ebc54ae581a4f1ba833a2bee576228e
F src/vdbeblob.c 554736781ee273a8089c776e96bdb53e66f57ce6
F src/vdbefifo.c a30c237b2a3577e1415fb6e288cbb6b8ed1e5736
-F src/vdbemem.c e2450d6c798f35a30413a79c5fa9b1a24058629d
+F src/vdbemem.c 8cdc5d4c9558338a2c5ae81135d0826136833b5e
F src/vtab.c 13cd7f225c685a71aeba79c0ef521022913f185a
F src/where.c 85719d58e0f680b5d8239dc6af82b159775d7376
F tclinstaller.tcl 4356d9d94d2b5ed5e68f9f0c80c4df3048dd7617
@@ -630,7 +630,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P 7bf8213ce9f591f4c2ef6c1e19a17712e3bae9e3
-R 613b7949fdaa0711be115c0f2be92a3b
-U danielk1977
-Z 355fdcb5723cd5025089cad5f7c888ad
+P 20946bf6dd704416c41edd863103e85fc7ab4ef2
+R 80368d71b836d83e7f2e7f2f1d8e19df
+U drh
+Z 00d3002a00844183e10c99274d36883e
diff --git a/manifest.uuid b/manifest.uuid
index 036e36004..c9448b3dc 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-20946bf6dd704416c41edd863103e85fc7ab4ef2 \ No newline at end of file
+07fd9a8c6ca0876f7ec447ce65173957005dc75c \ No newline at end of file
diff --git a/src/printf.c b/src/printf.c
index 4e7525798..eb90de4d9 100644
--- a/src/printf.c
+++ b/src/printf.c
@@ -474,7 +474,7 @@ static void vxprintf(
if( xtype==etFLOAT ) realvalue += rounder;
/* Normalize realvalue to within 10.0 > realvalue >= 1.0 */
exp = 0;
- if( sqlite3_isnan(realvalue) ){
+ if( sqlite3IsNaN(realvalue) ){
bufpt = "NaN";
length = 3;
break;
diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index d52a04cf1..fd7d7602f 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -11,7 +11,7 @@
*************************************************************************
** Internal interface definitions for SQLite.
**
-** @(#) $Id: sqliteInt.h,v 1.697 2008/04/28 12:54:15 drh Exp $
+** @(#) $Id: sqliteInt.h,v 1.698 2008/04/28 16:55:26 drh Exp $
*/
#ifndef _SQLITEINT_H_
#define _SQLITEINT_H_
@@ -191,8 +191,6 @@
#include <assert.h>
#include <stddef.h>
-#define sqlite3_isnan(X) ((X)!=(X))
-
/*
** If compiling for a processor that lacks floating point support,
** substitute integer for floating-point
@@ -1766,6 +1764,8 @@ void *sqlite3DbReallocOrFree(sqlite3 *, void *, int);
void *sqlite3DbRealloc(sqlite3 *, void *, int);
int sqlite3MallocSize(void *);
+int sqlite3IsNaN(double);
+
char *sqlite3MPrintf(sqlite3*,const char*, ...);
char *sqlite3VMPrintf(sqlite3*,const char*, va_list);
#if defined(SQLITE_TEST) || defined(SQLITE_DEBUG)
diff --git a/src/util.c b/src/util.c
index 28cfffa4a..2a7d7a2b0 100644
--- a/src/util.c
+++ b/src/util.c
@@ -14,7 +14,7 @@
** This file contains functions for allocating memory, comparing
** strings, and stuff like that.
**
-** $Id: util.c,v 1.222 2008/04/16 00:49:12 drh Exp $
+** $Id: util.c,v 1.223 2008/04/28 16:55:26 drh Exp $
*/
#include "sqliteInt.h"
#include <stdarg.h>
@@ -22,6 +22,14 @@
/*
+** Return true if the floating point value is Not a Number.
+*/
+int sqlite3IsNaN(double x){
+ volatile double y = x;
+ return x!=y;
+}
+
+/*
** Set the most recent error code and error string for the sqlite
** handle "db". The error code is set to "err_code".
**
diff --git a/src/vdbe.c b/src/vdbe.c
index 78183fcfa..2f027e95c 100644
--- a/src/vdbe.c
+++ b/src/vdbe.c
@@ -43,7 +43,7 @@
** in this file for details. If in doubt, do not deviate from existing
** commenting and indentation practices when changing or adding code.
**
-** $Id: vdbe.c,v 1.735 2008/04/25 12:25:42 drh Exp $
+** $Id: vdbe.c,v 1.736 2008/04/28 16:55:26 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@@ -1195,7 +1195,7 @@ case OP_Remainder: { /* same as TK_REM, in1, in2, out3 */
break;
}
}
- if( sqlite3_isnan(b) ){
+ if( sqlite3IsNaN(b) ){
goto arithmetic_result_is_null;
}
pOut->r = b;
diff --git a/src/vdbemem.c b/src/vdbemem.c
index f45f38426..9f831ecc9 100644
--- a/src/vdbemem.c
+++ b/src/vdbemem.c
@@ -482,7 +482,7 @@ void sqlite3VdbeMemSetInt64(Mem *pMem, i64 val){
** manifest type REAL.
*/
void sqlite3VdbeMemSetDouble(Mem *pMem, double val){
- if( sqlite3_isnan(val) ){
+ if( sqlite3IsNaN(val) ){
sqlite3VdbeMemSetNull(pMem);
}else{
sqlite3VdbeMemRelease(pMem);