1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-01 17:39:21 +03:00
Commit Graph

1328 Commits

Author SHA1 Message Date
unknown
12443de1b2 WL#3259 (RBR with more columns on slave than on master):
Extended replication to allow extra columns added last on slave
as compared with table on master.


mysql-test/extra/rpl_tests/rpl_row_tabledefs.test:
  Testing that replication can handle extra extra columns on slave.
mysql-test/r/rpl_row_tabledefs.result:
  Result file change
sql/Makefile.am:
  Adding new files.
sql/field.cc:
  Implementing missing Field_bit::set_default()
sql/field.h:
  Implementing missing Field_bit::set_default()
sql/log_event.cc:
  Extending unpack_row() and replace_record() to handle the case when there are more columns
  on the slave than on the master. Especially handle BIT columns correctly.
  Using newly introduced table_def class to perform comparison.
sql/log_event.h:
  Adding field to table_map_log_event. Changing prototype for do_prepare_row().
sql/mysql_priv.h:
  Adding include guards
mysql-test/t/rpl_row_tabledefs.test:
  New BitKeeper file ``mysql-test/t/rpl_row_tabledefs.test''
sql/rpl_utility.cc:
  New BitKeeper file ``sql/rpl_utility.cc''
sql/rpl_utility.h:
  New BitKeeper file ``sql/rpl_utility.h''
2006-05-03 15:00:38 +02:00
mats@mysql.com
77c4a2ca60 WL#3259 (RBR with more columns on slave than on master):
Extended replication to allow extra columns added last on slave
as compared with table on master.
2006-05-03 15:00:38 +02:00
unknown
050100dfca Merge mysql.com:/home/jimw/my/mysql-5.0-clean
into  mysql.com:/home/jimw/my/mysql-5.1-clean


mysql-test/r/type_bit.result:
  Auto merged
mysql-test/r/type_bit_innodb.result:
  Auto merged
sql/field.h:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/key.cc:
  Auto merged
sql/field.cc:
  Resolve merge conflict
2006-04-10 20:18:12 -07:00
jimw@mysql.com
4ab9c02971 Merge mysql.com:/home/jimw/my/mysql-5.0-clean
into  mysql.com:/home/jimw/my/mysql-5.1-clean
2006-04-10 20:18:12 -07:00
unknown
15bec6c5e5 Merge bk-internal:/home/bk/mysql-5.0
into  mysql.com:/home/jimw/my/mysql-5.0-clean


sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
2006-04-10 14:30:00 -07:00
jimw@mysql.com
a159a55c2c Merge bk-internal:/home/bk/mysql-5.0
into  mysql.com:/home/jimw/my/mysql-5.0-clean
2006-04-10 14:30:00 -07:00
unknown
7042df6228 Manually merged 2006-04-05 20:12:26 +04:00
evgen@sunlight.local
368b92390c Manually merged 2006-04-05 20:12:26 +04:00
unknown
af5e4098a8 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into sunlight.local:/local_work/16281-bug-5.0-mysql


sql/field.h:
  Auto merged
2006-04-05 13:30:51 +04:00
evgen@sunlight.local
d07240599d Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into sunlight.local:/local_work/16281-bug-5.0-mysql
2006-04-05 13:30:51 +04:00
unknown
0f8c11758d Fixed bug #16281: Multi-table update broken in 5.0 on tables imported from 4.1
Mutli-table uses temporary table to store new values for fields. With the
new values the rowid of the record to be updated is stored in a Field_string
field. Table to be updated is set as source table of the rowid field.
But when the temporary table creates the tmp field for the rowid field it
converts it to a varstring field because the table to be updated was created by
the v4.1. Due to this the stored rowids were broken and no records for 
update were found.

The flag can_alter_field_type is added to Field_string class. When it is set to
0 the field won't be converted to varstring. The Field_string::type() function 
now always returns MYSQL_TYPE_STRING if can_alter_field_type is set to 0.
The multi_update::initialize_tables() function now sets can_alter_field_type
flag to 0 for the rowid fields denying conversion of the field to a varstring
field.



