public TableStats merge(TableStats other, @Nullable Set<String> partitionKeys) {
        if (this.rowCount < 0 || other.rowCount < 0) {
            return TableStats.UNKNOWN;
        }
        long rowCount =
                this.rowCount >= 0 && other.rowCount >= 0
                        ? this.rowCount + other.rowCount
                        : UNKNOWN.rowCount;
        return new TableStats(rowCount, mergeColumnStates(other, partitionKeys));
    }
@Test
    void testMergeUnknownRowCount() {
        TableStats stats1 = new TableStats(-1, new HashMap<>());
        TableStats stats2 = new TableStats(32, new HashMap<>());
        assertThat(stats1.merge(stats2, null)).isEqualTo(TableStats.UNKNOWN);

        stats1 = new TableStats(-1, new HashMap<>());
        stats2 = new TableStats(-1, new HashMap<>());
        assertThat(stats1.merge(stats2, null)).isEqualTo(TableStats.UNKNOWN);

        stats1 = new TableStats(-3, new HashMap<>());
        stats2 = new TableStats(-2, new HashMap<>());
        assertThat(stats1.merge(stats2, null)).isEqualTo(TableStats.UNKNOWN);
    }