diff options
author | Dwight <dmerriman@gmail.com> | 2008-04-08 15:42:14 -0400 |
---|---|---|
committer | Dwight <dmerriman@gmail.com> | 2008-04-08 15:42:14 -0400 |
commit | a3f3a664a8dd83399c72021233c96a9ad4735a3d (patch) | |
tree | e33ca54b2fb9026ef7dbe7079fc548dbfa874983 | |
parent | 993e4fd96751ce1e0b409dbc56bde39109a9bddb (diff) | |
download | mongo-a3f3a664a8dd83399c72021233c96a9ad4735a3d.tar.gz |
group by
appendBool / return bool from jni
-rw-r--r-- | db/db.cpp | 2 | ||||
-rw-r--r-- | db/javajs.cpp | 2 | ||||
-rw-r--r-- | db/jsobj.h | 5 | ||||
-rw-r--r-- | db/query.cpp | 7 |
4 files changed, 12 insertions, 4 deletions
diff --git a/db/db.cpp b/db/db.cpp index 5da883c5079..192cc6336f9 100644 --- a/db/db.cpp +++ b/db/db.cpp @@ -269,7 +269,7 @@ public: };
void listen(int port) {
- cout << "db version: 105 31mar2008 minilex" << endl;
+ cout << "db version: 106 apr2008 group" << endl;
pdfileInit();
testTheDb();
cout << curTimeMillis() % 10000 << " waiting for connections on port " << port << " ...\n" << endl;
diff --git a/db/javajs.cpp b/db/javajs.cpp index cb134fc58de..3bb9dc9b4db 100644 --- a/db/javajs.cpp +++ b/db/javajs.cpp @@ -284,7 +284,7 @@ JSObj JavaJSImpl::scopeGetObject( jlong id , const char * field ) int len = _getEnv()->CallStaticIntMethod( _dbhook , _scopeGetObject , id , _getEnv()->NewStringUTF( field ) , bb ); //cout << "len : " << len << endl; - assert( len > 0 && len < guess ); + jassert( len > 0 && len < guess ); JSObj obj(buf, true); assert( obj.objsize() <= guess ); diff --git a/db/jsobj.h b/db/jsobj.h index 15267054510..ff74d6e286d 100644 --- a/db/jsobj.h +++ b/db/jsobj.h @@ -295,6 +295,11 @@ public: b.append((void *) subObj.objdata(), subObj.objsize());
}
+ void appendBool(const char *fieldName, int val) {
+ b.append((char) Bool);
+ b.append(fieldName);
+ b.append((char) (val?1:0));
+ }
void append(const char *fieldName, double n) {
b.append((char) Number);
b.append(fieldName);
diff --git a/db/query.cpp b/db/query.cpp index a397ea38afe..21739dfa157 100644 --- a/db/query.cpp +++ b/db/query.cpp @@ -395,7 +395,7 @@ string validateNS(const char *ns, NamespaceDetails *d) { bool userCreateNS(const char *ns, JSObj& j);
-const int edebug=0;
+const int edebug=1;
bool dbEval(JSObj& cmd, JSObjBuilder& result) {
Element e = cmd.firstElement();
@@ -430,12 +430,15 @@ bool dbEval(JSObj& cmd, JSObjBuilder& result) { }
int type = s.type("return");
- if( type == Object )
+ if( type == Object || type == Array )
result.append("retval", s.getObject("return"));
else if( type == Number )
result.append("retval", s.getNumber("return"));
else if( type == String )
result.append("retval", s.getString("return").c_str());
+ else if( type == Bool ) {
+ result.appendBool("retval", s.getBoolean("return"));
+ }
return true;
}
|