Hi,
I would like to talk about this ticket: https://sourceforge.net/p/phpmyadmin/bugs/4070/ The issue is that when you want to limit the number of items (last level) by page in navigation tree, you can have an issue with the last group.
Imagine that you set the config to 25 items, you have a first group of 20 DB, and another one of 15 DB. Here, the last group will contain only 5 items and not all the group. But there is no information that there is other children of this group, so you can believe that you see all the items of the group.
I think that we better have to filter on the first level, than on the number of the last level items…
The list of DB could be get by one query: select s.* from INFORMATION_SCHEMA.SCHEMATA s, ( select DB_first_level from ( SELECT SCHEMA_NAME, SUBSTRING_INDEX(SCHEMA_NAME, '_', 1) DB_first_level FROM INFORMATION_SCHEMA.SCHEMATA ) t ORDER BY DB_first_level ASC LIMIT 1, 3 ) t2 where 1 = locate(concat(DB_first_level, '_'), concat(s.SCHEMA_NAME, '_')) order by s.SCHEMA_NAME;
(Here, I assume that the first level separator is "_" and that we want 3 items of first level.)
(If someone has basics of optimisation and have some idea to improve this query, it could be useful.)
What do you think about removing limit number of last level items and replace it by a limit of first level items? Or any idea to fix the issue in another way?
Thanks, Hugues.
Le 2014-04-15 15:18, Hugues Peccatte a écrit :
Hi,
I would like to talk about this ticket: https://sourceforge.net/p/phpmyadmin/bugs/4070/ The issue is that when you want to limit the number of items (last level) by page in navigation tree, you can have an issue with the last group.
Imagine that you set the config to 25 items, you have a first group of 20 DB, and another one of 15 DB. Here, the last group will contain only 5 items and not all the group. But there is no information that there is other children of this group, so you can believe that you see all the items of the group.
I think that we better have to filter on the first level, than on the number of the last level items…
The list of DB could be get by one query: select s.* from INFORMATION_SCHEMA.SCHEMATA s, ( select DB_first_level from ( SELECT SCHEMA_NAME, SUBSTRING_INDEX(SCHEMA_NAME, '_', 1) DB_first_level FROM INFORMATION_SCHEMA.SCHEMATA ) t ORDER BY DB_first_level ASC LIMIT 1, 3 ) t2 where 1 = locate(concat(DB_first_level, '_'), concat(s.SCHEMA_NAME, '_')) order by s.SCHEMA_NAME;
(Here, I assume that the first level separator is "_" and that we want 3 items of first level.)
(If someone has basics of optimisation and have some idea to improve this query, it could be useful.)
What do you think about removing limit number of last level items and replace it by a limit of first level items? Or any idea to fix the issue in another way?
Hi Hugues, you talk about a limit at the "last level" but currently, the MaxNavigationItems applies at each level, not just the last one. For example, set it to "2" and you will see two databases per page, two tables, two columns, etc.
So if you remove this notion, to limit only at the first level, there might be a display problem when someone has a big number of tables in one database, or a big number of columns in a table.
The default limit was set to 250 but I'm not sure that it's a good idea. Seing 250 tables when expanding a database is a lot of tables.
2014-04-16 0:18 GMT+02:00 Marc Delisle marc@infomarc.info:
Le 2014-04-15 15:18, Hugues Peccatte a écrit :
Hi,
I would like to talk about this ticket: https://sourceforge.net/p/phpmyadmin/bugs/4070/ The issue is that when you want to limit the number of items (last level) by page in navigation tree, you can have an issue with the last group.
Imagine that you set the config to 25 items, you have a first group of 20 DB, and another one of 15 DB. Here, the last group will contain only 5 items and not all the group. But there is no information that there is other children of this group, so you can believe that you see all the items of the group.
I think that we better have to filter on the first level, than on the number of the last level items…
The list of DB could be get by one query: select s.* from INFORMATION_SCHEMA.SCHEMATA s, ( select DB_first_level from ( SELECT SCHEMA_NAME, SUBSTRING_INDEX(SCHEMA_NAME, '_', 1) DB_first_level FROM INFORMATION_SCHEMA.SCHEMATA ) t ORDER BY DB_first_level ASC LIMIT 1, 3 ) t2 where 1 = locate(concat(DB_first_level, '_'), concat(s.SCHEMA_NAME, '_')) order by s.SCHEMA_NAME;
(Here, I assume that the first level separator is "_" and that we want 3 items of first level.)
(If someone has basics of optimisation and have some idea to improve this query, it could be useful.)
What do you think about removing limit number of last level items and replace it by a limit of first level items? Or any idea to fix the issue in another way?
Hi Hugues, you talk about a limit at the "last level" but currently, the MaxNavigationItems applies at each level, not just the last one. For example, set it to "2" and you will see two databases per page, two tables, two columns, etc.
So if you remove this notion, to limit only at the first level, there might be a display problem when someone has a big number of tables in one database, or a big number of columns in a table.
The default limit was set to 250 but I'm not sure that it's a good idea. Seing 250 tables when expanding a database is a lot of tables.
Ok, I didn't know this. So could we imagine to have a new property to manage only the DB items?
Hugues.
Hugues Peccatte a écrit :
2014-04-16 0:18 GMT+02:00 Marc Delisle marc@infomarc.info:
Le 2014-04-15 15:18, Hugues Peccatte a écrit :
Hi,
I would like to talk about this ticket: https://sourceforge.net/p/phpmyadmin/bugs/4070/ The issue is that when you want to limit the number of items (last level) by page in navigation tree, you can have an issue with the last group.
Imagine that you set the config to 25 items, you have a first group of 20 DB, and another one of 15 DB. Here, the last group will contain only 5 items and not all the group. But there is no information that there is other children of this group, so you can believe that you see all the items of the group.
I think that we better have to filter on the first level, than on the number of the last level items…
The list of DB could be get by one query: select s.* from INFORMATION_SCHEMA.SCHEMATA s, ( select DB_first_level from ( SELECT SCHEMA_NAME, SUBSTRING_INDEX(SCHEMA_NAME, '_', 1) DB_first_level FROM INFORMATION_SCHEMA.SCHEMATA ) t ORDER BY DB_first_level ASC LIMIT 1, 3 ) t2 where 1 = locate(concat(DB_first_level, '_'), concat(s.SCHEMA_NAME, '_')) order by s.SCHEMA_NAME;
(Here, I assume that the first level separator is "_" and that we want 3 items of first level.)
(If someone has basics of optimisation and have some idea to improve this query, it could be useful.)
What do you think about removing limit number of last level items and replace it by a limit of first level items? Or any idea to fix the issue in another way?
Hi Hugues, you talk about a limit at the "last level" but currently, the MaxNavigationItems applies at each level, not just the last one. For example, set it to "2" and you will see two databases per page, two tables, two columns, etc.
So if you remove this notion, to limit only at the first level, there might be a display problem when someone has a big number of tables in one database, or a big number of columns in a table.
The default limit was set to 250 but I'm not sure that it's a good idea. Seing 250 tables when expanding a database is a lot of tables.
Ok, I didn't know this. So could we imagine to have a new property to manage only the DB items?
Exact.
2014-04-16 16:57 GMT+02:00 Marc Delisle marc@infomarc.info:
Hugues Peccatte a écrit :
2014-04-16 0:18 GMT+02:00 Marc Delisle marc@infomarc.info:
Le 2014-04-15 15:18, Hugues Peccatte a écrit :
Hi,
I would like to talk about this ticket: https://sourceforge.net/p/phpmyadmin/bugs/4070/ The issue is that when you want to limit the number of items (last level) by page in navigation tree, you can have an issue with the last group.
Imagine that you set the config to 25 items, you have a first group of 20 DB, and another one of 15 DB. Here, the last group will contain only 5 items and not all the group. But there is no information that there
is
other children of this group, so you can believe that you see all the items of the group.
I think that we better have to filter on the first level, than on the number of the last level items…
The list of DB could be get by one query: select s.* from INFORMATION_SCHEMA.SCHEMATA s, ( select DB_first_level from ( SELECT SCHEMA_NAME, SUBSTRING_INDEX(SCHEMA_NAME, '_', 1) DB_first_level FROM INFORMATION_SCHEMA.SCHEMATA ) t ORDER BY DB_first_level ASC LIMIT 1, 3 ) t2 where 1 = locate(concat(DB_first_level, '_'), concat(s.SCHEMA_NAME,
'_'))
order by s.SCHEMA_NAME;
(Here, I assume that the first level separator is "_" and that we want
3
items of first level.)
(If someone has basics of optimisation and have some idea to improve this query, it could be useful.)
What do you think about removing limit number of last level items and replace it by a limit of first level items? Or any idea to fix the issue in another way?
Hi Hugues, you talk about a limit at the "last level" but currently, the MaxNavigationItems applies at each level, not just the last one. For example, set it to "2" and you will see two databases per page, two tables, two columns, etc.
So if you remove this notion, to limit only at the first level, there might be a display problem when someone has a big number of tables in one database, or a big number of columns in a table.
The default limit was set to 250 but I'm not sure that it's a good idea. Seing 250 tables when expanding a database is a lot of tables.
Ok, I didn't know this. So could we imagine to have a new property to manage only the DB items?
Exact.
Hi,
I sent a PR for this ticket, see https://github.com/phpmyadmin/phpmyadmin/pull/1153 But I've some troubles with sourceforge that I can't reach. Can you?
In this PR, I created a new property.
Hugues.