~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/session.h

  • Committer: Monty Taylor
  • Date: 2010-05-21 06:34:40 UTC
  • mfrom: (1530.3.1)
  • mto: (1530.2.8)
  • mto: This revision was merged to the branch mainline in revision 1556.
  • Revision ID: mordred@inaugust.com-20100521063440-n98r0n8mgb0hg65d
Merged align-static-plugins into plugin-to-module.

Show diffs side-by-side

added added

removed removed

Lines of Context:
59
59
{
60
60
class Client;
61
61
class Scheduler;
 
62
class EventObserverList;
62
63
}
 
64
 
63
65
namespace message
64
66
{
65
67
class Transaction;
75
77
class CopyField;
76
78
class Table_ident;
77
79
 
 
80
class TableShareInstance;
 
81
 
78
82
extern char internal_table_name[2];
79
83
extern char empty_c_string[1];
80
84
extern const char **errmesg;
402
406
   */
403
407
  Item *free_list;
404
408
  memory::Root *mem_root; /**< Pointer to current memroot */
 
409
 
 
410
 
 
411
  memory::Root *getMemRoot()
 
412
  {
 
413
    return mem_root;
 
414
  }
405
415
  /**
406
416
   * Uniquely identifies each statement object in thread scope; change during
407
417
   * statement lifetime.
1103
1113
    return (abort_on_warning);
1104
1114
  }
1105
1115
  void set_status_var_init();
1106
 
  void reset_n_backup_open_tables_state(Open_tables_state *backup);
1107
 
  void restore_backup_open_tables_state(Open_tables_state *backup);
1108
1116
 
1109
1117
  /**
1110
1118
    Set the current database; use deep copy of C-string.
1251
1259
  /** Pointers to memory managed by the ReplicationServices component */
1252
1260
  message::Transaction *transaction_message;
1253
1261
  message::Statement *statement_message;
1254
 
  /** Microsecond timestamp of when Session connected */
 
1262
  plugin::EventObserverList *session_event_observers;
 
1263
  
 
1264
  /* Schema observers are mapped to databases. */
 
1265
  std::map<std::string, plugin::EventObserverList *> schema_event_observers;
 
1266
 
 
1267
 
 
1268
public:
 
1269
  plugin::EventObserverList *getSessionObservers() 
 
1270
  { 
 
1271
    return session_event_observers;
 
1272
  }
 
1273
  
 
1274
  void setSessionObservers(plugin::EventObserverList *observers) 
 
1275
  { 
 
1276
    session_event_observers= observers;
 
1277
  }
 
1278
  
 
1279
  /* For schema event observers there is one set of observers per database. */
 
1280
  plugin::EventObserverList *getSchemaObservers(const std::string &db_name) 
 
1281
  { 
 
1282
    std::map<std::string, plugin::EventObserverList *>::iterator it;
 
1283
    
 
1284
    it= schema_event_observers.find(db_name);
 
1285
    if (it == schema_event_observers.end())
 
1286
      return NULL;
 
1287
      
 
1288
    return it->second;
 
1289
  }
 
1290
  
 
1291
  void setSchemaObservers(const std::string &db_name, plugin::EventObserverList *observers) 
 
1292
  { 
 
1293
    std::map<std::string, plugin::EventObserverList *>::iterator it;
 
1294
 
 
1295
    it= schema_event_observers.find(db_name);
 
1296
    if (it != schema_event_observers.end())
 
1297
      schema_event_observers.erase(it);;
 
1298
 
 
1299
    if (observers)
 
1300
      schema_event_observers[db_name] = observers;
 
1301
  }
 
1302
  
 
1303
  
 
1304
 private:
 
1305
 /** Microsecond timestamp of when Session connected */
1255
1306
  uint64_t connect_microseconds;
1256
1307
  const char *proc_info;
1257
1308
 
1496
1547
  static void unlink(Session *session);
1497
1548
 
1498
1549
  void get_xid(DRIZZLE_XID *xid); // Innodb only
 
1550
 
 
1551
private:
 
1552
  std::vector<TableShareInstance *> temporary_shares;
 
1553
 
 
1554
public:
 
1555
  TableShareInstance *getTemporaryShare(const char *tmpname_arg);
 
1556
  TableShareInstance *getTemporaryShare();
1499
1557
};
1500
1558
 
1501
 
class JOIN;
 
1559
class Join;
1502
1560
 
1503
1561
#define ESCAPE_CHARS "ntrb0ZN" // keep synchronous with READ_INFO::unescape
1504
1562