         @_set_fields = []
         # Which fields *must* be included in any set query
         @_required_set_fields = {}
-        @_allowed_set_fields = {}  # and which are *allowed* to be set
         for field in misc.keys(@_query[@_table][0])
             if @_client_query?.set?.fields?[field]?
                 @_set_fields.push(field)
-                @_allowed_set_fields[field] = true
             if @_client_query?.set?.required_fields?[field]?
                 @_required_set_fields[field] = true
 

        # If something changed, then change in our local store, and also kick off a save to the backend.
        if not immutable.is(new_val, cur)
            @_value_local = @_value_local.set(id, new_val)
            @_last_set = new Date() - 0
            @save(cb)
            @emit('change', [id])  # CRITICAL: other code assumes the key is *NOT* sent with this change event!
        return new_val

        #    if Math.random() <= .5
        #        query = []
        #@_fix_if_no_update_soon() # -disabled -- instead use "checking changefeed ids".
        @_client.query
            query   : query
            options : [{set:true}]  # force it to be a set query
            cb      : (err) =>
                if err
                    console.warn("_save('#{@_table}') error: #{err}")
                    cb?(err)
                else
                    @emit('saved', saved_objs)
                    # success: each change in the query what committed successfully to the database; we can
                    # safely set @_value_server (for each value) as long as it didn't change in the meantime.
                    for k, v of changed
                        if immutable.is(@_value_server.get(k), v.old_val)  # immutable.is since either could be undefined
                            #console.log "setting @_value_server[#{k}] =", v.new_val?.toJS()
                            @_value_server = @_value_server.set(k, v.new_val)
                    if not at_start.equals(@_value_local)
                        # keep saving until @_value_local doesn't change *during* the save -- this means
                        # when saving stops that we guarantee there are no unsaved changes.
                        @_save(cb)
                    else
                        cb?()

    ###
    Disabled --
