github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/txnstatetransitions_diagram.gv (about) 1 // Code generated by "../util/fsm/gen/reports.sh TxnStateTransitions stateNoTxn"; DO NOT EDIT. 2 // To generate a .png file, run: 3 // brew install cairo pango 4 // brew install graphviz --with-pango 5 // dot -Tpng txnstatetransitions_diagram.gv -o txnstatetransitions_diagram.png". 6 7 // The Pango/Cairo renderer is needed for rendering our HTML labels. 8 digraph finite_state_machine { 9 rankdir=LR; 10 11 node [shape = doublecircle]; "NoTxn{}"; 12 node [shape = point ]; qi 13 qi -> "NoTxn{}"; 14 15 node [shape = circle]; 16 "Aborted{}" -> "Aborted{}" [label = <NonRetriableErr{IsCommit:false}<BR/><I>any other statement</I>>] 17 "Aborted{}" -> "Aborted{}" [label = <NonRetriableErr{IsCommit:true}<BR/><I>ConnExecutor closing</I>>] 18 "Aborted{}" -> "Aborted{}" [label = <RetriableErr{CanAutoRetry:false, IsCommit:false}<BR/><I>ROLLBACK TO SAVEPOINT (not cockroach_restart) failed because txn needs restart</I>>] 19 "Aborted{}" -> "Aborted{}" [label = <RetriableErr{CanAutoRetry:false, IsCommit:true}<BR/><I>ROLLBACK TO SAVEPOINT (not cockroach_restart) failed because txn needs restart</I>>] 20 "Aborted{}" -> "Aborted{}" [label = <RetriableErr{CanAutoRetry:true, IsCommit:false}<BR/><I>ROLLBACK TO SAVEPOINT (not cockroach_restart) failed because txn needs restart</I>>] 21 "Aborted{}" -> "Aborted{}" [label = <RetriableErr{CanAutoRetry:true, IsCommit:true}<BR/><I>ROLLBACK TO SAVEPOINT (not cockroach_restart) failed because txn needs restart</I>>] 22 "Aborted{}" -> "Open{ImplicitTxn:false}" [label = <SavepointRollback{}<BR/><I>ROLLBACK TO SAVEPOINT (not cockroach_restart) success</I>>] 23 "Aborted{}" -> "NoTxn{}" [label = <TxnFinish{}<BR/><I>ROLLBACK</I>>] 24 "Aborted{}" -> "Open{ImplicitTxn:false}" [label = <TxnRestart{}<BR/><I>ROLLBACK TO SAVEPOINT cockroach_restart</I>>] 25 "CommitWait{}" -> "CommitWait{}" [label = <NonRetriableErr{IsCommit:false}<BR/><I>any other statement</I>>] 26 "CommitWait{}" -> "CommitWait{}" [label = <NonRetriableErr{IsCommit:true}<BR/><I>any other statement</I>>] 27 "CommitWait{}" -> "NoTxn{}" [label = <TxnFinish{}<BR/><I>COMMIT</I>>] 28 "NoTxn{}" -> "NoTxn{}" [label = <NonRetriableErr{IsCommit:false}<BR/><I>anything but BEGIN or extended protocol command error</I>>] 29 "NoTxn{}" -> "NoTxn{}" [label = <NonRetriableErr{IsCommit:true}<BR/><I>anything but BEGIN or extended protocol command error</I>>] 30 "NoTxn{}" -> "Open{ImplicitTxn:false}" [label = <TxnStart{ImplicitTxn:false}<BR/><I>BEGIN, or before a statement running as an implicit txn</I>>] 31 "NoTxn{}" -> "Open{ImplicitTxn:true}" [label = <TxnStart{ImplicitTxn:true}<BR/><I>BEGIN, or before a statement running as an implicit txn</I>>] 32 "Open{ImplicitTxn:false}" -> "Aborted{}" [label = "NonRetriableErr{IsCommit:false}"] 33 "Open{ImplicitTxn:false}" -> "NoTxn{}" [label = "NonRetriableErr{IsCommit:true}"] 34 "Open{ImplicitTxn:false}" -> "Aborted{}" [label = "RetriableErr{CanAutoRetry:false, IsCommit:false}"] 35 "Open{ImplicitTxn:false}" -> "NoTxn{}" [label = <RetriableErr{CanAutoRetry:false, IsCommit:true}<BR/><I>Retriable err on COMMIT</I>>] 36 "Open{ImplicitTxn:false}" -> "Open{ImplicitTxn:false}" [label = <RetriableErr{CanAutoRetry:true, IsCommit:false}<BR/><I>Retriable err; will auto-retry</I>>] 37 "Open{ImplicitTxn:false}" -> "Open{ImplicitTxn:false}" [label = <RetriableErr{CanAutoRetry:true, IsCommit:true}<BR/><I>Retriable err; will auto-retry</I>>] 38 "Open{ImplicitTxn:false}" -> "NoTxn{}" [label = <TxnFinish{}<BR/><I>COMMIT/ROLLBACK, or after a statement running as an implicit txn</I>>] 39 "Open{ImplicitTxn:false}" -> "CommitWait{}" [label = <TxnReleased{}<BR/><I>RELEASE SAVEPOINT cockroach_restart</I>>] 40 "Open{ImplicitTxn:false}" -> "Open{ImplicitTxn:false}" [label = <TxnRestart{}<BR/><I>ROLLBACK TO SAVEPOINT cockroach_restart</I>>] 41 "Open{ImplicitTxn:true}" -> "NoTxn{}" [label = "NonRetriableErr{IsCommit:false}"] 42 "Open{ImplicitTxn:true}" -> "NoTxn{}" [label = "NonRetriableErr{IsCommit:true}"] 43 "Open{ImplicitTxn:true}" -> "NoTxn{}" [label = "RetriableErr{CanAutoRetry:false, IsCommit:false}"] 44 "Open{ImplicitTxn:true}" -> "NoTxn{}" [label = <RetriableErr{CanAutoRetry:false, IsCommit:true}<BR/><I>Retriable err on COMMIT</I>>] 45 "Open{ImplicitTxn:true}" -> "Open{ImplicitTxn:true}" [label = <RetriableErr{CanAutoRetry:true, IsCommit:false}<BR/><I>Retriable err; will auto-retry</I>>] 46 "Open{ImplicitTxn:true}" -> "Open{ImplicitTxn:true}" [label = <RetriableErr{CanAutoRetry:true, IsCommit:true}<BR/><I>Retriable err; will auto-retry</I>>] 47 "Open{ImplicitTxn:true}" -> "NoTxn{}" [label = <TxnFinish{}<BR/><I>COMMIT/ROLLBACK, or after a statement running as an implicit txn</I>>] 48 }