|
21 | 21 | from .transformations import _filter_order |
22 | 22 |
|
23 | 23 | LIMITING_FK_EDGES_CLAUSE_1 = ( |
24 | | - """AND second.{fk_field_name}_{pk_name} = %(limiting_fk_edges_instance_pk)s""" |
| 24 | + """AND second.{fk_field_name}_id = %(limiting_fk_edges_instance_pk)s""" |
25 | 25 | ) |
26 | | -LIMITING_FK_EDGES_CLAUSE_2 = """AND {relationship_table}.{fk_field_name}_{pk_name} = %(limiting_fk_edges_instance_pk)s""" |
| 26 | +LIMITING_FK_EDGES_CLAUSE_2 = """AND {relationship_table}.{fk_field_name}_id = %(limiting_fk_edges_instance_pk)s""" |
27 | 27 |
|
28 | 28 | LIMITING_FK_NODES_CLAUSE_1 = """""" |
29 | 29 | LIMITING_FK_NODES_CLAUSE_2 = """""" |
|
34 | 34 | # DISALLOWED_DESCENDANTS_NODES_CLAUSE_1 = """AND second.parent_pk <> ALL(%(disallowed_descendants_node_pks)s)""" # Used for descendants and downward path |
35 | 35 | # DISALLOWED_DESCENDANTS_NODES_CLAUSE_2 = """AND {relationship_table}.parent_pk <> ALL(%(disallowed_descendants_node_pks)s)""" |
36 | 36 |
|
37 | | -DISALLOWED_ANCESTORS_NODES_CLAUSE_1 = """AND first.parent_{pk_name} <> ALL(%(disallowed_ancestors_node_pks)s)""" # Used for ancestors and upward path |
38 | | -DISALLOWED_ANCESTORS_NODES_CLAUSE_2 = """AND {relationship_table}.parent_{pk_name} <> ALL(%(disallowed_ancestors_node_pks)s)""" |
| 37 | +DISALLOWED_ANCESTORS_NODES_CLAUSE_1 = """AND first.parent_id <> ALL(%(disallowed_ancestors_node_pks)s)""" # Used for ancestors and upward path |
| 38 | +DISALLOWED_ANCESTORS_NODES_CLAUSE_2 = """AND {relationship_table}.parent_id <> ALL(%(disallowed_ancestors_node_pks)s)""" |
39 | 39 |
|
40 | | -DISALLOWED_DESCENDANTS_NODES_CLAUSE_1 = """AND first.child_{pk_name} <> ALL(%(disallowed_descendants_node_pks)s)""" # Used for descendants and downward path |
41 | | -DISALLOWED_DESCENDANTS_NODES_CLAUSE_2 = """AND {relationship_table}.child_{pk_name} <> ALL(%(disallowed_descendants_node_pks)s)""" |
| 40 | +DISALLOWED_DESCENDANTS_NODES_CLAUSE_1 = """AND first.child_id <> ALL(%(disallowed_descendants_node_pks)s)""" # Used for descendants and downward path |
| 41 | +DISALLOWED_DESCENDANTS_NODES_CLAUSE_2 = """AND {relationship_table}.child_id <> ALL(%(disallowed_descendants_node_pks)s)""" |
42 | 42 |
|
43 | 43 |
|
44 | 44 | ALLOWED_ANCESTORS_NODES_CLAUSE_1 = """AND first.parent_pk = ANY(%(allowed_ancestors_node_pks)s)""" # Used for ancestors and upward path |
45 | | -ALLOWED_ANCESTORS_NODES_CLAUSE_2 = """AND {relationship_table}.parent_{pk_name} = ANY(%(allowed_ancestors_node_pks)s)""" |
| 45 | +ALLOWED_ANCESTORS_NODES_CLAUSE_2 = """AND {relationship_table}.parent_id = ANY(%(allowed_ancestors_node_pks)s)""" |
46 | 46 |
|
47 | | -ALLOWED_DESCENDANTS_NODES_CLAUSE_1 = """AND first.child_{pk_name} = ANY(%(allowed_descendants_node_pks)s)""" # Used for descendants and downward path |
48 | | -ALLOWED_DESCENDANTS_NODES_CLAUSE_2 = """AND {relationship_table}.child_{pk_name} = ANY(%(allowed_descendants_node_pks)s)""" |
| 47 | +ALLOWED_DESCENDANTS_NODES_CLAUSE_1 = """AND first.child_id = ANY(%(allowed_descendants_node_pks)s)""" # Used for descendants and downward path |
| 48 | +ALLOWED_DESCENDANTS_NODES_CLAUSE_2 = """AND {relationship_table}.child_id = ANY(%(allowed_descendants_node_pks)s)""" |
49 | 49 |
|
50 | 50 | ANCESTORS_QUERY = """ |
51 | 51 | WITH RECURSIVE traverse({pk_name}, depth) AS ( |
52 | | - SELECT first.parent_{pk_name}, 1 |
| 52 | + SELECT first.parent_id, 1 |
53 | 53 | FROM {relationship_table} AS first |
54 | 54 | LEFT OUTER JOIN {relationship_table} AS second |
55 | | - ON first.parent_{pk_name} = second.child_{pk_name} |
56 | | - WHERE first.child_{pk_name} = %(pk)s |
| 55 | + ON first.parent_id = second.child_id |
| 56 | + WHERE first.child_id = %(pk)s |
57 | 57 | -- LIMITING_FK_EDGES_CLAUSE_1 |
58 | 58 | -- DISALLOWED_ANCESTORS_NODES_CLAUSE_1 |
59 | 59 | -- ALLOWED_ANCESTORS_NODES_CLAUSE_1 |
60 | 60 | {ancestors_clauses_1} |
61 | 61 | UNION |
62 | | - SELECT DISTINCT parent_{pk_name}, traverse.depth + 1 |
| 62 | + SELECT DISTINCT parent_id, traverse.depth + 1 |
63 | 63 | FROM traverse |
64 | 64 | INNER JOIN {relationship_table} |
65 | | - ON {relationship_table}.child_{pk_name} = traverse.{pk_name} |
| 65 | + ON {relationship_table}.child_id = traverse.{pk_name} |
66 | 66 | WHERE 1 = 1 |
67 | 67 | -- LIMITING_FK_EDGES_CLAUSE_2 |
68 | 68 | -- DISALLOWED_ANCESTORS_NODES_CLAUSE_2 |
|
77 | 77 |
|
78 | 78 | DESCENDANTS_QUERY = """ |
79 | 79 | WITH RECURSIVE traverse({pk_name}, depth) AS ( |
80 | | - SELECT first.child_{pk_name}, 1 |
| 80 | + SELECT first.child_id, 1 |
81 | 81 | FROM {relationship_table} AS first |
82 | 82 | LEFT OUTER JOIN {relationship_table} AS second |
83 | | - ON first.child_{pk_name} = second.parent_{pk_name} |
84 | | - WHERE first.parent_{pk_name} = %(pk)s |
| 83 | + ON first.child_id = second.parent_id |
| 84 | + WHERE first.parent_id = %(pk)s |
85 | 85 | -- LIMITING_FK_EDGES_CLAUSE_1 |
86 | 86 | -- DISALLOWED_DESCENDANTS_NODES_CLAUSE_1 |
87 | 87 | -- ALLOWED_DESCENDANTS_NODES_CLAUSE_1 |
88 | 88 | {descendants_clauses_1} |
89 | 89 | UNION |
90 | | - SELECT DISTINCT child_{pk_name}, traverse.depth + 1 |
| 90 | + SELECT DISTINCT child_id, traverse.depth + 1 |
91 | 91 | FROM traverse |
92 | 92 | INNER JOIN {relationship_table} |
93 | | - ON {relationship_table}.parent_{pk_name} = traverse.{pk_name} |
| 93 | + ON {relationship_table}.parent_id = traverse.{pk_name} |
94 | 94 | WHERE 1=1 |
95 | 95 | -- LIMITING_FK_EDGES_CLAUSE_2 |
96 | 96 | -- DISALLOWED_DESCENDANTS_NODES_CLAUSE_2 |
|
104 | 104 | """ |
105 | 105 |
|
106 | 106 | PATH_LIMITING_FK_EDGES_CLAUSE = ( |
107 | | - """AND first.{fk_field_name}_{pk_name} = %(limiting_fk_edges_instance_pk)s""" |
| 107 | + """AND first.{fk_field_name}_id = %(limiting_fk_edges_instance_pk)s""" |
108 | 108 | ) |
109 | 109 | PATH_LIMITING_FK_NODES_CLAUSE = """""" |
110 | 110 |
|
111 | 111 | DISALLOWED_UPWARD_PATH_NODES_CLAUSE = ( |
112 | | - """AND second.parent_{pk_name} <> ALL('{disallowed_path_node_pks}')""" |
| 112 | + """AND second.parent_id <> ALL('{disallowed_path_node_pks}')""" |
113 | 113 | ) |
114 | 114 | DISALLOWED_DOWNWARD_PATH_NODES_CLAUSE = ( |
115 | | - """AND second.child_{pk_name} <> ALL('{disallowed_path_node_pks}')""" |
| 115 | + """AND second.child_id <> ALL('{disallowed_path_node_pks}')""" |
116 | 116 | ) |
117 | 117 | ALLOWED_UPWARD_PATH_NODES_CLAUSE = ( |
118 | | - """AND second.parent_{pk_name} = ALL('{allowed_path_node_pks}')""" |
| 118 | + """AND second.parent_id = ALL('{allowed_path_node_pks}')""" |
119 | 119 | ) |
120 | 120 | ALLOWED_DOWNWARD_PATH_NODES_CLAUSE = ( |
121 | | - """AND second.child_{pk_name} = ALL('{allowed_path_node_pks}')""" |
| 121 | + """AND second.child_id = ALL('{allowed_path_node_pks}')""" |
122 | 122 | ) |
123 | 123 |
|
124 | 124 | UPWARD_PATH_QUERY = """ |
125 | | -WITH RECURSIVE traverse(child_{pk_name}, parent_{pk_name}, depth, path) AS ( |
| 125 | +WITH RECURSIVE traverse(child_id, parent_id, depth, path) AS ( |
126 | 126 | SELECT |
127 | | - first.child_{pk_name}, |
128 | | - first.parent_{pk_name}, |
| 127 | + first.child_id, |
| 128 | + first.parent_id, |
129 | 129 | 1 AS depth, |
130 | | - ARRAY[first.child_{pk_name}] AS path |
| 130 | + ARRAY[first.child_id] AS path |
131 | 131 | FROM {relationship_table} AS first |
132 | | - WHERE child_{pk_name} = %(starting_node)s |
| 132 | + WHERE child_id = %(starting_node)s |
133 | 133 | UNION ALL |
134 | 134 | SELECT |
135 | | - first.child_{pk_name}, |
136 | | - first.parent_{pk_name}, |
| 135 | + first.child_id, |
| 136 | + first.parent_id, |
137 | 137 | second.depth + 1 AS depth, |
138 | | - path || first.child_{pk_name} AS path |
| 138 | + path || first.child_id AS path |
139 | 139 | FROM {relationship_table} AS first, traverse AS second |
140 | | - WHERE first.child_{pk_name} = second.parent_{pk_name} |
141 | | - AND (first.child_{pk_name} <> ALL(second.path)) |
| 140 | + WHERE first.child_id = second.parent_id |
| 141 | + AND (first.child_id <> ALL(second.path)) |
142 | 142 | -- PATH_LIMITING_FK_EDGES_CLAUSE |
143 | 143 | -- DISALLOWED_UPWARD_PATH_NODES_CLAUSE |
144 | 144 | -- ALLOWED_UPWARD_PATH_NODES_CLAUSE |
|
150 | 150 | FROM |
151 | 151 | ( |
152 | 152 | SELECT path || ARRAY[%(ending_node)s], depth FROM traverse |
153 | | - WHERE parent_{pk_name} = %(ending_node)s |
| 153 | + WHERE parent_id = %(ending_node)s |
154 | 154 | AND depth <= %(max_depth)s |
155 | 155 | LIMIT 1 |
156 | 156 | ) AS x({pk_name}); |
157 | 157 | """ |
158 | 158 |
|
159 | 159 | DOWNWARD_PATH_QUERY = """ |
160 | | -WITH RECURSIVE traverse(parent_{pk_name}, child_{pk_name}, depth, path) AS ( |
| 160 | +WITH RECURSIVE traverse(parent_id, child_id, depth, path) AS ( |
161 | 161 | SELECT |
162 | | - first.parent_{pk_name}, |
163 | | - first.child_{pk_name}, |
| 162 | + first.parent_id, |
| 163 | + first.child_id, |
164 | 164 | 1 AS depth, |
165 | | - ARRAY[first.parent_{pk_name}] AS path |
| 165 | + ARRAY[first.parent_id] AS path |
166 | 166 | FROM {relationship_table} AS first |
167 | | - WHERE parent_{pk_name} = %(starting_node)s |
| 167 | + WHERE parent_id = %(starting_node)s |
168 | 168 | UNION ALL |
169 | 169 | SELECT |
170 | | - first.parent_{pk_name}, |
171 | | - first.child_{pk_name}, |
| 170 | + first.parent_id, |
| 171 | + first.child_id, |
172 | 172 | second.depth + 1 AS depth, |
173 | | - path || first.parent_{pk_name} AS path |
| 173 | + path || first.parent_id AS path |
174 | 174 | FROM {relationship_table} AS first, traverse AS second |
175 | | - WHERE first.parent_{pk_name} = second.child_{pk_name} |
176 | | - AND (first.parent_{pk_name} <> ALL(second.path)) |
| 175 | + WHERE first.parent_id = second.child_id |
| 176 | + AND (first.parent_id <> ALL(second.path)) |
177 | 177 | -- PATH_LIMITING_FK_EDGES_CLAUSE |
178 | 178 | -- DISALLOWED_DOWNWARD_PATH_NODES_CLAUSE |
179 | 179 | -- ALLOWED_DOWNWARD_PATH_NODES_CLAUSE |
|
185 | 185 | FROM |
186 | 186 | ( |
187 | 187 | SELECT path || ARRAY[%(ending_node)s], depth FROM traverse |
188 | | - WHERE child_{pk_name} = %(ending_node)s |
| 188 | + WHERE child_id = %(ending_node)s |
189 | 189 | AND depth <= %(max_depth)s |
190 | 190 | LIMIT 1 |
191 | 191 | ) AS x({pk_name}); |
|
0 commit comments