sql/field.h:
  Fixed bug #16281: Multi-table update broken in 5.0 on tables imported from 4.1
  The flag can_alter_field_type is added to Field_string class. When it is set to
  0 the field won't be converted to varstring.
  The Field_string::type() function now always returns MYSQL_TYPE_STRING if 
  can_alter_field_type is set to 0.
sql/sql_update.cc:
  Fixed bug #16281: Multi-table update broken in 5.0 on tables imported from 4.1
  The multi_update::initialize_tables() function now sets can_alter_field_type
  flag to 0 for the rowid fields denying conversion of the field to a varstring
  field.
2006-04-05 13:29:04 +04:00
evgen@sunlight.local
b9949ed9c7 Fixed bug #16281: Multi-table update broken in 5.0 on tables imported from 4.1
Mutli-table uses temporary table to store new values for fields. With the
new values the rowid of the record to be updated is stored in a Field_string
field. Table to be updated is set as source table of the rowid field.
But when the temporary table creates the tmp field for the rowid field it
converts it to a varstring field because the table to be updated was created by
the v4.1. Due to this the stored rowids were broken and no records for 
update were found.

The flag can_alter_field_type is added to Field_string class. When it is set to
0 the field won't be converted to varstring. The Field_string::type() function 
now always returns MYSQL_TYPE_STRING if can_alter_field_type is set to 0.
The multi_update::initialize_tables() function now sets can_alter_field_type
flag to 0 for the rowid fields denying conversion of the field to a varstring
field.
2006-04-05 13:29:04 +04:00
unknown
b3b626c31c Bug #13601: Wrong int type for bit
The wrong value was being reported as the field_length for BIT
  fields, resulting in confusion for at least Connector/J. The
  field_length is now always the number of bits in the field, as
  it should be.


mysql-test/r/type_bit.result:
  Add new results
mysql-test/r/type_bit_innodb.result:
  Add new results
mysql-test/t/type_bit.test:
  Add new regression test
mysql-test/t/type_bit_innodb.test:
  Add new regression test
sql/field.cc:
  Fix Field_bit->field_length to actually report the display width, and
  store the bytes stored in the rec in the new bytes_in_rec member.
sql/field.h:
  Fix Field_bit::field_length to store the correct value, adding
  Field_bit::bytes_in_rec to remember the number of bytes used for
  storing the value. Remove Field_bit_as_char::create_length, as it
  is now redundant.
