def execute(select_manager)
      table = get_table(select_manager.table_name)
      table = table.get_all_record_attributes.map  { |attributes| {select_manager.table_name => attributes} }
      debug "LocalStorageStore#execute(begin): table = #{table.inspect}"
      table = execute_join(select_manager, table)
      debug "LocalStorageStore#execute(end): table = #{table.inspect}"
      records = filter(table, select_manager )
      debug "LocalStorageStore#execute(end): result = #{records.inspect}"
      records
    end
def execute(select_manager)
      table = get_table(select_manager.table_name)
      table = table.get_all_record_attributes.map  { |attributes| {select_manager.table_name => attributes} }
      debug "LocalStorageStore#execute(begin): table = #{table.inspect}"
      table = execute_join(select_manager, table)
      debug "LocalStorageStore#execute(end): table = #{table.inspect}"
      records = filter(table, select_manager )
      debug "LocalStorageStore#execute(end): result = #{records.inspect}"
      records
    end
LocalStorageStore

 This stores record attributes (hashes) in local storage with one entry per record
 In addition to storing the records it also stores an index of used ids and the
 next available id. The data is mapped to keys as follows

 table_name:# - a record is stored where # is the id of the record
 table_name:next_id - holds the next id for the table
 table_name:index - an array of record ids stored for that table