anchor.diff:      fetch_start_virtual(Pid, ddSchema, MatchSpec, BlockSize, Opts);
   fetch_start(Pid, ddSize, MatchSpec, BlockSize, Opts) ->
       fetch_start_virtual(Pid, ddSize, MatchSpec, BlockSize, Opts);
  +fetch_start(Pid, snapshot, MatchSpec, BlockSize, Opts) ->
  +    fetch_start_virtual(Pid, snapshot, MatchSpec, BlockSize, Opts);
   fetch_start(Pid, Table, MatchSpec, BlockSize, Opts) ->
       imem_if:fetch_start(Pid, physical_table_name(Table), MatchSpec, BlockSize, Opts).
   
  
positive.code:     select_virtual(ddSchema, MatchSpec);
  select(ddSize, MatchSpec, _Limit) ->
      select_virtual(ddSize, MatchSpec);
  select(Table, MatchSpec, Limit) ->
      imem_if:select(physical_table_name(Table), MatchSpec, Limit).
  
  
negative.code:     [{ddSchema,{Schema,Node},[]} || {Schema,Node} <- data_nodes()];
  read(ddSize) ->
      [hd(read(ddSize,Name)) || Name <- all_tables()];
  read(snapshot) ->
      {bkp, BkpInfo} = imem_snap:info(bkp),
      {zip, ZipInfo} = imem_snap:info(zip),
      [{snapshot,list_to_binary(N),<<"bkp">>,S,
        imem_datatype:datetime_to_io(D)}
       || {N,S,D} <- proplists:get_value(snaptables, BkpInfo)]
      ++
      [begin
           {ok, #file_info{size=S, mtime=D}} = file:read_file_info(N),
           {snapshot,
            list_to_binary(filename:basename(N)),<<"zip">>,S,
            imem_datatype:datetime_to_io(D)}
       end || {N,_} <- ZipInfo];
  read(Table) ->
      imem_if:read(physical_table_name(Table)).
  
  