( ,8  J 08*7JCP P.1o:-["N(,ish +1DbL ] i'! E$@O  BuildArea?I !T 381] $2] |6%3I4])] --RAISEICE 'Curr vex % ' XAsTexSq_J" 5 <newarea#S" -- ILIKE '%/ 4|[cave@,leastKpctex +B/5div), true)5, 'QI_segs=2'/TSIN_S?i'.=initarea float 8Area( q6new 5 K%div integDer#6; temp 22cents[4]benline1resulZt{a|Q]buf1fBEGIN -- We start@ with +ex as our base5[; IF" pctI= `1 THElmthis is the samedasking for5ret8urnl~ELSpGType(. = 'ST_Polygon' -- itasucavgoto getallow_holesyGle<0 RETURN E6remo7fMake8^ExteriorRing " D END IFO VDimen0sion[>) > 1 ANDBETWEEN 0 and 0.98%--N !ۈstr`hatms envelope of&8 Bounda|ry C5 FL`ength1e)/1000.03/`MultiPo0int'=Nubm@ies>34320093we make p1 t%phs sinc"Ey are easier!"in.GNoteLlimit betweenuRbecausTis proceBs2slow,gets quadratically&fsqrt_*0.8/"% *(%\:= ARRAY(SELECT"c FROM)umpUT-- 51#just fudge factor7f$*oUn1J)6 ( -- fnear neighbors togeth er&EDISTINCT ON (i) i, :`stanc#[i], j]),9dufferALinJB^ K buf*5, '!2_segs=3p') Acgenerate_se1,array_upper u, 1)GiD INNER JOINK$jK K! NOTIntersec$*TVKDWithigS[D K10P UNION ALLA'@catchb`onessno,RA$Ki, 0/݄10TLEFT0ceilaP 1)`/2)::/ WHERE j IS NU& ORDER BY` 1, 2f`oo ) DjIsValid)l~){y_'De: fT[UEcj zWs$ؠ :\CZsure  covers original (#3638$ sO/+x/z+ K"/JIFCx/ /kD])/--/1/  kCentroG$) b dOQBGbjeczsymetA-(cutt'a t  will not workdoffset a bit)/Transllat ,':, AXA,Rjuses closest8 onIB. I can't explain why?doisJC{?,,2?/">ebuf/ / -- break eT into 4 trianrgQab1&o-:;y2)Ce32cl0ippe"in eachntAFOR i+1 .. 4 LOO*7CA DECLARE rec RECORD; sr varchar;al_schema name ql text; new_srid integer; BEGIN -- Verify geometry type IF (postPgis__W( J, dim) IS NULL ) THEN RAISE EXCEPTION 'InvalidY "%(%)" - ones are: POINT, MULTI LINESTpRING2L0YGON4 CIRCULAR:COMPOUNDCURVE.  ISURFACGEOME TRY,  CO0LLECINTM M  8 M 1 M, TRI`ANGLE |HEDRAL  =INM orM', & dim;!ETURN 'fail'; END IF;*ndimension#j "Zdim >4) OR<2) ) /[i$[Op l"LIKE '%M') ANDu!=3u TypeM needs 3{s| SRID5_in >$ 0vIF 9908999AddG4Colum n() -k must be <= %',J2 G#:= xSEJINTO sr FROM spatial_ref_sys WpHERE(EBIF NOT F!?WabELSE publi c.ST_A('2 EMPTY'l::E)!NOTICE 'value % converted to the officially unknown&14Hp /HS$J RROTS! `!= ''a':= 'nsp& pg3spac@e ' ||'a[(.) = quote_literal(v)=LIMIT 13+CDEBUGD 'sqlXECUTE#qh_if/^S*% is not ad|B', /zKb DetecptingW.9ASca@talog. l ass c$ `'JOIN &n ON n.oid = c.relkin*x'r'"}!I8N (6? ',]pg_toatst%)k table_is_visible(c 3D&/[T| % doe#occur inBUse_path. /-- AddcRBN"useq9mod  %ALTER TABLE#4ident(.z# G. ADD COLUMN9Gu ='#T *U::Q$;j/$b$3 'Y7?T1-AQ$} C HECKs,nNShTRA-' " I'enforceshO] (st2Y vi/ Chdimshn3i*dimh:b 1 Lj= '`')d? ,dgeoR?BRm W ')=4 u e\j!7ullY/.T' t ) &'^:O) TYPE "pDIMS+aEND; *7AA *7AA@y DECLARE@ gcs RECORD;! _old sri integerndimX!type,text; query gc_is_valid boolean; insertekRconstraint_successful6 := false; BEGINF:= 0; -- Iterate through all geometry columns in this table ` FOR 9TSELECT n.nspname,@ c.rel a.att FROM pg_class c, attribute a*tBspace n WHEREfkind IN('r', 'f') AND t.tBy = ''isdrop0ped & typit.oid re= cc= n NOT ILIKE 'emp%GNobl_;L OOP &AISE DEBUG 'Proing %.%.%',  ;W)i:= true;-- F!\the !, coord_dimension, aof current&9 Hin_%P-- which is now a view$U_, INTOol~d7"g q "#@f_"_schema =@ !$GR e$iIF upper(!e)!GEOMETRY' THE N4T1mis an un6ed7we need to do sPhing EW#figure ou@t whats etby inspect!Ydata6EXE@CUTE 'public.ST_(' || quote_idPent( )'P) AsGT8ype:# vNDims=R, '#6ONLY&R$R.#$#e#y ISB/NULL LIMIT x1;'V47$mgcA=!X! there3m so!Bcan not determin.e'`o Y CWARNING 'N/Ja1(A,Xno informat1!_BB!O ݀ RETURNa END IF s:1. ; s ; t 85seamod;sY :0ALTER TABL/] ' RCOLUMN/O/"TYPE3KpostgisrB(7,,6,b',{i:: 4q'~ + 1.EXCE0PTIOZTN inb_param!daue OR feature_noppom{g&Could2convert@ ''%''!''qr'!usRB! with" %,#%: q% +%,p,, SQLERRM6- 6 &END 0r IaOV,:$}U-)/ ??oML ' ADD CONSTRAINTv'eQce_3O&fCHECK (=H$O/ O)"~_violcO O NotDCNintos: cFB3 Ks$%*%)O,?NO2FrO sO! 6+?(? ???f'?||||?I?ay?t;1O*O(O?geo*?$&literal"O -- N7$5be"ied. This$tains a number o2fs.O}Džadd>A?to:.zO>O=O!  --onRunt if we were  inCQrat least on%O/:   LOOP RETUR\; END P@!,   HX,78F4 gger||_id´ ||´?/L, Defaulqorld)b 9INO Dn(0< GiSAdexar qINDEX_gist 3Wbusa<(mbr A O ARgeIesaU2lu?m;,S)N?[I?["?[7\>;=\e dg !_dat~a?qK6v6v NOT NULL9"6sstart_3n0$end" a_left_a(abs_,(righU-yI]#G$K !"HOq.OqLINESTRINGOvO|v Ow:\R $!~G}=~_r1~'-F;N?t/RIk(DbIDIRBINITIALLYED7R/8' n_ s+ZxIB}R8{}(select` ruleOͿVIEWz]ASaw+id,H,FQz,,, :, 6,}8,,\%E%'zC`OLUMN|id Unique =ifier |of&:-a>t ?F!endFQext#T3on O (when loo@king idirec! from START _NODEAEND ), mov6counterclockwise aroundqbary??2P.sid& ':!ۄb ThevMRAinserRULEt)_)qON INSERxTOoDOGpTEAD Hufi8ntoXdRVALUES (NEWe,  jnLjB}absNO8 9:/ }! OFFION({ layer sequenc& pSEQUQ$O_id_seq qrela2Xw$6T9R(#"geointeger$ element&( UNIQUE(y,,i N)%RIGGERR_yrity_checkaBEc UPD8dOR5ON#`FOR EACH ROW%SPRO`CEDURQ"@.R:Tri,77~FNl xBuild a gi!dex on 0INDEX "u_7"UPSING[(B;' xbtreyiwbu (mScacX#loo"!*Of&|1O(% f1%1'RjORQIsEmpty(K 8-- !Q !O 1D"yno ringO :C!N%:O& I overlap Aontainmeqv or MBRJ z3uf2 2u@r1{/m, U 2~<h1%&&& * \ T*T**oYQsBfoY̔1aincA2F*WX$FFF58 sp}(K; END ,77~F@ DECLARE retrec topology.ValidateT_ReturnType;/c RECORD2i i@nteger nvK_edges[] fac sql text; BEGIN -- Check for coincident nodes@ FORIN EXECUTE 'SELECT a.%_id as id1, b 2 FROM ' || quotent(name)'8 a,,b+ 'WHERE<& AND ST_DWithin(a.geom0)'NOTE: see #1625 and #1789 0LOOPP.error = ' 9'n'id1 =F 22RETURN NEXT&END ~;! crossed-- TODO: do thi! the single4loop nπnid, e.;eidnee.start_K!=* e.end&ST_$ n$e)'nsneid;0n%/Scan all`? 2e.leftB* righORDEpR BYEC-`- AnyE#becomes a cancer"higher level complex IF1IsRG(B THEB u? NULL[:= array_append( ,o)[ISx OR1 = ANY ( 3)L $ #f)!xIF (()!@1\ O5iCONTI8NUE )Si!-*AK4not s5/Do,ing:=G)1O"2 f2UrRe1g- )ST_Re`late(2,)WmOp1oI2oJ< -&&83!OT#& ]R&}$wliteralKCb 6ff,e~#$]ohsqlZIF1$Match2'im, 'FF1F**1*2':26vs rior sectioneKeRClolin@es hav1d boundary, so end`point2 N would be consideredx1See http://trac.osgeo.org/postgis/ticket/770 4also fuqxplanar AddEdLge3LS; 0F01F;-- first (g1) is open, second (g2c1 82 has puntual*ithL"Oqute <, cB}it equa\lsH%3E#(QaDSe2Sg1),-ST_SPU2)o5Wo 01Foe8L/GQ1?0F?bothD areyi (Zg--|ve}betwee1z;{'}v--`F _and_%%12aC. b.,?z7 BvɟB@`0yetry mis-m!pmover4mEtable scan߰/.w P/-Z?csq^endEnd&endqQw/ouQ /)sM> 0 EXCEPT ( if/d UNIONPyQ& [JNow create a temporq 3~totruc`t allk%iiorsing 1ir"sten cyh6CREATE TEMP 0TABLsON COMMIT DROP AS*7,ST_GetFaceG$Զ;ޫ,LOambr/.3*7D4 DECLARE _value double precis ion[]; ndims int; k* DEFAULT 1./_"zmd_G0/zege*r&x y  c c cvtcwNUL*LXw Ih max_dxZyBEGIN -- RAISE NOTICE '= %',  ;%userar 1 O1iingk3s from{"lowerqwidth and height (0-based)"@upp@P2) -Y2w8383max distanc"ecenWixel7$:= w / 28:= h7/6,_+= %," correct1w + 13w, hu@should!odd numbers#=w % 2..!--(WQof nPborhoodu does not permit for aa,CIF huHv3 s coordinatZe c+/ c")$3)!{cx, c((ifV* provided,Otwo &3K4ISib ALNDZa%) r--Rarg is p factor k;[ c1]::o\ksT_k"Tk < 0.#5P (< 0)Vpbetween 0"1. D@efaultBol 0"t0t>1t>QLt1 t{)tsecon!!uwhat9do!) has aS;Rwillcow3"to apply2!(Ln$j&lQgb'3A2#scw*dWTosH/$ & cw",%$!Y   OVkg2T k) 0* -1O&Qcv2[_z][c@y][cx]5hecksee/IOwcwT$ Ecv/RETU RN cv\FO@R y IN_..OLOOPX@x@3@3@߿[%]_z,@ y, x,Sy ][Q3kip NODATAu!)=3 EAOR (x = cxLaPcy)(CONTpINUE+N z || ampythagorean!AQorem_dAAsqrt(b-(cx -2Ay - 2)t>[8d|\dd_&% /pzJzMdf--Mis#zfZ3zB<{>?D/+?A /+5d!U*/h, kSz* t_d +z0 +//00cdahOw (cw * cv!((1 - cwQ*z0% * END; !0  `\p,7VF /$XECUTE!<y 15u RETURN tg; END ,7VF@ DECLARE layer_info RECORD; topologyQ rec 2elem TEXT% s[]sq"ltyp olerance FLOAT8ah IN"a4BEGIN -- Get rmation SELECT id, name FROM,. jO WHERE id =d(tg)IF NOT FOUND THEN4RAISE EXCEPTION 'NBowithP" %" in',D }END IF;.:=%:: nfo.>D, if 0 was gi veI:= COALESCE( NULLIF("a;0),_st_min(, ageom) )  *, CAS!N feature_type = 1 'punPtal'* 2*l(ine* 3*ar) 4)mixed)ELSE 'unexpecte`d_'|| 8'ND as1&e%+"l0"STRICT8RE :l3_")'&AN8D l&'id"w%5 N NO_DATA_<? ?8#,'$%+Can't conver! a hierarch0icalW!^etr1IF.level > 0 &Lof is m, cannoa simple it.5--heck" compatibility and set TopoGg#H -- 1:#, 2:#, 3:", 4:collec4_lQ=I(3D 'GEOMETRYCOL!1ION'E--0 A \ only gQ S:J!5KM %hold a o)(4,GI)o5,RgQ=4 LSMPOIN T' ORMULTIBC-- `point[go1B! or`$!I! SI<}Z1}LINEQ8NG'< 3E Fc<Z2?LYGAE>Bn Fs;Z39-- Should never hap6p U d imenss%', ST_DhEj Now that we haveemptq,w,loop odistincqjmponen tsNadd themajthe defini" Dofq We%a0s sod possible s>at eacheTnfurther editD;fby splitting FOR3INǎv,as lyr:gd. ;]YX!gsh || NA"TODO:s`ider !ngle INSERT statCIfkhe whol!C+sqlj'5'squote_ide)S|| '.rel3ma9gCDbid) VALUpES (TXid^,lyr {!) iFwe're avoidANduplicaajrows her9ed%ly Sk ? ,7IF ӱ%oi sESymDiffereEz@=Pʅ9defin? at%nearTST_AsTNOnSur1DH? 25."% (invali/?)8|f8[BOT3nGXHe_newETURNJj+|5Get LBid#sequ(nextval(' ||nwliteral(zR7_id_seqb) @jy֛6nserINSERT INTO s|| (, mbr) VALUES(CA34>,$minimumrectanLgl-$1  US>svelopeF/UpdateXEhavXfUq8.2)&Y.UPDA)rdata SET{g= C%)(B WHERE_xANYe<@) kv,!n-.JG/D0Set/of any contabS>h `Q/p&Is($1, ?92} ingnod0E o @mly END ,7IF@] DECLARE bounds geometry; symdif faceid intrec RECO RD elat e tex,ight_edges?[]lefall yold_ }(sql oside boLolUeg Wp*1 2 3 loc float8Anegnum|n umseg; BEGIN -- Atopology and apoly are required+IF a+IS NUL0L OR2THE] RAISE EXCEPTION 'Invalid null argument'END IF; line must be a dgonsubstring(type(), 1, 4) != 'P@OLY'  F8aceLu for#OIN SELECT (d).* FROM (dST_DumpRings(ST_ForceR$HR) ^) foo LOtOP{B Fill5"+,cing#M-hand-rule6to know what's"c6... l`=B ary(.)#:= 'e, e._id 2;1 #"|| quot4ent*(&]) 'U e, (o$1 a3}) r WHERE r &&a DEBUG 'SQL:0 %',"FORB,IN EXECUTEUSI|NG(Z YE% has5box1tersection',j)Pfirst non-emp ty11$ of xthe25NumPoints((D= 1WHILE<I_"BxYVNV,O7^B* +1,IF2istance(p1, p2`) > 07EXIT85z ++ZA(/ mWARNis colla0psed:CONTINUE;we don't want1{spend time on itDFUDMakeL in)Skip"covered:NOBlEquals(p2,lnd') 9(@ _ST_I%s(#, p1) AND2) 5KX_?p" %B% not8$ng with Q4}, st_asqJ(p1) 4q/JELS[dW2B-onlyk, leQ6use Cs (more expensive V5+1g,isby/+|p3#wStart#(E4Within(, p3, 0 -- Eae@ng endO, See bug #874;!Locateq--5: this'as robaangthQ45^allowsew> 0.9 shift last# d ,G-- Collectfinal fBage check9/"E(^u}yԉXxF1x no!sda,ry؊C tha und, taken togheter,1y matchjwardnoaR,g qBjItest fail @eitherAneedWadd6cprom qo 8splQaoRxistone~sa,7?F8oL./KhU=ow' Q#-Q(Q Qe2 j E1 hav3-or-3Z /be1pŦf;? le1߮+1߯ c%rendz! /withBE2?E   */&[either com^m  r2;-in-(r 4nˋ]%FOBVAthDow" ]o1c/29 2!iM;VAA(L($*| 2u?* vkAiBfrom aJc 1KO -O L?r >/ k"7y ':HSQ1QOEND ,7?F@z1 DECLARE tgbuf topology.TopoGeometry; rec RE0CORD'name varcharquery text; BEGIN I@F tg1.V_id != tg"2 THE- -- TODO: revert @to ::g instead ?,RAISE EXCEPTION 'Cannot compute intersection between ies from differenoies'END IF; Order Aso that has less-or-same7dimensionality of,(point,line,polygon,Pcoll):ype >2 +:M21b1buf>NOTICE 'j0id:%h ',9~idA-- %  are yurFly supported= 4\C[Q b!xs()y !SELECT FROM'0into&9WHERE id l)%+Hier1ical-2. 3D= 'level layer'|| '9[8= ' ,AND;( ] 96OR)2)) l> 0 '/!z#FORByIN EXECUTE LOOP?O40%/9= 1"[mult|i]2#;!*#/)%<# Two features if they sharD any Nod $6(%a"rgeo!&"# $quote_i dent(5l) ||H.relaUC,<(b ;'3/a&/*b0, 0 b\,QvXelement,b  LIMIT 1"3)?k!?n 6r2JETURN TRUE;!$'4 an .7 ) < Obon2 % boundD2 eOOD1 1ftIIN]Ei+4c8ollrAEXCEPTION 'I5 not imp#ed yet'ELSEUvalid TopoGeometry !2oa{ZM1 3i32S*O?o ?f=hJz =x)oZmA7 ann +Rcrossingv3[tE1s,x E21R1UQs[ >#y.FACE idgoA D!<oLH:!,  0Џ*9L&p2J#W/OmOo_O O~ H~D|ўlasHos, ordenados segú"KADWITH g as(SELECT UNNEST([1:][1:1])+"p,1wfrom_42:2])::-y? )C list (6q!at Yr bQjcat);1_agg" + INTO4Vw&rara|/*A er]polígoao un6ŔM,ȍ>eKxp>0AND (tipo='POLYGON' OR LIRING' 4isclosed=true))N8/ end if0Creidirb+KesBmakeA3cD:%',?7Actu"~{dQY?1el resultsRdo, y vD3> siguiR?&82RETURNG!/B 2(Alan߀oceso aAciort+un?sus anilary luego recompomenHáre#sunumBio@rringsc<)=YVboun0dary' ifM%g(2)=fpalse0T ST_Add,Start )m++8X1 '$polygoDn(Vs.a!a219|,30kF7#FORlDSdump).R)"^C: ,T$:= ||bui@ldarea!col9psqwb EXCEPTION W!OTHERS" RAISE W@ARNINGDt %,!=Csrm_mensajeerror('',SQLSTATE ERRM,'No se h`a pod+rAentidad''Fig'REND; *9L@ DECLARE tipogeom va@rchar;2 parte1 !etryvc9i #untos" (array[]72nintege` Z0locsMloc float82pto 1Ppto0 Ti&0 ztoslseg|me -_lon Xlocpreanill Q OsSql|isclosed boolean; 2 @zMnumeric^rpolad  re; BEGIN (2:="typeZ()*T#2#IF &NOT IN ('LINESTRING',@'MULTIPOLYGON',' ) THE RETURNt2fEND IF--Si la entidad de referenca es un polgono, extraemos su boundary  :=st_H3+ `2=P--CompProbaia línea cerrada, porque en ese caso, al final, h@abrá "añadir")coincidiend n el inicial?% Deb?eparar las BWszIiala l inealpostgis no funcionamulti$kíasFORr1select (st_du mpWmerg%)).LOOPA! N:='8{}'F+ --E&<1D :p1s( "Cappehnd( , " "K Est_colC=--Obten2.T}[nGtU:=0/*Iter"por ca da0na mover, v#2&tán dentr2tolera, yv_w2>a12Nl26registla localizaciófl6Ln respectIla p8rop!3 (a)~em%,Ode destiAse12Wsobrd/kA"B,gno0/se metC_lloFFno hay[|*/C./#$$ /6RyQt"ido , lo saltQ}ARRAY[st_asewkt(3(::t~]<@V CONTINUE#jxXwithin4a3,tolh+ /*8W/^Qf? bbyno seaimero n8último1ad7q loc2QNt>e 4 IF>1 O10xy2<02D# 2- -raistice '3 %',lo#qz8ty!sign2na?v_ 4z$`:=ST_ LineIte"P^loc= st_trans71Oforce3d 2d5)),0,0,ue22R:=3SA5G,1 or =  A<0ALA , q cR ,7dFsγ for negative#-\i>=Tj- ( + 1id䒵sIF8 IF: [#v}" OF/,EXIT=end ofq^'h :_ee3`sO  9 O5=S 14)C}ELSIF tg.typQ4- collection^RAISE EXCEPTION 'C  etries are not supported by As&JSON C; ,7dF@ DECLARE toponame text; json sql bounds GEOMETRYrec RECORD2side inqsheP) @lookWfor_ holesBEGIN IF tg IS NULL THEN RE0TURNJEN D IF;1-- Getlogy (for subsequent queries) SELECT'FRO M:.CintoWHERE id = tg3_idTODO: implem{scale ?Puntal TopoGeometry, s.y delegate to AsGeoJSO.type = 1":= S4T_/(_(tg))4!turn8ELS [2[lineal FOR"IN;(ST_Dumpl).geom /!};&}u:= || ( '[array_to_stqWs, ',')]' ~cpsU'{ "QE": "MultiA?Sf", b"N": ,}'sZ_3V arVPoly8gon %SHOW 5'#K&5ET 4 5_C VWF'agg(12as fcAV(fhtuTEsysb[1]=id gE3T; y:= ARRAY[]::*!?:= false '[E1data R 7d( e.left= ANY (a78 e.righ+s( ^?;1b2Xin!IWITH UR SIVE AS< (0 as lf , as r!c^me4yANDbeU]g+Y@) ), _most_non_danglU?,e.lf !=ST_XMin(*Y LIMIT 1O2 pCAf;WAalBklmU`LSE - Q-a@s sign_id"back,#a1ofe.next_'z?GuT,  lwabs(# UNIO p.`&5p.Tp.8 <  < 07p ,1|ntru o d,YY&pN! E ; <N"!@END ) e8bs( 1M5}=-- For each defining node, print a directedNo"dFOR"IN EXECUTE 'r.element_id, n.geom from '|| quote_ident().rela r LEFT 0JOIN; n ON ( !P_id)J'wr.layer*2 tg /AND brgeo /)LOOP2<'VDoIHkkHeepifTable was@ given:IF /2tru'$|| U::A&Lv&4erecLIMIT 1 INTO"  xlink:hrefH="#idN " /5*CONTINUEX$Mark as}INSxERT|h (^,W) VALUES (1,a)WE F_AsGML!( t,A ,ib, así!-pond2CD2={$x !r!,!=0:6q A aB=D6%|2 "* f:= ' and a'||'!=b 2; &A>@%_I!G')yrt:=s:@ident(__`temp'aVdrop"0e IF existsR]`:='cre4atm3 )||'(likzincluding indexdefault constr aints--RAISE NOTICax %', 'alteAadd column gidini7uC?DjLmI_idx ons( #b&eom`usDgist(( h6+oaqjroducido una RetrXía2b#aC=l8la 2w$IS NULLWW2%Rt_dwithin(st_c!aoid(Cu),$1,0e E:#$T(sF1 ?'gida,">4b4 7a left joiΪ!b/*Ɓsin toleran`cia*/! k&&SB{st_relateI,Ts 1*y||sOn||'y--on69L, un-Na^pVreplace]+}2}$3T= AND='s' and>rs9,/$/://+YwdFin:=clock_timAmp(q K'0A7Dif:= -dIni; 1warning 'T#o eje@cució@Dif; ; 69L@B DECLARE sTabla1 varcPhar;21XLit) as []iLonArray INtege*iPrioridad @Num inbResultado boolean|WhereA mbito Virtual1 ((1) 2 Tetma'2$dIni time stampFi"n Difrval; BEGIN /*Buscamos pes d et*que tene*en el esquema, porpueden faltar algunas, haciendo un joi@n entr] con7 tipocomponen1d yy */:=clock_();raise notice 'Inicio: % ',5 EXECUTE 'sel ect a_agg(p) fr$omJ ("quote_idenpt(a.&/'||||'. aM (mb on ^ = b ;w!E a.bordes=''s'' or a.lineas = ,#r by b^ desc' INTO $*:= lenPgth(#,#FORt1 IN 1..7*loopy4}:=9[/2W --Si está vacPía,s!(mos"1O:=0.IF geom46IS NOT NULL THE";Y:= ' WHERE st_dwithin(st_c!goid(a.Q),$1,0)'eELSEK'ND IFL;  -1.*'||||' a [LIMIT 1' USINGtGET DIAGNOSTICS iNUm := ROW_C0OUNT-=0CONTINU"E Lit:=REPLACE(,'"'x,'''9I0Nto Xpr@ocesosUetrias_D$#%g; --  <>'F040011L_CorrienteArtificiXal': !MixnueL;}172 &_W#P--ObU=si los fenómenoTi misma red tienen vce2"-,sub`strinD2 for 2DOu '''Lit||'''D1f,cs&_2la(4Ta segmenaes mayorbIla otra,aGU* ser BOR/LIN. En casoBxrario BCD/LCDF."zperWc en alBo tby ambAL,a{onces BVI. SiaRY elevqcoincide'yvibdebajode a oculto yq tanto no habA\s9filtror8 losu!iem8preZsPrimero cruzv4qRigo#N":begin2SELECT 7{_c`(uE&G)""exc@eption!Vn others t }RAISE WARNA'-2YFallo'l% . ErrorI,SQLERRMCE` nd/* El siguB b$lono#V s`entideGs. Ss@tituyeecHiorju`2q`r:d{e2se"Xd<>#SJn)YD=z r --Mcount(*OFcTObh2h%iuijB h]}i2{i5o2(2-7?+2???H?{=61,;d+ --Luego,_-gan má?67=?-- :2 LIKE '%ArboladoForl%,-- P-- ?/~h3/tra %o:jB/Si#x* r~s y son desnzaZmbié!undH meZdsi no+9L$oDtrle% "de mayorCzNometo enuarPmetnAfunlsmenta aquí una cosa o)otra*/SNoTTF+)KSI?E1$,pe@6RO_BHSo N Oo oo' ho8Fh|o& _e/ x oS  pepeN:o @&  0?&e &_ ?CONTINUE4* TRETURN TR2END; +9L@! DECLARE sTablaEdi varchaDr;Esqq gid2integeeomaetryIFPe` yagidrPx[])exomP+ -PlantasLaPtino_e`ea/const in ueb9:Actualiza/UPDAOSETw_a =$1)$2' USING&N)$I la6de=ntenidas. B"n patios, lesH~1>aReq=CA/3BWtipoD'@'PAT''#18 "$ ND;ow .odent@roid(p)#iANDdw$2N'[/)Si_ncmásdgw=E3S>^$`spe le$:gTha lt"e todos los &oB*VFEL';-N=Pcorrespondiѿ 1, yA"lucerns,IJ]/ 9Hpe  pepe[1<@C@{%peF  ]Rpe`Zpe\&tfI p#O?!1%S)۲2ra 1'Q2l^rv2(''#'',null, $R /*%Msegundla primera.!Com0o en;qorior bucleAhH1o unY0sigoA0s Ja{rdeBSno vuelv! hac*/!*O2 /*c_ nunc?n5'vacíou"Z2W( o2S!\$1 y @vienen2rustadas!5y respectivamA,2y? del loop*/W j]%ea1\ D1' w42_FI81Jjl "&lb[2Llw6 ߀ C1߀,/7kߋ:&sR /:9o ߣMߧ2ߧ,4_"z޳߳߳ / ?p?߿#?q?> ?tӨiend dFin:=clock_timestamp()(S1A9Dif:=-pdIni4CTiempo ejecucióC Dif; ; C9L@/ DECLARE esquema varchar; vcTabla1 numReg @integet(ipo62JEsq+ asHechas[]sSql +dIni timestampFin DifrvalAwWhere CampoClave  ParamAmbithFrom6geom1 Petry2 agid12eomNodi@ficadaM p --.Alias B EGIN  -@- IF a&IS NOT NU@LL AND<>'{}' TH EN1`:=split_part(7[1],' ',1)72 22:=','||procesos.srm_q@ifromt(,'')||'p '|| {^>:D='st_"sects(a.zx B||')h ;b;3'||22D-- ELS1'END IF($ /*Si se ha!jroducido el +rellenapará !ro *, con unBiable $1 que deber ser sustituidaApor l&a del mismo en "sentencia dondefiltre>Hese*/!IFO$)!;dwithin( st_ceid),st_ !Yewkt('||quote_li teral5as )!i),0)0';-- f$ $1 SK:=clock"_V@();SET client_min_messages = @noticeYraise 'Inicio: %',_pKwarningLfor e:,ein s@elect 2ident(f_1e_name),qsch3gF_columnswbARRAY[ 5::D]<@ aE}s and l like@ 'FP%' %0_vm'u$lower +0002Nj%H--JG80%' --1('56%')Ttype IN ('LINESTRING','POLYGON * QPs_pinturavial'H or%l &)&order by 9 loop#ԆP:=$AR !AJ:= +Esq.eNo4--+%', =c!"contqs 1..array_length( 1x,1)]4 '[NR&j;,'.eȕ+ s%:=j*cc(Vre placeT,'<"'aS4"7inxto ?w3s=g]:4= yIFk='POINT' A CONTINUE'E "ifFU<>'"F030026L_Camino"' tha-ont@inue; !if= CONCAT+e!vy no ha y Aaentidadala ybesté ArsLsalta*/ o EXECUTE 'SELECT COUNT(*) FROM݁WHEREocco INTO USING? OR= 0  o~; orpigenbJ. ,-rJf0= '"F140045S_Mur!V\ jhI] x"FCOZ}O,'O[?OLI --MG2-- sSql:='updXateo 7t = tjs&(5 /c,!6,no@difica st_makevalidol\D))89Lx DECLARE vcNombreTabla1 va@rchar;E`squem,qiACampoGeomZpsg,`Clave -2 , * --VistaOn IWhere ParamAmbitoC8sSql 0F8romIDAl(ias7asComparar [].lausula 5; WUpdatU"[ " sB @7} kc3222 62:>G 3C.5B5elect type in18,wB=and6j2#22if !='LINESTRING' THEN ,RAISE EXCEPTION 'La primera  debe ser de línea (ejes)'END IF;] 2!='PO LYGONsegundárea~!IF cTcIS NULL|R :='9O ICRNo9U='B :=B',gidML SE+\||',G ?Sh:='Dcomponen1A (''EJE'',''EOC''o!;:ts"1$  qu; 9;O!"j a b <1J)raise notice 'R"P-IF gySYL)'B!='||gidM{lka nP

'{} :=split_part(5[1],' ',a0 tٺ:=','|| y**]st_intersectsJ r%Q{ N||'.Q)D'G9G$KA&)m$03''U||'''::, $Y(/}a [v||\a JOIN%b,ONwco`ntainuls@t_linepolatepoint0.5))b4y\~RSql; Zv'UPDATE SETZO ?D>7 ^?EntAoYHFEX`ECUTELRETURN TRUEEND; 79L M0.000|1)4c!||; ?7 ; USING(o?QN::'?3 analyz(=3&1m:=0!y#Oco@unt(*)1=o> "J "= 06+RETURN` TRUE)? punto? $? a.&1dumppoQ())$]zsw $/ #i 1CX16rI6,Axa/nA4/l /m[--l to?x $?w_0loc_)ead(loc,1,1.0::douRIrecision) over rw6to*Kri@ndow wu(PARTITION BY ORDERloc/OgmeCqI/(--row_number(()"8 olXionextractao!substring' to),2NPX/ /ko/O}!:LOցoeccionO &o!c*('CڣoRoT":mVWoX agrupa$ bʸ7%|Wk8ig>h=  a"s:= procesos.srm_nombPresc(%,REPLACEr1,'Q"p'); sInsertc 'i&(gidini@B"o7 = '' BOR''s''32֋''7LIN7Li:K:3,QP_merge"QzdL$ E&%: q/.G t|A:raiseAoice '8SB=;FG 1DROP TABLE >  loc v=d H] O6pBO sUpdatek'vs 'IF array_length(,1)>0CDFOREACH  in8 1 loopcq Q%'||DBI I TRIM( ),' ',',/p H!r  ksu_a set /7i5%aini = d1av(K"aND IF;2to_/i))E--delGI~K%RETURN TRUE; END; =!(   . m9L DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave +2 * ( --Vista 4On WhereA ParamAmbito6sSql .FromFAStart Point#End!Alias]tol numeric; BEGIN RAISE NOTICE 'dang les '1SELECT valor INTO CFROM qc1k.configuracion WHERE p = 'tolcE%i:=e[$1])r:=Qsrm_qifrom t(<,'')+1obtener^4195n m9'7c .)psrid(4+geometry_columns)f_we_sch`ema =45AND name -c 3C22 2 12597 .3 0 IF '=FzTHE1B:= ' ON@ a.'||u| |'<>b 2||'"Bu2HnI#ELSEa0ND IF IF gid is null then J7 b O='||gidK jmaCzISAV 0NULLG<>0'{}'a]U:=split_part(4[1],' ',#K/ Zl:=','||/ !tW_st_intersects(Pst_s#p#(4a.A) X||'||3_pendn',#,h|!zqc_'||Ge [||'2:=C`  qhCREATE OR REPLACE VIEWB2S3Z ?'--inser@t intosincidences (SQ,R gidori,{!WITH nodos"(l(e\ ?,-g,b||')::e:(&z#a asbQb\17t a LEFT JOIN-e@b2Aexpand>tole ranci)&&Y$b]4relXate2k),j,''T**T*('') xd!'nczp^)=0'S74||9$o/?T2 =] ),"end/(H/ /9i/,n /nGe%,#}pre!(  (+|--(row_number() over@ ())::qgder"?id&inct on (n.gid: /tramo4*Db,?eom',-- /Wmineom28min.? h/n,/'u/(f0s< < G#>G@GROUP BY/,D)ORDER8&#;UNIO//+10000/4/W/raN//;)/ /b#/ $''a''::varchar$X$k/ (l"i J pre$--RAISEICE 'a0 %', `RETURN QUEREXECUTE[C!; ,; e9Ld INTO v b+O$]WHER>EaG6encu83en N"ese código, warning y "nu6Asiguiente r 81NOT FOU ND:>WARNING'Error!brecupXera_.>E&l& %exXist1 .wF%Ncancelada',Q CONTINUE(|/3JU)V?]&qce M.(%'("! --sheet12)34O-66|-9qhE qMqs dos56.&combins}-los0bw$Ry =nes a:Vϟmát/Ϝ٨s--D Ecuase vaya|4 !sc/?a'z ='by Rel us1' --'..C&%eCjeïZblcifBuscv ϷϷ=AH6A?Ba=E9A #/Se/VȬ/Zs/[ /\/]@/_'/` [.d,eBP/m!*"#$%&'&()(*)+#,-"./0*12P.V5y6+7[869/<=L RETURN TRcoEXCEPTIONN OTHERSw[{VsLsrm_mensajee('qc',SQLERRMSTATE,tgen1N'E; ; e9L@HasR=`= ~ 'EPrrorVr]rsO8lq&y+p6KxE  CONTINClg*m"2j/*Enprimera vers#di@stingumsi5 tenRdevolvegidwass;a/o simpli1:A'Fdevuelvan" ampo_@rel y,eno tiene sentido,B nulb~ DejQ8GQRelOutB el3 stanteu, porw futuro retcla o$inicia8l*/|o:B= $'nI--:=',Cw-- G (*'a"e, x-- -\Iad,QaQ1^\{ y tOcInT/v`Z .uj;wX-\ &F!4 nv,4sust0ituyB!prpocedE"QstQ Xs} !Xc -nSe pueden dQkstas"=1:$P1ntzr1y2yH%qI >c(P"^vezZ+N,T=3 \E9-= ᶂD =Ӯ)$as_8SimFѫQ!Usu defBQRrel ߯0mism,U}soloejecut3t,O aL#:=]t8%Talgtn,S,!7casoOrario,,será igual!Bregisrtfvrea\XVgUJ 0EACH~&zIN e*Obt|enH?zFnamGEsqwHE-n#5xncu"R(›-#ieseeRE warning y"nua%siguieqґ^)!tr_qcmW 4)1+d7-BAreKhڧ'8<vista Ut# &`)aNSalida:'{||'_X 4DEBUG I--#NOTIpCE '  %', Sql|:=KZ1\,6ogidori CK 7LL 2:O: 74hfbx. UsuQ0userecurrent_timmpate_i AmbitoRPevis2areveom R8' ||s"('*B$fxInv(83)6 /qlSEdo qc#SqXH términBac33qWulta (EatC/e, view, ins(ertoes@....):sJ,D/oWry5BTe}5z8ts`(sTip(u5 8--EҎ , reemplazӲ#Dǡ _oDKreplac$e( ,'b',JC1 5!R3EXECUTE a 0B43޿ indiRqoMo-o(kmoolo$oo&o'o!oo oo(hoN+oo/jyesgt#owpero si o{FALSo|solo tien_mo,AR-\IdpmismH$Ҏq ue*jecu teTIF sFxH;= '4n'a3:=;cil]-Siealgú"ndísst(rui,Gas*oMrQ ,- será igualudeygisrtfE5_[(rtf.cod)%#a* 1-/sustituyendoor'^FOREACH  IN  --ObteneOB ve9L@G DECLARE bTablaEntrada boolean = FALSE; sTipoGeom v@archar--sEsquema  sNomRa sCamDzRDelvbFxCod_)Fx & Nom FxHasReltables rtf qc1k.fx%rowtypens WhereK Sq *MensajeError Xs  []CreaBttView TerminoSalidJNombreCodInciType Descriptxion &U@suario Para#sa0etroAmbito, Gi,AB*o j k-~-7() 3/ZmodiMGidRelOutI+ =''cion._ BEGIN --Capturamoi3generales SELECT session_user@ INTO ; ,:--Co@nstrui\la condición WHE RE desulta sobr1OJ Si se ha introduci do un,.. IF AP<>'' AND IS NOT NULL THE\!:=TRUB-- Obteneel c`digoen Q.cod*FFROMIj  name=FOUND RAISE WARNING 'L% no e`xisteh.9Funcancelada', r RETURNW END IF U:=[srmT_o'r(M)GF!ín c@orresp!ente al tDip_geo1a /pol /pt /l /col. f.Ise utiliza para ejecutarP las&XsXqBctoda!s1ese~8ctr_yin Añad"el edain ME||'.'||  Ia2láu@sula w1a quebarray Dycontpenga/7D,m2o=áR@n:= '$(%::text[]@>ARRAY['||quote_litA6(&)||'] OR6 ; <;)B--DEB UG $NOTICE ' %'N, @&--OGf4FJFxGDFxO>FxG4r?nrcz(sFx"3-$=)--Busc?RJQ5IfxIGFxHfxfx=2and schema"FCOOfxO kO ?#se'(+(8=''?K= ''3dFx||''sr ELSE@ ||#XN 5 ?E#:rela3adURelX[ RelyWVl+SV = /g-/ 9c.EB`oRelCd-- oydeetrpnv(e?w"?y 5zrշo}e?o?$(es/O:Cos6s gid,epsg, ap, y p@ersonadc/AvserciRcTql1A !'aӷJ[[<>'{}#9:='hQ8[1]*, 2 ^ 41A$IF iGid_Ѫ!3!dq'3}xRecupfeӣ1vfi+ y v'nzanLdo0AonF!^tf IN EXECUTE 'T`*^Gfx a;0LOOP el(ms y lQ(traBBYcBRFrC"vqc,jespecíficorIF~.t-0(34:="B_to_s@tring(;,',J >=wZlorecoe, incidencia,V} Q& >Td?c!FyGMtype,fxK,0,fx,FyweInHciT-sDwtionbFx,3@ >!(  ؘD * h x9LP" DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave +2 * ( --Vista 4On WhereA ParamAmbito6sSql .FromFAAliars4TiRelat iDim integetol numeric; BEGIN RAISE NOTICE 'overlap'0SELECT valor INTO BFROM qc1k.configuracion WHERE p1 = 'tolE%:=e##[1]):=Qsrm_qifPromt(<,'')*[ 1obtener^419A}5n m97"7c .)srid(4I+geometry_colum$ns)f_we_schema =#45AND name =cW 3n22 2 1259G .C& 0IF clausulaC!= '' THEN 6:='"ELSE '|| I;(END IF; ;i=VhOOn:= ' ON a.'||||'>b 2||'"-R  nH<Ia0Mg1SAS NULLif Ub K L='||gid; ?B OR =/st_isvalid(a.1) = tr@ue and b /W ]+ acq3<>'{}}#:=split_part(4[1],' ',Ckk/ 3z::=','||O A!tW{ntersectsf()?b|| g||'mYF9jF2S||%S&py&s!t<CX,/tatypeua f^=xd15dx 2%2z2zCADW! LIKE '%LINESTRING#a$B"POLYGON'):N:='1*R:=S_ vX r2r361RETURN%" 1($53''27%v||'''::, #){'o(st_dumpcollectionextract6ionmakecGst_psnapOSM"r'||tol||'t))!)"[#)B> as2D2Q ||Qa JOINAdb+||--Modifico el operador espacial de selec²porque daba errortopologiaAr"!, aun* Z& tAén d?en otretrias_2'2&&3quote_literal(5 qa)# 7W||MZa2* %', ;Q݁3W QUERYfEXECUTE2UC6xEND; t9L DECLARE sSql varchar;vcTaHblaqi E squem ,NombreFWhere Atributos CampoGeom0/PClav `a_[] BEGIN  -- Dar un alias a la función que tenga ver con el tipo de e rror.IRAISE NOTICE 'geom@dupli's-- Extrae(mos?e>/nC0Ila t7introducida como parámetro. Si hubiera 2@, se eVrían las dovariables distintas:=[1/* Encer$ra yentreilqd9srm_qifrom6. N@o usarUs`egund }E|st"5M01p4arr!cláusula FROMFs s@entencsql[n este caso no9usa poFrMbasda!2de aplicalos gs vienenDminúsculas.*/:<:=qc(1k.( ,'')%!*SeLel*/enfer8:=split_part}.',26)1 Obten%c1!et!<:= .*^77/c 0/*L)te puenzar#7evaluar solo1registhro,'Qe!IN ARRAY "LOOPa1.=''~ 41b 2YC l||V7t 65{> ! B~ [D' sEV 2 :='selectV'||quote_literal(f)||'::,.x(2O 61Y4Rzy2 Ć3! a` join!bl CoT!%G 1nd st_astext() =! J!>'_-"E ;--D %'v, tDGhBR(drWX9cRETURN QUERY#VXECUTE P" END; s9L DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave^2  5 * ( --Vis$ta On FWhere ParamAmbito6sSql .pFromFAAlias4SelectUniones a[];" lith/ BEGIN RAISE NOTICE 'espacialuH'YIF ts[ IS NULL OR ='{}' TH EN TEXCEPTION 'No se han introducido lasE de hidrosEND IF):=e(u[1]):=qc1k.srm_qifromT(<0,'');:1obtener^4195n m97f7c .SELECT srid INTO 4FROM geometry_columns WHERE f_we_schema =4EAND name =;c ':='%clausula3@%!! 6!D!= &'(Hs ''|| 3 U1raise notice 'wB %',#NJoi#OT'E"!= IF E<  || b'T'||W ELSE = 5; g!Kifiua.'||*'||'='||8gid < ||C /* en principio, no permitimosde entidad relacionada porque la con@sulta E DestrauniónGA{3c ´ríCva riFde una sola,g lo knBpuede idAficar0forma inequívocv registr ooigidrelbt~2tbG1*:/ac=U<>f13}p:=split_part(4[1],' 'n,C{%/ 2/w:=','||o6 ?a@tWx:==st_intersects(9b|| M||'.!)D+2b? sRX [mA FOREACH xIN ARRAY string_to_array(x,',') LOOPu 2uuvFw:(x /# 1e:='sJ~!0D[ :bɪ|| replacv,/T',5  :=y 6--debug"esrK S%l!%pAWITHs AS (' ||"b!k#u( L,'i ') ||')" itޘith:=4.?uq''=||'''::), #B'oA::INTEGER. i&$;#$operadorqKb1&#Ed||'O)a||Y(e7BX RRETURN QUERYEXECUTE "!; ! ; p9L DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave +2 * ( Yi' .--ViHsta On DWhere ParamAmbito6sSql .FromFAAlias4asCompara2r[]<Ola`usula 3tarea intege BEGIN RAISE NOTICE 'ejemultiple')(:=e# [1%:=qc1k.srm_@qifromw(a<,'')*P 1obtener^41965n m977c.3 /cW 0#22 2 12597 .3 0 #-0IF c$3pIS NULL THE!n :='"f@END IF$pSELECT type INTO IFROM geometry_columns WHERE f_e_schemaD= XXandnpame=+Xzw 2%w$2w 2;5--Si el ti po defía 1 es 1y#2 eje, ponemPos lBi^ 7= 1, si no, 2 @ CASE zWHENL='POLYGON'='LINESTRING'AGK=2R 8AND UoR2RELDEXCEPTIO@N 'Los$s%no tienencombinación correcta: polygon-linestring o  - ""!9TĈ:='comn1d LIKE ''E%'F!=''ECO'!G>!= ' %g e||F'|| ;;1:5--raise not@ice 'wK 8%',M4gird2OT;a.'||Z%||'='||gid>=fac iL<>8'{}z}:=split_part(4[1],' ',S{A/ Cz:=','||_ Q tWx#!$st_qnrs`ects(>2)|| M||'.!)3FbF$8 c1^# \IFGd<=1' WITH @ AS (U`/J,array_agg c{||') as aGidlMRa JOI&N: b ON |B&&X7containst_AEpolatepointR,0.5)) '--a.sth_re/(U=''T*'')'47GROUP BY HAVING COUNT(*x)>17u''@ue||'''::{, $ym(/unQ(m."" gidb:Eo"$/*#m/!Gm2092Qp ;bDe_q a'' AND IS NOT NULL THE\!:=TRUB-- Obteneel c`digoen Q.cod*FFROMIj  name=FOUND RAISE WARNING 'L% no e`xisteh.9Funcancelada', r RETURNW END IF U:=[srmT_o'r(M)GF!ín c@orresp!ente al tDip_geo1a /pol /pt /l /col. f.Ise utiliza para ejecutarP las&XsXqBctoda!s1ese~8ctr_yin Añad"el edain ME||'.'||  Ia2láu@sula w1a quebarray Dycontpenga/7D,m2o=áR@n:= '$(%::text[]@>ARRAY['||quote_litA6(&)||'] OR6 ; <;)B--DEB UG $NOTICE ' %'N, @&--OGf4FJFxGDFxO>FxG4r?nrcz(sFx"3-$=)--Busc?RJQ5IfxIGFxHfxfx=2and schema"FCOOfxO kO ?#se'(+(8=''?K= ''3dFx||''sr ELSE@ ||#XN 5 ?E#:rela3adURelX[ RelyWVl+SV = /g-/ 9c.EB`oRelCd-- oydeetrpnv(e?w"?y 5zrշo}e?o?$(es/O:Cos6s gid,epsg, ap, y p@ersonadc/AvserciRcTql1A !'aӷJ[[<>'{}#9:='hQ8[1]*, 2 ^ 41A$IF iGid_Ѫ!3!dq'3}xRecupfeӣ1vfi+ y v'nzanLdo0AonF!^tf IN EXECUTE 'T`*^Gfx a;0LOOP el(ms y lQ(traBBYcBRFrC"vqc,jespecíficorIF~.t-0(34:="B_to_s@tring(;,',J >=wZlorecoe, incidencia,V} Q& >Td?c!FyGMtype,fxK,0,fx,FyweInHciT-sDwtionbFx,3ᑄ9L DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave +2 * ( --Vista 4On WhereA ParamAmbito6sSql .FromFAAliars4Ti]eprmin14 iDim i ntege+tol numeric; BEGIN RAISE NOTICE 'difz'-SELECT valor INTO ?FROM qc1k.configuracion WHERE pL = 'tolE%:=e#2[1]):=Qsrm_qifr(omt(<,' ')*v 1obtener^419\5n m97=7c .)srid(4d+geometry_columns)f_we_schema =45AND name =-c ӫ322 2 1259G+? .CA 0IF clausulaC<= '' T@HEN 6:='"ELSE Q'|| I;(E ND IF2IF: =V,hOOn:= ' ON a.'||||'<>b 2||^'".R' nI#a0N g1SAQ NULLif UcL M='||gid; B aS U<>'{}ma:=split_ part(4[1],' ',3k/ #jx:=','||? 1 twW"6=pst_aMrsects(aR*|| g||'.Q)YD F)F"t||$C& ox&t!r,3x?udtypee\o=handox 2o%2z2z4CATW! LIKE '%LINESTRING' *ڙG:='.rVPOLYGON;, R(st_dumpboundary/x)))"!%VEXCEPTIQFunción no implementadas puntosI RETURN%%*$'5252:='=V5R5g5`q AO)$4''54||'''::, #99'oab(foo.dif2r(@select da.qasqW bQ bSqc_zpointdifference>()F AS difyaaa JOIN |bOn||w_/#'@W8|>|.(ZmfoFo5#bs(hz>'||difpcota?", h%', ;!#Z QUERY[EXECUTE"WC&{END; 9L DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave^2  5 * ( --Vis$ta On FWhere ParamAmbito6sSql .pFromFAAlias4SelectUniones a[];" lith ~ithVerticI BEGIN RAISE NOTICE 'v,punto'CIF t!st IS N@ULL OR ='{}' THEN SEXCEPTION 'No se han introducido lasE de contrastew@END IF):D=e([1]):=qc1k.srm_qifromX(<,'')* 1obtener^4195n m7977c .SELECT srid INTO 4FROM geometry_columns WH@ERE f_we_schema F=4E4AND nxame =XcG ':='%clausula3]%! ! 6!D0!= '(Ls 'q'|| 3 U1raise no! 'wB %',#NJoi#OTgE"!=  :=LSEw="g!]if E34a.'||||'='||gidr < ||' C /* en principio, no perm@itimosde entidad relacionada porque laAsulta espacial esD.uniónGAI3-´r­CWvariFhde una sola,g lo knBpuede idficar0forma inequívocv registrooigidrelbt2tbG1J*/acs=<>V3}W:=split_part(4[1],' ',C[{ / 2/wn:=','||o a tyWIFqst_inters`ects(9!R|| h||'.!F)YE'||2bG!x0vF'$Q ~B|[A FOREACH IN ARRAY string_to_array(E,',') pLOOP# 2uۨ}&F:? /3{j 1:=|'sZ~!D ?:r/|| replacv,/_',/s<:=y 6--debug"}uPq S%l!%Q2WITHs AS (' ||"bK!k#u( L,'i ') ||')"ɏiDith_:=>s(8, (st_dumppoin22)2 aG?TĤ:=4y'4a2v''wZ||'''::I~, #_'aP::INTEGER.   S^operador9b+#E9.,; r RETURN QUERYdEXE`CUTE "!; !; }9L DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave +2 * ( --Vista 4On WhereA ParamAmbito6sSql .FromFAAliars4TiRelat iDim integetol numericesqPuentesqi  BEGIN RAISE NOTICE 'overhidr@ovias'ESELECT valor INTO FROM qc1k.configuracion WHERE pr = 'tolE%:=e#XH[1]):=Qsrm_qifromt(<,'')* 1obten|er^4195n m97c7c .)srid(4+geometry_columns )f_we_schema =4EAND name =Sc 322 2 1259GQ .Cg 0?G ( b 2x||'"R nH<Ia0IF g1SA NULLqif e=bK L='||gid; BO OR=/st_isv`alid( ~B||') = true and ,2b,/s yG'{p D3\is nulcXas)<>'{}^T:=split_ part(4[1],' ',S[ / Cvk:=','||_w AwtW'A*.+5ntersects g||'.a)Y%FF 2||%c6apy6!tL%C,OQtypeQQV=T1TUx 2%2z2zCADjW! LIKE '%LINESTRING#q$R;"POLY`GON')::p='1*:=S vX 5r2r361REpTURN%" =1($53 ''27%v||'''::|, #){'FF(st_dumpcollectionextract6ionmakecst_snapGOSoA"tola)]!)"[#)B> CampoGeo"m Vpsg*Clave^2  5 * ( --Vis$ta On FWhere ParamAmbito6sSql .pFromFAAlias4SelectUniones a[];" lith/ BEGIN RAISE NOTICE 'espacialuH'YIF ts[ IS NULL OR ='{}' TH EN TEXCEPTION 'No se han introducido lasE de hidrosEND IF):=e(u[1]):=qc2k.srm_qifromT(<0,'');:1obtener^4195n m97f7c .SELECT srid INTO 4FROM geometry_columns WHERE f_we_schema =4EAND name =;c ':='%clausula3@%!! 6!D!= &'(Hs ''|| 3 U1raise notice 'wB %',#NJoi#OT'E"!= IF E<  || b'T'||W ELSE = 5; g!Kifiua.'||*'||'='||8gid < ||C /* en principio, no permitimosde entidad relacionada porque la con@sulta E DestrauniónGA{3c ´ríCva riFde una sola,g lo knBpuede idAficar0forma inequívocv registr ooigidrelbt~2tbG1*:/ac=U<>f13}p:=split_part(4[1],' 'n,C{%/ 2/w:=','||o6 ?a@tWx:==st_intersects(9b|| M||'.!)D+2b? sRX [mA FOREACH xIN ARRAY string_to_array(x,',') LOOPu 2uuvFw:(x /# 1e:='sJ~!0D[ :bɪ|| replacv,/T',5  :=y 6--debug"esrK S%l!%pAWITHs AS (' ||"b!k#u( L,'i ') ||')" itޘith:=4.?uq''=||'''::), #B'oA::INTEGER. i&$;#$operadorqKb1&#Ed||'O)a||Y(e7BX RRETURN QUERYEXECUTE "!; ! ; 9 M DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave +2 * ( Yi' .--ViHsta On DWhere ParamAmbito6sSql .FromFAAlias4asCompara2r[]<Ola`usula 3tarea intege BEGIN RAISE NOTICE 'ejemultiple')(:=e# [1%:=qc2k.srm_@qifromw(a<,'')*P 1obtener^41965n m977c.3 /cW 0#22 2 12597 .3 0 #-0IF c$3pIS NULL THE!n :='"f@END IF$pSELECT type INTO IFROM geometry_columns WHERE f_e_schemaD= XXandnpame=+Xzw 2%w$2w 2;5--Si el ti po defía 1 es 1y#2 eje, ponemPos lBi^ 7= 1, si no, 2 @ CASE zWHENL='POLYGON'='LINESTRING'AGK=2R 8AND UoR2RELDEXCEPTIO@N 'Los$s%no tienencombinación correcta: polygon-linestring o  - ""!9TĈ:='comn1d LIKE ''E%'F!=''ECO'!G>!= ' %g e||F'|| ;;1:5--raise not@ice 'wK 8%',M4gird2OT;a.'||Z%||'='||gid>=fac iL<>8'{}z}:=split_part(4[1],' ',S{A/ Cz:=','||_ Q tWx#!$st_qnrs`ects(>2)|| M||'.!)3FbF$8 c1^# \IFGd<=1' WITH @ AS (U`/J,array_agg c{||') as aGidlMRa JOI&N: b ON |B&&X7containst_AEpolatepointR,0.5)) '--a.sth_re/(U=''T*'')'47GROUP BY HAVING COUNT(*x)>17u''@ue||'''::{, $ym(/unQ(m."" gidb:Eo"$/*#m/!Gm2092Qp ;bDe_q aCampoGeo"m Vpsg*Clave +2 * ( --Vista 4On WhereA ParamAmbito6sSql .FromFAStart Point#End!Alias]tol numeric; BEGIN RAISE NOTICE 'dang les '1SELECT valor INTO CFROM qc2k.configuracion WHERE p = 'tolcE%i:=e[$1])r:=Qsrm_qifrom t(<,'')+1obtener^4195n m9'7c .)psrid(4+geometry_columns)f_we_sch`ema =45AND name -c 3C22 2 12597 .3 0 IF '=FzTHE1B:= ' ON@ a.'||u| |'<>b 2||'"Bu2HnI#ELSEa0ND IF IF gid is null then J7 b O='||gidK jmaCzISAV 0NULLG<>0'{}'a]U:=split_part(4[1],' ',#K/ Zl:=','||/ !tW_st_intersects(Pst_s#p#(4a.A) X||'||3_pendn',#,h|!zqc_'||Ge [||'2:=C`  qhCREATE OR REPLACE VIEWB2S3Z ?'--inser@t intosincidences (SQ,R gidori,{!WITH nodos"(l(e\ ?,-g,b||')::e:(&z#a asbQb\17t a LEFT JOIN-e@b2Aexpand>tole ranci)&&Y$b]4relXate2k),j,''T**T*('') xd!'nczp^)=0'S74||9$o/?T2 =] ),"end/(H/ /9i/,n /nGe%,#}pre!(  (+|--(row_number() over@ ())::qgder"?id&inct on (n.gid: /tramo4*Db,?eom',-- /Wmineom28min.? h/n,/'u/(f0s< < G#>G@GROUP BY/,D)ORDER8&#;UNIO//+10000/4/W/raN//;)/ /b#/ $''a''::varchar$X$k/ (l"i J pre$--RAISEICE 'a0 %', `RETURN QUEREXECUTE[C!; ,; 9  Md INTO v b+O$]WHER>EaG6encu83en N"ese código, warning y "nu6Asiguiente r 81NOT FOU ND:>WARNING'Error!brecupXera_.>E&l& %exXist1 .wF%Ncancelada',Q CONTINUE(|/3JU)V?]&qce M.(%'("! --sheet12)34O-66|-9qhE qMqs dos56.&combins}-los0bw$Ry =nes a:Vϟmát/Ϝ٨s--D Ecuase vaya|4 !sc/?a'z ='by Rel us1' --'..C&%eCjeïZblcifBuscv ϷϷ=AH6A?Ba=E9A #/Se/VȬ/Zs/[ /\/]@/_'/` [.d,eBP/m!*"#$%&'&()(*)+#,-"./0*12P.V5y6+7[869/<=L RETURN TRcoEXCEPTIONN OTHERSw[{VsLsrm_mensajee('qc',SQLERRMSTATE,tgen1N'E; ; 9  M@HasR=`= ~ 'EPrrorVr]rsO8lq&y+p6KxE  CONTINClg*m"2j/*Enprimera vers#di@stingumsi5 tenRdevolvegidwass;a/o simpli1:A'Fdevuelvan" ampo_@rel y,eno tiene sentido,B nulb~ DejQ8GQRelOutB el3 stanteu, porw futuro retcla o$inicia8l*/|o:B= $'nI--:=',Cw-- G (*'a"e, x-- -\Iad,QaQ1^\{ y tOcInT/v`Z .uj;wX-\ &F!4 nv,4sust0ituyB!prpocedE"QstQ Xs} !Xc -nSe pueden dQkstas"=1:$P1ntzr1y2yH%qI >c(P"^vezZ+N,T=3 \E9-= ᶂD =Ӯ)$as_8SimFѫQ!Usu defBQRrel ߯0mism,U}soloejecut3t,O aL#:=]t8%Talgtn,S,!7casoOrario,,será igual!Bregisrtfvrea\XVgUJ 0EACH~&zIN e*Obt|enH?zFnamGEsqwHE-n#5xncu"R(›-#ieseeRE warning y"nua%siguieqґ^)!tr_qcmW 4)1+d7-BAreKhڧ'8<vista Ut# &`)aNSalida:'{||'_X 4DEBUG I--#NOTIpCE '  %', Sql|:=KZ1\,6ogidori CK 7LL 2:O: 74hfbx. UsuQ0userecurrent_timmpate_i AmbitoRPevis2areveom R8' ||s"('*B$fxInv(83)6 /qlSEdo qc#SqXH términBac33qWulta (EatC/e, view, ins(ertoes@....):sJ,D/oWry5BTe}5z8ts`(sTip(u5 8--EҎ , reemplazӲ#Dǡ _oDKreplac$e( ,'b',JC1 5!R3EXECUTE a 0B43޿ indiRqoMo-o(kmoolo$oo&o'o!oo oo(hoN+oo/jyesgt#owpero si o{FALSo|solo tien_mo,AR-\IdpmismH$Ҏq ue*jecu teTIF sFxH;= '4n'a3:=;cil]-Siealgú"ndísst(rui,Gas*oMrQ ,- será igualudeygisrtfE5_[(rtf.cod)%#a* 1-/sustituyendoor'^FOREACH  IN  --ObteneOB v@!,8  h* 0h , & 8 9 0M DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave +2 * ( --Vista 4On WhereA ParamAmbito6sSql .FromFAAliars4Ti]eprmin14 iDim i ntege+tol numeric; BEGIN RAISE NOTICE 'difz'-SELECT valor INTO ?FROM qc2k.configuracion WHERE pL = 'tolE%:=e#2[1]):=Qsrm_qifr(omt(<,' ')*v 1obtener^419\5n m97=7c .)srid(4d+geometry_columns)f_we_schema =45AND name =-c ӫ322 2 1259G+? .CA 0IF clausulaC<= '' T@HEN 6:='"ELSE Q'|| I;(E ND IF2IF: =V,hOOn:= ' ON a.'||||'<>b 2||^'".R' nI#a0N g1SAQ NULLif UcL M='||gid; B aS U<>'{}ma:=split_ part(4[1],' ',3k/ #jx:=','||? 1 twW"6=pst_aMrsects(aR*|| g||'.Q)YD F)F"t||$C& ox&t!r,3x?udtypee\o=handox 2o%2z2z4CATW! LIKE '%LINESTRING' *ڙG:='.rVPOLYGON;, R(st_dumpboundary/x)))"!%VEXCEPTIQFunción no implementadas puntosI RETURN%%*$'5252:='=V5R5g5`q AO)$4''54||'''::, #99'oab(foo.dif2r(@select da.qasqW bQ bSqc_zpointdifference>()F AS difyaaa JOIN |bOn||w_/#'@W8|>|.(ZmfoFo5#bs(hz>'||difpcota?", h%', ;!#Z QUERY[EXECUTE"WC&{END; 9 ,M DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave^2  5 * ( --Vis$ta On FWhere ParamAmbito6sSql .pFromFAAlias4SelectUniones a[];" lith ~ithVerticI BEGIN RAISE NOTICE 'v,punto'CIF t!st IS N@ULL OR ='{}' THEN SEXCEPTION 'No se han introducido lasE de contrastew@END IF):D=e([1]):=qc2k.srm_qifromX(<,'')* 1obtener^4195n m7977c .SELECT srid INTO 4FROM geometry_columns WH@ERE f_we_schema F=4E4AND nxame =XcG ':='%clausula3]%! ! 6!D0!= '(Ls 'q'|| 3 U1raise no! 'wB %',#NJoi#OTgE"!=  :=LSEw="g!]if E34a.'||||'='||gidr < ||' C /* en principio, no perm@itimosde entidad relacionada porque laAsulta espacial esD.uniónGAI3-´r­CWvariFhde una sola,g lo knBpuede idficar0forma inequívocv registrooigidrelbt2tbG1J*/acs=<>V3}W:=split_part(4[1],' ',C[{ / 2/wn:=','||o a tyWIFqst_inters`ects(9!R|| h||'.!F)YE'||2bG!x0vF'$Q ~B|[A FOREACH IN ARRAY string_to_array(E,',') pLOOP# 2uۨ}&F:? /3{j 1:=|'sZ~!D ?:r/|| replacv,/_',/s<:=y 6--debug"}uPq S%l!%Q2WITHs AS (' ||"bK!k#u( L,'i ') ||')"ɏiDith_:=>s(8, (st_dumppoin22)2 aG?TĤ:=4y'4a2v''wZ||'''::I~, #_'aP::INTEGER.   S^operador9b+#E9.,; r RETURN QUERYdEXE`CUTE "!; !; 9 'M DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave +2 * ( --Vista 4On WhereA ParamAmbito6sSql .FromFAAliars4TiRelat iDim integetol numericesqPuentesqi  BEGIN RAISE NOTICE 'overhidr@ovias'ESELECT valor INTO FROM qc2k.configuracion WHERE pr = 'tolE%:=e#XH[1]):=Qsrm_qifromt(<,'')* 1obten|er^4195n m97c7c .)srid(4+geometry_columns )f_we_schema =4EAND name =Sc 322 2 1259GQ .Cg 0?G ( b 2x||'"R nH<Ia0IF g1SA NULLqif e=bK L='||gid; BO OR=/st_isv`alid( ~B||') = true and ,2b,/s yG'{p D3\is nulcXas)<>'{}^T:=split_ part(4[1],' ',S[ / Cvk:=','||_w AwtW'A*.+5ntersects g||'.a)Y%FF 2||%c6apy6!tL%C,OQtypeQQV=T1TUx 2%2z2zCADjW! LIKE '%LINESTRING#q$R;"POLY`GON')::p='1*:=S vX 5r2r361REpTURN%" =1($53 ''27%v||'''::|, #){'FF(st_dumpcollectionextract6ionmakecst_snapGOSoA"tola)]!)"[#)B> CampoGeo"m Vpsg*Clave +2 * ( --Vista 4On WhereA ParamAmbito6sSql .FromFAAliars4TiRelat iDim integetol numeric; BEGIN RAISE NOTICE 'overlap'0SELECT valor INTO BFROM qc2k.configuracion WHERE p1 = 'tolE%:=e##[1]):=Qsrm_qifPromt(<,'')*[ 1obtener^419A}5n m97"7c .)srid(4I+geometry_colum$ns)f_we_schema =#45AND name =cW 3n22 2 1259G .C& 0IF clausulaC!= '' THEN 6:='"ELSE '|| I;(END IF; ;i=VhOOn:= ' ON a.'||||'>b 2||'"-R  nH<Ia0Mg1SAS NULLif Ub K L='||gid; ?B OR =/st_isvalid(a.1) = tr@ue and b /W ]+ acq3<>'{}}#:=split_part(4[1],' ',Ckk/ 3z::=','||O A!tW{ntersectsf()?b|| g||'mYF9jF2S||%S&py&s!t<CX,/tatypeua f^=xd15dx 2%2z2zCADW! LIKE '%LINESTRING#a$B"POLYGON'):N:='1*R:=S_ vX r2r361RETURN%" 1($53''27%v||'''::, #){'o(st_dumpcollectionextract6ionmakecGst_psnapOSM"r'||tol||'t))!)"[#)B> as2D2Q ||Qa JOINAdb+||--Modifico el operador espacial de selec²porque daba errortopologiaAr"!, aun* Z& tAén d?en otretrias_2'2&&3quote_literal(5 qa)# 7W||MZa2* %', ;Q݁3W QUERYfEXECUTE2UC6xEND; 9 M DECLARE sSql varchar;vcTaHblaqi E squem ,NombreFWhere Atributos CampoGeom0/PClav `a_[] BEGIN  -- Dar un alias a la función que tenga ver con el tipo de e rror.IRAISE NOTICE 'geom@dupli's-- Extrae(mos?e>/nC0Ila t7introducida como parámetro. Si hubiera 2@, se eVrían las dovariables distintas:=[1/* Encer$ra yentreilqd9srm_qifrom6. N@o usarUs`egund }E|st"5M01p4arr!cláusula FROMFs s@entencsql[n este caso no9usa poFrMbasda!2de aplicalos gs vienenDminúsculas.*/:<:=qc(2k.( ,'')%!*SeLel*/enfer8:=split_part}.',26)1 Obten%c1!et!<:= .*^77/c 0/*L)te puenzar#7evaluar solo1registhro,'Qe!IN ARRAY "LOOPa1.=''~ 41b 2YC l||V7t 65{> ! B~ [D' sEV 2 :='selectV'||quote_literal(f)||'::,.x(2O 61Y4Rzy2 Ć3! a` join!bl CoT!%G 1nd st_astext() =! J!>'_-"E ;--D %'v, tDGhBR(drWX9cRETURN QUERY#VXECUTE P" END; lB!(   . 9 TM DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave +2 * ( --Vista 4On WhereA ParamAmbito6sSql .FromFAStart Point#End!Alias]tol numeric; BEGIN RAISE NOTICE 'dang les '1SELECT valor INTO CFROM qc5k.configuracion WHERE p = 'tolcE%i:=e[$1])r:=Qsrm_qifrom t(<,'')+1obtener^4195n m9'7c .)psrid(4+geometry_columns)f_we_sch`ema =45AND name -c 3C22 2 12597 .3 0 IF '=FzTHE1B:= ' ON@ a.'||u| |'<>b 2||'"Bu2HnI#ELSEa0ND IF IF gid is null then J7 b O='||gidK jmaCzISAV 0NULLG<>0'{}'a]U:=split_part(4[1],' ',#K/ Zl:=','||/ !tW_st_intersects(Pst_s#p#(4a.A) X||'||3_pendn',#,h|!zqc_'||Ge [||'2:=C`  qhCREATE OR REPLACE VIEWB2S3Z ?'--inser@t intosincidences (SQ,R gidori,{!WITH nodos"(l(e\ ?,-g,b||')::e:(&z#a asbQb\17t a LEFT JOIN-e@b2Aexpand>tole ranci)&&Y$b]4relXate2k),j,''T**T*('') xd!'nczp^)=0'S74||9$o/?T2 =] ),"end/(H/ /9i/,n /nGe%,#}pre!(  (+|--(row_number() over@ ())::qgder"?id&inct on (n.gid: /tramo4*Db,?eom',-- /Wmineom28min.? h/n,/'u/(f0s< < G#>G@GROUP BY/,D)ORDER8&#;UNIO//+10000/4/W/raN//;)/ /b#/ $''a''::varchar$X$k/ (l"i J pre$--RAISEICE 'a0 %', `RETURN QUEREXECUTE[C!; ,; 9 KMd INTO v b+O$]WHER>EaG6encu83en N"ese código, warning y "nu6Asiguiente r 81NOT FOU ND:>WARNING'Error!brecupXera_.>E&l& %exXist1 .wF%Ncancelada',Q CONTINUE(|/3JU)V?]&qce M.(%'("! --sheet12)34O-66|-9qhE qMqs dos56.&combins}-los0bw$Ry =nes a:Vϟmát/Ϝ٨s--D Ecuase vaya|4 !sc/?a'z ='by Rel us1' --'..C&%eCjeïZblcifBuscv ϷϷ=AH6A?Ba=E9A #/Se/VȬ/Zs/[ /\/]@/_'/` [.d,eBP/m!*"#$%&'&()(*)+#,-"./0*12P.V5y6+7[869/<=L RETURN TRcoEXCEPTIONN OTHERSw[{VsLsrm_mensajee('qc',SQLERRMSTATE,tgen1N'E; ; 9 KM@HasR=`= ~ 'EPrrorVr]rsO8lq&y+p6KxE  CONTINClg*m"2j/*Enprimera vers#di@stingumsi5 tenRdevolvegidwass;a/o simpli1:A'Fdevuelvan" ampo_@rel y,eno tiene sentido,B nulb~ DejQ8GQRelOutB el3 stanteu, porw futuro retcla o$inicia8l*/|o:B= $'nI--:=',Cw-- G (*'a"e, x-- -\Iad,QaQ1^\{ y tOcInT/v`Z .uj;wX-\ &F!4 nv,4sust0ituyB!prpocedE"QstQ Xs} !Xc -nSe pueden dQkstas"=1:$P1ntzr1y2yH%qI >c(P"^vezZ+N,T=3 \E9-= ᶂD =Ӯ)$as_8SimFѫQ!Usu defBQRrel ߯0mism,U}soloejecut3t,O aL#:=]t8%Talgtn,S,!7casoOrario,,será igual!Bregisrtfvrea\XVgUJ 0EACH~&zIN e*Obt|enH?zFnamGEsqwHE-n#5xncu"R(›-#ieseeRE warning y"nua%siguieqґ^)!tr_qcmW 4)1+d7-BAreKhڧ'8<vista Ut# &`)aNSalida:'{||'_X 4DEBUG I--#NOTIpCE '  %', Sql|:=KZ1\,6ogidori CK 7LL 2:O: 74hfbx. UsuQ0userecurrent_timmpate_i AmbitoRPevis2areveom R8' ||s"('*B$fxInv(83)6 /qlSEdo qc#SqXH términBac33qWulta (EatC/e, view, ins(ertoes@....):sJ,D/oWry5BTe}5z8ts`(sTip(u5 8--EҎ , reemplazӲ#Dǡ _oDKreplac$e( ,'b',JC1 5!R3EXECUTE a 0B43޿ indiRqoMo-o(kmoolo$oo&o'o!oo oo(hoN+oo/jyesgt#owpero si o{FALSo|solo tien_mo,AR-\IdpmismH$Ҏq ue*jecu teTIF sFxH;= '4n'a3:=;cil]-Siealgú"ndísst(rui,Gas*oMrQ ,- será igualudeygisrtfE5_[(rtf.cod)%#a* 1-/sustituyendoor'^FOREACH  IN  --ObteneOB v9 KM@G DECLARE bTablaEntrada boolean = FALSE; sTipoGeom v@archar--sEsquema  sNomRa sCamDzRDelvbFxCod_)Fx & Nom FxHasReltables rtf qc5k.fx%rowtypens WhereK Sq *MensajeError Xs  []CreaBttView TerminoSalidJNombreCodInciType Descriptxion &U@suario Para#sa0etroAmbito, Gi,AB*o j k-~-7() 3/ZmodiMGidRelOutI+ =''cion._ BEGIN --Capturamoi3generales SELECT session_user@ INTO ; ,:--Co@nstrui\la condición WHE RE desulta sobr1OJ Si se ha introduci do un,.. IF AP<>'' AND IS NOT NULL THE\!:=TRUB-- Obteneel c`digoen Q.cod*FFROMIj  name=FOUND RAISE WARNING 'L% no e`xisteh.9Funcancelada', r RETURNW END IF U:=[srmT_o'r(M)GF!ín c@orresp!ente al tDip_geo1a /pol /pt /l /col. f.Ise utiliza para ejecutarP las&XsXqBctoda!s1ese~8ctr_yin Añad"el edain ME||'.'||  Ia2láu@sula w1a quebarray Dycontpenga/7D,m2o=áR@n:= '$(%::text[]@>ARRAY['||quote_litA6(&)||'] OR6 ; <;)B--DEB UG $NOTICE ' %'N, @&--OGf4FJFxGDFxO>FxG4r?nrcz(sFx"3-$=)--Busc?RJQ5IfxIGFxHfxfx=2and schema"FCOOfxO kO ?#se'(+(8=''?K= ''3dFx||''sr ELSE@ ||#XN 5 ?E#:rela3adURelX[ RelyWVl+SV = /g-/ 9c.EB`oRelCd-- oydeetrpnv(e?w"?y 5zrշo}e?o?$(es/O:Cos6s gid,epsg, ap, y p@ersonadc/AvserciRcTql1A !'aӷJ[[<>'{}#9:='hQ8[1]*, 2 ^ 41A$IF iGid_Ѫ!3!dq'3}xRecupfeӣ1vfi+ y v'nzanLdo0AonF!^tf IN EXECUTE 'T`*^Gfx a;0LOOP el(ms y lQ(traBBYcBRFrC"vqc,jespecíficorIF~.t-0(34:="B_to_s@tring(;,',J >=wZlorecoe, incidencia,V} Q& >Td?c!FyGMtype,fxK,0,fx,FyweInHciT-sDwtionbFx,3B!(  ؘD * h 9 cMP" DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave +2 * ( --Vista 4On WhereA ParamAmbito6sSql .FromFAAliars4TiRelat iDim integetol numeric; BEGIN RAISE NOTICE 'overlap'0SELECT valor INTO BFROM qc5k.configuracion WHERE p1 = 'tolE%:=e##[1]):=Qsrm_qifPromt(<,'')*[ 1obtener^419A}5n m97"7c .)srid(4I+geometry_colum$ns)f_we_schema =#45AND name =cW 3n22 2 1259G .C& 0IF clausulaC!= '' THEN 6:='"ELSE '|| I;(END IF; ;i=VhOOn:= ' ON a.'||||'>b 2||'"-R  nH<Ia0Mg1SAS NULLif Ub K L='||gid; ?B OR =/st_isvalid(a.1) = tr@ue and b /W ]+ acq3<>'{}}#:=split_part(4[1],' ',Ckk/ 3z::=','||O A!tW{ntersectsf()?b|| g||'mYF9jF2S||%S&py&s!t<CX,/tatypeua f^=xd15dx 2%2z2zCADW! LIKE '%LINESTRING#a$B"POLYGON'):N:='1*R:=S_ vX r2r361RETURN%" 1($53''27%v||'''::, #){'o(st_dumpcollectionextract6ionmakecGst_psnapOSM"r'||tol||'t))!)"[#)B> as2D2Q ||Qa JOINAdb+||--Modifico el operador espacial de selec²porque daba errortopologiaAr"!, aun* Z& tAén d?en otretrias_2'2&&3quote_literal(5 qa)# 7W||MZa2* %', ;Q݁3W QUERYfEXECUTE2UC6xEND; 9 ^M DECLARE sSql varchar;vcTaHblaqi E squem ,NombreFWhere Atributos CampoGeom0/PClav `a_[] BEGIN  -- Dar un alias a la función que tenga ver con el tipo de e rror.IRAISE NOTICE 'geom@dupli's-- Extrae(mos?e>/nC0Ila t7introducida como parámetro. Si hubiera 2@, se eVrían las dovariables distintas:=[1/* Encer$ra yentreilqd9srm_qifrom6. N@o usarUs`egund }E|st"5M01p4arr!cláusula FROMFs s@entencsql[n este caso no9usa poFrMbasda!2de aplicalos gs vienenDminúsculas.*/:<:=qc(5k.( ,'')%!*SeLel*/enfer8:=split_part}.',26)1 Obten%c1!et!<:= .*^77/c 0/*L)te puenzar#7evaluar solo1registhro,'Qe!IN ARRAY "LOOPa1.=''~ 41b 2YC l||V7t 65{> ! B~ [D' sEV 2 :='selectV'||quote_literal(f)||'::,.x(2O 61Y4Rzy2 Ć3! a` join!bl CoT!%G 1nd st_astext() =! J!>'_-"E ;--D %'v, tDGhBR(drWX9cRETURN QUERY#VXECUTE P" END; 9 \M DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave^2  5 * ( --Vis$ta On FWhere ParamAmbito6sSql .pFromFAAlias4SelectUniones a[];" lith/ BEGIN RAISE NOTICE 'espacialuH'YIF ts[ IS NULL OR ='{}' TH EN TEXCEPTION 'No se han introducido lasE de hidrosEND IF):=e(u[1]):=qc5k.srm_qifromT(<0,'');:1obtener^4195n m97f7c .SELECT srid INTO 4FROM geometry_columns WHERE f_we_schema =4EAND name =;c ':='%clausula3@%!! 6!D!= &'(Hs ''|| 3 U1raise notice 'wB %',#NJoi#OT'E"!= IF E<  || b'T'||W ELSE = 5; g!Kifiua.'||*'||'='||8gid < ||C /* en principio, no permitimosde entidad relacionada porque la con@sulta E DestrauniónGA{3c ´ríCva riFde una sola,g lo knBpuede idAficar0forma inequívocv registr ooigidrelbt~2tbG1*:/ac=U<>f13}p:=split_part(4[1],' 'n,C{%/ 2/w:=','||o6 ?a@tWx:==st_intersects(9b|| M||'.!)D+2b? sRX [mA FOREACH xIN ARRAY string_to_array(x,',') LOOPu 2uuvFw:(x /# 1e:='sJ~!0D[ :bɪ|| replacv,/T',5  :=y 6--debug"esrK S%l!%pAWITHs AS (' ||"b!k#u( L,'i ') ||')" itޘith:=4.?uq''=||'''::), #B'oA::INTEGER. i&$;#$operadorqKb1&#Ed||'O)a||Y(e7BX RRETURN QUERYEXECUTE "!; ! ; 9 XM DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave +2 * ( Yi' .--ViHsta On DWhere ParamAmbito6sSql .FromFAAlias4asCompara2r[]<Ola`usula 3tarea intege BEGIN RAISE NOTICE 'ejemultiple')(:=e# [1%:=qc5k.srm_@qifromw(a<,'')*P 1obtener^41965n m977c.3 /cW 0#22 2 12597 .3 0 #-0IF c$3pIS NULL THE!n :='"f@END IF$pSELECT type INTO IFROM geometry_columns WHERE f_e_schemaD= XXandnpame=+Xzw 2%w$2w 2;5--Si el ti po defía 1 es 1y#2 eje, ponemPos lBi^ 7= 1, si no, 2 @ CASE zWHENL='POLYGON'='LINESTRING'AGK=2R 8AND UoR2RELDEXCEPTIO@N 'Los$s%no tienencombinación correcta: polygon-linestring o  - ""!9TĈ:='comn1d LIKE ''E%'F!=''ECO'!G>!= ' %g e||F'|| ;;1:5--raise not@ice 'wK 8%',M4gird2OT;a.'||Z%||'='||gid>=fac iL<>8'{}z}:=split_part(4[1],' ',S{A/ Cz:=','||_ Q tWx#!$st_qnrs`ects(>2)|| M||'.!)3FbF$8 c1^# \IFGd<=1' WITH @ AS (U`/J,array_agg c{||') as aGidlMRa JOI&N: b ON |B&&X7containst_AEpolatepointR,0.5)) '--a.sth_re/(U=''T*'')'47GROUP BY HAVING COUNT(*x)>17u''@ue||'''::{, $ym(/unQ(m."" gidb:Eo"$/*#m/!Gm2092Qp ;bDe_q aCampoGeo"m Vpsg*Clave +2 * ( --Vista 4On WhereA ParamAmbito6sSql .FromFAAliars4Ti]eprmin14 iDim i ntege+tol numeric; BEGIN RAISE NOTICE 'difz'-SELECT valor INTO ?FROM qc5k.configuracion WHERE pL = 'tolE%:=e#2[1]):=Qsrm_qifr(omt(<,' ')*v 1obtener^419\5n m97=7c .)srid(4d+geometry_columns)f_we_schema =45AND name =-c ӫ322 2 1259G+? .CA 0IF clausulaC<= '' T@HEN 6:='"ELSE Q'|| I;(E ND IF2IF: =V,hOOn:= ' ON a.'||||'<>b 2||^'".R' nI#a0N g1SAQ NULLif UcL M='||gid; B aS U<>'{}ma:=split_ part(4[1],' ',3k/ #jx:=','||? 1 twW"6=pst_aMrsects(aR*|| g||'.Q)YD F)F"t||$C& ox&t!r,3x?udtypee\o=handox 2o%2z2z4CATW! LIKE '%LINESTRING' *ڙG:='.rVPOLYGON;, R(st_dumpboundary/x)))"!%VEXCEPTIQFunción no implementadas puntosI RETURN%%*$'5252:='=V5R5g5`q AO)$4''54||'''::, #99'oab(foo.dif2r(@select da.qasqW bQ bSqc_zpointdifference>()F AS difyaaa JOIN |bOn||w_/#'@W8|>|.(ZmfoFo5#bs(hz>'||difpcota?", h%', ;!#Z QUERY[EXECUTE"WC&{END; 9 nM DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave^2  5 * ( --Vis$ta On FWhere ParamAmbito6sSql .pFromFAAlias4SelectUniones a[];" lith ~ithVerticI BEGIN RAISE NOTICE 'v,punto'CIF t!st IS N@ULL OR ='{}' THEN SEXCEPTION 'No se han introducido lasE de contrastew@END IF):D=e([1]):=qc5k.srm_qifromX(<,'')* 1obtener^4195n m7977c .SELECT srid INTO 4FROM geometry_columns WH@ERE f_we_schema F=4E4AND nxame =XcG ':='%clausula3]%! ! 6!D0!= '(Ls 'q'|| 3 U1raise no! 'wB %',#NJoi#OTgE"!=  :=LSEw="g!]if E34a.'||||'='||gidr < ||' C /* en principio, no perm@itimosde entidad relacionada porque laAsulta espacial esD.uniónGAI3-´r­CWvariFhde una sola,g lo knBpuede idficar0forma inequívocv registrooigidrelbt2tbG1J*/acs=<>V3}W:=split_part(4[1],' ',C[{ / 2/wn:=','||o a tyWIFqst_inters`ects(9!R|| h||'.!F)YE'||2bG!x0vF'$Q ~B|[A FOREACH IN ARRAY string_to_array(E,',') pLOOP# 2uۨ}&F:? /3{j 1:=|'sZ~!D ?:r/|| replacv,/_',/s<:=y 6--debug"}uPq S%l!%Q2WITHs AS (' ||"bK!k#u( L,'i ') ||')"ɏiDith_:=>s(8, (st_dumppoin22)2 aG?TĤ:=4y'4a2v''wZ||'''::I~, #_'aP::INTEGER.   S^operador9b+#E9.,; r RETURN QUERYdEXE`CUTE "!; !; 9 iM DECLARE vcNombreTabla1 varchar;Esquem *qi>CampoGeo"m Vpsg*Clave +2 * ( --Vista 4On WhereA ParamAmbito6sSql .FromFAAliars4TiRelat iDim integetol numericesqPuentesqi  BEGIN RAISE NOTICE 'overhidr@ovias'ESELECT valor INTO FROM qc5k.configuracion WHERE pr = 'tolE%:=e#XH[1]):=Qsrm_qifromt(<,'')* 1obten|er^4195n m97c7c .)srid(4+geometry_columns )f_we_schema =4EAND name =Sc 322 2 1259GQ .Cg 0?G ( b 2x||'"R nH<Ia0IF g1SA NULLqif e=bK L='||gid; BO OR=/st_isv`alid( ~B||') = true and ,2b,/s yG'{p D3\is nulcXas)<>'{}^T:=split_ part(4[1],' ',S[ / Cvk:=','||_w AwtW'A*.+5ntersects g||'.a)Y%FF 2||%c6apy6!tL%C,OQtypeQQV=T1TUx 2%2z2zCADjW! LIKE '%LINESTRING#q$R;"POLY`GON')::p='1*:=S vX 5r2r361REpTURN%" =1($53 ''27%v||'''::|, #){'FF(st_dumpcollectionextract6ionmakecst_snapGOSoA"tola)]!)"[#)B>