by typecasting the variables before multiplying them, so that the result of
the multiplication is of type "unsigned long long".
I verified this fix by creating a sparse file of 6TB and forcing InnoDB to
use it without overwriting it with zeroes (by commenting the code that
overwrites :newraw files).
New type ullint is introduced with the sole purpose of shortening
"unsigned long long", please do not define it to something else than
"unsigned long long".
Approved by: Heikki
When creating an index containing a too long record, InnoDB would
dereference a NULL pointer when trying to determine the maximum row length.
innodb_check_for_record_too_big_error(): Replace the dict_table_t*
parameter with a Boolean flag. There is not always a dict_table_t object
when this function is called.
page_get_free_space_of_empty_noninline(): Move the definition and
declaration from row0mysql (!) to page0page. Make the signature
identical with page_get_free_space_of_empty().
create_clustered_index_when_no_primary(): Add the parameter "comp".
Remove unnecessary casts.
prebuilt->sql_stat_start. In an ALTER TABLE statement in the innodb_gis
test, an ut_ad() assertion failed, because no IX lock had been acquired
on the table, because prebuilt->sql_stat_start was inadvertently reset
to FALSE, by this function. This function was called via
ha_innobase::info() and mysql_prepare_alter_table().
ChangeSet@2007-05-10 12:59:39+03:00, monty@mysql.com
WL#3817: Simplify string / memory area types and make things more consistent
(first part)
The following type conversions was done:
- Changed byte to uchar
- Changed gptr to uchar*
- Change my_string to char *
- Change my_size_t to size_t
- Change size_s to size_t
Removed declaration of byte, gptr, my_string, my_size_t and size_s.
[...]
ha_innodb.cc:
Removed some old types
Updated hash-get-key function arguments
Added missing casts for alloc() and printf()
Removed some not needed casts
ha_innodb.h:
Removed some old types
thd_is_replication_slave_thread(), thd_has_edited_nontrans_tables():
Remove blank line between the function comment and the function
definition. There should be exactly one line between the return
type and the function comment, and this line should be one of
'', 'static', 'UNIV_INLINE', and 'extern "C"'.
longlong to long long because MYSQL_SYSVAR_LONGLONG marco expects long long
type.
Also change
((ulint)innobase_buffer_pool_size) / 1024
to
(ulint)(innobase_buffer_pool_size / 1024)
and remove comment which is no longer true.
Provided that innobase_buffer_pool_size is always 64bits these statements
are equivalent if ulint is 64 bit (well it will screw up if
innobase_buffer_pool_size is negative). And if ulint is 32 bit the later
variant gives a little more chance that the value will fit.
Approved by: Heikki
and adapt some things.
Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
<mysql/plugin.h>. Until the function is declared there, you can
uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
Remove storage/innobase/*/Makefile.am. The whole compilation is driven by
storage/innobase/Makefile.am and storage/innobase/plug.in.
plug.in: Declare InnoDB as a dynamic plugin.
ha_innodb.h: Remove the declarations of many global variables. The variables
are no longer directly referenced outside of storage/innobase.
trx_t: Add the field trx->duplicates.
trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
innobase_query_is_update(): Remove. Consult trx->duplicates instead.
server to enter InnoDB. This can be made further customizable by the
user if we introduce a new config parameter. This will wait until
config parameters can be easily added.
Approved by: Marko
"Move innobase_release_stat_resources(trx) outside the 'if' in
ha_innobase::external_lock(). That would add more safety that whatever
MySQL does at a query end, there would be no risk of a hang on the btr
search latch."
Also call innobase_release_temporary_latches() in the beginning of
ha_innobase::close().
Approved by: Heikki
of UNDO slots in the rollback segment. This is a partial fix since the
MySQL error code requested to properly report the error condition back
to the client has not yet materialized. Currently we have #ifdef'd the
error code translation in ha_innodb.cc. This will have to be changed
as and when MySQl add the new requested code or an equivalent code
that we can then use.
Given the above, currently we will get the old behaviour, not the "fixed"
and intended behaviour.
MySQL calls external_lock at the beginning and end of a statement
when it is not calling start_stmt or commit or rollback. Thus,
statement boundaries can be (and are already) detected without
monitoring thd->query_id.
The function innobase_commit() seemingly lacks the call to
innobase_release_stat_resources(), which should be called at
the end of every SQL statement. The call was replaced by
equivalent statements by Vadim Tkachenko when he implemented
innodb_commit_concurrency in MySQL 5.0:
http://mysql.bkbits.net:8080/mysql-5.0/?PAGE=patch&REV=1.1886.70.1
ChangeSet@1.2409.1.83 2007-03-06 10:36:15-07:00 tsmith@hindu.god
Bug #26598: Create variable to allow turning off of statistic gathering
on metadata commands
Add innodb_stats_on_metadata option, which enables gathering
index statistics when processing metadata commands such as
SHOW TABLE STATUS. Default behavior of the server does not
change (this option is enabled by default).
innobase_query_caching_of_table_permitted(): Make static.
ha_innobase::register_query_cache_table(): Move the function
definition from ha_innodb.h to ha_innodb.cc. Add comments.
void* innobase_prebuilt;
to this:
row_prebuilt_t* prebuilt;
by introducing the typedef in ha_innodb.h, and remove all the now needless
local variables and casts in ha_innodb.cc.
ChangeSet@1.2372, 2006-12-31 02:29:11+01:00, kent@mysql.com +79 -0
Many files:
Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
Adjusted year(s) in copyright header
Added GPL copyright text