All these changes have a huge impact on the way the database query optimizer works. Having user-defined functions deep in- side the query plans makes cost estimation problematic. Having real data with high skew has always been problematic, but in this new world the relational operators are just the outer loop of a non- procedural program that should be executed with the least cost and in parallel. Cost-based static-plan optimizers continue.