That's not what I asked.   I was asking what is the difference between the various seemingly similar settings of:

'spark.sql.shuffle.partitions=auto',

AQE, and 

spark.databricks.adaptive.autoOptimizeShuffle.enabled