Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • 12-9-stable
  • 12-7-stable
  • 12-6-stable
  • 12-8-stable
  • github/fork/Kloppi313/patch-1
  • 12-5-stable
  • 12-4-stable
  • github/fork/ramalokesh8477/master
  • 12-1-stable
  • 12-2-stable
  • 12-0-stable
  • 12-3-stable
  • 42-42-stable
  • github/fork/hussamgit398/patch-2
  • 12-3-auto-deploy-20190911
  • 12-3-auto-deploy-20190916
  • 12-3-auto-deploy-20190908
  • 12-3-auto-deploy-20190901
  • 12-3-auto-deploy-20190901-32664
  • v12.10.0.pre
  • v12.9.0
  • v12.9.0-rc42
  • v12.8.7
  • v12.8.6
  • v12.8.5
  • v12.8.4
  • v12.8.3
  • v12.6.8
  • v12.7.7
  • v12.8.2
  • v12.8.1
  • v12.9.0.pre
  • v12.8.0
  • v12.8.0-rc42
  • v12.5.10
  • v12.7.6
  • v12.6.7
  • v12.7.5
  • v12.5.9
40 results

snippet.rb

  • Yorick Peterse's avatar
    8a72f5c4
    Added FromUnion to easily select from a UNION · 8a72f5c4
    Yorick Peterse authored
    This commit adds the module `FromUnion`, which provides the class method
    `from_union`. This simplifies the process of selecting data from the
    result of a UNION, and reduces the likelihood of making mistakes. As a
    result, instead of this:
    
        union = Gitlab::SQL::Union.new([foo, bar])
    
        Foo.from("(#{union.to_sql}) #{Foo.table_name}")
    
    We can now write this instead:
    
        Foo.from_union([foo, bar])
    
    This commit also includes some changes to make this new setup work
    properly. For example, a bug in Rails 4
    (https://github.com/rails/rails/issues/24193) would break the use of
    `from("sub-query-here").includes(:relation)` in certain cases. There was
    also a CI query which appeared to repeat a lot of conditions from an
    outer query on an inner query, which isn't necessary.
    
    Finally, we include a RuboCop cop to ensure developers use this new
    module, instead of using Gitlab::SQL::Union directly.
    
    Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/51307
    Verified
    8a72f5c4
    History
    Added FromUnion to easily select from a UNION
    Yorick Peterse authored
    This commit adds the module `FromUnion`, which provides the class method
    `from_union`. This simplifies the process of selecting data from the
    result of a UNION, and reduces the likelihood of making mistakes. As a
    result, instead of this:
    
        union = Gitlab::SQL::Union.new([foo, bar])
    
        Foo.from("(#{union.to_sql}) #{Foo.table_name}")
    
    We can now write this instead:
    
        Foo.from_union([foo, bar])
    
    This commit also includes some changes to make this new setup work
    properly. For example, a bug in Rails 4
    (https://github.com/rails/rails/issues/24193) would break the use of
    `from("sub-query-here").includes(:relation)` in certain cases. There was
    also a CI query which appeared to repeat a lot of conditions from an
    outer query on an inner query, which isn't necessary.
    
    Finally, we include a RuboCop cop to ensure developers use this new
    module, instead of using Gitlab::SQL::Union directly.
    
    Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/51307