Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "VIATRA/Releases/Query/NewAndNoteWorthy1.1"

(Local search improvements)
Line 26: Line 26:
 
== Surrogate query support ==
 
== Surrogate query support ==
  
* Extension moved to runtime plug-in to ensure that surrogate queries are correctly loaded even when the pattern language is not installed.
+
Surrogate queries in 1.0 were registered using an extension defined in org.eclipse.incquery.patternlanguage.emf plug-in. However, this proved problematic as this causes surrogate registration depending on the patternlanguage.emf plug-in.
 +
 
 +
To handle this issue, another extension definition was created in org.eclipse.incquery.runtime, and the old version is deprecated. Every user of the surrogate query extension should migrate to the new version. There are no syntactic or semantic changes in the new version. For compatibility reason, both the new and the old extensions are considered for loading.
  
 
== Maven builder enhancements ==
 
== Maven builder enhancements ==

Revision as of 08:27, 30 November 2015

New and Noteworthy - EMF-IncQuery 1.1.0

Xtext 2.9 Support

We are using the latest and greatest of Xtext, so in order to specify queries in EMF-IncQuery 1.1.0, you will need Xtext 2.9 dependencies installed. This also means that you can take advantage of Xtext 2.9 features when building on top of EMF-IncQuery 1.1.0.

Local search improvements

  • Improved planner algorithm and bugfixes
  • To use the local search-based algorithm in a matcher, follow the steps described in Using alternative search algorithms.
  • Parameterization of the planner algorithm is possible via the hinting mechanism. In the current release three hint keys are provided for this purpose in the org.eclipse.incquery.runtime.localsearch.matcher.integration.LocalSearchHintKeys class:
    • USE_BASE_INDEX: allow/disallow the usage of the index. Its value may be true or false. Currently the default is true.
    • ALLOW_INVERSE_NAVIGATION: allow/disallow inverse navigation along EReferences without an EOpposite. Its value may be true or false. Currently the default is true.
    • PLANNER_TABLE_ROW_COUNT: An internal parameter, bigger values often mean longer plan generation times, and potentially search plans with lower cost. Its value may be a positive int, the default is 4 in this release.

For example, to disable the use of base index, provide a hint with the key USE_BASE_INDEX with value false:

IQuerySpecification<?> specification = ...;
HashMap<String, Object> mapForHint = Maps.<String, Object>newHashMap();
mapForHint.put(LocalSearchHintKeys.USE_BASE_INDEX,false);
// Other hints may be added to the map here
QueryEvaluationHint hint = new QueryEvaluationHint(LocalSearchBackend.class, mapForHint);
AdvancedIncQueryEngine.from(engine).getMatcher(specification, hint);

Surrogate query support

Surrogate queries in 1.0 were registered using an extension defined in org.eclipse.incquery.patternlanguage.emf plug-in. However, this proved problematic as this causes surrogate registration depending on the patternlanguage.emf plug-in.

To handle this issue, another extension definition was created in org.eclipse.incquery.runtime, and the old version is deprecated. Every user of the surrogate query extension should migrate to the new version. There are no syntactic or semantic changes in the new version. For compatibility reason, both the new and the old extensions are considered for loading.

Maven builder enhancements

When running the IncQuery Maven plugin, you might get an error saying Cyclic linking detected (see bug 464120). A workaround has been introduced for this in 1.1: see https://wiki.eclipse.org/EMFIncQuery/UserDocumentation/Build#Cyclic_linking for details.

Dependency changes

  • removed re-exports of Guava and some other plugins (Xtext and related libraries)

Bug fixes

See https://projects.eclipse.org/projects/modeling.incquery/releases/1.1.0/bugs for a full list.

Back to the top