Skip to content

Commit

Permalink
feat: publish ProtoRows Message (#7513)
Browse files Browse the repository at this point in the history
* feat: publish the Cloud Bigtable ExecuteQuery API

The ExecuteQuery API will allow users to query Bigtable using SQL
PiperOrigin-RevId: 650660213
Source-Link: googleapis/googleapis@f681f79
Source-Link: googleapis/googleapis-gen@3180845
Copy-Tag: eyJwIjoiQmlndGFibGUvLk93bEJvdC55YW1sIiwiaCI6IjMxODA4NDU0ODcxMzY3OTQ5NTJiOGYzNjVmZTZjNjg2ODk5OWQ5YzAifQ==

* feat: publish ProtoRows Message

This is needed to parse ExecuteQuery responses
PiperOrigin-RevId: 651386373
Source-Link: googleapis/googleapis@a5be6fa
Source-Link: googleapis/googleapis-gen@d467ce8
Copy-Tag: eyJwIjoiQmlndGFibGUvLk93bEJvdC55YW1sIiwiaCI6ImQ0NjdjZTg5M2EwNGM0MWU1MDQ5ODMzNDZjMjE1ZDQxZmQyNjM2NTAifQ==
  • Loading branch information
gcf-owl-bot[bot] authored Jul 12, 2024
1 parent 7277ed1 commit 5feea69
Show file tree
Hide file tree
Showing 45 changed files with 3,934 additions and 3 deletions.
Binary file modified Bigtable/metadata/V2/Bigtable.php
Binary file not shown.
Binary file modified Bigtable/metadata/V2/Data.php
Binary file not shown.
Binary file added Bigtable/metadata/V2/Types.php
Binary file not shown.
83 changes: 83 additions & 0 deletions Bigtable/samples/V2/BigtableClient/execute_query.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
<?php
/*
* Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/*
* GENERATED CODE WARNING
* This file was automatically generated - do not edit!
*/

require_once __DIR__ . '/../../../vendor/autoload.php';

// [START bigtable_v2_generated_Bigtable_ExecuteQuery_sync]
use Google\ApiCore\ApiException;
use Google\ApiCore\ServerStream;
use Google\Cloud\Bigtable\V2\Client\BigtableClient;
use Google\Cloud\Bigtable\V2\ExecuteQueryRequest;
use Google\Cloud\Bigtable\V2\ExecuteQueryResponse;

/**
* Executes a BTQL query against a particular Cloud Bigtable instance.
*
* @param string $formattedInstanceName The unique name of the instance against which the query should be
* executed.
* Values are of the form `projects/<project>/instances/<instance>`
* Please see {@see BigtableClient::instanceName()} for help formatting this field.
* @param string $query The query string.
*/
function execute_query_sample(string $formattedInstanceName, string $query): void
{
// Create a client.
$bigtableClient = new BigtableClient();

// Prepare the request message.
$params = [];
$request = (new ExecuteQueryRequest())
->setInstanceName($formattedInstanceName)
->setQuery($query)
->setParams($params);

// Call the API and handle any network failures.
try {
/** @var ServerStream $stream */
$stream = $bigtableClient->executeQuery($request);

/** @var ExecuteQueryResponse $element */
foreach ($stream->readAll() as $element) {
printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
}
} catch (ApiException $ex) {
printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
}
}

/**
* Helper to execute the sample.
*
* This sample has been automatically generated and should be regarded as a code
* template only. It will require modifications to work:
* - It may require correct/in-range values for request initialization.
* - It may require specifying regional endpoints when creating the service client,
* please see the apiEndpoint client configuration option for more details.
*/
function callSample(): void
{
$formattedInstanceName = BigtableClient::instanceName('[PROJECT]', '[INSTANCE]');
$query = '[QUERY]';

execute_query_sample($formattedInstanceName, $query);
}
// [END bigtable_v2_generated_Bigtable_ExecuteQuery_sync]
67 changes: 67 additions & 0 deletions Bigtable/src/V2/ArrayValue.php

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 23 additions & 0 deletions Bigtable/src/V2/Client/BigtableClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
use Google\Auth\FetchAuthTokenInterface;
use Google\Cloud\Bigtable\V2\CheckAndMutateRowRequest;
use Google\Cloud\Bigtable\V2\CheckAndMutateRowResponse;
use Google\Cloud\Bigtable\V2\ExecuteQueryRequest;
use Google\Cloud\Bigtable\V2\GenerateInitialChangeStreamPartitionsRequest;
use Google\Cloud\Bigtable\V2\MutateRowRequest;
use Google\Cloud\Bigtable\V2\MutateRowResponse;
Expand Down Expand Up @@ -306,6 +307,28 @@ public function checkAndMutateRow(CheckAndMutateRowRequest $request, array $call
return $this->startApiCall('CheckAndMutateRow', $request, $callOptions)->wait();
}

/**
* Executes a BTQL query against a particular Cloud Bigtable instance.
*
* @example samples/V2/BigtableClient/execute_query.php
*
* @param ExecuteQueryRequest $request A request to house fields associated with the call.
* @param array $callOptions {
* Optional.
*
* @type int $timeoutMillis
* Timeout to use for this call.
* }
*
* @return ServerStream
*
* @throws ApiException Thrown if the API call fails.
*/
public function executeQuery(ExecuteQueryRequest $request, array $callOptions = []): ServerStream
{
return $this->startApiCall('ExecuteQuery', $request, $callOptions);
}

/**
* NOTE: This API is intended to be used by Apache Beam BigtableIO.
* Returns the current list of partitions that make up the table's
Expand Down
111 changes: 111 additions & 0 deletions Bigtable/src/V2/ColumnMetadata.php

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 5feea69

Please sign in to comment.