add user_pk to aggregate tables, fix get_data_source bug when limit is -1