Commit graph

20 commits

Author SHA1 Message Date
Vladislav Vaintroub
6c279ad6a7 MDEV-15091 : Windows, 64bit: reenable and fix warning C4267 (conversion from 'size_t' to 'type', possible loss of data)
Handle string length as size_t, consistently (almost always:))
Change function prototypes to accept size_t, where in the past
ulong or uint were used. change local/member variables to size_t
when appropriate.

This fix excludes rocksdb, spider,spider, sphinx and connect for now.
2018-02-06 12:55:58 +00:00
Monty
5a759d31f7 Changing field::field_name and Item::name to LEX_CSTRING
Benefits of this patch:
- Removed a lot of calls to strlen(), especially for field_string
- Strings generated by parser are now const strings, less chance of
  accidently changing a string
- Removed a lot of calls with LEX_STRING as parameter (changed to pointer)
- More uniform code
- Item::name_length was not kept up to date. Now fixed
- Several bugs found and fixed (Access to null pointers,
  access of freed memory, wrong arguments to printf like functions)
- Removed a lot of casts from (const char*) to (char*)

Changes:
- This caused some ABI changes
  - lex_string_set now uses LEX_CSTRING
  - Some fucntions are now taking const char* instead of char*
- Create_field::change and after changed to LEX_CSTRING
- handler::connect_string, comment and engine_name() changed to LEX_CSTRING
- Checked printf() related calls to find bugs. Found and fixed several
  errors in old code.
- A lot of changes from LEX_STRING to LEX_CSTRING, especially related to
  parsing and events.
- Some changes from LEX_STRING and LEX_STRING & to LEX_CSTRING*
- Some changes for char* to const char*
- Added printf argument checking for my_snprintf()
- Introduced null_clex_str, star_clex_string, temp_lex_str to simplify
  code
- Added item_empty_name and item_used_name to be able to distingush between
  items that was given an empty name and items that was not given a name
  This is used in sql_yacc.yy to know when to give an item a name.
- select table_name."*' is not anymore same as table_name.*
- removed not used function Item::rename()
- Added comparision of item->name_length before some calls to
  my_strcasecmp() to speed up comparison
- Moved Item_sp_variable::make_field() from item.h to item.cc
- Some minimal code changes to avoid copying to const char *
- Fixed wrong error message in wsrep_mysql_parse()
- Fixed wrong code in find_field_in_natural_join() where real_item() was
  set when it shouldn't
- ER_ERROR_ON_RENAME was used with extra arguments.
- Removed some (wrong) ER_OUTOFMEMORY, as alloc_root will already
  give the error.

TODO:
- Check possible unsafe casts in plugin/auth_examples/qa_auth_interface.c
- Change code to not modify LEX_CSTRING for database name
  (as part of lower_case_table_names)
2017-04-23 22:35:46 +03:00
Sergei Golubchik
02c712aa54 * frm extra2 segment.
* persistent table versions in the extra2
* ha_archive::frm_compare using TABLE_SHARE::tabledef_version
* distinguish between "important" and "optional" extra2 frm values
* write engine-defined attributes (aka "table options") to extra2, not to extra,
  but still read from the old location, if they're found there.
2013-04-09 16:18:33 +02:00
Sergei Golubchik
e06cb31719 CREATE TABLE and frm-less discovering engines.
Now CREATE TABLE does not write the frm file on disk,
if the engine can discover it
2013-04-09 15:57:09 +02:00
Sergei Golubchik
e5a323e107 single table discovery: handlerton::discover_table() method.
fixes for need_full_discover_for_existence mode
2013-04-09 15:45:31 +02:00
Sergey Vojtovich
535093e4db BUG#46587 - archive storage engine headers don't include
my_global.h first

We may end up with a compilation failure on certain platforms
because zlib.h is included before my_global.h.

Fixed by moving zlib.h inclusion down after my_global.h.

storage/archive/azlib.h:
  zlib.h must be included after my_global.h.
2010-04-15 13:33:33 +04:00
Ignacio Galarza
5b7347bda3 Bug#29125 Windows Server X64: so many compiler warnings
- Remove bothersome warning messages.  This change focuses on the warnings 
that are covered by the ignore file: support-files/compiler_warnings.supp.
- Strings are guaranteed to be max uint in length
2009-02-13 11:41:47 -05:00
unknown
f571ae9bf2 azio.c, azlib.h:
Don't use typedef 'voidpc' as later addition and not needed


storage/archive/azlib.h:
  Don't use typedef 'voidpc' as later addition and not needed
storage/archive/azio.c:
  Don't use typedef 'voidpc' as later addition and not needed
2007-09-07 13:27:52 +02:00
unknown
89f5507389 Added delayed open of file descriptors to cut down on issues surrounding large collections of partitions being open by many threads.
storage/archive/azlib.h:
  Adjusted the buffer down to something reasonable :)
storage/archive/ha_archive.cc:
  Upgraded file descriptors to not be opened until needed.
storage/archive/ha_archive.h:
  New methods for delayed open
2007-03-23 18:51:56 -07:00
unknown
1dde952e76 Modified read buffer to see if performance difference existed.
Re-enabled 8gig unit test. 


storage/archive/archive_test.c:
  Re-enabled longer test.
storage/archive/azio.c:
  Adjusted variable read and write.
storage/archive/azlib.h:
  Adjusted variable read and write
2007-03-20 22:13:55 -07:00
unknown
9fd4312536 This patch passes comment to be embedded in ARZ.
Fixes autodiscovery of tables. 
Allows the FRM to be extracted from the ARZ file via archive_reader. 


storage/archive/archive_reader.c:
  Extract FRM command added.
  We now print the embedded comment
storage/archive/archive_test.c:
  Additional tests for FRM annd comment
storage/archive/azio.c:
  Filled in functionality for comment and frm.
storage/archive/azlib.h:
  Refactored position.
storage/archive/ha_archive.cc:
  Discovery mechanism filled in.
2007-01-24 10:30:06 -08:00
unknown
d1fb6340e5 Just adding support for a "minor" version number.
storage/archive/archive_reader.c:
  Print minor information version.
storage/archive/archive_test.c:
  Fixed test
storage/archive/azio.c:
  Added support for "minor" version.
storage/archive/azlib.h:
  Added information for minor information.
2007-01-21 11:41:00 -08:00
unknown
e633d9bab6 1) New dirty state for files (need this for longterm fast recovery)
2) We now store shortest and longest row information.
3) archive_reader can now check and backup files (even if they are hot)
4) We now record longest and shortest row information for stats. 


storage/archive/archive_reader.c:
  Added options for:
  1) Online backup for tables
  2) Check table option.
storage/archive/archive_test.c:
  Additional test, format is now the same as an actual table.
storage/archive/azio.c:
  Fixed issue closing files multiple times.
  Added option for recording longest and shortest rows. 
  Additional "dirty" state added.
storage/archive/azlib.h:
  Added additional space for longest and shortest row information.
storage/archive/ha_archive.cc:
  Cleaned up warming and removed unneeded close.
2007-01-20 17:19:54 -08:00
unknown
2b3f508556 New azio which keeps meta data in its own header.
storage/archive/Makefile.am:
  Added archive reader
storage/archive/archive_test.c:
  Extended archive test
storage/archive/azio.c:
  Rewrite of azio to include support for more meta data in header
storage/archive/azlib.h:
  Extended information.
storage/archive/ha_archive.cc:
  Rewrite to handle new azio
storage/archive/ha_archive.h:
  Rewrite to handle new azio.
storage/archive/archive_reader.c:
  New BitKeeper file ``storage/archive/archive_reader.c''
2007-01-10 23:53:08 -08:00
unknown
f8d93bb390 This updates archive to use new header information in az files and makes way for combining the meta data file with the AZ file.
storage/archive/azio.c:
  This removes the default gzip information and now uses a custom header.
storage/archive/azlib.h:
  Additions for custom header and future meta data.
storage/archive/ha_archive.cc:
  Removed data header in favor of new header system.
storage/archive/ha_archive.h:
  Removes data_version
2006-12-04 22:01:48 -08:00
unknown
2a336e56e9 Fixed problems with original gzio() functions not being able to correctly return lengths of long rows.
storage/archive/archive_test.c:
  Updated the test for 2gig and 4gig tests.
storage/archive/azio.c:
  Fixed return type bug that was inherited in original library.
storage/archive/azlib.h:
  Fixes for original library
storage/archive/ha_archive.cc:
  Far more error testing!
storage/archive/ha_archive.h:
  Updated returnn type for pack_row()
2006-12-03 22:09:32 -08:00
unknown
5bfbfb24e5 build fixes for azio on systems without zutil.h
storage/archive/azio.c:
  Build fixes for not having zutil.h
  
  use memset instead of zmemzero.
  
  use 8 as memory usage level (the default, which we were using anyway)
  
  in the .gz header, just say we're UNIX.
  
  use memcpy instead of zmemcpy.
storage/archive/azlib.h:
  don't use zutil.h, it's private to zlib
2005-12-28 15:33:48 +11:00
unknown
81ca15813b Just a few cleanup points in azio. Should solve Ubuntu compile problem.
storage/archive/azio.c:
  Cleanup.
storage/archive/azlib.h:
  Moved include lines about.
2005-12-23 17:51:14 -08:00
unknown
8ff680920a Fix for Antony's push. I've also changed from using the zlib off_t pointer type to my_off_t to fix issues around buggy zlib versions and to make sure file sizes are consistent through out mysql.
mysql-test/r/information_schema.result:
  Fix for Antony adding plugins to information schema.
sql/ha_archive.cc:
  Fix for now using my_off_t, no need to worry about buggy zlib's anymore.
sql/ha_archive.h:
  Update to fix issues with buggy zlib.
storage/archive/azio.c:
  Moved to using my_off_t (which should fix problems with most fille system size issues).
storage/archive/azlib.h:
  Change to using my_off_t
2005-12-23 12:22:31 -08:00
unknown
93b3d4efc6 Update to add in support for AZIO.
AZIO differs in that it uses mysys methods and removes all of the malloc calls. 


configure.in:
  Update for new archive directory
libmysqld/Makefile.am:
  Adding archive storage directory.
sql/Makefile.am:
  Adding archive library.
sql/ha_archive.cc:
  Update for ha_archive to use azio.
sql/ha_archive.h:
  Updates to support azio.
storage/Makefile.am:
  Added archive directory.
storage/archive/Makefile.am:
  New BitKeeper file ``storage/archive/Makefile.am''
storage/archive/archive_test.c:
  New BitKeeper file ``storage/archive/archive_test.c''
storage/archive/azio.c:
  New BitKeeper file ``storage/archive/azio.c''
storage/archive/azlib.h:
  New BitKeeper file ``storage/archive/azlib.h''
2005-12-22 19:50:10 -08:00