![]() |
|
TorB | CorA | name | field | 'Notes' |
T | C | Vector | Vector table is computed in top | |
T | A | vb | association bv is computed in top | |
T | A | av | association av is computed in top | |
B | A | ab | association ab is computed in bottom | |
B | C | Bank | field | bottom Bank has virtual field vfield |
> ls GheyiSplit
GheyiSplit.diff.csv GheyiSplit.cdspec.pl
>java AFunctor.First GheyiSplit
AFunctor.First produces files GheyiSplit.extra.csv and GheyiSplit.update.csv, for you to use/complete in the next steps, provided of course that no errors were found. It also generates PNG files, Top.class.png, Bottom.class.png, and their union, GheyiSplit.class.png***. See if the generated figures are what you expect. If errors are reported, follow their leads to correct errors.
GheyiSplit.update.csv | GheyiSplit.extra.csv |
TorB,fname,input,output,set,Notes T,vfield,Bank,Str,xxx, T,vfield,$Bank,$Str,xxx, T,ab,Account,$Bank,xxx, T,ab,$Account,$Bank,xxx, T,linkab,Account,Bank,xxx, T,ab_,Bank,$Account,xxx, T,ab_,$Bank,$Account,xxx, B,$Vector,Void,$Vector,xxx, B,vfield,Vector,Str,xxx, B,vfield,$Vector,$Str,xxx, B,vb,Vector,$Bank,xxx, B,vb,$Vector,$Bank,xxx, B,linkvb,Vector,Bank,xxx, B,vb_,Bank,$Vector,xxx, B,vb_,$Bank,$Vector,xxx, B,linkvb_,Bank,Vector,xxx, B,av,Account,$Vector,xxx, B,av,$Account,$Vector,xxx, B,linkav,Account,Vector,xxx, B,av_,Vector,$Account,xxx, B,av_,$Vector,$Account,xxx, | TorBorTB,fName,input,output,arrowtype,Notes T,linkab,Account,Bank,noargs, B,linkvb,Vector,Bank,noargs, B,linkvb_,Bank,Vector,noargs, B,linkav,Account,Vector,noargs, |
GheyiSplit.update.csv |
TorB,fname,input,output,set,Notes T,vfield,Bank,Str,xxx, T,vfield,$Bank,$Str,xxx, T,ab,Account,$Bank,xxx, T,ab,$Account,$Bank,xxx, T,linkab,Account,Bank,xxx, T,ab_,Bank,$Account,xxx, T,ab_,$Bank,$Account,xxx, B,$Vector,Void,$Vector,xxx, B,vfield,Vector,Str,xxx, B,vfield,$Vector,$Str,xxx, B,vb,Vector,$Bank,xxx, B,vb,$Vector,$Bank,xxx, B,linkvb,Vector,Bank,xxx, B,vb_,Bank,$Vector,xxx, B,vb_,$Bank,$Vector,xxx, B,linkvb_,Bank,Vector,xxx, B,av,Account,$Vector,xxx, B,av,$Account,$Vector,xxx, B,linkav,Account,Vector,xxx, B,av_,Vector,$Account,xxx, B,av_,$Vector,$Account,xxx, |
GheyiSplit.update.csv | |
TorB,fname,input,output,set,Notes T,vfield,Bank,Str,linkvb_().vfield, T,vfield,$Bank,$Str,vb_().vfield(), T,ab,Account,$Bank,av().vb(), T,ab,$Account,$Bank,av().vb(), ... B,$Vector,Void,$Vector,$Bank.to$Vector(), | start with the Bottom Bank tuple and follow it to is Vector tuple to get value of vfield start with a table of Bottom Bank tuples, follow vb_() to a table of Vector tuples, and apply vfield() to produce a $Str table start with a Bottom Account tuple, follow av() association then vb() association to produce a table of Bottom Bank tuples. same reasoning as above Take any table of Bottom Bank tuples and apply a to$Vector function to produce the corresponding $Vector tuples |
TorBorTB | operation | input | output | arrowType | Notes |
T | makeVector | Void | $Vector | noargs | this operation computes the Vector table from existing Top data |
T | vb_ | $Bank | $Vector | noargs | given a table of Bank tuples, compute the right semijoin with the $Vector table |
T | vb_ | Bank | $Vector | noargs | given a single Bank tuple, compute its associated table of Vector tuples |
T | toBank | Vector | Bank | noargs | given a Vector tuple, compute its corresponding Bank tuple |
T | vb | Vector | $Bank | noargs | given a single Vector tuple, compute its associated table of Bank tuples |
T | vb | $Vector | $Bank | noargs | given a table of Vector tuples, compute its corresponding table of Bank tuples |
T | av | $Account | $Vector | noargs | given a table of Account tuples, compute the right semijoin with the $Vector table |
T | av | Account | $Vector | noargs | given a single Account tuple, its associated table of Vector tuple |
T | av_ | $Vector | $Account | noargs | given a table of Vector tuples, compute the right semijoin with the $Account table |
T | av_ | Vector | $Account | noargs | given a table of Vector tuples, compute the right semijoin with the $Account table |
T | toVector | Account | Vector | noargs | given a single Account tuple, compute its corresponding Vector tuple |
B | ab | $Account | $Bank | noargs | given a table of Account tuples, compute the right semijoin with the $Bank table |
B | ab | Account | $Bank | noargs | given a single Account tuple, its associated table of Bank tuples |
B | ab_ | $Bank | $Account | noargs | given a table of Bank tuples, compute the right semijoin with the $Account table |
B | ab_ | Bank | $Account | noargs | given a single Bank tuple, its associated table of Account tuples |
B | linktoB | Bank | Account | noargs | given a single Bank tuple, follow the 'b' association to its corresponding Account tuple |
> java AFunctor.Main RWhich tells AFunctor that the CDSpec file is R/R.cdspec.pl, the difference table is R/R.diff.csv, and so on. In the directory that you ran AFunctor, you'll find an AAOutput directory is created that contains all of the generated source described above.
A RoundTripTest output | Output Meaning |
THEOREM (last058): | means E = E" must be a Bottom identity: |