executeStreamingSql method

Future<PartialResultSet> executeStreamingSql (
  1. ExecuteSqlRequest request,
  2. String session,
  3. {String $fields}
)

Like ExecuteSql, except returns the result set as a stream. Unlike ExecuteSql, there is no limit on the size of the returned result set. However, no individual row in the result set can exceed 100 MiB, and no column value can exceed 10 MiB.

request - The metadata request object.

Request parameters:

session - Required. The session in which the SQL query should be performed. Value must have pattern "^projects/^/+/instances/^/+/databases/^/+/sessions/^/+$".

$fields - Selector specifying which fields to include in a partial response.

Completes with a PartialResultSet.

Completes with a commons.ApiRequestError if the API endpoint returned an error.

If the used http.Client completes with an error when making a REST call, this method will complete with the same error.

Implementation

async.Future<PartialResultSet> executeStreamingSql(
    ExecuteSqlRequest request, core.String session,
    {core.String $fields}) {
  var _url;
  var _queryParams = new core.Map<core.String, core.List<core.String>>();
  var _uploadMedia;
  var _uploadOptions;
  var _downloadOptions = commons.DownloadOptions.Metadata;
  var _body;

  if (request != null) {
    _body = convert.json.encode((request).toJson());
  }
  if (session == null) {
    throw new core.ArgumentError("Parameter session is required.");
  }
  if ($fields != null) {
    _queryParams["fields"] = [$fields];
  }

  _url = 'v1/' +
      commons.Escaper.ecapeVariableReserved('$session') +
      ':executeStreamingSql';

  var _response = _requester.request(_url, "POST",
      body: _body,
      queryParams: _queryParams,
      uploadOptions: _uploadOptions,
      uploadMedia: _uploadMedia,
      downloadOptions: _downloadOptions);
  return _response.then((data) => new PartialResultSet.fromJson(data));
}