all use sql2df instead of db.query