コード例 #1
0
    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:
            for clause in where_clauses:
                first = getattr(table.c, clause['left']['column'])
                second = clause['right']
                operator = parser.parse_sqla_operator(clause['operator'], first, second)
                query = query.where(operator)

        orderby = data.get('orderby')
        if orderby:
            query = query.order_by(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 = actions._load_cursor(request.data['cursor_id'])
        actions._execute_sqla(query, cursor)
コード例 #2
0
ファイル: views.py プロジェクト: sashatankov/oeplatform
    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)
コード例 #3
0
ファイル: views.py プロジェクト: knut0815/oeplatform
    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)