parseQueryStats parses spanner.RowIterator.QueryStats.
(stats map[string]interface{})
| 308 | |
| 309 | // parseQueryStats parses spanner.RowIterator.QueryStats. |
| 310 | func parseQueryStats(stats map[string]interface{}) QueryStats { |
| 311 | var queryStats QueryStats |
| 312 | |
| 313 | if v, ok := stats["elapsed_time"]; ok { |
| 314 | if elapsed, ok := v.(string); ok { |
| 315 | queryStats.ElapsedTime = elapsed |
| 316 | } |
| 317 | } |
| 318 | |
| 319 | if v, ok := stats["rows_returned"]; ok { |
| 320 | if returned, ok := v.(string); ok { |
| 321 | queryStats.RowsReturned = returned |
| 322 | } |
| 323 | } |
| 324 | |
| 325 | if v, ok := stats["rows_scanned"]; ok { |
| 326 | if scanned, ok := v.(string); ok { |
| 327 | queryStats.RowsScanned = scanned |
| 328 | } |
| 329 | } |
| 330 | |
| 331 | if v, ok := stats["deleted_rows_scanned"]; ok { |
| 332 | if deletedRowsScanned, ok := v.(string); ok { |
| 333 | queryStats.DeletedRowsScanned = deletedRowsScanned |
| 334 | } |
| 335 | } |
| 336 | |
| 337 | if v, ok := stats["cpu_time"]; ok { |
| 338 | if cpu, ok := v.(string); ok { |
| 339 | queryStats.CPUTime = cpu |
| 340 | } |
| 341 | } |
| 342 | |
| 343 | if v, ok := stats["optimizer_version"]; ok { |
| 344 | if version, ok := v.(string); ok { |
| 345 | queryStats.OptimizerVersion = version |
| 346 | } |
| 347 | } |
| 348 | |
| 349 | if v, ok := stats["optimizer_statistics_package"]; ok { |
| 350 | if pkg, ok := v.(string); ok { |
| 351 | queryStats.OptimizerStatisticsPackage = pkg |
| 352 | } |
| 353 | } |
| 354 | |
| 355 | return queryStats |
| 356 | } |
| 357 | |
| 358 | type CreateDatabaseStatement struct { |
| 359 | CreateStatement string |