private Long getMessageCreateTimeFromSecondaryIndex()

in java/core/src/main/java/com/aliyun/openservices/tablestore/agent/memory/MemoryStoreImpl.java [864:896]


    private Long getMessageCreateTimeFromSecondaryIndex(String sessionId, String messageId) {
        PrimaryKey start = PrimaryKeyBuilder.createPrimaryKeyBuilder()
            .addPrimaryKeyColumn(Message.MESSAGE_SESSION_ID, PrimaryKeyValue.fromString(sessionId))
            .addPrimaryKeyColumn(Message.MESSAGE_MESSAGE_ID, PrimaryKeyValue.fromString(messageId))
            .addPrimaryKeyColumn(Message.MESSAGE_CREATE_TIME, PrimaryKeyValue.INF_MIN)
            .build();

        PrimaryKey end = PrimaryKeyBuilder.createPrimaryKeyBuilder()
            .addPrimaryKeyColumn(Message.MESSAGE_SESSION_ID, PrimaryKeyValue.fromString(sessionId))
            .addPrimaryKeyColumn(Message.MESSAGE_MESSAGE_ID, PrimaryKeyValue.fromString(messageId))
            .addPrimaryKeyColumn(Message.MESSAGE_CREATE_TIME, PrimaryKeyValue.INF_MAX)
            .build();
        TablestoreHelper.GetRangeIterator<Message> iterator = new TablestoreHelper.GetRangeIterator<>(
            client,
            messageSecondaryIndexName,
            TablestoreHelper::rowToMessage,
            start,
            end,
            null,
            Order.ASC,
            null,
            null,
            null
        );
        List<Message> messages = CollectionUtil.toList(iterator);
        if (messages.size() == 1) {
            return messages.get(0).getCreateTime();
        } else if (messages.size() > 1) {
            throw Exceptions.illegalArgument("message is not unique, sessionId:%s, messageId:%s, details messages:[%s]", sessionId, messageId, messages);
        } else {
            return null;
        }
    }