diff --git a/.travis.yml b/.travis.yml index d917e813..f513239e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ language: ruby rvm: - 2.0 - 2.2.3 + - 2.3.0 - jruby-head gemfile: diff --git a/lib/closure_tree/finders.rb b/lib/closure_tree/finders.rb index 3e0a69dd..866b138f 100644 --- a/lib/closure_tree/finders.rb +++ b/lib/closure_tree/finders.rb @@ -39,7 +39,7 @@ def find_all_by_generation(generation_level) SELECT descendant_id FROM #{_ct.quoted_hierarchy_table_name} WHERE ancestor_id = #{_ct.quote(self.id)} - GROUP BY 1 + GROUP BY descendant_id HAVING MAX(#{_ct.quoted_hierarchy_table_name}.generations) = #{generation_level.to_i} ) AS descendants ON (#{_ct.quoted_table_name}.#{_ct.base_class.primary_key} = descendants.descendant_id) SQL @@ -74,7 +74,7 @@ def leaves INNER JOIN ( SELECT ancestor_id FROM #{_ct.quoted_hierarchy_table_name} - GROUP BY 1 + GROUP BY ancestor_id HAVING MAX(#{_ct.quoted_hierarchy_table_name}.generations) = 0 ) AS leaves ON (#{_ct.quoted_table_name}.#{primary_key} = leaves.ancestor_id) SQL @@ -100,7 +100,7 @@ def find_all_by_generation(generation_level) INNER JOIN ( SELECT ancestor_id, descendant_id FROM #{_ct.quoted_hierarchy_table_name} - GROUP BY 1, 2 + GROUP BY ancestor_id, descendant_id HAVING MAX(generations) = #{generation_level.to_i} ) AS descendants ON ( #{_ct.quoted_table_name}.#{primary_key} = descendants.descendant_id diff --git a/lib/closure_tree/numeric_deterministic_ordering.rb b/lib/closure_tree/numeric_deterministic_ordering.rb index 2008ed22..0e2e0edb 100644 --- a/lib/closure_tree/numeric_deterministic_ordering.rb +++ b/lib/closure_tree/numeric_deterministic_ordering.rb @@ -72,7 +72,7 @@ def roots_and_descendants_preordered JOIN ( SELECT descendant_id, max(generations) AS max_depth FROM #{_ct.quoted_hierarchy_table_name} - GROUP BY 1 + GROUP BY descendant_id ) AS depths ON depths.descendant_id = anc.#{_ct.quoted_id_column_name} SQL joins(join_sql)