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 8: Line 8:
  
 
* Improved planner algorithm and bugfixes
 
* Improved planner algorithm and bugfixes
* To use the local search-based algorithm in a matcher, follow the steps described in [https://wiki.eclipse.org/EMFIncQuery/UserDocumentation/API/Advanced#Using_alternative_search_algorithms Using alternative search algorithms].
+
* To use the local search-based algorithm in a matcher, follow the steps described in [[EMFIncQuery/UserDocumentation/API/Advanced#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 <code>org.eclipse.incquery.runtime.localsearch.matcher.integration.LocalSearchHintKeys</code> class:
+
* It is possible to parameterize the search plan generation using a set of hints. These options include the usage of the Base index or an option to fine-tune planning time. For details, see [[EMFIncQuery/UserDocumentation/API/Advanced#Parameterizing_local_search]]
** USE_BASE_INDEX: allow/disallow the usage of the index. Its value may be <code>true</code> or <code>false</code>. Currently the default is <code>true</code>.
+
** ALLOW_INVERSE_NAVIGATION: allow/disallow inverse navigation along EReferences without an EOpposite. Its value may be <code>true</code> or <code>false</code>. Currently the default is <code>true</code>.
+
** 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 <code>int</code>, 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 <code>false</code>:
+
<source lang="java">
+
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);
+
</source>
+
  
 
== Surrogate query support ==
 
== Surrogate query support ==

Revision as of 08:30, 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

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