Commit graph

383 commits

Author SHA1 Message Date
anozdrin/alik@alik.
df28e14b3a Fix for BUG#16899: Possible buffer overflow in handling of DEFINER-clause
User name (host name) has limit on length. The server code relies on these
limits when storing the names. The problem was that sometimes these limits
were not checked properly, so that could lead to buffer overflow.
  
The fix is to check length of user/host name in parser and if string is too
long, throw an error.
2006-08-24 16:29:24 +04:00
evgen@sunlight.local
1e9b5cead2 view.result, view.test:
Corrected test case for the bug#21261
sql_parse.cc:
  Corrected fix for bug#21261
2006-08-24 03:05:13 +04:00
anozdrin/alik@alik.
9af756efd3 Fix for BUG#16899: Possible buffer overflow in handling of DEFINER-clause
User name (host name) has limit on length. The server code relies on these
limits when storing the names. The problem was that sometimes these limits
were not checked properly, so that could lead to buffer overflow.

The fix is to check length of user/host name in parser and if string is too
long, throw an error.
2006-08-23 21:31:00 +04:00
evgen@moonbone.local
270629a158 ndb_condition_pushdown.result:
Corrected test case result after fix for bug#18165
view.result, view.test:
  Corrected test case for bug#21261
2006-08-17 18:50:53 +04:00
evgen@sunlight.local
db17048cac Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  sunlight.local:/local_work/21261-bug-5.0-mysql
2006-08-16 18:17:58 +04:00
evgen@sunlight.local
dd9a07706b Fixed bug#21261: Wrong access rights was required for an insert into a view
SELECT right instead of INSERT right was required for an insert into to a view.
This wrong behaviour appeared after the fix for bug #20989. Its intention was
to ask only SELECT right for all tables except the very first for a complex
INSERT query. But that patch has done it in a wrong way and lead to asking 
a wrong access right for an insert into a view.

The setup_tables_and_check_access() function now accepts two want_access
parameters. One will be used for the first table and the second for other
tables.
2006-08-15 21:45:24 +04:00
evgen@moonbone.local
8364a646a9 Fixed bug#15950: NOW() optimized away in VIEWs
This bug is a side-effect of bug fix #16377. NOW() is optimized in
BETWEEN to integer constants to speed up query execution. When view is being
created it saves already modified query and thus becomes wrong.

The agg_cmp_type() function now substitutes constant result DATE/TIME functions 
for their results only if the current query isn't CREATE VIEW or SHOW CREATE
VIEW.
2006-08-15 21:02:55 +04:00
evgen@sunlight.local
d4f92cbb5c Merge sunlight.local:/local_work/tmp_merge-5.0-opt-mysql
into  sunlight.local:/local_work/tmp_merge-5.1-opt-mysql
2006-08-01 20:52:21 +04:00
gkodinov/kgeorge@rakia.(none)
a5e56e8942 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B11551-5.0-opt
2006-07-31 21:17:20 +03:00
gkodinov/kgeorge@macbook.gmz
8084a9e5fb Bug #11551: Asymmetric + undocumented behaviour of DROP VIEW and DROP TABLE
made DROP VIEW to continue on error and report an aggregated error 
 at its end. This makes it similar to DROP TABLE.
2006-07-31 20:56:06 +03:00
gkodinov/kgeorge@macbook.gmz
8d4684b6b4 Merge bk-internal:/home/bk/mysql-5.0-opt
into  macbook.gmz:/Users/kgeorge/mysql/work/B21080-5.0-opt
2006-07-31 17:40:09 +03:00
gkodinov/kgeorge@macbook.gmz
8944564fd8 Bug #21080: ALTER VIEW makes user restate SQL SECURITY mode, and ALGORITHM
When executing ALTER TABLE all the attributes of the view were overwritten.
  This is contrary to the user's expectations.
  So some of the view attributes are preserved now : namely security and 
  algorithm. This means that if they are not specified in ALTER VIEW
  their values are preserved from CREATE VIEW instead of being defaulted.
2006-07-31 17:33:37 +03:00
evgen@sunlight.local
ef4f149536 Merge sunlight.local:/local_work/tmp_merge-5.0-opt-mysql
into  sunlight.local:/local_work/tmp_merge-5.1-opt-mysql
2006-07-30 00:33:24 +04:00
gkodinov/kgeorge@macbook.gmz
f5b0dd6a00 Bug #21086: server crashes when VIEW defined with a SELECT with COLLATE clause is called
When executing INSERT over a view with calculated columns it was assuming all
  elements of the fields collection are actually Item_field instances.
  This may not be true when inserting into a view and that view has columns that are 
  such expressions that allow updating (like setting a collation for example).
  Corrected to access field information through the filed_for_view_update() function and 
  retrieve correctly the field info even for "update-friendly" non-Item_field items.
2006-07-25 18:42:49 +03:00
igor@olga.mysql.com
8b7fc77a0f Added a test case with views for bug #17526. 2006-07-19 16:42:19 -07:00
igor@olga.mysql.com
f608064083 Fixed bug #19714.
DESCRIBE returned the type BIGINT for a column of a view if the column
was specified by an expression over values of the type INT.
    
