package Ġcom . c im bul . fa quel db . part i ql . procedure Ċ Ċ import Ġcom . amazon . ion element . api . ion String Ċ import Ġcom . amazon . ion element . api . ion Struct Of Ċ import Ġcom . amazon . ion element . api . to Ion Element Ċ import Ġcom . c im bul . fa quel db . data . Statement Context Ċ import Ġcom . c im bul . fa quel db . data . Table Ċ import Ġcom . c im bul . fa quel db . part i ql . internal Name Ċ import Ġcom . c im bul . fa quel db . part i ql . new From Ion Element Ċ import Ġorg . part i ql . lang . eval . Evaluation Exception Ċ import Ġorg . part i ql . lang . eval . Evaluation Session Ċ import Ġorg . part i ql . lang . eval . Expr Value Ċ import Ġorg . part i ql . lang . eval . Expr Value Factory Ċ import Ġorg . part i ql . lang . eval . builtins . stored procedure . Stored Procedure Ċ import Ġorg . part i ql . lang . eval . builtins . stored procedure . Stored Procedure Signature Ċ Ċ class ĠCreate Table ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠStatement Context , ĊĠĠĠ Ġprivate Ġval Ġvalue Factory : ĠExpr Value Factory Ċ ) Ġ: ĠStored Procedure Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsignature Ġ= ĠStored Procedure Signature ( internal Name (" create _ table "), Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġsignature Ġ= ĠCreate Table . signature ĊĊĠĠĠ Ġoverride Ġfun Ġcall ( session : ĠEvaluation Session , Ġargs : ĠList < Expr Value >): ĠExpr Value Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( args . size Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġargs . single (). ion Value . to Ion Element (). text Value ĊĊĠĠĠĠĠĠĠ Ġif Ġ( context . transaction . database [ name ] Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠEvaluation Exception (" Table Ġwith Ġname Ġ'$ name ' Ġalready Ġexists ", Ġinternal Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= ĠTable ( context . transaction . database . new Id (), Ġname ) ĊĠĠĠĠĠĠĠ Ġcontext . transaction . database Ġ= Ġcontext . transaction . database . with Table ( table ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġvalue Factory . new Bag ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Factory . new From Ion Element ( ion Struct Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" table Id " Ġto Ġion String ( table . id ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} Ċ } Ċ