From f8109191d6b35f327b7f402cfa60946ea4eeb6b7 Mon Sep 17 00:00:00 2001 From: Linden <32376844+lvarley@users.noreply.github.com> Date: Sun, 29 Oct 2023 20:14:01 +1100 Subject: [PATCH 1/2] Checked map length to prevent errors --- dbterd/adapters/algos/test_relationship.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dbterd/adapters/algos/test_relationship.py b/dbterd/adapters/algos/test_relationship.py index a60dea4..e22d66f 100644 --- a/dbterd/adapters/algos/test_relationship.py +++ b/dbterd/adapters/algos/test_relationship.py @@ -167,8 +167,12 @@ def get_table_map(test_node, **kwargs): map = test_node.depends_on.nodes or [] rule = get_algo_rule(**kwargs) to_model = str(test_node.test_metadata.kwargs.get(rule.get("t_to", "to"), {})) - if f'("{map[1].split(".")[-1]}")'.lower() in to_model.replace("'", '"').lower(): - return [map[1], map[0]] + + if len(map) >= 2 and isinstance(map[1], str): + if f'("{map[1].split(".")[-1]}")'.lower() in to_model.replace("'", '"').lower(): + return [map[1], map[0]] + else: + return None return map From 89a2640a0e3132d5fb44b2567509c18146ed539e Mon Sep 17 00:00:00 2001 From: Linden <32376844+lvarley@users.noreply.github.com> Date: Mon, 30 Oct 2023 09:37:06 +1100 Subject: [PATCH 2/2] Revert "Checked map length to prevent errors" Remove incompatible double quoted columns --- dbterd/adapters/algos/test_relationship.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/dbterd/adapters/algos/test_relationship.py b/dbterd/adapters/algos/test_relationship.py index e22d66f..d3235ff 100644 --- a/dbterd/adapters/algos/test_relationship.py +++ b/dbterd/adapters/algos/test_relationship.py @@ -84,7 +84,7 @@ def get_relationships(manifest, **kwargs): f'{rule.get("c_to")}s', "unknown" ) ) - ).lower(), + ).replace("\"","").lower(), str( manifest.nodes[x].test_metadata.kwargs.get("column_name") or manifest.nodes[x].test_metadata.kwargs.get(rule.get("c_from")) @@ -93,7 +93,7 @@ def get_relationships(manifest, **kwargs): f'{rule.get("c_from")}s', "unknown" ) ) - ).lower(), + ).replace("\"","").lower(), ], type=get_relationship_type( manifest.nodes[x].meta.get(TEST_META_RELATIONSHIP_TYPE, "") @@ -167,12 +167,8 @@ def get_table_map(test_node, **kwargs): map = test_node.depends_on.nodes or [] rule = get_algo_rule(**kwargs) to_model = str(test_node.test_metadata.kwargs.get(rule.get("t_to", "to"), {})) - - if len(map) >= 2 and isinstance(map[1], str): - if f'("{map[1].split(".")[-1]}")'.lower() in to_model.replace("'", '"').lower(): - return [map[1], map[0]] - else: - return None + if f'("{map[1].split(".")[-1]}")'.lower() in to_model.replace("'", '"').lower(): + return [map[1], map[0]] return map