~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/pbms/src/events_ms.cc

trunk merge plus more pbms updates for drizzle.

Show diffs side-by-side

added added

removed removed

Lines of Context:
221
221
}
222
222
 
223
223
//==================================
 
224
// My session event observers: 
 
225
static bool observeAfterDropDatabase(AfterDropDatabaseEventData &data)
 
226
{
 
227
        PBMSResultRec result;
 
228
        if (data.err != 0)
 
229
                return false;
 
230
 
 
231
        if (MSEngine::dropDatabase(data.db.c_str(), &result) != 0) {
 
232
                fprintf(stderr, "PBMSEvents: dropDatabase(\"%s\") error (%d):'%s'\n", 
 
233
                        data.db.c_str(), result.mr_code,  result.mr_message);
 
234
        }
 
235
        
 
236
        // Always return no error for after drop database. What could the server do about it?
 
237
        return false;
 
238
}
 
239
 
 
240
//==================================
224
241
// My schema event observers: 
225
242
static bool observeAfterDropTable(AfterDropTableEventData &data)
226
243
{
290
307
}
291
308
 
292
309
//==================================
 
310
/* This is where I register which schema events my pluggin is interested in.*/
 
311
void PBMSEvents::registerSessionEventsDo(Session &, EventObserverList &observers)
 
312
{
 
313
  if (PBMSParameters::isPBMSEventsEnabled() == false) 
 
314
    return;
 
315
    
 
316
  registerEvent(observers, AFTER_DROP_DATABASE);
 
317
}
 
318
 
 
319
//==================================
293
320
/* The event observer.*/
294
321
bool PBMSEvents::observeEventDo(EventData &data)
295
322
{
296
323
  bool result= false;
297
324
  
298
325
  switch (data.event) {
 
326
  case AFTER_DROP_DATABASE:
 
327
    result = observeAfterDropDatabase((AfterDropDatabaseEventData &)data);
 
328
    break;
 
329
    
299
330
  case AFTER_DROP_TABLE:
300
331
    result = observeAfterDropTable((AfterDropTableEventData &)data);
301
332
    break;