summaryrefslogtreecommitdiff
path: root/config/initializers/postgres_cte_as_materialized.rb
blob: 85b3361e25ebdb36d8c79eb6be37e4f2e6c7ac00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# frozen_string_literal: true

# This patch adds support for AS MATERIALIZED in Arel, see Gitlab::Database::AsWithMaterialized for more info
module Arel
  module Visitors
    class Arel::Visitors::PostgreSQL
      def visit_Gitlab_Database_AsWithMaterialized(obj, collector) # rubocop:disable Naming/MethodName
        collector = visit obj.left, collector
        collector << " AS#{obj.expr} "
        visit obj.right, collector
      end
    end
  end
end