MCPcopy Create free account
hub / github.com/cloudspannerecosystem/spanner-cli / Execute

Method Execute

statement.go:575–594  ·  view source on GitHub ↗

Execute processes `DESCRIBE` statement for queries and DMLs.

(ctx context.Context, session *Session)

Source from the content-addressed store, hash-verified

573
574// Execute processes `DESCRIBE` statement for queries and DMLs.
575func (s *DescribeStatement) Execute(ctx context.Context, session *Session) (*Result, error) {
576 _, timestamp, metadata, err := runAnalyzeQuery(ctx, session, spanner.NewStatement(s.Statement), s.IsDML)
577 if err != nil {
578 return nil, err
579 }
580
581 var rows []Row
582 for _, field := range metadata.GetRowType().GetFields() {
583 rows = append(rows, Row{Columns: []string{field.GetName(), formatTypeVerbose(field.GetType())}})
584 }
585
586 result := &Result{
587 AffectedRows: len(rows),
588 ColumnNames: describeColumnNames,
589 Timestamp: timestamp,
590 Rows: rows,
591 }
592
593 return result, nil
594}
595
596func 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 {

Callers

nothing calls this directly

Calls 2

runAnalyzeQueryFunction · 0.85
formatTypeVerboseFunction · 0.85

Tested by

no test coverage detected