Files
secondo/bin/examplenestedhtml/query2html.sec

115 lines
3.0 KiB
Plaintext
Raw Permalink Normal View History

2026-01-23 17:03:45 +08:00
# handling subrelation Places
delete FieldNames
delete prefix;
delete per_tuple;
delete postfix;
delete Markups_Places
delete FinalMarkup_Places
delete TEMP1
let FieldNames = TABLE() feed
project[Places] unnest[Places]
addcounter[XXXNo, 1] toFields[XXXNo] project[Field]
sort rdup consume
let prefix = ' ';
let per_tuple = 'Licence: <<Licence>>, Name: <<Name>>, Phone: <<Phone>>, Population: <<Population>>
<p>';
let postfix = ' ';
let Markups_Places =
FieldNames feed
extendstream[Start: find(per_tuple, "<<" + .Field + ">>")]
extend[End: .Start + length(.Field) + 3]
sortby[Start]
extend_last[StartMarkup: ..End + 1 :: 1]
extend[EndMarkup: .Start - 1]
extend[Markup: subtext(per_tuple, .StartMarkup, .EndMarkup)]
project[Field, StartMarkup, EndMarkup, Start, End, Markup]
consume
let FinalMarkup_Places = subtext(per_tuple, Markups_Places feed max[End] + 1, length(per_tuple))
let TEMP1 =
TABLE() feed addcounter[NoTop, 1] remove[Places]
TABLE() feed addcounter[NoTop, 1]
project[NoTop, Places]
unnest[Places]
addcounter[NoPlaces, 1]
extend[XXXNo: (.NoTop * 1000) + .NoPlaces]
toFields[XXXNo]
Markups_Places feed project[Field, Markup, StartMarkup] {mu}
hashjoin[Field, Field_mu]
extend[Field2: .Markup_mu + .Value]
sortby[XXXNo, StartMarkup_mu]
groupby[XXXNo; Page: group feed
aggregateB[Field2; fun(t1: text, t2: text) t1 + t2; '']
+ FinalMarkup_Places + nl]
extend[NoTop: .XXXNo div 1000, NoPlaces: .XXXNo mod 1000]
groupby[NoTop; Places: prefix + group feed
aggregateB[Page; fun(t3: text, t4: text) t3 + t4; ''] + postfix] {f}
mergejoin[NoTop, NoTop_f]
remove[NoTop, NoTop_f]
consume
# handling the top level
delete FieldNames
delete prefix;
delete per_tuple;
delete postfix;
delete Markups
delete FinalMarkup
let FieldNames = TEMP1 feed
addcounter[XXXNo, 1] toFields[XXXNo] project[Field]
sort rdup consume
let prefix = readFile(PATH + 'prefix.html');
let per_tuple = readFile(PATH + 'per_tuple.html');
let postfix = readFile(PATH + 'postfix.html');
let Markups =
FieldNames feed
extendstream[Start: find(per_tuple, "<<" + .Field + ">>")]
extend[End: .Start + length(.Field) + 3]
sortby[Start]
extend_last[StartMarkup: ..End + 1 :: 1]
extend[EndMarkup: .Start - 1]
extend[Markup: subtext(per_tuple, .StartMarkup, .EndMarkup)]
project[Field, StartMarkup, EndMarkup, Start, End, Markup]
consume
let FinalMarkup = subtext(per_tuple, Markups feed max[End] + 1, length(per_tuple))
query TEMP1 feed
addcounter[XXXNo, 1]
toFields[XXXNo]
nest[XXXNo; Row]
extend[Page:
.Row afeed Markups feed {mu} hashjoin[Field, Field_mu]
sortby[StartMarkup_mu]
extend[Field2: .Markup_mu + .Value]
aggregateB[Field2; fun(t1: text, t2: text) t1 + t2; ''] + FinalMarkup]
aggregateB[Page; fun(t3: text, t4: text) t3 + t4; '']
within[writeFile(prefix + . recode["latin1", "utf8"] + postfix, PATH + 'result.html')]