code: def call(self, step):
      project_name = step.namespace
      predictor_name = step.predictor.parts[0]
      where_data0 = step.row_dict
      project_datanode = self.session.datahub.get(project_name)
  
      # fill params
      where_data = {}
      for key, value in where_data0.items():
          if isinstance(value, Parameter):
              rs = self.steps_data[value.value.step_num]
              if rs.length() == 1:
                  # one value, don't do list
                  value = rs.get_records_raw()[0][0]
              else:
                  value = [i[0] for i in rs.get_records_raw()]
          where_data[key] = value
  
      version = None
      if (
          len(step.predictor.parts) > 1
          and step.predictor.parts[-1].isdigit()
      ):
          version = int(step.predictor.parts[-1])
  
      predictions = project_datanode.predict(
          model_name=predictor_name,
          data=where_data,
          version=version,
          params=step.params,
      )
  
      columns_dtypes = dict(predictions.dtypes)
      predictions = predictions.to_dict(orient="records")
  
      # update predictions with input data
      for row in predictions:
          for k, v in where_data.items():
              if k not in row:
                  row[k] = v
  
      table_name = get_preditor_alias(
          step, self.context.get("database")
      )
  
      result = ResultSet()
      result.is_prediction = True
      if len(predictions) > 0:
          cols = list(predictions[0].keys())
      else:
          cols = project_datanode.get_table_columns(predictor_name)
  
      for col in cols:
          result.add_column(
              Column(
                  name=col,
                  table_name=table_name[1],
                  table_alias=table_name[2],
                  database=table_name[0],
                  type=columns_dtypes.get(col),
              )
          )
      result.add_records(predictions)
  
      return result
  
file_path: mindsdb/mindsdb/api/executor/sql_query/steps/apply_predictor_step.py
imports: import datetime
  import re
  import dateinfer
  import pandas
  from mindsdb_sql.parser.ast import BinaryOperation, Identifier, Constant, Latest, BetweenOperation, Parameter
  from mindsdb_sql.planner.step_result import Result
  from mindsdb_sql.planner.steps import ApplyTimeseriesPredictorStep, ApplyPredictorRowStep, ApplyPredictorStep
  from mindsdb.api.executor.sql_query.result_set import ResultSet, Column
  from mindsdb.utilities.cache import get_cache, json_checksum
  from .base import BaseStepCall
label_desc: Use image node_id 1 for calling the ApplyPredictorRowStepCall obj's underlying member method code with example usage: obj.call(step) and returns: result