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

tech.ydb.table.rpc.TableRpc Maven / Gradle / Ivy

package tech.ydb.table.rpc;

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ScheduledExecutorService;

import tech.ydb.core.Result;
import tech.ydb.core.Status;
import tech.ydb.core.grpc.GrpcReadStream;
import tech.ydb.core.grpc.GrpcRequestSettings;
import tech.ydb.proto.table.YdbTable.AlterTableRequest;
import tech.ydb.proto.table.YdbTable.BeginTransactionRequest;
import tech.ydb.proto.table.YdbTable.BeginTransactionResult;
import tech.ydb.proto.table.YdbTable.BulkUpsertRequest;
import tech.ydb.proto.table.YdbTable.CommitTransactionRequest;
import tech.ydb.proto.table.YdbTable.CopyTableRequest;
import tech.ydb.proto.table.YdbTable.CopyTablesRequest;
import tech.ydb.proto.table.YdbTable.CreateSessionRequest;
import tech.ydb.proto.table.YdbTable.CreateSessionResult;
import tech.ydb.proto.table.YdbTable.CreateTableRequest;
import tech.ydb.proto.table.YdbTable.DeleteSessionRequest;
import tech.ydb.proto.table.YdbTable.DescribeTableRequest;
import tech.ydb.proto.table.YdbTable.DescribeTableResult;
import tech.ydb.proto.table.YdbTable.DropTableRequest;
import tech.ydb.proto.table.YdbTable.ExecuteDataQueryRequest;
import tech.ydb.proto.table.YdbTable.ExecuteQueryResult;
import tech.ydb.proto.table.YdbTable.ExecuteScanQueryPartialResponse;
import tech.ydb.proto.table.YdbTable.ExecuteScanQueryRequest;
import tech.ydb.proto.table.YdbTable.ExecuteSchemeQueryRequest;
import tech.ydb.proto.table.YdbTable.ExplainDataQueryRequest;
import tech.ydb.proto.table.YdbTable.ExplainQueryResult;
import tech.ydb.proto.table.YdbTable.KeepAliveRequest;
import tech.ydb.proto.table.YdbTable.KeepAliveResult;
import tech.ydb.proto.table.YdbTable.PrepareDataQueryRequest;
import tech.ydb.proto.table.YdbTable.PrepareQueryResult;
import tech.ydb.proto.table.YdbTable.ReadRowsRequest;
import tech.ydb.proto.table.YdbTable.ReadRowsResponse;
import tech.ydb.proto.table.YdbTable.ReadTableRequest;
import tech.ydb.proto.table.YdbTable.ReadTableResponse;
import tech.ydb.proto.table.YdbTable.RenameTablesRequest;
import tech.ydb.proto.table.YdbTable.RollbackTransactionRequest;


/**
 * @author Sergey Polovko
 */
public interface TableRpc extends AutoCloseable {

    String getDatabase();

    ScheduledExecutorService getScheduler();

    @Override
    void close();


    /**
     * Create new session. Implicit session creation is forbidden, so user must create new session
     * before execute any query, otherwise BAD_SESSION status wil be returned. Simultaneous execution
     * of requests are forbidden. Sessions are volatile, can be invalidated by server, e.g. in case
     * of fatal errors. All requests with this session will fail with BAD_SESSION status.
     * So, client must be able to handle BAD_SESSION status.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with id of new session
     */
    CompletableFuture> createSession(CreateSessionRequest request,
                                                                   GrpcRequestSettings settings);

    /**
     * Ends a session, releasing server resources associated with it.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with status of operation
     */
    CompletableFuture deleteSession(DeleteSessionRequest request, GrpcRequestSettings settings);

    /**
     * Idle sessions can be kept alive by calling KeepAlive periodically.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with result of operation
     */
    CompletableFuture> keepAlive(KeepAliveRequest request, GrpcRequestSettings settings);

    /**
     * Creates new table.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with status of operation
     */
    CompletableFuture createTable(CreateTableRequest request, GrpcRequestSettings settings);

    /**
     * Drop table.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with status of operation
     */
    CompletableFuture dropTable(DropTableRequest request, GrpcRequestSettings settings);

    /**
     * Modifies schema of given table.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with status of operation
     */
    CompletableFuture alterTable(AlterTableRequest request, GrpcRequestSettings settings);

    /**
     * Creates copy of given table.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with status of operation
     */
    CompletableFuture copyTable(CopyTableRequest request, GrpcRequestSettings settings);

    /**
     * Creates consistent copies of the given tables.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with status of operation
     */
    CompletableFuture copyTables(CopyTablesRequest request, GrpcRequestSettings settings);

    /**
     * Renames the given tables, possibly replacing the existing destination tables.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with status of operation
     */
    CompletableFuture renameTables(RenameTablesRequest request, GrpcRequestSettings settings);

    /**
     * Returns information about given table (metadata).
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with result of operation
     */
    CompletableFuture> describeTable(DescribeTableRequest request,
            GrpcRequestSettings settings);

    /**
     * Explains data query.
     * SessionId of previously created session must be provided.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with result of operation
     */
    CompletableFuture> explainDataQuery(ExplainDataQueryRequest request,
            GrpcRequestSettings settings);

    /**
     * Prepares data query, returns query id.
     * SessionId of previously created session must be provided.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with result of operation
     */
    CompletableFuture> prepareDataQuery(PrepareDataQueryRequest request,
            GrpcRequestSettings settings);

    /**
     * Executes data query.
     * SessionId of previously created session must be provided.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with result of operation
     */
    CompletableFuture> executeDataQuery(ExecuteDataQueryRequest request,
            GrpcRequestSettings settings);

    /**
     * Read rows in the key-value form.
     * SessionId of previously created session must be provided.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with result set
     */
    CompletableFuture> readRows(ReadRowsRequest request,
            GrpcRequestSettings settings);

    /**
     * Executes scheme query.
     * SessionId of previously created session must be provided.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with status of operation
     */
    CompletableFuture executeSchemeQuery(ExecuteSchemeQueryRequest request,
            GrpcRequestSettings settings);

    /**
     * Begins new transaction.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with result of operation
     */
    CompletableFuture> beginTransaction(BeginTransactionRequest request,
            GrpcRequestSettings settings);

    /**
     * Commits specified active transaction.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with status of operation
     */
    CompletableFuture commitTransaction(CommitTransactionRequest request,
            GrpcRequestSettings settings);

    /**
     * Performs a rollback of the specified active transaction.
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with status of operation
     */
    CompletableFuture rollbackTransaction(RollbackTransactionRequest request,
            GrpcRequestSettings settings);

    /**
     * Streaming read table.
     * @param request request proto
     * @param settings rpc call settings
     * @return GrpcReadStream object that allows to start and cancel the stream
     */
    GrpcReadStream streamReadTable(ReadTableRequest request, GrpcRequestSettings settings);

    /**
     * Streaming execute scan query.
     * @param request request proto
     * @param settings rpc call settings
     * @return GrpcReadStream object that allows to start and  cancel the stream
     */
    GrpcReadStream streamExecuteScanQuery(ExecuteScanQueryRequest request,
            GrpcRequestSettings settings);

    /**
     * Execute bulk upsert
     * @param request request proto
     * @param settings rpc call settings
     * @return completable future with status of operation
     */
    CompletableFuture bulkUpsert(BulkUpsertRequest request, GrpcRequestSettings settings);
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy