@@ -70,24 +70,39 @@ type StreamResult interface {
7070 resultWithError
7171}
7272
73+ type option func (r * baseResult )
74+
75+ func WithIgnoreTruncated (ignoreTruncated bool ) option {
76+ return func (r * baseResult ) {
77+ r .scanner .ignoreTruncated = ignoreTruncated
78+ }
79+ }
80+
7381func NewStream (
7482 recv func (ctx context.Context ) (* Ydb.ResultSet , * Ydb_TableStats.QueryStats , error ),
7583 onClose func (error ) error ,
84+ opts ... option ,
7685) StreamResult {
7786 r := & streamResult {
7887 recv : recv ,
7988 close : onClose ,
8089 }
90+ for _ , o := range opts {
91+ o (& r .baseResult )
92+ }
8193 return r
8294}
8395
84- func NewUnary (sets []* Ydb.ResultSet , stats * Ydb_TableStats.QueryStats ) UnaryResult {
96+ func NewUnary (sets []* Ydb.ResultSet , stats * Ydb_TableStats.QueryStats , opts ... option ) UnaryResult {
8597 r := & unaryResult {
8698 baseResult : baseResult {
8799 stats : stats ,
88100 },
89101 sets : sets ,
90102 }
103+ for _ , o := range opts {
104+ o (& r .baseResult )
105+ }
91106 return r
92107}
93108
@@ -98,16 +113,6 @@ func (r *baseResult) Reset(set *Ydb.ResultSet, columnNames ...string) {
98113 }
99114}
100115
101- func (r * unaryResult ) Err () (err error ) {
102- if err = r .baseResult .scanner .Err (); err != nil {
103- return err
104- }
105- if r .truncated () {
106- return xerrors .WithStackTrace (errTruncated )
107- }
108- return nil
109- }
110-
111116func (r * unaryResult ) NextResultSetErr (ctx context.Context , columns ... string ) (err error ) {
112117 if r .isClosed () {
113118 return xerrors .WithStackTrace (errAlreadyClosed )
@@ -124,10 +129,6 @@ func (r *unaryResult) NextResultSet(ctx context.Context, columns ...string) bool
124129 return r .NextResultSetErr (ctx , columns ... ) == nil
125130}
126131
127- func (r * streamResult ) Err () (err error ) {
128- return r .baseResult .scanner .Err ()
129- }
130-
131132func (r * streamResult ) NextResultSetErr (ctx context.Context , columns ... string ) (err error ) {
132133 if r .isClosed () {
133134 return xerrors .WithStackTrace (errAlreadyClosed )
0 commit comments