File tree 2 files changed +27
-0
lines changed
2 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -2435,6 +2435,7 @@ func TestIntegration_Scripting(t *testing.T) {
2435
2435
sql := `
2436
2436
-- Declare a variable to hold names as an array.
2437
2437
DECLARE top_names ARRAY<STRING>;
2438
+ BEGIN TRANSACTION;
2438
2439
-- Build an array of the top 100 names from the year 2017.
2439
2440
SET top_names = (
2440
2441
SELECT ARRAY_AGG(name ORDER BY number DESC LIMIT 100)
@@ -2449,6 +2450,7 @@ func TestIntegration_Scripting(t *testing.T) {
2449
2450
SELECT word
2450
2451
FROM ` + "`bigquery-public-data`" + `.samples.shakespeare
2451
2452
);
2453
+ COMMIT TRANSACTION;
2452
2454
`
2453
2455
q := client .Query (sql )
2454
2456
job , err := q .Run (ctx )
@@ -2506,6 +2508,12 @@ func TestIntegration_Scripting(t *testing.T) {
2506
2508
if cStatus .Statistics .ScriptStatistics .EvaluationKind == "" {
2507
2509
t .Errorf ("child job %q didn't indicate evaluation kind" , cj .ID ())
2508
2510
}
2511
+ if cStatus .Statistics .TransactionInfo == nil {
2512
+ t .Errorf ("child job %q didn't have transaction info present" , cj .ID ())
2513
+ }
2514
+ if cStatus .Statistics .TransactionInfo .TransactionID == "" {
2515
+ t .Errorf ("child job %q didn't have transactionID present" , cj .ID ())
2516
+ }
2509
2517
}
2510
2518
2511
2519
}
Original file line number Diff line number Diff line change @@ -372,6 +372,9 @@ type JobStatistics struct {
372
372
373
373
// ReservationUsage attributes slot consumption to reservations.
374
374
ReservationUsage []* ReservationUsage
375
+
376
+ // TransactionInfo indicates the transaction ID associated with the job, if any.
377
+ TransactionInfo * TransactionInfo
375
378
}
376
379
377
380
// Statistics is one of ExtractStatistics, LoadStatistics or QueryStatistics.
@@ -880,6 +883,7 @@ func (j *Job) setStatistics(s *bq.JobStatistics, c *Client) {
880
883
ParentJobID : s .ParentJobId ,
881
884
ScriptStatistics : bqToScriptStatistics (s .ScriptStatistics ),
882
885
ReservationUsage : bqToReservationUsage (s .ReservationUsage ),
886
+ TransactionInfo : bqToTransactionInfo (s .TransactionInfo ),
883
887
}
884
888
switch {
885
889
case s .Extract != nil :
@@ -983,3 +987,18 @@ func timelineFromProto(timeline []*bq.QueryTimelineSample) []*QueryTimelineSampl
983
987
}
984
988
return res
985
989
}
990
+
991
+ // TransactionInfo contains information about a multi-statement transaction that may have associated with a job.
992
+ type TransactionInfo struct {
993
+ // TransactionID is the system-generated identifier for the transaction.
994
+ TransactionID string
995
+ }
996
+
997
+ func bqToTransactionInfo (in * bq.TransactionInfo ) * TransactionInfo {
998
+ if in == nil {
999
+ return nil
1000
+ }
1001
+ return & TransactionInfo {
1002
+ TransactionID : in .TransactionId ,
1003
+ }
1004
+ }
You can’t perform that action at this time.
0 commit comments