docstr: Get all the job history catalog entry with given job id.
  Arguments:
      job_id (int): Job id
  Returns:
      list[JobHistoryCatalogEntry]: all history catalog entries for given job id
docstr_tok: ["Get","all","the","job","history","catalog","entry","with","given","job","id",".","Arguments",":","job_id","(","int",")",":","Job","id","Returns",":","list","[","JobHistoryCatalogEntry","]",":","all","history","catalog","entries","for","given","job","id"]
code: def get_entry_by_job_id(
      self, job_id: int
  ) -> List[JobHistoryCatalogEntry]:
      """
      Get all the job history catalog entry with given job id.
      Arguments:
          job_id (int): Job id
      Returns:
          list[JobHistoryCatalogEntry]: all history catalog entries for given job id
      """
      entries = (
          self.session.execute(
              select(self.model).filter(self.model._job_id == job_id)
          )
          .scalars()
          .all()
      )
      entries = [row.as_dataclass() for row in entries]
      return entries
  
file_path: evadb/evadb/catalog/services/job_history_catalog_service.py
imports: import datetime
  from typing import List
  from sqlalchemy import and_
  from sqlalchemy.orm import Session
  from sqlalchemy.sql.expression import select
  from evadb.catalog.models.job_history_catalog import JobHistoryCatalog
  from evadb.catalog.models.utils import JobHistoryCatalogEntry
  from evadb.catalog.services.base_service import BaseService
  from evadb.utils.errors import CatalogError
  from evadb.utils.logging_manager import logger
label_desc: Use image node_id 3 for calling the JobHistoryCatalogService obj's underlying member method code with example usage: obj.get_entry_by_job_id(job_id) and returns: entries