All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.alipay.oceanbase.rpc.stream.QueryResultSet Maven / Gradle / Ivy

/*-
 * #%L
 * OBKV Table Client Framework
 * %%
 * Copyright (C) 2021 OceanBase
 * %%
 * OBKV Table Client Framework is licensed under Mulan PSL v2.
 * You can use this software according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of Mulan PSL v2 at:
 *          http://license.coscl.org.cn/MulanPSL2
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PSL v2 for more details.
 * #L%
 */

package com.alipay.oceanbase.rpc.stream;

import com.alipay.oceanbase.rpc.mutation.Row;
import com.alipay.oceanbase.rpc.protocol.payload.impl.ObObj;
import com.alipay.oceanbase.rpc.protocol.payload.impl.execute.QueryStreamResult;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class QueryResultSet {
    private final QueryStreamResult queryStreamResult;

    /*
     * Query result set.
     */
    public QueryResultSet(QueryStreamResult queryStreamResult) {
        this.queryStreamResult = queryStreamResult;
    }

    public QueryStreamResult getQueryStreamResult() {
        return queryStreamResult;
    }

    /*
     * Next.
     */
    public boolean next() throws Exception {
        return queryStreamResult.next();
    }

    public Map getRow() {
        List propertiesNames = queryStreamResult.getCacheProperties();
        List row = queryStreamResult.getRow();
        // TODO check row.size == propertiesNames.size()
        Map rowValue = new HashMap();
        for (int i = 0; i < row.size(); i++) {
            rowValue.put(propertiesNames.get(i), row.get(i).getValue());
        }
        return rowValue;
    }

    /*
     * get Row with Row result
     */
    public Row getResultRow() {
        return new Row(getRow());
    }

    /*
     * Cache size.
     */
    public int cacheSize() {
        return queryStreamResult.getCacheRows().size();
    }

    /*
     * Close.
     */
    public void close() throws Exception {
        queryStreamResult.close();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy