BoundHelperSpec.prototype.buildPartialSpec = function()

in jones-ndb/impl/ndb/NdbOperation.js [358:386]


BoundHelperSpec.prototype.buildPartialSpec = function(base, bound,
                                                      dbIndexHandler, buffer) {
  var nparts, err, columns;
  columns = dbIndexHandler.getAllColumnMetadata();
  err = null;

  /* count finite key parts.
     IndexBounds has assumed all columns are nullable, so we may have to
     transform a NULL bound to a -Infinity.
  */
  for(nparts = 0 ; nparts < bound.key.length; nparts++) {
    if((bound.key[nparts] == Infinity)  ||
       (bound.key[nparts] == -Infinity) ||
       (bound.key[nparts] === null && ! columns[nparts].isNullable))
    {
       break;
    }
  }
  if(nparts > 0) {
    err = encodeColumnsInBuffer(bound.key, nparts, columns,
                               dbIndexHandler.dbIndex.record, buffer, []);
  }
  udebug.log("Encoded", nparts, "parts for", (base ? "high" : "low"), "bound");

  this[base]     = (nparts > 0 ? buffer : null);
  this[base + 1] = nparts;
  this[base + 2] = bound.inclusive;
  return err;
};