spark 3 adaptive query execution