MCPcopy Create free account
hub / github.com/dolthub/doltgresql / rowIterToRecord

Function rowIterToRecord

server/functions/framework/sql_function.go:309–329  ·  view source on GitHub ↗

rowIterToRecord converts given rows with schema provided to rowIter containing array of pgtypes.RecordValue.

(ctx *sql.Context, rowIter sql.RowIter, sch sql.Schema)

Source from the content-addressed store, hash-verified

307
308// rowIterToRecord converts given rows with schema provided to rowIter containing array of pgtypes.RecordValue.
309func rowIterToRecord(ctx *sql.Context, rowIter sql.RowIter, sch sql.Schema) (sql.RowIter, error) {
310 rows, err := sql.RowIterToRows(ctx, rowIter)
311 if err != nil {
312 return nil, err
313 }
314 var newRows = make([]sql.Row, len(rows))
315 for i, row := range rows {
316 if len(row) != len(sch) {
317 return nil, errors.New("number of row values does not match number of schema columns")
318 }
319 var r = make([]pgtypes.RecordValue, len(sch))
320 for j, col := range sch {
321 r[j] = pgtypes.RecordValue{
322 Type: col.Type.(*pgtypes.DoltgresType),
323 Value: row[j],
324 }
325 }
326 newRows[i] = sql.Row{r}
327 }
328 return sql.RowsToRowIter(newRows...), nil
329}
330
331// convertToVitess is set by init and is used to avoid import cycles
332var convertToVitess func(postgresStmt parser.Statement) (sqlparser.Statement, error)

Callers 1

CallSqlFunctionFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected