1234567891011121314151617181920212223242526272829303132 |
- # Copyright Materialize, Inc. and contributors. All rights reserved.
- #
- # Use of this software is governed by the Business Source License
- # included in the LICENSE file at the root of this repository.
- #
- # As of the Change Date specified in that file, in accordance with
- # the Business Source License, use of this software will be governed
- # by the Apache License, Version 2.0.
- from enum import Enum
- class QueryOutputMode(Enum):
- SELECT = "select"
- EXPLAIN = "explain"
- EXPLAIN_PHYSICAL = "explain_physical"
- def __str__(self):
- return str(self.value).lower()
- QUERY_OUTPUT_MODE_CHOICES = list(QueryOutputMode)
- def query_output_mode_to_sql(mode: QueryOutputMode) -> str:
- if mode == QueryOutputMode.SELECT:
- return ""
- elif mode == QueryOutputMode.EXPLAIN:
- return "EXPLAIN"
- elif mode == QueryOutputMode.EXPLAIN_PHYSICAL:
- return "EXPLAIN PHYSICAL PLAN AS TEXT FOR"
- else:
- raise ValueError(f"Unsupported mode: {mode}")
|