/*
 * Description    : Fuzzy joins two datasets, DBLP and CSX, based on ~= using Jaccard their titles' 3-gram tokens.
 *                  CSX has a 3-gram index on title, and we expect the join to be transformed into an indexed nested-loop join.
 * Success        : Yes
 */

drop dataverse test if exists;
create dataverse test;
use dataverse test;

create type DBLPType as closed {
  id: int32, 
  dblpid: string,
  title: string,
  authors: string,
  misc: string
}

create type CSXType as closed {
  id: int32, 
  csxid: string,
  title: string,
  authors: string,
  misc: string
}

create dataset DBLP(DBLPType) partitioned by key id;

create dataset CSX(CSXType) partitioned by key id;

create index ngram_index on CSX(title) type ngram(3);

write output to nc1:"rttest/inverted-index-join_ngram-fuzzyeq-jaccard_02.adm";

set simfunction 'jaccard';
set simthreshold '0.5f';

for $a in dataset('DBLP')
for $b in dataset('CSX')
where gram-tokens($a.title, 3, false) ~= gram-tokens($b.title, 3, false) and $a.id < $b.id
return {"arec": $a, "brec": $b }