def __get_rows(self, request, data): table = actions._get_table(data["schema"], table=data["table"]) params = {} params_count = 0 columns = data.get("columns") if not columns: query = table.select() else: columns = [actions.get_column_obj(table, c) for c in columns] query = sqla.select(columns=columns) where_clauses = data.get("where") if where_clauses: query = query.where(parser.parse_condition(where_clauses)) orderby = data.get("orderby") if orderby: if isinstance(orderby, list): query = query.order_by(*map(parser.parse_expression, orderby)) elif isinstance(orderby, str): query = query.order_by(orderby) else: raise APIError("Unknown order_by clause: " + orderby) limit = data.get("limit") if limit and limit.isdigit(): query = query.limit(int(limit)) offset = data.get("offset") if offset and offset.isdigit(): query = query.offset(int(offset)) cursor = sessions.load_cursor_from_context(request.data) actions._execute_sqla(query, cursor)
def __get_rows(self, request, data): table = actions._get_table(data['schema'], table=data['table']) params = {} params_count = 0 columns = data.get('columns') if not columns: query = table.select() else: columns = [getattr(table.c, c) for c in columns] query = sqla.select(columns=columns) where_clauses = data.get('where') if where_clauses: query = query.where(parser.parse_condition(where_clauses)) orderby = data.get('orderby') if orderby: if isinstance(orderby, list): query = query.order_by(*map(parser.parse_expression, orderby)) elif isinstance(orderby, str): query = query.order_by(orderby) else: raise APIError('Unknown order_by clause: ' + orderby) limit = data.get('limit') if limit and limit.isdigit(): query = query.limit(int(limit)) offset = data.get('offset') if offset and offset.isdigit(): query = query.offset(int(offset)) cursor = sessions.load_cursor_from_context(request.data) actions._execute_sqla(query, cursor)