docs: def _archive_jobs(timestamp):
      '''
      Copy rows to a set of backup tables, then purge rows.
      :param timestamp: Archive rows older than this timestamp
      :return:
      '''
      source_tables = ['jids',
                       'salt_returns',
                       'salt_events']
  
      with _get_serv() as cursor:
          target_tables = {}
          for table_name in source_tables:
              try:
                  tmp_table_name = table_name + '_archive'
                  sql = 'create table IF NOT exists {0} (LIKE {1})'.format(tmp_table_name, table_name)
                  cursor.execute(sql)
                  cursor.execute('COMMIT')
                  target_tables[table_name] = tmp_table_name
              except psycopg2.DatabaseError as err:
                  error = err.args
                  sys.stderr.write(six.text_type(error))
                  cursor.execute("ROLLBACK")
                  raise err
  
          try:
              sql = 'insert into {0} select * from {1} where jid in (select distinct jid from salt_returns where alter_time < %s)'.format(target_tables['jids'], 'jids')
              cursor.execute(sql, (timestamp,))
              cursor.execute('COMMIT')
          except psycopg2.DatabaseError as err:
              error = err.args
              sys.stderr.write(six.text_type(error))
              cursor.execute("ROLLBACK")
              raise err
          except Exception as e:
              log.error(e)
              raise
  
          try:
              sql = 'insert into {0} select * from {1} where alter_time < %s'.format(target_tables['salt_returns'], 'salt_returns')
              cursor.execute(sql, (timestamp,))
              cursor.execute('COMMIT')
          except psycopg2.DatabaseError as err:
              error = err.args
              sys.stderr.write(six.text_type(error))
              cursor.execute("ROLLBACK")
              raise err
  
          try:
              sql = 'insert into {0} select * from {1} where alter_time < %s'.format(target_tables['salt_events'], 'salt_events')
              cursor.execute(sql, (timestamp,))
              cursor.execute('COMMIT')
          except psycopg2.DatabaseError as err:
              error = err.args
              sys.stderr.write(six.text_type(error))
              cursor.execute("ROLLBACK")
              raise err
  
      return _purge_jobs(timestamp)