From 30a554ca272a4344278b393a8b1181aed5192192 Mon Sep 17 00:00:00 2001 From: kai zhu Date: Sat, 4 Apr 2020 14:38:49 -0500 Subject: [PATCH] Fix issue with large numbers (#381) * - remove `-DLONGDOUBLE_TYPE=double` from `Makefile` - update test to include CAST(1.7976931348623157e+308 AS REAL) - add test-case to verify infinity upper-bound - Co-authored-by: Christopher J. Brody * Update test/test_issue325.js Co-authored-by: Ophir LOJKINE --- Makefile | 1 - test/test_issue325.js | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 test/test_issue325.js diff --git a/Makefile b/Makefile index 340a4fde..4031c258 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,6 @@ EMCC=emcc CFLAGS = \ -O2 \ - -DLONGDOUBLE_TYPE=double \ -DSQLITE_OMIT_LOAD_EXTENSION \ -DSQLITE_DISABLE_LFS \ -DSQLITE_ENABLE_FTS3 \ diff --git a/test/test_issue325.js b/test/test_issue325.js new file mode 100644 index 00000000..3ae6f35b --- /dev/null +++ b/test/test_issue325.js @@ -0,0 +1,39 @@ + +exports.test = function(sql, assert){ + "use strict"; + // Create a database + var db = new sql.Database(); + + // binding a large number + assert.strictEqual( + db.exec("SELECT ?", [1.7976931348623157e+308])[0].values[0][0], + 1.7976931348623157e+308, + "binding 1.7976931348623159e+308 as a parameter" + ); + + // inline result value test + assert.strictEqual( + db.exec("SELECT 1.7976931348623157e+308")[0].values[0][0], + 1.7976931348623157e+308, + "SELECT 1.7976931348623157e+308 is 1.7976931348623157e+308" + ); + + // Close the database and all associated statements + db.close(); +}; + +if (module == require.main) { + const target_file = process.argv[2]; + const sql_loader = require('./load_sql_lib'); + sql_loader(target_file).then((sql)=>{ + require('test').run({ + 'test issue325': function(assert){ + exports.test(sql, assert); + } + }); + }) + .catch((e)=>{ + console.error(e); + assert.fail(e); + }); +}