MCPcopy
hub / github.com/mathaou/termdbms / SetModel

Method SetModel

viewer/modelutil.go:122–163  ·  view source on GitHub ↗

SetModel creates a model to be used by bubbletea using some golang wizardry

(c *sql.Rows, db *sql.DB)

Source from the content-addressed store, hash-verified

120
121// SetModel creates a model to be used by bubbletea using some golang wizardry
122func (m *TuiModel) SetModel(c *sql.Rows, db *sql.DB) error {
123 var err error
124
125 indexMap := 0
126
127 // gets all the schema names of the database
128 tableNamesQuery := m.Table().Database.GetTableNamesQuery()
129 rows, err := db.Query(tableNamesQuery)
130 if err != nil {
131 return err
132 }
133
134 defer rows.Close()
135
136 // for each schema
137 for rows.Next() {
138 var schemaName string
139 rows.Scan(&schemaName)
140
141 // couldn't get prepared statements working and gave up because it was very simple
142 var statement strings.Builder
143 statement.WriteString("select * from ")
144 statement.WriteString(schemaName)
145 getAll := statement.String()
146
147 if c != nil {
148 c.Close()
149 c = nil
150 }
151 c, err = db.Query(getAll)
152 if err != nil {
153 panic(err)
154 }
155
156 m.PopulateDataForResult(c, &indexMap, schemaName)
157 }
158
159 // set the first table to be initial view
160 m.UI.CurrentTable = 1
161
162 return nil
163}
164
165func (m *TuiModel) PopulateDataForResult(c *sql.Rows, indexMap *int, schemaName string) {
166 columnNames, _ := c.Columns()

Callers 3

mainFunction · 0.80
EditEnterFunction · 0.80
handleSQLModeFunction · 0.80

Calls 4

TableMethod · 0.95
PopulateDataForResultMethod · 0.95
GetTableNamesQueryMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected