<commit_before>module Alf
  module Sql
    module WithExp
      include Expr
      extend Forwardable

      WITH = "WITH".freeze

      def with_exp?
        true
      end

      def with_spec
        self[1]
      end

      def select_exp
        last
      end
      def_delegators :select_exp, :select_list,
                                  :where_clause,
                                  :predicate,
                                  :from_clause,
                                  :table_spec,
                                  :order_by_clause,
                                  :limit_clause,
                                  :offset_clause,
                                  :desaliaser,
                                  :to_attr_list,
                                  :to_ordering

    # to_xxx

      def to_sql(buffer = "")
        buffer << WITH << SPACE
        self[1].to_sql(buffer)
        buffer << SPACE
        self[2].to_sql(buffer, false)
        buffer
      end

    end # module WithExp
  end # module Sql
end # module Alf<commit_msg>Delegate other query methods from with_exp to select_exp<commit_after>module Alf
  module Sql
    module WithExp
      include Expr
      extend Forwardable

      WITH = "WITH".freeze

      def with_exp?
        true
      end

      def with_spec
        self[1]
      end

      def select_exp
        last
      end
      def_delegators :select_exp, :select_list,
                                  :where_clause,
                                  :predicate,
                                  :from_clause,
                                  :table_spec,
                                  :order_by_clause,
                                  :limit_clause,
                                  :offset_clause,
                                  :desaliaser,
                                  :to_attr_list,
                                  :to_ordering,
                                  :all?,
                                  :distinct?,
                                  :set_operator?,
                                  :limit_or_offset?

    # to_xxx

      def to_sql(buffer = "")
        buffer << WITH << SPACE
        self[1].to_sql(buffer)
        buffer << SPACE
        self[2].to_sql(buffer, false)
        buffer
      end

    end # module WithExp
  end # module Sql
end # module Alf
{'fraction_non_alphanumeric': 0.05496828752642706, 'fraction_numerical': 0.002536997885835095, 'mean_word_length': 0.8369565217391305, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 24, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1528600', 'n_tokens_mistral': 608, 'n_tokens_neox': 571, 'n_words': 128}