# File lib/active_record/connection_adapters/seamless_database_pool_adapter.rb, line 87
        def adapter_class(master_connection)
          adapter_class_name = master_connection.adapter_name.classify
          return const_get(adapter_class_name) if const_defined?(adapter_class_name, false)
          
          # Define methods to proxy to the appropriate pool
          read_only_methods = [:select, :select_rows, :execute, :tables, :columns]
          clear_cache_methods = [:insert, :update, :delete]
          
          # Get a list of all methods redefined by the underlying adapter. These will be
          # proxied to the master connection.
          master_methods = []
          override_classes = (master_connection.class.ancestors - AbstractAdapter.ancestors)
          override_classes.each do |connection_class|
            master_methods.concat(connection_class.public_instance_methods(false))
            master_methods.concat(connection_class.protected_instance_methods(false))
          end
          master_methods = master_methods.collect{|m| m.to_sym}.uniq
          master_methods -= public_instance_methods(false) + protected_instance_methods(false) + private_instance_methods(false)
          master_methods -= read_only_methods
          master_methods -= [:select_all, :select_one, :select_value, :select_values]
          master_methods -= clear_cache_methods

          klass = Class.new(self)
          master_methods.each do |method_name|
            klass.class_eval "def \#{method_name}(*args, &block)\nuse_master_connection do\nreturn proxy_connection_method(master_connection, :\#{method_name}, :master, *args, &block)\nend\nend\n", __FILE__, __LINE__ + 1
          end
          
          clear_cache_methods.each do |method_name|
            klass.class_eval "def \#{method_name}(*args, &block)\nclear_query_cache if query_cache_enabled\nuse_master_connection do\nreturn proxy_connection_method(master_connection, :\#{method_name}, :master, *args, &block)\nend\nend\n", __FILE__, __LINE__ + 1
          end
          
          read_only_methods.each do |method_name|
            klass.class_eval "def \#{method_name}(*args, &block)\nconnection = @use_master ? master_connection : current_read_connection\nproxy_connection_method(connection, :\#{method_name}, :read, *args, &block)\nend\n", __FILE__, __LINE__ + 1
          end
          klass.send :protected, :select

          const_set(adapter_class_name, klass)
          
          return klass
        end