Eric
aac6ab0fc6
N°2272 - OQL performance (testability)
2019-09-06 14:30:42 +02:00
Molkobain
38640b01a8
Merge branch 'feature/b2060-migrate-silex-to-symfony' into develop
...
# Conflicts:
# core/dbsearch.class.php
# datamodels/2.x/itop-portal-base/module.itop-portal-base.php
# datamodels/2.x/itop-portal-base/portal/src/controllers/userprofilebrickcontroller.class.inc.php
# datamodels/2.x/itop-portal-base/portal/src/helpers/applicationhelper.class.inc.php
# datamodels/2.x/itop-portal/module.itop-portal.php
2019-07-12 09:57:16 +02:00
Molkobain
030d912820
Code cleanup
...
- Format code accordingly to coding conventions
- Add / update PHPDoc all over the place
- Suppress most of the warnings that did not have a big impact on code's logic
2019-07-09 19:10:16 +02:00
Eric
e68340273b
Merge branch 'master' into develop
...
# Conflicts:
# core/config.class.inc.php
# core/htmlsanitizer.class.inc.php
# css/css-variables.scss
# css/light-grey.css
# datamodels/2.x/version.xml
# dictionaries/zh_cn.dictionary.itop.ui.php
# synchro/synchrodatasource.class.inc.php
2019-06-20 16:11:38 +02:00
Eric
dac77e0606
Revert id in select
2019-06-13 10:24:01 +02:00
Eric
85653c9ffc
Sanityzation:
...
- no use of cache to build queries when the flag is set
- Use class key instead of 'id' for default select column
2019-06-11 17:18:35 +02:00
Pierre Goiffon
d24870e0ae
Merge remote-tracking branch 'origin/master' into develop
2019-06-04 16:23:58 +02:00
bruno DA SILVA
22416cc0be
:note: PhpDoc generation for the public API
...
- typo (tunning => tuning)
- rework of the README.md
2019-05-24 14:05:22 +02:00
Pierre Goiffon
991bc359cb
Merge remote-tracking branch 'origin/master' into develop
2019-05-23 10:52:34 +02:00
OИUЯd da silva
9c75cb4537
:note: PhpDoc generation for the public API ( #63 )
...
- generate phpdoc to a dokuwiki compatible format
- add/update the phpdoc of a selection of class methods
2019-05-21 12:05:52 +02:00
Eric
6ad27b43ab
PR#39 Fix support of expressions (friendlyname) in different language contexts
2019-01-14 11:30:01 +01:00
Eric
a327b5fb5e
Allow an alternative SQL generation from OQL (same as 2.3.0)
2018-11-08 08:55:48 +01:00
Eric
518d94f5f3
Fix audit bug (DBUnionSearch::AddConditionForInOperatorUsingParam() does not exist) when category is a UNION and rule flag 'Valid objects?' is 'true' and there are invalid entries in the result of the audit.
2018-11-06 08:49:35 +01:00
Eric
1debf77ab4
N°931: DBSearch AddCondition updated for tags
2018-09-17 12:46:46 +02:00
Pierre Goiffon
f871581997
Merge branch 'develop' into feature/b931
...
# Conflicts:
# application/applicationextension.inc.php
# core/attributedef.class.inc.php
# core/cmdbchangeop.class.inc.php
# core/cmdbobject.class.inc.php
# core/dbobjectsearch.class.php
# core/oql/expression.class.inc.php
# core/oql/oql-lexer.plex
# core/oql/oql-parser.y
# core/oql/oqlquery.class.inc.php
# css/light-grey.scss
# datamodels/2.x/itop-full-itil/datamodel.itop-full-itil.xml
# datamodels/2.x/itop-portal/datamodel.itop-portal.xml
# datamodels/2.x/itop-tickets/en.dict.itop-tickets.php
# dictionaries/en.dictionary.itop.core.php
# dictionaries/fr.dictionary.itop.core.php
# setup/xmldataloader.class.inc.php
# test/ItopDataTestCase.php
2018-09-04 18:02:51 +02:00
Pierre Goiffon
40a4e6d7b0
Fix files using CrLf, convert them to Lf to have the whole repo using Lf
...
Warn your git config (core.autocrlf = input or true)
2018-09-04 17:59:51 +02:00
Eric
e58bc738d0
N°931: TagSet : Parsing OQL
2018-08-31 15:58:55 +02:00
Pierre Goiffon
201c93e20a
N°1582 Fix audit when a current organization is set and there is an audit rule with valid=true
...
Was generating an OQL missing query argument error
SVN:trunk[5991]
2018-08-01 09:12:00 +00:00
Stephen Abello
0a44f34c2c
N°1444 : fixed regression introduced in [r5724] & [r5773]
...
SVN:trunk[5809]
2018-05-23 10:11:23 +00:00
Eric Espié
137067ea43
cleanup and fix Group by queries
...
SVN:trunk[5790]
2018-05-15 15:12:57 +00:00
Pierre Goiffon
7b54f51d75
N°1418 Audits Perf optimization for AuditRule with valid_flag=true and lots of negative records
...
Use a new helper method that don't parse values anymore on SELECT IN / NOT IN queries
SVN:trunk[5724]
2018-04-23 14:48:40 +00:00
Eric Espié
c485286114
Advanced Search: External keys to hierarchical class selects sub-classes as in previous version
...
SVN:trunk[5675]
2018-04-16 16:35:20 +00:00
Eric Espié
03f9a9fcac
N°1161 - Add functions, order by and limits to DBSearch::MakeGroupByQuery()
...
SVN:trunk[5350]
2018-02-16 12:59:35 +00:00
Eric Espié
c94476b9a2
N.1065 Fix performance issues.
...
* Added the bGetCount flag into the cache to differentiate the cache entries for COUNT only.
SVN:trunk[5034]
2017-10-18 12:53:23 +00:00
Eric Espié
38796f9d0c
N.1065 Fix performance issues.
...
* Does not cache requests containing "id NOT IN ..." (too specific)
SVN:trunk[5019]
2017-10-12 15:31:14 +00:00
Eric Espié
79b887d189
N°1110 - DataSynchro: PHP Notice Undefined Index
...
* Fix access to REQUEST_URI when called by script
SVN:trunk[5017]
2017-10-12 13:54:28 +00:00
Eric Espié
e04e5913de
N.1065 Fix performance issues.
...
* Does not cache requests containing "id IN ..." (too specific)
SVN:trunk[5012]
2017-10-12 11:58:48 +00:00
Eric Espié
e179825896
N°1110 - DataSynchro: PHP Notice Undefined Index
...
* Fix access to REQUEST_URI when called by script
SVN:trunk[5007]
2017-10-12 07:52:39 +00:00
Eric Espié
49b6c3bed7
N.1065 Fix performance issues.
...
Add statistics on query table join optimization.
SVN:trunk[4992]
2017-10-06 13:53:06 +00:00
Pierre Goiffon
df26833eb1
N.1065 When joining, reverse leaf-root order : now it's root first !
...
* decrease the amount of joins on obsolescence use cases
* should also improve other uses cases as most of the time we believe the attribute linked is in the root class !
* the root table join is done using expressions instead of OQL for perf reasons
* a where clause on finalclass is also added to avoid problems if the leaf table join is not used (would be removed during query optimization phase)
SVN:trunk[4983]
2017-10-05 15:53:44 +00:00
Romain Quetiez
1f2493914f
N.1065 and #372 Query build cache not efficient with global search (each search generates about 80 new entries in the APCu cache)
...
SVN:trunk[4959]
2017-10-03 11:35:21 +00:00
Eric Espié
17bafc037c
Code cleanup.
...
SVN:trunk[4944]
2017-09-27 09:44:19 +00:00
Eric Espié
e785352050
N.1065 Fix performance issues (caches added on query build)
...
SVN:trunk[4943]
2017-09-27 09:37:43 +00:00
Romain Quetiez
43b8522b85
Rework of the edition of 1-N and N-N links: managed as a delta from the GUI down to the the lowest APIs.
...
- Fixes the management of obsolete linked data.
- N.744 Fixes concurrent modifications (example: a user modifies a team, another user modifies a person related to that same team). Still NOT fixed with the customer portal.
- N.849 Fixes links edition in the case some data are not allowed to the current user (organization silos) -TO BE TESTED
- #1145 Fixes the creation of duplicate links in one step (Server to NW Device)
- #1147 Fixes the update of duplicate links
SVN:trunk[4766]
2017-06-21 15:47:28 +00:00
Romain Quetiez
636356f479
N.897 Object having too many external keys could not be recorded (61 tables)
...
SVN:trunk[4755]
2017-06-01 12:44:21 +00:00
Romain Quetiez
3b48428897
Internal: DBObjectSearch->AddCondition, allow the case $value = null (otherwise failing because the keyword null has not yet been implemented in OQL)
...
SVN:trunk[4744]
2017-05-19 09:15:22 +00:00
Romain Quetiez
248f8d6fd4
Obsolescence: finalizing the implementation of the flag (hide obsolete objects, show an icon on hyperlinks and a tag on the object details, user preference defaulting to the new setting 'show_obsolete_data')
...
SVN:trunk[4739]
2017-05-17 08:51:10 +00:00
Romain Quetiez
44b53e40a0
Obsolescence: introduction of this new concept (wording could change later). The obsolescence of an object is computed after other attributes, by the mean of an OQL expression. The code has been refactored (again) so as to factorize between the computation of friendly names and the computation of obsolescence flags. The refactoring involved a significant AND RISKY change: external key friendly names (magic attributes) have been changed from AttributeFriendlyName to AttributeExternalField, which simplifies the SQL query build logic.
...
SVN:trunk[4732]
2017-05-11 11:58:42 +00:00
Romain Quetiez
a8ad3004ea
Internal:
...
- code refactoring to generalize attributes based on an OQL expression (friendly name, obsolescence flag, ....). The intermediate class AttributeComputedFieldVoid has been swept in favor of the use of a new method: IsBasedOnOQLExpresssion.
- added an introspection API (experimental), allowing an external application to request for information about the capabilities of the framework (first step: list attributes and their main characteristics)
SVN:trunk[4720]
2017-05-05 15:08:49 +00:00
Guillaume Lajarige
f9ed88a084
Internal: OQL error reporting
...
SVN:trunk[4717]
2017-05-02 09:11:00 +00:00
Romain Quetiez
fa2fd6dcdf
NEW! Archiving data. Archiving is a soft delete. It can be undone. Enter the archive mode to see all the data including archives (everything is read-only in that mode). Archiving must be enabled per class (data model). Archiving is achieved by the mean of the API DBObject::Archive (or Unarchive).
...
SVN:trunk[4692]
2017-04-26 09:52:20 +00:00
Romain Quetiez
8f0095f751
N.718 (continuation) Audit failing with message "Attempting to merge a filter of class A with a filter of class B" (regression introduced in branch 2.3)....
...
SVN:trunk[4612]
2017-03-22 20:59:33 +00:00
Romain Quetiez
b7fc2e4012
N.718 Audit failing with message "Attempting to merge a filter of class A with a filter of class B" (regression introduced in branch 2.3). There are circumstances for which the queries cannot (yet) be optimized (fallback to the original algorithm)
...
SVN:trunk[4611]
2017-03-22 20:53:40 +00:00
Romain Quetiez
f7e77e9fa6
N.539 Regression introduced in [r4451] on oct 7th. Some OQL were issuing a notice and some were generating a SQL query that would fail with error "Column 'functionalci_id' in where clause is ambiguous" (See CI details)
...
SVN:trunk[4492]
2016-12-05 12:52:08 +00:00
Romain Quetiez
ad8c3db6b4
Continuing [r4488] N.536 Regression introduced in [r4469] (N.505), itself fixing a regression introduced in [r4404]. REQUIRES TESTING
...
SVN:trunk[4490]
2016-12-05 09:59:19 +00:00
Romain Quetiez
d5c3b8d8e2
N.536 Regression introduced in [r4469] (N.505), itself fixing a regression introduced in [r4404]. REQUIRES TESTING
...
SVN:trunk[4488]
2016-12-02 20:37:13 +00:00
Romain Quetiez
d3f5d05063
N.505 Regression introduced in [r4404]. Security issue - Object visibility totally screwed the APC cache (user data) is enabled. This is a change in the way SQL queries are built and therefore requires testing.
...
SVN:trunk[4469]
2016-10-28 09:08:30 +00:00
Romain Quetiez
59e3367da8
N.434 ... Continuation... Fixed regression introduced in [r4448]. OQL (parsed) queries are optimized too but the SQL query cannot be executed. See example herebelow:
...
SELECT
UserRequest AS u
JOIN Person AS p1 ON u.caller_id=p1.id
JOIN Organization AS o1 ON p1.org_id=o1.id
JOIN Person ON u.caller_id=Person.id
JOIN Location AS l ON Person.location_id = l.id
WHERE Person.status='active' AND p1.status='inactive' AND l.country='France'
SVN:trunk[4451]
2016-10-07 13:15:30 +00:00
Romain Quetiez
fe6ae6f2eb
N.434 Optimized the DB queries. As an example, the query that shows the service catalog in the enhanced customer portal is now made of 5 nodes (at the class level) whereas it used to be made of 11 nodes... for the exact same results. This optimization impacts almost each queries built by iTop. The expected benefit can insignificant or not, depending on the cardinality of the data, the datamodel and the original OQL queries. We found one case where the query execution would apparently never end and it takes now less than a second. The risk with such a change is that is affects most of the queries built by iTop -requires testing!
...
SVN:trunk[4448]
2016-10-07 08:45:24 +00:00
Romain Quetiez
23193153c6
N°436 Core API: Correctly (mathematically!) handle the "allow all data" flag, with UNIONS and INTERSECTIONS. Requires testing
...
SVN:trunk[4404]
2016-09-19 13:08:32 +00:00