class_docstr: Stores clauses in a SQL query that should be rewritten when a node is reduced.
docstr: Rewrite all clauses using the given replacements.
code: def rewrite(self, column_replacements: SqlColumnReplacements) -> None:
      """Rewrite all clauses using the given replacements."""
      self.select_columns = [
          SqlSelectColumn(
              expr=x.expr.rewrite(column_replacements),
              column_alias=x.column_alias,
          )
          for x in self.select_columns
      ]
      self.wheres = [
          x.rewrite(column_replacements=column_replacements)
          for x in self.wheres
      ]
      self.group_bys = [
          SqlSelectColumn(
              expr=x.expr.rewrite(column_replacements),
              column_alias=x.column_alias,
          )
          for x in self.group_bys
      ]
      self.order_bys = [
          SqlOrderByDescription(
              expr=x.expr.rewrite(
                  column_replacements=column_replacements
              ),
              desc=x.desc,
          )
          for x in self.order_bys
      ]
  
imports: from __future__ import annotations
  import logging
  from dataclasses import dataclass
  from typing import List, Optional, Sequence, Tuple
  from metricflow.sql.optimizer.sql_query_plan_optimizer import SqlQueryPlanOptimizer
  from metricflow.sql.sql_exprs import SqlColumnAliasReferenceExpression, SqlColumnReference, SqlColumnReplacements, SqlExpressionNode, SqlExpressionTreeLineage, SqlLogicalExpression, SqlLogicalOperator
  from metricflow.sql.sql_plan import SqlJoinDescription, SqlOrderByDescription, SqlQueryPlanNode, SqlQueryPlanNodeVisitor, SqlSelectColumn, SqlSelectQueryFromClauseNode, SqlSelectStatementNode, SqlTableFromClauseNode
label_desc: Use image node_id 1 for calling the RewritableSqlClauses obj's underlying member method code with example usage: obj.rewrite(column_replacements) without return types