99 "github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Query"
1010
1111 "github.com/ydb-platform/ydb-go-sdk/v3/internal/stack"
12+ "github.com/ydb-platform/ydb-go-sdk/v3/internal/types"
1213 "github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
1314 "github.com/ydb-platform/ydb-go-sdk/v3/query"
1415 "github.com/ydb-platform/ydb-go-sdk/v3/trace"
2122
2223type (
2324 materializedResultSet struct {
24- rows []query.Row
25- idx int
25+ columnNames []string
26+ columnTypes []types.Type
27+ rows []query.Row
28+ idx int
2629 }
2730 resultSet struct {
2831 index int64
@@ -35,6 +38,32 @@ type (
3538 }
3639)
3740
41+ func (rs * materializedResultSet ) Columns () (columnNames []string ) {
42+ return rs .columnNames
43+ }
44+
45+ func (rs * materializedResultSet ) ColumnTypes () []types.Type {
46+ return rs .columnTypes
47+ }
48+
49+ func (rs * resultSet ) ColumnTypes () (columnTypes []types.Type ) {
50+ columnTypes = make ([]types.Type , len (rs .columns ))
51+ for i := range rs .columns {
52+ columnTypes [i ] = types .TypeFromYDB (rs .columns [i ].GetType ())
53+ }
54+
55+ return columnTypes
56+ }
57+
58+ func (rs * resultSet ) Columns () (columnNames []string ) {
59+ columnNames = make ([]string , len (rs .columns ))
60+ for i := range rs .columns {
61+ columnNames [i ] = rs .columns [i ].GetName ()
62+ }
63+
64+ return columnNames
65+ }
66+
3867func (rs * materializedResultSet ) NextRow (ctx context.Context ) (query.Row , error ) {
3968 if rs .idx == len (rs .rows ) {
4069 return nil , xerrors .WithStackTrace (io .EOF )
@@ -47,9 +76,15 @@ func (rs *materializedResultSet) NextRow(ctx context.Context) (query.Row, error)
4776 return rs .rows [rs .idx ], nil
4877}
4978
50- func NewMaterializedResultSet (rows []query.Row ) * materializedResultSet {
79+ func NewMaterializedResultSet (
80+ columnNames []string ,
81+ columnTypes []types.Type ,
82+ rows []query.Row ,
83+ ) * materializedResultSet {
5184 return & materializedResultSet {
52- rows : rows ,
85+ columnNames : columnNames ,
86+ columnTypes : columnTypes ,
87+ rows : rows ,
5388 }
5489}
5590
0 commit comments