Skip to content

Commit 2b140e5

Browse files
- Some rubbish out other remains.
1 parent 6757e51 commit 2b140e5

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

internal/stackql/planbuilder/plan_builder.go

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"github.com/stackql/any-sdk/anysdk"
1111

1212
"github.com/stackql/any-sdk/pkg/logging"
13+
"github.com/stackql/any-sdk/pkg/streaming"
1314
"github.com/stackql/stackql/internal/stackql/acid/txn_context"
1415
"github.com/stackql/stackql/internal/stackql/astanalysis/routeanalysis"
1516
"github.com/stackql/stackql/internal/stackql/handler"
@@ -912,15 +913,19 @@ func (pgb *standardPlanGraphBuilder) handleInsert(pbi planbuilderinput.PlanBuild
912913
)
913914
bldrInput.SetDependencyNode(selectPrimitiveNode)
914915
bldrInput.SetCommentDirectives(primitiveGenerator.GetPrimitiveComposer().GetCommentDirectives())
915-
bldrInput.SetIsAwait(primitiveGenerator.GetPrimitiveComposer().IsAwait())
916+
isAwait := primitiveGenerator.GetPrimitiveComposer().IsAwait()
917+
bldrInput.SetIsAwait(isAwait)
916918
bldrInput.SetParserNode(node)
917919
bldrInput.SetAnnotatedAST(pbi.GetAnnotatedAST())
918920
bldrInput.SetTxnCtrlCtrs(pbi.GetTxnCtrlCtrs())
919921
isPhysicalTable := tbl.IsPhysicalTable()
920922
if isPhysicalTable {
921923
bldrInput.SetIsTargetPhysicalTable(true)
922924
}
923-
var bldr primitivebuilder.Builder
925+
//nolint:stylecheck // not in the mood
926+
var bldr primitivebuilder.Builder = primitivebuilder.NewInsertOrUpdate(
927+
bldrInput,
928+
)
924929
if len(node.SelectExprs) > 0 {
925930
// Two cases:
926931
// 1. Synchronous. Equivalent to select.
@@ -939,16 +944,30 @@ func (pgb *standardPlanGraphBuilder) handleInsert(pbi planbuilderinput.PlanBuild
939944
return rcErr
940945
}
941946
bldrInput.SetTableInsertionContainer(rc)
942-
bldr = primitivebuilder.NewSingleAcquireAndSelect(
947+
//nolint:stylecheck // not in the mood
948+
var returningBldr primitivebuilder.Builder = primitivebuilder.NewSingleAcquireAndSelect(
943949
bldrInput,
944950
primitiveGenerator.GetPrimitiveComposer().GetInsertPreparedStatementCtx(),
945951
primitiveGenerator.GetPrimitiveComposer().GetSelectPreparedStatementCtx(),
946952
nil,
947953
)
948-
} else {
949-
bldr = primitivebuilder.NewInsertOrUpdate(
950-
bldrInput,
951-
)
954+
if !isAwait {
955+
bldr = returningBldr
956+
} else {
957+
rhsBldr := primitivebuilder.NewSingleSelect(
958+
pgb.planGraphHolder,
959+
handlerCtx,
960+
primitiveGenerator.GetPrimitiveComposer().GetSelectPreparedStatementCtx(),
961+
[]tableinsertioncontainer.TableInsertionContainer{rc},
962+
nil,
963+
streaming.NewNopMapStream(),
964+
)
965+
bldr = primitivebuilder.NewDependencySubDAGBuilder(
966+
pgb.planGraphHolder,
967+
[]primitivebuilder.Builder{bldr},
968+
rhsBldr,
969+
)
970+
}
952971
}
953972
err = bldr.Build()
954973
if err != nil {

0 commit comments

Comments
 (0)