getColumnStatisticsForPartition method

Future<GetColumnStatisticsForPartitionResponse> getColumnStatisticsForPartition({
  1. required List<String> columnNames,
  2. required String databaseName,
  3. required List<String> partitionValues,
  4. required String tableName,
  5. String? catalogId,
})

Retrieves partition statistics of columns.

The Identity and Access Management (IAM) permission required for this operation is GetPartition.

May throw EntityNotFoundException. May throw InvalidInputException. May throw InternalServiceException. May throw OperationTimeoutException. May throw GlueEncryptionException.

Parameter columnNames : A list of the column names.

Parameter databaseName : The name of the catalog database where the partitions reside.

Parameter partitionValues : A list of partition values identifying the partition.

Parameter tableName : The name of the partitions' table.

Parameter catalogId : The ID of the Data Catalog where the partitions in question reside. If none is supplied, the AWS account ID is used by default.

Implementation

Future<GetColumnStatisticsForPartitionResponse>
    getColumnStatisticsForPartition({
  required List<String> columnNames,
  required String databaseName,
  required List<String> partitionValues,
  required String tableName,
  String? catalogId,
}) async {
  ArgumentError.checkNotNull(columnNames, 'columnNames');
  ArgumentError.checkNotNull(databaseName, 'databaseName');
  _s.validateStringLength(
    'databaseName',
    databaseName,
    1,
    255,
    isRequired: true,
  );
  ArgumentError.checkNotNull(partitionValues, 'partitionValues');
  ArgumentError.checkNotNull(tableName, 'tableName');
  _s.validateStringLength(
    'tableName',
    tableName,
    1,
    255,
    isRequired: true,
  );
  _s.validateStringLength(
    'catalogId',
    catalogId,
    1,
    255,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AWSGlue.GetColumnStatisticsForPartition'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'ColumnNames': columnNames,
      'DatabaseName': databaseName,
      'PartitionValues': partitionValues,
      'TableName': tableName,
      if (catalogId != null) 'CatalogId': catalogId,
    },
  );

  return GetColumnStatisticsForPartitionResponse.fromJson(jsonResponse.body);
}