E.g. for the view defined as follows:
  CREATE VIEW v1 SELECT COALESCE(f1,f2) FROM t1
DESCRIBE returned type BIGINT for the only column of the view if f1,f2 are
columns of the INT type.
At the same time DESCRIBE returned type INT for the only column of the table
defined by the statement:
  CREATE TABLE t2 SELECT COALESCE(f1,f2) FROM t1.
    
This inconsistency was removed by the patch.

Now the code chooses between INT/BIGINT depending on the
precision of the aggregated column type.
 
Thus both DESCRIBE commands above returns type INT for v1 and t2.
2006-07-13 20:48:26 -07:00
igor@olga.mysql.com
f829f210b8 Added a test case with views for bug 18243 (see also func_str.test). 2006-07-06 14:41:01 -07:00
gkodinov@mysql.com
b64089e655 Bug #16110: insert permitted into view col w/o default value
When compiling INSERT statements the check whether columns are provided values
depends on the flag whether a field is used in that query (Field::query_id).
However the check for updatability of VIEW columns (check_view_insertability())
was calling fix_fields() and thus setting the Field::query_id even for the 
view fields that are not referenced in the current INSERT statement.
So the correct check for columns without default values 
( check_that_all_fields_are_given_values() ) is assuming that all the VIEW
columns were mentioned in the INSERT field list and was issuing no 
warnings or errors.
Fixed check_view_insertability() to turn off the flag whether or not to set
Field::query_id (THREAD::set_query_id) before calling fix fields and restore
it when it's done.
2006-07-04 12:10:12 +03:00
lars@mysql.com
5f37fc4a76 Merge mysql.com:/users/lthalmann/bkroot/mysql-5.1-new-rpl
into  mysql.com:/users/lthalmann/bk/MERGE/mysql-5.1-merge
2006-06-16 01:15:19 +02:00
igor@rurik.mysql.com
70ee1c2c6e Merge rurik.mysql.com:/home/igor/tmp_merge
into  rurik.mysql.com:/home/igor/dev/mysql-5.1-0
2006-06-09 00:23:59 -07:00
monty@mysql.com
37d7bbb335 Added --pipe option for faster compile
Changed error to be more descriptive when you are refering to a not existing key
Fixed core dump in view test and changed to better error message
2006-06-06 20:21:36 +03:00
mats@mysql.com
321d9d842f Bug#19066 (DELETE FROM inconsistency for NDB):
Under row-based replication, DELETE FROM will now always be
replicated as individual row deletions, while TRUNCATE TABLE will
always be replicated as a statement.
2006-06-01 11:53:27 +02:00
igor@rurik.mysql.com
d350bd9050 Post-merge fixes 2006-05-31 22:55:45 -07:00
evgen@moonbone.local
516b8f0aca Manually merged 2006-05-24 20:52:57 +04:00
igor@rurik.mysql.com
4a27cbfd02 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0
2006-05-20 19:10:43 -07:00
igor@rurik.mysql.com
12e53358f0 Fixed bug #19089.
When a CREATE TABLE command created a table from a materialized
view id does not inherit default values from the underlying table.
Moreover the temporary table used for the view materialization
does not inherit those default values.
In the case when the underlying table contained ENUM fields it caused
misleading error messages. In other cases the created table contained
wrong default values.
The code was modified to ensure inheritance of default values for
materialized views.
2006-05-20 18:54:43 -07:00
jimw@mysql.com
8262c3c38e Merge mysql.com:/home/jimw/my/mysql-5.0-clean
into  mysql.com:/home/jimw/my/mysql-5.1-clean
2006-05-19 19:07:33 -07:00
igor@rurik.mysql.com
3b3e6ecb95 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-2
2006-05-18 11:30:42 -07:00
evgen@moonbone.local
1d820585ae Fixed bug#19077: A nested materialized derived table is used before being populated.
The convert_constant_item() function converts constant items to ints on
prepare phase to optimize execution speed. In this case it tries to evaluate
subselect which contains a derived table and is contained in a derived table. 
All derived tables are filled only after all derived tables are prepared.
So evaluation of subselect with derived table at the prepare phase will
return a wrong result.

A new flag with_subselect is added to the Item class. It indicates that
expression which this item represents is a subselect or contains a subselect.
It is set to 0 by default. It is set to 1 in the Item_subselect constructor
for subselects.
For Item_func and Item_cond derived classes it is set after fixing any argument
in Item_func::fix_fields() and Item_cond::fix_fields accordingly.
The convert_constant_item() function now doesn't convert a constant item
if the with_subselect flag set in it.
2006-05-18 00:55:28 +04:00
igor@rurik.mysql.com
62f61f527f Merge rurik.mysql.com:/home/igor/tmp_merge
into  rurik.mysql.com:/home/igor/dev/mysql-5.1-0
2006-05-17 11:46:21 -07:00
igor@rurik.mysql.com
767d25dabd Fixed bug #19573.
The select statement that specified a view could be
slightly changed when the view was saved in a frm file.
In particular references to an alias name in the HAVING
clause could be substituted for the expression named by
this alias.
This could result in an error message for a query of
the form SELECT * FROM <view>. Yet no such message
appeared when executing the query specifying the view.
2006-05-16 22:19:44 -07:00
igor@rurik.mysql.com
90f227043b Fixed bug #19490. The bug that caused server crash manifested
itself when executing queries referring to a view with GROUP BY
an expression containing non-constant interval.
It happened because Item_date_add_interval::eq neglected the
fact that the method can be applied to an expression of the form
    date(col) + interval time_to_sec(col) second
