diff --git a/core/cmdbobject.class.inc.php b/core/cmdbobject.class.inc.php index d80b9aac3..981571fe8 100644 --- a/core/cmdbobject.class.inc.php +++ b/core/cmdbobject.class.inc.php @@ -46,18 +46,18 @@ require_once('stimulus.class.inc.php'); require_once('valuesetdef.class.inc.php'); require_once('MyHelpers.class.inc.php'); -require_once('expression.class.inc.php'); - -require_once('cmdbsource.class.inc.php'); -require_once('sqlquery.class.inc.php'); -require_once('sqlobjectquery.class.inc.php'); -require_once('sqlunionquery.class.inc.php'); +require_once('oql/expression.class.inc.php'); require_once('oql/oqlquery.class.inc.php'); require_once('oql/oqlexception.class.inc.php'); require_once('oql/oql-parser.php'); require_once('oql/oql-lexer.php'); require_once('oql/oqlinterpreter.class.inc.php'); +require_once('cmdbsource.class.inc.php'); +require_once('sqlquery.class.inc.php'); +require_once('sqlobjectquery.class.inc.php'); +require_once('sqlunionquery.class.inc.php'); + require_once('dbobject.class.php'); require_once('dbsearch.class.php'); require_once('dbobjectset.class.php'); diff --git a/core/dbsearch.class.php b/core/dbsearch.class.php index 28597d1b3..e49d9dc45 100644 --- a/core/dbsearch.class.php +++ b/core/dbsearch.class.php @@ -20,17 +20,6 @@ require_once('dbobjectsearch.class.php'); require_once('dbunionsearch.class.php'); - -define('TREE_OPERATOR_EQUALS', 0); -define('TREE_OPERATOR_BELOW', 1); -define('TREE_OPERATOR_BELOW_STRICT', 2); -define('TREE_OPERATOR_NOT_BELOW', 3); -define('TREE_OPERATOR_NOT_BELOW_STRICT', 4); -define('TREE_OPERATOR_ABOVE', 5); -define('TREE_OPERATOR_ABOVE_STRICT', 6); -define('TREE_OPERATOR_NOT_ABOVE', 7); -define('TREE_OPERATOR_NOT_ABOVE_STRICT', 8); - /** * An object search * diff --git a/core/oql/check_oql.php b/core/oql/check_oql.php new file mode 100644 index 000000000..679f9bfa0 --- /dev/null +++ b/core/oql/check_oql.php @@ -0,0 +1,50 @@ + 'ok', 'message' => ''); + try + { + $oOql = new OqlInterpreter($sOQL); + $oOqlQuery = $oOql->ParseQuery(); // Exceptions thrown in case of issue + $oOqlQuery->Check($oModelReflection,$sOQL); // Exceptions thrown in case of issue + } + catch(Exception $e) + { + $aRes['status'] = 'error'; + $aRes['message'] = $e->getMessage(); + } + return $aRes; +} \ No newline at end of file diff --git a/core/expression.class.inc.php b/core/oql/expression.class.inc.php similarity index 100% rename from core/expression.class.inc.php rename to core/oql/expression.class.inc.php diff --git a/core/oql/oqlquery.class.inc.php b/core/oql/oqlquery.class.inc.php index 07511f69a..104d0e184 100644 --- a/core/oql/oqlquery.class.inc.php +++ b/core/oql/oqlquery.class.inc.php @@ -24,6 +24,16 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ +define('TREE_OPERATOR_EQUALS', 0); +define('TREE_OPERATOR_BELOW', 1); +define('TREE_OPERATOR_BELOW_STRICT', 2); +define('TREE_OPERATOR_NOT_BELOW', 3); +define('TREE_OPERATOR_NOT_BELOW_STRICT', 4); +define('TREE_OPERATOR_ABOVE', 5); +define('TREE_OPERATOR_ABOVE_STRICT', 6); +define('TREE_OPERATOR_NOT_ABOVE', 7); +define('TREE_OPERATOR_NOT_ABOVE_STRICT', 8); + // Position a string within an OQL query // This is a must if we want to be able to pinpoint an error at any stage of the query interpretation // In particular, the normalization phase requires this