@@ -199,7 +199,6 @@ defmodule NestedSets.Query do
199199 node_lft = Map . get ( node , cfg . lft )
200200 node_rgt = Map . get ( node , cfg . rgt )
201201 node_depth = Map . get ( node , cfg . depth )
202- pk = get_primary_key ( node )
203202
204203 parent_query =
205204 from ( n in queryable ,
@@ -209,10 +208,13 @@ defmodule NestedSets.Query do
209208 limit: 1
210209 )
211210
211+ [ pk_field | _ ] = schema . __schema__ ( :primary_key )
212+ pk = Map . get ( node , pk_field )
213+
212214 parent_query = apply_tree_filter ( parent_query , node , cfg )
213215
214216 from ( n in queryable ,
215- where: n . id != ^ pk ,
217+ where: field ( n , ^ pk_field ) != ^ pk ,
216218 where: field ( n , ^ cfg . depth ) == ^ node_depth ,
217219 where: field ( n , ^ cfg . lft ) > subquery ( from ( p in parent_query , select: field ( p , ^ cfg . lft ) ) ) ,
218220 where: field ( n , ^ cfg . rgt ) < subquery ( from ( p in parent_query , select: field ( p , ^ cfg . rgt ) ) ) ,
@@ -322,10 +324,4 @@ defmodule NestedSets.Query do
322324 tree_value = Map . get ( node , tree_attr )
323325 from ( n in query , where: field ( n , ^ tree_attr ) == ^ tree_value )
324326 end
325-
326- defp get_primary_key ( node ) do
327- schema = node . __struct__
328- [ pk_field | _ ] = schema . __schema__ ( :primary_key )
329- Map . get ( node , pk_field )
330- end
331327end
0 commit comments