at the time when col could not be evaluated yet.
An attempt to evaluate time_to_sec(col) in this method resulted
in a crash.
2006-05-12 18:24:38 -07:00
pem@mysql.com
0e2d20b1cb Merge mysql.com:/extern/mysql/5.1/generic/mysql-5.0-merge
into  mysql.com:/extern/mysql/5.1/generic/mysql-5.1-new
2006-04-25 16:20:49 +02:00
bell@sanja.is.com.ua
b2c810e847 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-merge-5.1
2006-04-24 13:32:07 +03:00
dlenev@mysql.com
c77d5a0ed1 Fix for bug#15153 "CONVERT_TZ() is not allowed in all places in VIEWs".
Error was emitted when one tried to select information from view which used
merge algorithm and which also had CONVERT_TZ() function in its select list.

This bug was caused by wrong assumption that global table list for view
which is handled using merge algorithm begins from tables belonging to
the main select of this view. Nowadays the above assumption is not true only
when one uses convert_tz() function in view's select list, but in future
other cases may be added (for example we may support merging of views
with subqueries in select list one day). Relying on this false assumption
led to the usage of wrong table list for field lookups and therefor errors. 

With this fix we explicitly use pointer to the beginning of main select's
table list.
2006-04-22 11:54:25 +04:00
bell@sanja.is.com.ua
efb8b990e4 The check for recursive view definitions added. (BUG#14308) 2006-04-13 23:12:26 +03:00
igor@rurik.mysql.com
0f2a1f0db8 Merge rurik.mysql.com:/home/igor/dev/mysql-5.0-0
into  rurik.mysql.com:/home/igor/dev/mysql-5.1-0
2006-04-10 17:48:17 -07:00
igor@rurik.mysql.com
17141582d4 Fixed bug #16069.
The function agg_cmp_type in item_cmpfunc.cc neglected the fact that 
the first argument in a BETWEEN/IN predicate could be a field of a view.
As a result in the case when the retrieved table was hidden by a view 
over it and the arguments in the BETWEEN/IN predicates are of 
the date/time type the function did not perform conversion of 
the constant arguments to the same format as the first field argument.
If formats of the arguments differed it caused wrong a evaluation of
the predicates.
2006-04-08 11:42:09 -07:00
igor@rurik.mysql.com
58ad55937d Merge rurik.mysql.com:/home/igor/dev/mysql-5.0-0
into  rurik.mysql.com:/home/igor/dev/mysql-5.1-0
2006-04-05 14:00:54 -07:00
igor@rurik.mysql.com
f485125968 Fixed bug #18237.
The code in opt_sum_query that prevented the COUNT/MIN/MAX 
optimization from being applied to outer joins  was not adjusted 
after introducing nested joins. As a result if an outer join
contained a reference to a view as an inner table the code of
opt_sum_query missed the presence of an on expressions and
erroneously applied the mentioned optimization.
2006-04-04 12:55:02 -07:00
igor@rurik.mysql.com
22d66dccd6 Merge rurik.mysql.com:/home/igor/dev/mysql-5.0-0
into  rurik.mysql.com:/home/igor/dev/mysql-5.1-0
2006-03-27 18:30:40 -08:00
igor@rurik.mysql.com
f57e0b3db7 Fixed bug #18386.
An invalid assertion in Item_direct_view_ref::eq caused 
an assertion abort in the debug version.
2006-03-27 18:28:55 -08:00
brian@zim.(none)
e5161fb802 Merge zim.(none):/home/brian/mysql/mysql-5.0
into  zim.(none):/home/brian/mysql/mysql-5.1-new
2006-03-09 10:39:40 -08:00
evgen@moonbone.local
62a266f114 Fixed bug#17726: Not checked empty list caused endless loop
When the Item_cond::fix_fields() function reduces cond tree, it in loop
scans it's own list and when it founds Item_cond with same function (AND
or OR) it does next things: 1) replaces that item with item's list. 2)
empties item's list. Due to this operation is done twice - for update and
for view, at the update phase cond's list of lower view is already empty.
Empty list returns ref to itself, thus making endless loop by replacing
list with itself, emptying, replacing again and so on. This results in
server hung up.

