code: def filter_not_supported_features(
      sql_client: SqlClient,
      required_features: Tuple[RequiredDwEngineFeatures, ...],
  ) -> Sequence[RequiredDwEngineFeatures]:
      """Given a list of required features, return a list of features not supported by the given SQLClient."""
      not_supported_features: List[RequiredDwEngineFeatures] = []
      for required_feature in required_features:
          if (
              required_feature
              is RequiredDwEngineFeatures.CONTINUOUS_PERCENTILE_AGGREGATION
          ):
              if not sql_client.sql_query_plan_renderer.expr_renderer.can_render_percentile_function(
                  SqlPercentileFunctionType.CONTINUOUS
              ):
                  not_supported_features.append(required_feature)
          elif (
              required_feature
              is RequiredDwEngineFeatures.DISCRETE_PERCENTILE_AGGREGATION
          ):
              if not sql_client.sql_query_plan_renderer.expr_renderer.can_render_percentile_function(
                  SqlPercentileFunctionType.DISCRETE
              ):
                  not_supported_features.append(required_feature)
          elif (
              required_feature
              is RequiredDwEngineFeatures.APPROXIMATE_CONTINUOUS_PERCENTILE_AGGREGATION
          ):
              if not sql_client.sql_query_plan_renderer.expr_renderer.can_render_percentile_function(
                  SqlPercentileFunctionType.APPROXIMATE_CONTINUOUS
              ):
                  not_supported_features.append(required_feature)
          elif (
              required_feature
              is RequiredDwEngineFeatures.APPROXIMATE_DISCRETE_PERCENTILE_AGGREGATION
          ):
              if not sql_client.sql_query_plan_renderer.expr_renderer.can_render_percentile_function(
                  SqlPercentileFunctionType.APPROXIMATE_DISCRETE
              ):
                  not_supported_features.append(required_feature)
          else:
              assert_values_exhausted(required_feature)
      return not_supported_features
  
imports: from __future__ import annotations
  import datetime
  import logging
  from copy import copy
  from typing import List, Optional, Sequence, Tuple
  import jinja2
  import pytest
  from dateutil import parser
  from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
  from dbt_semantic_interfaces.implementations.elements.measure import PydanticMeasureAggregationParameters
  from dbt_semantic_interfaces.test_utils import as_datetime
  from dbt_semantic_interfaces.type_enums.date_part import DatePart
  from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
  from metricflow.engine.metricflow_engine import MetricFlowEngine, MetricFlowQueryRequest
  from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
  from metricflow.plan_conversion.column_resolver import DunderColumnAssociationResolver
  from metricflow.protocols.query_parameter import DimensionOrEntityQueryParameter
  from metricflow.protocols.sql_client import SqlClient
  from metricflow.specs.query_param_implementations import DimensionOrEntityParameter, TimeDimensionParameter
  from metricflow.sql.sql_exprs import SqlCastToTimestampExpression, SqlColumnReference, SqlColumnReferenceExpression, SqlDateTruncExpression, SqlExtractExpression, SqlGenerateUuidExpression, SqlPercentileExpression, SqlPercentileExpressionArgument, SqlPercentileFunctionType, SqlStringExpression, SqlSubtractTimeIntervalExpression
  from metricflow.test.compare_df import assert_dataframes_equal
  from metricflow.test.fixtures.setup_fixtures import MetricFlowTestSessionState
  from metricflow.test.integration.configured_test_case import CONFIGURED_INTEGRATION_TESTS_REPOSITORY, IntegrationTestModel, RequiredDwEngineFeatures
  from metricflow.test.time.configurable_time_source import ConfigurableTimeSource
label_desc: Use image node_id 1 for calling a global function with example usage: filter_not_supported_features(sql_client, required_features) and returns: not_supported_features