~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/optimizer/access_method_factory.cc

  • Committer: Olaf van der Spek
  • Date: 2011-06-25 13:36:24 UTC
  • mto: This revision was merged to the branch mainline in revision 2349.
  • Revision ID: olafvdspek@gmail.com-20110625133624-hzy2ordecn161qco
Refactor

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
 */
20
20
 
21
21
#include <config.h>
22
 
 
23
 
#include <drizzled/sql_select.h>
24
 
#include <drizzled/join_table.h>
25
22
#include <drizzled/optimizer/access_method.h>
26
23
#include <drizzled/optimizer/access_method_factory.h>
27
24
#include <drizzled/optimizer/access_method/system.h>
30
27
#include <drizzled/optimizer/access_method/index.h>
31
28
#include <drizzled/optimizer/access_method/scan.h>
32
29
 
 
30
#include <boost/make_shared.hpp>
33
31
#include <boost/shared_ptr.hpp>
34
32
 
35
33
using namespace drizzled;
36
34
 
37
 
boost::shared_ptr<optimizer::AccessMethod>
38
 
optimizer::AccessMethodFactory::createAccessMethod(enum access_method type)
 
35
optimizer::AccessMethod::ptr optimizer::AccessMethodFactory::create(access_method type)
39
36
{
40
 
  boost::shared_ptr<optimizer::AccessMethod> am_ret;
41
 
 
42
37
  switch (type)
43
38
  {
44
39
  case AM_SYSTEM:
45
 
    am_ret.reset(new optimizer::System());
46
 
    break;
 
40
    return boost::make_shared<optimizer::System>();
47
41
  case AM_CONST:
48
 
    am_ret.reset(new optimizer::Const());
49
 
    break;
 
42
    return boost::make_shared<optimizer::Const>();
50
43
  case AM_EQ_REF:
51
 
    am_ret.reset(new optimizer::UniqueIndex());
52
 
    break;
 
44
    return boost::make_shared<optimizer::UniqueIndex>();
53
45
  case AM_REF_OR_NULL:
54
46
  case AM_REF:
55
 
    am_ret.reset(new optimizer::Index());
56
 
    break;
 
47
    return boost::make_shared<optimizer::Index>();
57
48
  case AM_ALL:
58
 
    am_ret.reset(new optimizer::Scan());
59
 
    break;
 
49
    return boost::make_shared<optimizer::Scan>();
60
50
  default:
61
 
    break;
 
51
    assert(false);
62
52
  }
63
 
  
64
 
  return am_ret;
 
53
  return optimizer::AccessMethod::ptr();
65
54
}
66