~james-page/ubuntu/precise/mysql-5.5/misc-fixes

« back to all changes in this revision

Viewing changes to sql/handler.h

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-06-11 07:34:33 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20120611073433-l9za2ni4ipp848y3
Tags: 5.5.24-0ubuntu0.12.04.1
* SECURITY UPDATE: Update to 5.5.24 to fix security issues (LP: #1011371)
  - http://dev.mysql.com/doc/refman/5.5/en/news-5-5-24.html

Show diffs side-by-side

added added

removed removed

Lines of Context:
382
382
/** Unused. Reserved for future versions. */
383
383
#define HA_CREATE_USED_PAGE_CHECKSUM    (1L << 21)
384
384
 
 
385
 
 
386
/*
 
387
  This is master database for most of system tables. However there
 
388
  can be other databases which can hold system tables. Respective
 
389
  storage engines define their own system database names.
 
390
*/
 
391
extern const char *mysqld_system_database;
 
392
 
 
393
/*
 
394
  Structure to hold list of system_database.system_table.
 
395
  This is used at both mysqld and storage engine layer.
 
396
*/
 
397
struct st_system_tablename
 
398
{
 
399
  const char *db;
 
400
  const char *tablename;
 
401
};
 
402
 
 
403
 
385
404
typedef ulonglong my_xid; // this line is the same as in log_event.h
386
405
#define MYSQL_XID_PREFIX "MySQLXid"
387
406
#define MYSQL_XID_PREFIX_LEN 8 // must be a multiple of 8
800
819
                     const char *wild, bool dir, List<LEX_STRING> *files);
801
820
   int (*table_exists_in_engine)(handlerton *hton, THD* thd, const char *db,
802
821
                                 const char *name);
 
822
 
 
823
  /**
 
824
    List of all system tables specific to the SE.
 
825
    Array element would look like below,
 
826
     { "<database_name>", "<system table name>" },
 
827
    The last element MUST be,
 
828
     { (const char*)NULL, (const char*)NULL }
 
829
 
 
830
    @see ha_example_system_tables in ha_example.cc
 
831
 
 
832
    This interface is optional, so every SE need not implement it.
 
833
  */
 
834
  const char* (*system_database)();
 
835
 
 
836
  /**
 
837
    Check if the given db.tablename is a system table for this SE.
 
838
 
 
839
    @param db                         Database name to check.
 
840
    @param table_name                 table name to check.
 
841
    @param is_sql_layer_system_table  if the supplied db.table_name is a SQL
 
842
                                      layer system table.
 
843
 
 
844
    @see example_is_supported_system_table in ha_example.cc
 
845
 
 
846
    is_sql_layer_system_table is supplied to make more efficient
 
847
    checks possible for SEs that support all SQL layer tables.
 
848
 
 
849
    This interface is optional, so every SE need not implement it.
 
850
  */
 
851
  bool (*is_supported_system_table)(const char *db,
 
852
                                    const char *table_name,
 
853
                                    bool is_sql_layer_system_table);
 
854
 
803
855
   uint32 license; /* Flag for Engine License */
804
856
   void *data; /* Location for engines to keep personal structures */
805
857
};
2238
2290
int ha_find_files(THD *thd,const char *db,const char *path,
2239
2291
                  const char *wild, bool dir, List<LEX_STRING>* files);
2240
2292
int ha_table_exists_in_engine(THD* thd, const char* db, const char* name);
 
2293
bool ha_check_if_supported_system_table(handlerton *hton, const char* db, 
 
2294
                                        const char* table_name);
2241
2295
 
2242
2296
/* key cache */
2243
2297
extern "C" int ha_init_key_cache(const char *name, KEY_CACHE *key_cache);