To the Item_cond::fix_fields() function added check that ensures that
list being replaced with isn't empty.
2006-03-03 16:19:57 +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
SergeyV@selena.
763475754a Merge svlasenko@bk-internal.mysql.com:/home/bk/mysql-5.0
into  selena.:H:/MYSQL/src/#15943-mysql-5.0
2006-02-27 20:00:03 +03:00
monty@mysql.com
82b77cdd90 Fixes to embedded server to be able to run tests with it
(Needed for "list of pushes" web page and autopush)
2006-02-24 18:34:15 +02:00
SergeyV@selena.
da94b1662b Fixes bug #15943. resets error flag for show create view command, to allow
proper processing of multiple sql statements sent as a single command.
2006-02-13 19:53:34 +03:00
konstantin@mysql.com
e1f807af26 Merge mysql.com:/home/kostja/mysql/mysql-5.0-root
into  mysql.com:/home/kostja/mysql/mysql-5.1-merge
2006-02-09 13:35:59 +03:00
igor@rurik.mysql.com
86606615ab Fixed bug #16382.
When an ambiguous field name is used in a group by clause a warning is issued
in the find_order_in_list function by a call to push_warning_printf.
An expression that was not always valid was passed to this call as the field
name parameter.
2006-02-01 20:43:43 -08:00
msvensson@neptunus.(none)
60296f8f7f Merge neptunus.(none):/home/msvensson/mysql/mysqltest_var/my50-mysqltest_var
into  neptunus.(none):/home/msvensson/mysql/mysqltest_var/my51-mysqltest_var
2006-01-24 14:10:48 +01:00
msvensson@neptunus.(none)
3d5f530caa Merge neptunus.(none):/home/msvensson/mysql/mysqltest_var/my50-mysqltest_var
into  neptunus.(none):/home/msvensson/mysql/mysqltest_var/my50-mysqltest_var-integration
2006-01-24 08:43:34 +01:00
msvensson@neptunus.(none)
09ec2919a1 Make it possible to run mysql-test-run.pl with default test suite in different vardir. 2006-01-24 08:30:54 +01:00
holyfoot@mysql.com
53a379d041 Merge bk@192.168.21.1:mysql-5.1-new into mysql.com:/home/hf/work/5.1.emb 2006-01-19 18:05:57 +04:00
holyfoot@deer.(none)
c03d025002 Embedded-server related tests fixes 2006-01-19 13:25:12 +04:00
igor@rurik.mysql.com
aade22bad2 Merge rurik.mysql.com:/home/igor/dev/mysql-5.0-0
into  rurik.mysql.com:/home/igor/dev/mysql-5.1-0
2006-01-06 23:26:20 -08:00
igor@rurik.mysql.com
d2cfad167b Fixed bug #16016: MIN/MAX optimization was not applied to views. 2006-01-06 22:28:26 -08:00
jimw@mysql.com
96ae7c2e78 Merge mysql.com:/home/jimw/my/mysql-5.0-clean
into  mysql.com:/home/jimw/my/mysql-5.1-clean
2006-01-06 10:42:58 -08:00
monty@mysql.com
b0a5ea01ef Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2006-01-06 01:08:48 +02:00
monty@mysql.com
6e22e29de6 Review fixes of new pushed code
- Fixed tests
- Optimized new code
- Fixed some unlikely core dumps
- Better bug fixes for:
  - #14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  - #14850 (ERROR 1062 when a quering a view using a Group By on a column that can be null
2006-01-06 00:47:49 +02:00
holyfoot@mysql.com
42dd692212 Merge bk@192.168.21.1:mysql-5.1-new into mysql.com:/home/hf/work/5.1.emb 2006-01-04 14:28:41 +04:00
holyfoot@deer.(none)
e8697cf428 Big patch to make embedded-server working in 5.x
Now it supports queries returning several results
(particularly important with the SP)
2006-01-04 14:20:28 +04:00
dlenev@mysql.com
15c86158a7 Merge mysql.com:/home/dlenev/src/mysql-5.0-bg14836
into  mysql.com:/home/dlenev/src/mysql-5.1-merges
2005-12-24 20:13:51 +03:00
gluh@eagle.intranet.mysql.r18.ru
f4b052844f Fix for bug#14861 aliased column names are not preserved.
Create tmp table filed using original item name when it's necessary
2005-12-19 15:36:03 +04:00
dlenev@mysql.com
5ff3e4ec57 Merge mysql.com:/home/dlenev/src/mysql-5.0-merges
into  mysql.com:/home/dlenev/src/mysql-5.1-merges
2005-12-12 14:59:14 +03:00
dlenev@mysql.com
40614adf66 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg11555-2
2005-12-07 12:47:25 +03:00
dlenev@mysql.com
06b895c096 Fix for bug #11555 "Stored procedures: current SP tables locking make
impossible view security".

