MCPcopy Index your code
hub / github.com/cloudspannerecosystem/spanner-cli / Execute

Method Execute

statement.go:511–535  ·  view source on GitHub ↗
(ctx context.Context, session *Session)

Source from the content-addressed store, hash-verified

509}
510
511func (s *ShowTablesStatement) Execute(ctx context.Context, session *Session) (*Result, error) {
512 if session.InReadWriteTransaction() {
513 // INFORMATION_SCHEMA can not be used in read-write transaction.
514 // https://cloud.google.com/spanner/docs/information-schema
515 return nil, errors.New(`"SHOW TABLES" can not be used in a read-write transaction`)
516 }
517
518 alias := fmt.Sprintf("Tables_in_%s", session.databaseId)
519 stmt := spanner.NewStatement(fmt.Sprintf("SELECT t.TABLE_NAME AS `%s` FROM INFORMATION_SCHEMA.TABLES AS t WHERE t.TABLE_CATALOG = '' and t.TABLE_SCHEMA = @schema", alias))
520 stmt.Params["schema"] = s.Schema
521
522 iter, _ := session.RunQuery(ctx, stmt)
523 defer iter.Stop()
524
525 rows, columnNames, err := parseQueryResult(iter)
526 if err != nil {
527 return nil, err
528 }
529
530 return &Result{
531 ColumnNames: columnNames,
532 Rows: rows,
533 AffectedRows: len(rows),
534 }, nil
535}
536
537type ExplainStatement struct {
538 Explain string

Callers

nothing calls this directly

Calls 3

parseQueryResultFunction · 0.85
RunQueryMethod · 0.80

Tested by

no test coverage detected