When reading a view definition from a .frm file it was
throwing a SQL error if the DEFINER user is not defined.
Changed it to a warning to match the (documented) case
when a view with undefined DEFINER user is created.
mysql-test/r/view_grant.result:
test case for the bug
mysql-test/t/view_grant.test:
test case for the bug
sql/sql_acl.cc:
Initialized the members to no privileges so even if
the subsequent checks fail it will still initialize
the security context.
sql/table.cc:
Turned the error of undefined DEFINER user in reading
a view definition to a warning.
The check for view security was lacking several points :
1. Check with the right set of permissions : for each table ref that
participates in a view there were the right credentials to use in it's
security_ctx member, but these weren't used for checking the credentials.
This makes hard enforcing the SQL SECURITY DEFINER|INVOKER property
consistently.
2. Because of the above the security checking for views was just ruled out
in explicit ways in several places.
3. The security was checked only for the columns of the tables that are
brought into the query from a view. So if there is no column reference
outside of the view definition it was not detecting the lack of access to
the tables in the view in SQL SECURITY INVOKER mode.
The fix below tries to fix the above 3 points.
mysql-test/r/grant.result:
removed nondeterminism (unspecified order) in some test output
mysql-test/r/view_grant.result:
Somewhat extended test case for the bug and similar queries.
mysql-test/t/grant.test:
removed nondeterminism (unspecified order) in some test output
mysql-test/t/view_grant.test:
Somewhat extended test case for the bug and similar queries.
sql/mysql_priv.h:
A wrapper for setup_tables that also checks access to the tables
sql/sql_acl.cc:
removed artificial security check stop and used the table ref's credentials.
sql/sql_base.cc:
a wrapper for setup_tables to check access to the tables
sql/sql_delete.cc:
wrapper called.
sql/sql_insert.cc:
wrapper called
sql/sql_load.cc:
wrapper called
sql/sql_parse.cc:
wrapper called and artificial check stop removed
sql/sql_select.cc:
wrapper called
sql/sql_update.cc:
wrapper called
sql/table.cc:
Mask table access to the view error as well.
into mysql.com:/space/pekka/ndb/version/my51-bug14509
mysql-test/r/ndb_basic.result:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster.h:
Auto merged
storage/ndb/include/ndbapi/Ndb.hpp:
Auto merged
storage/ndb/src/ndbapi/DictCache.cpp:
Auto merged
storage/ndb/src/ndbapi/DictCache.hpp:
Auto merged
storage/ndb/src/ndbapi/Ndb.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp:
Auto merged
mysql-test/r/strict.result:
Auto merged
mysql-test/r/type_ranges.result:
Auto merged
mysql-test/t/strict.test:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
mysql-test/r/information_schema.result:
manual merge
mysql-test/t/information_schema.test:
manual merge
into mysql.com:/space/pekka/ndb/version/my50-bug14509
ndb/src/ndbapi/DictCache.cpp:
Auto merged
ndb/src/ndbapi/DictCache.hpp:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
mysql-test/r/ndb_basic.result:
put auto-incr range under NDB_SHARE until otherwise decided..
makes auto-incr process-global per table. each use requires mutex
mysql-test/t/ndb_alter_table.test:
put auto-incr range under NDB_SHARE until otherwise decided..
makes auto-incr process-global per table. each use requires mutex
sql/ha_ndbcluster.cc:
put auto-incr range under NDB_SHARE until otherwise decided..
makes auto-incr process-global per table. each use requires mutex
sql/ha_ndbcluster.h:
put auto-incr range under NDB_SHARE until otherwise decided..
makes auto-incr process-global per table. each use requires mutex
storage/ndb/src/ndbapi/ndberror.c:
delete non-sense error 4336
storage/ndb/include/ndbapi/Ndb.hpp:
add auto-incr methods which take explicit Ndb::TupleIdRange & argument
for NDB API programs the range is under local dict cache (as in 5.0)
the handler level uses its own Ndb objects and ranges
storage/ndb/src/ndbapi/DictCache.cpp:
add auto-incr methods which take explicit Ndb::TupleIdRange & argument
for NDB API programs the range is under local dict cache (as in 5.0)
the handler level uses its own Ndb objects and ranges
storage/ndb/src/ndbapi/DictCache.hpp:
add auto-incr methods which take explicit Ndb::TupleIdRange & argument
for NDB API programs the range is under local dict cache (as in 5.0)
the handler level uses its own Ndb objects and ranges
storage/ndb/src/ndbapi/Ndb.cpp:
add auto-incr methods which take explicit Ndb::TupleIdRange & argument
for NDB API programs the range is under local dict cache (as in 5.0)
the handler level uses its own Ndb objects and ranges
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
add auto-incr methods which take explicit Ndb::TupleIdRange & argument
for NDB API programs the range is under local dict cache (as in 5.0)
the handler level uses its own Ndb objects and ranges
storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp:
add auto-incr methods which take explicit Ndb::TupleIdRange & argument
for NDB API programs the range is under local dict cache (as in 5.0)
the handler level uses its own Ndb objects and ranges
The unsigned flag in Item was not propagated through the single value subqueries.
This caused the result to be treated as signed.
mysql-test/r/subselect.result:
Added testcases for bug #19700
mysql-test/t/subselect.test:
Added testcases for bug #19700
sql/item.h:
Preserved the unsigned flag in Item_subselect
sql/item_subselect.cc:
Preserved the unsigned flag in Item_subselect
a problem when the table only has a single record in it. This patch corrects that.
ha_tina.cc:
Fix problem with previous patch when there is only one record in the table
storage/csv/ha_tina.cc:
Fix problem with previous patch when there is only one record in the table
into c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/bug19304
sql/ha_partition.cc:
Auto merged
mysql-test/r/partition.result:
manual merge
include/config-win.h:
force time_t to be 32 bit on Visual C++ 2005 or later
sql/net_serv.cc:
include winsock after my_global so the time_t #define can take effect
storage/csv/ha_tina.cc:
fix the csv engine so that it supports DOS, Unix, and Mac line endings
Replaced COND_refresh with COND_global_read_lock becasue of a bug in NTPL threads when using different mutexes as arguments to pthread_cond_wait()
The original code caused a hang in FLUSH TABLES WITH READ LOCK in some circumstances because pthread_cond_broadcast() was not delivered to other threads.
This fixes:
Bug#16986: Deadlock condition with MyISAM tables
Bug#20048: FLUSH TABLES WITH READ LOCK causes a deadlock
mysql-test/r/flush.result:
Added test case for deadlock with FLUSH TABLES WITH READ LOCK
mysql-test/r/lock_multi.result:
Test for bug in LOCK TABLE + optimize table
mysql-test/t/flush.test:
Added test case for deadlock with FLUSH TABLES WITH READ LOCK
mysql-test/t/lock_multi.test:
Test for bug in LOCK TABLE + optimize table
sql/lock.cc:
Replaced COND_refresh with COND_global_read_lock becasue of a bug in NTPL threads when using different mutexes as arguments to pthread_cond_wait()
The original code caused a hang in FLUSH TABLES WITH READ LOCK in some circumstances because pthread_cond_broadcast() was not delivered to other threads
sql/mysql_priv.h:
Added COND_global_read_lock
sql/mysqld.cc:
Added COND_global_read_lock
sql/sql_base.cc:
More DBUG statements
Added a broadcast in remove_table_from_cache() to release any threads waiting in open
into mysql.com:/data0/mysqldev/my/mysql-5.1-release
extra/comp_err.c:
Auto merged
mysql-test/r/ctype_sjis.result:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
configure.in:
merged
into mysql.com:/data0/mysqldev/my/mysql-5.0.22-release
scripts/mysqld_multi.sh:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
configure.in:
merged
extra/comp_err.c:
merged
Fixed compiler warnings
Fixed valgrind warning in Item_date_add_intervall::eq. (Recoding of bugfix #19490)
sql/field.cc:
remove dflt_field from field structure (not needed)
Simple cleanup of code that been copied elsewhere
sql/field.h:
remove dflt_field from field structure (not needed)
sql/item.h:
Removed compiler warnings
sql/item_timefunc.cc:
Fixed Item_date_add_intervall::eq
The problem was that when we call 'eq' 'this' is not fixed, which means we can't call const_item() or a value function.
I fixed this so that we check eq for all arguments and that the sign and type are identical.
(The original code gave a 'accessing uninitialized data' in valgrind.
sql/mysql_priv.h:
Added default fields to create_tmp_field
sql/sql_insert.cc:
New default_field parameter to create_tmp_field()
sql/sql_select.cc:
New default_field parameter to create_tmp_field()
Use this in create_tmp_table() to set right default value for a field