Skip to content

Commit f5217bc

Browse files
committed
fixes for passing down of promoteLongs
1 parent 7c1846c commit f5217bc

9 files changed

+21
-25
lines changed

lib/collection.js

+12-6
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@ var Collection = function(db, topology, dbName, name, pkFactory, options) {
6363
var internalHint = null;
6464
var opts = options != null && ('object' === typeof options) ? options : {};
6565
var slaveOk = options == null || options.slaveOk == null ? db.slaveOk : options.slaveOk;
66-
var serializeFunctions = options == null || options.serializeFunctions == null ? db.serializeFunctions : options.serializeFunctions;
67-
var raw = options == null || options.raw == null ? db.raw : options.raw;
66+
var serializeFunctions = options == null || options.serializeFunctions == null ? db.s.options.serializeFunctions : options.serializeFunctions;
67+
var raw = options == null || options.raw == null ? db.s.options.raw : options.raw;
68+
var promoteLongs = options == null || options.raw == null ? db.s.options.promoteLongs : options.promoteLongs;
6869
var readPreference = null;
6970
var collectionHint = null;
7071
var namespace = f("%s.%s", dbName, name);
@@ -106,12 +107,14 @@ var Collection = function(db, topology, dbName, name, pkFactory, options) {
106107
, namespace: namespace
107108
// Read preference
108109
, readPreference: readPreference
109-
// Raw
110-
, raw: raw
111110
// SlaveOK
112111
, slaveOk: slaveOk
113112
// Serialize functions
114113
, serializeFunctions: serializeFunctions
114+
// Raw
115+
, raw: raw
116+
// promoteLongs
117+
, promoteLongs: promoteLongs
115118
// internalHint
116119
, internalHint: internalHint
117120
// collectionHint
@@ -341,11 +344,14 @@ Collection.prototype.find = function() {
341344
newOptions.promiseLibrary = this.s.promiseLibrary;
342345

343346
// Set raw if available at collection level
344-
if(newOptions.raw == null && this.s.raw) newOptions.raw = this.s.raw;
347+
if(newOptions.raw == null && typeof this.s.raw == 'boolean') newOptions.raw = this.s.raw;
348+
// Set promoteLongs if available at collection level
349+
if(newOptions.promoteLongs == null && typeof this.s.promoteLongs == 'boolean') newOptions.promoteLongs = this.s.promoteLongs;
345350

346351
// Sort options
347-
if(findCommand.sort)
352+
if(findCommand.sort) {
348353
findCommand.sort = formattedOrderClause(findCommand.sort);
354+
}
349355

350356
// Set the readConcern
351357
if(this.s.readConcern) {

lib/cursor.js

-8
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,6 @@ define.classMethod('skip', {callback: false, promise:false, returns: [Cursor]});
659659
Cursor.prototype.nextObject = Cursor.prototype.next;
660660

661661
var nextObject = function(self, callback) {
662-
// console.log("cursor:: nextObject")
663662
if(self.s.state == Cursor.CLOSED || self.isDead && self.isDead()) return handleCallback(callback, MongoError.create({message: "Cursor is closed", driver:true}));
664663
if(self.s.state == Cursor.INIT && self.s.cmd.sort) {
665664
try {
@@ -841,17 +840,13 @@ Cursor.prototype.toArray = function(callback) {
841840
var toArray = function(self, callback) {
842841
var items = [];
843842

844-
// console.log("!!!!!!!!!!!!! toArray :: 0")
845843
// Reset cursor
846844
self.rewind();
847845
self.s.state = Cursor.INIT;
848-
// console.log("!!!!!!!!!!!!! toArray :: 1")
849846

850847
// Fetch all the documents
851848
var fetchDocs = function() {
852-
// console.log("!!!!!!!!!!!!! toArray :: 2")
853849
self._next(function(err, doc) {
854-
// console.log("!!!!!!!!!!!!! toArray :: 3")
855850
if(err) return handleCallback(callback, err);
856851
if(doc == null) {
857852
self.s.state = Cursor.CLOSED;
@@ -1057,16 +1052,13 @@ Cursor.prototype.explain = function(callback) {
10571052
define.classMethod('explain', {callback: true, promise:true});
10581053

10591054
Cursor.prototype._read = function(n) {
1060-
// console.log("=== _read")
10611055
var self = this;
10621056
if(self.s.state == Cursor.CLOSED || self.isDead()) {
10631057
return self.push(null);
10641058
}
10651059

10661060
// Get the next item
10671061
self.nextObject(function(err, result) {
1068-
// console.log("=== _read 1")
1069-
// console.dir(err)
10701062
if(err) {
10711063
if(self.listeners('error') && self.listeners('error').length > 0) {
10721064
self.emit('error', err);

lib/mongos.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ var release = os.release();
5454
, 'store', 'auto_reconnect', 'autoReconnect', 'emitError'
5555
, 'keepAlive', 'noDelay', 'connectTimeoutMS', 'socketTimeoutMS'
5656
, 'loggerLevel', 'logger', 'reconnectTries', 'appname', 'domainsEnabled'
57-
, 'servername'];
57+
, 'servername', 'promoteLongs'];
5858

5959
/**
6060
* Creates a new Mongos instance

lib/replset.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ var legalOptionNames = ['ha', 'haInterval', 'replicaSet', 'rs_name', 'secondaryA
4949
, 'store', 'auto_reconnect', 'autoReconnect', 'emitError'
5050
, 'keepAlive', 'noDelay', 'connectTimeoutMS', 'socketTimeoutMS', 'strategy', 'debug'
5151
, 'loggerLevel', 'logger', 'reconnectTries', 'appname', 'domainsEnabled'
52-
, 'servername'];
52+
, 'servername', 'promoteLongs'];
5353

5454
// Get package.json variable
5555
var driverVersion = require(__dirname + '/../package.json').version;

lib/server.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ var release = os.release();
5151
, 'keepAlive', 'noDelay', 'connectTimeoutMS', 'socketTimeoutMS'
5252
, 'loggerLevel', 'logger', 'reconnectTries', 'reconnectInterval', 'monitoring'
5353
, 'appname', 'domainsEnabled'
54-
, 'servername'];
54+
, 'servername', 'promoteLongs'];
5555

5656
/**
5757
* Creates a new Server instance

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"dependencies": {
1616
"es6-promise": "3.2.1",
1717
"mongodb-core": "2.0.9",
18+
"mongodb-core": "christkv/mongodb-core#2.0",
1819
"readable-stream": "2.1.5"
1920
},
2021
"devDependencies": {

test/functional/insert_tests.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -1466,8 +1466,6 @@ exports.handleBSONTypeInsertsCorrectly = {
14661466
test.ok(doc.maxkey instanceof MaxKey);
14671467

14681468
collection.findOne({"code": new Code("function () {}", {a: 77})}, function(err, doc) {
1469-
console.dir(err)
1470-
console.dir(doc)
14711469
test.equal(null, err);
14721470
test.ok(doc != null);
14731471
db.close();
@@ -1728,7 +1726,7 @@ exports.shouldCorrectlyHonorPromoteLongFalseNativeBSON = {
17281726

17291727
var o = configuration.writeConcernMax();
17301728
o.promoteLongs = false;
1731-
var db = configuration.newDbInstance(o, {native_parser:true})
1729+
var db = configuration.newDbInstance(o, {native_parser:true, promoteLongs: false})
17321730
db.open(function(err, db) {
17331731
db.collection('shouldCorrectlyHonorPromoteLong').insert({
17341732
doc: Long.fromNumber(10)
@@ -1759,6 +1757,7 @@ exports.shouldCorrectlyHonorPromoteLongFalseNativeBSONWithGetMore = {
17591757

17601758
var o = configuration.writeConcernMax();
17611759
o.promoteLongs = false;
1760+
// var db = configuration.newDbInstance(o, {native_parser:true, promoteLongs:false})
17621761
var db = configuration.newDbInstance(o, {native_parser:true})
17631762
db.open(function(err, db) {
17641763
db.collection('shouldCorrectlyHonorPromoteLongFalseNativeBSONWithGetMore').insertMany([
@@ -2135,7 +2134,6 @@ exports['Correctly allow forceServerObjectId for insertOne'] = {
21352134
test.equal(null, err);
21362135

21372136
db.collection('apm_test').insertOne({a:1}, {forceServerObjectId:true}).then(function(r) {
2138-
// console.dir(r)
21392137
test.equal(null, err);
21402138
test.equal(undefined, started[0].command.documents[0]._id);
21412139
listener.uninstrument();

test/functional/sharding_read_preference_tests.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ exports['Should correctly connect to MongoS using single server instance'] = {
250250
collection.insert({test:1}, {w:'majority', wtimeout:10000}, function(err, result) {
251251
test.equal(null, err);
252252

253-
collection.findOne({test:1}, {}, {readPreference:new ReadPreference(ReadPreference.SECONDARY, [{"dc2":"sf"}, {"dc1":"ny"}])}, function(err, item) {
253+
collection.findOne({test:1}, {}, {readPreference:new ReadPreference(ReadPreference.SECONDARY)}, function(err, item) {
254254
test.equal(null, err);
255255
test.equal(1, item.test);
256256

test/runner.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -571,9 +571,8 @@ if(argv.t == 'functional') {
571571

572572
return new mongo.Mongos([
573573
new mongo.Server(host, port, options)
574-
]);
575-
}, manager: new ShardingManager({
576-
})
574+
], options);
575+
}, manager: new ShardingManager({})
577576
}
578577

579578
executeTestSuite(config);

0 commit comments

Comments
 (0)