code: def _join_posixpaths_and_append_absolute_suffixes(
      prefix_path, suffix_path
  ):
      """
      Joins the POSIX path `prefix_path` with the POSIX path `suffix_path`. Unlike posixpath.join(),
      if `suffix_path` is an absolute path, it is appended to prefix_path.
  
      >>> result1 = _join_posixpaths_and_append_absolute_suffixes("relpath1", "relpath2")
      >>> assert result1 == "relpath1/relpath2"
      >>> result2 = _join_posixpaths_and_append_absolute_suffixes("relpath", "/absolutepath")
      >>> assert result2 == "relpath/absolutepath"
      >>> result3 = _join_posixpaths_and_append_absolute_suffixes("/absolutepath", "relpath")
      >>> assert result3 == "/absolutepath/relpath"
      >>> result4 = _join_posixpaths_and_append_absolute_suffixes("/absolutepath1", "/absolutepath2")
      >>> assert result4 == "/absolutepath1/absolutepath2"
      """
      if len(prefix_path) == 0:
          return suffix_path
  
      # If the specified prefix path is non-empty, we must relativize the suffix path by removing
      # the leading slash, if present. Otherwise, posixpath.join() would omit the prefix from the
      # joined path
      suffix_path = suffix_path.lstrip(posixpath.sep)
      return posixpath.join(prefix_path, suffix_path)
  
imports: import os
  import pathlib
  import posixpath
  import re
  import urllib.parse
  import uuid
  from typing import Any, Tuple
  from mlflow.exceptions import MlflowException
  from mlflow.protos.databricks_pb2 import INVALID_PARAMETER_VALUE
  from mlflow.store.db.db_types import DATABASE_ENGINES
  from mlflow.utils.os import is_windows
  from mlflow.utils.validation import _validate_db_type_string
label_desc: Use image node_id 18 for calling a global function with example usage: _join_posixpaths_and_append_absolute_suffixes(prefix_path, suffix_path) and returns: posixpath, suffix_path