@@ -398,6 +398,7 @@ var nodeNames = [...]string{
398
398
createViewOp : "create view" ,
399
399
deleteOp : "delete" ,
400
400
deleteRangeOp : "delete range" ,
401
+ deleteSwapOp : "delete swap" ,
401
402
distinctOp : "distinct" ,
402
403
errorIfRowsOp : "error if rows" ,
403
404
explainOp : "explain" ,
@@ -435,6 +436,7 @@ var nodeNames = [...]string{
435
436
sortOp : "sort" ,
436
437
topKOp : "top-k" ,
437
438
updateOp : "update" ,
439
+ updateSwapOp : "update swap" ,
438
440
upsertOp : "upsert" ,
439
441
valuesOp : "" , // This node does not have a fixed name.
440
442
vectorSearchOp : "vector search" ,
@@ -1116,6 +1118,25 @@ func (e *emitter) emitNodeAttributes(ctx context.Context, evalCtx *eval.Context,
1116
1118
}
1117
1119
e .emitPolicies (ob , a .Table , n )
1118
1120
1121
+ case updateSwapOp :
1122
+ a := n .args .(* updateSwapArgs )
1123
+ ob .Attrf ("table" , "%s" , a .Table .Name ())
1124
+ ob .Attr ("set" , printColumns (tableColumns (a .Table , a .UpdateCols )))
1125
+ if a .AutoCommit {
1126
+ ob .Attr ("auto commit" , "" )
1127
+ }
1128
+ beforeTriggers := cat .GetRowLevelTriggers (
1129
+ a .Table , tree .TriggerActionTimeBefore , tree .MakeTriggerEventTypeSet (tree .TriggerEventUpdate ),
1130
+ )
1131
+ if len (beforeTriggers ) > 0 {
1132
+ ob .EnterMetaNode ("before-triggers" )
1133
+ for _ , trigger := range beforeTriggers {
1134
+ ob .Attrf ("trigger" , "%s" , trigger .Name ())
1135
+ }
1136
+ ob .LeaveNode ()
1137
+ }
1138
+ e .emitPolicies (ob , a .Table , n )
1139
+
1119
1140
case deleteOp :
1120
1141
a := n .args .(* deleteArgs )
1121
1142
ob .Attrf ("from" , "%s" , a .Table .Name ())
@@ -1133,6 +1154,23 @@ func (e *emitter) emitNodeAttributes(ctx context.Context, evalCtx *eval.Context,
1133
1154
ob .LeaveNode ()
1134
1155
}
1135
1156
1157
+ case deleteSwapOp :
1158
+ a := n .args .(* deleteSwapArgs )
1159
+ ob .Attrf ("from" , "%s" , a .Table .Name ())
1160
+ if a .AutoCommit {
1161
+ ob .Attr ("auto commit" , "" )
1162
+ }
1163
+ beforeTriggers := cat .GetRowLevelTriggers (
1164
+ a .Table , tree .TriggerActionTimeBefore , tree .MakeTriggerEventTypeSet (tree .TriggerEventDelete ),
1165
+ )
1166
+ if len (beforeTriggers ) > 0 {
1167
+ ob .EnterMetaNode ("before-triggers" )
1168
+ for _ , trigger := range beforeTriggers {
1169
+ ob .Attrf ("trigger" , "%s" , trigger .Name ())
1170
+ }
1171
+ ob .LeaveNode ()
1172
+ }
1173
+
1136
1174
case deleteRangeOp :
1137
1175
a := n .args .(* deleteRangeArgs )
1138
1176
ob .Attrf ("from" , "%s" , a .Table .Name ())
0 commit comments