def _get_rv_by_sql_ast(self, sql_ast, cursor: Optional[OLOCursor]=None):
    if (cursor is not None):
        cursor.ast_execute(sql_ast)
        return cursor.fetchall()
    with self.db.transaction():
        return self.db.ast_execute(sql_ast)
def _get_rv_by_sql_ast(self, sql_ast, cursor: Optional[OLOCursor]=None):
    if (cursor is not None):
        cursor.ast_execute(sql_ast)
        return cursor.fetchall()
    with self.db.transaction():
        return self.db.ast_execute(sql_ast)