MCPcopy Create free account
hub / github.com/apecloud/myduckserver / schemaToFieldDescriptions

Function schemaToFieldDescriptions

pgserver/duck_handler.go:612–664  ·  view source on GitHub ↗
(ctx *sql.Context, s sql.Schema, resultFormatCodes []int16, mode QueryMode)

Source from the content-addressed store, hash-verified

610 // }
611 // affected, _ := result.RowsAffected()
612 // insertId, _ := result.LastInsertId()
613 // schema = types.OkResultSchema
614 // iter = sql.RowsToRowIter(sql.NewRow(types.OkResult{
615 // RowsAffected: uint64(affected),
616 // InsertID: uint64(insertId),
617 // }))
618 // }
619 // if err != nil {
620 // return nil, nil, nil, err
621 // }
622
623 stmtType, err := stmt.StatementType()
624 if err != nil {
625 return nil, nil, nil, err
626 }
627
628 var (
629 schema sql.Schema
630 iter sql.RowIter
631 rows *stdsql.Rows
632 result stdsql.Result
633 )
634
635 switch stmtType {
636 case duckdb.STATEMENT_TYPE_SELECT,
637 duckdb.STATEMENT_TYPE_RELATION:
638 rows, schema, err = queryCatalogWithJSONScan(ctx, query, vars...)
639 if err != nil {
640 break
641 }
642 iter, err = NewSqlRowIter(rows, schema)
643 if err != nil {
644 rows.Close()
645 break
646 }
647 case duckdb.STATEMENT_TYPE_CALL,
648 duckdb.STATEMENT_TYPE_PRAGMA,
649 duckdb.STATEMENT_TYPE_EXPLAIN:
650 rows, err = adapter.QueryCatalog(ctx, query, vars...)
651 if err != nil {
652 break
653 }
654 schema, err = pgtypes.InferSchema(rows)
655 if err != nil {
656 rows.Close()
657 break
658 }
659 iter, err = NewSqlRowIter(rows, schema)
660 if err != nil {
661 rows.Close()
662 break
663 }
664 default:
665 result, err = adapter.ExecCatalog(ctx, query, vars...)
666 if err != nil {
667 break

Callers 2

ComPrepareParsedMethod · 0.85
doQueryMethod · 0.85

Calls 3

VitessTypeToObjectIDFunction · 0.85
TypeMethod · 0.80

Tested by

no test coverage detected