def _run(self, tree):
if tree.throttle:<EOL><INDENT>limiter = self._parse_throttle(tree.table, tree.throttle)<EOL>self._query_rate_limit = limiter<EOL>del tree["<STR_LIT>"]<EOL>return self._run(tree)<EOL><DEDENT>if tree.action == "<STR_LIT>":<EOL><INDENT>return self._select(tree, self.allow_select_scan)<EOL><DEDENT>elif tree.action == "<STR_LIT>":<EOL><INDENT>return self._scan(tree)<EOL><DEDENT>elif tree.action == "<STR_LIT>":<EOL><INDENT>return self._delete(tree)<EOL><DEDENT>elif tree.action == "<STR_LIT>":<EOL><INDENT>return self._update(tree)<EOL><DEDENT>elif tree.action == "<STR_LIT>":<EOL><INDENT>return self._create(tree)<EOL><DEDENT>elif tree.action == "<STR_LIT>":<EOL><INDENT>return self._insert(tree)<EOL><DEDENT>elif tree.action == "<STR_LIT>":<EOL><INDENT>return self._drop(tree)<EOL><DEDENT>elif tree.action == "<STR_LIT>":<EOL><INDENT>return self._alter(tree)<EOL><DEDENT>elif tree.action == "<STR_LIT>":<EOL><INDENT>return self._dump(tree)<EOL><DEDENT>elif tree.action == "<STR_LIT>":<EOL><INDENT>return self._load(tree)<EOL><DEDENT>elif tree.action == "<STR_LIT>":<EOL><INDENT>return self._explain(tree)<EOL><DEDENT>elif tree.action == "<STR_LIT>":<EOL><INDENT>self._analyzing = True<EOL>self.connection.default_return_capacity = True<EOL>return self._run(tree[<NUM_LIT:1>])<EOL><DEDENT>else:<EOL><INDENT>raise SyntaxError("<STR_LIT>" % tree.action)<EOL><DEDENT>
Run a query from a parse tree