11import React , { useEffect , useState } from "react" ;
22import 'bootstrap/dist/css/bootstrap.min.css' ;
3- import { Button , Col , Container , Form , Navbar , Row } from 'react-bootstrap' ;
43import { PlanViewer } from "./PlanViewer" ;
54
65
@@ -22,13 +21,7 @@ const OperatorContainer = ({heading, children}) => {
2221 </ div >
2322 </ div >
2423}
25- const computeRef = ( d ) => {
26- if ( d . producing === "parent" ) {
27- return `${ d . parent } -arg-${ d . argnr } `
28- } else {
29- return d . producing
30- }
31- }
24+
3225const Expression = ( { data} ) => {
3326 if ( data . type === "expression_leaf" ) {
3427 if ( data . leaf_type === "column" ) {
@@ -215,7 +208,12 @@ const RenderedNode = ({data, x, y, onOperatorSelect, selectedOps}) => {
215208 </ div >
216209 }
217210}
218-
211+ const stateType = ( data ) => {
212+ if ( data . stateType ) {
213+ return ` [${ data . stateType } ]`
214+ }
215+ return ""
216+ }
219217const Operator = ( { data, onOperatorSelect, selectedOps} ) => {
220218
221219 if ( data . type === "execution_step" ) {
@@ -296,17 +294,17 @@ const Operator = ({data, onOperatorSelect, selectedOps}) => {
296294 } else if ( data . subop === "get_external" ) {
297295 return < OperatorContainer heading = { "GetExternal" } />
298296 } else if ( data . subop === "merge" ) {
299- return < OperatorContainer heading = { "Merge" } > </ OperatorContainer >
297+ return < OperatorContainer heading = { "Merge" + stateType ( data ) } > </ OperatorContainer >
300298 } else if ( data . subop === "scan" ) {
301- return < OperatorContainer heading = { "Scan" } >
299+ return < OperatorContainer heading = { "Scan" + stateType ( data ) } >
302300 { data . mapping . map ( ( m ) => < div > { m . member } → < Expression data = { m . column } /> </ div > ) }
303301 </ OperatorContainer >
304302 } else if ( data . subop === "scan_list" ) {
305- return < OperatorContainer heading = { "Scan( List) " } >
303+ return < OperatorContainer heading = { "Scan [ List] " } >
306304 Element → < Expression data = { data . elem } />
307305 </ OperatorContainer >
308306 } else if ( data . subop === "scan_ref" ) {
309- return < OperatorContainer heading = { "ScanRefs" } >
307+ return < OperatorContainer heading = { "ScanRefs" + stateType ( data ) } >
310308 Ref → < Expression data = { data . reference } />
311309 </ OperatorContainer >
312310 } else if ( data . subop === "union" ) {
@@ -413,29 +411,29 @@ const Operator = ({data, onOperatorSelect, selectedOps}) => {
413411 SegmentTreeView
414412 </ OperatorContainer >
415413 } else if ( data . subop === "materialize" ) {
416- return < OperatorContainer heading = { "Materialize" } >
414+ return < OperatorContainer heading = { "Materialize" + stateType ( data ) } >
417415 { data . mapping . map ( ( m ) => < div > < Expression data = { m . column } /> →{ m . member } </ div > ) }
418416
419417 </ OperatorContainer >
420418 } else if ( data . subop === "lookup_or_insert" ) {
421- return < OperatorContainer heading = { "LookupOrInsert" } >
419+ return < OperatorContainer heading = { "LookupOrInsert" + stateType ( data ) } >
422420 Ref: < Expression data = { data . reference } />
423421 </ OperatorContainer >
424422 } else if ( data . subop === "insert" ) {
425- return < OperatorContainer heading = { "Insert" } >
423+ return < OperatorContainer heading = { "Insert" + stateType ( data ) } >
426424 { data . mapping . map ( ( m ) => < div > < Expression data = { m . column } /> →{ m . member } </ div > ) }
427425
428426 </ OperatorContainer >
429427 } else if ( data . subop === "lookup" ) {
430- return < OperatorContainer heading = { "Lookup" } >
428+ return < OperatorContainer heading = { "Lookup" + stateType ( data ) } >
431429 Ref: < Expression data = { data . reference } />
432430 </ OperatorContainer >
433431 } else if ( data . subop === "get_begin_reference" ) {
434- return < OperatorContainer heading = { "GetBegin" } >
432+ return < OperatorContainer heading = { "GetBegin" + stateType ( data ) } >
435433 Ref: < Expression data = { data . reference } />
436434 </ OperatorContainer >
437435 } else if ( data . subop === "get_end_reference" ) {
438- return < OperatorContainer heading = { "GetEnd" } >
436+ return < OperatorContainer heading = { "GetEnd" + stateType ( data ) } >
439437 Ref: < Expression data = { data . reference } />
440438 </ OperatorContainer >
441439 } else if ( data . subop === "entries_between" ) {
0 commit comments