Cloud Spanner Client - Class QueryPartition (1.60.0)

Reference documentation and code samples for the Cloud Spanner Client class QueryPartition.

Represents a Query Partition.

Partitions can be shared with other servers or processes by casting the object to a string, or by calling Google\Cloud\Spanner\Batch\Google\Cloud\Spanner\Batch\QueryPartition::serialize().

Note that when reading or querying against a partition, the request MUST be made using the same Batch Snapshot with which the partition was initialized. In practice, this means that a shared partition must be accompanied by its corresponding snapshot. For more information, refer to usage notes on Google\Cloud\Spanner\Batch\Google\Cloud\Spanner\Batch\BatchClient.

Example:

use Google\Cloud\Spanner\SpannerClient;

$spanner = new SpannerClient();
$batch = $spanner->batch('instance-id', 'database-id');
$snapshot = $batch->snapshot();

$partitions = $snapshot->partitionQuery(
    'SELECT * FROM Users WHERE firstName = @firstName AND location = @location',
    [
        'parameters' => [
            'firstName' => 'John',
            'location' => 'USA'
        ]
    ]
);
// Serialize a partition to share it with another worker.
$partitionString = (string) $partition;
// Calling QueryPartition::serialize() has the same effect.
$partitionString = $partition->serialize();

Methods

__construct

Parameters
NameDescription
token string

The token identifying the partition.

sql string

The query string to execute.

options array

Configuration Options

↳ maxPartitions int

The desired maximum number of partitions to return. For example, this may be set to the number of workers available. The maximum value is currently 200,000. This is only a hint. The actual number of partitions returned may be smaller than this maximum count request. Defaults to 10000.

↳ partitionSizeBytes int

The desired data size for each partition generated. This is only a hint. The actual size of each partition may be smaller or larger than this size request. Defaults to 1000000000 (i.e. 1 GiB).

↳ parameters array

A key/value array of Query Parameters, where the key is represented in the query string prefixed by a @ symbol.

↳ types array

A key/value array of Query Parameter types. Generally, Google Cloud PHP can infer types. Explicit type definitions are only necessary for null parameter values. Accepted values are defined as constants on Google\Cloud\Spanner\Batch\Google\Cloud\Spanner\ValueMapper, and are as follows: Database::TYPE_BOOL, Database::TYPE_INT64, Database::TYPE_FLOAT64, Database::TYPE_TIMESTAMP, Database::TYPE_DATE, Database::TYPE_STRING, Database::TYPE_BYTES, Database::TYPE_ARRAY and Database::TYPE_STRUCT. If the parameter type is an array, the type should be given as an array, where the first element is Database::TYPE_ARRAY and the second element is the array type, for instance [Database::TYPE_ARRAY, Database::TYPE_INT64].

sql

Returns the SQL query string.

Example:

$sql = $partition->sql();
Returns
TypeDescription
string

serialize

Return a stringified representation of the QueryPartition object.

Example:

$partitionString = $partition->serialize();
Returns
TypeDescription
string

static::hydrate

Create a QueryPartition object from a deserialized array of partition data.

Parameter
NameDescription
data array

The partition data.

Returns
TypeDescription
Google\Cloud\Spanner\Batch\QueryPartition