Project

General

Profile

Actions

Bug #5776

closed

View intersection optimization in Lavoisier 2

Added by FORESTIER Flavien almost 8 years ago. Updated almost 8 years ago.

Status:
Resolved
Priority:
Low
Assigned To:
Category:
Engine
Target version:
-
Start date:
01/09/2014
Due date:
% Done:

100%

Estimated time:

Description

Hello,

I had a view in Lavoisier 1 that made an intersection between 2 views on VA : /result/row/HOST = VB : /result/row/HOST
and VA : /result/row/PATH = VB : /result/row/PATH.
The view has been updated to Lavoisier 2 using the Lavoisier update tool.

Here is the result of the update

@ <connector type="XMLConnector">
<parameter name="content"
eval="view('white_list_ces_rate_sub_view', arguments()[@key='vo' or @key='minDate' or @key='minRate'])"/>
</connector>
<processors>
<insert match="/result/row[*]"
nodes="view('white_list_ces_last_n_tests_sub_view', arguments()/self::*[key='vo' or @key='nbOk' or @key='dateLastTest'])
/result/row[HOST=match()/HOST and PATH=match()/PATH]"/>
</processors>

The update works and give the expected result.
But the problem is that in the update view the VB view is generated at each line of the VA view and then the processing time is very long : 2/3 minutes.

Could you please tell me how to modify the Lavoisier 2 view to build the intersection by generating once only each of the 2 intersected views.

By advance, thanks
Flavien Forestier

Actions #1

Updated by Reynaud Sylvain almost 8 years ago

  • Category set to Engine
  • Status changed from New to Resolved
  • Assigned To set to Reynaud Sylvain
  • % Done changed from 0 to 100
The optimizer was not smart enough to distinguish between the followings:
  • result of function view() can NOT be reused:
    arguments()/self::*[view('v', @key)/*/text()='vo']
  • result of function view() can be reused:
    view('v', arguments()/self::*[@key='vo'])
Actions

Also available in: Atom PDF