(ctx context.Context, session *Session, stmt spanner.Statement, isDML bool)
| 594 | } |
| 595 | |
| 596 | func runAnalyzeQuery(ctx context.Context, session *Session, stmt spanner.Statement, isDML bool) (queryPlan *pb.QueryPlan, commitTimestamp time.Time, metadata *pb.ResultSetMetadata, err error) { |
| 597 | if !isDML { |
| 598 | queryPlan, metadata, err := session.RunAnalyzeQuery(ctx, stmt) |
| 599 | return queryPlan, time.Time{}, metadata, err |
| 600 | } |
| 601 | |
| 602 | _, timestamp, queryPlan, metadata, err := runInNewOrExistRwTxForExplain(ctx, session, func() (int64, *pb.QueryPlan, *pb.ResultSetMetadata, error) { |
| 603 | plan, metadata, err := session.RunAnalyzeQuery(ctx, stmt) |
| 604 | return 0, plan, metadata, err |
| 605 | }) |
| 606 | return queryPlan, timestamp, metadata, err |
| 607 | } |
| 608 | |
| 609 | type ExplainAnalyzeStatement struct { |
| 610 | Query string |
no test coverage detected