The `CreateTableAsSelect` is designed as a common logical plan node, that's why I made the `desc` as `T`, and also the optional parameter. Otherwise, every SQL dialect will implements it's own `CTAS` node(logical plan). Or is the `CreateTableUsingAsSelect` a more generic interface for the same purpose? 