docs: function() {
      var results = [],
          sourceDatas = [],
          sourceDataCloneDBs = [];
  
      for(var i=0; i<this.length; i++) {
        var sd = this[i].sourceData,
            path = this[i].path;
  
        if(path) {
          // Query result
          var sdi = sourceDatas.indexOf(sd);
          var sdc;
          
          // For each sourceData found, clone it
          if(sdi < 0) {
            sdc = SpahQL.db(this.dh.deepClone(sd));
  
            sourceDatas.push(sd);
            sourceDataCloneDBs.push(sdc);
            sdi = sourceDatas.length-1;
          }
          else {
            sdc = sourceDataCloneDBs[sdi];
          }
          
          // Now sourcedata is cloned, we can requery for the result
          var cloneResult = sdc.select(path);
          if(cloneResult[0]) results.push(cloneResult[0]);
        }
        else {
          // Primitive result, clone it right away
          results.push(this.dh.deepClone(this[i]));
        }
      }
      return new SpahQL(results);
    }