123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
- <book>
- <bookinfo>
- <!-- DNT-Start --><title>ECL Error Reference</title><!-- DNT-End -->
- </bookinfo>
- <chapter id="ECL_ERRORS">
- <!-- DNT-Start --><title>ECL ERRORS</title><!-- DNT-End -->
- <sect1 id="ECL_ERROR_CODES">
- <!-- DNT-Start --><title>ECL ERROR CODES</title><!-- DNT-End -->
- <para>This Chapter features <!-- DNT-Start -->ECL<!-- DNT-End --> Error Codes</para>
- </sect1>
- <sect1 id="_1">
- <!-- DNT-Start --><title>1</title><!-- DNT-End -->
- <indexterm>
- <primary>1</primary>
- </indexterm>
- <para>no resulting expression tree</para>
- </sect1>
- <sect1 id="_2">
- <!-- DNT-Start --><title>2</title><!-- DNT-End -->
- <indexterm>
- <primary>2</primary>
- </indexterm>
- <para>"there is an expression tree, but should not be executed"</para>
- </sect1>
- <sect1 id="_3">
- <!-- DNT-Start --><title>3</title><!-- DNT-End -->
- <indexterm>
- <primary>3</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_1001">
- <!-- DNT-Start --><title>1001</title><!-- DNT-End -->
- <indexterm>
- <primary>1001</primary>
- </indexterm>
- <para><emphasis role="bold">Error in macro expansion (see error
- follows)</emphasis></para>
- <para>This warning indicates there is an error in the macro expansion.
- Since the compiler will issue an error in the macro, this warning is used
- only for informational purposes; it gives the position where the macro is
- called to help the user trace down the problem.</para>
- <para>Solution: Resolve the error that follows this warning first.
- Example:</para>
- <!-- DNT-Start --><programlisting> 01: f(x) := MACRO
- 02: x+3;
- 03: ENDMACRO;
- 04:
- 05: EXPORT aaa := f(4);
- </programlisting><!-- DNT-End -->
- <para>In line 1-3, a value macro f is defined. This is a value macro
- because it has no Attribute defini- tions. That means the macro body must
- be legal to appear wherever a value expression may appear. Clearly, the
- semicolon at the end of line 2 is extraneous, so this warning saying that
- there is an error in the macro expansion at line 5 appears, and an error
- following this warning says the error is in line 2 of the macro.</para>
- </sect1>
- <sect1 id="_1004">
- <!-- DNT-Start --><title>1004</title><!-- DNT-End -->
- <indexterm>
- <primary>1004</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->LOCAL<!-- DNT-End --> specified on dataset that is not
- Distributed</emphasis></para>
- <para>In a <!-- DNT-Start -->SORT<!-- DNT-End --> or <!-- DNT-Start -->JOIN<!-- DNT-End --> function, <!-- DNT-Start -->LOCAL<!-- DNT-End --> can be specified to indicate that
- the sort or join should be performed while maintaining the distribution of
- a previously distributed dataset. A dataset is consided to be distributed
- if:</para>
- <para>⢠it has been explicitly distributed as the result of the <!-- DNT-Start -->DISTRIBUTE<!-- DNT-End -->
- function</para>
- <para>⢠it is defined as already distributed by the <!-- DNT-Start -->DISTRIBUTED<!-- DNT-End -->
- function</para>
- <para>Solution: Use <!-- DNT-Start -->DISTRIBUTE<!-- DNT-End --> or <!-- DNT-Start -->DISTRIBUTED<!-- DNT-End --> to distribute the dataset,
- or remove the <!-- DNT-Start -->LO<!-- DNT-End -->- <!-- DNT-Start -->CAL<!-- DNT-End --> option.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa',{STRING1 f1}, FLAT);
- 02: distibuted_aaa := DISTRIBUTE(aaa, RANDOM());
- 03: distibuted_aaax := DISTRIBUTED(aaa, RANDOM());
- 04:
- 05: OUTPUT(SORT(aaa, f1, LOCAL));
- 06: OUTPUT(SORT(distibuted_aaa, f1, LOCAL));
- 07: OUTPUT(SORT(distibuted_aaax, f1, LOCAL));
- </programlisting><!-- DNT-End -->
- <para>There are 3 datasets defined (in lines 1, 2, 3). We use the <!-- DNT-Start -->LOCAL<!-- DNT-End -->
- option to sort them (in lines 5,</para>
- <para>6, 7). The first one is not distributed, therefore we get this
- warning in the <!-- DNT-Start -->SORT<!-- DNT-End --> on line 5. The</para>
- <para>second is the result of the <!-- DNT-Start -->DISTRIBUTE<!-- DNT-End --> function, and the third is
- specified as already <!-- DNT-Start -->DIS<!-- DNT-End -->-</para>
- <para><!-- DNT-Start -->TRIBUTED<!-- DNT-End -->. Therefore, lines 6 and 7 compile without warning or
- error.</para>
- </sect1>
- <sect1 id="_1005">
- <!-- DNT-Start --><title>1005</title><!-- DNT-End -->
- <indexterm>
- <primary>1005</primary>
- </indexterm>
- <para><emphasis role="bold">Input is explicitly Distribited but Local not
- specified</emphasis></para>
- <para>In a <!-- DNT-Start -->SORT<!-- DNT-End --> or <!-- DNT-Start -->JOIN<!-- DNT-End --> function, the dataset(s) involved is(are)
- distributed, but <!-- DNT-Start -->LOCAL<!-- DNT-End --> is not</para>
- <para>explicitly specified. See Warning C1004 for information on
- distributed.</para>
- <para>Solution: Add the <!-- DNT-Start -->LOCAL<!-- DNT-End --> option, or make sure the dataset is not
- distributed. Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa',{STRING1 fa; }, FLAT);
- 02: distibuted_aaa := DISTRIBUTE(aaa, RANDOM());
- 03: distibuted_aaax := DISTRIBUTED(aaa, RANDOM());
- 04:
- 05: OUTPUT(SORT(distibuted_aaa, fa));
- 06: OUTPUT(SORT(distibuted_aaax, fa));
- </programlisting><!-- DNT-End -->
- <para>On lines 5 and 6, distributed_aaa and distributed_aaax are
- distributed, but no <!-- DNT-Start -->LOCAL<!-- DNT-End --> option is specified in the <!-- DNT-Start -->SORT<!-- DNT-End -->. Adding ,<!-- DNT-Start -->LOCAL<!-- DNT-End -->
- to the <!-- DNT-Start -->SORT<!-- DNT-End --> in lines 5 and 6 will fix this problem.</para>
- </sect1>
- <sect1 id="_1006">
- <!-- DNT-Start --><title>1006</title><!-- DNT-End -->
- <indexterm>
- <primary>1006</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->CASE<!-- DNT-End --> does not have any
- condition</emphasis></para>
- <para>No condition is given for the <!-- DNT-Start -->CASE<!-- DNT-End --> statement. This makes the <!-- DNT-Start -->CASE<!-- DNT-End -->
- statement unnecessary under the normal situation. This is allowed for easy
- use for some special circumstances, like automatic code generation using
- <!-- DNT-Start -->ECL<!-- DNT-End --> template language.</para>
- <para>Solution: Make sure this is what you wanted. Example:</para>
- <!-- DNT-Start --><programlisting> INTEGER i := 10;
- INTEGER j := CASE(i, 3);
- for other reasons.</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_1007">
- <!-- DNT-Start --><title>1007</title><!-- DNT-End -->
- <indexterm>
- <primary>1007</primary>
- </indexterm>
- <para>Module occurs twice in scope</para>
- </sect1>
- <sect1 id="_1010">
- <!-- DNT-Start --><title>1010</title><!-- DNT-End -->
- <indexterm>
- <primary>1010</primary>
- </indexterm>
- <para><emphasis role="bold">Unsupported language feature</emphasis></para>
- <para>The language feature for which this warning appears is not supported
- yet. However, the parser can recognize this feature. This means either it
- is under development, or is deliberately left out</para>
- <para>Solution: Make sure your QueryBuilder program is the latest version.
- The feature may be sup- ported already in a newer version than the one
- your are using. Otherwise, find a workaround solution for you
- problem.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: aaa := DATASET('aaa', {STRING1 fa; }, FLAT);
- 02: a1 := aaa(fa = 'a');
- 03: a2 := aaa(fa = 'b');
- 04: OUTPUT(a1-a2);
- </programlisting><!-- DNT-End -->
- <para>We get this error on line 4 if the dataset difference operation is
- not supported yet. NOTE: It may be already supported when you read
- this!</para>
- </sect1>
- <sect1 id="_1012">
- <!-- DNT-Start --><title>1012</title><!-- DNT-End -->
- <indexterm>
- <primary>1012</primary>
- </indexterm>
- <para>';' is not legal here (empty statement is not allowed)</para>
- </sect1>
- <sect1 id="_1013">
- <!-- DNT-Start --><title>1013</title><!-- DNT-End -->
- <indexterm>
- <primary>1013</primary>
- </indexterm>
- <para>A field in transform already assigned a value</para>
- </sect1>
- <sect1 id="_1014">
- <!-- DNT-Start --><title>1014</title><!-- DNT-End -->
- <indexterm>
- <primary>1014</primary>
- </indexterm>
- <para>physicalLength is not needed, ignored</para>
- </sect1>
- <sect1 id="_1015">
- <!-- DNT-Start --><title>1015</title><!-- DNT-End -->
- <indexterm>
- <primary>1015</primary>
- </indexterm>
- <para>Module is already imported</para>
- </sect1>
- <sect1 id="_1016">
- <!-- DNT-Start --><title>1016</title><!-- DNT-End -->
- <indexterm>
- <primary>1016</primary>
- </indexterm>
- <para>Syntax obsoleted: use alternative</para>
- </sect1>
- <sect1 id="_1017">
- <!-- DNT-Start --><title>1017</title><!-- DNT-End -->
- <indexterm>
- <primary>1017</primary>
- </indexterm>
- <para>Empty assignall has no effort</para>
- </sect1>
- <sect1 id="_1018">
- <!-- DNT-Start --><title>1018</title><!-- DNT-End -->
- <indexterm>
- <primary>1018</primary>
- </indexterm>
- <para>Unsupported service attribute</para>
- </sect1>
- <sect1 id="_1019">
- <!-- DNT-Start --><title>1019</title><!-- DNT-End -->
- <indexterm>
- <primary>1019</primary>
- </indexterm>
- <para>An service attribute does not need a value</para>
- </sect1>
- <sect1 id="_1020">
- <!-- DNT-Start --><title>1020</title><!-- DNT-End -->
- <indexterm>
- <primary>1020</primary>
- </indexterm>
- <para>Module name mismatch</para>
- </sect1>
- <sect1 id="_1021">
- <!-- DNT-Start --><title>1021</title><!-- DNT-End -->
- <indexterm>
- <primary>1021</primary>
- </indexterm>
- <para><!-- DNT-Start -->OUTPUT<!-- DNT-End --> record contains no variables - probably an error</para>
- </sect1>
- <sect1 id="_1022">
- <!-- DNT-Start --><title>1022</title><!-- DNT-End -->
- <indexterm>
- <primary>1022</primary>
- </indexterm>
- <para>Condition is always true</para>
- </sect1>
- <sect1 id="_1023">
- <!-- DNT-Start --><title>1023</title><!-- DNT-End -->
- <indexterm>
- <primary>1023</primary>
- </indexterm>
- <para>Condition is always false</para>
- </sect1>
- <sect1 id="_1024">
- <!-- DNT-Start --><title>1024</title><!-- DNT-End -->
- <indexterm>
- <primary>1024</primary>
- </indexterm>
- <para>#<!-- DNT-Start -->WARNING<!-- DNT-End --> statement</para>
- </sect1>
- <sect1 id="_1025">
- <!-- DNT-Start --><title>1025</title><!-- DNT-End -->
- <indexterm>
- <primary>1025</primary>
- </indexterm>
- <para>Duplicate case values</para>
- </sect1>
- <sect1 id="_1026">
- <!-- DNT-Start --><title>1026</title><!-- DNT-End -->
- <indexterm>
- <primary>1026</primary>
- </indexterm>
- <para>Local will be ignored for a grouped dataset</para>
- </sect1>
- <sect1 id="_1027">
- <!-- DNT-Start --><title>1027</title><!-- DNT-End -->
- <indexterm>
- <primary>1027</primary>
- </indexterm>
- <para>Local expected</para>
- </sect1>
- <sect1 id="_1028">
- <!-- DNT-Start --><title>1028</title><!-- DNT-End -->
- <indexterm>
- <primary>1028</primary>
- </indexterm>
- <para>Grouping will be ignored.</para>
- </sect1>
- <sect1 id="_1029">
- <!-- DNT-Start --><title>1029</title><!-- DNT-End -->
- <indexterm>
- <primary>1029</primary>
- </indexterm>
- <para>No longer used (this is now an error, not a warning)</para>
- </sect1>
- <sect1 id="_1030">
- <!-- DNT-Start --><title>1030</title><!-- DNT-End -->
- <indexterm>
- <primary>1030</primary>
- </indexterm>
- <para>Counter not used in transform</para>
- </sect1>
- <sect1 id="_1031">
- <!-- DNT-Start --><title>1031</title><!-- DNT-End -->
- <indexterm>
- <primary>1031</primary>
- </indexterm>
- <para>Merge inputs don't appear to be sorted</para>
- </sect1>
- <sect1 id="_1032">
- <!-- DNT-Start --><title>1032</title><!-- DNT-End -->
- <indexterm>
- <primary>1032</primary>
- </indexterm>
- <para>Merge inputs don't appear to match</para>
- </sect1>
- <sect1 id="_1033">
- <!-- DNT-Start --><title>1033</title><!-- DNT-End -->
- <indexterm>
- <primary>1033</primary>
- </indexterm>
- <para>Definition is sandboxed</para>
- </sect1>
- <sect1 id="_1034">
- <!-- DNT-Start --><title>1034</title><!-- DNT-End -->
- <indexterm>
- <primary>1034</primary>
- </indexterm>
- <para>Definition reference sandbox</para>
- </sect1>
- <sect1 id="_1035">
- <!-- DNT-Start --><title>1035</title><!-- DNT-End -->
- <indexterm>
- <primary>1035</primary>
- </indexterm>
- <para>regular expression syntax</para>
- </sect1>
- <sect1 id="_1036">
- <!-- DNT-Start --><title>1036</title><!-- DNT-End -->
- <indexterm>
- <primary>1036</primary>
- </indexterm>
- <para>deprecated syntax</para>
- </sect1>
- <sect1 id="_1037">
- <!-- DNT-Start --><title>1037</title><!-- DNT-End -->
- <indexterm>
- <primary>1037</primary>
- </indexterm>
- <para>group input does not appear to be sorted</para>
- </sect1>
- <sect1 id="_1038">
- <!-- DNT-Start --><title>1038</title><!-- DNT-End -->
- <indexterm>
- <primary>1038</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_1039">
- <!-- DNT-Start --><title>1039</title><!-- DNT-End -->
- <indexterm>
- <primary>1039</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_1040">
- <!-- DNT-Start --><title>1040</title><!-- DNT-End -->
- <indexterm>
- <primary>1040</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_1041">
- <!-- DNT-Start --><title>1041</title><!-- DNT-End -->
- <indexterm>
- <primary>1041</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_1042">
- <!-- DNT-Start --><title>1042</title><!-- DNT-End -->
- <indexterm>
- <primary>1042</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_1043">
- <!-- DNT-Start --><title>1043</title><!-- DNT-End -->
- <indexterm>
- <primary>1043</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_1044">
- <!-- DNT-Start --><title>1044</title><!-- DNT-End -->
- <indexterm>
- <primary>1044</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_1045">
- <!-- DNT-Start --><title>1045</title><!-- DNT-End -->
- <indexterm>
- <primary>1045</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_1046">
- <!-- DNT-Start --><title>1046</title><!-- DNT-End -->
- <indexterm>
- <primary>1046</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_1047">
- <!-- DNT-Start --><title>1047</title><!-- DNT-End -->
- <indexterm>
- <primary>1047</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_1048">
- <!-- DNT-Start --><title>1048</title><!-- DNT-End -->
- <indexterm>
- <primary>1048</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_1049">
- <!-- DNT-Start --><title>1049</title><!-- DNT-End -->
- <indexterm>
- <primary>1049</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2000">
- <!-- DNT-Start --><title>2000</title><!-- DNT-End -->
- <indexterm>
- <primary>2000</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2001">
- <!-- DNT-Start --><title>2001</title><!-- DNT-End -->
- <indexterm>
- <primary>2001</primary>
- </indexterm>
- <para><emphasis role="bold">Type mismatch - Real value
- expected</emphasis></para>
- <para>In the context where the error occurs, a real value is expected. A
- real value can be an real con- stant, or an expression that evaluates to a
- real value. Therefore, 12, 12.34, <!-- DNT-Start -->LOG<!-- DNT-End -->(0.4)+3, are valid, but '12.34' and
- 'String' are not.</para>
- <para>Solution: Make sure the expression in question evaluates to a real
- number. A string constant, like '123.2' is <!-- DNT-Start -->NOT<!-- DNT-End --> a real number. For C
- programmers, don't think 'C' or '1' is a char, and therefore can be used
- as an integer (or real); there is no char type in <!-- DNT-Start -->ECL<!-- DNT-End -->. Type casting may be
- needed in some cases. For example: (<!-- DNT-Start -->REAL<!-- DNT-End -->4)'12.34' creates a valid real
- value by casting the strinf to real. Checking the code before and after
- the offending code often helps.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: v1 := EXP('STR');
- 02: v2 := LN('STR');
- 03: v3 := LOG('STR');
- 04: v4 := POWER('STR', 12);
- 05: v5 := ROUND('STR');
- 06: v6 := ROUNDUP('STR');
- 07: v7 := SQRT('STR');
- 08: v8 := TRUNCATE('STR');
- 09: v9 := REALFORMAT('STR',3,4);
- </programlisting><!-- DNT-End -->
- <para>These examples all need to change to a real value. All the functions
- expect real value as the first parameters.</para>
- </sect1>
- <sect1 id="_2002">
- <!-- DNT-Start --><title>2002</title><!-- DNT-End -->
- <indexterm>
- <primary>2002</primary>
- </indexterm>
- <para><emphasis role="bold">Type mismatch -- Integer value
- expected</emphasis></para>
- <para>An integer value is expected in the context. An integer value can be
- an integer constant, or an</para>
- <para>expression that evaluates to an integer value The following is a
- (not necessarily complete) list</para>
- <para>where an integer value is expected:</para>
- <para>⢠<!-- DNT-Start -->BIG<!-- DNT-End -->_<!-- DNT-Start -->ENDIAN<!-- DNT-End --> value</para>
- <para>⢠<!-- DNT-Start -->LITTLE<!-- DNT-End -->_<!-- DNT-Start -->ENDIAN<!-- DNT-End --> value</para>
- <para>⢠<!-- DNT-Start -->WAIT<!-- DNT-End --> (value)</para>
- <para>⢠expr1 op expr2, where op can be: %, <!-- DNT-Start -->DIV<!-- DNT-End -->, &, |, ^</para>
- <para>⢠substring range: [ start_index .. end_index]</para>
- <para>⢠<!-- DNT-Start -->CHOOSE<!-- DNT-End -->(expr, choose_list)</para>
- <para>⢠<!-- DNT-Start -->CHOOSEN<!-- DNT-End -->(dataset, value)</para>
- <para>⢠<!-- DNT-Start -->DEDUP<!-- DNT-End -->(..., <!-- DNT-Start -->KEEP<!-- DNT-End --> value)</para>
- <para>⢠<!-- DNT-Start -->INTFORMAT<!-- DNT-End -->(value1, value2, value3)</para>
- <para>⢠<!-- DNT-Start -->REALFORMAT<!-- DNT-End -->(real_value, value1, value2) All bold expressions must
- be integer values.</para>
- <para>Solution: Make sure the value is an integer value. Use type cast if
- necessary. Example:</para>
- <!-- DNT-Start --><programlisting> 01: WAIT('STR');
- 02: v1 := <emphasis role="bold">10.2 </emphasis>% <emphasis
- role="bold">11.2</emphasis>;
- 03: v2 := <emphasis role="bold">10.2 </emphasis>DIV <emphasis
- role="bold">11.2</emphasis>;
- 04: v3 := <emphasis role="bold">10.2 </emphasis>| <emphasis
- role="bold">11.2</emphasis>;
- 05: v4 := <emphasis role="bold">10.2 </emphasis>& <emphasis
- role="bold">11.2</emphasis>;
- 06: v5 := <emphasis role="bold">10.2 </emphasis>^ <emphasis
- role="bold">11.2</emphasis>;
- 07: STRING s := 'This is a string.';
- 08: s[<emphasis role="bold">0.23</emphasis>];
- 09: s[<emphasis role="bold">0.23</emphasis>..<emphasis role="bold">2.34</emphasis>];
- 10: s[..<emphasis role="bold">2.3</emphasis>];
- 11: s[<emphasis role="bold">2.3</emphasis>..];
- 12: INTFORMAT(<emphasis role="bold">1.2</emphasis>, <emphasis
- role="bold">2.2</emphasis>, <emphasis role="bold">3.3</emphasis>);
- 13: REALFORMAT(1.0, <emphasis role="bold">2.0</emphasis>, <emphasis
- role="bold">3.0</emphasis>);
- 14: CHOOSE(<emphasis role="bold">3.2</emphasis>, 9, 8, 7, 6, 5);
- 15: aaa := DATASET('aaa',{STRING1 fa; }, FLAT);
- 16: OUTPUT(choosen(aaa,<emphasis role="bold">10.2</emphasis>));
- 17: OUTPUT(DEDUP(aaa, fa = 'A', KEEP <emphasis role="bold">2.2</emphasis>));
- </programlisting><!-- DNT-End -->
- <para>All bold expressions cause such an error.</para>
- </sect1>
- <sect1 id="_2003">
- <!-- DNT-Start --><title>2003</title><!-- DNT-End -->
- <indexterm>
- <primary>2003</primary>
- </indexterm>
- <para><emphasis role="bold">Type mismatch - String value
- expected</emphasis></para>
- <para>A string value is expected. A string value can be a string constant,
- or an expression that evaluates</para>
- <para>to a string value. The following is a list that a string is
- expected:</para>
- <para>⢠<!-- DNT-Start -->EVENT<!-- DNT-End -->(expr1, expr2)</para>
- <para>⢠<!-- DNT-Start -->LENGTH<!-- DNT-End -->(value)</para>
- <para>⢠<!-- DNT-Start -->TRIM<!-- DNT-End -->(value [, options])</para>
- <para>All bold expressions must be string values.</para>
- <para>For C/C++/Java/Pascal etc programmers, string constants are enclosed
- in single quotes ('') in <!-- DNT-Start -->ECL<!-- DNT-End -->, not double quotes (""). Also, <!-- DNT-Start -->ECL<!-- DNT-End --> currently
- only supports two escape sequences: \' and \\ which stands for the single
- quote and backslash. Support for more escape sequences may be added as
- needed in the future.</para>
- <para>Solution: Make sure the expression is a string constant or evaluates
- to a string value. Use type cast or <!-- DNT-Start -->TRANSFER<!-- DNT-End --> as needed.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: WAIT(EVENT(123, TRUE));
- 02: len := LENGTH(123);
- 03: STRING s:= TRIM(123);</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2004">
- <!-- DNT-Start --><title>2004</title><!-- DNT-End -->
- <indexterm>
- <primary>2004</primary>
- </indexterm>
- <para><emphasis role="bold">Type mismatch - Integer or real value
- expected</emphasis></para>
- <para>An integer or real value is expected. It can be an integer constant,
- real constant, or an expression that evaluates to a real or integer value.
- The following is a list of cases where an integer or</para>
- <para>real value is expected:</para>
- <para>⢠expr1 + epxr2</para>
- <para>⢠expr1 -- expr2</para>
- <para>⢠<!-- DNT-Start -->POWER<!-- DNT-End -->(value1, value2)</para>
- <para>⢠<!-- DNT-Start -->AVE<!-- DNT-End -->(dataset, expr)</para>
- <para>⢠<!-- DNT-Start -->AVE<!-- DNT-End -->(<!-- DNT-Start -->GROUP<!-- DNT-End -->, expr)</para>
- <para>⢠<!-- DNT-Start -->DISTRIBUTE<!-- DNT-End -->(dataset, value)</para>
- <para>⢠<!-- DNT-Start -->DISTRIBUTED<!-- DNT-End -->(dataset, value, tranform) This error is the same as
- error C2072.</para>
- <para>Solution: Make sure it is a integer or real value. Use type casting
- if necessary. Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 fa; }, FLAT);
- 02: i := 3 + <emphasis role="bold">TRUE</emphasis>;
- 03: j := 4 - <emphasis role="bold">TRUE</emphasis>;
- 04: x1 := POWER(20, <emphasis role="bold">TRUE</emphasis>);
- 05: x2 := AVE(aaa, <emphasis role="bold">'string'</emphasis>);
- 06: x3 := AVE(GROUP, <emphasis role="bold">'string'</emphasis>);
- 07: d1 := DISTRIBUTE(aaa, <emphasis role="bold">'abc'</emphasis>);
- 08: d2 := DISTRIBUTED(aaa, <emphasis role="bold">TRUE</emphasis>);
- </programlisting><!-- DNT-End -->
- <para>All bold expressions are expected to be integer or real
- value.</para>
- </sect1>
- <sect1 id="_2005">
- <!-- DNT-Start --><title>2005</title><!-- DNT-End -->
- <indexterm>
- <primary>2005</primary>
- </indexterm>
- <para><emphasis role="bold">Table type mismatch</emphasis></para>
- <para>???</para>
- <para>Solution: Example:</para>
- </sect1>
- <sect1 id="_2006">
- <!-- DNT-Start --><title>2006</title><!-- DNT-End -->
- <indexterm>
- <primary>2006</primary>
- </indexterm>
- <para><emphasis role="bold">Record type mismatch</emphasis></para>
- <para>???</para>
- <para>Solution: Example:</para>
- </sect1>
- <sect1 id="_2007">
- <!-- DNT-Start --><title>2007</title><!-- DNT-End -->
- <indexterm>
- <primary>2007</primary>
- </indexterm>
- <para><emphasis role="bold">Incompatible types</emphasis></para>
- <para>There is a type incompatiblity problem here. This normally a result
- of some other error, like</para>
- <para>"Integer value is expected".</para>
- <para>Solution: Resolve the error before this one (if any) first,
- otherwise, make sure the types are compatible.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: i := 3 + TRUE;
- 02: STRING20 s := 'ABC';
- 03: TYPEOF(s) y := 10;
- </programlisting><!-- DNT-End -->
- <para>First, an Error C2004 will be reported by the compiler, then this
- error will be reported. For line</para>
- <para>3, since <!-- DNT-Start -->TYPEOF<!-- DNT-End -->(s) is <!-- DNT-Start -->STRING<!-- DNT-End -->20, so we such an error for assignment
- :=10.</para>
- </sect1>
- <sect1 id="_2008">
- <!-- DNT-Start --><title>2008</title><!-- DNT-End -->
- <indexterm>
- <primary>2008</primary>
- </indexterm>
- <para><emphasis role="bold">Type does not require
- parameters</emphasis></para>
- <para>No parameter is required for a user defined type. A user defined
- type can be defined in <!-- DNT-Start -->ECL<!-- DNT-End --></para>
- <para>using <!-- DNT-Start -->TYPE<!-- DNT-End -->. A user defined type can have parameters. See Example
- below.</para>
- <para>Solution: Try to get rid of the parameter(s). Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: MyType := TYPE
- 02: EXPORT INTEGER Load(INTEGER x) := x+1;
- 03: EXPORT INTEGER Store(INTEGER x) := x-1;
- 04: END;
- 05:
- 06: MyRec := RECORD
- 07: MyType(3) abc;
- 08: END;
- 09:
- 10: NeedC(INTEGER len) := TYPE
- 11: EXPORT String Load(String S) := 'C'+S[1..len];
- 12: EXPORT String Store(String s) := S[2..len+1];
- 13: EXPORT Integer PhysicalLength(String s) := len;
- 14: END;
- 15:
- 16: Rec := RECORD
- 17: NeedC(3) good;
- 18: NeedC(3,5) abc;
- 19: NeedC xyz;
- 20: END;
- </programlisting><!-- DNT-End -->
- <para>In line 7, this error ocurrs. Line 10-14 shows an example that
- defines a user type with parameter. Line 17 is fine, but an error C2061
- occurs in line 18, and C2062 occurs in line 19.</para>
- </sect1>
- <sect1 id="_2009">
- <!-- DNT-Start --><title>2009</title><!-- DNT-End -->
- <indexterm>
- <primary>2009</primary>
- </indexterm>
- <para><emphasis role="bold">Boolean/Set
- of/Integer/Real/String/Table/Record/Unknown value
- expected</emphasis></para>
- <para>A certain type is expected to be passed as the parameter in this
- context. Solution: Make sure the passed parameter is one of the expected
- types.</para>
- </sect1>
- <sect1 id="_2010">
- <!-- DNT-Start --><title>2010</title><!-- DNT-End -->
- <indexterm>
- <primary>2010</primary>
- </indexterm>
- <para><emphasis role="bold">Illegal operand for <!-- DNT-Start -->TYPEOF<!-- DNT-End --></emphasis></para>
- <para>The operand for <!-- DNT-Start -->TYPEOF<!-- DNT-End --> must be an expression whose type is
- known.</para>
- <para>In <!-- DNT-Start -->ECL<!-- DNT-End -->, we can get the type of an expression and use it as type. All
- the following are legal uses of <!-- DNT-Start -->TYPEOF<!-- DNT-End -->:</para>
- <!-- DNT-Start --><programlisting>
- TYPEOF('ABC') x1 := 'XYZ';
- TYPEOF(5) x2 := 10;
- STRING20 s := 'ABC';
- TYPEOF(s) x3 := 'DEF';
- TYPEOF(x1) x4 := 'GHI'
- </programlisting><!-- DNT-End -->
- <para>Solution: Make sure the type of the operand is known.</para>
- </sect1>
- <sect1 id="_2011">
- <!-- DNT-Start --><title>2011</title><!-- DNT-End -->
- <indexterm>
- <primary>2011</primary>
- </indexterm>
- <para><emphasis role="bold">Cannot nest <!-- DNT-Start -->TYPE<!-- DNT-End -->
- declarations</emphasis></para>
- <para><!-- DNT-Start -->TYPE<!-- DNT-End --> defintions cannot be nested.</para>
- <para>Solution: Define these <!-- DNT-Start -->TYPEs<!-- DNT-End --> separately instead of nested.
- Example:</para>
- <!-- DNT-Start --><programlisting> ReverseString4 := TYPE
- MyType := TYPE
- EXPORT INTEGER Load(INTEGER x) := x+1; EXPORT INTEGER
- Store(INTEGER x) := x-1;
- END;
- END;
- SHARED STRING4 Rev(String4 S) := s[4]+s[3]+s[2]+s[1]; EXPORT
- String4 Load(String4 s) := Rev(s);
- EXPORT String4 Store(String4 s) := Rev(s);
- </programlisting><!-- DNT-End -->
- <para>Here, inside the <!-- DNT-Start -->TYPE<!-- DNT-End --> defintion for ReverseString4, we are trying to
- define another <!-- DNT-Start -->TYPE<!-- DNT-End --> MyType. This nesting is not allowed.</para>
- </sect1>
- <sect1 id="_2012">
- <!-- DNT-Start --><title>2012</title><!-- DNT-End -->
- <indexterm>
- <primary>2012</primary>
- </indexterm>
- <para><emphasis role="bold">Datasets must be the same
- type</emphasis></para>
- <para>The datasets have different types. The + and -- operations can be
- applied to datasets and these</para>
- <para>two datasets must have the same type. Two datasets are of the same
- type if:</para>
- <para>⢠Both are defined as the same <!-- DNT-Start -->DATASET<!-- DNT-End --> type</para>
- <para>⢠Both are defined as a subset of the same <!-- DNT-Start -->DATASET<!-- DNT-End --> using
- filters</para>
- <para>⢠One is defined as a <!-- DNT-Start -->DATASET<!-- DNT-End --> type, the other is a subset of the
- same type using filter</para>
- <para>Two datasets are not the same type if:</para>
- <para>⢠They are defined with different <!-- DNT-Start -->DATASET<!-- DNT-End --> names, even if they have
- exactly the same</para>
- <para><!-- DNT-Start -->RECORD<!-- DNT-End --> structures.</para>
- <para>⢠One is defined as a <!-- DNT-Start -->DATASET<!-- DNT-End --> type, the other is derived from the
- same <!-- DNT-Start -->DATASET<!-- DNT-End --> type using <!-- DNT-Start -->TABLE<!-- DNT-End -->(), even if they have exactly the same <!-- DNT-Start -->RECORD<!-- DNT-End -->
- structure.</para>
- <para>The following example illustrates these rules.</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 fa; STRING1 fb;}, HOLE);
- 02: bbb := DATASET('bbb', {STRING1 fa; STRING1 fb;}, HOLE);
- 03:
- 04: a1 := aaa(fa = 'a');
- 05: a2 := aaa(fa = 'b');
- 06: a3 := TABLE(aaa, {aaa.fa,aaa.fb});
- 07:
- 08: OUTPUT(aaa+a1); // OK
- 09: OUTPUT(a1+a2);
- 10:
- 11: OUTPUT(a1+a3); // BAD
- 12: OUTPUT(aaa+bbb);
- </programlisting><!-- DNT-End -->
- <para>In line 8, aaa is a dataset type, a1 is a subset of the same type
- using a filter (line 4). In line 10, both a1 and a2 are subsets of dataset
- type aaa. They are <!-- DNT-Start -->OK<!-- DNT-End -->.</para>
- <para>In line 11, a3 is derived from aaa using <!-- DNT-Start -->TABLE<!-- DNT-End -->(). In line 14, aaa
- and bbb are different dataset types, although they have exactly the same
- structure.</para>
- <para>Solution: Follow the above guidelines to make sure the two datasets
- involved are the same type. The fact that they have the same structure is
- not enough.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 fa; }, FLAT);
- 02: bbb := DATASET('bbb', {STRING1 fa; }, HOLE);
- 03:
- 04: OUTPUT(aaa+bbb,{fa});
- 05: OUTPUT(aaa-bbb,{fa});
- 06:
- 07: a1 := aaa(fa = 'a');
- 08: a2 := aaa(fa = 'b');
- 09:
- 10: OUTPUT(a1+a2);
- 11: OUTPUT(a1-a2);</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2013">
- <!-- DNT-Start --><title>2013</title><!-- DNT-End -->
- <indexterm>
- <primary>2013</primary>
- </indexterm>
- <para><emphasis role="bold">The types must be the same</emphasis></para>
- <para>The items that are in question must have the same type. More
- precisely, the types must be exactly the same, not just compatible. See
- Error C2012 for more details on how two dataset types are treated as the
- same type.</para>
- <para>Solution: Make sure they have the same type. Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 a;}, HOLE);
- 02: bbb := DATASET('bbb', {STRING1 b;}, HOLE);
- 03: ccc := aaa(a='a');
- 04: s1 := if(aaa=bbb,'true','false');
- 05: s2 := if(aaa=ccc,'true','false');
- 06: s3 := if(aaa!=bbb,'true','false');
- 07: s4 := if(aaa!=ccc,'true','false');
- </programlisting><!-- DNT-End -->
- <para>In this example, we are comparing the equality of two datasets. Two
- dataset must be the same types if we want to compare them.</para>
- </sect1>
- <sect1 id="_2014">
- <!-- DNT-Start --><title>2014</title><!-- DNT-End -->
- <indexterm>
- <primary>2014</primary>
- </indexterm>
- <para>List element has unknown type</para>
- </sect1>
- <sect1 id="_2015">
- <!-- DNT-Start --><title>2015</title><!-- DNT-End -->
- <indexterm>
- <primary>2015</primary>
- </indexterm>
- <para><emphasis role="bold">Integer type expected</emphasis></para>
- <para>A valid <!-- DNT-Start -->INTEGER<!-- DNT-End --> type is expected. A valid <!-- DNT-Start -->INTEGER<!-- DNT-End --> type can be
- <!-- DNT-Start -->INTEGER<!-- DNT-End --> or <!-- DNT-Start -->INTEGERn<!-- DNT-End -->, where n is 1, 2, 4 or 8. Note that this error is
- different from Error C2002, where an integer value is expected.</para>
- <para>Solution: Make sure it is an valid <!-- DNT-Start -->INTEGER<!-- DNT-End --> type. Example:</para>
- <!-- DNT-Start --><programlisting> 01: BIG_ENDIAN STRING i := 'ABC';
- 02: LITTLE_ENDIAN BOOLEAN b := FALSE;
- </programlisting><!-- DNT-End -->
- <para><!-- DNT-Start -->BIG<!-- DNT-End -->_<!-- DNT-Start -->ENDIAN<!-- DNT-End --> and <!-- DNT-Start -->LITTLE<!-- DNT-End -->_<!-- DNT-Start -->ENDIAN<!-- DNT-End --> can be used on valid <!-- DNT-Start -->INTEGER<!-- DNT-End --> types
- only.</para>
- </sect1>
- <sect1 id="_2016">
- <!-- DNT-Start --><title>2016</title><!-- DNT-End -->
- <indexterm>
- <primary>2016</primary>
- </indexterm>
- <para><emphasis role="bold">Integer or decimal type
- expected</emphasis></para>
- <para>A valid <!-- DNT-Start -->INTEGER<!-- DNT-End --> or <!-- DNT-Start -->DECIMAL<!-- DNT-End --> type is expected. A valid <!-- DNT-Start -->INTEGER<!-- DNT-End --> type
- can be <!-- DNT-Start -->INTEGER<!-- DNT-End --></para>
- <para>or <!-- DNT-Start -->INTEGERn<!-- DNT-End -->, where n is 1, 2, 4 or 8. A valid decimal type can be
- <!-- DNT-Start -->DECIMALn<!-- DNT-End --> where n is an</para>
- <para>positive integer, or <!-- DNT-Start -->DECIMALn<!-- DNT-End -->_y where n and y are positive integers.
- This normally happens</para>
- <para>after the <!-- DNT-Start -->UNSIGNED<!-- DNT-End --> keyword, which can be applied to <!-- DNT-Start -->INTEGER<!-- DNT-End --> or
- <!-- DNT-Start -->DECIMAL<!-- DNT-End --> types only.</para>
- <para>Note that this error is different from Error C2001, 2002, where an
- integer value or real value is</para>
- <para>expected.</para>
- <para>Solution: Make sure it is a valid <!-- DNT-Start -->INTEGER<!-- DNT-End --> or <!-- DNT-Start -->DECIMAL<!-- DNT-End --> type.
- Example:</para>
- <!-- DNT-Start --><programlisting> UNSIGNED STRING s := 'ABC';
- UNSIGNED BOOLEAN b := FALSE;</programlisting><!-- DNT-End -->
- <para><!-- DNT-Start -->UNSIGNED<!-- DNT-End --> cannot be used with <!-- DNT-Start -->STRING<!-- DNT-End --> or <!-- DNT-Start -->BOOLEAN<!-- DNT-End -->.</para>
- </sect1>
- <sect1 id="_2017">
- <!-- DNT-Start --><title>2017</title><!-- DNT-End -->
- <indexterm>
- <primary>2017</primary>
- </indexterm>
- <para><emphasis role="bold">String type expected</emphasis></para>
- <para>A valid <!-- DNT-Start -->STRING<!-- DNT-End --> type is expected. A valid <!-- DNT-Start -->STRING<!-- DNT-End --> type can be <!-- DNT-Start -->STRING<!-- DNT-End -->
- or <!-- DNT-Start -->STRINGn<!-- DNT-End -->, where n is an integer that is greater than 0.</para>
- <para>The following list are the cases this error can occur:</para>
- <para>⢠<!-- DNT-Start -->ASCII<!-- DNT-End --> type</para>
- <para>⢠<!-- DNT-Start -->EBCDIC<!-- DNT-End --> type</para>
- <para>The bold type must be a valid <!-- DNT-Start -->STRING<!-- DNT-End --> type. Note that this error is
- different from Error C2003, where a string value is expected.</para>
- <para>Solution: Change it to a valid <!-- DNT-Start -->STRING<!-- DNT-End --> type. Example:</para>
- <!-- DNT-Start --><programlisting> 01: ASCII <emphasis role="bold">INTEGER </emphasis>s1 := 123;
- 02: EBCDIC <emphasis role="bold">BOOLEAN </emphasis>b := TRUE;
- </programlisting><!-- DNT-End -->
- <para>All bold types should be a <!-- DNT-Start -->STRING<!-- DNT-End --> type as expected by <!-- DNT-Start -->ASCII<!-- DNT-End --> or
- <!-- DNT-Start -->EBCDIC<!-- DNT-End -->.</para>
- </sect1>
- <sect1 id="_2018">
- <!-- DNT-Start --><title>2018</title><!-- DNT-End -->
- <indexterm>
- <primary>2018</primary>
- </indexterm>
- <para><emphasis role="bold">Indexing <!-- DNT-Start -->ALL<!-- DNT-End --> is undefined</emphasis></para>
- </sect1>
- <sect1 id="_2019">
- <!-- DNT-Start --><title>2019</title><!-- DNT-End -->
- <indexterm>
- <primary>2019</primary>
- </indexterm>
- <para><emphasis role="bold">Type mismatch - Integer or string value
- expected</emphasis></para>
- </sect1>
- <sect1 id="_2020">
- <!-- DNT-Start --><title>2020</title><!-- DNT-End -->
- <indexterm>
- <primary>2020</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->COUNT<!-- DNT-End --> not valid in this
- context</emphasis></para>
- <para>In the context where this error occurs, <!-- DNT-Start -->COUNT<!-- DNT-End --> is not allowed.</para>
- <para><!-- DNT-Start -->COUNT<!-- DNT-End --> (as an alias to the <!-- DNT-Start -->COUNTER<!-- DNT-End --> keyword) is only allowed in the
- following two cases:</para>
- <para>1. As a parameter passed to the transform function in
- <!-- DNT-Start -->NORMALIZE<!-- DNT-End -->:</para>
- <para><!-- DNT-Start -->NORMALIZE<!-- DNT-End -->(dataset, expression, myTranform (<!-- DNT-Start -->LEFT<!-- DNT-End -->,<!-- DNT-Start -->COUNT<!-- DNT-End -->));</para>
- <para>2. As a parameter passed to the transform function in
- <!-- DNT-Start -->DENORMALIZE<!-- DNT-End -->:</para>
- <para><!-- DNT-Start -->DENORMALIZE<!-- DNT-End -->(dataset, expression, myTranform (<!-- DNT-Start -->LEFT<!-- DNT-End -->,<!-- DNT-Start -->COUNT<!-- DNT-End -->));</para>
- <para>The <!-- DNT-Start -->COUNT<!-- DNT-End --> keyword is not allowed to be used anywhere else.</para>
- <para>Please note that the <!-- DNT-Start -->COUNT<!-- DNT-End -->() function can be applied to a dataset,
- as in <!-- DNT-Start -->COUNT<!-- DNT-End -->(Person()); Solution: Make sure it is in the <!-- DNT-Start -->NORMALIZE<!-- DNT-End --> or
- <!-- DNT-Start -->DENORMALIZE<!-- DNT-End --> context. If you are using</para>
- <para><!-- DNT-Start -->COUNT<!-- DNT-End --> to count the number of tuples in a dataset, use the function
- <!-- DNT-Start -->COUNT<!-- DNT-End -->(): the ( ) is</para>
- <para>required to use it as a function.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: NamesRec := RECORD
- 02: UNSIGNED1 numRows := 0;
- 03: STRING20 thename;
- 04: STRING20 addr1 := '';
- 05: STRING20 addr2 := '';
- 06: STRING20 addr3 := '';
- 07: STRING20 addr4 := '';
- 08: END;
- 09:
- 10: NamesTable := DATASET([
- 11: {1, 'Gavin', '10 Maltings Lane'},
- 12: {2, 'Liz', '10 Maltings Lane', '3 The Cottages'},
- 13: {0, 'Mr Nobody'},
- 14: {4, 'Mr Everywhere', 'Here', 'There', 'Near', 'Far'}
- 15: ], NamesRec);
- 16:
- 17: OutRec := RECORD
- 18: UNSIGNED1 order;
- 19: UNSIGNED1 numRows;
- 20: STRING20 thename;
- 21: STRING20 addr;
- 22: END;
- 23:
- 24: OutRec NormalizeAddresses(NamesRec L, INTEGER C) := TRANSFORM
- 25: SELF := L;
- 26: SELF.order := C;
- 27: SELF.addr := CHOOSE(C, L.addr1, L.addr2, L.addr3, L.addr4);
- 28: END;
- 29:
- 30: NormalizeAddrs := NORMALIZE(namesTable, LEFT.numRows,
- 31: NormalizeAddresses(LEFT,COUNT));
- 32:
- 33: OUTPUT(NormalizeAddrs);
- </programlisting><!-- DNT-End -->
- <para>This example is a correct use of <!-- DNT-Start -->COUNT<!-- DNT-End -->. We can also replace the
- <!-- DNT-Start -->COUNT<!-- DNT-End --> keyword with</para>
- <para><!-- DNT-Start -->COUNTER<!-- DNT-End -->. The output of this example is:</para>
- <para><informaltable colsep="0" frame="none" rowsep="0">
- <tgroup cols="4">
- <colspec colwidth="35.00pt" />
- <colspec colwidth="60.00pt" />
- <colspec colwidth="108.00pt" />
- <colspec colwidth="113.00pt" />
- <tbody>
- <row>
- <entry><!-- DNT-Start -->Order<!-- DNT-End --></entry>
- <entry>NumRows</entry>
- <entry><!-- DNT-Start -->thename<!-- DNT-End --></entry>
- <entry>addr</entry>
- </row>
- <row>
- <entry><!-- DNT-Start -->1<!-- DNT-End --></entry>
- <entry>1</entry>
- <entry><!-- DNT-Start -->Gavin<!-- DNT-End --></entry>
- <entry>10 Maltings Lane</entry>
- </row>
- <row>
- <entry><!-- DNT-Start -->1<!-- DNT-End --></entry>
- <entry>2</entry>
- <entry><!-- DNT-Start -->Liz<!-- DNT-End --></entry>
- <entry>10 Maltings Lane</entry>
- </row>
- <row>
- <entry><!-- DNT-Start -->2<!-- DNT-End --></entry>
- <entry>2</entry>
- <entry><!-- DNT-Start -->Liz<!-- DNT-End --></entry>
- <entry>3 The Cottages</entry>
- </row>
- <row>
- <entry><!-- DNT-Start -->1<!-- DNT-End --></entry>
- <entry>4</entry>
- <entry><!-- DNT-Start -->Mr Everywhere<!-- DNT-End --></entry>
- <entry>Here</entry>
- </row>
- <row>
- <entry><!-- DNT-Start -->2<!-- DNT-End --></entry>
- <entry>4</entry>
- <entry><!-- DNT-Start -->Mr Everywhere<!-- DNT-End --></entry>
- <entry>There</entry>
- </row>
- <row>
- <entry><!-- DNT-Start -->3<!-- DNT-End --></entry>
- <entry>4</entry>
- <entry><!-- DNT-Start -->Mr Everywhere<!-- DNT-End --></entry>
- <entry>Near</entry>
- </row>
- <row>
- <entry><!-- DNT-Start -->4<!-- DNT-End --></entry>
- <entry>4</entry>
- <entry><!-- DNT-Start -->Mr Everywhere<!-- DNT-End --></entry>
- <entry>Far</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable></para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> MyValue := COUNT + 3;
- OUTPUT(Person( career = 'Study'), {per_first_name, COUNT});
- </programlisting><!-- DNT-End -->
- <para>Both statements will produce a C2002 error since they are not in the
- context of <!-- DNT-Start -->NORMALIZE<!-- DNT-End --></para>
- <para>or <!-- DNT-Start -->DENORMALIZE<!-- DNT-End -->.</para>
- </sect1>
- <sect1 id="_2021">
- <!-- DNT-Start --><title>2021</title><!-- DNT-End -->
- <indexterm>
- <primary>2021</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->COUNTER<!-- DNT-End --> not valid in this
- context</emphasis></para>
- <para>The <!-- DNT-Start -->COUNTER<!-- DNT-End --> keyword (as an alias of <!-- DNT-Start -->COUNT<!-- DNT-End -->) is used only in <!-- DNT-Start -->NORMALIZE<!-- DNT-End -->
- or</para>
- <para><!-- DNT-Start -->DENORMALIZED<!-- DNT-End -->. See Error 2020 for explanation, solution etc.</para>
- </sect1>
- <sect1 id="_2022">
- <!-- DNT-Start --><title>2022</title><!-- DNT-End -->
- <indexterm>
- <primary>2022</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->LEFT<!-- DNT-End --> not legal here</emphasis></para>
- <para>The <!-- DNT-Start -->LEFT<!-- DNT-End --> keyword is not legal in this context. <!-- DNT-Start -->LEFT<!-- DNT-End --> can be used only
- in the following contexts:</para>
- <para>⢠Passing a parameter to a <!-- DNT-Start -->TRANSFORM<!-- DNT-End --> function where a <!-- DNT-Start -->LEFT<!-- DNT-End --> scope
- exists.</para>
- <para>⢠In <!-- DNT-Start -->TRIM<!-- DNT-End -->(value, <!-- DNT-Start -->LEFT<!-- DNT-End -->). <!-- DNT-Start -->LEFT<!-- DNT-End --> means leading spaces.</para>
- <para>⢠In <!-- DNT-Start -->JOIN<!-- DNT-End -->(dataset1, dataset2, join-fields, <!-- DNT-Start -->LEFT<!-- DNT-End --> <!-- DNT-Start -->OUTER<!-- DNT-End --> | <!-- DNT-Start -->LEFT<!-- DNT-End -->
- <!-- DNT-Start -->ONLY<!-- DNT-End -->).</para>
- <para>⢠In <!-- DNT-Start -->DEDUP<!-- DNT-End -->(recordset, expression, <!-- DNT-Start -->LEFT<!-- DNT-End -->). <!-- DNT-Start -->LEFT<!-- DNT-End --> means to keep the head
- records from the comparison when duplication happens.</para>
- <para>Solution: Make sure <!-- DNT-Start -->LEFT<!-- DNT-End --> is in one of the legal contexts listed
- above. Example:</para>
- <!-- DNT-Start --><programlisting> 01: a := EXP(LEFT);
- 02: NamesRec := RECORD
- 03: STRING20 thename;
- 04: END;
- 05: NamesTable := DATASET([{'Gavin'}], NamesRec);
- 06: OutRec := RECORD
- 07: STRING20 thename;
- 08: END;
- 09: OutRec NormalizeAddresses(NamesRec L, INTEGER C) :=
- 10: TRANSFORM
- 11: SELF := L;
- 12: END;
- 13: NormalizeAddrs := NORMALIZE(namesTable, LEFT.numRows,
- 14: NormalizeAddresses(LEFT,COUNT));
- </programlisting><!-- DNT-End -->
- <para>In line 1, <!-- DNT-Start -->LEFT<!-- DNT-End --> is within none of the above contexts. In line 13 and
- 14, <!-- DNT-Start -->LEFT<!-- DNT-End --> is used to specify the left record passed to the transform
- function.</para>
- </sect1>
- <sect1 id="_2023">
- <!-- DNT-Start --><title>2023</title><!-- DNT-End -->
- <indexterm>
- <primary>2023</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->RIGHT<!-- DNT-End --> not legal here</emphasis></para>
- <para>This is very simliar to Error 2022. Refer to it for
- information.</para>
- </sect1>
- <sect1 id="_2024">
- <!-- DNT-Start --><title>2024</title><!-- DNT-End -->
- <indexterm>
- <primary>2024</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->JOIN<!-- DNT-End --> is not valid here</emphasis></para>
- <para>See Error C2027.</para>
- </sect1>
- <sect1 id="_2025">
- <!-- DNT-Start --><title>2025</title><!-- DNT-End -->
- <indexterm>
- <primary>2025</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->SELF<!-- DNT-End --> not legal here</emphasis></para>
- <para><!-- DNT-Start -->SELF<!-- DNT-End --> can only be used inside a <!-- DNT-Start -->TRANSFORM<!-- DNT-End --> structure to indicate the
- current output record. Otherwise it is not legal.</para>
- <para>Solution: Don't use <!-- DNT-Start -->SELF<!-- DNT-End --> outside a <!-- DNT-Start -->TRANSFORM<!-- DNT-End --> structure.</para>
- </sect1>
- <sect1 id="_2026">
- <!-- DNT-Start --><title>2026</title><!-- DNT-End -->
- <indexterm>
- <primary>2026</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->ALL<!-- DNT-End --> not legal here</emphasis></para>
- <para><!-- DNT-Start -->ALL<!-- DNT-End --> is illegal in this context. <!-- DNT-Start -->ALL<!-- DNT-End --> can only be used in the
- following contexts:</para>
- <para>⢠Inside a <!-- DNT-Start -->GROUP<!-- DNT-End --> function</para>
- <para>⢠As a optional parameter to <!-- DNT-Start -->TRIM<!-- DNT-End --> function</para>
- <para>⢠As a default value to a <!-- DNT-Start -->SET<!-- DNT-End --> or <!-- DNT-Start -->SET<!-- DNT-End --> <!-- DNT-Start -->OF<!-- DNT-End --> parameter.</para>
- <para>Solution: Make sure it is one of the above cases, otherwise, don't
- use <!-- DNT-Start -->ALL<!-- DNT-End -->. Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 f1;}, HOLE);
- 02: bbb := GROUP(aaa, ALL);
- 03: s := ' abc ';
- 04: TRIM(s, ALL);
- 05: f(SET is, INTEGER i) := i IN is;
- 06: MyJobSet := [1,2,3];
- 07: BOOLEAN ok := f(ALL, 1);
- 08: SORT(aaa, ALL);
- </programlisting><!-- DNT-End -->
- <para>All lines from 1-7 are legal. In line 8, <!-- DNT-Start -->ALL<!-- DNT-End --> is not in any of the
- legal contexts and causes this error.</para>
- </sect1>
- <sect1 id="_2027">
- <!-- DNT-Start --><title>2027</title><!-- DNT-End -->
- <indexterm>
- <primary>2027</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->JOINED<!-- DNT-End --> can only be specified inside <!-- DNT-Start -->SORT<!-- DNT-End --> or
- <!-- DNT-Start -->SORTED<!-- DNT-End --></emphasis></para>
- <para><!-- DNT-Start -->JOINED<!-- DNT-End --> can only be used inside <!-- DNT-Start -->SORT<!-- DNT-End --> or <!-- DNT-Start -->SORTED<!-- DNT-End -->. Otherwise, it is
- illegal.</para>
- <para>Solution: Make sure it is in the <!-- DNT-Start -->SORT<!-- DNT-End --> or <!-- DNT-Start -->SORTED<!-- DNT-End -->.</para>
- </sect1>
- <sect1 id="_2028">
- <!-- DNT-Start --><title>2028</title><!-- DNT-End -->
- <indexterm>
- <primary>2028</primary>
- </indexterm>
- <para><emphasis role="bold">A value must be supplied for this
- attribute</emphasis></para>
- <para>The attribute in question needs to be supplied a value. In <!-- DNT-Start -->ECL<!-- DNT-End -->, we
- cannot just declare an at- tribute without defining its value. There is
- only one exception, that is when the attribute name starts with a $. Names
- that start with a $ will be used as environment variable in the future,
- but that functionality is not implemented yet.</para>
- <para>Solution: Use := to define a value to it. Example:</para>
- <!-- DNT-Start --><programlisting> 01: integer1 a;
- 02: EXPORT STRING1 s;
- 03: SHARED BOOLEAN b;
- </programlisting><!-- DNT-End -->
- <para>Attributes a, s and b (whether it is local, <!-- DNT-Start -->EXPORTed<!-- DNT-End -->, or <!-- DNT-Start -->SHARED<!-- DNT-End -->)
- need a value when they are being defined.</para>
- </sect1>
- <sect1 id="_2029">
- <!-- DNT-Start --><title>2029</title><!-- DNT-End -->
- <indexterm>
- <primary>2029</primary>
- </indexterm>
- <para><emphasis role="bold">Constant doesn't make any sense
- here</emphasis></para>
- <para>Using a Constant doesn't make sense in this context. For example,
- sorting or grouping by a constant doesn't make sense.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: aaa := DATASET('aaa',{STRING1 a; }, FLAT);
- 02: iftotal := IF(TRUE, 1, 0);
- 03:
- 04: countrec := RECORD
- 05: total := SUM(GROUP, iftotal);
- 06: END;
- 07:
- 08: a := OUTPUT(TABLE(aaa,countrec,1));
- </programlisting><!-- DNT-End -->
- <para>In line 8, the last 1 is not making sense.</para>
- </sect1>
- <sect1 id="_2030">
- <!-- DNT-Start --><title>2030</title><!-- DNT-End -->
- <indexterm>
- <primary>2030</primary>
- </indexterm>
- <para>Illegal join flags for a lookup join</para>
- </sect1>
- <sect1 id="_2031">
- <!-- DNT-Start --><title>2031</title><!-- DNT-End -->
- <indexterm>
- <primary>2031</primary>
- </indexterm>
- <para><!-- DNT-Start -->DEDUP<!-- DNT-End -->(file) not supported (or meaningful) on hole files</para>
- </sect1>
- <sect1 id="_2032">
- <!-- DNT-Start --><title>2032</title><!-- DNT-End -->
- <indexterm>
- <primary>2032</primary>
- </indexterm>
- <para>Scheduling not allowed on an attribute (scheduling a definition
- makes no sense)</para>
- </sect1>
- <sect1 id="_2033">
- <!-- DNT-Start --><title>2033</title><!-- DNT-End -->
- <indexterm>
- <primary>2033</primary>
- </indexterm>
- <para>Multiple workflow clauses</para>
- </sect1>
- <sect1 id="_2034">
- <!-- DNT-Start --><title>2034</title><!-- DNT-End -->
- <indexterm>
- <primary>2034</primary>
- </indexterm>
- <para>Expected <!-- DNT-Start -->INDEX<!-- DNT-End -->()...</para>
- </sect1>
- <sect1 id="_2035">
- <!-- DNT-Start --><title>2035</title><!-- DNT-End -->
- <indexterm>
- <primary>2035</primary>
- </indexterm>
- <para>Type returned from transform must match the source dataset
- type</para>
- </sect1>
- <sect1 id="_2036">
- <!-- DNT-Start --><title>2036</title><!-- DNT-End -->
- <indexterm>
- <primary>2036</primary>
- </indexterm>
- <para>Keyed parameter does not match the dataset passed as a second
- parameter</para>
- </sect1>
- <sect1 id="_2037">
- <!-- DNT-Start --><title>2037</title><!-- DNT-End -->
- <indexterm>
- <primary>2037</primary>
- </indexterm>
- <para>Name of base file was not supplied and cannot be deduced</para>
- </sect1>
- <sect1 id="_2038">
- <!-- DNT-Start --><title>2038</title><!-- DNT-End -->
- <indexterm>
- <primary>2038</primary>
- </indexterm>
- <para><!-- DNT-Start -->BIAS<!-- DNT-End --> not supplied and can't be calculated</para>
- </sect1>
- <sect1 id="_2039">
- <!-- DNT-Start --><title>2039</title><!-- DNT-End -->
- <indexterm>
- <primary>2039</primary>
- </indexterm>
- <para>Character in string literal is not defined in encoding</para>
- </sect1>
- <sect1 id="_2040">
- <!-- DNT-Start --><title>2040</title><!-- DNT-End -->
- <indexterm>
- <primary>2040</primary>
- </indexterm>
- <para><emphasis role="bold">Invalid size for <!-- DNT-Start -->INTEGER<!-- DNT-End -->
- type</emphasis></para>
- <para>An <!-- DNT-Start -->INTEGER<!-- DNT-End --> type can only be 1, 2, 4 or 8 bytes. The size is
- specified by appending the size right after the <!-- DNT-Start -->INTEGER<!-- DNT-End --> keyword (no space
- allowed), as in: <!-- DNT-Start -->INTEGER<!-- DNT-End -->1, <!-- DNT-Start -->INTEGER<!-- DNT-End -->2, etc. By default, the size is 8;
- <!-- DNT-Start -->INTEGER<!-- DNT-End --> is the same as <!-- DNT-Start -->INTEGER<!-- DNT-End -->8.</para>
- <para>Solution: Make sure it is one of the following:</para>
- <para><!-- DNT-Start -->INTEGER<!-- DNT-End -->1, <!-- DNT-Start -->INTEGER<!-- DNT-End -->2, <!-- DNT-Start -->INTEGER<!-- DNT-End -->4, <!-- DNT-Start -->INTEGER<!-- DNT-End -->8 or <!-- DNT-Start -->INTEGER<!-- DNT-End -->. No space is
- allowed between <!-- DNT-Start -->INTEGER<!-- DNT-End --> and the size digit.</para>
- <para>All identifiers that are <!-- DNT-Start -->INTEGER<!-- DNT-End --> followed by a legal octal integer
- are reserved (for future extension, or just for the purpose of type
- checking). Therefore, <!-- DNT-Start -->INTEGER<!-- DNT-End -->5 is neither a legal type, nor a legal
- identifier for attribute, function, formal parameter name, etc.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: <emphasis role="bold">INTEGER3 </emphasis>x := 10;
- 02: <emphasis role="bold">INTEGER10 </emphasis>y := 30;
- 03: f(INTEGER <emphasis role="bold">INTEGER32</emphasis>) := INTEGER32 + 3;
- </programlisting><!-- DNT-End -->
- <para>In line 1 and 2, the size is wrong. In line 3, we can not use
- <!-- DNT-Start -->INTEGER<!-- DNT-End -->32 as an identifier for formal parameter.</para>
- </sect1>
- <sect1 id="_2041">
- <!-- DNT-Start --><title>2041</title><!-- DNT-End -->
- <indexterm>
- <primary>2041</primary>
- </indexterm>
- <para><emphasis role="bold">Invalid size for <!-- DNT-Start -->REAL<!-- DNT-End --> type</emphasis></para>
- <para>A <!-- DNT-Start -->REAL<!-- DNT-End --> type can be 4 or 8 bytes. So the valid forms are: <!-- DNT-Start -->REAL<!-- DNT-End -->4,
- <!-- DNT-Start -->REAL<!-- DNT-End -->8, and <!-- DNT-Start -->REAL<!-- DNT-End -->. The last one will use the default size: 8.</para>
- <para>Solution: Choose the proper size. Example:</para>
- <!-- DNT-Start --><programlisting>
- REAL3 a := 1.2;
- </programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2042">
- <!-- DNT-Start --><title>2042</title><!-- DNT-End -->
- <indexterm>
- <primary>2042</primary>
- </indexterm>
- <para><emphasis role="bold">Invalid size for <!-- DNT-Start -->DATA<!-- DNT-End --> type</emphasis></para>
- <para>The size of <!-- DNT-Start -->DATA<!-- DNT-End --> type can be any positive integer; zero or negative
- integers are not allowed. When used as a function parameter type, the size
- can be omitted.</para>
- <para>Solution: Choose a proper size. Example:</para>
- <!-- DNT-Start --><programlisting>01: DATA0 a := '03DF21';</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2043">
- <!-- DNT-Start --><title>2043</title><!-- DNT-End -->
- <indexterm>
- <primary>2043</primary>
- </indexterm>
- <para><emphasis role="bold">Invalid size for <!-- DNT-Start -->STRING<!-- DNT-End --> type</emphasis></para>
- <para>The size of <!-- DNT-Start -->STRING<!-- DNT-End --> type can be any positive integer; zero or
- negative integers are not allowed.</para>
- <para>When used as a function parameter type, the size can be
- omitted.</para>
- <para>Solution: Choose a proper size. Example:</para>
- <!-- DNT-Start --><programlisting>STRING0 abc := 'abc';</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2044">
- <!-- DNT-Start --><title>2044</title><!-- DNT-End -->
- <indexterm>
- <primary>2044</primary>
- </indexterm>
- <para><emphasis role="bold">Invalid size for <!-- DNT-Start -->VARSTRING<!-- DNT-End -->
- type</emphasis></para>
- <para>The size of <!-- DNT-Start -->VARSTRING<!-- DNT-End --> can be any positive integer; zero or negative
- integers are not allowed. Solution: Choose the proper size.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting>VARSTRING0 abc := 'abc';</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2045">
- <!-- DNT-Start --><title>2045</title><!-- DNT-End -->
- <indexterm>
- <primary>2045</primary>
- </indexterm>
- <para><emphasis role="bold">Invalid size for <!-- DNT-Start -->DECIMAL<!-- DNT-End -->
- type</emphasis></para>
- <para>A <!-- DNT-Start -->DECIMAL<!-- DNT-End --> type does not specify or specifies an invalid size. An
- valid size must be specified for <!-- DNT-Start -->DECIMAL<!-- DNT-End --> type. <!-- DNT-Start -->DECIMAL<!-- DNT-End --> can be:</para>
- <para>⢠<!-- DNT-Start -->DECIMALn<!-- DNT-End -->, where n can be 0-32 (inclusive)</para>
- <para>⢠<!-- DNT-Start -->DECIMALn<!-- DNT-End -->_m, where n, m can be 0-32 (inclusive), and m must be less
- than or equal to n. In the above, n defines the number of digits in a
- packed decimal value while m defines the</para>
- <para>number of digits that appear after the decimal point.</para>
- <para>Solution: Choose a proper size. Example:</para>
- <!-- DNT-Start --><programlisting>01: DECIMAL x1 := 20;
- 02: DECIMAL10_11 x2 := 20;</programlisting><!-- DNT-End -->
- <para>In line 1, no size is defined. In line 2, the size of the fractional
- portion is greater than the total number of digits.</para>
- </sect1>
- <sect1 id="_2046">
- <!-- DNT-Start --><title>2046</title><!-- DNT-End -->
- <indexterm>
- <primary>2046</primary>
- </indexterm>
- <para>A <!-- DNT-Start -->UDECIMAL<!-- DNT-End --> type does not specify a size or specifies an invalid
- size. <!-- DNT-Start -->UDECIMAL<!-- DNT-End --> is a short-</para>
- <para>hand alias for <!-- DNT-Start -->UNSIGNED<!-- DNT-End --> <!-- DNT-Start -->DECIMAL<!-- DNT-End -->. <!-- DNT-Start -->UDECIMAL<!-- DNT-End --> can be:</para>
- <para>⢠<!-- DNT-Start -->UDECIMALn<!-- DNT-End -->, where n can be 0-32 (inclusive), <!-- DNT-Start -->OR<!-- DNT-End --></para>
- <para>⢠<!-- DNT-Start -->UDECIMALn<!-- DNT-End -->_m, where n, m can be 0-32 (inclusive), and m must be
- less than or equal to</para>
- <para>n.</para>
- <para>In the above, n defines the number of digits in a packed decimal
- value. m defines the number of digits after the decimal point.</para>
- <para>Solution: Choose a proper size. Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: UDECIMAL x1 := 20;
- 02: UDECIMAL10_11 x2 := 20;
- 03: UDECIMAL34 x3 := 20;
- </programlisting><!-- DNT-End -->
- <para>In line 1, no size is defined. In line 2, the size of percision is
- greater than the total length. In line</para>
- <para>3, the size is greater than 32.</para>
- <para>Solution: Choose the proper size.</para>
- </sect1>
- <sect1 id="_2047">
- <!-- DNT-Start --><title>2047</title><!-- DNT-End -->
- <indexterm>
- <primary>2047</primary>
- </indexterm>
- <para><emphasis role="bold">Invalid size for <!-- DNT-Start -->BITFIELD<!-- DNT-End -->
- type</emphasis></para>
- <para>A <!-- DNT-Start -->BITFIELD<!-- DNT-End --> (<!-- DNT-Start -->PROVISIONAL<!-- DNT-End --> <!-- DNT-Start -->DOCUMENTATION<!-- DNT-End -->, <!-- DNT-Start -->NOT<!-- DNT-End --> <!-- DNT-Start -->YET<!-- DNT-End --> <!-- DNT-Start -->IMPLEMENTED<!-- DNT-End -->)</para>
- <para>type must have a valid size. A valid size for <!-- DNT-Start -->BITFIELD<!-- DNT-End --> must:</para>
- <para>⢠explicitly specify the size</para>
- <para>⢠spcify the size in the range 1..64 (inclusive) Solution: Choose a
- proper size.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: MyRec := RECORD
- 02: BITFIELD sex := 1;
- 03: BITFIELD0 married := 1;
- 04: BITFIELD2 class := 1;
- 05: BITFIELD65 age := 100;
- 06: END;
- </programlisting><!-- DNT-End -->
- <para>In line 2, sex does not specify a size. In line 3, married specifies
- a size of 0. In line 5, age speci- fies a size of 65. All these are not
- allowed. In line 4, class has size of 2, which is legal.</para>
- </sect1>
- <sect1 id="_2048">
- <!-- DNT-Start --><title>2048</title><!-- DNT-End -->
- <indexterm>
- <primary>2048</primary>
- </indexterm>
- <para><emphasis role="bold">Invalid size for <!-- DNT-Start -->UNSIGNED<!-- DNT-End -->
- type</emphasis></para>
- <para><!-- DNT-Start -->UNSIGNEDn<!-- DNT-End --> is a shorthand alias for <!-- DNT-Start -->UNSIGNED<!-- DNT-End --> <!-- DNT-Start -->INTEGERn<!-- DNT-End -->. So see Error
- 2040.</para>
- </sect1>
- <sect1 id="_2049">
- <!-- DNT-Start --><title>2049</title><!-- DNT-End -->
- <indexterm>
- <primary>2049</primary>
- </indexterm>
- <para>Invalid size for <!-- DNT-Start -->QSTRING<!-- DNT-End --> type</para>
- </sect1>
- <sect1 id="_2050">
- <!-- DNT-Start --><title>2050</title><!-- DNT-End -->
- <indexterm>
- <primary>2050</primary>
- </indexterm>
- <para><emphasis role="bold">Recursive macro call</emphasis></para>
- <para>Recursive macro calls are not allowed. Recursive calls happen when a
- macro call itself directly or indirectly. Unlike functions, macros have no
- way to terminate once a recursive call starts; because the parser just
- does simple text substitution for macros. Recursive functions terminate at
- runtime by proper runtime logic.</para>
- <para>Note that since there are no forward references in <!-- DNT-Start -->ECL<!-- DNT-End -->, it is also
- not possible to contruct a legal recursive function call. This situation
- may be changed in the future, however, recursive macros will still not be
- allowed due to the above reason.</para>
- <para>Solution: Change the code to eliminate the recursion.
- Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: f(x) := MACRO
- 02: g(x)+3
- 03: ENDMACRO;
- 04:
- 05: g(x) := MACRO
- 06: f(x)+2
- 07: ENDMACRO;
- 08:
- 09: h(X) := MACRO
- 10: h(x)+1
- 11: ENDMACRO;
- 12:
- 13: abc := <emphasis role="bold">g(3)</emphasis>;
- 14: xyz := <emphasis role="bold">h(4)</emphasis>;
- </programlisting><!-- DNT-End -->
- <para>In the example, macro f calls g, and g calls f again. Therefore we
- have an indirect recursive call. In macro h, it directly calls itself
- recursively.</para>
- </sect1>
- <sect1 id="_2051">
- <!-- DNT-Start --><title>2051</title><!-- DNT-End -->
- <indexterm>
- <primary>2051</primary>
- </indexterm>
- <para><emphasis role="bold">No matching <!-- DNT-Start -->ENDMACRO<!-- DNT-End --> found</emphasis></para>
- <para>The <!-- DNT-Start -->ENDMACRO<!-- DNT-End --> keyword must terminate a <!-- DNT-Start -->MACRO<!-- DNT-End --> definition.</para>
- <para>Due to the way macros are implemented internally, sometimes this
- error will appear in an unex- pected place. This happens within a macro
- call because, according to the grammar the parser thinks it should end the
- macro call, but the macro definition actually still has more code to
- generate. This normally indicates an error in the macro, the parameter(s)
- passed to the macro, or a combination of the two.</para>
- <para>Solution: Check the macro definition and the calls. Since the parser
- only realizes that an <!-- DNT-Start -->ENDMACRO<!-- DNT-End --> is missing when it reaches the end of a
- file or a module, the position its report may be far away from the place
- it actually occurs.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: MyMacro(INTEGER i) := MACRO
- 02: i + 4;
- 03:
- 04: MyMacro(5);
- </programlisting><!-- DNT-End -->
- <para>MyMacro is not terminated by an <!-- DNT-Start -->ENDMACRO<!-- DNT-End -->. But the parser report the
- error at end of line 4 (the end of the file).</para>
- </sect1>
- <sect1 id="_2052">
- <!-- DNT-Start --><title>2052</title><!-- DNT-End -->
- <indexterm>
- <primary>2052</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->EOF<!-- DNT-End --> encountered while gathering macro
- parameters</emphasis></para>
- <para>The file ends while the parser is still trying to look for macro
- parameters. This means that the code is not yet complete.</para>
- <para>Solution: Complete the code with proper parameters, and ending ')'.
- Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: m2(x) := MACRO
- 02: 10+x
- 03: ENDMACRO;
- 04: m2(1
- </programlisting><!-- DNT-End -->
- <para>In line 4, macro call m2 doesn't have complete parameters.</para>
- </sect1>
- <sect1 id="_2053">
- <!-- DNT-Start --><title>2053</title><!-- DNT-End -->
- <indexterm>
- <primary>2053</primary>
- </indexterm>
- <para>No type is allowed for macro parameter</para>
- </sect1>
- <sect1 id="_2054">
- <!-- DNT-Start --><title>2054</title><!-- DNT-End -->
- <indexterm>
- <primary>2054</primary>
- </indexterm>
- <para>Default value for macro parameter must be constant</para>
- </sect1>
- <sect1 id="_2055">
- <!-- DNT-Start --><title>2055</title><!-- DNT-End -->
- <indexterm>
- <primary>2055</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2056">
- <!-- DNT-Start --><title>2056</title><!-- DNT-End -->
- <indexterm>
- <primary>2056</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2061">
- <!-- DNT-Start --><title>2061</title><!-- DNT-End -->
- <indexterm>
- <primary>2061</primary>
- </indexterm>
- <para><emphasis role="bold">Too many parameters: <!-- DNT-Start -->XXX<!-- DNT-End --> parameters
- expected</emphasis></para>
- <para>Too many parameters are supplied for a function call or macro
- call.</para>
- <para>Solution: Check the definition of the function or macro. Supply the
- proper number of param- eters as required. Be careful about the scope
- rules in <!-- DNT-Start -->ECL<!-- DNT-End -->, especially the local scope. See Ex- ample 2 below.</para>
- <para>Example 1:</para>
- <!-- DNT-Start --><programlisting>
- 01: f(x) := 4;
- 02:
- 03: m1() := MACRO
- 04: 10
- 05: ENDMACRO;
- 06:
- 07: m2(x) := MACRO
- 08: 10+x
- 09: ENDMACRO;
- 10:
- 11: <emphasis role="bold">f(2,3)</emphasis>;
- 12: <emphasis role="bold">m1(1)</emphasis>;
- 13: <emphasis role="bold">m2(1,2)</emphasis>;
- </programlisting><!-- DNT-End -->
- <para>All the calls in lines 11, 12, and 13 have extra parameters than
- that are needed. Example 2:</para>
- <!-- DNT-Start --><programlisting>
- 01: f(x) := x+1;
- 02:
- 03: EXPORT ab := 1;
- 04:
- 05: f(x,y) := x+y;
- 06:
- 07: f(3,4,1);
- </programlisting><!-- DNT-End -->
- <para>In this example, function f is defined twice. Since an <!-- DNT-Start -->EXPORT<!-- DNT-End --> or
- <!-- DNT-Start -->SHARED<!-- DNT-End --> Attribute ends the local scope of an attribute/function/macro name,
- the f() in line 7 is a call to function f in line 5, not in line 1,
- therefore too many parameters are supplied.</para>
- </sect1>
- <sect1 id="_2062">
- <!-- DNT-Start --><title>2062</title><!-- DNT-End -->
- <indexterm>
- <primary>2062</primary>
- </indexterm>
- <para><emphasis role="bold">Omitted parameter has no default
- value</emphasis></para>
- <para>A parameter to a function can be omittable when it is defined to
- have a default value. When a function is called, parameters that have
- default values can be omitted or not. However, those parameters that have
- no default values defined must pass a value for the parameter.</para>
- <para>Default value parameters in <!-- DNT-Start -->ECL<!-- DNT-End --> are more general than in C++. In
- C++, if a parameter is defined to have default value, all the parameters
- following it must have default values defined as well, and if we supply a
- value to a parameter when we call a function, all parameters before this
- parameter must have values supplied. In <!-- DNT-Start -->ECL<!-- DNT-End -->, these two constraints do not
- hold. The user can define default values for any set of parameters,
- regardless of their order in the parameter list. The user can also choose
- to pass values to those parameters that do have default values. See
- Example 2 below.</para>
- <para>Note that macros in <!-- DNT-Start -->ECL<!-- DNT-End --> don't have this default value concept,
- therefore this error can never happen to a macro call.</para>
- <para>Solution: Either pass a value for the parameter, or specify a
- default value in the function defini- tion, if possible.</para>
- <para>Example 1:</para>
- <!-- DNT-Start --><programlisting>
- 01: f(x,y,z=3) := x+y;
- 02:
- 03: f(12);
- 04: f(,2);
- </programlisting><!-- DNT-End -->
- <para>In line 1, function f() only has a default value defined for the
- third parameter, so we must supply values for parameters 1 and 2. In line
- 3, no default value is given for parameter 2, and in line 4, no default
- value is given for parameter 1.</para>
- <para>Example 2:</para>
- <!-- DNT-Start --><programlisting>
- 01: f(x=1,y,z=3) := x+y;
- 02:
- 03: f(2,3,4);
- 04: f(,3);
- 05: f(,3,);
- 06: f(,3,4);
- 07: f(1,2);
- </programlisting><!-- DNT-End -->
- <para>In line 1, function f() defines default values for parameters 1 and
- 3, which is perfectly <!-- DNT-Start -->OK<!-- DNT-End --> in <!-- DNT-Start -->ECL<!-- DNT-End -->, but is not allowed in C++. Calls in lines
- 3-7 are all legal in <!-- DNT-Start -->ECL<!-- DNT-End -->, while calls in lines 4,5,6 are illegal in C++
- (supposing line 1 were legal in C++).</para>
- </sect1>
- <sect1 id="_2063">
- <!-- DNT-Start --><title>2063</title><!-- DNT-End -->
- <indexterm>
- <primary>2063</primary>
- </indexterm>
- <para><emphasis role="bold">Too few parameters supplied</emphasis></para>
- <para>Too few parameters are supplied to a macro call. Note that since
- function calls in <!-- DNT-Start -->ECL<!-- DNT-End --> have the</para>
- <para>default value for omitted parameter rule (Error C2062), we can never
- get this error from a</para>
- <para>function call. Be careful with the scoping rules in <!-- DNT-Start -->ECL<!-- DNT-End -->, as shown in
- Example 2.</para>
- <para>Example 1:</para>
- <!-- DNT-Start --><programlisting>
- 01: m(x) := MACRO
- 02: 10+x
- 03: ENDMACRO;
- 04: <emphasis role="bold">m()</emphasis>;
- 05: m2(x,y) := MACRO
- 06: 10+x
- 07: ENDMACRO;
- 08: <emphasis role="bold">m2(1)</emphasis>;
- </programlisting><!-- DNT-End -->
- <para>The macro calls in both lines 4 and 8 are supplied fewer parameters
- than required. Example 2:</para>
- <!-- DNT-Start --><programlisting>
- 01: m() := MACRO
- 02: 2
- 03: ENDMACRO;
- 04: SHARED y:= 3;
- 05: m(x) := MACRO
- 06: x+2
- 07: ENDMACRO;
- 08: m();
- </programlisting><!-- DNT-End -->
- <para>In this example, call m() in line 8 is to the macro defined in lines
- 5-7, not the macro defined in lines 1-3. The reason is that the <!-- DNT-Start -->SHARED<!-- DNT-End -->
- statement in line 4 ends the scope of local macro m() in line 1.</para>
- </sect1>
- <sect1 id="_2064">
- <!-- DNT-Start --><title>2064</title><!-- DNT-End -->
- <indexterm>
- <primary>2064</primary>
- </indexterm>
- <para><emphasis role="bold">param type mismatch</emphasis></para>
- <para>The parameter supplied to a function call has a different type than
- the type specified for the</para>
- <para>function definition. Automatic type promotion (implicit type
- casting) will be applied when the</para>
- <para>compiler tries to match the types. Therefore, we can legally use an
- integer to call a function that</para>
- <para>requires a real parameter. Narrow casting (down casting from real to
- integer) is also applied</para>
- <para>when proper.</para>
- <para>A macro is used for text substitution, only. There is no type
- information associated with a macro parameter. Therefore, this error only
- applies to function calls.</para>
- <para>Solution: Check the function definition and make sure the types
- match. Use type cast when necessary.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: f(integer i) := i+1;
- 02: f('123');
- </programlisting><!-- DNT-End -->
- <para>In line 2, actual parameter '123' is a string, not an integer as
- expected by the definition of f. We can use type casting to correct
- this:</para>
- <!-- DNT-Start --><programlisting>f((INTEGER)'123');</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2065">
- <!-- DNT-Start --><title>2065</title><!-- DNT-End -->
- <indexterm>
- <primary>2065</primary>
- </indexterm>
- <para>Wrong number of parameters: either 2061 or 2062</para>
- </sect1>
- <sect1 id="_2066">
- <!-- DNT-Start --><title>2066</title><!-- DNT-End -->
- <indexterm>
- <primary>2066</primary>
- </indexterm>
- <para>non-typed or void expression can not used as parameter</para>
- </sect1>
- <sect1 id="_2071">
- <!-- DNT-Start --><title>2071</title><!-- DNT-End -->
- <indexterm>
- <primary>2071</primary>
- </indexterm>
- <para><emphasis role="bold">Constant expression expected</emphasis></para>
- <para>A constant expression is expected. A constant expression can
- be:</para>
- <itemizedlist>
- <listitem>
- <para>any constant value, such as: 123, 'abc'.</para>
- </listitem>
- <listitem>
- <para>any expression that evaluates to a constant value, such as:
- 2*4+5, 'abc'+'def ', 3>2 && 3^2=8.</para>
- </listitem>
- <listitem>
- <para>any function or macro that evaluates at compile time to a
- constant value. For example, if we have the following:</para>
- <para><programlisting>c(x) := x*2;
- y := 3;</programlisting>Then c(y) is a constant since at compile time, it can
- be evaluted as a constant value 6.</para>
- </listitem>
- </itemizedlist>
- <para>The third rule is different from languages like C and Java where a
- function's return value is never regarded as a compile time constant,
- macros in C (Java doesn't have macros) are not an issue since they
- disappear after preprocessing.</para>
- <para>The following are not constants:</para>
- <itemizedlist>
- <listitem>
- <para><!-- DNT-Start -->RANDOM<!-- DNT-End -->(), or any expression that contains <!-- DNT-Start -->RANDOM<!-- DNT-End -->()</para>
- </listitem>
- <listitem>
- <para>The result from a dataset, such as <!-- DNT-Start -->COUNT<!-- DNT-End -->(Person())</para>
- </listitem>
- <listitem>
- <para>Any expression that contains any non-constant value(s).</para>
- <para>Solution: Choose another name for the field, or remove one if
- they are just duplicated.</para>
- <para>Example 1:</para>
- <para><programlisting> 01: STRING8 MyString1 := INTFORMAT(10, <emphasis
- role="bold">RANDOM()</emphasis>, 1);
- 02: c(x) := x*2;
- 03: y := 3;
- 04: STRING8 MyString2 := INTFORMAT(10, c(y), 1);
- 05: ct := COUNT(Person());
- 06: STRING8 MyString3 := INTFORMAT(10, <emphasis role="bold">ct</emphasis>, 1);
- </programlisting>Both <!-- DNT-Start -->RANDOM<!-- DNT-End -->() in line 1 and ct in line 6 are not constant,
- but c(y) in line 4 is constant. Example 2:</para>
- <para><programlisting> 01: loadxml('myxml.xml');
- 02: #DECLARE (S)
- 03: #SET (S, <emphasis role="bold">RANDOM()</emphasis>)
- 04: #APPEND(S, <emphasis role="bold">RANDOM()</emphasis>)
- 05: #IF (<emphasis role="bold">RANDOM()</emphasis>)
- 06: #APPEND(S, 'x := 1; ')
- 07: #ELSE
- 08: #APPEND(S, 'x := 2; ')
- 09: #END
- </programlisting></para>
- </listitem>
- </itemizedlist>
- <para>All these <!-- DNT-Start -->RANDOM<!-- DNT-End -->() function calls are illegal since constants are
- expected where they appear. To test this, an xml file named myxml.xml must
- be provided, but the content of the file is not important for our
- concern.</para>
- </sect1>
- <sect1 id="_2072">
- <!-- DNT-Start --><title>2072</title><!-- DNT-End -->
- <indexterm>
- <primary>2072</primary>
- </indexterm>
- <para><emphasis role="bold">Expected numeric expression</emphasis></para>
- <para>An expression that is not compatible with a numeric type is
- encountered. A numeric expression</para>
- <para>can be: <!-- DNT-Start -->INTEGER<!-- DNT-End -->, <!-- DNT-Start -->REAL<!-- DNT-End -->, or <!-- DNT-Start -->DECIMAL<!-- DNT-End --> (for all legal size, and signed,
- unsigned types). This</para>
- <para>error happens in the +, -, *, / operations. In the
- expression:</para>
- <!-- DNT-Start --><programlisting>expr1 + expr2</programlisting><!-- DNT-End -->
- <para>if one of the expr1 and expr2 is string, the other is implicitly
- cast to string (if it is not already string, and can be cast to string).
- For instance:</para>
- <!-- DNT-Start --><programlisting>x := 123 + 'STR'</programlisting><!-- DNT-End -->
- <para>is a legal expression, and x has the value: '123<!-- DNT-Start -->STR<!-- DNT-End -->'. For other
- operations (-, *, /), only numeric values are allowed. Implicit cast may
- be involved, but:</para>
- <para>⢠A string is not implicitly cast to a numeric value (while an
- numeric can be implicitly cast to a string value).</para>
- <para>⢠A boolean vaue cannot be cast to either string or numeric
- values.</para>
- <para>⢠A <!-- DNT-Start -->DATA<!-- DNT-End --> value can only be cast to or from <!-- DNT-Start -->STRING<!-- DNT-End -->, and not to or
- from a numeric value.</para>
- <para>Solution: Change the expression to be a numeric type. Use explict
- casting where proper. Example:</para>
- <!-- DNT-Start --><programlisting> 01: x1 := <emphasis role="bold">TRUE </emphasis>+ 35;
- 02:
- 03: x2 := 35 - <emphasis role="bold">'STR'</emphasis>;
- 04:
- 05: x3 := 34 * <emphasis role="bold">'STR'</emphasis>;
- 06:
- 07: x4 := 12 * <emphasis role="bold">x'abcd'</emphasis>;
- </programlisting><!-- DNT-End -->
- <para>All bold expressions are not numeric (and cannot be implicitly cast
- to a numeric value).</para>
- </sect1>
- <sect1 id="_2073">
- <!-- DNT-Start --><title>2073</title><!-- DNT-End -->
- <indexterm>
- <primary>2073</primary>
- </indexterm>
- <para><emphasis role="bold">Expected boolean expression</emphasis></para>
- <para>A boolean expression is expected where this error occurs. For C
- programmers, integer is not</para>
- <para>compatible with boolean in <!-- DNT-Start -->ECL<!-- DNT-End -->. So 0, 1 or 2 are not a legal boolean
- values as in C. You can cast</para>
- <para>an <!-- DNT-Start -->INTEGER<!-- DNT-End --> to a <!-- DNT-Start -->BOOLEAN<!-- DNT-End -->.</para>
- <para>The following is a partial list of where a boolean expression is
- expected:</para>
- <para>⢠<!-- DNT-Start -->IF<!-- DNT-End -->(condition, expr1,expr2)</para>
- <para>⢠<!-- DNT-Start -->MAP<!-- DNT-End -->(condtion1=>expr1,...,condition_n=>exprn, defvalue)</para>
- <para>⢠<!-- DNT-Start -->IFBLOCK<!-- DNT-End -->(condition)</para>
- <para>⢠<!-- DNT-Start -->WHEN<!-- DNT-End --></para>
- <para>⢠<!-- DNT-Start -->WHICH<!-- DNT-End -->(condition1,...,conditions)</para>
- <para>⢠<!-- DNT-Start -->REJECTED<!-- DNT-End -->(condition1,...,conditions)</para>
- <para>⢠#<!-- DNT-Start -->IF<!-- DNT-End -->(condition)</para>
- <para>Solution: Use boolean expression instead. Use comparison (=, !=,
- <>, etc.) to change an integer to a boolean when proper.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: x1 := NOT <emphasis role="bold">2</emphasis>;
- 02: x2 := FALSE AND <emphasis role="bold">'STR'</emphasis>;
- 03: x3 := TRUE OR <emphasis role="bold">x'abcd'</emphasis>;
- 04: x4 := IF (<emphasis role="bold">2</emphasis>,3,4);
- 05: x5 := MAP(<emphasis role="bold">1</emphasis>=>3,4);
- 06: x6 := WHICH(<emphasis role="bold">'2'</emphasis>,3<4);
- </programlisting><!-- DNT-End -->
- <para>All the bol expressions should be replaced by boolean
- expressions.</para>
- </sect1>
- <sect1 id="_2074">
- <!-- DNT-Start --><title>2074</title><!-- DNT-End -->
- <indexterm>
- <primary>2074</primary>
- </indexterm>
- <para><emphasis role="bold">'(' expected</emphasis></para>
- <para>An open parenthesis '(' is missing. This error normally happens in
- <!-- DNT-Start -->ECL<!-- DNT-End --> template commands:</para>
- <para>⢠#<!-- DNT-Start -->DECLARE<!-- DNT-End --></para>
- <para>⢠#<!-- DNT-Start -->IF<!-- DNT-End --></para>
- <para>⢠#<!-- DNT-Start -->FOR<!-- DNT-End --></para>
- <para>⢠#<!-- DNT-Start -->SET<!-- DNT-End --></para>
- <para>Solution: Add a '(' and ')' if needed. Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: loadxml('myxml.xml')
- 02:
- 03: #DECLARE <emphasis role="bold">s</emphasis>
- 04:
- 05: #IF <emphasis role="bold">TRUE</emphasis>
- 06: #END
- 07:
- 08: #SET <emphasis role="bold">s</emphasis>
- 09:
- 10: #FOR <emphasis role="bold">item(%'type'% = 'count')</emphasis>
- 11: #APPEND(s, 'count')
- 12: #END
- </programlisting><!-- DNT-End -->
- <para>All bold expressions should be surrounded by parentheses.</para>
- </sect1>
- <sect1 id="_2075">
- <!-- DNT-Start --><title>2075</title><!-- DNT-End -->
- <indexterm>
- <primary>2075</primary>
- </indexterm>
- <para><emphasis role="bold">')' expected</emphasis></para>
- <para>A close parenthesis ')' is missing. This error normally happens in
- <!-- DNT-Start -->ECL<!-- DNT-End --> template commands:</para>
- <para>Solution: Add the missing ')'.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: loadxml('myxml.xml')
- 02:
- 03: #DECLARE (s
- 04:
- 05: #IF (TRUE
- 06: #END
- 07:
- 08: #SET (s,3
- 09:
- 10: #FOR (item(%'type'% = 'cunt')
- 11: #APPEND(s, 'count')
- 12: #END
- </programlisting><!-- DNT-End -->
- <para>The compiler may not do well enough to point out every missing ')'
- in this example, so looking around is always a good idea.</para>
- </sect1>
- <sect1 id="_2076">
- <!-- DNT-Start --><title>2076</title><!-- DNT-End -->
- <indexterm>
- <primary>2076</primary>
- </indexterm>
- <para><emphasis role="bold">',' expected </emphasis></para>
- <para>A comma (',') is expected. Normally this means another parameter is
- expected, or the program construct is incomplete.</para>
- <para>Solution: Check the context where the error occurs and make sure to
- supply complete parameters or complete constructs.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: #SET (s)
- </programlisting><!-- DNT-End -->
- <para>#<!-- DNT-Start -->SET<!-- DNT-End --> expects two parameters instead of one.</para>
- </sect1>
- <sect1 id="_2077">
- <!-- DNT-Start --><title>2077</title><!-- DNT-End -->
- <indexterm>
- <primary>2077</primary>
- </indexterm>
- <para><emphasis role="bold">identifier expected</emphasis></para>
- <para>An identifier is expected. This normally means the code expected an
- attribute name. Solution: Check the context, and make sure understand the
- construct you are using.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: #DECLARE (1)
- 02: #SET(1,2)</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2078">
- <!-- DNT-Start --><title>2078</title><!-- DNT-End -->
- <indexterm>
- <primary>2078</primary>
- </indexterm>
- <para>; expected</para>
- </sect1>
- <sect1 id="_2079">
- <!-- DNT-Start --><title>2079</title><!-- DNT-End -->
- <indexterm>
- <primary>2079</primary>
- </indexterm>
- <para>Expected an 8 byte file position</para>
- </sect1>
- <sect1 id="_2080">
- <!-- DNT-Start --><title>2080</title><!-- DNT-End -->
- <indexterm>
- <primary>2080</primary>
- </indexterm>
- <para>Fileposition should be the last field in an index</para>
- </sect1>
- <sect1 id="_2081">
- <!-- DNT-Start --><title>2081</title><!-- DNT-End -->
- <indexterm>
- <primary>2081</primary>
- </indexterm>
- <para><emphasis role="bold">Import names unknown module
- <!-- DNT-Start -->XXX<!-- DNT-End --></emphasis></para>
- <para>The <!-- DNT-Start -->IMPORT<!-- DNT-End --> names a module that appears not to exist. In <!-- DNT-Start -->ECL<!-- DNT-End -->, ll
- modules are defined and</para>
- <para>stored in a central <!-- DNT-Start -->ECL<!-- DNT-End --> repository.</para>
- <para>Solution: Make sure the module exists in the <!-- DNT-Start -->ECL<!-- DNT-End --> repository and its
- name is spelled correctly for the <!-- DNT-Start -->IMPORT<!-- DNT-End -->. If you believe the module is
- there and you still have problem, this is often a</para>
- <para>system configuration problem. Unless you are unfamiliar with the
- system, contact your system administrator.</para>
- <para>The following information is only for the advanced user who will do
- the configuration by him/ herself. If you are using Query Builder program,
- use the Connections tab in the File/Preferences dialog. Use the Quick
- Config button if you can. If youare running a local <!-- DNT-Start -->ECL<!-- DNT-End --> server, you can
- first use the Quick Config to set up the Jack and Hole cluster. Then
- change the <!-- DNT-Start -->ECL<!-- DNT-End --> server to point to you machine (either the machine name or
- <!-- DNT-Start -->IP<!-- DNT-End --> will be <!-- DNT-Start -->OK<!-- DNT-End -->).</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> IMPORT unknown_module;
- </programlisting><!-- DNT-End -->
- <para>In the above example, unknown_module is not the <!-- DNT-Start -->ECL<!-- DNT-End -->
- repository.</para>
- </sect1>
- <sect1 id="_2091">
- <!-- DNT-Start --><title>2091</title><!-- DNT-End -->
- <indexterm>
- <primary>2091</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->JOINED<!-- DNT-End --> must specify a sorted
- dataset</emphasis></para>
- <para>In the <!-- DNT-Start -->SORT<!-- DNT-End --> function:</para>
- <para><!-- DNT-Start -->SORT<!-- DNT-End --> (recordset, value [, value ...], <!-- DNT-Start -->JOINED<!-- DNT-End -->(joinedset)]);</para>
- <para>the parameter to <!-- DNT-Start -->JOINED<!-- DNT-End --> must be a sorted set.</para>
- <para>A sorted dataset is either a dataset that is labeled as <!-- DNT-Start -->SORTED<!-- DNT-End -->, or
- the result set of a <!-- DNT-Start -->SORT<!-- DNT-End --></para>
- <para>function.</para>
- <para>Solution: Label the dataset as <!-- DNT-Start -->SORTED<!-- DNT-End --> if it is already sorted,
- otherwise sort it first. Normally, we need a temporary attribute to hold
- the sorted dataset because of Error C2161.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 fa}, hole);
- 02: bbb := DATASET('bbb', {STRING1 fb}, hole, aaa);
- 03: sorted_bbb := SORTED(bbb, fb);
- 04: OUTPUT(SORT(aaa, fa, JOINED(bbb)));
- </programlisting><!-- DNT-End -->
- <para>The bbb is not a sorted dataset in line 4, so we get this error.
- sorted_bbb is sorted, so we can solve this problm by replacing bbb with
- sorted_bbb.</para>
- </sect1>
- <sect1 id="_2092">
- <!-- DNT-Start --><title>2092</title><!-- DNT-End -->
- <indexterm>
- <primary>2092</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->JOINED<!-- DNT-End --> data set has different number of sort
- fields</emphasis></para>
- <para>In the <!-- DNT-Start -->SORT<!-- DNT-End --> statement:</para>
- <para><programlisting>SORT (recordset, value, [value...], JOINED(joinedset));</programlisting></para>
- <para>the number of sort fields in joinedset and the number of field to be
- sorted on for the recordset must be the same.</para>
- <para>The sort fields are the fields that are specified in the <!-- DNT-Start -->SORT<!-- DNT-End --> or
- <!-- DNT-Start -->SORTED<!-- DNT-End --> statement. For example:</para>
- <!-- DNT-Start --><programlisting>SortedPerson := SORT(person, first_name, last_name);</programlisting><!-- DNT-End -->
- <para>has 2 sort fields: first_name, and last_name, and</para>
- <!-- DNT-Start --><programlisting>sortedPerson2 := SORTED(sortedPerson, first_name);</programlisting><!-- DNT-End -->
- <para>has only 1 sort field: first_name as specified in the <!-- DNT-Start -->SORTED<!-- DNT-End -->
- statement, although sortedPerson was sorted on two fields.</para>
- <para>Solution: Specify the same number of sort fields as required.
- Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 f1, STRING1 f2}, hole);
- 02: sored_aaa := SORT(aaa,f1,f2);
- 03: OUTPUT(SORT(aaa, f2, JOINED(sorted_aaa)));
- 04: // this is OK although sorted_aaa was sorted on 2 fields.
- 05: sorted_aaa2 := SORTED(sorted_aaa,f1);
- 06: OUTPUT(SORT(aaa, f2, JOINED(sorted_aaa2)));
- 07: bbb := DATASET('bbb', {STRING1 fb}, hole);
- 08: sorted_bbb := SORTED(bbb,fb);
- 09: OUTPUT(SORT(aaa, f1, f2, JOINED(sorted_bbb)));
- </programlisting><!-- DNT-End -->
- <para>In line 3, sorted_aaa has 2 sort fields (f1, f2 as defined in line
- 2), while the outer sort to aaa only has 1 field (f2). In line 9,
- sorted_bbb has 1 sort field while sort on aaa has 2. Both cases are not
- allowed. Note that line 6 is <!-- DNT-Start -->OK<!-- DNT-End --> since sorted_aaa2 has only 1 sort field
- specified although sorted_aaa was sorted on two fields.</para>
- </sect1>
- <sect1 id="_2093">
- <!-- DNT-Start --><title>2093</title><!-- DNT-End -->
- <indexterm>
- <primary>2093</primary>
- </indexterm>
- <para><emphasis role="bold">Component of <!-- DNT-Start -->JOINED<!-- DNT-End --> has different type to this
- sort</emphasis></para>
- <para>In the <!-- DNT-Start -->SORT<!-- DNT-End --> statement:</para>
- <para><programlisting>SORT (recordset, value, [value...], JOINED(joinedset));</programlisting></para>
- <para>the type of each field specified in <!-- DNT-Start -->SORT<!-- DNT-End --> (by value, [value...]) must
- be the same as the sort fields</para>
- <para>in the joinedset. The type is compared in the order they are
- specified. (Note that they must have</para>
- <para>the same number of fields, see Error 2092.)</para>
- <para>Solution: Make sure they have the same types. Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 f1, BOOLEAN f2}, hole);
- 02: sorted_aaa := SORT(aaa,f1);
- 03: OUTPUT(SORT(aaa, f2, JOINED(sorted_aaa)));
- 04:
- 05: sorted_aaa1 := SORT(aaa,f1,f2);
- 06: OUTPUT(SORT(aaa, f2, f1, JOINED(sorted_aaa1)));
- </programlisting><!-- DNT-End -->
- <para>In line 2, sorted_aaa is sorted on f1, whose type is <!-- DNT-Start -->STRING<!-- DNT-End -->1.
- However, in line 3, we are sorting aa on field f2 which is of type
- <!-- DNT-Start -->BOOLEAN<!-- DNT-End -->. In line 6, we should know that the order of the fields
- matters.</para>
- </sect1>
- <sect1 id="_2094">
- <!-- DNT-Start --><title>2094</title><!-- DNT-End -->
- <indexterm>
- <primary>2094</primary>
- </indexterm>
- <para><emphasis role="bold">Too many joined clauses</emphasis></para>
- <para>In a <!-- DNT-Start -->SORT<!-- DNT-End --> statement, only one <!-- DNT-Start -->JOINED<!-- DNT-End --> clause is allowed. If we give
- more than one <!-- DNT-Start -->JOINED<!-- DNT-End --> clause, we get this error.</para>
- <para>Solution: Remove extra <!-- DNT-Start -->JOINED<!-- DNT-End --> clause, and only keep one.
- Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 f1, BOOLEAN f2}, hole);
- 02: sorted_aaa := SORT(aaa,f1);
- 03: OUTPUT(SORT(aaa, f1, JOINED(sorted_aaa), JOINED(sorted_aaa)));
- </programlisting><!-- DNT-End -->
- <para>Two <!-- DNT-Start -->JOINED<!-- DNT-End --> clauses are presented in the <!-- DNT-Start -->SORT<!-- DNT-End --> of line 3.</para>
- </sect1>
- <sect1 id="_2095">
- <!-- DNT-Start --><title>2095</title><!-- DNT-End -->
- <indexterm>
- <primary>2095</primary>
- </indexterm>
- <para>Implicit joins are only supported in <!-- DNT-Start -->HOLE<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_2096">
- <!-- DNT-Start --><title>2096</title><!-- DNT-End -->
- <indexterm>
- <primary>2096</primary>
- </indexterm>
- <para>The list to be sorted on can not be empty</para>
- </sect1>
- <sect1 id="_2097">
- <!-- DNT-Start --><title>2097</title><!-- DNT-End -->
- <indexterm>
- <primary>2097</primary>
- </indexterm>
- <para>Invalid size for <!-- DNT-Start -->UNICODE<!-- DNT-End --> or <!-- DNT-Start -->VARUNICODE<!-- DNT-End --> type</para>
- </sect1>
- <sect1 id="_2098">
- <!-- DNT-Start --><title>2098</title><!-- DNT-End -->
- <indexterm>
- <primary>2098</primary>
- </indexterm>
- <para>Incompatible locales in unicode arguments of binary operation</para>
- </sect1>
- <sect1 id="_2099">
- <!-- DNT-Start --><title>2099</title><!-- DNT-End -->
- <indexterm>
- <primary>2099</primary>
- </indexterm>
- <para>Bad locale name</para>
- </sect1>
- <sect1 id="_2100">
- <!-- DNT-Start --><title>2100</title><!-- DNT-End -->
- <indexterm>
- <primary>2100</primary>
- </indexterm>
- <para><emphasis role="bold">Definition must define <!-- DNT-Start -->EXPORTed<!-- DNT-End --> or <!-- DNT-Start -->SHAREed<!-- DNT-End -->
- value for <!-- DNT-Start -->XXX<!-- DNT-End -->.</emphasis></para>
- <para>You are trying to use an attribute that is defined in a module but
- not <!-- DNT-Start -->EXPORTed<!-- DNT-End --> or <!-- DNT-Start -->SHARED<!-- DNT-End -->. If you want use an attribute that is defined in
- another module, the attribute must be <!-- DNT-Start -->EXPORTed<!-- DNT-End -->. If you are using an
- attribute defined in the same module, bt in a different file (a Query
- Build window), it must be defined as <!-- DNT-Start -->SHARED<!-- DNT-End -->.</para>
- <para>Solution: Export or share the attribute. Example:</para>
- <!-- DNT-Start --><programlisting>Inside MyModule:
- 01: SmallPersonSet := CHOOSEN(Person(), 50);
- ECL code that is trying to use SmallPersonSet:
- 01: import MyModule;
- 02: output(MyModule.SmallPersonSet);
- </programlisting><!-- DNT-End -->
- <para>We get this error since SmallPersonSet is defined, but neither
- <!-- DNT-Start -->EXPORTed<!-- DNT-End --> or <!-- DNT-Start -->SHARED<!-- DNT-End -->.</para>
- </sect1>
- <sect1 id="_2101">
- <!-- DNT-Start --><title>2101</title><!-- DNT-End -->
- <indexterm>
- <primary>2101</primary>
- </indexterm>
- <para>Error in referenced attribute</para>
- </sect1>
- <sect1 id="_2110">
- <!-- DNT-Start --><title>2110</title><!-- DNT-End -->
- <indexterm>
- <primary>2110</primary>
- </indexterm>
- <para><emphasis role="bold">A value for <!-- DNT-Start -->XXX<!-- DNT-End --> has already been
- specified</emphasis></para>
- <para>In a <!-- DNT-Start -->TRANSFORM<!-- DNT-End --> definition, each field of the return record structure
- must receive a value once (otherwise Error 2111 occurs) and only once
- (otherwise this error occurs).</para>
- <para>Note that the collective assignment definition:</para>
- <!-- DNT-Start --><programlisting><emphasis role="bold"> SELF </emphasis>:= label;</programlisting><!-- DNT-End -->
- <para>places a value in each field of the result record from its matching
- field in the label record. How- ever, this collective assignment
- definition can be overwritten by a following individual assign- ment
- definition to one or more of the fields. This is a special exception. The
- execution engine can detect this situation if a following assignment
- definition exists.</para>
- <para>Solution: Make sure to only define each output field once. Use <!-- DNT-Start -->CSE<!-- DNT-End -->,
- <!-- DNT-Start -->MAP<!-- DNT-End -->, <!-- DNT-Start -->CHOOSE<!-- DNT-End -->, or <!-- DNT-Start -->IF<!-- DNT-End --></para>
- <para>when proper so that there is only one assignment definition for each
- output ield.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: NamesRec := RECORD
- 02: STRING20 thename;
- 03: STRING20 addr1 := '';
- 04: STRING20 addr2 := '';
- 05: END;
- 06:
- 07: OutRec := RECORD
- 08: STRING20 thename;
- 09: STRING20 addr;
- 10: END;
- 11:
- 12: OutRec Trans(NamesRec L, INTEGER C) :=
- 13: TRANSFORM
- 14: SELF := L;
- 15: SELF.addr := CHOOSE(C, L.addr1, L.addr2);
- 16: SELF.addr := 'ABC';
- 17: END;</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2111">
- <!-- DNT-Start --><title>2111</title><!-- DNT-End -->
- <indexterm>
- <primary>2111</primary>
- </indexterm>
- <para><emphasis role="bold">Transform does not supply a value for field
- <!-- DNT-Start -->XXX<!-- DNT-End --></emphasis></para>
- <para>In a <!-- DNT-Start -->TRANSFORM<!-- DNT-End --> definition, each field of the return record structure
- must recieve a value, either explicitly by an assignment definition, or
- implicitly by</para>
- <!-- DNT-Start --><programlisting><emphasis role="bold"> SELF </emphasis>:= label;</programlisting><!-- DNT-End -->
- <para>Either way, we must guarantee each field receives a value.</para>
- <para>Solution: Ensure a value is placed in the field. If you want the
- field just get the value of a corre- sponding filed in an input record,
- the two fields must have the same names.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: NamesRec := RECORD
- 02: //STRING20 <emphasis role="bold">thename</emphasis>;
- 03: STRING20 addr1 := '';
- 04: STRING20 addr2 := '';
- 05: END;
- 06:
- 07: OutRec := RECORD
- 08: STRING20 thename;
- 09: STRING20 addr;
- 10: END;
- 11:
- 12: OutRec Trans(NamesRec L, INTEGER C) := TRANFORM
- 13: SELF := L;
- 14: SELF.addr := CHOOSE(C, L.addr1, L.addr2);
- 15: END;
- </programlisting><!-- DNT-End -->
- <para>Since we commented out the field thename in NamesRec definition
- (line 2), and we don't explicitly place a value in OutRec's thename field
- (line 13-15), we get this error. We can either un- comment line 2, or
- place a value in OutRec.thename within the transform to resolve the
- problem.</para>
- </sect1>
- <sect1 id="_2112">
- <!-- DNT-Start --><title>2112</title><!-- DNT-End -->
- <indexterm>
- <primary>2112</primary>
- </indexterm>
- <para><emphasis role="bold">A field called <!-- DNT-Start -->XXX<!-- DNT-End --> is already defined in this
- record</emphasis></para>
- <para>A field with the same name as the one in question is already defined
- in the record. Field names must be unique within a record definition. It
- doesn't matter if their types are the same or not.</para>
- <para>Solution: Choose another name for the field, or remove one if they
- are just duplicated. Example:</para>
- <!-- DNT-Start --><programlisting> 01: MyRec := RECORD
- 02: STRING20 name;
- 03: INTEGER1 age;
- 04: STRING20 <emphasis role="bold">name</emphasis>;
- 05: INTEGER1 <emphasis role="bold">name</emphasis>;
- 06: END;
- </programlisting><!-- DNT-End -->
- <para>In the above example, name is aleady defined in line 2, the
- definitions in line 4 and 5 are not allowed.</para>
- </sect1>
- <sect1 id="_2113">
- <!-- DNT-Start --><title>2113</title><!-- DNT-End -->
- <indexterm>
- <primary>2113</primary>
- </indexterm>
- <para><!-- DNT-Start -->TRANSFORM<!-- DNT-End --> required a record return type</para>
- </sect1>
- <sect1 id="_2114">
- <!-- DNT-Start --><title>2114</title><!-- DNT-End -->
- <indexterm>
- <primary>2114</primary>
- </indexterm>
- <para>Can not assign type <!-- DNT-Start -->XXX<!-- DNT-End --> to self</para>
- </sect1>
- <sect1 id="_2115">
- <!-- DNT-Start --><title>2115</title><!-- DNT-End -->
- <indexterm>
- <primary>2115</primary>
- </indexterm>
- <para>Transform must have at least 1 parameter</para>
- </sect1>
- <sect1 id="_2116">
- <!-- DNT-Start --><title>2116</title><!-- DNT-End -->
- <indexterm>
- <primary>2116</primary>
- </indexterm>
- <para>Dataset can not be used in transform</para>
- </sect1>
- <sect1 id="_2117">
- <!-- DNT-Start --><title>2117</title><!-- DNT-End -->
- <indexterm>
- <primary>2117</primary>
- </indexterm>
- <para>Can not use dataset directly in transform parameters</para>
- </sect1>
- <sect1 id="_2121">
- <!-- DNT-Start --><title>2121</title><!-- DNT-End -->
- <indexterm>
- <primary>2121</primary>
- </indexterm>
- <para><emphasis role="bold">Invalid substring range</emphasis></para>
- <para>The index to a string is in an illegal range. There are 3
- cases:</para>
- <para>⢠If a start index is specified, it must e in the range [1 ..
- string_len], inclusive.</para>
- <para>⢠If a stop index is specified, it must be in the range [1 ..
- string_len], inclusive.</para>
- <para>⢠If both start index and stop indexes are specified, the start
- index must be less than or equal to the stop index.</para>
- <para>The <more info> will explain which case the error is. If there
- are mutiple cases in one substring expression, only the first error is
- given (to reduce the number of error messages). For the C/ C++/Java
- programmers, <!-- DNT-Start -->ECL<!-- DNT-End --> indexing always starts at element 1 (not 0).</para>
- <para>This error is a compiler error, not a runtime error. Don't count on
- the compiler to do all the index checking for you. It is always a good
- idea to mae sure the index is in proper range. For example:</para>
- <!-- DNT-Start --><programlisting> 01: STRING concat(STRING x, STRING y) := x+y;
- 02: STRING a := 'a';
- 03: STRING b := 'bc';
- 04: STRING c := concat(a,b);
- 05: c[10];
- </programlisting><!-- DNT-End -->
- <para>The compiler cannot know that the index value (10) in line 5 is out
- of range. The behavior is undefined if the index is out of range at
- runtime.</para>
- <para>Solution: For indexing string constants, make sure it is in proper
- range. For strings of unknown size (like a <!-- DNT-Start -->STRING<!-- DNT-End --> parameter passed to a
- function), use the <!-- DNT-Start -->LENGTH<!-- DNT-End --> function as necessary.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: STRING3 s := 'abc';
- 02: s1 := s[0];
- 03: s2 := s[1..4];
- 04: s3 := s[3..2];
- </programlisting><!-- DNT-End -->
- <para>We get the following error message:</para>
- <!-- DNT-Start --><programlisting> error C2121: Invalid substring range: start index out of [1..len]
- error C2121: Invalid substring range: end index out of [1..len]
- error C2121: Invalid substring range: start index > end index</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2124">
- <!-- DNT-Start --><title>2124</title><!-- DNT-End -->
- <indexterm>
- <primary>2124</primary>
- </indexterm>
- <para><!-- DNT-Start -->STORED<!-- DNT-End -->() has zero length</para>
- </sect1>
- <sect1 id="_2130">
- <!-- DNT-Start --><title>2130</title><!-- DNT-End -->
- <indexterm>
- <primary>2130</primary>
- </indexterm>
- <para><emphasis role="bold">Value for field <!-- DNT-Start -->XXX<!-- DNT-End --> cannot be computed in this
- scope</emphasis></para>
- <para>Inside an <!-- DNT-Start -->OUTPUT<!-- DNT-End -->, the output record specifies a field that is not
- part of the dataset. The example will help to clarify this.</para>
- <para>Solution: Remove the offending field from the output record set.
- Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 fa }, HOLE);
- 02: bbb := DATASET('bbb', {STRING1 fb }, HOLE);
- 03:
- 04: OUTPUT(aaa, {aaa.fa, bbb.fb});
- </programlisting><!-- DNT-End -->
- <para>In line 4, field bbb.fb is not a field of output dataset aaa,
- therefore cannot be specified here.</para>
- </sect1>
- <sect1 id="_2131">
- <!-- DNT-Start --><title>2131</title><!-- DNT-End -->
- <indexterm>
- <primary>2131</primary>
- </indexterm>
- <para><emphasis role="bold">Incorrect assertion scoping</emphasis></para>
- <para>There is a problem with the scoping of the referenced attribute.
- There are several cases.</para>
- <para>⢠In a filter, each referenced field must be a field of the dataset
- we are filtering. The examplewill help to clarify this.</para>
- <para>⢠In <!-- DNT-Start -->SORT<!-- DNT-End -->, the field to be sorted must be a field of the dataset
- that is being sorted.</para>
- <para>⢠In <!-- DNT-Start -->SORTED<!-- DNT-End -->, the field that is specified as having been sorted on
- must be a field of the dataset.</para>
- <para>And much more...</para>
- <para>Solution: Remove the offending field from the filter. Example
- 1:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 fa }, HOLE);
- 02: bbb := DATASET('bbb', {STRING1 fb }, HOLE);
- 03:
- 04: OUTPUT(aaa(fa='Good', bbb.fb='Bad'));
- </programlisting><!-- DNT-End -->
- <para>This is a filter example. In line 4, the filter bbb.fb = 'Bad'
- refers to a field of dataset bbb, but we are trying to filter dataset
- aaa.</para>
- <para>Example 2:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 fa }, HOLE);
- 02: bbb := DATASET('aaa', {STRING1 fb }, HOLE);
- 03: ccc := SORT(aaa, fa, bbb.fb);
- </programlisting><!-- DNT-End -->
- <para>This is a <!-- DNT-Start -->SORT<!-- DNT-End --> example. In line 3, bbb.fb is not a field of the
- dataset aaa which we are sorting.</para>
- </sect1>
- <sect1 id="_2132">
- <!-- DNT-Start --><title>2132</title><!-- DNT-End -->
- <indexterm>
- <primary>2132</primary>
- </indexterm>
- <para><emphasis role="bold">Assertion must be boolean</emphasis></para>
- <para>Each filter for a dataset must be a boolean expression. This error
- usually follows error C2073: Boolean expression expected.</para>
- <para>Solution: Change the expression in question to a boolean expression.
- Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 f1; STRING1 f2; }, HOLE);
- 02: bbb := aaa(f1);
- 03: ccc := aaa(f1*2);
- </programlisting><!-- DNT-End -->
- <para>In line 2, f1 is not boolean type, and in line 3, f1*2 gives an
- error, and results in an unknown type filter.</para>
- </sect1>
- <sect1 id="_2133">
- <!-- DNT-Start --><title>2133</title><!-- DNT-End -->
- <indexterm>
- <primary>2133</primary>
- </indexterm>
- <para>Use dataset in expression without proper context</para>
- </sect1>
- <sect1 id="_2134">
- <!-- DNT-Start --><title>2134</title><!-- DNT-End -->
- <indexterm>
- <primary>2134</primary>
- </indexterm>
- <para>Parameter to fetch isn't a dataset</para>
- </sect1>
- <sect1 id="_2141">
- <!-- DNT-Start --><title>2141</title><!-- DNT-End -->
- <indexterm>
- <primary>2141</primary>
- </indexterm>
- <para><emphasis role="bold">Illegal combination of
- modifers</emphasis></para>
- <para>The modifiers to attributes have an illegal combination. Duplicating
- the same modifier is an example of illegal combination. Combining some
- conflicted modifiers will be an error too, but will cause different errors
- than this one (e.g., see Error C2142).</para>
- <para>Solution: Remove any duplicated modifier. Example:</para>
- <!-- DNT-Start --><programlisting> 01: SHARED SHARED aa := 3;
- </programlisting><!-- DNT-End -->
- <para>Here two <!-- DNT-Start -->SHARED<!-- DNT-End --> are used at the same time -- an illegal combination.
- Remove one of them.</para>
- </sect1>
- <sect1 id="_2142">
- <!-- DNT-Start --><title>2142</title><!-- DNT-End -->
- <indexterm>
- <primary>2142</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->EXPORT<!-- DNT-End --> and <!-- DNT-Start -->SHARED<!-- DNT-End --> cannot be specified
- together</emphasis></para>
- <para><!-- DNT-Start -->EXPORT<!-- DNT-End --> and <!-- DNT-Start -->SHARED<!-- DNT-End --> are both specified on an attribute, which is not
- allowed.</para>
- <para>Solution: Remove <!-- DNT-Start -->EXPORT<!-- DNT-End --> or <!-- DNT-Start -->SHARED<!-- DNT-End -->. Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: SHARED EXPORT aa := 3;
- 02: EXPORT SHARED bb := 3;
- </programlisting><!-- DNT-End -->
- <para>Both lines specify <!-- DNT-Start -->SHARED<!-- DNT-End --> and <!-- DNT-Start -->EXPORT<!-- DNT-End --> at the same time.</para>
- </sect1>
- <sect1 id="_2143">
- <!-- DNT-Start --><title>2143</title><!-- DNT-End -->
- <indexterm>
- <primary>2143</primary>
- </indexterm>
- <para><emphasis role="bold">Identifier <!-- DNT-Start -->XXX<!-- DNT-End --> is already
- defined</emphasis></para>
- <para>The identifier in question is already defined somewhere before. The
- identifier can be an attribute name, a user-defined function name, a
- user-defined macro name, etc. Functions, macros, and attributes all share
- a name space. Therefore, an identifier that is used as a function name
- cannot be used again in the same scope. See Scope rules in <!-- DNT-Start -->ECL<!-- DNT-End --> for
- information about scoping.</para>
- <para>In <!-- DNT-Start -->ECL<!-- DNT-End -->, an attribute can be defined only once in a given scope. Once
- defined, we cannot rede- fine it again in the same scope. In this regard,
- attributes are different from variables in the normal procedure
- programming languages.</para>
- <para>Solution: Choose another name, or make the conflicting names exist
- in different scopes, if possible. Removing <!-- DNT-Start -->EXPORT<!-- DNT-End --> or <!-- DNT-Start -->SHARED<!-- DNT-End --> to changethe
- scope level may make once-valid code invalid since <!-- DNT-Start -->EXPORT<!-- DNT-End --> or <!-- DNT-Start -->SHARED<!-- DNT-End -->
- changes the scope of any local attributes before it.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: attr := 4;
- 02: <emphasis role="bold">attr </emphasis>:= 3;
- 03:
- 04: func(x) := x*2;
- 05: <emphasis role="bold">func</emphasis>(x) := x+2;
- 06:
- 07: macro1 := MACRO
- 08: 4
- 09: ENDMACRO;
- 10: <emphasis role="bold">macro1 </emphasis>:= 2;
- </programlisting><!-- DNT-End -->
- <para>In the example, all identifiers in bold are already defined before
- it.</para>
- </sect1>
- <sect1 id="_2144">
- <!-- DNT-Start --><title>2144</title><!-- DNT-End -->
- <indexterm>
- <primary>2144</primary>
- </indexterm>
- <para><emphasis role="bold">Expression produces string field of unknown
- length</emphasis></para>
- <para>The compiler cannot determine the size of a string field. This
- normally is the result of some other <!-- DNT-Start -->ECL<!-- DNT-End --> error that causes the compiler to
- have trouble evaluating the size of a string. This error happens often in
- <!-- DNT-Start -->RECORD<!-- DNT-End --> definitions (and its <!-- DNT-Start -->IFBLOCK<!-- DNT-End -->).</para>
- <para>Solution: If the error happens in a <!-- DNT-Start -->RECORD<!-- DNT-End --> definition, make sure the
- field has a name, and a <!-- DNT-Start -->STRINGn<!-- DNT-End --> type (<!-- DNT-Start -->STRING<!-- DNT-End --> without a length cannot be
- used, otherwise you get a C2043 error). The field can be anonymous only
- if: (1) the data type is omitted, and (2) a dataset name is used as the
- expression (which is used to include all the fields from the dataset at
- their declared sizes and value types). For example:</para>
- <!-- DNT-Start --><programlisting> aaa := DATASET('aaa',{STRING1 f1, INTEGER1 f2}, FLAT); MyRec :=
- RECORD
- aaa;
- STRING1 sex;
- END;
- This is equal to:
- MyRec := RECORD STRING1 f1; INTEGER1 f2; STRING1 sex;
- END;
-
- Example:
- 01: STRING cat(STRING s1, STRING s2) := s1 + s2;
- 02:
- 03: MyRec := RECORD
- 04: cat('abc','def');
- 05: END;
- </programlisting><!-- DNT-End -->
- <para>In line 4, no name is given to the to-be-defined field of MyRec. The
- compiler tries to decide the type of the expression cat('abc', 'def ') and
- discovers it is <!-- DNT-Start -->STRING<!-- DNT-End --> (with no specific length) from the definition the
- cat function in line 1. Therefore you get this unknown size error. Giving
- a name and a specific size type to the field solves the problem:</para>
- <!-- DNT-Start --><programlisting> 04: STRING6 magictag := cat('abc','def');</programlisting><!-- DNT-End -->
- <para>Note that we also have to give a size explicitly to the <!-- DNT-Start -->STRING<!-- DNT-End --> type
- in the above code, otherwise, an error C2043 occurs.</para>
- </sect1>
- <sect1 id="_2145">
- <!-- DNT-Start --><title>2145</title><!-- DNT-End -->
- <indexterm>
- <primary>2145</primary>
- </indexterm>
- <para><emphasis role="bold">Different character sets in
- concatenation</emphasis></para>
- <para>The operands in string concatenation (+) have different character
- sets. In <!-- DNT-Start -->ECL<!-- DNT-End -->, we can use <!-- DNT-Start -->ASCII<!-- DNT-End --> or <!-- DNT-Start -->EBCDIC<!-- DNT-End --> charset. By default, a <!-- DNT-Start -->STRING<!-- DNT-End --> is
- <!-- DNT-Start -->ASCII<!-- DNT-End -->. We can not concatenate an <!-- DNT-Start -->EB<!-- DNT-End -->- <!-- DNT-Start -->CDIC<!-- DNT-End --> string to an <!-- DNT-Start -->ASCII<!-- DNT-End --> string (or
- vice versa).</para>
- <para>Solution: Concatenate an <!-- DNT-Start -->EBCDIC<!-- DNT-End --> string and an <!-- DNT-Start -->ASCII<!-- DNT-End --> string seldom
- make sense. If you do want to do this, what you really want to do is to
- change the code of one string so that the two strings have the same
- charsets. An <!-- DNT-Start -->ECL<!-- DNT-End --> function or service can be defined to accomplish this
- task. There is no build in function or service to do this (<!-- DNT-Start -->AFAIK<!-- DNT-End -->).</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: ASCII STRING3 x := 'ABC';
- 02: EBCDIC STRING4 y := 'ABCD';
- 03: STRING7 a := x + y;
- </programlisting><!-- DNT-End -->
- <para>Note that in line 3, y is not an <!-- DNT-Start -->ASCII<!-- DNT-End --> string '<!-- DNT-Start -->ABCD<!-- DNT-End -->' since we are
- defining it as an <!-- DNT-Start -->EBCDIC<!-- DNT-End --> encoded string.</para>
- </sect1>
- <sect1 id="_2146">
- <!-- DNT-Start --><title>2146</title><!-- DNT-End -->
- <indexterm>
- <primary>2146</primary>
- </indexterm>
- <para><emphasis role="bold">Type transfer: target type is larger than
- source type</emphasis></para>
- <para>In a type transfer, the size of target type is larger the size of
- source type.</para>
- <para><!-- DNT-Start -->ECL<!-- DNT-End --> doesn't allow this because it doesn't know how to fill the extra
- space in the target. However, it quietly accepts the other case: target
- size is smaller than the source type in which case data is lost. It
- assumes that the user doing the transfer knows what he is doing.</para>
- <para>Type transfer in <!-- DNT-Start -->ECL<!-- DNT-End --> can be done using the build-in function
- <!-- DNT-Start -->TRANSFER<!-- DNT-End --> or use the transfer operator: (>, <). They are
- equivalent.</para>
- <para>Solution: Make sure the size of the target type is equal to or less
- than that of the source type. Example:</para>
- <!-- DNT-Start --><programlisting> 01: INTEGER2 x := 65;
- 02: STRING3 xstr1 := TRANSFER(x,STRING3);
- 03: STRING3 xstr2 := (>STRING3<)x;
- </programlisting><!-- DNT-End -->
- <para>In line 1, x is defined as <!-- DNT-Start -->INTEGER<!-- DNT-End -->2 (which has size 2). In line 2
- and 3, both target types are <!-- DNT-Start -->STRING<!-- DNT-End -->3 (size=3). Line 2 and line 3 are doing
- the same thing: one uses <!-- DNT-Start -->TRANSFER<!-- DNT-End --> function, the other uses (>, <)
- operator.</para>
- </sect1>
- <sect1 id="_2147">
- <!-- DNT-Start --><title>2147</title><!-- DNT-End -->
- <indexterm>
- <primary>2147</primary>
- </indexterm>
- <para>Illegal identifier <!-- DNT-Start -->XXX<!-- DNT-End -->: $ is not allowed</para>
- </sect1>
- <sect1 id="_2160">
- <!-- DNT-Start --><title>2160</title><!-- DNT-End -->
- <indexterm>
- <primary>2160</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->SIZEOF<!-- DNT-End --> requires a field or dataset
- parameter</emphasis></para>
- <para>The build-in function <!-- DNT-Start -->SIZEOF<!-- DNT-End --> only works with a field or <!-- DNT-Start -->DATASET<!-- DNT-End -->. For
- C programmers,</para>
- <para><!-- DNT-Start -->SIZEOF<!-- DNT-End --> in <!-- DNT-Start -->ECL<!-- DNT-End --> is different from the sizeof operator in C/C++, where
- it can be used on a data</para>
- <para>type or a variable.</para>
- <para>Solution: Use <!-- DNT-Start -->SIZEOF<!-- DNT-End --> only on a field or a dataset as required.
- Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 f1, STRING1 f2}, hole);
- 02: OUTPUT(aaa, {f1,SIZEOF(aaa),SIZEOF(f1)});
- 03:
- 04: INTEGER4 x := 3;
- 05: sizeOfInt := SIZEOF(x);
- 06: sizeOfInt4 := SIZEOF(INTEGER4);
- </programlisting><!-- DNT-End -->
- <para>In line 2, <!-- DNT-Start -->SIZEOF<!-- DNT-End --> is on dataset aaa or field f1. Therefore, it is
- <!-- DNT-Start -->OK<!-- DNT-End -->. However, in lines 5 and 6, <!-- DNT-Start -->SIZEOF<!-- DNT-End --> is on an attribute x and a data type
- <!-- DNT-Start -->INTEGER<!-- DNT-End -->4, which will causing this compile error.</para>
- </sect1>
- <sect1 id="_2161">
- <!-- DNT-Start --><title>2161</title><!-- DNT-End -->
- <indexterm>
- <primary>2161</primary>
- </indexterm>
- <para><emphasis role="bold">Nested <!-- DNT-Start -->SORTs<!-- DNT-End --> may behave incorrectly. Split the
- attribute into two</emphasis></para>
- <para>Sort function calls are nested and may behave incorrectly. This is a
- limit of the current implementation. In the future, this limitation may be
- removed.</para>
- <para>Solution: Split the attribute into two. Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 fa}, hole);
- 02: bbb := DATASET('bbb', {STRING1 fb}, hole, aaa);
- 03: OUTPUT(SORT(aaa, <emphasis role="bold">SORT</emphasis>(bbb, fb)[1].fb));
- </programlisting><!-- DNT-End -->
- <para>The compiler complains on the second <!-- DNT-Start -->SORT<!-- DNT-End --> in line 3. We can solve
- the problem by splitting the attribute, like this:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 fa}, hole);
- 02: bbb := DATASET('bbb', {STRING1 fb}, hole, aaa);
- 03: temp := SORT(bbb, fb);
- 04: OUTPUT(SORT(aaa, temp[1].fb));</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2162">
- <!-- DNT-Start --><title>2162</title><!-- DNT-End -->
- <indexterm>
- <primary>2162</primary>
- </indexterm>
- <para><emphasis role="bold">Nested <!-- DNT-Start -->GROUPs<!-- DNT-End --> may behave incorrectly. Split
- the attribute into two</emphasis></para>
- <para>Group function calls are nested and may behave incorrectly. This is
- a limit of the current implementation. In the future, this limitation may
- be removed.</para>
- <para>Solution: Split the attribute into two. Example:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 fa}, hole);
- 02: bbb := DATASET('bbb', {STRING1 fb}, hole, aaa);
- 03: OUTPUT(GROUP(aaa, <emphasis role="bold">GROUP</emphasis>(bbb, fb)[1].fb));
- </programlisting><!-- DNT-End -->
- <para>The compiler complains on the second <!-- DNT-Start -->GROUP<!-- DNT-End --> in line 3. We can solve
- the problem by splitting the attribute, like this:</para>
- <!-- DNT-Start --><programlisting> 01: aaa := DATASET('aaa', {STRING1 fa}, hole);
- 02: bbb := DATASET('bbb', {STRING1 fb}, hole, aaa);
- 03: temp := GROUP(bbb, fb);
- 04: OUTPUT(GROUP(aaa, temp[1].fb));</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2163">
- <!-- DNT-Start --><title>2163</title><!-- DNT-End -->
- <indexterm>
- <primary>2163</primary>
- </indexterm>
- <para><emphasis role="bold">Too many operands</emphasis></para>
- <para>This error happens in the <!-- DNT-Start -->ECL<!-- DNT-End --> template commands. The command
- expected a certain number of parameters, and the code supplies more than
- it needs.</para>
- <para>Solution: Reduce the number of parameters as required.
- Example:</para>
- <!-- DNT-Start --><programlisting> 01: LOADXML('myxml.xml');
- 02:
- 03: #DECLARE(S)
- 04:
- 05: <emphasis role="bold">#IF(S > 1, S < 5)</emphasis>
- 06: #ENDIF
- 07:
- 08: <emphasis role="bold">#SET (S, '1', 2)</emphasis>
- </programlisting><!-- DNT-End -->
- <para>Both #<!-- DNT-Start -->IF<!-- DNT-End --> and #<!-- DNT-Start -->SET<!-- DNT-End --> need fewer parameters than they are
- supplied.</para>
- </sect1>
- <sect1 id="_2164">
- <!-- DNT-Start --><title>2164</title><!-- DNT-End -->
- <indexterm>
- <primary>2164</primary>
- </indexterm>
- <para><emphasis role="bold">No <!-- DNT-Start -->XML<!-- DNT-End --> scope active</emphasis></para>
- <para>The current statement is legal only in an <!-- DNT-Start -->XML<!-- DNT-End --> context. For example,
- the template language is designed specifically for parsing <!-- DNT-Start -->XML<!-- DNT-End --> code, and
- therefore requires an active <!-- DNT-Start -->XML<!-- DNT-End --> source.</para>
- <para>Solution: Add an <!-- DNT-Start -->XML<!-- DNT-End --> scope before the error (normally at the
- beginning of the file) using <!-- DNT-Start -->LOADXML<!-- DNT-End -->(xml-file-name).</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: #DECLARE(s)
- </programlisting><!-- DNT-End -->
- <para>We can simply add a dummy loadxml statement before line 1 to resolve
- this error:</para>
- <!-- DNT-Start --><programlisting> LOADXML("myxml.xml");
- </programlisting><!-- DNT-End -->
- <para>The content for this example is not important, but it is important
- that the file does exist.</para>
- </sect1>
- <sect1 id="_2165">
- <!-- DNT-Start --><title>2165</title><!-- DNT-End -->
- <indexterm>
- <primary>2165</primary>
- </indexterm>
- <para><emphasis role="bold">File extension must be
- ".HQL"</emphasis></para>
- <para>The file extension used to provide input for an application is
- illegal. For example, Seisint's internal test program hqltest requires the
- .hql file extension on its input files.</para>
- <para>Solution: Change the file extension to the one required for the
- specific application. Example: N/A.</para>
- </sect1>
- <sect1 id="_2166">
- <!-- DNT-Start --><title>2166</title><!-- DNT-End -->
- <indexterm>
- <primary>2166</primary>
- </indexterm>
- <para><emphasis role="bold">File <!-- DNT-Start -->XXX<!-- DNT-End --> not found</emphasis></para>
- <para>A file is not found. This only happens with Seisint's internal test
- programs hqltest or ecltest.</para>
- <para>Solution: Check the file name, and make sure the file exists in the
- proper directory. If the path is relative, it is relative to the current
- (working) directory.</para>
- </sect1>
- <sect1 id="_2167">
- <!-- DNT-Start --><title>2167</title><!-- DNT-End -->
- <indexterm>
- <primary>2167</primary>
- </indexterm>
- <para><emphasis role="bold">Unknown identifier</emphasis></para>
- <para>The identifer is unknown for one of the following reasons:</para>
- <para>⢠The identifier has been misspelled.</para>
- <para>⢠The identifier names an attribute, function, dataset, or macro
- defined in another module that has not been imported.</para>
- <para>⢠The identifier is defined but it is not visible due to the scoping
- rules of <!-- DNT-Start -->ECL<!-- DNT-End -->. In particu- lar, the identifier is probably local (not
- <!-- DNT-Start -->SHARED<!-- DNT-End --> or <!-- DNT-Start -->EXPORTed<!-- DNT-End -->), and there is an <!-- DNT-Start -->EX<!-- DNT-End -->- <!-- DNT-Start -->PORT<!-- DNT-End --> or <!-- DNT-Start -->SHARED<!-- DNT-End --> attribute
- defintion that terminates its scope.</para>
- <para>⢠It is a field of a record, a dataset etc, and it is not properly
- qualified.</para>
- <para>Solution: First make sure it is spelled correctly. If it is defined
- in other module, make sure it is properly imported and qualified. If it is
- a field of some structure (like record, or table), qualify it properly
- (such as: myrecord.field, mytable.field). If it is defined as a local
- attribute to another <!-- DNT-Start -->SHARED<!-- DNT-End --> and <!-- DNT-Start -->EXPORT<!-- DNT-End --> attribute, either promote it to
- <!-- DNT-Start -->SHARED<!-- DNT-End --> or <!-- DNT-Start -->EXPORTed<!-- DNT-End --> scope, or move the code around so that the identifier's
- defintion and the defintion using it are within the same local
- scope.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: a := f(x);
- 02: f(x) := x+3;
- 03: EXPORT y := 4;
- 04: a := f(y);
- </programlisting><!-- DNT-End -->
- <para>In line 1, f is not defined in this module. In line 4, f is alreaday
- defined in line 2, but the scope of f in line 2 is terminated by the
- <!-- DNT-Start -->EXPORT<!-- DNT-End --> in line 3. Make f in line 2 <!-- DNT-Start -->SHARED<!-- DNT-End --> or move line 2 after line 3 to
- solve the problem.</para>
- </sect1>
- <sect1 id="_2168">
- <!-- DNT-Start --><title>2168</title><!-- DNT-End -->
- <indexterm>
- <primary>2168</primary>
- </indexterm>
- <para>Select a field other than these grouped upon</para>
- </sect1>
- <sect1 id="_2169">
- <!-- DNT-Start --><title>2169</title><!-- DNT-End -->
- <indexterm>
- <primary>2169</primary>
- </indexterm>
- <para>Aggregate field following a field that has a variable length</para>
- </sect1>
- <sect1 id="_2170">
- <!-- DNT-Start --><title>2170</title><!-- DNT-End -->
- <indexterm>
- <primary>2170</primary>
- </indexterm>
- <para><emphasis role="bold">No default value for a field</emphasis></para>
- <para>A default value is required for some fields in a record. See example
- for additional information.</para>
- <para>Solution: Given a default value if proper. Most likely, a default
- value is not what you need al- though it may solve the compiler error
- problem.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting>01: bbb := DATASET('aaa', {STRING1 fa; }, FLAT);
- 02: table1 := TABLE(bbb, {STRING1 fa; STRING1 fb; });</programlisting><!-- DNT-End -->
- <para>In this example, we create a table from dataset aaa. Since bbb has a
- field called fa, we can have a value for field fa in the table. However,
- there is no such field called fb in dataset bbb. Hence we get an error
- saying that Field fb does not have default value. In this case, assign a
- default value to fb.</para>
- </sect1>
- <sect1 id="_2171">
- <!-- DNT-Start --><title>2171</title><!-- DNT-End -->
- <indexterm>
- <primary>2171</primary>
- </indexterm>
- <para><emphasis role="bold">Object has no such a field</emphasis></para>
- </sect1>
- <sect1 id="_2180">
- <!-- DNT-Start --><title>2180</title><!-- DNT-End -->
- <indexterm>
- <primary>2180</primary>
- </indexterm>
- <para><emphasis role="bold">Unknown escape sequence</emphasis></para>
- <para>Astring constant contains an unknown escape sequence. Currently, the
- only supported escape sequences are:</para>
- <para>\' and \\</para>
- <para>For C/C++/Java programmers, don't assume that <!-- DNT-Start -->ECL<!-- DNT-End --> supports the
- standard escape sequences in these languages.</para>
- <para>Solution: Remove the offending escape sequence. Example:</para>
- <!-- DNT-Start --><programlisting> 01: string x1 := '\r\n\t\b\x0123';
- </programlisting><!-- DNT-End -->
- <para>None of the above C escape sequences is supported in <!-- DNT-Start -->ECL<!-- DNT-End -->.</para>
- </sect1>
- <sect1 id="_2181">
- <!-- DNT-Start --><title>2181</title><!-- DNT-End -->
- <indexterm>
- <primary>2181</primary>
- </indexterm>
- <para><emphasis role="bold">A string end with escape char \, eg., x :=
- 'abc\';</emphasis></para>
- <para>A string constant is terminated by a backslash (\). Most of the
- time, the intention of the user is</para>
- <para>to have a single quote (') as the last character in the string. As a
- result, he/she puts an escape</para>
- <para>character (\) in front of the single quote (') indicating the end of
- the string constant and the</para>
- <para>terminating quote is ignored.</para>
- <para>Solution: Add another ' to terminate the string or remove the
- offending \ whichever is proper. Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: String s := 'It is brothers\';
- </programlisting><!-- DNT-End -->
- <para>The last character in this string is ', which has to be escaped as
- \', therefore we need another ' to terminate the string constant.</para>
- </sect1>
- <sect1 id="_2182">
- <!-- DNT-Start --><title>2182</title><!-- DNT-End -->
- <indexterm>
- <primary>2182</primary>
- </indexterm>
- <para><emphasis role="bold">Illegal hex data, it can only have
- 0-9a-fA-F</emphasis></para>
- <para>Illegal characters are present in hex data. Hex data is defined
- as:</para>
- <para><programlisting>X'hex-digits' or x'hex-digits'</programlisting></para>
- <para>A hex digit may only be any of the numbers 0 through 9 or the
- letters A through F (upper or lower case). The number of digits in the hex
- string must be even (see Warning C1002) and be greater than 0 (see Warning
- C1003).</para>
- <para>Solution: Remove the illegal characters in the hex. Example:</para>
- <!-- DNT-Start --><programlisting> 01: DATA x1 := x'ABC<emphasis role="bold">X</emphasis>';
- 02: DATA x2 := x'<emphasis role="bold">^</emphasis>1';
- 03: DATA x3 := x'A B';
- 04: DATA x4 := x'<emphasis role="bold">\n</emphasis>';
- </programlisting><!-- DNT-End -->
- <para>All bold chars are illegal hex digits (line 3 has a blank space
- between A and B), therefore none of the above are legal hex data
- strings.</para>
- </sect1>
- <sect1 id="_2183">
- <!-- DNT-Start --><title>2183</title><!-- DNT-End -->
- <indexterm>
- <primary>2183</primary>
- </indexterm>
- <para><emphasis role="bold">Odd number of digits in hex data, e.g.,
- x'<!-- DNT-Start -->ABC<!-- DNT-End -->'. </emphasis></para>
- <para>In a hex data constant, the number of digits in the string must be
- even because it takes two hex digits to define the value of a single byte
- of data.</para>
- <para>Solution: Check that there are no missing or extra digits. Add a
- leading or trailing 0 as required. Example:</para>
- <!-- DNT-Start --><programlisting> DATA d := x'ABCD123';
- </programlisting><!-- DNT-End -->
- <para>The hex data string x'<!-- DNT-Start -->ABCD<!-- DNT-End -->123' contains 7 digits (an odd number).
- Make it: x'0<!-- DNT-Start -->ABCD<!-- DNT-End -->123'.</para>
- </sect1>
- <sect1 id="_2184">
- <!-- DNT-Start --><title>2184</title><!-- DNT-End -->
- <indexterm>
- <primary>2184</primary>
- </indexterm>
- <para><emphasis role="bold">Empty hex data, e.g., "x".</emphasis></para>
- <para>The hex data cannot be empty.</para>
- <para>Solution: Change it to meaningful, non-empty hex data.
- Example:</para>
- <!-- DNT-Start --><programlisting>DATA d = '';</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2185">
- <!-- DNT-Start --><title>2185</title><!-- DNT-End -->
- <indexterm>
- <primary>2185</primary>
- </indexterm>
- <para>Comment is not started: ending is not allowed</para>
- </sect1>
- <sect1 id="_2186">
- <!-- DNT-Start --><title>2186</title><!-- DNT-End -->
- <indexterm>
- <primary>2186</primary>
- </indexterm>
- <para>Char <!-- DNT-Start -->XXX<!-- DNT-End --> needs to be escaped</para>
- </sect1>
- <sect1 id="_2187">
- <!-- DNT-Start --><title>2187</title><!-- DNT-End -->
- <indexterm>
- <primary>2187</primary>
- </indexterm>
- <para>#<!-- DNT-Start -->ERROR<!-- DNT-End --> statement</para>
- </sect1>
- <sect1 id="_2190">
- <!-- DNT-Start --><title>2190</title><!-- DNT-End -->
- <indexterm>
- <primary>2190</primary>
- </indexterm>
- <para><emphasis role="bold">Empty record definition: no field
- defined</emphasis></para>
- <para>In a record definition, no field is defined. This is not allowed in
- <!-- DNT-Start -->ECL<!-- DNT-End -->. For C/C++/Java programmers where empty structures (struct, class etc)
- are allowed, note that this is not allowed in <!-- DNT-Start -->ECL<!-- DNT-End -->.</para>
- <para>Solution: Provide at least one field for the record. If you really
- don't need a real field, add a dummy field.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: MyRec := RECORD
- 02: END</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2191">
- <!-- DNT-Start --><title>2191</title><!-- DNT-End -->
- <indexterm>
- <primary>2191</primary>
- </indexterm>
- <para><emphasis role="bold">Empty substring range</emphasis></para>
- <para>The sub string expression is empty. In <!-- DNT-Start -->ECL<!-- DNT-End -->, a sub string can
- be:</para>
- <para>⢠str [start_index .. end_index]</para>
- <para>⢠str [ .. end_index]</para>
- <para>⢠str [ start_index .. ]</para>
- <para>⢠str [ one_index ]</para>
- <para>Each index is an integer within the range of 1...<!-- DNT-Start -->LENGTH<!-- DNT-End -->(str),
- inclusive. Solution: Either provide an index value or remove the square
- brackets. Example:</para>
- <!-- DNT-Start --><programlisting> 01: STRING s := 'abc';
- 02: STRING subs := s[];</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2192">
- <!-- DNT-Start --><title>2192</title><!-- DNT-End -->
- <indexterm>
- <primary>2192</primary>
- </indexterm>
- <para><emphasis role="bold">Empty user type definition </emphasis></para>
- <para>The user type definition body is empty. In <!-- DNT-Start -->ECL<!-- DNT-End -->, user types are
- defined by the <!-- DNT-Start -->TYPE<!-- DNT-End --> structure.</para>
- <para>Solution: Provide at least one function for the defintion.
- Example:</para>
- <!-- DNT-Start --><programlisting> 01: MyType := TYPE
- 02: END</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2193">
- <!-- DNT-Start --><title>2193</title><!-- DNT-End -->
- <indexterm>
- <primary>2193</primary>
- </indexterm>
- <para><emphasis role="bold">Empty transform definition</emphasis></para>
- <para>The <!-- DNT-Start -->TRANSFORM<!-- DNT-End --> definition body is empty. Since a <!-- DNT-Start -->RECORD<!-- DNT-End --> type can not
- be empty (see error C2190), and each record must be assigned a value in
- the transform (see error C2111), an empty transform definition cannot be
- legal.</para>
- <para>Solution: Provide at least a trival <!-- DNT-Start -->SELF<!-- DNT-End --> assignment. Example:</para>
- <!-- DNT-Start --><programlisting> 01: NamesRec := RECORD
- 02: STRING20 thename;
- 03: END;
- 04:
- 05: OutRec := RECORD
- 06: STRING20 thename;
- 07: END;
- 08:
- 09: OutRec Trans(NamesRec L, INTEGER C) :=
- 10: TRANSFORM
- 11: END;
- </programlisting><!-- DNT-End -->
- <para>Adding the following trival assignment definition in the <!-- DNT-Start -->TRANSFORM<!-- DNT-End -->
- will solve the problem:</para>
- <!-- DNT-Start --><programlisting> SELF := L;</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2194">
- <!-- DNT-Start --><title>2194</title><!-- DNT-End -->
- <indexterm>
- <primary>2194</primary>
- </indexterm>
- <para><emphasis role="bold">Unended comment</emphasis></para>
- <para>This error indicates that <!-- DNT-Start -->EOF<!-- DNT-End --> was reached while a comment is not
- ended. This only occurs to C- style comment: /* and */.</para>
- <para>Solution: Add an ending */ in the proper position. Example:</para>
- <!-- DNT-Start --><programlisting> 01: a := 1;
- 02: /* this is a unended comment ..
- The ending */ is missing in the above example.</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2195">
- <!-- DNT-Start --><title>2195</title><!-- DNT-End -->
- <indexterm>
- <primary>2195</primary>
- </indexterm>
- <para><emphasis role="bold">Unended string constant: string must end in
- one line</emphasis></para>
- <para>In <!-- DNT-Start -->ECL<!-- DNT-End -->, a string constant must be complete in one line. The string
- delimitor is single quote ('). Note that <!-- DNT-Start -->ECL<!-- DNT-End --> doesn't support string
- constants that span multiple lines. However, you can use the concatenation
- operator (+) to reach the goal. Since constants are folded at compile
- time, there is no performance penalty for this.</para>
- <para>Solution: Add a single quote at the end to terminate the string.
- Example:</para>
- <!-- DNT-Start --><programlisting> 01: STRING long_string := 'the part on first line'
- 02: + 'the part on second line '
- 03: + 'and the third line';
- 04:
- 05: STRING s := 'unended string const;
- </programlisting><!-- DNT-End -->
- <para>In line 1-3, we are defining a long string which spans multiple
- lines. The string in line 5 doesn't end with a single quote. Note that the
- ';' is regarded as part of the string, and will not end the string
- constant.</para>
- </sect1>
- <sect1 id="_2196">
- <!-- DNT-Start --><title>2196</title><!-- DNT-End -->
- <indexterm>
- <primary>2196</primary>
- </indexterm>
- <para><emphasis role="bold">is illegal string delimiter: use '
- instead</emphasis></para>
- <para>In <!-- DNT-Start -->ECL<!-- DNT-End -->, the string constant delimiter is the single quote (')
- character, not double quotes as in some other languages (C/C++/Java etc).
- Since single quote is the delimiter, it needs to be escaped if it is part
- of the string, like: 'He\'s a nice guy'. And double quote does not need
- (and cannot use) escape.</para>
- <para>Solution: Change double quote to single quote</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: string s := "abc";</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2197">
- <!-- DNT-Start --><title>2197</title><!-- DNT-End -->
- <indexterm>
- <primary>2197</primary>
- </indexterm>
- <para>Empty ifblock definition</para>
- </sect1>
- <sect1 id="_2200">
- <!-- DNT-Start --><title>2200</title><!-- DNT-End -->
- <indexterm>
- <primary>2200</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->EOF<!-- DNT-End --> encountered inside #<!-- DNT-Start -->FOR<!-- DNT-End --></emphasis></para>
- <para>The File ends while we are examining a #<!-- DNT-Start -->FOR<!-- DNT-End --> command. This usually
- means the terminating</para>
- <para>#<!-- DNT-Start -->END<!-- DNT-End --> is missing.</para>
- <para>Solution: Add #<!-- DNT-Start -->END<!-- DNT-End --> if proper. Example:</para>
- <!-- DNT-Start --><programlisting> 01: loadxml('myxml.xml');
- 02: #DECLARE (x)
- 03: #SET(x, 1)
- 04:
- 05: #FOR (x)
- 06: #APPEND(s, '1')</programlisting><!-- DNT-End -->
- </sect1>
- <sect1 id="_2201">
- <!-- DNT-Start --><title>2201</title><!-- DNT-End -->
- <indexterm>
- <primary>2201</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->EOF<!-- DNT-End --> inside parameter
- gathering</emphasis></para>
- <para><!-- DNT-Start -->EOF<!-- DNT-End --> is encountered when the parser is trying to gather parameters.
- This normally occurs in a template command.</para>
- <para>Solution: Make sure the <!-- DNT-Start -->ECL<!-- DNT-End --> is complete. Example:</para>
- <!-- DNT-Start --><programlisting>
- 01: LOADXML('<xml>dummy</xml>');
- 02: #IF(
- </programlisting><!-- DNT-End -->
- <para>The #<!-- DNT-Start -->IF<!-- DNT-End --> doesn't have a parameter yet.</para>
- </sect1>
- <sect1 id="_2202">
- <!-- DNT-Start --><title>2202</title><!-- DNT-End -->
- <indexterm>
- <primary>2202</primary>
- </indexterm>
- <para><emphasis role="bold">Template symbol has already been
- declared</emphasis></para>
- <para>In <!-- DNT-Start -->ECL<!-- DNT-End --> template language, a symbol can only be declared once. You
- get this error if you are trying to declare it a second time. Pay
- attention to the scope rule. A symbol can be defined multiple times if it
- belongs to different scope each time. However, if you change the scoping,
- they may become within the same scope and therefore generate this
- error.</para>
- <para>Solution: Make sure to only declare each symbol once in the current
- scope. Example:</para>
- <!-- DNT-Start --><programlisting> 01: LOADXML('<xml>x</xml>');
- 02:
- 03: #DECLARE(s)
- 04:
- 05: #FOR(i)
- 06: #DECLARE(s)
- 07: #BREAK
- 08: #END
- 09:
- 10: #DECLARE(s)
- </programlisting><!-- DNT-End -->
- <para>Since #<!-- DNT-Start -->FOR<!-- DNT-End --> will start a new local scope, the #<!-- DNT-Start -->DECLARE<!-- DNT-End --> in line 6
- doesn't cause problem. However, line 10 does cause problem, because s is
- already defined in line 3 (which is in the same scope).</para>
- </sect1>
- <sect1 id="_2203">
- <!-- DNT-Start --><title>2203</title><!-- DNT-End -->
- <indexterm>
- <primary>2203</primary>
- </indexterm>
- <para><emphasis role="bold">Template symbol has not been
- declared</emphasis></para>
- <para>In <!-- DNT-Start -->ECL<!-- DNT-End --> template language, a symbol must be declared before it can be
- used. A symbol is de-</para>
- <para>clared using the #<!-- DNT-Start -->DECLARE<!-- DNT-End --> command.</para>
- <para>Solution: Make sure you declare it before you use it.
- Example:</para>
- <!-- DNT-Start --><programlisting> 01: LOADXML('<xml></xml>');
- 02: #SET(s, 'abc')
- </programlisting><!-- DNT-End -->
- <para>In line 2, s is not declared.</para>
- </sect1>
- <sect1 id="_2204">
- <!-- DNT-Start --><title>2204</title><!-- DNT-End -->
- <indexterm>
- <primary>2204</primary>
- </indexterm>
- <para><emphasis role="bold">Can not find #end for <!-- DNT-Start -->XXX<!-- DNT-End --></emphasis></para>
- <para>#<!-- DNT-Start -->END<!-- DNT-End --> is missing for a # command. In <!-- DNT-Start -->ECL<!-- DNT-End --> template language, some
- commands need a matching #<!-- DNT-Start -->END<!-- DNT-End -->:</para>
- <para>⢠#<!-- DNT-Start -->FOR<!-- DNT-End --></para>
- <para>⢠#<!-- DNT-Start -->IF<!-- DNT-End --></para>
- <para>⢠#<!-- DNT-Start -->IF<!-- DNT-End --> #<!-- DNT-Start -->ELSE<!-- DNT-End --></para>
- <para>⢠#<!-- DNT-Start -->LOOP<!-- DNT-End --></para>
- <para>Solution: Add a matching #<!-- DNT-Start -->END<!-- DNT-End -->. Example:</para>
- <!-- DNT-Start --><programlisting> 01: LOADXML('<xml></xml>');
- 02: #FOR(i)
- </programlisting><!-- DNT-End -->
- <para>#<!-- DNT-Start -->END<!-- DNT-End --> is needed for #<!-- DNT-Start -->FOR<!-- DNT-End --> in line 2.</para>
- </sect1>
- <sect1 id="_2205">
- <!-- DNT-Start --><title>2205</title><!-- DNT-End -->
- <indexterm>
- <primary>2205</primary>
- </indexterm>
- <para><emphasis role="bold">#<!-- DNT-Start -->ELSE<!-- DNT-End --> does not match a #<!-- DNT-Start -->IF<!-- DNT-End --></emphasis></para>
- <para>#<!-- DNT-Start -->ELSE<!-- DNT-End --> is not allowed outside a #<!-- DNT-Start -->IF<!-- DNT-End --> structure. Note that #<!-- DNT-Start -->END<!-- DNT-End --> will
- end a #<!-- DNT-Start -->IF<!-- DNT-End --> statement, and</para>
- <para>#<!-- DNT-Start -->ELSE<!-- DNT-End --> can no longer be used after the #<!-- DNT-Start -->IF<!-- DNT-End --> structure is
- terminated.</para>
- <para>Solution: Ensure the #<!-- DNT-Start -->ELSE<!-- DNT-End --> is inside your #<!-- DNT-Start -->IF<!-- DNT-End -->. Example:</para>
- <!-- DNT-Start --><programlisting> 01: LOADXML('<xml>dummy</xml>');
- 02:
- 03: #ELSE
- 04: #DECLARE(s)
- 05: #END
- </programlisting><!-- DNT-End -->
- <para>In line 3, #<!-- DNT-Start -->ELSE<!-- DNT-End --> doesn't match any #<!-- DNT-Start -->IF<!-- DNT-End --> statement.</para>
- </sect1>
- <sect1 id="_2206">
- <!-- DNT-Start --><title>2206</title><!-- DNT-End -->
- <indexterm>
- <primary>2206</primary>
- </indexterm>
- <para><emphasis role="bold">#<!-- DNT-Start -->END<!-- DNT-End --> does not match a #
- command</emphasis></para>
- <para>A #<!-- DNT-Start -->END<!-- DNT-End --> is used only to match a # command. This error normally
- happens if an extra #<!-- DNT-Start -->END<!-- DNT-End --></para>
- <para>is used.</para>
- <para>Solution: Make sure you use the proper number of #<!-- DNT-Start -->END<!-- DNT-End -->.
- Example:</para>
- <!-- DNT-Start --><programlisting> 01: LOADXML('<xml>dummy</xml>');
- 02:
- 03: #IF(true)
- 04: #DECLARE(s)
- 05: #END
- 06: #END
- </programlisting><!-- DNT-End -->
- <para>The last #<!-- DNT-Start -->END<!-- DNT-End --> (in line 6) is extra.</para>
- </sect1>
- <sect1 id="_2207">
- <!-- DNT-Start --><title>2207</title><!-- DNT-End -->
- <indexterm>
- <primary>2207</primary>
- </indexterm>
- <para><emphasis role="bold">LoadXML failed</emphasis></para>
- <para>LoadXML() failed. The reason it failed can be:</para>
- <para>⢠The xml file doesn't exist</para>
- <para>⢠The direct xml string is not well-formed.</para>
- <para>⢠The xml in the xml file is not well-formed. LoadXML() function can
- use a direct <!-- DNT-Start -->XML<!-- DNT-End --> string, e.g.,</para>
- <para>LoadXML('<xml>dummy</xml>');</para>
- <para>Or it can load from a file, e.g.,</para>
- <para>LoadXML('myxml.xml');</para>
- <para>Solution: If it is a file, make sure the file exists, and you have
- the proper permission. Also make sure the xml is well formed.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting>01: LOADXML('non-exist-xml.xml');</programlisting><!-- DNT-End -->
- <para>If non-exist-xml.xml does not exist, such an error will
- occur.</para>
- </sect1>
- <sect1 id="_2208">
- <!-- DNT-Start --><title>2208</title><!-- DNT-End -->
- <indexterm>
- <primary>2208</primary>
- </indexterm>
- <para><emphasis role="bold">#<!-- DNT-Start -->BREAK<!-- DNT-End --> is only allowed with a #<!-- DNT-Start -->FOR<!-- DNT-End --> or
- #<!-- DNT-Start -->LOOP<!-- DNT-End --></emphasis></para>
- <para>In <!-- DNT-Start -->ECL<!-- DNT-End --> template language, #<!-- DNT-Start -->BREAK<!-- DNT-End --> can only be used inside a #<!-- DNT-Start -->FOR<!-- DNT-End --> or
- #<!-- DNT-Start -->LOOP<!-- DNT-End -->. Solution: Make sure it is the right context before you use
- #<!-- DNT-Start -->BREAK<!-- DNT-End -->.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: LOADXML('<xml>dummy</xml>');
- 02:
- 03: #IF (true)
- 04: #BREAK
- 05: #END
- </programlisting><!-- DNT-End -->
- <para>#<!-- DNT-Start -->BREAK<!-- DNT-End --> cannot be used without #<!-- DNT-Start -->FOR<!-- DNT-End --> or #<!-- DNT-Start -->LOOP<!-- DNT-End --> in line 4.</para>
- </sect1>
- <sect1 id="_2209">
- <!-- DNT-Start --><title>2209</title><!-- DNT-End -->
- <indexterm>
- <primary>2209</primary>
- </indexterm>
- <para><emphasis role="bold">#<!-- DNT-Start -->LOOP<!-- DNT-End --> does not have a #<!-- DNT-Start -->BREAK<!-- DNT-End -->: an infinite loop
- will occur</emphasis></para>
- <para>In <!-- DNT-Start -->ECL<!-- DNT-End --> template language, #<!-- DNT-Start -->LOOP<!-- DNT-End --> is like a while(true) in C/C++. The
- only way to break out</para>
- <para>the loop is to use #<!-- DNT-Start -->BREAK<!-- DNT-End -->. Therefore, a #<!-- DNT-Start -->LOOP<!-- DNT-End --> without a #<!-- DNT-Start -->BREAK<!-- DNT-End --> is an
- infinite loop, and is</para>
- <para>not allowed.</para>
- <para>Note: The compiler uses a simple method to detect infinite loops.
- Don't depend on it to find infinite loops for you. For example:</para>
- <!-- DNT-Start --><programlisting> 01: #LOOP
- 02: #IF(false)
- 03: #BREAK
- 04: #END
- 05: #END
- </programlisting><!-- DNT-End -->
- <para>This example has a #<!-- DNT-Start -->BREAK<!-- DNT-End --> inside the loop, however it is an infinite
- loop. The compiler is not smart enough to figure out this. However,
- another simple scheme is used to detect this. See Error C2210.</para>
- <para>Solution: Use #<!-- DNT-Start -->BREAK<!-- DNT-End --> to break out of the loop. Normally, #<!-- DNT-Start -->IF<!-- DNT-End --> is
- needed to break out of the loop conditionally.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: LOADXML('<xml>dummy</xml>');
- 02:
- 03: #LOOP
- 04: #END
- </programlisting><!-- DNT-End -->
- <para>Line 3 and 4 forms an infinite loop. Although it does nothing, it
- will stuck the compiler if it fails to detect this.</para>
- </sect1>
- <sect1 id="_2210">
- <!-- DNT-Start --><title>2210</title><!-- DNT-End -->
- <indexterm>
- <primary>2210</primary>
- </indexterm>
- <para><emphasis role="bold">Loops more than max times</emphasis></para>
- <para>This error detects more complicated infinite loops other than the
- cases in error C2209. For each</para>
- <para>#<!-- DNT-Start -->FOR<!-- DNT-End --> or #<!-- DNT-Start -->LOOP<!-- DNT-End -->, the compiler regards it as an infinite loop if it
- runs more than the predefined max times. The max times is quite large, and
- should be enough for normal situations.</para>
- <para>Solution: Make sure it is not an infinite loop. If you are pretty
- sure you get this error and think it is not an infinite loop (which may
- never happen to you, just believe me), contact Seisint. We can increase
- the constant or disable the check.</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: LOADXML('<xml></xml>');
- 02:
- 03: #LOOP
- 04: #IF (false)
- 05: #BREAK
- 06: #END
- 07: #END
- </programlisting><!-- DNT-End -->
- <para>This example is trick code that is actually an infinite loop.</para>
- </sect1>
- <sect1 id="_2211">
- <!-- DNT-Start --><title>2211</title><!-- DNT-End -->
- <indexterm>
- <primary>2211</primary>
- </indexterm>
- <para>Unknown # command</para>
- </sect1>
- <sect1 id="_2212">
- <!-- DNT-Start --><title>2212</title><!-- DNT-End -->
- <indexterm>
- <primary>2212</primary>
- </indexterm>
- <para>Can not fold non pure function</para>
- </sect1>
- <sect1 id="_2213">
- <!-- DNT-Start --><title>2213</title><!-- DNT-End -->
- <indexterm>
- <primary>2213</primary>
- </indexterm>
- <para>Can not fold non c function</para>
- </sect1>
- <sect1 id="_2214">
- <!-- DNT-Start --><title>2214</title><!-- DNT-End -->
- <indexterm>
- <primary>2214</primary>
- </indexterm>
- <para>#<!-- DNT-Start -->ELIF<!-- DNT-End --> does not match a #<!-- DNT-Start -->IF<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_2216">
- <!-- DNT-Start --><title>2216</title><!-- DNT-End -->
- <indexterm>
- <primary>2216</primary>
- </indexterm>
- <para>Bad format for access token</para>
- </sect1>
- <sect1 id="_2220">
- <!-- DNT-Start --><title>2220</title><!-- DNT-End -->
- <indexterm>
- <primary>2220</primary>
- </indexterm>
- <para>No load function is defined</para>
- </sect1>
- <sect1 id="_2221">
- <!-- DNT-Start --><title>2221</title><!-- DNT-End -->
- <indexterm>
- <primary>2221</primary>
- </indexterm>
- <para>No store function is defined</para>
- </sect1>
- <sect1 id="_2222">
- <!-- DNT-Start --><title>2222</title><!-- DNT-End -->
- <indexterm>
- <primary>2222</primary>
- </indexterm>
- <para>No physical length function is defined</para>
- </sect1>
- <sect1 id="_2223">
- <!-- DNT-Start --><title>2223</title><!-- DNT-End -->
- <indexterm>
- <primary>2223</primary>
- </indexterm>
- <para>Inconsistent logical type</para>
- </sect1>
- <sect1 id="_2224">
- <!-- DNT-Start --><title>2224</title><!-- DNT-End -->
- <indexterm>
- <primary>2224</primary>
- </indexterm>
- <para>Inconsistent physical type</para>
- </sect1>
- <sect1 id="_2225">
- <!-- DNT-Start --><title>2225</title><!-- DNT-End -->
- <indexterm>
- <primary>2225</primary>
- </indexterm>
- <para>Store/Load/physicalLength(?) is not defined as func</para>
- </sect1>
- <sect1 id="_2226">
- <!-- DNT-Start --><title>2226</title><!-- DNT-End -->
- <indexterm>
- <primary>2226</primary>
- </indexterm>
- <para>physicalLength must have physical type</para>
- </sect1>
- <sect1 id="_2230">
- <!-- DNT-Start --><title>2230</title><!-- DNT-End -->
- <indexterm>
- <primary>2230</primary>
- </indexterm>
- <para>Function is already defined</para>
- </sect1>
- <sect1 id="_2231">
- <!-- DNT-Start --><title>2231</title><!-- DNT-End -->
- <indexterm>
- <primary>2231</primary>
- </indexterm>
- <para>Attribute is already defined</para>
- </sect1>
- <sect1 id="_2232">
- <!-- DNT-Start --><title>2232</title><!-- DNT-End -->
- <indexterm>
- <primary>2232</primary>
- </indexterm>
- <para>Invalid library entry</para>
- </sect1>
- <sect1 id="_2233">
- <!-- DNT-Start --><title>2233</title><!-- DNT-End -->
- <indexterm>
- <primary>2233</primary>
- </indexterm>
- <para>Invalid entrypoint: must be valid C identifier.</para>
- </sect1>
- <sect1 id="_2234">
- <!-- DNT-Start --><title>2234</title><!-- DNT-End -->
- <indexterm>
- <primary>2234</primary>
- </indexterm>
- <para>Function in service can not specify <!-- DNT-Start -->EXPORT<!-- DNT-End --> or <!-- DNT-Start -->SHARED<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_2235">
- <!-- DNT-Start --><title>2235</title><!-- DNT-End -->
- <indexterm>
- <primary>2235</primary>
- </indexterm>
- <para>Entrypoint is not defined, default to <!-- DNT-Start -->XXX<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_2236">
- <!-- DNT-Start --><title>2236</title><!-- DNT-End -->
- <indexterm>
- <primary>2236</primary>
- </indexterm>
- <para>Invalid include entry</para>
- </sect1>
- <sect1 id="_2237">
- <!-- DNT-Start --><title>2237</title><!-- DNT-End -->
- <indexterm>
- <primary>2237</primary>
- </indexterm>
- <para>Serive does need a type</para>
- </sect1>
- <sect1 id="_2238">
- <!-- DNT-Start --><title>2238</title><!-- DNT-End -->
- <indexterm>
- <primary>2238</primary>
- </indexterm>
- <para>Conflicted attributes defined</para>
- </sect1>
- <sect1 id="_2239">
- <!-- DNT-Start --><title>2239</title><!-- DNT-End -->
- <indexterm>
- <primary>2239</primary>
- </indexterm>
- <para>Invalid initfunction: must be valid C identifier</para>
- </sect1>
- <sect1 id="_2240">
- <!-- DNT-Start --><title>2240</title><!-- DNT-End -->
- <indexterm>
- <primary>2240</primary>
- </indexterm>
- <para>Load library failed</para>
- </sect1>
- <sect1 id="_2241">
- <!-- DNT-Start --><title>2241</title><!-- DNT-End -->
- <indexterm>
- <primary>2241</primary>
- </indexterm>
- <para>Load procedure in library failed</para>
- </sect1>
- <sect1 id="_2242">
- <!-- DNT-Start --><title>2242</title><!-- DNT-End -->
- <indexterm>
- <primary>2242</primary>
- </indexterm>
- <para>library is not defined (it is an error in template)</para>
- </sect1>
- <sect1 id="_2243">
- <!-- DNT-Start --><title>2243</title><!-- DNT-End -->
- <indexterm>
- <primary>2243</primary>
- </indexterm>
- <para>Exception occurs when executing service function</para>
- </sect1>
- <sect1 id="_2244">
- <!-- DNT-Start --><title>2244</title><!-- DNT-End -->
- <indexterm>
- <primary>2244</primary>
- </indexterm>
- <para>Service can not have any parameter</para>
- </sect1>
- <sect1 id="_2250">
- <!-- DNT-Start --><title>2250</title><!-- DNT-End -->
- <indexterm>
- <primary>2250</primary>
- </indexterm>
- <para><!-- DNT-Start -->LOADXML<!-- DNT-End --> is not an attribute: it can only used alone for test
- purpose</para>
- </sect1>
- <sect1 id="_2251">
- <!-- DNT-Start --><title>2251</title><!-- DNT-End -->
- <indexterm>
- <primary>2251</primary>
- </indexterm>
- <para>Invalid transform for <!-- DNT-Start -->ITERATE<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_2252">
- <!-- DNT-Start --><title>2252</title><!-- DNT-End -->
- <indexterm>
- <primary>2252</primary>
- </indexterm>
- <para>Invalid transform for <!-- DNT-Start -->JOIN<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_2255">
- <!-- DNT-Start --><title>2255</title><!-- DNT-End -->
- <indexterm>
- <primary>2255</primary>
- </indexterm>
- <para>expected a <!-- DNT-Start -->DATASET<!-- DNT-End -->(...)</para>
- </sect1>
- <sect1 id="_2256">
- <!-- DNT-Start --><title>2256</title><!-- DNT-End -->
- <indexterm>
- <primary>2256</primary>
- </indexterm>
- <para>Only one arg supplied in record for <!-- DNT-Start -->INDEX<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_2257">
- <!-- DNT-Start --><title>2257</title><!-- DNT-End -->
- <indexterm>
- <primary>2257</primary>
- </indexterm>
- <para>Parameter to <!-- DNT-Start -->STORED<!-- DNT-End -->() should be a valid id</para>
- </sect1>
- <sect1 id="_2260">
- <!-- DNT-Start --><title>2260</title><!-- DNT-End -->
- <indexterm>
- <primary>2260</primary>
- </indexterm>
- <para>A field is mapped more than once</para>
- </sect1>
- <sect1 id="_2261">
- <!-- DNT-Start --><title>2261</title><!-- DNT-End -->
- <indexterm>
- <primary>2261</primary>
- </indexterm>
- <para>Dataset has no field as required or mapped</para>
- </sect1>
- <sect1 id="_2262">
- <!-- DNT-Start --><title>2262</title><!-- DNT-End -->
- <indexterm>
- <primary>2262</primary>
- </indexterm>
- <para>A map is not used</para>
- </sect1>
- <sect1 id="_2263">
- <!-- DNT-Start --><title>2263</title><!-- DNT-End -->
- <indexterm>
- <primary>2263</primary>
- </indexterm>
- <para>Mapping fields type mismatch</para>
- </sect1>
- <sect1 id="_2280">
- <!-- DNT-Start --><title>2280</title><!-- DNT-End -->
- <indexterm>
- <primary>2280</primary>
- </indexterm>
- <para>token used inside a token definition</para>
- </sect1>
- <sect1 id="_2281">
- <!-- DNT-Start --><title>2281</title><!-- DNT-End -->
- <indexterm>
- <primary>2281</primary>
- </indexterm>
- <para>Can't refer to a rule inside a pattern</para>
- </sect1>
- <sect1 id="_2282">
- <!-- DNT-Start --><title>2282</title><!-- DNT-End -->
- <indexterm>
- <primary>2282</primary>
- </indexterm>
- <para>Bad syntax inside a <!-- DNT-Start -->PATTERN<!-- DNT-End -->() definition</para>
- </sect1>
- <sect1 id="_2283">
- <!-- DNT-Start --><title>2283</title><!-- DNT-End -->
- <indexterm>
- <primary>2283</primary>
- </indexterm>
- <para>expected pattern</para>
- </sect1>
- <sect1 id="_2284">
- <!-- DNT-Start --><title>2284</title><!-- DNT-End -->
- <indexterm>
- <primary>2284</primary>
- </indexterm>
- <para>Invalid format for an assertion subpattern</para>
- </sect1>
- <sect1 id="_2285">
- <!-- DNT-Start --><title>2285</title><!-- DNT-End -->
- <indexterm>
- <primary>2285</primary>
- </indexterm>
- <para>This expression can't be included in a pattern</para>
- </sect1>
- <sect1 id="_2286">
- <!-- DNT-Start --><title>2286</title><!-- DNT-End -->
- <indexterm>
- <primary>2286</primary>
- </indexterm>
- <para>Can't reference a pattern function in a <!-- DNT-Start -->MATCHED<!-- DNT-End -->() arg</para>
- </sect1>
- <sect1 id="_2287">
- <!-- DNT-Start --><title>2287</title><!-- DNT-End -->
- <indexterm>
- <primary>2287</primary>
- </indexterm>
- <para>Self used outside a rule definition</para>
- </sect1>
- <sect1 id="_2288">
- <!-- DNT-Start --><title>2288</title><!-- DNT-End -->
- <indexterm>
- <primary>2288</primary>
- </indexterm>
- <para>Can only use use() inside a rule definition</para>
- </sect1>
- <sect1 id="_2289">
- <!-- DNT-Start --><title>2289</title><!-- DNT-End -->
- <indexterm>
- <primary>2289</primary>
- </indexterm>
- <para>:stored etc. used in a pattern attribute</para>
- </sect1>
- <sect1 id="_2290">
- <!-- DNT-Start --><title>2290</title><!-- DNT-End -->
- <indexterm>
- <primary>2290</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2291">
- <!-- DNT-Start --><title>2291</title><!-- DNT-End -->
- <indexterm>
- <primary>2291</primary>
- </indexterm>
- <para>Could not deduce feature from the guard condition</para>
- </sect1>
- <sect1 id="_2292">
- <!-- DNT-Start --><title>2292</title><!-- DNT-End -->
- <indexterm>
- <primary>2292</primary>
- </indexterm>
- <para>Expected a list of characters</para>
- </sect1>
- <sect1 id="_2293">
- <!-- DNT-Start --><title>2293</title><!-- DNT-End -->
- <indexterm>
- <primary>2293</primary>
- </indexterm>
- <para>Expected a repeat...</para>
- </sect1>
- <sect1 id="_2294">
- <!-- DNT-Start --><title>2294</title><!-- DNT-End -->
- <indexterm>
- <primary>2294</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2295">
- <!-- DNT-Start --><title>2295</title><!-- DNT-End -->
- <indexterm>
- <primary>2295</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2296">
- <!-- DNT-Start --><title>2296</title><!-- DNT-End -->
- <indexterm>
- <primary>2296</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2297">
- <!-- DNT-Start --><title>2297</title><!-- DNT-End -->
- <indexterm>
- <primary>2297</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2299">
- <!-- DNT-Start --><title>2299</title><!-- DNT-End -->
- <indexterm>
- <primary>2299</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2300">
- <!-- DNT-Start --><title>2300</title><!-- DNT-End -->
- <indexterm>
- <primary>2300</primary>
- </indexterm>
- <para>Multi dimension array indexing not supported.</para>
- </sect1>
- <sect1 id="_2301">
- <!-- DNT-Start --><title>2301</title><!-- DNT-End -->
- <indexterm>
- <primary>2301</primary>
- </indexterm>
- <para>Could not find distributed fields</para>
- </sect1>
- <sect1 id="_2302">
- <!-- DNT-Start --><title>2302</title><!-- DNT-End -->
- <indexterm>
- <primary>2302</primary>
- </indexterm>
- <para>Only <!-- DNT-Start -->LOCAL<!-- DNT-End --> merge is currently supported</para>
- </sect1>
- <sect1 id="_2303">
- <!-- DNT-Start --><title>2303</title><!-- DNT-End -->
- <indexterm>
- <primary>2303</primary>
- </indexterm>
- <para>Field not found</para>
- </sect1>
- <sect1 id="_2304">
- <!-- DNT-Start --><title>2304</title><!-- DNT-End -->
- <indexterm>
- <primary>2304</primary>
- </indexterm>
- <para>Deprecated</para>
- </sect1>
- <sect1 id="_2305">
- <!-- DNT-Start --><title>2305</title><!-- DNT-End -->
- <indexterm>
- <primary>2305</primary>
- </indexterm>
- <para><!-- DNT-Start -->KEYED<!-- DNT-End --> index is invalid</para>
- </sect1>
- <sect1 id="_2306">
- <!-- DNT-Start --><title>2306</title><!-- DNT-End -->
- <indexterm>
- <primary>2306</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2307">
- <!-- DNT-Start --><title>2307</title><!-- DNT-End -->
- <indexterm>
- <primary>2307</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2308">
- <!-- DNT-Start --><title>2308</title><!-- DNT-End -->
- <indexterm>
- <primary>2308</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2309">
- <!-- DNT-Start --><title>2309</title><!-- DNT-End -->
- <indexterm>
- <primary>2309</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2310">
- <!-- DNT-Start --><title>2310</title><!-- DNT-End -->
- <indexterm>
- <primary>2310</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2311">
- <!-- DNT-Start --><title>2311</title><!-- DNT-End -->
- <indexterm>
- <primary>2311</primary>
- </indexterm>
- <para>No longer supported language feature</para>
- </sect1>
- <sect1 id="_2312">
- <!-- DNT-Start --><title>2312</title><!-- DNT-End -->
- <indexterm>
- <primary>2312</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2313">
- <!-- DNT-Start --><title>2313</title><!-- DNT-End -->
- <indexterm>
- <primary>2313</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2314">
- <!-- DNT-Start --><title>2314</title><!-- DNT-End -->
- <indexterm>
- <primary>2314</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2315">
- <!-- DNT-Start --><title>2315</title><!-- DNT-End -->
- <indexterm>
- <primary>2315</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2316">
- <!-- DNT-Start --><title>2316</title><!-- DNT-End -->
- <indexterm>
- <primary>2316</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2317">
- <!-- DNT-Start --><title>2317</title><!-- DNT-End -->
- <indexterm>
- <primary>2317</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2318">
- <!-- DNT-Start --><title>2318</title><!-- DNT-End -->
- <indexterm>
- <primary>2318</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2319">
- <!-- DNT-Start --><title>2319</title><!-- DNT-End -->
- <indexterm>
- <primary>2319</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2320">
- <!-- DNT-Start --><title>2320</title><!-- DNT-End -->
- <indexterm>
- <primary>2320</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2321">
- <!-- DNT-Start --><title>2321</title><!-- DNT-End -->
- <indexterm>
- <primary>2321</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2322">
- <!-- DNT-Start --><title>2322</title><!-- DNT-End -->
- <indexterm>
- <primary>2322</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2323">
- <!-- DNT-Start --><title>2323</title><!-- DNT-End -->
- <indexterm>
- <primary>2323</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2324">
- <!-- DNT-Start --><title>2324</title><!-- DNT-End -->
- <indexterm>
- <primary>2324</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2325">
- <!-- DNT-Start --><title>2325</title><!-- DNT-End -->
- <indexterm>
- <primary>2325</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2326">
- <!-- DNT-Start --><title>2326</title><!-- DNT-End -->
- <indexterm>
- <primary>2326</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2327">
- <!-- DNT-Start --><title>2327</title><!-- DNT-End -->
- <indexterm>
- <primary>2327</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2328">
- <!-- DNT-Start --><title>2328</title><!-- DNT-End -->
- <indexterm>
- <primary>2328</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2329">
- <!-- DNT-Start --><title>2329</title><!-- DNT-End -->
- <indexterm>
- <primary>2329</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2331">
- <!-- DNT-Start --><title>2331</title><!-- DNT-End -->
- <indexterm>
- <primary>2331</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2332">
- <!-- DNT-Start --><title>2332</title><!-- DNT-End -->
- <indexterm>
- <primary>2332</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2333">
- <!-- DNT-Start --><title>2333</title><!-- DNT-End -->
- <indexterm>
- <primary>2333</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2334">
- <!-- DNT-Start --><title>2334</title><!-- DNT-End -->
- <indexterm>
- <primary>2334</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2335">
- <!-- DNT-Start --><title>2335</title><!-- DNT-End -->
- <indexterm>
- <primary>2335</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2336">
- <!-- DNT-Start --><title>2336</title><!-- DNT-End -->
- <indexterm>
- <primary>2336</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2337">
- <!-- DNT-Start --><title>2337</title><!-- DNT-End -->
- <indexterm>
- <primary>2337</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2338">
- <!-- DNT-Start --><title>2338</title><!-- DNT-End -->
- <indexterm>
- <primary>2338</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2339">
- <!-- DNT-Start --><title>2339</title><!-- DNT-End -->
- <indexterm>
- <primary>2339</primary>
- </indexterm>
- <para>Feature not yet enabled on this platform</para>
- </sect1>
- <sect1 id="_2340">
- <!-- DNT-Start --><title>2340</title><!-- DNT-End -->
- <indexterm>
- <primary>2340</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2341">
- <!-- DNT-Start --><title>2341</title><!-- DNT-End -->
- <indexterm>
- <primary>2341</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2342">
- <!-- DNT-Start --><title>2342</title><!-- DNT-End -->
- <indexterm>
- <primary>2342</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2343">
- <!-- DNT-Start --><title>2343</title><!-- DNT-End -->
- <indexterm>
- <primary>2343</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2344">
- <!-- DNT-Start --><title>2344</title><!-- DNT-End -->
- <indexterm>
- <primary>2344</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2345">
- <!-- DNT-Start --><title>2345</title><!-- DNT-End -->
- <indexterm>
- <primary>2345</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2346">
- <!-- DNT-Start --><title>2346</title><!-- DNT-End -->
- <indexterm>
- <primary>2346</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2347">
- <!-- DNT-Start --><title>2347</title><!-- DNT-End -->
- <indexterm>
- <primary>2347</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2348">
- <!-- DNT-Start --><title>2348</title><!-- DNT-End -->
- <indexterm>
- <primary>2348</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2349">
- <!-- DNT-Start --><title>2349</title><!-- DNT-End -->
- <indexterm>
- <primary>2349</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2350">
- <!-- DNT-Start --><title>2350</title><!-- DNT-End -->
- <indexterm>
- <primary>2350</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2351">
- <!-- DNT-Start --><title>2351</title><!-- DNT-End -->
- <indexterm>
- <primary>2351</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2352">
- <!-- DNT-Start --><title>2352</title><!-- DNT-End -->
- <indexterm>
- <primary>2352</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2353">
- <!-- DNT-Start --><title>2353</title><!-- DNT-End -->
- <indexterm>
- <primary>2353</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2354">
- <!-- DNT-Start --><title>2354</title><!-- DNT-End -->
- <indexterm>
- <primary>2354</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2355">
- <!-- DNT-Start --><title>2355</title><!-- DNT-End -->
- <indexterm>
- <primary>2355</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2356">
- <!-- DNT-Start --><title>2356</title><!-- DNT-End -->
- <indexterm>
- <primary>2356</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2357">
- <!-- DNT-Start --><title>2357</title><!-- DNT-End -->
- <indexterm>
- <primary>2357</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2358">
- <!-- DNT-Start --><title>2358</title><!-- DNT-End -->
- <indexterm>
- <primary>2358</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2359">
- <!-- DNT-Start --><title>2359</title><!-- DNT-End -->
- <indexterm>
- <primary>2359</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2360">
- <!-- DNT-Start --><title>2360</title><!-- DNT-End -->
- <indexterm>
- <primary>2360</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2361">
- <!-- DNT-Start --><title>2361</title><!-- DNT-End -->
- <indexterm>
- <primary>2361</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2362">
- <!-- DNT-Start --><title>2362</title><!-- DNT-End -->
- <indexterm>
- <primary>2362</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2363">
- <!-- DNT-Start --><title>2363</title><!-- DNT-End -->
- <indexterm>
- <primary>2363</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2364">
- <!-- DNT-Start --><title>2364</title><!-- DNT-End -->
- <indexterm>
- <primary>2364</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2365">
- <!-- DNT-Start --><title>2365</title><!-- DNT-End -->
- <indexterm>
- <primary>2365</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2366">
- <!-- DNT-Start --><title>2366</title><!-- DNT-End -->
- <indexterm>
- <primary>2366</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2367">
- <!-- DNT-Start --><title>2367</title><!-- DNT-End -->
- <indexterm>
- <primary>2367</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2368">
- <!-- DNT-Start --><title>2368</title><!-- DNT-End -->
- <indexterm>
- <primary>2368</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2369">
- <!-- DNT-Start --><title>2369</title><!-- DNT-End -->
- <indexterm>
- <primary>2369</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2370">
- <!-- DNT-Start --><title>2370</title><!-- DNT-End -->
- <indexterm>
- <primary>2370</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2371">
- <!-- DNT-Start --><title>2371</title><!-- DNT-End -->
- <indexterm>
- <primary>2371</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2372">
- <!-- DNT-Start --><title>2372</title><!-- DNT-End -->
- <indexterm>
- <primary>2372</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2373">
- <!-- DNT-Start --><title>2373</title><!-- DNT-End -->
- <indexterm>
- <primary>2373</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2374">
- <!-- DNT-Start --><title>2374</title><!-- DNT-End -->
- <indexterm>
- <primary>2374</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2375">
- <!-- DNT-Start --><title>2375</title><!-- DNT-End -->
- <indexterm>
- <primary>2375</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2376">
- <!-- DNT-Start --><title>2376</title><!-- DNT-End -->
- <indexterm>
- <primary>2376</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2377">
- <!-- DNT-Start --><title>2377</title><!-- DNT-End -->
- <indexterm>
- <primary>2377</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2378">
- <!-- DNT-Start --><title>2378</title><!-- DNT-End -->
- <indexterm>
- <primary>2378</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2379">
- <!-- DNT-Start --><title>2379</title><!-- DNT-End -->
- <indexterm>
- <primary>2379</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2380">
- <!-- DNT-Start --><title>2380</title><!-- DNT-End -->
- <indexterm>
- <primary>2380</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2381">
- <!-- DNT-Start --><title>2381</title><!-- DNT-End -->
- <indexterm>
- <primary>2381</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2382">
- <!-- DNT-Start --><title>2382</title><!-- DNT-End -->
- <indexterm>
- <primary>2382</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2383">
- <!-- DNT-Start --><title>2383</title><!-- DNT-End -->
- <indexterm>
- <primary>2383</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2384">
- <!-- DNT-Start --><title>2384</title><!-- DNT-End -->
- <indexterm>
- <primary>2384</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2385">
- <!-- DNT-Start --><title>2385</title><!-- DNT-End -->
- <indexterm>
- <primary>2385</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2386">
- <!-- DNT-Start --><title>2386</title><!-- DNT-End -->
- <indexterm>
- <primary>2386</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_2387">
- <!-- DNT-Start --><title>2387</title><!-- DNT-End -->
- <indexterm>
- <primary>2387</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_10000">
- <!-- DNT-Start --><title>10000</title><!-- DNT-End -->
- <indexterm>
- <primary>10000</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_3000">
- <!-- DNT-Start --><title>3000</title><!-- DNT-End -->
- <indexterm>
- <primary>3000</primary>
- </indexterm>
- <para><emphasis role="bold">Internal exception</emphasis></para>
- <para>Most often this error indicates an internal error of the compiler (a
- bug), but not always. Some- times, the message correctly reports a
- problem. In an ideal world, this error should never hap- pen.</para>
- <para>Solution: Try to work around the situation the message indicates.
- Contact Seisint when no work- around is apparent.</para>
- </sect1>
- <sect1 id="_3001">
- <!-- DNT-Start --><title>3001</title><!-- DNT-End -->
- <indexterm>
- <primary>3001</primary>
- </indexterm>
- <para><emphasis role="bold">Too many errors</emphasis></para>
- <para>Normally this means either the code is too complicated and has many
- parsing errors, or the code's logic confused the compiler, causing
- cascaded errors.</para>
- <para>Solution: Try to resolve the errors before this one first, and
- hopefully there will be fewer errors next time. Comment out some code and
- try to compile only a portion of the whole may be a good idea
- sometimes.</para>
- </sect1>
- <sect1 id="_3002">
- <!-- DNT-Start --><title>3002</title><!-- DNT-End -->
- <indexterm>
- <primary>3002</primary>
- </indexterm>
- <para><emphasis role="bold">Expected ...</emphasis></para>
- <para>Normally this indicates a general syntax error. The compiler gives
- out the symbols it expects based on the grammar. This is the compiler's
- last resort for reporting meaningful error messages.</para>
- <para>Solution: Try to understand the context and the <!-- DNT-Start -->ECL<!-- DNT-End --> grammer. Don't
- take the error message too serious. It may be simply the result of some
- error before this.</para>
- </sect1>
- <sect1 id="_3003">
- <!-- DNT-Start --><title>3003</title><!-- DNT-End -->
- <indexterm>
- <primary>3003</primary>
- </indexterm>
- <para><emphasis role="bold"><!-- DNT-Start -->XXX<!-- DNT-End --> is not valid here</emphasis></para>
- <para>Reference Errors C2020 through C2037; these are very similar.</para>
- </sect1>
- <sect1 id="_3004">
- <!-- DNT-Start --><title>3004</title><!-- DNT-End -->
- <indexterm>
- <primary>3004</primary>
- </indexterm>
- <para><emphasis role="bold">Unexpected end of file
- encountered</emphasis></para>
- <para>The <!-- DNT-Start -->ECL<!-- DNT-End --> source file reaches the end while the parser is still in the
- middle of something. This is normally the result of some other error. This
- also happens during the error recovery produre.</para>
- <para>Solution: Resolve other errors first, if any. Otherwise, look at the
- code pointed out carefully. Try to identify problems. Is some structure
- incomplete?</para>
- <para>Example:</para>
- <!-- DNT-Start --><programlisting> 01: ReverseString4 := TYPE
- 02: MyType := TYPE
- 03: EXPORT INTEGER Load(INTEGER x) := x+1;
- 04: EXPORT INTEGER Store(INTEGER x) := x-1;
- 05: //END
- 06: //END
- </programlisting><!-- DNT-End -->
- <para>In the example, user defined types are not allowed to be nested (see
- error C2011), so the parser is trying to recover from the error in lines
- 2-4, but couldn't find the terminating <!-- DNT-Start -->END<!-- DNT-End --> when it reached the end of the
- file.</para>
- </sect1>
- <sect1 id="_3005">
- <!-- DNT-Start --><title>3005</title><!-- DNT-End -->
- <indexterm>
- <primary>3005</primary>
- </indexterm>
- <para>Whole record not valid here</para>
- </sect1>
- <sect1 id="_3006">
- <!-- DNT-Start --><title>3006</title><!-- DNT-End -->
- <indexterm>
- <primary>3006</primary>
- </indexterm>
- <para>Except not found in the incoming list</para>
- </sect1>
- <sect1 id="_3007">
- <!-- DNT-Start --><title>3007</title><!-- DNT-End -->
- <indexterm>
- <primary>3007</primary>
- </indexterm>
- <para><!-- DNT-Start -->PIPE<!-- DNT-End -->(name) and project not supported</para>
- </sect1>
- <sect1 id="_3100">
- <!-- DNT-Start --><title>3100</title><!-- DNT-End -->
- <indexterm>
- <primary>3100</primary>
- </indexterm>
- <para>Field removed from dedup could not be found</para>
- </sect1>
- <sect1 id="_3101">
- <!-- DNT-Start --><title>3101</title><!-- DNT-End -->
- <indexterm>
- <primary>3101</primary>
- </indexterm>
- <para>Module definition contain an illegal cycle/recursive definition
- %s</para>
- </sect1>
- <sect1 id="_3102">
- <!-- DNT-Start --><title>3102</title><!-- DNT-End -->
- <indexterm>
- <primary>3102</primary>
- </indexterm>
- <para>Cannot calculate inversion of <!-- DNT-Start -->PROJECT<!-- DNT-End --> on <!-- DNT-Start -->STEPPED<!-- DNT-End --> index%s</para>
- </sect1>
- <sect1 id="_3103">
- <!-- DNT-Start --><title>3103</title><!-- DNT-End -->
- <indexterm>
- <primary>3103</primary>
- </indexterm>
- <para>Dataset not expected in this context</para>
- </sect1>
- <sect1 id="_3104">
- <!-- DNT-Start --><title>3104</title><!-- DNT-End -->
- <indexterm>
- <primary>3104</primary>
- </indexterm>
- <para>Equality on field[n..*] must match a similar equality</para>
- </sect1>
- <sect1 id="_3105">
- <!-- DNT-Start --><title>3105</title><!-- DNT-End -->
- <indexterm>
- <primary>3105</primary>
- </indexterm>
- <para>Join only supports a single x[n..*] comparison</para>
- </sect1>
- <sect1 id="_3106">
- <!-- DNT-Start --><title>3106</title><!-- DNT-End -->
- <indexterm>
- <primary>3106</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Serializing extract too complex</para>
- </sect1>
- <sect1 id="_3107">
- <!-- DNT-Start --><title>3107</title><!-- DNT-End -->
- <indexterm>
- <primary>3107</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Unexpected '%s' at %s(%d)</para>
- </sect1>
- <sect1 id="_3108">
- <!-- DNT-Start --><title>3108</title><!-- DNT-End -->
- <indexterm>
- <primary>3108</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Unexpected type '%s' at %s(%d)</para>
- </sect1>
- <sect1 id="_3109">
- <!-- DNT-Start --><title>3109</title><!-- DNT-End -->
- <indexterm>
- <primary>3109</primary>
- </indexterm>
- <para>Field '%s' in the map was not found in the dataset parameter</para>
- </sect1>
- <sect1 id="_3110">
- <!-- DNT-Start --><title>3110</title><!-- DNT-End -->
- <indexterm>
- <primary>3110</primary>
- </indexterm>
- <para>Field '%s' has already been mapped</para>
- </sect1>
- <sect1 id="_3111">
- <!-- DNT-Start --><title>3111</title><!-- DNT-End -->
- <indexterm>
- <primary>3111</primary>
- </indexterm>
- <para>A field named '%s' was not found in the dataset parameter</para>
- </sect1>
- <sect1 id="_3112">
- <!-- DNT-Start --><title>3112</title><!-- DNT-End -->
- <indexterm>
- <primary>3112</primary>
- </indexterm>
- <para>File %s not found</para>
- </sect1>
- <sect1 id="_3113">
- <!-- DNT-Start --><title>3113</title><!-- DNT-End -->
- <indexterm>
- <primary>3113</primary>
- </indexterm>
- <para>Browsing child grouped tables not handled at the moment</para>
- </sect1>
- <sect1 id="_3114">
- <!-- DNT-Start --><title>3114</title><!-- DNT-End -->
- <indexterm>
- <primary>3114</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Selected field '%s' does not appear in the dataset</para>
- </sect1>
- <sect1 id="_3115">
- <!-- DNT-Start --><title>3115</title><!-- DNT-End -->
- <indexterm>
- <primary>3115</primary>
- </indexterm>
- <para>Illegal pattern</para>
- </sect1>
- <sect1 id="_3116">
- <!-- DNT-Start --><title>3116</title><!-- DNT-End -->
- <indexterm>
- <primary>3116</primary>
- </indexterm>
- <para>Unknown character class [:%s:]</para>
- </sect1>
- <sect1 id="_3117">
- <!-- DNT-Start --><title>3117</title><!-- DNT-End -->
- <indexterm>
- <primary>3117</primary>
- </indexterm>
- <para>Collation symbols not yet supported</para>
- </sect1>
- <sect1 id="_3118">
- <!-- DNT-Start --><title>3118</title><!-- DNT-End -->
- <indexterm>
- <primary>3118</primary>
- </indexterm>
- <para>Equivalence class symbols not yet supported</para>
- </sect1>
- <sect1 id="_3119">
- <!-- DNT-Start --><title>3119</title><!-- DNT-End -->
- <indexterm>
- <primary>3119</primary>
- </indexterm>
- <para>Could not connect to any <!-- DNT-Start -->ECL<!-- DNT-End --> server</para>
- </sect1>
- <sect1 id="_3120">
- <!-- DNT-Start --><title>3120</title><!-- DNT-End -->
- <indexterm>
- <primary>3120</primary>
- </indexterm>
- <para>Mismatch in major version number (%s v %s)</para>
- </sect1>
- <sect1 id="_3121">
- <!-- DNT-Start --><title>3121</title><!-- DNT-End -->
- <indexterm>
- <primary>3121</primary>
- </indexterm>
- <para>Virtual field %s not supported in constant table - please provide a
- value</para>
- </sect1>
- <sect1 id="_3122">
- <!-- DNT-Start --><title>3122</title><!-- DNT-End -->
- <indexterm>
- <primary>3122</primary>
- </indexterm>
- <para>Inline <!-- DNT-Start -->DATASET<!-- DNT-End --> field '%s' cannot be initialized with a list of
- values</para>
- </sect1>
- <sect1 id="_3123">
- <!-- DNT-Start --><title>3123</title><!-- DNT-End -->
- <indexterm>
- <primary>3123</primary>
- </indexterm>
- <para>No value or default provided for field %s in inline table</para>
- </sect1>
- <sect1 id="_3124">
- <!-- DNT-Start --><title>3124</title><!-- DNT-End -->
- <indexterm>
- <primary>3124</primary>
- </indexterm>
- <para>Too many initializers (value %s) for inline dataset
- definition</para>
- </sect1>
- <sect1 id="_3125">
- <!-- DNT-Start --><title>3125</title><!-- DNT-End -->
- <indexterm>
- <primary>3125</primary>
- </indexterm>
- <para>Initializer for field %s in inline dataset has the wrong type</para>
- </sect1>
- <sect1 id="_3126">
- <!-- DNT-Start --><title>3126</title><!-- DNT-End -->
- <indexterm>
- <primary>3126</primary>
- </indexterm>
- <para>Could not constant fold the condition on a <!-- DNT-Start -->IFBLOCK<!-- DNT-End --> for a inline
- table</para>
- </sect1>
- <sect1 id="Unknown_3005">
- <!-- DNT-Start --><title>Unknown_3005</title><!-- DNT-End -->
- <indexterm>
- <primary>Unknown_3005</primary>
- </indexterm>
- <para>The parser can not recover from previous error(s)</para>
- </sect1>
- <sect1 id="_4000">
- <!-- DNT-Start --><title>4000</title><!-- DNT-End -->
- <indexterm>
- <primary>4000</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Cannot generate code for an empty set in this
- context</para>
- </sect1>
- <sect1 id="_4001">
- <!-- DNT-Start --><title>4001</title><!-- DNT-End -->
- <indexterm>
- <primary>4001</primary>
- </indexterm>
- <para>Multi dimensioned sets are not yet supported</para>
- </sect1>
- <sect1 id="_4002">
- <!-- DNT-Start --><title>4002</title><!-- DNT-End -->
- <indexterm>
- <primary>4002</primary>
- </indexterm>
- <para><!-- DNT-Start -->ALL<!-- DNT-End --> cannot be passed to an external service</para>
- </sect1>
- <sect1 id="_4003">
- <!-- DNT-Start --><title>4003</title><!-- DNT-End -->
- <indexterm>
- <primary>4003</primary>
- </indexterm>
- <para>Indexing <!-- DNT-Start -->ALL<!-- DNT-End --> is undefined</para>
- </sect1>
- <sect1 id="_4004">
- <!-- DNT-Start --><title>4004</title><!-- DNT-End -->
- <indexterm>
- <primary>4004</primary>
- </indexterm>
- <para>Cannot use <!-- DNT-Start -->ALL<!-- DNT-End --> in this context</para>
- </sect1>
- <sect1 id="_4005">
- <!-- DNT-Start --><title>4005</title><!-- DNT-End -->
- <indexterm>
- <primary>4005</primary>
- </indexterm>
- <para>Too many parameters passed to function '%s'</para>
- </sect1>
- <sect1 id="_4006">
- <!-- DNT-Start --><title>4006</title><!-- DNT-End -->
- <indexterm>
- <primary>4006</primary>
- </indexterm>
- <para>Cannot define column %s with an unknown length (use alien
- datatype)</para>
- </sect1>
- <sect1 id="_4007">
- <!-- DNT-Start --><title>4007</title><!-- DNT-End -->
- <indexterm>
- <primary>4007</primary>
- </indexterm>
- <para><!-- DNT-Start -->BUILDINDEX<!-- DNT-End --> can only be used to build fixed width indexes</para>
- </sect1>
- <sect1 id="_4008">
- <!-- DNT-Start --><title>4008</title><!-- DNT-End -->
- <indexterm>
- <primary>4008</primary>
- </indexterm>
- <para><!-- DNT-Start -->BUILDINDEX<!-- DNT-End --> can only be used to build indexes on fixed width
- files</para>
- </sect1>
- <sect1 id="_4009">
- <!-- DNT-Start --><title>4009</title><!-- DNT-End -->
- <indexterm>
- <primary>4009</primary>
- </indexterm>
- <para><!-- DNT-Start -->INDEX<!-- DNT-End --> does not support fields of type %s</para>
- </sect1>
- <sect1 id="_4010">
- <!-- DNT-Start --><title>4010</title><!-- DNT-End -->
- <indexterm>
- <primary>4010</primary>
- </indexterm>
- <para><!-- DNT-Start -->INDEX<!-- DNT-End --> does not match the dataset being joined</para>
- </sect1>
- <sect1 id="_4011">
- <!-- DNT-Start --><title>4011</title><!-- DNT-End -->
- <indexterm>
- <primary>4011</primary>
- </indexterm>
- <para>Join condition does not contain sufficient information to use
- key</para>
- </sect1>
- <sect1 id="_4012">
- <!-- DNT-Start --><title>4012</title><!-- DNT-End -->
- <indexterm>
- <primary>4012</primary>
- </indexterm>
- <para>Not yet implemented: Cannot use a record structure containing a
- virtual field (%s) with stored or persist</para>
- </sect1>
- <sect1 id="_4013">
- <!-- DNT-Start --><title>4013</title><!-- DNT-End -->
- <indexterm>
- <primary>4013</primary>
- </indexterm>
- <para>%s has more than one definition</para>
- </sect1>
- <sect1 id="_4014">
- <!-- DNT-Start --><title>4014</title><!-- DNT-End -->
- <indexterm>
- <primary>4014</primary>
- </indexterm>
- <para><!-- DNT-Start -->LIMIT<!-- DNT-End --> clause can only be applied to a dataset</para>
- </sect1>
- <sect1 id="_4015">
- <!-- DNT-Start --><title>4015</title><!-- DNT-End -->
- <indexterm>
- <primary>4015</primary>
- </indexterm>
- <para>Cannot resource activity %s a cluster with %d nodes</para>
- </sect1>
- <sect1 id="_4016">
- <!-- DNT-Start --><title>4016</title><!-- DNT-End -->
- <indexterm>
- <primary>4016</primary>
- </indexterm>
- <para>Unsupported option #<!-- DNT-Start -->WORKUNIT<!-- DNT-End --> ('%s')</para>
- </sect1>
- <sect1 id="_4017">
- <!-- DNT-Start --><title>4017</title><!-- DNT-End -->
- <indexterm>
- <primary>4017</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Unsupported virtual attribute '%s'</para>
- </sect1>
- <sect1 id="_4018">
- <!-- DNT-Start --><title>4018</title><!-- DNT-End -->
- <indexterm>
- <primary>4018</primary>
- </indexterm>
- <para>Illegal pattern '%s..%s'</para>
- </sect1>
- <sect1 id="_4020">
- <!-- DNT-Start --><title>4020</title><!-- DNT-End -->
- <indexterm>
- <primary>4020</primary>
- </indexterm>
- <para><!-- DNT-Start -->THOR<!-- DNT-End --> must be used for sorting or joining datasets with variable
- width rows</para>
- </sect1>
- <sect1 id="_4021">
- <!-- DNT-Start --><title>4021</title><!-- DNT-End -->
- <indexterm>
- <primary>4021</primary>
- </indexterm>
- <para>Substring index %d is outside the field range</para>
- </sect1>
- <sect1 id="_4022">
- <!-- DNT-Start --><title>4022</title><!-- DNT-End -->
- <indexterm>
- <primary>4022</primary>
- </indexterm>
- <para><!-- DNT-Start -->RANK<!-- DNT-End -->/<!-- DNT-Start -->RANKED<!-- DNT-End --> not supported on list %s</para>
- </sect1>
- <sect1 id="_4023">
- <!-- DNT-Start --><title>4023</title><!-- DNT-End -->
- <indexterm>
- <primary>4023</primary>
- </indexterm>
- <para>Cannot cast a string of unknown length to another character
- set</para>
- </sect1>
- <sect1 id="_4024">
- <!-- DNT-Start --><title>4024</title><!-- DNT-End -->
- <indexterm>
- <primary>4024</primary>
- </indexterm>
- <para>Not enough parameters passed to function '%s'</para>
- </sect1>
- <sect1 id="_4025">
- <!-- DNT-Start --><title>4025</title><!-- DNT-End -->
- <indexterm>
- <primary>4025</primary>
- </indexterm>
- <para>Index is not supported for type %s yet</para>
- </sect1>
- <sect1 id="_4026">
- <!-- DNT-Start --><title>4026</title><!-- DNT-End -->
- <indexterm>
- <primary>4026</primary>
- </indexterm>
- <para><!-- DNT-Start -->RANK<!-- DNT-End --> has no meaning on an empty list</para>
- </sect1>
- <sect1 id="_4027">
- <!-- DNT-Start --><title>4027</title><!-- DNT-End -->
- <indexterm>
- <primary>4027</primary>
- </indexterm>
- <para>%s can only be used in a record supplied to a <!-- DNT-Start -->PARSE<!-- DNT-End -->() command</para>
- </sect1>
- <sect1 id="_4028">
- <!-- DNT-Start --><title>4028</title><!-- DNT-End -->
- <indexterm>
- <primary>4028</primary>
- </indexterm>
- <para>The parameter to <!-- DNT-Start -->MATCHED<!-- DNT-End -->(%s) is not found in the pattern</para>
- </sect1>
- <sect1 id="_4029">
- <!-- DNT-Start --><title>4029</title><!-- DNT-End -->
- <indexterm>
- <primary>4029</primary>
- </indexterm>
- <para>Roxie requires constant filenames - expression %s cannot be computed
- at deployment time</para>
- </sect1>
- <sect1 id="_4030">
- <!-- DNT-Start --><title>4030</title><!-- DNT-End -->
- <indexterm>
- <primary>4030</primary>
- </indexterm>
- <para><!-- DNT-Start -->MATCHTEXT<!-- DNT-End --> found where <!-- DNT-Start -->MATCHUNICODE<!-- DNT-End --> was expected</para>
- </sect1>
- <sect1 id="_4031">
- <!-- DNT-Start --><title>4031</title><!-- DNT-End -->
- <indexterm>
- <primary>4031</primary>
- </indexterm>
- <para><!-- DNT-Start -->MATCHUNICODE<!-- DNT-End --> found where <!-- DNT-Start -->MATCHTEXT<!-- DNT-End --> was expected</para>
- </sect1>
- <sect1 id="_4032">
- <!-- DNT-Start --><title>4032</title><!-- DNT-End -->
- <indexterm>
- <primary>4032</primary>
- </indexterm>
- <para>Only <!-- DNT-Start -->MATCHTEXT<!-- DNT-End --> and <!-- DNT-Start -->MATCHUNICODE<!-- DNT-End --> are valid inside a <!-- DNT-Start -->VALIDATE<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_4033">
- <!-- DNT-Start --><title>4033</title><!-- DNT-End -->
- <indexterm>
- <primary>4033</primary>
- </indexterm>
- <para>Records containing child datasets must be output to a file</para>
- </sect1>
- <sect1 id="_4034">
- <!-- DNT-Start --><title>4034</title><!-- DNT-End -->
- <indexterm>
- <primary>4034</primary>
- </indexterm>
- <para>Definition of <!-- DNT-Start -->USE<!-- DNT-End -->(%s) was not found</para>
- </sect1>
- <sect1 id="_4035">
- <!-- DNT-Start --><title>4035</title><!-- DNT-End -->
- <indexterm>
- <primary>4035</primary>
- </indexterm>
- <para>Definition of <!-- DNT-Start -->USE<!-- DNT-End -->(%s.%s) was not found</para>
- </sect1>
- <sect1 id="_4036">
- <!-- DNT-Start --><title>4036</title><!-- DNT-End -->
- <indexterm>
- <primary>4036</primary>
- </indexterm>
- <para>Duplicate definition of %s (use #stored to override default
- value)</para>
- </sect1>
- <sect1 id="_4037">
- <!-- DNT-Start --><title>4037</title><!-- DNT-End -->
- <indexterm>
- <primary>4037</primary>
- </indexterm>
- <para><!-- DNT-Start -->ROWDIFF<!-- DNT-End -->: Types are not compatible for field %s</para>
- </sect1>
- <sect1 id="_4038">
- <!-- DNT-Start --><title>4038</title><!-- DNT-End -->
- <indexterm>
- <primary>4038</primary>
- </indexterm>
- <para><!-- DNT-Start -->FETCH<!-- DNT-End --> not supported on dataset of kind %s</para>
- </sect1>
- <sect1 id="_4039">
- <!-- DNT-Start --><title>4039</title><!-- DNT-End -->
- <indexterm>
- <primary>4039</primary>
- </indexterm>
- <para><!-- DNT-Start -->COUNTER<!-- DNT-End --> is not legal in this context</para>
- </sect1>
- <sect1 id="_4040">
- <!-- DNT-Start --><title>4040</title><!-- DNT-End -->
- <indexterm>
- <primary>4040</primary>
- </indexterm>
- <para><!-- DNT-Start -->XMLTEXT<!-- DNT-End --> is only legal in a <!-- DNT-Start -->PARSE<!-- DNT-End --> transform</para>
- </sect1>
- <sect1 id="_4041">
- <!-- DNT-Start --><title>4041</title><!-- DNT-End -->
- <indexterm>
- <primary>4041</primary>
- </indexterm>
- <para><!-- DNT-Start -->XMLUNICODE<!-- DNT-End --> is only legal inside a <!-- DNT-Start -->PARSE<!-- DNT-End --> transform</para>
- </sect1>
- <sect1 id="_4042">
- <!-- DNT-Start --><title>4042</title><!-- DNT-End -->
- <indexterm>
- <primary>4042</primary>
- </indexterm>
- <para>Condition on <!-- DNT-Start -->DISTRIBUTE<!-- DNT-End --> must match the key exactly</para>
- </sect1>
- <sect1 id="_4043">
- <!-- DNT-Start --><title>4043</title><!-- DNT-End -->
- <indexterm>
- <primary>4043</primary>
- </indexterm>
- <para>Row size %u exceeds the maximum specified (%u)</para>
- </sect1>
- <sect1 id="_4044">
- <!-- DNT-Start --><title>4044</title><!-- DNT-End -->
- <indexterm>
- <primary>4044</primary>
- </indexterm>
- <para>Select expression should have been hoisted</para>
- </sect1>
- <sect1 id="_4045">
- <!-- DNT-Start --><title>4045</title><!-- DNT-End -->
- <indexterm>
- <primary>4045</primary>
- </indexterm>
- <para>%s() cannot have a parameter inside a <!-- DNT-Start -->VALIDATE<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_4046">
- <!-- DNT-Start --><title>4046</title><!-- DNT-End -->
- <indexterm>
- <primary>4046</primary>
- </indexterm>
- <para>%s is not supported in roxie queries</para>
- </sect1>
- <sect1 id="_4047">
- <!-- DNT-Start --><title>4047</title><!-- DNT-End -->
- <indexterm>
- <primary>4047</primary>
- </indexterm>
- <para>Input to <!-- DNT-Start -->MERGE<!-- DNT-End --> does not appear to be sorted</para>
- </sect1>
- <sect1 id="_4048">
- <!-- DNT-Start --><title>4048</title><!-- DNT-End -->
- <indexterm>
- <primary>4048</primary>
- </indexterm>
- <para>Expression is too complicated to preload</para>
- </sect1>
- <sect1 id="_4049">
- <!-- DNT-Start --><title>4049</title><!-- DNT-End -->
- <indexterm>
- <primary>4049</primary>
- </indexterm>
- <para><!-- DNT-Start -->KEYED<!-- DNT-End -->(%s) couldn't be looked up in a key.</para>
- </sect1>
- <sect1 id="_4050">
- <!-- DNT-Start --><title>4050</title><!-- DNT-End -->
- <indexterm>
- <primary>4050</primary>
- </indexterm>
- <para><!-- DNT-Start -->KEYED<!-- DNT-End -->(%s) follows unfiltered component %s in the key%s</para>
- </sect1>
- <sect1 id="_4051">
- <!-- DNT-Start --><title>4051</title><!-- DNT-End -->
- <indexterm>
- <primary>4051</primary>
- </indexterm>
- <para><!-- DNT-Start -->WILD<!-- DNT-End -->(%s) follows unfiltered component %s in the key%s</para>
- </sect1>
- <sect1 id="_4052">
- <!-- DNT-Start --><title>4052</title><!-- DNT-End -->
- <indexterm>
- <primary>4052</primary>
- </indexterm>
- <para>%s could not be implemented by the key</para>
- </sect1>
- <sect1 id="_4053">
- <!-- DNT-Start --><title>4053</title><!-- DNT-End -->
- <indexterm>
- <primary>4053</primary>
- </indexterm>
- <para>Cannot process zero length rows</para>
- </sect1>
- <sect1 id="_4054">
- <!-- DNT-Start --><title>4054</title><!-- DNT-End -->
- <indexterm>
- <primary>4054</primary>
- </indexterm>
- <para>Set casts aren't supported yet</para>
- </sect1>
- <sect1 id="_4055">
- <!-- DNT-Start --><title>4055</title><!-- DNT-End -->
- <indexterm>
- <primary>4055</primary>
- </indexterm>
- <para>Cannot call function %s in a non-global context</para>
- </sect1>
- <sect1 id="_4056">
- <!-- DNT-Start --><title>4056</title><!-- DNT-End -->
- <indexterm>
- <primary>4056</primary>
- </indexterm>
- <para>Sets of items of unknown length are not yet supported!</para>
- </sect1>
- <sect1 id="_4057">
- <!-- DNT-Start --><title>4057</title><!-- DNT-End -->
- <indexterm>
- <primary>4057</primary>
- </indexterm>
- <para>#<!-- DNT-Start -->STORED<!-- DNT-End --> (%s) type mismatch (was '%s' replacement '%s')</para>
- </sect1>
- <sect1 id="_4058">
- <!-- DNT-Start --><title>4058</title><!-- DNT-End -->
- <indexterm>
- <primary>4058</primary>
- </indexterm>
- <para>Cannot count number of elements in <!-- DNT-Start -->ALL<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_4059">
- <!-- DNT-Start --><title>4059</title><!-- DNT-End -->
- <indexterm>
- <primary>4059</primary>
- </indexterm>
- <para>Can only key fixed fields at fixed offsets</para>
- </sect1>
- <sect1 id="_4060">
- <!-- DNT-Start --><title>4060</title><!-- DNT-End -->
- <indexterm>
- <primary>4060</primary>
- </indexterm>
- <para>Duplicate definition of %s with different type (use #stored to
- override default value)</para>
- </sect1>
- <sect1 id="_4061">
- <!-- DNT-Start --><title>4061</title><!-- DNT-End -->
- <indexterm>
- <primary>4061</primary>
- </indexterm>
- <para>Features are not supported by regex - did you mean repeat() instead
- of {}?</para>
- </sect1>
- <sect1 id="_4062">
- <!-- DNT-Start --><title>4062</title><!-- DNT-End -->
- <indexterm>
- <primary>4062</primary>
- </indexterm>
- <para>Option %s not yet supported on child datasets</para>
- </sect1>
- <sect1 id="_4063">
- <!-- DNT-Start --><title>4063</title><!-- DNT-End -->
- <indexterm>
- <primary>4063</primary>
- </indexterm>
- <para>Grouped tables not yet supported in this context</para>
- </sect1>
- <sect1 id="_4064">
- <!-- DNT-Start --><title>4064</title><!-- DNT-End -->
- <indexterm>
- <primary>4064</primary>
- </indexterm>
- <para>Nested child queries are not supported yet</para>
- </sect1>
- <sect1 id="_4066">
- <!-- DNT-Start --><title>4066</title><!-- DNT-End -->
- <indexterm>
- <primary>4066</primary>
- </indexterm>
- <para>#<!-- DNT-Start -->STORED<!-- DNT-End --> (%s) records must match</para>
- </sect1>
- <sect1 id="_4067">
- <!-- DNT-Start --><title>4067</title><!-- DNT-End -->
- <indexterm>
- <primary>4067</primary>
- </indexterm>
- <para><!-- DNT-Start -->ATMOST<!-- DNT-End --> <!-- DNT-Start -->JOIN<!-- DNT-End --> cannot be evaluated with this join condition%s</para>
- </sect1>
- <sect1 id="_4068">
- <!-- DNT-Start --><title>4068</title><!-- DNT-End -->
- <indexterm>
- <primary>4068</primary>
- </indexterm>
- <para><!-- DNT-Start -->ATMOST<!-- DNT-End --> <!-- DNT-Start -->JOIN<!-- DNT-End --> cannot be evaluated with this join condition%s</para>
- </sect1>
- <sect1 id="_4069">
- <!-- DNT-Start --><title>4069</title><!-- DNT-End -->
- <indexterm>
- <primary>4069</primary>
- </indexterm>
- <para><!-- DNT-Start -->RIGHT<!-- DNT-End --> for a full keyed join must be a disk based <!-- DNT-Start -->DATASET<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_4070">
- <!-- DNT-Start --><title>4070</title><!-- DNT-End -->
- <indexterm>
- <primary>4070</primary>
- </indexterm>
- <para><!-- DNT-Start -->ATMOST<!-- DNT-End -->(%s) failed to match part of the join condition</para>
- </sect1>
- <sect1 id="_4071">
- <!-- DNT-Start --><title>4071</title><!-- DNT-End -->
- <indexterm>
- <primary>4071</primary>
- </indexterm>
- <para>"LIMIT(%s, KEYED) could not be merged into an index read"</para>
- </sect1>
- <sect1 id="_4072">
- <!-- DNT-Start --><title>4072</title><!-- DNT-End -->
- <indexterm>
- <primary>4072</primary>
- </indexterm>
- <para><!-- DNT-Start -->EXTEND<!-- DNT-End --> is required on all outputs to <!-- DNT-Start -->NAMED<!-- DNT-End -->(%s)</para>
- </sect1>
- <sect1 id="_4073">
- <!-- DNT-Start --><title>4073</title><!-- DNT-End -->
- <indexterm>
- <primary>4073</primary>
- </indexterm>
- <para>Duplicate output to <!-- DNT-Start -->NAMED<!-- DNT-End -->(%s). <!-- DNT-Start -->EXTEND<!-- DNT-End -->/<!-- DNT-Start -->OVERWRITE<!-- DNT-End --> required</para>
- </sect1>
- <sect1 id="_4074">
- <!-- DNT-Start --><title>4074</title><!-- DNT-End -->
- <indexterm>
- <primary>4074</primary>
- </indexterm>
- <para><!-- DNT-Start -->OUTPUTs<!-- DNT-End --> to <!-- DNT-Start -->NAMED<!-- DNT-End -->(%s) have incompatible types</para>
- </sect1>
- <sect1 id="_4075">
- <!-- DNT-Start --><title>4075</title><!-- DNT-End -->
- <indexterm>
- <primary>4075</primary>
- </indexterm>
- <para><!-- DNT-Start -->OVERWRITE<!-- DNT-End --> is required on all outputs to <!-- DNT-Start -->NAMED<!-- DNT-End -->(%s)</para>
- </sect1>
- <sect1 id="_4076">
- <!-- DNT-Start --><title>4076</title><!-- DNT-End -->
- <indexterm>
- <primary>4076</primary>
- </indexterm>
- <para><!-- DNT-Start -->OVERWRITE<!-- DNT-End -->/<!-- DNT-Start -->EXTEND<!-- DNT-End --> should be consistent on all outputs to
- <!-- DNT-Start -->NAMED<!-- DNT-End -->(%s)</para>
- </sect1>
- <sect1 id="_4078">
- <!-- DNT-Start --><title>4078</title><!-- DNT-End -->
- <indexterm>
- <primary>4078</primary>
- </indexterm>
- <para>Insufficient access rights to use embedded C++</para>
- </sect1>
- <sect1 id="_4079">
- <!-- DNT-Start --><title>4079</title><!-- DNT-End -->
- <indexterm>
- <primary>4079</primary>
- </indexterm>
- <para>Tag contents syntax <> is not supported by <!-- DNT-Start -->SOAPCALL<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_4081">
- <!-- DNT-Start --><title>4081</title><!-- DNT-End -->
- <indexterm>
- <primary>4081</primary>
- </indexterm>
- <para><!-- DNT-Start -->RIGHT<!-- DNT-End --> side of a full keyed join must be a disk file</para>
- </sect1>
- <sect1 id="_4082">
- <!-- DNT-Start --><title>4082</title><!-- DNT-End -->
- <indexterm>
- <primary>4082</primary>
- </indexterm>
- <para>Expression is not constant: %s</para>
- </sect1>
- <sect1 id="_4083">
- <!-- DNT-Start --><title>4083</title><!-- DNT-End -->
- <indexterm>
- <primary>4083</primary>
- </indexterm>
- <para>"Unimplemented: Cannot access row blob inside a child query, contact
- tech support"</para>
- </sect1>
- <sect1 id="_4084">
- <!-- DNT-Start --><title>4084</title><!-- DNT-End -->
- <indexterm>
- <primary>4084</primary>
- </indexterm>
- <para>Field '%s' with dataset type not supported in csv output</para>
- </sect1>
- <sect1 id="_4085">
- <!-- DNT-Start --><title>4085</title><!-- DNT-End -->
- <indexterm>
- <primary>4085</primary>
- </indexterm>
- <para>Field '%s' with set type not supported in csv output</para>
- </sect1>
- <sect1 id="_4086">
- <!-- DNT-Start --><title>4086</title><!-- DNT-End -->
- <indexterm>
- <primary>4086</primary>
- </indexterm>
- <para>Cannot determine the maximum size of the expression</para>
- </sect1>
- <sect1 id="_4087">
- <!-- DNT-Start --><title>4087</title><!-- DNT-End -->
- <indexterm>
- <primary>4087</primary>
- </indexterm>
- <para>Cannot determine size because variable size dataset is not in scope.
- Try using sizeof(x,max)</para>
- </sect1>
- <sect1 id="_4088">
- <!-- DNT-Start --><title>4088</title><!-- DNT-End -->
- <indexterm>
- <primary>4088</primary>
- </indexterm>
- <para>Duplicate definition of %s</para>
- </sect1>
- <sect1 id="_4089">
- <!-- DNT-Start --><title>4089</title><!-- DNT-End -->
- <indexterm>
- <primary>4089</primary>
- </indexterm>
- <para>Duplicate definition of %s with different type</para>
- </sect1>
- <sect1 id="_4090">
- <!-- DNT-Start --><title>4090</title><!-- DNT-End -->
- <indexterm>
- <primary>4090</primary>
- </indexterm>
- <para><!-- DNT-Start -->WILD<!-- DNT-End -->() doesn't reference fields in key %s</para>
- </sect1>
- <sect1 id="_4091">
- <!-- DNT-Start --><title>4091</title><!-- DNT-End -->
- <indexterm>
- <primary>4091</primary>
- </indexterm>
- <para>Field %s cannot have both <!-- DNT-Start -->KEYED<!-- DNT-End --> and <!-- DNT-Start -->KEYED<!-- DNT-End -->,<!-- DNT-Start -->OPT<!-- DNT-End --> conditions</para>
- </sect1>
- <sect1 id="_4092">
- <!-- DNT-Start --><title>4092</title><!-- DNT-End -->
- <indexterm>
- <primary>4092</primary>
- </indexterm>
- <para><!-- DNT-Start -->KEYED<!-- DNT-End -->(%s,<!-- DNT-Start -->OPT<!-- DNT-End -->) follows a <!-- DNT-Start -->WILD<!-- DNT-End -->() field in key %s</para>
- </sect1>
- <sect1 id="_4093">
- <!-- DNT-Start --><title>4093</title><!-- DNT-End -->
- <indexterm>
- <primary>4093</primary>
- </indexterm>
- <para><!-- DNT-Start -->COUNT<!-- DNT-End -->(,<!-- DNT-Start -->KEYED<!-- DNT-End -->) cannot be used on a child dataset</para>
- </sect1>
- <sect1 id="_4094">
- <!-- DNT-Start --><title>4094</title><!-- DNT-End -->
- <indexterm>
- <primary>4094</primary>
- </indexterm>
- <para>Filter for <!-- DNT-Start -->COUNT<!-- DNT-End -->(,<!-- DNT-Start -->KEYED<!-- DNT-End -->) did not contained <!-- DNT-Start -->KEYED<!-- DNT-End -->()
- expressions</para>
- </sect1>
- <sect1 id="_4095">
- <!-- DNT-Start --><title>4095</title><!-- DNT-End -->
- <indexterm>
- <primary>4095</primary>
- </indexterm>
- <para><!-- DNT-Start -->KEYED<!-- DNT-End --> <!-- DNT-Start -->COUNT<!-- DNT-End --> used on a non-keyable dataset</para>
- </sect1>
- <sect1 id="_4096">
- <!-- DNT-Start --><title>4096</title><!-- DNT-End -->
- <indexterm>
- <primary>4096</primary>
- </indexterm>
- <para>Attempting to lookup field %s in a dataset which has no active
- element</para>
- </sect1>
- <sect1 id="_4097">
- <!-- DNT-Start --><title>4097</title><!-- DNT-End -->
- <indexterm>
- <primary>4097</primary>
- </indexterm>
- <para>Key condition (%s) is too complex, it cannot be done with the
- key.</para>
- </sect1>
- <sect1 id="_4098">
- <!-- DNT-Start --><title>4098</title><!-- DNT-End -->
- <indexterm>
- <primary>4098</primary>
- </indexterm>
- <para>Key condition (%s) requires casts on comparison of field '%s'</para>
- </sect1>
- <sect1 id="_4099">
- <!-- DNT-Start --><title>4099</title><!-- DNT-End -->
- <indexterm>
- <primary>4099</primary>
- </indexterm>
- <para>Key condition (%s) does not have any comparisons against key
- fields</para>
- </sect1>
- <sect1 id="_4100">
- <!-- DNT-Start --><title>4100</title><!-- DNT-End -->
- <indexterm>
- <primary>4100</primary>
- </indexterm>
- <para>No explicit maxlength provided for record %s</para>
- </sect1>
- <sect1 id="_">
- <!-- DNT-Start --><title></title><!-- DNT-End -->
- <indexterm>
- <primary></primary>
- </indexterm>
- <para>unary - cannot be performed on a string</para>
- </sect1>
- <sect1 id="_4102">
- <!-- DNT-Start --><title>4102</title><!-- DNT-End -->
- <indexterm>
- <primary>4102</primary>
- </indexterm>
- <para>%s is not supported inside <!-- DNT-Start -->NOTHOR<!-- DNT-End -->()</para>
- </sect1>
- <sect1 id="_4103">
- <!-- DNT-Start --><title>4103</title><!-- DNT-End -->
- <indexterm>
- <primary>4103</primary>
- </indexterm>
- <para>Regular expression parsing doesn't support productions - need to use
- tomita</para>
- </sect1>
- <sect1 id="_4104">
- <!-- DNT-Start --><title>4104</title><!-- DNT-End -->
- <indexterm>
- <primary>4104</primary>
- </indexterm>
- <para>Unimplemented: Cannot yet access $<n> inside a child
- query</para>
- </sect1>
- <sect1 id="_4105">
- <!-- DNT-Start --><title>4105</title><!-- DNT-End -->
- <indexterm>
- <primary>4105</primary>
- </indexterm>
- <para>Ambiguous default production for rule with multiple inputs</para>
- </sect1>
- <sect1 id="_4106">
- <!-- DNT-Start --><title>4106</title><!-- DNT-End -->
- <indexterm>
- <primary>4106</primary>
- </indexterm>
- <para>Selector %s is used ambiguously at multiple levels</para>
- </sect1>
- <sect1 id="_4107">
- <!-- DNT-Start --><title>4107</title><!-- DNT-End -->
- <indexterm>
- <primary>4107</primary>
- </indexterm>
- <para><!-- DNT-Start -->JOIN<!-- DNT-End -->%s marked as <!-- DNT-Start -->KEYED<!-- DNT-End --> does not have a key as the second
- parameter</para>
- </sect1>
- <sect1 id="_4108">
- <!-- DNT-Start --><title>4108</title><!-- DNT-End -->
- <indexterm>
- <primary>4108</primary>
- </indexterm>
- <para><!-- DNT-Start -->ALLNODES<!-- DNT-End -->(dataset) only legal in roxie and in thor child
- queries</para>
- </sect1>
- <sect1 id="_4109">
- <!-- DNT-Start --><title>4109</title><!-- DNT-End -->
- <indexterm>
- <primary>4109</primary>
- </indexterm>
- <para><!-- DNT-Start -->ALLNODES<!-- DNT-End -->() is not currently supported on grouped datasets</para>
- </sect1>
- <sect1 id="_4110">
- <!-- DNT-Start --><title>4110</title><!-- DNT-End -->
- <indexterm>
- <primary>4110</primary>
- </indexterm>
- <para>Library %s cannot contain any workflow actions%s</para>
- </sect1>
- <sect1 id="_4111">
- <!-- DNT-Start --><title>4111</title><!-- DNT-End -->
- <indexterm>
- <primary>4111</primary>
- </indexterm>
- <para><!-- DNT-Start -->LOOP<!-- DNT-End --> body too complicated to evaluate in parallel</para>
- </sect1>
- <sect1 id="_4112">
- <!-- DNT-Start --><title>4112</title><!-- DNT-End -->
- <indexterm>
- <primary>4112</primary>
- </indexterm>
- <para>Operator %s not supported inside DFAs</para>
- </sect1>
- <sect1 id="_4113">
- <!-- DNT-Start --><title>4113</title><!-- DNT-End -->
- <indexterm>
- <primary>4113</primary>
- </indexterm>
- <para><!-- DNT-Start -->MATCHUTF<!-- DNT-End -->8 found where <!-- DNT-Start -->MATCHUNICODE<!-- DNT-End -->/<!-- DNT-Start -->MATCHTEXT<!-- DNT-End --> was expected</para>
- </sect1>
- <sect1 id="_4114">
- <!-- DNT-Start --><title>4114</title><!-- DNT-End -->
- <indexterm>
- <primary>4114</primary>
- </indexterm>
- <para><!-- DNT-Start -->THISNODE<!-- DNT-End -->() can only be used inside <!-- DNT-Start -->ALLNODES<!-- DNT-End -->()</para>
- </sect1>
- <sect1 id="_4115">
- <!-- DNT-Start --><title>4115</title><!-- DNT-End -->
- <indexterm>
- <primary>4115</primary>
- </indexterm>
- <para><!-- DNT-Start -->STEPPED<!-- DNT-End -->(%s) cannot be evaluated in this context</para>
- </sect1>
- <sect1 id="_4116">
- <!-- DNT-Start --><title>4116</title><!-- DNT-End -->
- <indexterm>
- <primary>4116</primary>
- </indexterm>
- <para>Parameter to <!-- DNT-Start -->RANGE<!-- DNT-End -->() is too complex - not currently supported</para>
- </sect1>
- <sect1 id="_4117">
- <!-- DNT-Start --><title>4117</title><!-- DNT-End -->
- <indexterm>
- <primary>4117</primary>
- </indexterm>
- <para>Project of stepping fields is too complex</para>
- </sect1>
- <sect1 id="_4118">
- <!-- DNT-Start --><title>4118</title><!-- DNT-End -->
- <indexterm>
- <primary>4118</primary>
- </indexterm>
- <para>Stepped field %s must have a fixed size</para>
- </sect1>
- <sect1 id="_4119">
- <!-- DNT-Start --><title>4119</title><!-- DNT-End -->
- <indexterm>
- <primary>4119</primary>
- </indexterm>
- <para>Stepped field %s must be at a fixed offset</para>
- </sect1>
- <sect1 id="_4120">
- <!-- DNT-Start --><title>4120</title><!-- DNT-End -->
- <indexterm>
- <primary>4120</primary>
- </indexterm>
- <para>Expression is too complex to <!-- DNT-Start -->STEP<!-- DNT-End --> (%s)</para>
- </sect1>
- <sect1 id="_4121">
- <!-- DNT-Start --><title>4121</title><!-- DNT-End -->
- <indexterm>
- <primary>4121</primary>
- </indexterm>
- <para>Cannot smart step on payload fields</para>
- </sect1>
- <sect1 id="_4122">
- <!-- DNT-Start --><title>4122</title><!-- DNT-End -->
- <indexterm>
- <primary>4122</primary>
- </indexterm>
- <para><!-- DNT-Start -->STEPPED<!-- DNT-End --> range condition could only be matched in one
- direction</para>
- </sect1>
- <sect1 id="_4123">
- <!-- DNT-Start --><title>4123</title><!-- DNT-End -->
- <indexterm>
- <primary>4123</primary>
- </indexterm>
- <para>Multiple <!-- DNT-Start -->STEPPED<!-- DNT-End --> comparisons %s >=</para>
- </sect1>
- <sect1 id="_4124">
- <!-- DNT-Start --><title>4124</title><!-- DNT-End -->
- <indexterm>
- <primary>4124</primary>
- </indexterm>
- <para><!-- DNT-Start -->STEPPED<!-- DNT-End --> condition is not compatible with the sort/merge condition
- (%s expected)</para>
- </sect1>
- <sect1 id="_4125">
- <!-- DNT-Start --><title>4125</title><!-- DNT-End -->
- <indexterm>
- <primary>4125</primary>
- </indexterm>
- <para><!-- DNT-Start -->JOIN<!-- DNT-End --> condition is not compatible with the sort/merge
- condition</para>
- </sect1>
- <sect1 id="_4126">
- <!-- DNT-Start --><title>4126</title><!-- DNT-End -->
- <indexterm>
- <primary>4126</primary>
- </indexterm>
- <para><!-- DNT-Start -->STEPPED<!-- DNT-End --> field %s is not keyed</para>
- </sect1>
- <sect1 id="_4127">
- <!-- DNT-Start --><title>4127</title><!-- DNT-End -->
- <indexterm>
- <primary>4127</primary>
- </indexterm>
- <para><!-- DNT-Start -->STEPPED<!-- DNT-End --> field %s does not follow the previous stepped field</para>
- </sect1>
- <sect1 id="_4128">
- <!-- DNT-Start --><title>4128</title><!-- DNT-End -->
- <indexterm>
- <primary>4128</primary>
- </indexterm>
- <para>Merge order must match all the stepped join fields</para>
- </sect1>
- <sect1 id="_4129">
- <!-- DNT-Start --><title>4129</title><!-- DNT-End -->
- <indexterm>
- <primary>4129</primary>
- </indexterm>
- <para>Cannot <!-- DNT-Start -->OR<!-- DNT-End --> together conditions on multiple key fields (%s)</para>
- </sect1>
- <sect1 id="_4130">
- <!-- DNT-Start --><title>4130</title><!-- DNT-End -->
- <indexterm>
- <primary>4130</primary>
- </indexterm>
- <para><!-- DNT-Start -->ROW<!-- DNT-End --> compression can only be used on fixed size indexes</para>
- </sect1>
- <sect1 id="_4131">
- <!-- DNT-Start --><title>4131</title><!-- DNT-End -->
- <indexterm>
- <primary>4131</primary>
- </indexterm>
- <para><!-- DNT-Start -->UPDATE<!-- DNT-End --> cannot be used when the inputs names aren't globally
- constant</para>
- </sect1>
- <sect1 id="_4132">
- <!-- DNT-Start --><title>4132</title><!-- DNT-End -->
- <indexterm>
- <primary>4132</primary>
- </indexterm>
- <para><!-- DNT-Start -->THOR<!-- DNT-End --> currently only supports <!-- DNT-Start -->LEFT<!-- DNT-End --> <!-- DNT-Start -->OUTER<!-- DNT-End --> denormalize</para>
- </sect1>
- <sect1 id="_4133">
- <!-- DNT-Start --><title>4133</title><!-- DNT-End -->
- <indexterm>
- <primary>4133</primary>
- </indexterm>
- <para><!-- DNT-Start -->THOR<!-- DNT-End --> doesn't support <!-- DNT-Start -->DENORMALIZE<!-- DNT-End -->(%s)</para>
- </sect1>
- <sect1 id="_4134">
- <!-- DNT-Start --><title>4134</title><!-- DNT-End -->
- <indexterm>
- <primary>4134</primary>
- </indexterm>
- <para><!-- DNT-Start -->SKIP<!-- DNT-End --> cannot be used here. It is only valid directly with a
- transform</para>
- </sect1>
- <sect1 id="_4135">
- <!-- DNT-Start --><title>4135</title><!-- DNT-End -->
- <indexterm>
- <primary>4135</primary>
- </indexterm>
- <para>Cannot read tables/datasets from a csv file</para>
- </sect1>
- <sect1 id="_4136">
- <!-- DNT-Start --><title>4136</title><!-- DNT-End -->
- <indexterm>
- <primary>4136</primary>
- </indexterm>
- <para>Argument %s to #workunit must be a constant</para>
- </sect1>
- <sect1 id="_4137">
- <!-- DNT-Start --><title>4137</title><!-- DNT-End -->
- <indexterm>
- <primary>4137</primary>
- </indexterm>
- <para>Argument %s to #debug must be a constant</para>
- </sect1>
- <sect1 id="Unknown_01">
- <!-- DNT-Start --><title>Unknown_01</title><!-- DNT-End -->
- <indexterm>
- <primary>Unknown_01</primary>
- </indexterm>
- <para>Queries libraries must be implemented with a parameterised
- module</para>
- </sect1>
- <sect1 id="_4138">
- <!-- DNT-Start --><title>4138</title><!-- DNT-End -->
- <indexterm>
- <primary>4138</primary>
- </indexterm>
- <para>Member %s not defined in module passed as library parameter</para>
- </sect1>
- <sect1 id="_4139">
- <!-- DNT-Start --><title>4139</title><!-- DNT-End -->
- <indexterm>
- <primary>4139</primary>
- </indexterm>
- <para>Member %s was undefined in a module</para>
- </sect1>
- <sect1 id="_4140">
- <!-- DNT-Start --><title>4140</title><!-- DNT-End -->
- <indexterm>
- <primary>4140</primary>
- </indexterm>
- <para>Thor does not support <!-- DNT-Start -->HAVING<!-- DNT-End --> on a non-grouped dataset</para>
- </sect1>
- <sect1 id="_4141">
- <!-- DNT-Start --><title>4141</title><!-- DNT-End -->
- <indexterm>
- <primary>4141</primary>
- </indexterm>
- <para>%s not currently supported as a child action</para>
- </sect1>
- <sect1 id="_4142">
- <!-- DNT-Start --><title>4142</title><!-- DNT-End -->
- <indexterm>
- <primary>4142</primary>
- </indexterm>
- <para>Definitions in libraries cannot have side effects (%s)</para>
- </sect1>
- <sect1 id="_4143">
- <!-- DNT-Start --><title>4143</title><!-- DNT-End -->
- <indexterm>
- <primary>4143</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4144">
- <!-- DNT-Start --><title>4144</title><!-- DNT-End -->
- <indexterm>
- <primary>4144</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4145">
- <!-- DNT-Start --><title>4145</title><!-- DNT-End -->
- <indexterm>
- <primary>4145</primary>
- </indexterm>
- <para>Index read only supports single <!-- DNT-Start -->STEPPED<!-- DNT-End --> expression</para>
- </sect1>
- <sect1 id="_4146">
- <!-- DNT-Start --><title>4146</title><!-- DNT-End -->
- <indexterm>
- <primary>4146</primary>
- </indexterm>
- <para>#%s (%s) creates an illegal recursive reference (%s also being
- processed)</para>
- </sect1>
- <sect1 id="_4147">
- <!-- DNT-Start --><title>4147</title><!-- DNT-End -->
- <indexterm>
- <primary>4147</primary>
- </indexterm>
- <para>Insufficient access rights to use <!-- DNT-Start -->PIPE<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_4148">
- <!-- DNT-Start --><title>4148</title><!-- DNT-End -->
- <indexterm>
- <primary>4148</primary>
- </indexterm>
- <para>Parameter to <!-- DNT-Start -->__nameof__<!-- DNT-End --> must be a dataset or an index</para>
- </sect1>
- <sect1 id="_4149">
- <!-- DNT-Start --><title>4149</title><!-- DNT-End -->
- <indexterm>
- <primary>4149</primary>
- </indexterm>
- <para>Expected a <!-- DNT-Start -->UPDATE<!-- DNT-End --> attribute name</para>
- </sect1>
- <sect1 id="_4150">
- <!-- DNT-Start --><title>4150</title><!-- DNT-End -->
- <indexterm>
- <primary>4150</primary>
- </indexterm>
- <para>%s @ %d:%d</para>
- </sect1>
- <sect1 id="_4152">
- <!-- DNT-Start --><title>4152</title><!-- DNT-End -->
- <indexterm>
- <primary>4152</primary>
- </indexterm>
- <para>Index in <!-- DNT-Start -->RANK<!-- DNT-End -->/<!-- DNT-Start -->RANKED<!-- DNT-End --> is out of range</para>
- </sect1>
- <sect1 id="_4153">
- <!-- DNT-Start --><title>4153</title><!-- DNT-End -->
- <indexterm>
- <primary>4153</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Dataset is not active: '%s'</para>
- </sect1>
- <sect1 id="_4154">
- <!-- DNT-Start --><title>4154</title><!-- DNT-End -->
- <indexterm>
- <primary>4154</primary>
- </indexterm>
- <para>Could not open thor template '%s' at '%s'</para>
- </sect1>
- <sect1 id="_4155">
- <!-- DNT-Start --><title>4155</title><!-- DNT-End -->
- <indexterm>
- <primary>4155</primary>
- </indexterm>
- <para>Could not create output '%s'</para>
- </sect1>
- <sect1 id="_4156">
- <!-- DNT-Start --><title>4156</title><!-- DNT-End -->
- <indexterm>
- <primary>4156</primary>
- </indexterm>
- <para>Dataset '%.80s' does not contain expression '%.50s'</para>
- </sect1>
- <sect1 id="_4157">
- <!-- DNT-Start --><title>4157</title><!-- DNT-End -->
- <indexterm>
- <primary>4157</primary>
- </indexterm>
- <para>Cannot return a result of this type from a workunit</para>
- </sect1>
- <sect1 id="_4158">
- <!-- DNT-Start --><title>4158</title><!-- DNT-End -->
- <indexterm>
- <primary>4158</primary>
- </indexterm>
- <para>Could not find dataset %s</para>
- </sect1>
- <sect1 id="_4159">
- <!-- DNT-Start --><title>4159</title><!-- DNT-End -->
- <indexterm>
- <primary>4159</primary>
- </indexterm>
- <para>Could not find dataset %s (no tables in scope)</para>
- </sect1>
- <sect1 id="_4160">
- <!-- DNT-Start --><title>4160</title><!-- DNT-End -->
- <indexterm>
- <primary>4160</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Thor nodes should not be nested</para>
- </sect1>
- <sect1 id="_4161">
- <!-- DNT-Start --><title>4161</title><!-- DNT-End -->
- <indexterm>
- <primary>4161</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Missing assignment from transform to %s[%p]</para>
- </sect1>
- <sect1 id="_4162">
- <!-- DNT-Start --><title>4162</title><!-- DNT-End -->
- <indexterm>
- <primary>4162</primary>
- </indexterm>
- <para>"JOIN%s contains no equality conditions - use ,ALL to allow"</para>
- </sect1>
- <sect1 id="_4163">
- <!-- DNT-Start --><title>4163</title><!-- DNT-End -->
- <indexterm>
- <primary>4163</primary>
- </indexterm>
- <para>A global <!-- DNT-Start -->DEDUP<!-- DNT-End -->(<!-- DNT-Start -->ALL<!-- DNT-End -->) or local hash dedup cannot include comparisons
- in the dedup criteria</para>
- </sect1>
- <sect1 id="_4164">
- <!-- DNT-Start --><title>4164</title><!-- DNT-End -->
- <indexterm>
- <primary>4164</primary>
- </indexterm>
- <para>"Global dedup,ALL must have a field to partition"</para>
- </sect1>
- <sect1 id="_4165">
- <!-- DNT-Start --><title>4165</title><!-- DNT-End -->
- <indexterm>
- <primary>4165</primary>
- </indexterm>
- <para>Hash dedup doesn't support %s</para>
- </sect1>
- <sect1 id="_4166">
- <!-- DNT-Start --><title>4166</title><!-- DNT-End -->
- <indexterm>
- <primary>4166</primary>
- </indexterm>
- <para><!-- DNT-Start -->SORTED<!-- DNT-End -->() used by <!-- DNT-Start -->JOINED<!-- DNT-End --> must be applied to a <!-- DNT-Start -->DATASET<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_4167">
- <!-- DNT-Start --><title>4167</title><!-- DNT-End -->
- <indexterm>
- <primary>4167</primary>
- </indexterm>
- <para><!-- DNT-Start -->SORTED<!-- DNT-End -->() used by <!-- DNT-Start -->JOINED<!-- DNT-End --> must be applied to a <!-- DNT-Start -->THOR<!-- DNT-End --> dataset</para>
- </sect1>
- <sect1 id="_4168">
- <!-- DNT-Start --><title>4168</title><!-- DNT-End -->
- <indexterm>
- <primary>4168</primary>
- </indexterm>
- <para><!-- DNT-Start -->SORT<!-- DNT-End --> supplied to <!-- DNT-Start -->COSORT<!-- DNT-End --> needs to be executed at the same time</para>
- </sect1>
- <sect1 id="_4169">
- <!-- DNT-Start --><title>4169</title><!-- DNT-End -->
- <indexterm>
- <primary>4169</primary>
- </indexterm>
- <para><!-- DNT-Start -->WAIT<!-- DNT-End --> not yet supported</para>
- </sect1>
- <sect1 id="_4170">
- <!-- DNT-Start --><title>4170</title><!-- DNT-End -->
- <indexterm>
- <primary>4170</primary>
- </indexterm>
- <para>Index has fields %s in scope</para>
- </sect1>
- <sect1 id="_4171">
- <!-- DNT-Start --><title>4171</title><!-- DNT-End -->
- <indexterm>
- <primary>4171</primary>
- </indexterm>
- <para>Global dataset has fields %s in scope</para>
- </sect1>
- <sect1 id="_4172">
- <!-- DNT-Start --><title>4172</title><!-- DNT-End -->
- <indexterm>
- <primary>4172</primary>
- </indexterm>
- <para>Create resource library %s failed</para>
- </sect1>
- <sect1 id="_4173">
- <!-- DNT-Start --><title>4173</title><!-- DNT-End -->
- <indexterm>
- <primary>4173</primary>
- </indexterm>
- <para>Records not assignment compatible</para>
- </sect1>
- <sect1 id="_4174">
- <!-- DNT-Start --><title>4174</title><!-- DNT-End -->
- <indexterm>
- <primary>4174</primary>
- </indexterm>
- <para>Missing end of placeholder</para>
- </sect1>
- <sect1 id="_4175">
- <!-- DNT-Start --><title>4175</title><!-- DNT-End -->
- <indexterm>
- <primary>4175</primary>
- </indexterm>
- <para>%s can only be globally or inside <!-- DNT-Start -->ONFAIL<!-- DNT-End --> or other failure
- processing</para>
- </sect1>
- <sect1 id="_4176">
- <!-- DNT-Start --><title>4176</title><!-- DNT-End -->
- <indexterm>
- <primary>4176</primary>
- </indexterm>
- <para>Side-effect%s is not currently supported as a context-dependent
- dependency</para>
- </sect1>
- <sect1 id="_4177">
- <!-- DNT-Start --><title>4177</title><!-- DNT-End -->
- <indexterm>
- <primary>4177</primary>
- </indexterm>
- <para>Cannot deduce <!-- DNT-Start -->MERGE<!-- DNT-End --> transform for global <!-- DNT-Start -->AGGREGATE<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_4178">
- <!-- DNT-Start --><title>4178</title><!-- DNT-End -->
- <indexterm>
- <primary>4178</primary>
- </indexterm>
- <para><!-- DNT-Start -->AGGREGATE<!-- DNT-End --> does not include grouping field '%s' in the result
- record</para>
- </sect1>
- <sect1 id="_4179">
- <!-- DNT-Start --><title>4179</title><!-- DNT-End -->
- <indexterm>
- <primary>4179</primary>
- </indexterm>
- <para>The calculated maximum row size has overflowed 32bits</para>
- </sect1>
- <sect1 id="_4180">
- <!-- DNT-Start --><title>4180</title><!-- DNT-End -->
- <indexterm>
- <primary>4180</primary>
- </indexterm>
- <para>%s: %s cannot be dependent on the dataset</para>
- </sect1>
- <sect1 id="_4181">
- <!-- DNT-Start --><title>4181</title><!-- DNT-End -->
- <indexterm>
- <primary>4181</primary>
- </indexterm>
- <para>Cannot determine the minimum size of the expression</para>
- </sect1>
- <sect1 id="_4182">
- <!-- DNT-Start --><title>4182</title><!-- DNT-End -->
- <indexterm>
- <primary>4182</primary>
- </indexterm>
- <para>%s used outside of a <!-- DNT-Start -->TABLE<!-- DNT-End --> aggregation</para>
- </sect1>
- <sect1 id="_4183">
- <!-- DNT-Start --><title>4183</title><!-- DNT-End -->
- <indexterm>
- <primary>4183</primary>
- </indexterm>
- <para>%s resource added after manifest was finalized</para>
- </sect1>
- <sect1 id="_4184">
- <!-- DNT-Start --><title>4184</title><!-- DNT-End -->
- <indexterm>
- <primary>4184</primary>
- </indexterm>
- <para><!-- DNT-Start -->SKIP<!-- DNT-End --> inside a <!-- DNT-Start -->ROW<!-- DNT-End -->(<transform>) not supported. It is only
- allowed in a <!-- DNT-Start -->DATASET<!-- DNT-End --> transform.</para>
- </sect1>
- <sect1 id="_4500">
- <!-- DNT-Start --><title>4500</title><!-- DNT-End -->
- <indexterm>
- <primary>4500</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4501">
- <!-- DNT-Start --><title>4501</title><!-- DNT-End -->
- <indexterm>
- <primary>4501</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4502">
- <!-- DNT-Start --><title>4502</title><!-- DNT-End -->
- <indexterm>
- <primary>4502</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4503">
- <!-- DNT-Start --><title>4503</title><!-- DNT-End -->
- <indexterm>
- <primary>4503</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4504">
- <!-- DNT-Start --><title>4504</title><!-- DNT-End -->
- <indexterm>
- <primary>4504</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4505">
- <!-- DNT-Start --><title>4505</title><!-- DNT-End -->
- <indexterm>
- <primary>4505</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4506">
- <!-- DNT-Start --><title>4506</title><!-- DNT-End -->
- <indexterm>
- <primary>4506</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4507">
- <!-- DNT-Start --><title>4507</title><!-- DNT-End -->
- <indexterm>
- <primary>4507</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4508">
- <!-- DNT-Start --><title>4508</title><!-- DNT-End -->
- <indexterm>
- <primary>4508</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4509">
- <!-- DNT-Start --><title>4509</title><!-- DNT-End -->
- <indexterm>
- <primary>4509</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4510">
- <!-- DNT-Start --><title>4510</title><!-- DNT-End -->
- <indexterm>
- <primary>4510</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4512">
- <!-- DNT-Start --><title>4512</title><!-- DNT-End -->
- <indexterm>
- <primary>4512</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4513">
- <!-- DNT-Start --><title>4513</title><!-- DNT-End -->
- <indexterm>
- <primary>4513</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4515">
- <!-- DNT-Start --><title>4515</title><!-- DNT-End -->
- <indexterm>
- <primary>4515</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4516">
- <!-- DNT-Start --><title>4516</title><!-- DNT-End -->
- <indexterm>
- <primary>4516</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4517">
- <!-- DNT-Start --><title>4517</title><!-- DNT-End -->
- <indexterm>
- <primary>4517</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4518">
- <!-- DNT-Start --><title>4518</title><!-- DNT-End -->
- <indexterm>
- <primary>4518</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4519">
- <!-- DNT-Start --><title>4519</title><!-- DNT-End -->
- <indexterm>
- <primary>4519</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4520">
- <!-- DNT-Start --><title>4520</title><!-- DNT-End -->
- <indexterm>
- <primary>4520</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4521">
- <!-- DNT-Start --><title>4521</title><!-- DNT-End -->
- <indexterm>
- <primary>4521</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4522">
- <!-- DNT-Start --><title>4522</title><!-- DNT-End -->
- <indexterm>
- <primary>4522</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4523">
- <!-- DNT-Start --><title>4523</title><!-- DNT-End -->
- <indexterm>
- <primary>4523</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4524">
- <!-- DNT-Start --><title>4524</title><!-- DNT-End -->
- <indexterm>
- <primary>4524</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4525">
- <!-- DNT-Start --><title>4525</title><!-- DNT-End -->
- <indexterm>
- <primary>4525</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4526">
- <!-- DNT-Start --><title>4526</title><!-- DNT-End -->
- <indexterm>
- <primary>4526</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4527">
- <!-- DNT-Start --><title>4527</title><!-- DNT-End -->
- <indexterm>
- <primary>4527</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4528">
- <!-- DNT-Start --><title>4528</title><!-- DNT-End -->
- <indexterm>
- <primary>4528</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4529">
- <!-- DNT-Start --><title>4529</title><!-- DNT-End -->
- <indexterm>
- <primary>4529</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4530">
- <!-- DNT-Start --><title>4530</title><!-- DNT-End -->
- <indexterm>
- <primary>4530</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4531">
- <!-- DNT-Start --><title>4531</title><!-- DNT-End -->
- <indexterm>
- <primary>4531</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4532">
- <!-- DNT-Start --><title>4532</title><!-- DNT-End -->
- <indexterm>
- <primary>4532</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4533">
- <!-- DNT-Start --><title>4533</title><!-- DNT-End -->
- <indexterm>
- <primary>4533</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4534">
- <!-- DNT-Start --><title>4534</title><!-- DNT-End -->
- <indexterm>
- <primary>4534</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4535">
- <!-- DNT-Start --><title>4535</title><!-- DNT-End -->
- <indexterm>
- <primary>4535</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4536">
- <!-- DNT-Start --><title>4536</title><!-- DNT-End -->
- <indexterm>
- <primary>4536</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4537">
- <!-- DNT-Start --><title>4537</title><!-- DNT-End -->
- <indexterm>
- <primary>4537</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4538">
- <!-- DNT-Start --><title>4538</title><!-- DNT-End -->
- <indexterm>
- <primary>4538</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4539">
- <!-- DNT-Start --><title>4539</title><!-- DNT-End -->
- <indexterm>
- <primary>4539</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4540">
- <!-- DNT-Start --><title>4540</title><!-- DNT-End -->
- <indexterm>
- <primary>4540</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4601">
- <!-- DNT-Start --><title>4601</title><!-- DNT-End -->
- <indexterm>
- <primary>4601</primary>
- </indexterm>
- <para>Rank/Ranked not supported on variable length strings</para>
- </sect1>
- <sect1 id="_4604">
- <!-- DNT-Start --><title>4604</title><!-- DNT-End -->
- <indexterm>
- <primary>4604</primary>
- </indexterm>
- <para><!-- DNT-Start -->DISTRIBUTION<!-- DNT-End -->() only supported at the outer level</para>
- </sect1>
- <sect1 id="_4606">
- <!-- DNT-Start --><title>4606</title><!-- DNT-End -->
- <indexterm>
- <primary>4606</primary>
- </indexterm>
- <para>Physical table join condition too complicated</para>
- </sect1>
- <sect1 id="_4609">
- <!-- DNT-Start --><title>4609</title><!-- DNT-End -->
- <indexterm>
- <primary>4609</primary>
- </indexterm>
- <para>Arbitrary repeats not yet supported!</para>
- </sect1>
- <sect1 id="_4610">
- <!-- DNT-Start --><title>4610</title><!-- DNT-End -->
- <indexterm>
- <primary>4610</primary>
- </indexterm>
- <para>Tomita doesn't yet support unicode</para>
- </sect1>
- <sect1 id="_4611">
- <!-- DNT-Start --><title>4611</title><!-- DNT-End -->
- <indexterm>
- <primary>4611</primary>
- </indexterm>
- <para>Patterns are too complicated for Tomita to handle at the moment
- [%s]</para>
- </sect1>
- <sect1 id="_4613">
- <!-- DNT-Start --><title>4613</title><!-- DNT-End -->
- <indexterm>
- <primary>4613</primary>
- </indexterm>
- <para>Cannot currently assign to <!-- DNT-Start -->DATASET<!-- DNT-End -->(<!-- DNT-Start -->SIZEOF<!-- DNT-End -->(x)) fields</para>
- </sect1>
- <sect1 id="_4614">
- <!-- DNT-Start --><title>4614</title><!-- DNT-End -->
- <indexterm>
- <primary>4614</primary>
- </indexterm>
- <para>Can only normalize simple child datasets - use other form if more
- complicated</para>
- </sect1>
- <sect1 id="_4615">
- <!-- DNT-Start --><title>4615</title><!-- DNT-End -->
- <indexterm>
- <primary>4615</primary>
- </indexterm>
- <para><!-- DNT-Start -->ROXIE<!-- DNT-End --> doesn't yet support local activities</para>
- </sect1>
- <sect1 id="_4616">
- <!-- DNT-Start --><title>4616</title><!-- DNT-End -->
- <indexterm>
- <primary>4616</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4617">
- <!-- DNT-Start --><title>4617</title><!-- DNT-End -->
- <indexterm>
- <primary>4617</primary>
- </indexterm>
- <para><!-- DNT-Start -->STEPPED<!-- DNT-End --> is not currently supported by thor</para>
- </sect1>
- <sect1 id="Unknown_02">
- <!-- DNT-Start --><title>Unknown_02</title><!-- DNT-End -->
- <indexterm>
- <primary>Unknown_02</primary>
- </indexterm>
- <para>string[n..*] syntax is only valid in a join condition</para>
- </sect1>
- <sect1 id="Unknown_03">
- <!-- DNT-Start --><title>Unknown_03</title><!-- DNT-End -->
- <indexterm>
- <primary>Unknown_03</primary>
- </indexterm>
- <para>Keyed distribute doesn' support join condition of the form
- field[n..*]</para>
- </sect1>
- <sect1 id="_4618">
- <!-- DNT-Start --><title>4618</title><!-- DNT-End -->
- <indexterm>
- <primary>4618</primary>
- </indexterm>
- <para><!-- DNT-Start -->ONCE<!-- DNT-End --> workflow items cannot be dependent on other workflow items
- (including <!-- DNT-Start -->ONCE<!-- DNT-End -->)</para>
- </sect1>
- <sect1 id="_4619">
- <!-- DNT-Start --><title>4619</title><!-- DNT-End -->
- <indexterm>
- <primary>4619</primary>
- </indexterm>
- <para>Thor currently only supports the local version of <!-- DNT-Start -->COMBINE<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_4799">
- <!-- DNT-Start --><title>4799</title><!-- DNT-End -->
- <indexterm>
- <primary>4799</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4800">
- <!-- DNT-Start --><title>4800</title><!-- DNT-End -->
- <indexterm>
- <primary>4800</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Clear not supported on <!-- DNT-Start -->LOCAL<!-- DNT-End --> datasets</para>
- </sect1>
- <sect1 id="_4801">
- <!-- DNT-Start --><title>4801</title><!-- DNT-End -->
- <indexterm>
- <primary>4801</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Local datasets cannot be created</para>
- </sect1>
- <sect1 id="_4802">
- <!-- DNT-Start --><title>4802</title><!-- DNT-End -->
- <indexterm>
- <primary>4802</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Attempt to access dataset outside of Thor</para>
- </sect1>
- <sect1 id="_4803">
- <!-- DNT-Start --><title>4803</title><!-- DNT-End -->
- <indexterm>
- <primary>4803</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Not all Transform targets were assigned to [%s]</para>
- </sect1>
- <sect1 id="_4804">
- <!-- DNT-Start --><title>4804</title><!-- DNT-End -->
- <indexterm>
- <primary>4804</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Cannot access stored variable %s in this context</para>
- </sect1>
- <sect1 id="_4805">
- <!-- DNT-Start --><title>4805</title><!-- DNT-End -->
- <indexterm>
- <primary>4805</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Evaluate table is not in scope</para>
- </sect1>
- <sect1 id="_4806">
- <!-- DNT-Start --><title>4806</title><!-- DNT-End -->
- <indexterm>
- <primary>4806</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Internal function %s not found</para>
- </sect1>
- <sect1 id="_4807">
- <!-- DNT-Start --><title>4807</title><!-- DNT-End -->
- <indexterm>
- <primary>4807</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: <!-- DNT-Start -->OUTPUT<!-- DNT-End -->() on a scalar not processed correctly</para>
- </sect1>
- <sect1 id="_4808">
- <!-- DNT-Start --><title>4808</title><!-- DNT-End -->
- <indexterm>
- <primary>4808</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Expression too complex - cannot create a <!-- DNT-Start -->DFA<!-- DNT-End --></para>
- </sect1>
- <sect1 id="_4809">
- <!-- DNT-Start --><title>4809</title><!-- DNT-End -->
- <indexterm>
- <primary>4809</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Unsupported inline query</para>
- </sect1>
- <sect1 id="_4813">
- <!-- DNT-Start --><title>4813</title><!-- DNT-End -->
- <indexterm>
- <primary>4813</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Could not resolve file position</para>
- </sect1>
- <sect1 id="_4814">
- <!-- DNT-Start --><title>4814</title><!-- DNT-End -->
- <indexterm>
- <primary>4814</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Cannot perform type cast from %s to %s</para>
- </sect1>
- <sect1 id="_4815">
- <!-- DNT-Start --><title>4815</title><!-- DNT-End -->
- <indexterm>
- <primary>4815</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Could not find context to evaluate match expression</para>
- </sect1>
- <sect1 id="_4816">
- <!-- DNT-Start --><title>4816</title><!-- DNT-End -->
- <indexterm>
- <primary>4816</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Blob translation context not found</para>
- </sect1>
- <sect1 id="_4817">
- <!-- DNT-Start --><title>4817</title><!-- DNT-End -->
- <indexterm>
- <primary>4817</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: <!-- DNT-Start -->ROWS<!-- DNT-End --> can not be evaluated in this context</para>
- </sect1>
- <sect1 id="_4818">
- <!-- DNT-Start --><title>4818</title><!-- DNT-End -->
- <indexterm>
- <primary>4818</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Expected a parent/container context. Likely to be caused
- by executing something invalid inside a <!-- DNT-Start -->NOTHOR<!-- DNT-End -->.</para>
- </sect1>
- <sect1 id="_4820">
- <!-- DNT-Start --><title>4820</title><!-- DNT-End -->
- <indexterm>
- <primary>4820</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Could not resolve <!-- DNT-Start -->COUNTER<!-- DNT-End --> for inline count project</para>
- </sect1>
- <sect1 id="_4821">
- <!-- DNT-Start --><title>4821</title><!-- DNT-End -->
- <indexterm>
- <primary>4821</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Graph context not found</para>
- </sect1>
- <sect1 id="_4822">
- <!-- DNT-Start --><title>4822</title><!-- DNT-End -->
- <indexterm>
- <primary>4822</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Accessing unserialized stored variable %s in slave
- context</para>
- </sect1>
- <sect1 id="_4823">
- <!-- DNT-Start --><title>4823</title><!-- DNT-End -->
- <indexterm>
- <primary>4823</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Library '%s' shouldn't access work unit temporary
- '%s'</para>
- </sect1>
- <sect1 id="_4824">
- <!-- DNT-Start --><title>4824</title><!-- DNT-End -->
- <indexterm>
- <primary>4824</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Library '%s' shouldn't create work unit temporary
- '%s'</para>
- </sect1>
- <sect1 id="_4825">
- <!-- DNT-Start --><title>4825</title><!-- DNT-End -->
- <indexterm>
- <primary>4825</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Attempting to access graph output directly from a child
- query</para>
- </sect1>
- <sect1 id="_4826">
- <!-- DNT-Start --><title>4826</title><!-- DNT-End -->
- <indexterm>
- <primary>4826</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Inconsistent activity localisation (child %d:graph
- %d)</para>
- </sect1>
- <sect1 id="_4827">
- <!-- DNT-Start --><title>4827</title><!-- DNT-End -->
- <indexterm>
- <primary>4827</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: No active parent extract - activity has incorrect
- localisation?</para>
- </sect1>
- <sect1 id="_4828">
- <!-- DNT-Start --><title>4828</title><!-- DNT-End -->
- <indexterm>
- <primary>4828</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4829">
- <!-- DNT-Start --><title>4829</title><!-- DNT-End -->
- <indexterm>
- <primary>4829</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Inputs to nary operation have inconsistent record
- structures</para>
- </sect1>
- <sect1 id="_4830">
- <!-- DNT-Start --><title>4830</title><!-- DNT-End -->
- <indexterm>
- <primary>4830</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Linked child rows required without legal context
- available</para>
- </sect1>
- <sect1 id="_4833">
- <!-- DNT-Start --><title>4833</title><!-- DNT-End -->
- <indexterm>
- <primary>4833</primary>
- </indexterm>
- <para></para>
- </sect1>
- <sect1 id="_4834">
- <!-- DNT-Start --><title>4834</title><!-- DNT-End -->
- <indexterm>
- <primary>4834</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Cannot generated serialized compare function</para>
- </sect1>
- <sect1 id="_4835">
- <!-- DNT-Start --><title>4835</title><!-- DNT-End -->
- <indexterm>
- <primary>4835</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Attempt to read spill file %s before it is written</para>
- </sect1>
- <sect1 id="_4836">
- <!-- DNT-Start --><title>4836</title><!-- DNT-End -->
- <indexterm>
- <primary>4836</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Dependency within a graph incorrectly generated for hThor
- (%u)</para>
- </sect1>
- <sect1 id="_4837">
- <!-- DNT-Start --><title>4837</title><!-- DNT-End -->
- <indexterm>
- <primary>4837</primary>
- </indexterm>
- <para><!-- DNT-Start -->INTERNAL<!-- DNT-End -->: Unrecognised compound assign %s</para>
- </sect1>
- </chapter>
- </book>
|