We should not expose names of tables which are explicitly or implicitly (via
routine or trigger) used by view even if we find that they are missing.
So during building of list of prelocked tables for statement we track which
routines (and therefore tables for these routines) are used from views. We
mark elements of LEX::routines set which correspond to routines used in views
by setting Sroutine_hash_entry::belong_to_view member to point to TABLE_LIST
object for topmost view which uses routine. We propagate this mark to all
routines which are used by this routine and which we add to this set. We also
mark tables used by such routine which we add to the list of tables for
prelocking as belonging to this view.
2005-12-07 12:27:17 +03:00
bell@sanja.is.com.ua
3d2d9c2259 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-merge-5.1
2005-12-03 08:56:00 +02:00
bell@sanja.is.com.ua
b1f0e78146 Merge sanja.is.com.ua:/home/bell/mysql/bk/work-bug1-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-merge1-5.0
2005-12-02 21:20:25 +02:00
bell@sanja.is.com.ua
45e59f3d76 Now we shall store only position (index of first character)
of SELECT from query begining, to be independet of query buffer
allocation.
Correct procedure used to find beginning of the current statement
during parsing (BUG#14885).
2005-12-02 21:18:12 +02:00
bell@sanja.is.com.ua
2ff98e0586 View creation code fixed to expect empty TABLE_LIST::table pointer (BUG#15096). 2005-12-01 12:15:48 +02:00
guilhem@mysql.com
24006266d0 Merge mysql.com:/home/mysql_src/mysql-5.0-van
into  mysql.com:/home/mysql_src/mysql-5.1-merge-of-5.0
(2nd try; Pekka kindly accepted to fix storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp
and storage/ndb/src/kernel/vm/SimulatedBlock.cpp after I push).
2005-11-19 10:43:28 +01:00
guilhem@mysql.com
2f95fc2701 Merge mysql.com:/home/mysql_src/mysql-5.0
into  mysql.com:/home/mysql_src/mysql-5.1-merge-of-5.0 (not all files are good,
I'll fix; I'll ask some devs to check their part)
2005-11-18 16:38:01 +01:00
evgen@moonbone.local
badc2668ce Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/13622-bug-5.0-mysql
2005-11-18 17:26:44 +03:00
timour@mysql.com
9a644b948c WL#2486 - natural/using joins according to SQL:2003.
Enabled view tests that didn't work before.
2005-11-18 10:51:46 +02:00
evgen@moonbone.local
a031778955 Manually merged 2005-11-18 01:16:15 +03:00
evgen@moonbone.local
7749b8d15b Merge 2005-11-16 02:08:20 +03:00
evgen@moonbone.local
35f7b50b18 Fix bug #14816 test_if_order_by_key() expected only Item_fields.
test_if_order_by_key() expected only Item_fields to be in order->item, thus
failing to find available index on view's field, which results in reported
error.

Now test_if_order_by_key() calls order->item->real_item() to get field for
choosing index.
2005-11-14 22:10:34 +03:00
evgen@moonbone.local
70e1974f76 Fix bug #14850 Item_ref's null_value wasn't updated
Item_ref's null_value wasn't updated in save_org_in_field() causing reported
error.
2005-11-14 21:52:39 +03:00
evgen@moonbone.local
508824f7c4 Fix bug #13622 Wrong view .frm created if some field's alias contain \n
View .frm parser assumes that query string will take only 1 line, with \n in
aliases query stringmay take several lines thus produces bad .frm file.

'query' parameter type changed from 'string' to 'escaped string'
2005-11-11 20:03:32 +03:00
anozdrin@mysql.com
491e4f89f5 WL#2818 (Add creator to the trigger definition for privilege
checks on trigger activation)
2005-11-10 22:25:03 +03:00
pem@mysql.com
b01e7393bf Fixed BUG#14719: Views DEFINER grammar is incorrect
Corrected the syntax for the current_user() case.
  (It's "definer = current_user[()]", not just "current_user[()]".)
2005-11-09 16:51:00 +01:00
acurtis@poseidon.ndb.mysql.com
c01a3b5e5f Make storage engines "pluggable", handlerton work 2005-11-07 16:25:06 +01:00
igor@rurik.mysql.com
60a4b4fb16 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0
2005-11-05 22:45:54 -08:00
sergefp@mysql.com
a88ecb9a3d Post-merge fixes 2005-11-03 12:38:46 +03:00
sergefp@mysql.com
8fefb36800 Merged 2005-11-03 10:28:12 +03:00
igor@rurik.mysql.com
f878cc589d Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0
2005-11-02 22:24:36 -08:00
igor@rurik.mysql.com
44dd303c47 Post review fixes. 2005-11-02 22:13:10 -08:00
igor@rurik.mysql.com
fddc99bcd8 #view.test#:
new file
sql_table.cc, handler.h:
  Fixed bug #14540.
  Added error mnemonic code HA_ADMIN_NOT_BASE_TABLE
  to report that an operation cannot be applied for views.
view.test, view.result:
  Added a test case for bug #14540.
errmsg.txt:
  Fixed bug #14540.
  Added error ER_CHECK_NOT_BASE_TABLE.
2005-11-02 13:44:58 -08:00
sergefp@mysql.com
96ff1e808a BUG#14026: When doing the end-of-prepare fix up for TABLE_LISTs used in the PS, do the fixup
for underlying tables of a merge VIEWs, too.
2005-11-02 07:05:19 +03:00
evgen@moonbone.local
2343ff86ca Fix bug #14466 lost sort order in GROUP_CONCAT() in a view
Item_func_group_concat::print() wasn't printing sort order thus creating wrong
view. This results in reported error.
2005-11-01 17:27:10 +03:00
pem@mysql.com
d201f2443d Fixed BUG#14256: definer in view definition is not fully qualified
Changed the parser test for wildcards in hostname to checking for empty
  strings instead (analogous with the test in default_view_definer()),
  since wildcards do appear in the definer's host-part sometimes.
2005-10-28 12:11:32 +02:00
monty@mysql.com
5513ab69b7 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2005-10-12 00:59:52 +03:00
monty@mysql.com
f5fdf3e87a Reviewing new pushed code
- CHAR() now returns binary string as default
- CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
- Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
  (Some old systems returns ETIME and it's safer to test for both values
   than to try to write a wrapper for each old system)
- Fixed new introduced bug in NOT BETWEEN X and X
- Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
- Use octet2hex() for all conversion of string to hex
- Simplify and optimize code
2005-10-12 00:58:22 +03:00
evgen@moonbone.local
65325ecbbb Fix bug#13327 check_equality() wasn't checking view's fields
check_equality() finds equalities among field items. It checks input items
to be Item_fields thus skipping view's fields, which are represented by
Item_direct_view_ref. Because of this index wasn't applied in all cases
it can be.

To fix this problem check_equality() now takes real item of
Item_direct_view_ref, except outer view refs (with depended_from set).
2005-10-10 18:53:57 +04:00
timour@mysql.com
77cf84186e Fix for BUG#13410 - qualified reference to a view column in the HAVING clause cannot be resolved.
The problem was then when a column reference was resolved to a view column, the new Item
created for this column contained the name of the view, and not the view alias.
2005-10-01 09:35:30 +03:00
igor@rurik.mysql.com
6e2fb27af6 item.cc:
Fixed bug #13410.
  Fixed name resolution for qualified reference to a view column
  in the HAVING clause.
view.result, view.test:
  Added a test case for bug #13410.
2005-09-26 23:29:02 -07:00
igor@rurik.mysql.com
a43b341c8a sql_base.cc, item.cc:
Fixed bug #13411.
  Fixed name resolution for non-qualified reference to a view column
  in the HAVING clause.
view.result, view.test:
  Added a test case for bug #13411.
2005-09-26 20:18:59 -07:00
serg@serg.mylan
86ad035270 test case fixed to pass w/o innodb 2005-09-25 15:44:05 +02:00
georg@lmy002.wdf.sap.corp
541d3ae89b Merge grichter@bk-internal.mysql.com:/home/bk/mysql-5.0
into lmy002.wdf.sap.corp:/home/georg/work/mysql/bugs/mysql-5.0-master
2005-09-19 05:32:38 +02:00
georg@lmy002.wdf.sap.corp
afe8dcf2e7 Fix for bug#5508 after Sanja's review 2005-09-16 17:13:21 +02:00
evgen@moonbone.local
fcfcc016bd Merge 2005-09-15 20:50:10 +04:00
evgen@moonbone.local
ac32450609 Fix bug #11416 Server crash if using a view that uses function convert_tz
When parser parses function convert_tz it loads available timezone tables in
thd->lex->time_zone_tables_used. But view have another lex that main query.
Thus time_zone_tables_used of main query left uninitialized.
When Item_func_conver_tz is fixed it takes timezone tables from main query
and later when it executed it assumes that timezone tables are loaded and
failed that assertion.
2005-09-15 00:08:12 +04:00
aivanov@mysql.com
a42b5000ca Merge mysql.com:/home/alexi/mysql-5.0
into  mysql.com:/home/alexi/dev/mysql-5.0-13000
2005-09-14 20:32:59 +04:00
aivanov@mysql.com
53e90b53bc Fixed BUG#12963, BUG#13000: wrong VIEW creation with DAYNAME(),
DAYOFWEEK(), and WEEKDAY().
2005-09-14 20:25:00 +04:00
bell@sanja.is.com.ua
914b961d01 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-owner2-5.0
2005-09-14 11:07:04 +03:00
bell@sanja.is.com.ua
71ffbbf81b part 1 (ver 2, postreview fix) of WL#2787
view definer information syntax/storage/replication
fixed SOURCE field of .frm
2005-09-14 10:53:09 +03:00
evgen@moonbone.local
62fa6c5eae Merge 2005-09-13 22:22:51 +04:00
timour@mysql.com
9d862db743 Fix for BUG#6808.
The problem was in that add_table_to_list was testing for duplicate tables
in a list of tables that included the created view.
2005-09-12 17:01:17 +03:00
evgen@moonbone.local
75841099ca Fix bug #12993 View column rename broken in subselect
When view column aliased in subselect alias is set on ref which represents
field. When tmp table is created for subselect, it takes name of original field
not ref. Because of this alias on view column in subselect is lost. Which
results in reported error.

Now when alias is set on ref, it's set on ref real item too.
2005-09-12 02:46:35 +04:00
evgen@moonbone.local
f2d6282f6b Manual merge 2005-09-07 22:55:49 +04:00
evgen@moonbone.local
80c3a0b1b6 Fix bug #12922 if(sum(),...) with group from view returns wrong results
Fields of view represented by Item_direct_view_ref. When complex expression
such as if(sum()>...,...) is splited in simpler parts by refs was ignored.
Beside this direct ref doesn't use it's result_field and thus can't store
it's result in tmp table which is needed for sum() ... group.
All this results in reported bug.

Item::split_sum_func2() now converts Item_direct_view_ref to Item_ref to
make fields from view being storable in tmp table.
2005-09-07 22:38:36 +04:00
sergefp@mysql.com
99870f616d Fix for BUG#12941: in create_tmp_field(), if the passed item is an Item_ref, put newly
created item into item->result_field, not *(item->ref)->result_field.
2005-09-07 11:50:41 +04:00
bell@sanja.is.com.ua
da64c1eab3 postmerge changes 2005-09-02 09:50:17 +03:00
bell@sanja.is.com.ua
dd7ab17059 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-bug3-5.0
2005-09-01 22:42:37 +03:00
msvensson@neptunus.(none)
1026fa2fe3 Fix for spelling miss and eol junk 2005-09-01 20:02:08 +02:00
evgen@moonbone.local
dc53ac6d1f Fix bug #12489 wrongly printed strcmp() function results in creation of broken
view.

For Item_func_strcmp print() was not defined and for this class was called
print_op of it's parent class. Because of this strcmp() was printed wrongly
and this results int creation of broken view.

Added function Item_func_strcmp::print() which correctly prints strcmp()
function.
2005-08-31 00:54:41 +04:00
bell@sanja.is.com.ua
5963573c05 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-bug1-5.0
2005-08-25 17:47:18 +03:00
andrey@lmy004.
dde57f082b fix for bug #12533 (crash on DESCRIBE <view> after renaming base table column) 2005-08-25 09:24:21 +02:00
bell@sanja.is.com.ua
144c847da6 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-bug3-5.0
2005-08-23 23:17:36 +03:00
igor@rurik.mysql.com
6fae8f6c8d Manual merge 2005-08-18 15:18:26 -07:00
igor@rurik.mysql.com
5ac7d86793 view.test:
Added a test case for bug #10970.
view.result:
  Added a test case for bug #10970.
  Modified the error messages for error ER_VIEW_SELECT_TMPTABLE.
sql_view.cc:
  Fixed bug #10970.
  In the function mysql_create_view if a view does not refer
  any tables directly the variable table must be updated
  after the call of open_and_lock_tables.
errmsg.txt:
  Modified the error messages for error ER_VIEW_SELECT_TMPTABLE
  (when fixing bug #10970).
2005-08-17 22:19:12 -07:00
bell@sanja.is.com.ua
7f48830f9e sql_view.cc:
correct exit from mysql_create_view to restore ennvironment (BUG#12468)
view.result, view.test:
  test of CRETE VIEW in SP
2005-08-17 22:42:53 +03:00
evgen@moonbone.local
0f9b982970 Fix bug #12298 Typo in timestampdiff() function name results in erroneous
view being created.

Item_func_timestamp_diff::func_name() were returning function name as
"timestamp_diff" thus when view was executed function parameters wasn't 
properly recognized and error was raised.
2005-08-12 22:42:50 +04:00
igor@rurik.mysql.com
da441e949c sql_base.cc:
Fixed bug #12470.
  A misplaced initialization of the cond_count counter
  resulted in a wrong calculation of it. This caused a memory
  corruption since this counter was used as a parameter of
  some memory allocation.
view.test:
  Added a test case for bug #12470.
2005-08-12 01:27:04 -07:00
igor@rurik.mysql.com
0aff8a13dc sql_base.cc:
Fixed bug #12382.
  INSERT statement effectively changed thd->set_query_id to 0,
  while SELECT statement changed it to 0. As a result
  the insert_fields function that expanded '*' was called
  with different values of thd->set_query_id for the query
  SELECT * FROM view depending on whether it was run after
  an INSERT or after a SELECT statement. This was corrected
  by restoring the old value of thd->set_query_id when
  returning from the function setup_fields where possible
  reset could occur.
  If the value of thd->set_query_id == 0 then the fields
  substituted instead of '*' were not registered as used
  for bitmaps used_keys. This caused selection of an invalid
  execution plan for the query SELECT * from <view>.
view.result, view.test:
  Added a test case for bug #12382.
2005-08-11 16:10:34 -07:00
sergefp@mysql.com
c6db76b076 Fix for BUG#12228: SP cache code:
* Cleanup SP Cache code, now SP Cache only deletes sp_head objects in 
  sp_cache_flush_obsolete() invalidates all pointers to routines in the cache.
* Use new SP Cache use contract in the code.

There is no test case because it doesn't seem to be possible to cause thread races to end
the same way they end in heavy-load test. This patch removes the crash in heavy test.
2005-08-08 23:23:34 +00:00
evgen@moonbone.local
1894cff045 Manual merge of #11335 bugfix 2005-08-05 00:34:42 +04:00
sergefp@mysql.com
f595847ec0 Manual merge 2005-08-03 03:47:07 +00:00
bell@sanja.is.com.ua
4c69fbe632 issue correct error message in case of view presence for duplicated table on update (BUG#10773)
frequently used command sequence replaced with inline function
2005-08-02 22:54:49 +03:00
monty@mishka.local
8437e9c1be Fixes during review of new pushed code
Change bool in C code to my_bool
Added to mysqltest --enable_parsning and --disable_parsing to avoid to have to comment parts of tests
Added comparison of LEX_STRING's and use this to compare file types for view and trigger files.
2005-07-31 12:49:55 +03:00
sergefp@mysql.com
de02193bdd Added Non-prelocked SP execution: Now a PROCEDURE doesn't enter/leave prelocked mode for
its body, but lets each statement to get/release its own locks. This allows a broader set
of statements to be executed inside PROCEDUREs (but breaks replication)
This patch should fix BUG#8072, BUG#8766, BUG#9563, BUG#11126
2005-07-30 08:19:57 +00:00
evgen@moonbone.local
fa0ea36507 Fix bug #11335 View redefines TinyInt(1) column definition
Item_type_holder doesn't store information about length and exact type of
original item which results in redefining length to max_length and geometry 
type to longtext.

Changed the way derived tables except unions are built. Now they are created
from original field list instead of list of Item_type_holder.
2005-07-30 05:53:35 +04:00
igor@rurik.mysql.com
24d148d025 sql_select.cc:
Fixed bug #11412.
  Reversed the patch of cs 1.1934 for the function 
  create_tmp_table. Modified the function to support
  tem_ref objects created for view fields.
item_buff.cc:
  Fixed bug #11412.
  Modified implementation of new_Cached_item to support
  cacheing of view fields.
item.h:
  Fixed bug #11412.
  Changed implementation of Item_ref::get_tmp_table_field and
  added Item_ref::get_tmp_table_item to support Item_ref objects
  created for view fields.
view.test, view.result:
  Added a test case for bug #11412.
2005-07-25 12:57:23 -07:00
evgen@moonbone.local
ef1d27e02a Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/mysql-5.0-bug-11760
2005-07-20 06:59:31 +04:00
evgen@moonbone.local
6b25219fea Fix bug #11760 Typo in Item_func_add_time::print() results in NULLs returned
by subtime() in view

Item_func_add_time::print() were printing arg[0] instead of arg[1] which
results in wrongly created view. Functions addtime() and subtime were
affected by this bug.
2005-07-20 06:55:51 +04:00
dlenev@mysql.com
8a3e723b74 Fix for bugs #5892/6182/8751/8758/10994 (based on Antony's patch)
"Triggers have the wrong namespace"
  "Triggers: duplicate names allowed"
  "Triggers: CREATE TRIGGER does not accept fully qualified names"
  "SHOW TRIGGERS"
2005-07-19 20:06:49 +04:00
bell@sanja.is.com.ua
8aad35f9d2 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-bug6-5.0
2005-07-16 00:17:05 +03:00
bell@sanja.is.com.ua
6114bee47c stop evaluation constant functions in WHERE (BUG#4663)
correct value of CURRENT_USER() in SP with "security definer" (BUG#7291)
2005-07-16 00:01:44 +03:00
bell@sanja.is.com.ua
a7834de02d take into account table lock mode when opening table:
try to find most suitable table, to avouid pickup table with too low locking mode or occupy table with write mode for select when it will be need for update later
(BUG#9597)
2005-07-15 01:22:14 +03:00
kent@mysql.com
aab8220342 Merge 2005-07-13 02:39:23 +02:00
evgen@moonbone.local
693c7272f0 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/mysql-5.0-bug-11709
2005-07-13 04:39:22 +04:00
evgen@moonbone.local
d72f1c9b0c view.result, view.test:
Fix for test case for bug#11709
2005-07-13 04:10:19 +04:00
evgen@moonbone.local
bb1f81607c Merge 2005-07-12 23:24:35 +04:00
evgen@moonbone.local
de016ca78a Fix bug#11709 View was ordered by wrong column.
When searching column to sort on, item was compared to field under view
column, but not the column itself. Because names of view column and underlaid
field may differ, it leads to possibly choosing wrong column for sorting on.

This patch makes Item_direct_view_ref::eq(Item *item,...) compare
item's name with it's own name proir to comparing to *ref item.
2005-07-12 23:22:08 +04:00
igor@igor-inspiron.creware.com
db28fb113e view.test, view.result:
Expanded the test case for bug #6120 to cover
  DROP VIEW / CREATE VIEW scenario.
sql_view.cc:
  Expanded the fix for bug #6120 to cover the case of
  DROP VIEW / CREATE_VIEW.
2005-07-12 10:44:32 -07:00
igor@igor-inspiron.creware.com
7725eb3141 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0
into igor-inspiron.creware.com:/home/igor/mysql-5.0
2005-07-12 10:44:31 -07:00
evgen@moonbone.local
7d20cad2db Merge 2005-07-12 20:49:43 +04:00
evgen@moonbone.local
dc5949b336 Fix bug #11399 Column alias was lost during view preraration.
New item created in find_field_in_table() to fix view's item, was created 
without taking into account original item's alias. This patch checks if alias 
is set to the original item and if so sets it to newly created item.
2005-07-12 20:45:34 +04:00
igor@igor-inspiron.creware.com
26ee0b2ef8 view.result, view.test:
Added a test case for bug #11771.
item.h:
  Fixed bug #11771.
  Added method reset_query_id_processor to be able to adjust
  query_id for fields generated from * in queries like this:
  SELECT * FROM <view> ...
sql_base.cc:
  Fixed bug #11771.
  Adjusted query_id for fields generated from * in queries
  like this: SELECT * FROM <view> ...
2005-07-12 05:18:05 -07:00