better use `auto ts = std::make_shared<TableScan>(...)`