[bigquery] emulator support
Hi @yoshidan , did you test the Bigquery job API? I am trying to use emulator to insert a job to load data into a table, but emulator returning this error:
2025-04-23T19:00:55.251Z ERROR server/handler.go:2833 internalError {"error": "internalError: unexpected request path: /bigquery/v2/projects/jobs"}
Support for the bigquery emulator is incomplete.
I have been running tests with the following, but have not tried jobs insert. https://github.com/yoshidan/google-cloud-rust/blob/2e2c08f08b92ffe8f33a70aac991a1a895704fb8/bigquery/src/client.rs#L1344
@yoshidan I tried querying the sample dataset used in the emulator and get the following error:
JobHttp(HttpClient(reqwest::Error { kind: Decode, source: Error("missing field `kind`", line: 1, column: 348) }))
Any thoughts on this?
The query request:
let request = QueryRequest {
query: "SELECT * FROM test.dataset1.table_a".to_string(),
..Default::default()
};
let mut iter = client.query::<Row>(&self.project_id, request).await.unwrap();
@ddimaria
Unlike the GCP environment, emulator does not seem to return kind or etag.
Therefore, it may work if you give #[serde(default)] or make it an Option type.
https://github.com/yoshidan/google-cloud-rust/blob/be801d66c5bde4cb62b3100e855baeace0cd2320/bigquery/src/http/job/get_query_ results.rs#L42