@@ -3,8 +3,6 @@ package otel
33import (
44 "context"
55
6- otelTrace "go.opentelemetry.io/otel/trace"
7-
86 "github.com/ydb-platform/ydb-go-sdk/v3/internal/kv"
97 "github.com/ydb-platform/ydb-go-sdk/v3/trace"
108)
@@ -206,16 +204,17 @@ func databaseSQL(cfg Config) (t trace.DatabaseSQL) {
206204 }
207205 t .OnTxExec = func (info trace.DatabaseSQLTxExecStartInfo ) func (trace.DatabaseSQLTxExecDoneInfo ) {
208206 if cfg .Details ()& trace .DatabaseSQLTxEvents != 0 {
209- if ! isStmtCall (* info .Context ) {
210- * info .Context = otelTrace .ContextWithSpan (* info .Context , otelTrace .SpanFromContext (info .TxContext ))
211- }
212207 start := childSpanWithReplaceCtx (
213208 info .Context ,
214209 info .Call .FunctionID (),
215210 kv .String ("query" , info .Query ),
216211 kv .String ("transaction_id" , safeID (info .Tx )),
217212 )
218213
214+ if ! isStmtCall (* info .Context ) {
215+ start .Relation (cfg .SpanFromContext (info .TxContext ))
216+ }
217+
219218 return func (info trace.DatabaseSQLTxExecDoneInfo ) {
220219 finish (
221220 start ,
@@ -228,16 +227,17 @@ func databaseSQL(cfg Config) (t trace.DatabaseSQL) {
228227 }
229228 t .OnTxQuery = func (info trace.DatabaseSQLTxQueryStartInfo ) func (trace.DatabaseSQLTxQueryDoneInfo ) {
230229 if cfg .Details ()& trace .DatabaseSQLTxEvents != 0 {
231- if ! isStmtCall (* info .Context ) {
232- * info .Context = otelTrace .ContextWithSpan (* info .Context , otelTrace .SpanFromContext (info .TxContext ))
233- }
234230 start := childSpanWithReplaceCtx (
235231 info .Context ,
236232 info .Call .FunctionID (),
237233 kv .String ("query" , info .Query ),
238234 kv .String ("transaction_id" , safeID (info .Tx )),
239235 )
240236
237+ if ! isStmtCall (* info .Context ) {
238+ start .Relation (cfg .SpanFromContext (info .TxContext ))
239+ }
240+
241241 return func (info trace.DatabaseSQLTxQueryDoneInfo ) {
242242 finish (
243243 start ,
@@ -250,7 +250,6 @@ func databaseSQL(cfg Config) (t trace.DatabaseSQL) {
250250 }
251251 t .OnTxPrepare = func (info trace.DatabaseSQLTxPrepareStartInfo ) func (trace.DatabaseSQLTxPrepareDoneInfo ) {
252252 if cfg .Details ()& trace .DatabaseSQLTxEvents != 0 {
253- * info .Context = otelTrace .ContextWithSpan (* info .Context , otelTrace .SpanFromContext (info .TxContext ))
254253 start := childSpanWithReplaceCtx (
255254 info .Context ,
256255 info .Call .FunctionID (),
@@ -270,15 +269,16 @@ func databaseSQL(cfg Config) (t trace.DatabaseSQL) {
270269 }
271270 t .OnStmtExec = func (info trace.DatabaseSQLStmtExecStartInfo ) func (trace.DatabaseSQLStmtExecDoneInfo ) {
272271 if cfg .Details ()& trace .DatabaseSQLStmtEvents != 0 {
273- * info .Context = markStmtCall (
274- otelTrace .ContextWithSpan (* info .Context , otelTrace .SpanFromContext (info .StmtContext )),
275- )
276272 start := childSpanWithReplaceCtx (
277273 info .Context ,
278274 info .Call .FunctionID (),
279275 kv .String ("query" , info .Query ),
280276 )
281277
278+ start .Relation (cfg .SpanFromContext (info .StmtContext ))
279+
280+ * info .Context = markStmtCall (* info .Context )
281+
282282 return func (info trace.DatabaseSQLStmtExecDoneInfo ) {
283283 finish (
284284 start ,
@@ -291,15 +291,16 @@ func databaseSQL(cfg Config) (t trace.DatabaseSQL) {
291291 }
292292 t .OnStmtQuery = func (info trace.DatabaseSQLStmtQueryStartInfo ) func (trace.DatabaseSQLStmtQueryDoneInfo ) {
293293 if cfg .Details ()& trace .DatabaseSQLStmtEvents != 0 {
294- * info .Context = markStmtCall (
295- otelTrace .ContextWithSpan (* info .Context , otelTrace .SpanFromContext (info .StmtContext )),
296- )
297294 start := childSpanWithReplaceCtx (
298295 info .Context ,
299296 info .Call .FunctionID (),
300297 kv .String ("query" , info .Query ),
301298 )
302299
300+ start .Relation (cfg .SpanFromContext (info .StmtContext ))
301+
302+ * info .Context = markStmtCall (* info .Context )
303+
303304 return func (info trace.DatabaseSQLStmtQueryDoneInfo ) {
304305 finish (
305306 start ,
0 commit comments