mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
merge with 4.0
BitKeeper/etc/ignore: auto-union VC++Files/comp_err/comp_err.dsp: Auto merged VC++Files/my_print_defaults/my_print_defaults.dsp: Auto merged VC++Files/myisampack/myisampack.dsp: Auto merged acinclude.m4: Auto merged innobase/buf/buf0buf.c: Auto merged innobase/com/com0shm.c: Auto merged innobase/data/data0data.c: Auto merged innobase/ha/ha0ha.c: Auto merged innobase/include/buf0buf.ic: Auto merged innobase/include/dict0dict.h: Auto merged innobase/include/ibuf0ibuf.h: Auto merged innobase/include/lock0lock.h: Auto merged innobase/include/mtr0log.h: Auto merged innobase/include/mtr0mtr.h: Auto merged innobase/include/os0proc.h: Auto merged innobase/include/os0thread.h: Auto merged innobase/include/srv0srv.h: Auto merged innobase/include/sync0sync.h: Auto merged innobase/lock/lock0lock.c: Auto merged innobase/log/log0recv.c: Auto merged innobase/mem/mem0dbg.c: Auto merged innobase/mtr/mtr0mtr.c: Auto merged innobase/os/os0proc.c: Auto merged innobase/page/page0page.c: Auto merged innobase/que/que0que.c: Auto merged innobase/rem/rem0cmp.c: Auto merged innobase/row/row0ins.c: Auto merged innobase/row/row0mysql.c: Auto merged innobase/srv/srv0start.c: Auto merged innobase/sync/sync0sync.c: Auto merged innobase/trx/trx0rec.c: Auto merged innobase/trx/trx0trx.c: Auto merged innobase/ut/ut0mem.c: Auto merged innobase/ut/ut0ut.c: Auto merged libmysql/libmysql.c: Auto merged scripts/mysql_config.sh: Auto merged sql/net_serv.cc: Auto merged sql/sql_delete.cc: Auto merged sql/sql_yacc.yy: Auto merged
This commit is contained in:
@ -727,416 +727,3 @@ dtuple_big_rec_free(
|
||||
{
|
||||
mem_heap_free(vector->heap);
|
||||
}
|
||||
|
||||
#ifdef notdefined
|
||||
|
||||
/******************************************************************
|
||||
Generates random numbers, where 10/16 is uniformly
|
||||
distributed between 0 and n1, 5/16 between 0 and n2,
|
||||
and 1/16 between 0 and n3. */
|
||||
static
|
||||
ulint
|
||||
dtuple_gen_rnd_ulint(
|
||||
/*=================*/
|
||||
/* out: random ulint */
|
||||
ulint n1,
|
||||
ulint n2,
|
||||
ulint n3)
|
||||
{
|
||||
ulint m;
|
||||
ulint n;
|
||||
|
||||
m = ut_rnd_gen_ulint() % 16;
|
||||
|
||||
if (m < 10) {
|
||||
n = n1;
|
||||
} else if (m < 15) {
|
||||
n = n2;
|
||||
} else {
|
||||
n = n3;
|
||||
}
|
||||
|
||||
m = ut_rnd_gen_ulint();
|
||||
|
||||
return(m % n);
|
||||
}
|
||||
|
||||
/***************************************************************
|
||||
Generates a random tuple. */
|
||||
|
||||
dtuple_t*
|
||||
dtuple_gen_rnd_tuple(
|
||||
/*=================*/
|
||||
/* out: pointer to the tuple */
|
||||
mem_heap_t* heap) /* in: memory heap where generated */
|
||||
{
|
||||
ulint n_fields;
|
||||
dfield_t* field;
|
||||
ulint len;
|
||||
dtuple_t* tuple;
|
||||
ulint i;
|
||||
ulint j;
|
||||
byte* ptr;
|
||||
|
||||
n_fields = dtuple_gen_rnd_ulint(5, 30, 300) + 1;
|
||||
|
||||
tuple = dtuple_create(heap, n_fields);
|
||||
|
||||
for (i = 0; i < n_fields; i++) {
|
||||
|
||||
if (n_fields < 7) {
|
||||
len = dtuple_gen_rnd_ulint(5, 30, 400);
|
||||
} else {
|
||||
len = dtuple_gen_rnd_ulint(7, 5, 17);
|
||||
}
|
||||
|
||||
field = dtuple_get_nth_field(tuple, i);
|
||||
|
||||
if (len == 0) {
|
||||
dfield_set_data(field, NULL, UNIV_SQL_NULL);
|
||||
} else {
|
||||
ptr = mem_heap_alloc(heap, len);
|
||||
dfield_set_data(field, ptr, len - 1);
|
||||
|
||||
for (j = 0; j < len; j++) {
|
||||
*ptr = (byte)(65 +
|
||||
dtuple_gen_rnd_ulint(22, 22, 22));
|
||||
ptr++;
|
||||
}
|
||||
}
|
||||
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR,
|
||||
DATA_ENGLISH, 500, 0);
|
||||
}
|
||||
|
||||
ut_a(dtuple_validate(tuple));
|
||||
|
||||
return(tuple);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
Generates a test tuple for sort and comparison tests. */
|
||||
|
||||
void
|
||||
dtuple_gen_test_tuple(
|
||||
/*==================*/
|
||||
dtuple_t* tuple, /* in/out: a tuple with 3 fields */
|
||||
ulint i) /* in: a number < 512 */
|
||||
{
|
||||
ulint j;
|
||||
dfield_t* field;
|
||||
void* data = NULL;
|
||||
ulint len = 0;
|
||||
|
||||
for (j = 0; j < 3; j++) {
|
||||
switch (i % 8) {
|
||||
case 0:
|
||||
data = ""; len = 0; break;
|
||||
case 1:
|
||||
data = "A"; len = 1; break;
|
||||
case 2:
|
||||
data = "AA"; len = 2; break;
|
||||
case 3:
|
||||
data = "AB"; len = 2; break;
|
||||
case 4:
|
||||
data = "B"; len = 1; break;
|
||||
case 5:
|
||||
data = "BA"; len = 2; break;
|
||||
case 6:
|
||||
data = "BB"; len = 2; break;
|
||||
case 7:
|
||||
len = UNIV_SQL_NULL; break;
|
||||
}
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 2 - j);
|
||||
|
||||
dfield_set_data(field, data, len);
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR,
|
||||
DATA_ENGLISH, 100, 0);
|
||||
|
||||
i = i / 8;
|
||||
}
|
||||
|
||||
ut_ad(dtuple_validate(tuple));
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
Generates a test tuple for B-tree speed tests. */
|
||||
|
||||
void
|
||||
dtuple_gen_test_tuple3(
|
||||
/*===================*/
|
||||
dtuple_t* tuple, /* in/out: a tuple with >= 3 fields */
|
||||
ulint i, /* in: a number < 1000000 */
|
||||
ulint type, /* in: DTUPLE_TEST_FIXED30, ... */
|
||||
byte* buf) /* in: a buffer of size >= 16 bytes */
|
||||
{
|
||||
dfield_t* field;
|
||||
ulint third_size;
|
||||
|
||||
ut_ad(tuple && buf);
|
||||
ut_ad(i < 1000000);
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 0);
|
||||
|
||||
ut_strcpy((char*)buf, "0000000");
|
||||
|
||||
buf[1] = (byte)('0' + (i / 100000) % 10);
|
||||
buf[2] = (byte)('0' + (i / 10000) % 10);
|
||||
buf[3] = (byte)('0' + (i / 1000) % 10);
|
||||
buf[4] = (byte)('0' + (i / 100) % 10);
|
||||
buf[5] = (byte)('0' + (i / 10) % 10);
|
||||
buf[6] = (byte)('0' + (i % 10));
|
||||
|
||||
dfield_set_data(field, buf, 8);
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR, DATA_ENGLISH, 100, 0);
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 1);
|
||||
|
||||
i = i % 1000; /* ut_rnd_gen_ulint() % 1000000; */
|
||||
|
||||
ut_strcpy((char*)buf + 8, "0000000");
|
||||
|
||||
buf[9] = (byte)('0' + (i / 100000) % 10);
|
||||
buf[10] = (byte)('0' + (i / 10000) % 10);
|
||||
buf[11] = (byte)('0' + (i / 1000) % 10);
|
||||
buf[12] = (byte)('0' + (i / 100) % 10);
|
||||
buf[13] = (byte)('0' + (i / 10) % 10);
|
||||
buf[14] = (byte)('0' + (i % 10));
|
||||
|
||||
dfield_set_data(field, buf + 8, 8);
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR, DATA_ENGLISH, 100, 0);
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 2);
|
||||
|
||||
data_rnd += 8757651;
|
||||
|
||||
if (type == DTUPLE_TEST_FIXED30) {
|
||||
third_size = 30;
|
||||
} else if (type == DTUPLE_TEST_RND30) {
|
||||
third_size = data_rnd % 30;
|
||||
} else if (type == DTUPLE_TEST_RND3500) {
|
||||
third_size = data_rnd % 3500;
|
||||
} else if (type == DTUPLE_TEST_FIXED2000) {
|
||||
third_size = 2000;
|
||||
} else if (type == DTUPLE_TEST_FIXED3) {
|
||||
third_size = 3;
|
||||
} else {
|
||||
ut_error;
|
||||
}
|
||||
|
||||
if (type == DTUPLE_TEST_FIXED30) {
|
||||
dfield_set_data(field,
|
||||
"12345678901234567890123456789", third_size);
|
||||
} else {
|
||||
dfield_set_data(field, data_buf, third_size);
|
||||
}
|
||||
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR, DATA_ENGLISH, 100, 0);
|
||||
|
||||
ut_ad(dtuple_validate(tuple));
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
Generates a test tuple for B-tree speed tests. */
|
||||
|
||||
void
|
||||
dtuple_gen_search_tuple3(
|
||||
/*=====================*/
|
||||
dtuple_t* tuple, /* in/out: a tuple with 1 or 2 fields */
|
||||
ulint i, /* in: a number < 1000000 */
|
||||
byte* buf) /* in: a buffer of size >= 16 bytes */
|
||||
{
|
||||
dfield_t* field;
|
||||
|
||||
ut_ad(tuple && buf);
|
||||
ut_ad(i < 1000000);
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 0);
|
||||
|
||||
ut_strcpy((char*)buf, "0000000");
|
||||
|
||||
buf[1] = (byte)('0' + (i / 100000) % 10);
|
||||
buf[2] = (byte)('0' + (i / 10000) % 10);
|
||||
buf[3] = (byte)('0' + (i / 1000) % 10);
|
||||
buf[4] = (byte)('0' + (i / 100) % 10);
|
||||
buf[5] = (byte)('0' + (i / 10) % 10);
|
||||
buf[6] = (byte)('0' + (i % 10));
|
||||
|
||||
dfield_set_data(field, buf, 8);
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR, DATA_ENGLISH, 100, 0);
|
||||
|
||||
if (dtuple_get_n_fields(tuple) == 1) {
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 1);
|
||||
|
||||
i = (i * 1000) % 1000000;
|
||||
|
||||
ut_strcpy((char*)buf + 8, "0000000");
|
||||
|
||||
buf[9] = (byte)('0' + (i / 100000) % 10);
|
||||
buf[10] = (byte)('0' + (i / 10000) % 10);
|
||||
buf[11] = (byte)('0' + (i / 1000) % 10);
|
||||
buf[12] = (byte)('0' + (i / 100) % 10);
|
||||
buf[13] = (byte)('0' + (i / 10) % 10);
|
||||
buf[14] = (byte)('0' + (i % 10));
|
||||
|
||||
dfield_set_data(field, buf + 8, 8);
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR, DATA_ENGLISH, 100, 0);
|
||||
|
||||
ut_ad(dtuple_validate(tuple));
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
Generates a test tuple for TPC-A speed test. */
|
||||
|
||||
void
|
||||
dtuple_gen_test_tuple_TPC_A(
|
||||
/*========================*/
|
||||
dtuple_t* tuple, /* in/out: a tuple with >= 3 fields */
|
||||
ulint i, /* in: a number < 10000 */
|
||||
byte* buf) /* in: a buffer of size >= 16 bytes */
|
||||
{
|
||||
dfield_t* field;
|
||||
ulint third_size;
|
||||
|
||||
ut_ad(tuple && buf);
|
||||
ut_ad(i < 10000);
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 0);
|
||||
|
||||
ut_strcpy((char*)buf, "0000");
|
||||
|
||||
buf[0] = (byte)('0' + (i / 1000) % 10);
|
||||
buf[1] = (byte)('0' + (i / 100) % 10);
|
||||
buf[2] = (byte)('0' + (i / 10) % 10);
|
||||
buf[3] = (byte)('0' + (i % 10));
|
||||
|
||||
dfield_set_data(field, buf, 5);
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR, DATA_ENGLISH, 100, 0);
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 1);
|
||||
|
||||
dfield_set_data(field, buf + 8, 5);
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR, DATA_ENGLISH, 100, 0);
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 2);
|
||||
|
||||
third_size = 90;
|
||||
|
||||
dfield_set_data(field, data_buf, third_size);
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR, DATA_ENGLISH, 100, 0);
|
||||
|
||||
ut_ad(dtuple_validate(tuple));
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
Generates a test tuple for B-tree speed tests. */
|
||||
|
||||
void
|
||||
dtuple_gen_search_tuple_TPC_A(
|
||||
/*==========================*/
|
||||
dtuple_t* tuple, /* in/out: a tuple with 1 field */
|
||||
ulint i, /* in: a number < 10000 */
|
||||
byte* buf) /* in: a buffer of size >= 16 bytes */
|
||||
{
|
||||
dfield_t* field;
|
||||
|
||||
ut_ad(tuple && buf);
|
||||
ut_ad(i < 10000);
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 0);
|
||||
|
||||
ut_strcpy((char*)buf, "0000");
|
||||
|
||||
buf[0] = (byte)('0' + (i / 1000) % 10);
|
||||
buf[1] = (byte)('0' + (i / 100) % 10);
|
||||
buf[2] = (byte)('0' + (i / 10) % 10);
|
||||
buf[3] = (byte)('0' + (i % 10));
|
||||
|
||||
dfield_set_data(field, buf, 5);
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR, DATA_ENGLISH, 100, 0);
|
||||
|
||||
ut_ad(dtuple_validate(tuple));
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
Generates a test tuple for TPC-C speed test. */
|
||||
|
||||
void
|
||||
dtuple_gen_test_tuple_TPC_C(
|
||||
/*========================*/
|
||||
dtuple_t* tuple, /* in/out: a tuple with >= 12 fields */
|
||||
ulint i, /* in: a number < 100000 */
|
||||
byte* buf) /* in: a buffer of size >= 16 bytes */
|
||||
{
|
||||
dfield_t* field;
|
||||
ulint size;
|
||||
ulint j;
|
||||
|
||||
ut_ad(tuple && buf);
|
||||
ut_ad(i < 100000);
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 0);
|
||||
|
||||
buf[0] = (byte)('0' + (i / 10000) % 10);
|
||||
buf[1] = (byte)('0' + (i / 1000) % 10);
|
||||
buf[2] = (byte)('0' + (i / 100) % 10);
|
||||
buf[3] = (byte)('0' + (i / 10) % 10);
|
||||
buf[4] = (byte)('0' + (i % 10));
|
||||
|
||||
dfield_set_data(field, buf, 5);
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR, DATA_ENGLISH, 100, 0);
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 1);
|
||||
|
||||
dfield_set_data(field, buf, 5);
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR, DATA_ENGLISH, 100, 0);
|
||||
|
||||
for (j = 0; j < 10; j++) {
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 2 + j);
|
||||
|
||||
size = 24;
|
||||
|
||||
dfield_set_data(field, data_buf, size);
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR, DATA_ENGLISH,
|
||||
100, 0);
|
||||
}
|
||||
|
||||
ut_ad(dtuple_validate(tuple));
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
Generates a test tuple for B-tree speed tests. */
|
||||
|
||||
void
|
||||
dtuple_gen_search_tuple_TPC_C(
|
||||
/*==========================*/
|
||||
dtuple_t* tuple, /* in/out: a tuple with 1 field */
|
||||
ulint i, /* in: a number < 100000 */
|
||||
byte* buf) /* in: a buffer of size >= 16 bytes */
|
||||
{
|
||||
dfield_t* field;
|
||||
|
||||
ut_ad(tuple && buf);
|
||||
ut_ad(i < 100000);
|
||||
|
||||
field = dtuple_get_nth_field(tuple, 0);
|
||||
|
||||
buf[0] = (byte)('0' + (i / 10000) % 10);
|
||||
buf[1] = (byte)('0' + (i / 1000) % 10);
|
||||
buf[2] = (byte)('0' + (i / 100) % 10);
|
||||
buf[3] = (byte)('0' + (i / 10) % 10);
|
||||
buf[4] = (byte)('0' + (i % 10));
|
||||
|
||||
dfield_set_data(field, buf, 5);
|
||||
dtype_set(dfield_get_type(field), DATA_VARCHAR, DATA_ENGLISH, 100, 0);
|
||||
|
||||
ut_ad(dtuple_validate(tuple));
|
||||
}
|
||||
|
||||
#endif /* notdefined */
|
||||
|
Reference in New Issue
Block a user