~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/plugin/catalog.cc

  • Committer: Brian Aker
  • Date: 2010-12-03 18:41:49 UTC
  • mto: (2017.3.1 catalogs)
  • mto: This revision was merged to the branch mainline in revision 2073.
  • Revision ID: brian@tangent.org-20101203184149-vweq8t4dxuh0cqbl
Merge in lock testing code/additional fix for tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
#include "drizzled/plugin/catalog.h"
24
24
#include "drizzled/catalog/cache.h"
 
25
#include "drizzled/error.h"
 
26
 
25
27
#include <boost/foreach.hpp>
26
28
 
27
29
namespace drizzled
92
94
bool Catalog::drop(const identifier::Catalog &identifier)
93
95
{
94
96
  catalog::error_t error;
 
97
 
 
98
  static drizzled::identifier::Catalog LOCAL_IDENTIFIER("local");
 
99
  if (identifier == LOCAL_IDENTIFIER)
 
100
  {
 
101
    my_error(drizzled::ER_CATALOG_NO_DROP_LOCAL, MYF(0));
 
102
    return false;
 
103
  }
 
104
 
95
105
  
96
106
  // We insert a lock into the cache, if this fails we bail.
97
107
  if (not catalog::Cache::singleton().lock(identifier, error))
117
127
  return false;
118
128
}
119
129
 
 
130
bool Catalog::lock(const identifier::Catalog &identifier)
 
131
{
 
132
  catalog::error_t error;
 
133
  
 
134
  // We insert a lock into the cache, if this fails we bail.
 
135
  if (not catalog::Cache::singleton().lock(identifier, error))
 
136
  {
 
137
    catalog::error(error, identifier);
 
138
 
 
139
    return false;
 
140
  }
 
141
 
 
142
  return true;
 
143
}
 
144
 
 
145
 
 
146
bool Catalog::unlock(const identifier::Catalog &identifier)
 
147
{
 
148
  catalog::error_t error;
 
149
  if (not catalog::Cache::singleton().unlock(identifier, error))
 
150
  {
 
151
    catalog::error(error, identifier);
 
152
  }
 
153
 
 
154
  return false;
 
155
}
 
156
 
120
157
bool plugin::Catalog::addPlugin(plugin::Catalog *arg)
121
158
{
122
159
  Engines::singleton().catalogs().push_back(arg->engine());