code: def _deserialize_sql_row(
      sql_row: tuple, columns: List[ColumnCatalogEntry]
  ):
      # Deserialize numpy data
  
      dict_row = {}
      for idx, col in enumerate(columns):
          # hack, we skip deserializing if sql_row[col.name] is not of type bytes
          if col.type == ColumnType.NDARRAY and isinstance(
              sql_row[col.name], bytes
          ):
              dict_row[col.name] = PickleSerializer.deserialize(
                  sql_row[idx]
              )
          else:
              dict_row[col.name] = sql_row[idx]
      return dict_row
  
imports: from typing import Iterator, List
  import numpy
  import pandas
  from sqlalchemy import Column, MetaData, Table, create_engine
  from sqlalchemy.ext.declarative import declarative_base
  from sqlalchemy.orm import sessionmaker
  from evadb.catalog.catalog_type import ColumnType
  from evadb.catalog.models.table_catalog import TableCatalogEntry
  from evadb.catalog.models.utils import ColumnCatalogEntry
  from evadb.catalog.schema_utils import SchemaUtils
  from evadb.database import EvaDBDatabase
  from evadb.models.storage.batch import Batch
  from evadb.storage.abstract_storage_engine import AbstractStorageEngine
  from evadb.third_party.databases.interface import get_database_handler
  from evadb.utils.generic_utils import PickleSerializer, rebatch
  from evadb.utils.logging_manager import logger
label_desc: Use image node_id 3 for calling a global function with example usage: _deserialize_sql_row(sql_row, columns) and returns: dict_row