MySQL Lists are EOL. Please join:

List:Internals« Previous MessageNext Message »
From:Timothy Smith Date:May 24 2001 8:27pm
Subject:Re: how do you create a new database type (DISAM or TEXT)
View as plain text  
On 2001 May 24, Dave Thomas <ssl476@stripped> wrote:
> I am trying to create a new type of database. I am modifying the source 
> files for MySql server. Does anyone know how to go about adding a new type? 

This should give you some idea of what you need to do.

$ grep MYISAM sql/*
sql/ChangeLog:* Automatic change of HEAP temporary tables to MYISAM tables in case of
sql/ChangeLog:* Use the MYISAM UNIQUE constraint to solve SELECT DISTINCT faster.
sql/ChangeLog:* Use auto_increment value provided by MYISAM
sql/ha_myisam.cc:  MYISAM_SHARE* share = file->s;
sql/ha_myisam.cc:  MYISAM_SHARE* share = file->s;
sql/ha_myisam.cc:  MYISAM_SHARE* share = file->s;
sql/ha_myisam.cc:  MYISAM_SHARE* share = file->s;
sql/ha_myisam.cc:  MYISAM_SHARE* share = file->s;
sql/handler.cc:  "MRG_ISAM","MYISAM", "MRG_MYISAM", "BDB", "INNOBASE", "GEMINI", "?",
"?",NullS
sql/handler.cc:    return(berkeley_skip ? DB_TYPE_MYISAM : database_type);
sql/handler.cc:    return(innodb_skip ? DB_TYPE_MYISAM : database_type);
sql/handler.cc:    return(gemini_skip ? DB_TYPE_MYISAM : database_type);
sql/handler.cc:  case DB_TYPE_MYISAM:
sql/handler.cc:  case DB_TYPE_MRG_MYISAM:
sql/handler.cc:  return(DB_TYPE_MYISAM);			/* Use this as default */
sql/handler.cc:  case DB_TYPE_MYISAM:
sql/handler.cc:  case DB_TYPE_MRG_MYISAM:
sql/handler.h:	       DB_TYPE_MRG_ISAM, DB_TYPE_MYISAM, DB_TYPE_MRG_MYISAM,
sql/lex.h:  { "MRG_MYISAM",	SYM(MERGE_SYM),0,0},
sql/lex.h:  { "MYISAM",		SYM(MYISAM_SYM),0,0},
sql/mysqld.cc:enum db_type default_table_type=DB_TYPE_MYISAM;
sql/mysqld.cc:               OPT_MEMLOCK,                 OPT_MYISAM_RECOVER,
sql/mysqld.cc:  {"myisam-recover",	    optional_argument, 0, (int) OPT_MYISAM_RECOVER},
sql/mysqld.cc:    case OPT_MYISAM_RECOVER:
sql/sql_select.cc:   
table->file=get_new_handler(table,table->db_type=DB_TYPE_MYISAM);
sql/sql_select.cc:  if (table->db_type == DB_TYPE_MYISAM)
sql/sql_select.cc:  new_table.db_type=DB_TYPE_MYISAM;
sql/sql_select.cc:  if (!(new_table.file=get_new_handler(&new_table,DB_TYPE_MYISAM)))
sql/sql_table.cc:  tmp_table.db_low_byte_first= test(create_info->db_type ==
DB_TYPE_MYISAM ||
sql/sql_yacc.yy:%token	MYISAM_SYM
sql/sql_yacc.yy:	| MYISAM_SYM	{ $$= DB_TYPE_MYISAM; }
sql/sql_yacc.yy:	| MERGE_SYM	{ $$= DB_TYPE_MRG_MYISAM; }
sql/sql_yacc.yy:	| MYISAM_SYM		{}
sql/table.cc:  outparam->db_low_byte_first=test(outparam->db_type == DB_TYPE_MYISAM
||
sql/unireg.cc:  table.db_low_byte_first=test(table_type == DB_TYPE_MYISAM ||

Tim

-- 
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /    Tim Smith <tim@stripped>
 / /|_/ / // /\ \/ /_/ / /__   MySQL AB, Development Team
/_/  /_/\_, /___/\___\_\___/   Boone, NC  USA
       <___/   www.mysql.com
Thread
how do you create a new database type (DISAM or TEXT)Dave Thomas24 May
  • Re: how do you create a new database type (DISAM or TEXT)Timothy Smith24 May
  • Re: how do you create a new database type (DISAM or TEXT)Sinisa Milivojevic25 May
  • how do you create a new database type (DISAM or TEXT)Michael Widenius26 May
Re: how do you create a new database type (DISAM or TEXT)DAVE THOMAS30 May
  • Re: how do you create a new database type (DISAM or TEXT)Timothy Smith30 May
  • Re: how do you create a new database type (DISAM or TEXT)Sinisa Milivojevic31 May
  • Re: how do you create a new database type (DISAM or TEXT)Michael Widenius31 May
RE: how do you create a new database type (DISAM or TEXT)DAVE THOMAS31 May
RE: how do you create a new database type (DISAM or TEXT)DAVE THOMAS31 May
RE: how do you create a new database type (DISAM or TEXT)DAVE THOMAS31 May
  • Re: how do you create a new database type (DISAM or TEXT)Timothy Smith31 May
RE: how do you create a new database type (DISAM or TEXT)DAVE THOMAS31 May
  • RE: how do you create a new database type (DISAM or TEXT)Michael Widenius1 Jun