Vicențiu Ciorbaru
df53ed13ac
Renamed variables in init_role_grant_pair to make the code more
...
consistent.
2013-10-17 15:09:39 -07:00
Vicențiu Ciorbaru
2f94e542bd
Whitespace + comment fix
2013-10-17 15:09:31 -07:00
Vicențiu Ciorbaru
7842ef3052
Added logic to handle the in-memory roles_mappings struct in handle_data_struct.
...
The logic is not complete yet.
2013-10-17 15:09:22 -07:00
Vicențiu Ciorbaru
de472770d3
Removed no longer needed hash_walk_action. The function was used to delete
...
no longer valid entries in the roles_mappings HASH. This job will be delegated
to handle_grant_* functions
2013-10-17 15:09:14 -07:00
Vicențiu Ciorbaru
6988e6c56a
The acl_roles_mappings in-memory structure holds the following invariant:
...
It will only hold _valid_ entries for as long as it held in memory. Any change
regarding acl_users or acl_roles in memory should update the structure
immediately. This is why the rebuild_roles_mappings no longer removes invalid
entries.
In order to keep things consistent with the existing code, the following jobs
are assigned to each function:
The role of rebuild_roles_mappings is to recreate the links between users and
roles. Any other updates are to be done in the functions:
handle_grant_*
This change prepares the code for the next step, which is cascading updates.
2013-10-17 15:09:06 -07:00
Vicențiu Ciorbaru
ba43f3551b
Refactored some code in acl_load to make use of the new init_role_grant_pair
...
function
2013-10-17 15:06:39 -07:00
Vicențiu Ciorbaru
f8d944a6a0
Added a init_role_mapping function to be used for later
2013-10-17 15:06:29 -07:00
Vicențiu Ciorbaru
573c73225e
open_grant_tables now also opens roles_mapping table
2013-10-17 15:06:20 -07:00
Vicențiu Ciorbaru
071c4ce88b
Removed no longer needed RoleHostFK as it is not used to link to a Role.
...
Also removed code that loads that column into memory.
2013-10-17 15:06:09 -07:00
Vicențiu Ciorbaru
ee1e66468f
Removed no longer required TODO
2013-10-17 15:05:06 -07:00
Vicențiu Ciorbaru
5acc057879
Roles mappings are now being kept consistent when acl_users gets modified.
...
No cascading changes take place during a user rename. This needs to be
addressed.
2013-10-17 15:03:58 -07:00
Vicențiu Ciorbaru
e876aa2b3b
Fixed memory leak caused by user deletion, aswell as invalid free caused by
...
user creation.
2013-10-17 15:03:49 -07:00
Vicențiu Ciorbaru
7e18b8f1d6
Moved comment in code to correct place for rebuild_role_grants
2013-10-17 15:03:40 -07:00
Vicențiu Ciorbaru
de523f7fad
Refactored function to allow for better code clarity.
2013-10-17 15:03:30 -07:00
Vicențiu Ciorbaru
887a1ac862
Implemented Roles Mappings association between users and roles.
...
No more memory leaks in the code.
2013-10-17 15:03:21 -07:00
Vicențiu Ciorbaru
deffce1ace
Free some memory leaks
...
Still problems with hashtable acl_roles
Need to create a copy of grant_roles, currently it uses the same buffer
2013-10-17 15:03:12 -07:00
Vicențiu Ciorbaru
89229fb71c
Added a delete_function for DYNAMIC_ARRAY.
...
The function calls delete_dynamic, after if calls a free function on every
array element.
2013-10-17 15:03:04 -07:00
Vicențiu Ciorbaru
9e7228dc4a
Added implementation for DYNAMIC_ARRAY in ACL_USER
...
TODO:
Memory allocated for the array is never freed
2013-10-17 15:02:55 -07:00
Vicențiu Ciorbaru
69a3deb58e
Modify mysql.user table to contain a is_user column.
2013-10-17 15:02:47 -07:00
Vicențiu Ciorbaru
ba42300be0
Stripped whitespaces on all lines from sql/sql_acl.cc
2013-10-17 15:02:38 -07:00
Vicențiu Ciorbaru
71a504ca16
Whitespace fixes
2013-10-17 15:02:29 -07:00
Vicențiu Ciorbaru
dc4126657f
Refactored ACL_USER:
...
Changed ACL_USER.user from char * to LEX_STRING.
Refactored every section that made use of ACL_USER.user as a char*.
This was done so as to be able to quickly check the hash_key of the acl_user.
2013-10-17 15:02:18 -07:00
Vicențiu Ciorbaru
fdc1669793
Fixed memory leaks.
...
role_grants is no longer used as it will be added to the ACL_USER class
2013-10-17 15:00:30 -07:00
Vicențiu Ciorbaru
aa465ac3ba
Removed redundant #include "sql_hset.h"
...
It was a leftover from attempting to use Hash_set
2013-10-17 14:58:37 -07:00
Vicențiu Ciorbaru
dd5a98da35
Fixed key search in HASH table
2013-10-17 14:58:07 -07:00
Vicențiu Ciorbaru
e0c908ebe7
Changed acl_roles to be stored into a HASH.
...
There is an issue with correct searching of keys in the HASH.
2013-10-17 14:57:58 -07:00
Vicențiu Ciorbaru
334860cccf
Added roles mapping internal structure creation
...
TODO: Free structures on flush
2013-10-17 14:57:49 -07:00
Vicențiu Ciorbaru
875617c089
Added separation between roles and users in the mysql.user table
2013-10-17 14:57:39 -07:00
Vicențiu Ciorbaru
9f512dca3c
Initialized roles_mapping table. Performed a check to see if a mapping exists.
2013-10-17 14:57:22 -07:00
Vicențiu Ciorbaru
8bb04a90c2
Modified test result to accound for the roles_mapping table.
2013-10-17 14:57:15 -07:00
Vicențiu Ciorbaru
f401de7a4a
Reordered entries to keep the had_user_table variable correct.
2013-10-17 14:57:10 -07:00
Vicențiu Ciorbaru
dc5fdacfe0
Added the new roles_mapping table to mysql_system_tables.sql script.
2013-10-17 14:57:06 -07:00
timour@askmonty.org
929466401e
Removed extra empty line
2013-10-18 12:09:35 +03:00
timour@askmonty.org
afed809297
MDEV-5123 Remove duplicated conditions pushed both to join_tab->select_cond and join_tab->cache_select->cond for blocked joins.
...
BNL and BNLH joins pre-filter the records from a joined table via JOIN_TAB::cache_select->cond.
There is no need to re-evaluate the same conditions via JOIN_TAB::select_cond. This patch removes
the duplicated conditions from the top-level conjuncts of each pushed condition.
The added "Using where" in few EXPLAINs is due to taking into account tab->cache_select->cond
in addition to tab->select_cond in JOIN::save_explain_data_intern.
2013-10-18 11:45:25 +03:00
Alexander Barkov
adbb439358
Merge 5.5 -> 10.0-base
2013-10-21 13:43:45 +04:00
Alexander Barkov
a06cd2cbe5
Merge 5.3 -> 5.5
2013-10-21 13:37:17 +04:00
Alexander Barkov
046fe91161
Merge 5.2 -> 5.3
2013-10-21 13:36:29 +04:00
Alexander Barkov
c63b72c968
Merge 5.1 -> 5.2
2013-10-21 13:35:43 +04:00
Alexander Barkov
11d141004a
A clean-up for DEV-4890 Valgrind warnings on shutdown on a build with openSSL
2013-10-21 13:34:18 +04:00
Sergey Petrunya
dd6bd8bfbd
Fix valgrind failure in subselect3.test, "Conditional jump or move
...
depends on uninitialised value(s) in JOIN::save_explain_data_intern"
- Make find_best() /* the old join optimizer code */ also use table
condition selectivity.
2013-10-17 09:45:31 +04:00
Alexander Barkov
b88bf50ec1
Merge 5.5 -> 10.0-base
2013-10-16 20:41:50 +04:00
Alexander Barkov
1039182354
Merge 5.5 -> 10.0-base
2013-10-16 20:26:16 +04:00
Alexander Barkov
70f066eba4
Merge 5.5 -> 10.0-base
2013-10-16 20:24:02 +04:00
Alexander Barkov
3bf20bc7de
A clean-up for "MDEV-3798: [SHOW] EXPLAIN UPDATE/DELETE".
...
Local variable table_name_buffer went out of scope while
its content was still being used by a String instance.
Moved the variable to the function scope.
2013-10-16 20:17:22 +04:00
Alexander Barkov
11005f3413
Merge 5.3->5.5
2013-10-16 18:17:51 +04:00
Alexander Barkov
bff85079d3
Merge 5.2->5.3
2013-10-16 18:13:13 +04:00
Alexander Barkov
5064d03b80
Merge 5.3 -> 5.5.
2013-10-16 17:58:54 +04:00
Alexander Barkov
2b60ad3637
Merge 5.1->5.2
2013-10-16 17:58:15 +04:00
Alexander Barkov
049000101a
Merge 5.1 -> 5.3
2013-10-16 17:48:31 +04:00
Alexander Barkov
de4ca539b8
MDEV-4890 Valgrind warnings on shutdown on a build with openSSL
2013-10-16 17:37:11 +04:00