// Request creation
        private GetRequest CreateGetTableRequest(TableReference tableReference, GetTableOptions options)
        {
            GaxPreconditions.CheckNotNull(tableReference, nameof(tableReference));

            var request = Service.Tables.Get(tableReference.ProjectId, tableReference.DatasetId, tableReference.TableId);

            options?.ModifyRequest(request);
            RetryHandler.MarkAsRetriable(request);
            return(request);
        }
        /// <inheritdoc />
        public override BigQueryTable GetTable(TableReference tableReference, GetTableOptions options = null)
        {
            GaxPreconditions.CheckNotNull(tableReference, nameof(tableReference));

            var request = Service.Tables.Get(tableReference.ProjectId, tableReference.DatasetId, tableReference.TableId);

            options?.ModifyRequest(request);
            var resource = request.Execute();

            return(new BigQueryTable(this, resource));
        }
        /// <inheritdoc />
        public override async Task <BigQueryTable> GetTableAsync(TableReference tableReference, GetTableOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            GaxPreconditions.CheckNotNull(tableReference, nameof(tableReference));

            var request = Service.Tables.Get(tableReference.ProjectId, tableReference.DatasetId, tableReference.TableId);

            options?.ModifyRequest(request);
            var resource = await request.ExecuteAsync(cancellationToken).ConfigureAwait(false);

            return(new BigQueryTable(this, resource));
        }