#!/bin/bash

findFiles() {
	find /bin/ -print0;
}

fetchAttributes() {
	relpipe-in-filesystem \
		--parallel 4 \
		--file path \
		--file type \
		--file size \
		--streamlet hash;
}

aggregate() {
	relpipe-tr-sql \
		--relation "file_hashes" \
		"SELECT
			path,
			type,
			size,
			sha256,
			count(*) OVER (PARTITION BY sha256) AS same_hash_count
		FROM filesystem
		ORDER BY same_hash_count, sha256, path, type";
}

findFiles | fetchAttributes | aggregate | relpipe-out-tabular
