class_docstr: Expression renderer for the Redshift engine.
class_docstr_tok: ["Expression","renderer","for","the","Redshift","engine","."]
docstr: Generates a "good enough" random key to simulate a UUID.
  
  NOTE: This is a temporary hacky solution as redshift does not have any UUID generation function.
  
  Proposed solutions that requires more thinking:
      - create a python UDF (Could we insert this without needing additional permissions?)
docstr_tok: ["Generates","a","``","good","enough","''","random","key","to","simulate","a","UUID",".","NOTE",":","This","is","a","temporary","hacky","solution","as","redshift","does","not","have","any","UUID","generation","function",".","Proposed","solutions","that","requires","more","thinking",":","-","create","a","python","UDF","(","Could","we","insert","this","without","needing","additional","permissions","?",")"]
code: def visit_generate_uuid_expr(
      self, node: SqlGenerateUuidExpression
  ) -> SqlExpressionRenderResult:
      """Generates a "good enough" random key to simulate a UUID.
  
      NOTE: This is a temporary hacky solution as redshift does not have any UUID generation function.
  
      Proposed solutions that requires more thinking:
          - create a python UDF (Could we insert this without needing additional permissions?)
      """
      return SqlExpressionRenderResult(
          sql="CONCAT(CAST(RANDOM()*100000000 AS INT)::VARCHAR,CAST(RANDOM()*100000000 AS INT)::VARCHAR)",
          bind_parameters=SqlBindParameters(),
      )
  
imports: from __future__ import annotations
  from typing import Collection
  from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
  from dbt_semantic_interfaces.type_enums.date_part import DatePart
  from typing_extensions import override
  from metricflow.errors.errors import UnsupportedEngineFeatureError
  from metricflow.sql.render.expr_renderer import DefaultSqlExpressionRenderer, SqlExpressionRenderer, SqlExpressionRenderResult
  from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer
  from metricflow.sql.sql_bind_parameters import SqlBindParameters
  from metricflow.sql.sql_exprs import SqlExtractExpression, SqlGenerateUuidExpression, SqlPercentileExpression, SqlPercentileFunctionType
label_desc: Use image node_id 6 for calling the RedshiftSqlExpressionRenderer obj's underlying member method code with example usage: obj.visit_generate_uuid_expr(node) and returns: SqlExpressionRenderResult