Fix enrichment stringification
Change-Id: I8d45ea6b433ffe28951100f81ecb83a3679145b2
diff --git a/lib/Krawfish/Compile/Segment/Enrich/Fields.pm b/lib/Krawfish/Compile/Segment/Enrich/Fields.pm
index 91b0c07..9836319 100644
--- a/lib/Krawfish/Compile/Segment/Enrich/Fields.pm
+++ b/lib/Krawfish/Compile/Segment/Enrich/Fields.pm
@@ -163,8 +163,9 @@
# Stringification
sub to_string {
- my $str = 'eFields(' . join(',', @{$_[0]->{fields}}) . ':';
- $str .= $_[0]->{query}->to_string;
+ my ($self, $id) = @_;
+ my $str = 'eFields(' . join(',', map { '#' . $_ } @{$_[0]->{fields}}) . ':';
+ $str .= $_[0]->{query}->to_string($id);
return $str . ')';
};
diff --git a/t/compile/segment/enrich_corpus_classes.t b/t/compile/segment/enrich_corpus_classes.t
index 69aec04..da5256b 100644
--- a/t/compile/segment/enrich_corpus_classes.t
+++ b/t/compile/segment/enrich_corpus_classes.t
@@ -82,7 +82,7 @@
# This is a query that is fine to be send to nodes
is($query->to_string(1),
- 'eCorpusClasses(24576:eFields(1:filter(#12,or(class(1:#8),class(2:span(#10))))))',
+ 'eCorpusClasses(24576:eFields(#1:filter(#12,or(class(1:#8),class(2:span(#10))))))',
'Stringification');
ok($query->next, 'Next');
diff --git a/t/index/node.t b/t/index/node.t
index b753b05..3ce0613 100644
--- a/t/index/node.t
+++ b/t/index/node.t
@@ -73,13 +73,14 @@
ok(my $seg_q_1 = $node_q->optimize($index->segment(0)), 'Run on index 1');
ok(my $seg_q_2 = $node_q->optimize($index->segment(1)), 'Run on index 2');
+# No segment specific optimization
is($seg_q_1->to_string(1),
- 'eFields(2:or(constr(pos=2:#10,filter(#12,[1])),constr(pos=2:#10,filter(#14,[1]))))',
+ 'eFields(#2:or(constr(pos=2:#10,filter(#12,[1])),constr(pos=2:#10,filter(#14,[1]))))',
'Stringification 1');
-# There is no 'cc' in segment 1
+# There is no 'cc' in segment 1 - removed
is($seg_q_2->to_string(1),
- 'eFields(2:constr(pos=2:#10,filter(#12,[1])))',
+ 'eFields(#2:constr(pos=2:#10,filter(#12,[1])))',
'Stringification 2');
is($seg_q_1->compile->inflate($index->dict)->to_string,
diff --git a/t/query/clone.t b/t/query/clone.t
index 48be087..24f9401 100644
--- a/t/query/clone.t
+++ b/t/query/clone.t
@@ -165,7 +165,7 @@
ok($query = $query->identify($index->dict)->optimize($index->segment), 'Query generation');
is($query->to_string,
- 'eCorpusClasses(6144:eFields(2:aggr([length,freq,fields:#3,values:#2]:filter(#8,[1]))))',
+ 'eCorpusClasses(6144:eFields(#2:aggr([length,freq,fields:#3,values:#2]:filter(#8,[1]))))',
'Stringification');
ok($clone = $query->clone, 'Cloning');