summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDwight <dmerriman@gmail.com>2008-04-08 15:42:14 -0400
committerDwight <dmerriman@gmail.com>2008-04-08 15:42:14 -0400
commita3f3a664a8dd83399c72021233c96a9ad4735a3d (patch)
treee33ca54b2fb9026ef7dbe7079fc548dbfa874983
parent993e4fd96751ce1e0b409dbc56bde39109a9bddb (diff)
downloadmongo-a3f3a664a8dd83399c72021233c96a9ad4735a3d.tar.gz
group by
appendBool / return bool from jni
-rw-r--r--db/db.cpp2
-rw-r--r--db/javajs.cpp2
-rw-r--r--db/jsobj.h5
-rw-r--r--db/query.cpp7
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;
}