#!/usr/bin/perl -w

# this is an ugly and slow hack - be warned!

use Getopt::Std;
use Relation::Tools qw(read_nosql read_tsv read_file header);
use strict;
use vars qw/$opt_f/;

getopts("f");

my %fields;
my @fields;
my %reader;

for my $file (@ARGV) {
	if (-z $file) { warn "$file is empty\n"; next }
	my $fields;
	($reader{$file}, $fields) = read_nosql(read_tsv(read_file($file)));
	for my $field (@$fields) {
		$fields{$field}++ or push @fields, $field;
	}
}
header($opt_f ? ("filename") : (), @fields);
for my $file (@ARGV) {
	-z $file and next;
	my $namefilter = '';
	if ($opt_f) { $namefilter = '| perl -pe "s/^/'.quotemeta($file).'\t/"'; }
	system "nosql column -N @fields < $file $namefilter";
}
