# File lib/criteria/sql.rb, line 257
    def self._defjoin(name, type, on = false, *args)
      dupstr = "q = self.dup\n"

      if on
        s  = "def #{name.to_s}(on, *args)\n"
        s << dupstr
        s << "q.join_on = on\n"
      else
        s  = "def #{name.to_s}(*args)\n"
        s << dupstr
      end

      s << "q.joins     = args\nq.join_type = \"\#{type}\"\nreturn q\nend\n"

      self.class_eval s
    end