sql/ha_ndbcluster.cc:
  Handle field_length of Field_bit actually being the display width (# of bits).
sql/key.cc:
  Fix inappropriate use of field->field_length for BIT field.
2006-04-04 17:54:58 -07:00
jimw@mysql.com
1a59580dcd Bug #13601: Wrong int type for bit
The wrong value was being reported as the field_length for BIT
  fields, resulting in confusion for at least Connector/J. The
  field_length is now always the number of bits in the field, as
  it should be.
2006-04-04 17:54:58 -07:00
unknown
fb5677b8a0 Merge mysql.com:/opt/local/work/tmp_merge2
into  mysql.com:/opt/local/work/mysql-5.1-merge


mysql-test/r/ps.result:
  Auto merged
mysql-test/r/sp-error.result:
  Auto merged
mysql-test/r/sp-prelocking.result:
  Auto merged
mysql-test/r/sp.result:
  Auto merged
mysql-test/r/trigger.result:
  Auto merged
mysql-test/t/ps.test:
  Auto merged
mysql-test/t/sp-error.test:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
sql/field.h:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
mysql-test/t/sp-prelocking.test:
  Manual merge.
2006-03-30 19:12:10 +04:00
konstantin@mysql.com
08eff11273 Merge mysql.com:/opt/local/work/tmp_merge2
into  mysql.com:/opt/local/work/mysql-5.1-merge
2006-03-30 19:12:10 +04:00
unknown
d9f5fac9ed Fix an -ansi -pedantic compilation failure 2006-03-30 00:20:14 +04:00
konstantin@mysql.com
d360687dc0 Fix an -ansi -pedantic compilation failure 2006-03-30 00:20:14 +04:00
unknown
442383892e Merge mysql.com:/extern/mysql/bk/mysql-5.0-runtime
into  mysql.com:/extern/mysql/5.0/bug17015/mysql-5.0-runtime


mysql-test/r/sp-error.result:
  Auto merged
mysql-test/t/sp-error.test:
  Auto merged
sql/field.h:
  Auto merged
sql/sp.cc:
  Auto merged
2006-03-28 15:08:17 +02:00
pem@mysql.com
e0a2455f19 Merge mysql.com:/extern/mysql/bk/mysql-5.0-runtime
into  mysql.com:/extern/mysql/5.0/bug17015/mysql-5.0-runtime
2006-03-28 15:08:17 +02:00
unknown
e550d6e7e3 Review fix for BUG#17015: Routine name truncation not an error
sql/field.h:
  Added new method to Field class: char_length()
sql/sp.cc:
  Use Field::char_length() to check number of characters in the name field.
2006-03-28 15:06:06 +02:00
pem@mysql.com
e51adff01c Review fix for BUG#17015: Routine name truncation not an error 2006-03-28 15:06:06 +02:00
unknown
3addd306a6 Merge
configure.in:
  Auto merged
client/mysqlimport.c:
  Auto merged
include/config-win.h:
  Auto merged
mysql-test/r/create.result:
  Auto merged
mysql-test/t/create.test:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
scripts/mysql_fix_privilege_tables.sql:
  Auto merged
sql/field.h:
  Auto merged
sql/log_event.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_partition.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
mysql-test/t/mysqldump.test:
  SCCS merged
2006-02-28 23:29:58 +01:00
kent@mysql.com
5d722a8491 Merge 2006-02-28 23:29:58 +01:00
unknown
fedf61311b Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0
into  mysql.com:/users/lthalmann/bk/mysql-5.0-bug13418


sql/field.h:
  Auto merged
2006-02-27 19:26:31 +01:00
lars@mysql.com
05d1921181 Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0
into  mysql.com:/users/lthalmann/bk/mysql-5.0-bug13418
2006-02-27 19:26:31 +01:00
unknown
f9804136bd BUG#13418: Virtualized some functions so that Bit_field class will use correct cmp functions
sql/field.h:
  Virtualized some functions so that Bit_field class will use correct cmp functions
2006-02-27 18:34:04 +01:00
lars@mysql.com
2ebe57777f BUG#13418: Virtualized some functions so that Bit_field class will use correct cmp functions 2006-02-27 18:34:04 +01:00
unknown
e54ecf09be Merge mysql.com:/home/dlenev/src/mysql-5.0-bg13525
into  mysql.com:/home/dlenev/src/mysql-5.1-merges2


client/mysqltest.c:
  Auto merged
include/my_global.h:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
mysql-test/r/heap.result:
  Auto merged
mysql-test/r/merge.result:
  Auto merged
mysql-test/r/ps.result:
  Auto merged
mysql-test/r/trigger.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/ps.test:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
mysql-test/t/view.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/ha_myisammrg.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.h:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
storage/myisammrg/myrg_queue.c:
  Auto merged
sql/sql_rename.cc:
  Manual merge.
sql/sql_trigger.cc:
  Manual merge.
sql/sql_yacc.yy:
  Manual merge.
2006-02-27 20:00:07 +03:00
dlenev@mysql.com
8dbdf5237e Merge mysql.com:/home/dlenev/src/mysql-5.0-bg13525
into  mysql.com:/home/dlenev/src/mysql-5.1-merges2
2006-02-27 20:00:07 +03:00
unknown
dededdec0a BUG#13418 (V2): Bit columns should replicate correctly when using RBR
mysql-test/r/rpl_bit_npk.result:
  Updated results
mysql-test/t/disabled.def:
  rpl_bit_npk now works
sql/field.h:
  Field_bit::cmp_binary_offset wrongly used base class method that does not work for Field_bit
  This was discussed with Monty and should be pushed into 5.0 too
sql/log_event.cc:
  Added checks for null bits
  Swapped use of m_after_image (was m_search_record) and table->record[1] to use record[i] 
  in the same way as other MySQL code (i.e. use record[1] for scan data).
  Removed use of cmp_binary in record_compare (it is currently wrong to use that 
  without copying the null bits to the compare data record)
sql/log_event.h:
  Name change to indicate new semantics
2006-02-24 15:38:20 +01:00
lars@mysql.com
32a8a469a7 BUG#13418 (V2): Bit columns should replicate correctly when using RBR 2006-02-24 15:38:20 +01:00
unknown
9519987cf0 Merge mysql.com:/opt/local/work/mysql-4.1-13134
into  mysql.com:/opt/local/work/mysql-5.0-runtime


mysql-test/t/heap.test:
  Auto merged
mysql-test/r/heap.result:
  Manual merge (use local)
mysql-test/r/ps.result:
  Manual merge (use local)
mysql-test/t/ps.test:
  Manual merge.
sql/field.cc:
  Manual merge.
sql/field.h:
  Manual merge.
sql/sql_parse.cc:
  Manual merge.
sql/sql_table.cc:
  Manual merge.
2006-02-24 00:00:15 +03:00
konstantin@mysql.com
af62c4a959 Merge mysql.com:/opt/local/work/mysql-4.1-13134
into  mysql.com:/opt/local/work/mysql-5.0-runtime
2006-02-24 00:00:15 +03:00
unknown
9cf3f255bd A fix and a test case for Bug#13134 "Length of VARCHAR() utf8
column is increasing when table is recreated with PS/SP":
make use of create_field::char_length more consistent in the code.
Reinit create_field::length from create_field::char_length
for every execution of a prepared statement (actually fixes the 
bug).


mysql-test/r/ps.result:
  Test results fixed (Bug#13134)
mysql-test/t/ps.test:
  A test case for Bug#13134 "Length of VARCHAR() utf8 column is 
  increasing when table is recreated with PS/SP"
sql/field.cc:
  Move initialization of create_field::char_length to the constructor
  of create_field.
sql/field.h:
  Rename chars_length to char_length (to be consistent with
  how this term is used throughout the rest of the code).
sql/sql_parse.cc:
  Initialize char_length in add_field_to_list. This function
  effectively works as another create_field constructor.
sql/sql_table.cc:
  Reinit length from char_length for every field in 
  mysql_prepare_table. This is not needed if we're executing
  a statement for the first time, however, at subsequent executions
  length contains the number of bytes, not characters (as it's expected 
  to).
2006-02-21 19:52:20 +03:00
konstantin@mysql.com
442c2ba8af A fix and a test case for Bug#13134 "Length of VARCHAR() utf8
column is increasing when table is recreated with PS/SP":
make use of create_field::char_length more consistent in the code.
Reinit create_field::length from create_field::char_length
for every execution of a prepared statement (actually fixes the 
bug).
2006-02-21 19:52:20 +03:00
unknown
97dae00306 Merge mysql.com:/home/kostja/mysql/tmp_merge
into  mysql.com:/home/kostja/mysql/mysql-5.1-merge


client/mysqlbinlog.cc:
  Auto merged
client/mysqldump.c:
  Auto merged
include/my_base.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
sql/field.h:
  Auto merged
sql/ha_myisam.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/opt_range.h:
  Auto merged
sql/repl_failsafe.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/slave.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/sql_handler.cc:
  Auto merged
sql/sql_help.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_test.cc:
  Auto merged
sql-common/client.c:
  Auto merged
sql/table.cc:
  Auto merged
storage/myisam/mi_delete.c:
  Auto merged
storage/myisam/myisampack.c:
  Auto merged
storage/myisam/sort.c:
  Auto merged
mysys/my_bitmap.c:
  Manual merge
sql/field.cc:
  e
  Manual merge
sql/item.cc:
  Manual merge (new Field_bit_as_char constructor signature)
sql/item_func.cc:
  Manual merge: use local
sql/sql_insert.cc:
  Manual merge: add VOID() around bitmap_init
2006-02-02 16:57:34 +03:00
konstantin@mysql.com
92b41ba92a Merge mysql.com:/home/kostja/mysql/tmp_merge
into  mysql.com:/home/kostja/mysql/mysql-5.1-merge
2006-02-02 16:57:34 +03:00
unknown
5c167a746b Added possibillity to check what fields will get added indexes (ndb does currently not support indexes on disk stored fields), WL#1892 2006-01-27 17:23:14 +01:00
marty@linux.site
3f78e8b8aa Added possibillity to check what fields will get added indexes (ndb does currently not support indexes on disk stored fields), WL#1892 2006-01-27 17:23:14 +01:00
unknown
6d8f89b8c2 This changeset adds support for autoincrements to archive. It allows it to have them with both unique and non-unique indexes.
Test cases will come in the next push (just doing this one so I can get a couple of reviews in). This is not the final patch. 


sql/field.h:
  Added val_int() method similar to the one like val_str() that will allow you to pop in another pointer and do a test.
sql/ha_archive.cc:
  Adds auto_increment support to archive. Cleans up a number of other small items.
sql/ha_archive.h:
  More additions for support of autoincrements
2006-01-09 02:35:40 -08:00
brian@zim.(none)
9e22159558 This changeset adds support for autoincrements to archive. It allows it to have them with both unique and non-unique indexes.
Test cases will come in the next push (just doing this one so I can get a couple of reviews in). This is not the final patch.
2006-01-09 02:35:40 -08:00
unknown
c489cdebea merged
myisam/mi_delete.c:
  Auto merged
sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
2006-01-03 18:12:03 +01:00
serg@serg.mylan
30c09d6dc0 merged 2006-01-03 18:12:03 +01:00
unknown
307c0b77a1 many warnings (practically safe but annoying) corrected
client/mysqladmin.cc:
  don't use the handler after it's closed
client/mysqlbinlog.cc:
  memory leak
client/mysqldump.c:
  many "ignore return value" warnings, one "NULL dereference"
cmd-line-utils/libedit/history.c:
  memory leak
include/my_base.h:
  cleanup
libmysql/libmysql.c:
  "return value ignored" warning
myisam/mi_delete.c:
  "return value ignored" warning
myisam/myisampack.c:
  "out-of-bound access" warning
myisam/sort.c:
  "double free" warning
mysys/default_modify.c:
  "double free" warning
mysys/mf_iocache2.c:
  "return value ignored" warnings
mysys/my_bitmap.c:
  s/return/DBUG_RETURN/
mysys/my_error.c:
  memory leak
server-tools/instance-manager/parse.cc:
  "NULL dereference" warning
sql-common/client.c:
  "NULL dereference" warning
sql/field.cc:
  deadcode, "NULL dereference", "uninitialized" warnings
sql/field.h:
  unused parameters removed from constructor
sql/ha_myisam.cc:
  "return value ignored" warnings
sql/item.cc:
  "return value ignored" warnings
  changed constructor
sql/item_func.cc:
  "return value ignored" warnings
sql/log_event.cc:
  uninitialized warning
sql/opt_range.cc:
  "double free" and uninitialized warnings
sql/opt_range.h:
  "return value ignored" warning
sql/repl_failsafe.cc:
  "return value ignored" warning
sql/set_var.cc:
  "return value ignored" warning
sql/slave.cc:
  "return value ignored" warnings
sql/slave.h:
  new prototype
sql/sql_acl.cc:
  deadcode and "NULL dereference" warnings
sql/sql_db.cc:
  "return value ignored" warning
sql/sql_handler.cc:
  "NULL dereference" warning
sql/sql_help.cc:
  "NULL dereference" warning
sql/sql_insert.cc:
  "return value ignored" warning
sql/sql_parse.cc:
  "return value ignored" warning
  one more DBUG_ASSERT
sql/sql_repl.cc:
  "return value ignored" and memory leak warnings
sql/sql_show.cc:
  "return value ignored" and "NULL dereference"  warnings
sql/sql_test.cc:
  "return value ignored" warning
sql/table.cc:
  memory leak
sql/uniques.cc:
  "return value ignored" warning
  endspaces deleted
2006-01-03 17:54:54 +01:00
serg@serg.mylan
14f94dc0ca many warnings (practically safe but annoying) corrected 2006-01-03 17:54:54 +01:00
unknown
16bca98267 Merge mysql.com:/home/alik/MySQL/devel/5.0-wl2984
into  mysql.com:/home/alik/MySQL/devel/5.1-wl2984-merge


mysql-test/r/show_check.result:
  Auto merged
mysql-test/r/sp.result:
  Auto merged
BitKeeper/deleted/.del-type_newdecimal-big.result:
  Auto merged
BitKeeper/deleted/.del-type_newdecimal-big.test:
  Auto merged
mysql-test/t/show_check.test:
  Auto merged
sql/field.h:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.h:
  Auto merged
sql/sql_trigger.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/field.cc:
  Merge.
sql/sp_head.cc:
  Merge.
sql/sql_select.cc:
  Merge.
2005-12-09 15:14:19 +03:00
anozdrin@mysql.com
5d105fb7e7 Merge mysql.com:/home/alik/MySQL/devel/5.0-wl2984
into  mysql.com:/home/alik/MySQL/devel/5.1-wl2984-merge
2005-12-09 15:14:19 +03:00
unknown
6b2f13098a Patch for WL#2894: Make stored routine variables work
according to the standard.

The idea is to use Field-classes to implement stored routines
variables. Also, we should provide facade to Item-hierarchy
by Item_field class (it is necessary, since SRVs take part
in expressions).

The patch fixes the following bugs:
  - BUG#8702: Stored Procedures: No Error/Warning shown for inappropriate data 
    type matching; 
 
  - BUG#8768: Functions: For any unsigned data type, -ve values can be passed 
    and returned; 
 
  - BUG#8769: Functions: For Int datatypes, out of range values can be passed 
    and returned; 
 
  - BUG#9078: STORED PROCDURE: Decimal digits are not displayed when we use 
    DECIMAL datatype; 
 
  - BUG#9572: Stored procedures: variable type declarations ignored; 
 
  - BUG#12903: upper function does not work inside a function; 
 
  - BUG#13705: parameters to stored procedures are not verified; 
 
  - BUG#13808: ENUM type stored procedure parameter accepts non-enumerated
    data; 
 
  - BUG#13909: Varchar Stored Procedure Parameter always BINARY string (ignores 
    CHARACTER SET); 
 
  - BUG#14161: Stored procedure cannot retrieve bigint unsigned;

  - BUG#14188: BINARY variables have no 0x00 padding;

  - BUG#15148: Stored procedure variables accept non-scalar values;


mysql-test/r/ctype_ujis.result:
  Explicitly specify correct charset.
mysql-test/r/schema.result:
  Drop our test database to not affect this test if some test
  left it cause of failure.
mysql-test/r/show_check.result:
  Drop our test database to not affect this test if some test
  left it cause of failure.
mysql-test/r/skip_name_resolve.result:
  Ignore columns with unpredictable values.
mysql-test/r/sp-big.result:
  Add cleanup statement.
mysql-test/r/sp-dynamic.result:
  Add cleanup statements.
mysql-test/r/sp.result:
  Update result file.
mysql-test/r/sum_distinct-big.result:
  Update result file.
mysql-test/r/type_newdecimal-big.result:
  Update result file.
mysql-test/t/ctype_ujis.test:
  Explicitly specify correct charset.
mysql-test/t/schema.test:
  Drop our test database to not affect this test if some test
  left it cause of failure.
mysql-test/t/show_check.test:
  Drop our test database to not affect this test if some test
  left it cause of failure.
mysql-test/t/skip_name_resolve.test:
  Ignore columns with unpredictable values.
mysql-test/t/sp-big.test:
  Add cleanup statement.
mysql-test/t/sp-dynamic.test:
  Add cleanup statements.
mysql-test/t/sp.test:
  Non-scalar values prohibited for assignment to SP-vars;
  polishing.
mysql-test/t/type_newdecimal-big.test:
  Update type specification so that the variables
  can contain the large values used in the test.
sql/field.cc:
  Extract create_field::init() to initialize an existing
  instance of create_field from new_create_field().
sql/field.h:
  Extract create_field::init() to initialize an existing
  instance of create_field from new_create_field().
sql/item.cc:
  - Introduce a new class: Item_sp_variable -- a base class
    of stored-routine-variables classes;
  - Introduce Item_case_expr -- an Item, which is used to access
    to the expression of CASE statement;
sql/item.h:
  - Introduce a new class: Item_sp_variable -- a base class
    of stored-routine-variables classes;
  - Introduce Item_case_expr -- an Item, which is used to access
    to the expression of CASE statement;
sql/item_func.cc:
  Pass the Field (instead of Item) for the return value of
  a function to the function execution routine.
sql/item_func.h:
  Pass the Field (instead of Item) for the return value of
  a function to the function execution routine.
sql/mysql_priv.h:
  Move create_virtual_tmp_table() out of sql_select.h.
sql/sp.cc:
  Use create_result_field() instead of make_field().
sql/sp_head.cc:
  - Add a function to map enum_field_types to Item::Type;
  - Add sp_instr_push_case_expr instruction -- an instruction
    to push CASE expression into the active running context;
  - Add sp_instr_pop_case_expr instruction -- an instruction
    to pop CASE expression from the active running context;
  - Adapt the SP-execution code to using Fields instead of Items
    for SP-vars;
  - Use create_field structure for field description instead of
    a set of members.
sql/sp_head.h:
  - Add a function to map enum_field_types to Item::Type;
  - Add sp_instr_push_case_expr instruction -- an instruction
    to push CASE expression into the active running context;
  - Add sp_instr_pop_case_expr instruction -- an instruction
    to pop CASE expression from the active running context;
  - Adapt the SP-execution code to using Fields instead of Items
    for SP-vars;
  - Use create_field structure for field description instead of
    a set of members.
sql/sp_pcontext.cc:
  - Change rules to assign an index of SP-variable: use
    transparent index;
  - Add an operation to retrieve a list of defined SP-vars
    from the processing context recursively.
sql/sp_pcontext.h:
  - Change rules to assign an index of SP-variable: use
    transparent index;
  - Add an operation to retrieve a list of defined SP-vars
    from the processing context recursively.
sql/sp_rcontext.cc:
  - Change rules to assign an index of SP-variable: use
    transparent index;
  - Use a tmp virtual table to store SP-vars instead of Items;
  - Provide operations to work with CASE expresion.
sql/sp_rcontext.h:
  - Change rules to assign an index of SP-variable: use
    transparent index;
  - Use a tmp virtual table to store SP-vars instead of Items;
  - Provide operations to work with CASE expresion.
sql/sql_class.cc:
  - Reflect Item_splocal ctor changes;
  - Item_splocal::get_offset() has been renamed to get_var_idx().
sql/sql_class.h:
  Polishing.
sql/sql_parse.cc:
  Extract create_field::init() to initialize an existing
  instance of create_field from new_create_field().
sql/sql_select.cc:
  Take care of BLOB columns in create_virtual_tmp_table().
sql/sql_select.h:
  Move create_virtual_tmp_table() out of sql_select.h.
sql/sql_trigger.cc:
  Use boolean constants for boolean type instead of numerical ones.
sql/sql_yacc.yy:
  Provide an instance of create_field for each SP-var.
mysql-test/include/sp-vars.inc:
  The definitions of common-procedures, which are created
  under different circumstances.
mysql-test/r/sp-vars.result:
  Result file for the SP-vars test.
mysql-test/sp-vars.test:
  A new test for checking SP-vars functionality.
2005-12-07 17:01:17 +03:00
anozdrin@mysql.com
0ff8f60b45 Patch for WL#2894: Make stored routine variables work
according to the standard.

The idea is to use Field-classes to implement stored routines
variables. Also, we should provide facade to Item-hierarchy
by Item_field class (it is necessary, since SRVs take part
in expressions).

The patch fixes the following bugs:
  - BUG#8702: Stored Procedures: No Error/Warning shown for inappropriate data 
    type matching; 
 
  - BUG#8768: Functions: For any unsigned data type, -ve values can be passed 
    and returned; 
 
  - BUG#8769: Functions: For Int datatypes, out of range values can be passed 
    and returned; 
 
  - BUG#9078: STORED PROCDURE: Decimal digits are not displayed when we use 
    DECIMAL datatype; 
 
  - BUG#9572: Stored procedures: variable type declarations ignored; 
 
  - BUG#12903: upper function does not work inside a function; 
 
  - BUG#13705: parameters to stored procedures are not verified; 
 
  - BUG#13808: ENUM type stored procedure parameter accepts non-enumerated
    data; 
 
  - BUG#13909: Varchar Stored Procedure Parameter always BINARY string (ignores 
    CHARACTER SET); 
 
  - BUG#14161: Stored procedure cannot retrieve bigint unsigned;

  - BUG#14188: BINARY variables have no 0x00 padding;

  - BUG#15148: Stored procedure variables accept non-scalar values;
2005-12-07 17:01:17 +03:00