word: store data entries as prepared subarrays
[sheet.git] / tools / mkwordlist
index 3c5aac907ecc69b0fcaf46d97314d95176080599..78859b4a09cb2a0cb48dd39c5f7a1edddd90a5ca 100755 (executable)
@@ -10,10 +10,17 @@ my $db = Shiar_Sheet::DB->connect;
 say 'use utf8;';
 
 use Data::Dump 'pp';
+my %rows;
 if (my $lang = shift @ARGV) {
        my %filter = (lang => $lang);
-       say pp({ $db->select('_word_ref w' => "ref, exportform(row(w.*))", \%filter)->map })
+       my $cols = "ref, id, prio, array_to_string(form || alt, '/')";
+       %rows = $db->select(_word_ref => $cols, \%filter)->map_arrays;
+       say pp \%rows
                =~ s/\\x\{([0-9A-F]+)\}/chr hex $1/ger;
        exit;
 }
-say pp { $db->select(_cat_words => "coalesce(id::text, ''), forms")->map };
+else {
+       %rows = $db->select(_cat_words => "coalesce(id::text, ''), forms")->map;
+       $_ = [ map { [split /:/, $_, 3] } @{$_} ] for values %rows;
+       say pp \%rows;
+}