mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
376fb08072
Added support for lower_case_table_names=2, which is to be used on case insensitive file systems. This tells MySQL to preserve the used case of filenames and database names to make it esier to move files between cases sensitive can case insensitive file systems (like Windows and Linux) client/mysqltest.c: Indentation cleanup include/myisam.h: Made some pointers 'const' mysql-test/mysql-test-run.sh: Portability fix for OSX sql/filesort.cc: Safety fix (not needed for current code but needed for 5.0) sql/ha_berkeley.cc: More debugging Changed 'create' to return error number sql/ha_berkeley.h: Added HA_FILE_BASED sql/ha_innodb.cc: Added missing DBUG_RETURN sql/ha_isam.cc: Changed create to return error number sql/ha_isam.h: Added HA_FILE_BASED sql/ha_isammrg.h: Added HA_FILE_BASED sql/ha_myisam.cc: Changed create to return error number sql/ha_myisam.h: Added HA_FILE_BASED sql/ha_myisammrg.cc: Changed create to return error number sql/ha_myisammrg.h: Added HA_FILE_BASED sql/handler.cc: Ensure that table engines gets table names in lower case even if we are using lower_case_table_names Removed test for DB_TYPE_INNODB by ensuring that create method returns error number. sql/handler.h: Added HA_FILE_BASED Made some struct entries 'const' Added 'alias' for create to be able to create tables in mixed case on case insensitive file systems sql/mysql_priv.h: Support for lower_case_table_names=2 sql/mysqld.cc: Support for lower_case_table_names=2 Moved test of case insenstive file system after all mutex are created sql/set_var.cc: Support for lower_case_table_names=2 sql/sql_class.h: Indentation change sql/sql_db.cc: Support for lower_case_table_names=2 sql/sql_insert.cc: Indentation change sql/sql_parse.cc: Support for lower_case_table_names=2 sql/sql_rename.cc: Support for lower_case_table_names=2 Added missing 'unpack_filename' to RENAME which may fix a bug in RENAME TABLE on windows sql/sql_show.cc: If lower_case_table_name=2 is given, show original case in SHOW CREATE TABLE sql/sql_table.cc: Support for lower_case_table_names=2 for DROP TABLE, RENAME TABLE, ALTER TABLE and CREATE TABLE
72 lines
2.7 KiB
C++
72 lines
2.7 KiB
C++
/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
|
|
|
|
|
#ifdef __GNUC__
|
|
#pragma interface /* gcc class implementation */
|
|
#endif
|
|
|
|
/* class for the the myisam merge handler */
|
|
|
|
#include <merge.h>
|
|
|
|
class ha_isammrg: public handler
|
|
{
|
|
MRG_INFO *file;
|
|
|
|
public:
|
|
ha_isammrg(TABLE *table): handler(table), file(0) {}
|
|
~ha_isammrg() {}
|
|
const char *table_type() const { return "MRG_ISAM"; }
|
|
const char **bas_ext() const;
|
|
ulong table_flags() const { return (HA_READ_RND_SAME | HA_KEYPOS_TO_RNDPOS |
|
|
HA_REC_NOT_IN_SEQ | HA_FILE_BASED); }
|
|
ulong index_flags(uint idx) const { return HA_NOT_READ_PREFIX_LAST; }
|
|
|
|
uint max_record_length() const { return HA_MAX_REC_LENGTH; }
|
|
uint max_keys() const { return 0; }
|
|
uint max_key_parts() const { return 0; }
|
|
uint max_key_length() const { return 0; }
|
|
bool low_byte_first() const { return 0; }
|
|
uint min_record_length(uint options) const;
|
|
|
|
int open(const char *name, int mode, uint test_if_locked);
|
|
int close(void);
|
|
int write_row(byte * buf);
|
|
int update_row(const byte * old_data, byte * new_data);
|
|
int delete_row(const byte * buf);
|
|
int index_read(byte * buf, const byte * key,
|
|
uint key_len, enum ha_rkey_function find_flag);
|
|
int index_read_idx(byte * buf, uint indx, const byte * key,
|
|
uint key_len, enum ha_rkey_function find_flag);
|
|
int index_next(byte * buf);
|
|
int index_prev(byte * buf);
|
|
int index_first(byte * buf);
|
|
int index_last(byte * buf);
|
|
int rnd_init(bool scan=1);
|
|
int rnd_next(byte *buf);
|
|
int rnd_pos(byte * buf, byte *pos);
|
|
void position(const byte *record);
|
|
my_off_t row_position() { return mrg_position(file); }
|
|
void info(uint);
|
|
int extra(enum ha_extra_function operation);
|
|
int reset(void);
|
|
int external_lock(THD *thd, int lock_type);
|
|
uint lock_count(void) const;
|
|
int create(const char *name, TABLE *form, HA_CREATE_INFO *create_info);
|
|
THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
|
|
enum thr_lock_type lock_type);
|
|
};
|