SELECT tbl::TEXT, HASH(tbl::TEXT), MD5(tbl::TEXT) FROM tbl; D create table tbl as (select 1 as a, 2 as b, 3 as c); D select tbl::text, hash(tbl::text), md5(tbl::text) from tbl; ┌──────────────────────────┬────────────────────────────┬──────────────────────────────────┐ │ CAST(tbl AS VARCHAR) │ hash(CAST(tbl AS VARCHAR)) │ md5(CAST(tbl AS VARCHAR)) │ │ varchar │ uint64 │ varchar │ ├──────────────────────────┼────────────────────────────┼──────────────────────────────────┤ │ {'a': 1, 'b': 2, 'c': 3} │ 6764392534128998287 │ e31681d6e7ab078c9679fcd4f50136eb │ └──────────────────────────┴────────────────────────────┴──────────────────────────────────┘ The text of rows can be aggregated and hashed to a single value, unknown if there are limits to how many rows (string size) this can support: SELECT md5(string_agg(tbl::text, '')) FROM tbl;