All notable changes to this project will be documented in this file.
- Added
insert_all_gzipped
method, see this PR for more details. Thanks @idobenamram.
-
Added missing routine type
TableValuedFunction
as specified in the reference. It also fixes the data type ofcreation_time
andlast_modified_time
to String type (see https://cloud.google.com/bigquery/docs/reference/rest/v2/routines). Thanks @thevaibhav-dixit. -
Added a new method
ResultSet::new_from_get_query_results_response
which creates aResultSet
from aGetQueryResultsResponse
. Thanks @imor. -
Breaking changes:
- Return type of
JobApi::query
changed fromResult<ResultSet, BQError>
toResult<QueryResponse, BQError>
. ResultSet::new
renamed toResultSet::new_from_query_response
.
- Return type of
-
Rationale for the breaking changes:
JobApi::query
now returnsResult<QueryResponse, BQError>
instead ofResult<ResultSet, BQError>
. AResultSet
wraps over aQueryResponse
but callers didn't have acces to that internal object. To allow callers access to the internal object,JobApi::query
now returns the internal object itself. This means older code which expected aResultSet
will break. -
Upgrading to the new version:
To fix broken code, you'll have to call
ResultSet::from_query_response
function. For example, if your code looked like this:let mut result_set = client .job() .query( project_id, query_request, ) .await?;
It should be updated to:
let query_response = client .job() .query( project_id, query_request, ) .await?; let mut result_set = ResultSet::new_from_query_response(query_response);
Another reason for the change was making it consistent with
JobApi::get_query_results
which already returned an unwrapped object which callers needed to manually wrap inside aResultSet
by callingResultSet::new
method.
- Fix a root certificate issue following a breaking change in Tonic (by @imor).
- Remove dependency on protoc. The generated code is now included in the repository (by @lquerel).
- Bump versions of
thiserror
,hyper-util
,tokio
,serde
,serde_json
,tonic
,tonic-build
.
- Add partial support for BigQuery Storage Write API (by @imor).
- append_rows
- get_write_stream
- Add GZIP support for
insert_all
(by @Deniskore). Thegzip
feature is included by default. See #74 for more information.
Breaking changes:
- Client::from_authenticator is now async.
- ClientBuilder::build_from_authenticator is now async.
- Bump version of
yup_oauth2
to v11 (by @serpex).gcp-bigquery-client
can now be used with ring or aws-lc-rs as a TLS backend. - Fix Clippy warnings produced with Rust 1.78.0 (by @imor).
- Bump version of yup_oauth2 to 10.0.1 (by @serpex).
- Re-export yup_oauth2 as suggested by @serpex.
- Re-export hyper_rustls from yup (Thanks to @DoumanAsh)
- Bump versions of all dependencies to their most recent versions (including hyper and yup-oauth2)
- Add support to bigquery-emulator (Thanks to @henriiik)
- Add support to use the ClientBuilder to build a Client with an Authenticator (Thanks to @henriiik)
- Fix build issue with hyper-rustls (Thanks to @OmriSteiner and @nate-kelley-buster)
- Fix tabledata.list return type (Thank you @enricozb)
- Feature/paginate through all jobs list #63 (Thank you @Shirlo)
- Apply the same fix as #54 to query_all #64 (Thank you @LawnGnome)
- Add support for JSON column types. Thanks to Michael Gibson (@mchlgibs) for this contribution.
- Add
get_serde
andget_serde_by_name
methods to read columns for any types that implementsserde::de:DeserializeOwned
. Thanks to @andyquinterom for this contribution.
- Update hyper-rustls version.
- Fix Rows are not present when job not completed yet (Thanks @alu).
- Add
format_options
field toQueryRequest
(Thanks @JichaoS).
- Update
FieldType
enum toGeography
field type (Thanks @kiibo382).
- Two new methods in the job API
query_all_with_location
andquery_all_with_job_reference
(Thanks @MikhailMS).
- Example to run with bigquery-emulator (Thanks @marcoleni).
- Application default credentials auth & authorized user auth (#46) (Thanks @kiibo382).
- Installed flow auth - execute the authorization code flow before returning (#45) (Thanks @kiibo382).
- Avoid panic when schema doesn't exist (#44) (Thanks @lee-hen).
- Better error management in Client::from_service_account_key_file (Thanks @burmecia).
- Abstraction of the Authenticator (Thanks @kiibo382).
- InstalledFlowAuthenticator support (Thanks @kiibo382).
- Support for BigQuery emulator (Thanks @Marcoleni)
- Bump yup-oauth2 crate version.
- Bump time crate version (security issue).
- Process list - Change numeric_id type from u64 to string (Thanks @kiibo382)
- Make Client cloneable (Thanks @lee-hen).
- Bump yup-oauth2 crate version.
- Bump time crate version (security issue).
- Change Job.query_all method signature to return a stream to support more use cases (Thanks LiHRaM).
- Add query_all method to support result pagination (Thanks to @LiHRaM).
- Fix dependencies issues (Thanks to @MathiasKindberg).
- Fix view creation (Thanks to @jeffreybolle).
- Replace Chrome by Time.
- Fix QueryParameter type declaration (Thanks to @newapplesho).
- Fix 2 issues in the job API (Thanks to @nixxholas).
- Add a BigQuery load job example in the examples directory.
- 2 features
native-tls
andrust-tls
to respectively use OpenSSL or Rust TLS. - Add methods
is_empty
,len
,clear
toTableDataInsertAllRequest
. - Add method
add_rows
toTableDataInsertAllRequest
(thanks @nixxholas). - Bump version for yup-oauth2 v6 (thanks @JamesHinshelwood).
- Implement
Default
trait for most of the structures in the model sub-directory. - Implement
Clone
trait for most of the structures in the model sub-directory. - Implement
Display
trait forErrorProto
andTableDataInsertAllResponseInsertErrors
.
- Fix ResultSet.get_i64 not working with some valid integer notation (e.g. 123.45E4) (Thanks to @komi1230).
- Fix Workload identify serialization issue (Thanks to @komi1230).
- Workload identify support (Thanks to @komi1230).
Warning: this version is incompatible with the previous version.
- Added dataset.delete_if_exists.
- Added table.delete_if_exists.
- Added new setters for dataset and table structs.
- Removed redundant parameters in dataset.create.
- Removed redundant paramaters in table.create.
- Improved BQError::ResponseError.
- Improved the example.