/// <inheritdoc />
        public override BigqueryTable CreateTable(TableReference tableReference, TableSchema schema, CreateTableOptions options = null)
        {
            GaxPreconditions.CheckNotNull(tableReference, nameof(tableReference));

            var table = new Table {
                TableReference = tableReference, Schema = schema
            };
            var request = Service.Tables.Insert(table, tableReference.ProjectId, tableReference.DatasetId);

            options?.ModifyRequest(table, request);
            var result = request.Execute();

            return(new BigqueryTable(this, result));
        }
        /// <inheritdoc />
        public override async Task <BigqueryTable> CreateTableAsync(TableReference tableReference, TableSchema schema,
                                                                    CreateTableOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            GaxPreconditions.CheckNotNull(tableReference, nameof(tableReference));

            var table = new Table {
                TableReference = tableReference, Schema = schema
            };
            var request = Service.Tables.Insert(table, tableReference.ProjectId, tableReference.DatasetId);

            options?.ModifyRequest(table, request);
            var result = await request.ExecuteAsync(cancellationToken).ConfigureAwait(false);

            return(new BigqueryTable(this, result));
        }