join.py 826 B

12345678910111213141516171819202122232425262728293031
  1. # Copyright Materialize, Inc. and contributors. All rights reserved.
  2. #
  3. # Use of this software is governed by the Business Source License
  4. # included in the LICENSE file at the root of this repository.
  5. #
  6. # As of the Change Date specified in that file, in accordance with
  7. # the Business Source License, use of this software will be governed
  8. # by the Apache License, Version 2.0.
  9. from enum import Enum
  10. class JoinTarget(Enum):
  11. SAME_DATA_TYPE = 1
  12. SAME_DATA_TYPE_CATEGORY = 2
  13. ANY_COLUMN = 3
  14. RANDOM_COLUMN_IS_NOT_NULL = 4
  15. BOOLEAN_EXPRESSION = 5
  16. JOIN_TARGET_WEIGHTS = [0.4, 0.2, 0.1, 0.2, 0.1]
  17. class JoinOperator(Enum):
  18. INNER = "INNER JOIN"
  19. LEFT_OUTER = "LEFT OUTER JOIN"
  20. RIGHT_OUTER = "RIGHT OUTER JOIN"
  21. FULL_OUTER = "FULL OUTER JOIN"
  22. def to_sql(self) -> str:
  23. return self.value