(  P^``8b^؛`(^x`ș^``jl^H`dؔf fhp^`X\^\H^\^0hxjffPfff(fpfffHfzЃdf`dff, charlt ?fischarlt+ Fcharne ?fischarne* Ecideq ?fis cideq)  xidneq ?fisxidneq( Dxideq ?fis xideq' pstarts_with ?fis#text_starts_with& Ctexteq ?fistexteq% Bint4lt ?fisint4lt$ Aint4eq ?fisint4eq# @int2lt ?fisint2lt" ?int2eq ?fisint2eq! >nameeq ?fisnameeq  =chareq ?fischareq <booleq ?fisbooleq 9boolgt ?fisboolgt 8boollt ?fisboollt 7oidvectorout ?fispoidvectorout 6oidvectorin ?fispoidvectorin 5cidout ?fispcidout 4cidin ?fisp cidin 3xidout ?fispxidout 2xidin ?fisp xidin 1tidout ?fisptidout 0tidin ?fisp tidin /textout ?fisptextout .textin ?fisptextin  to_regprocedure ?fssp!to_regprocedure  to_regproc ?fsspto_regproc -regprocout ?fsspregprocout ,regprocin ?fsspregprocin +int4out ?fispint4out  *int4in ?fispint4in  )int2vectorout ?fispint2vectorout  (int2vectorin ?fispint2vectorin  'int2out ?fispint2out  &int2in ?fispint2in #nameout ?fispnameout "namein ?fispnamein !charout ?fispcharout charin ?fispcharin byteaout ?fispbyteaout byteain ?fispbyteain boolout ?fispboolout boolin ?fispboolin(8  Hff؝f bhbpp@ppؘ` hhfdt0vpxxt0vp菄 XЌHȉdfXhr؆r bhd`bP`b^8`* |box_out ?fisp[box_out) {box_in ?fis[pbox_in( zpath_out ?fispZpath_out' ypath_in ?fisZppath_in& xlseg_out ?fispYlseg_out% wlseg_in ?fisYplseg_in$ vpoint_out ?fispXpoint_out# upoint_in ?fisXppoint_in" tbox_below_eq ?fis[[box_below_eq! sbox_above_eq ?fis[[box_above_eq  onumeric_fac ?fispnumeric_fac nunknownout ?fispunknownout munknownin ?fispunknownin scalargejoinsel ?fss!scalargejoinsel scalarlejoinsel ?fss!scalarlejoinsel Qscalargesel ?fssscalargesel Pscalarlesel ?fssscalarlesel lscalargtjoinsel ?fss!scalargtjoinsel kscalarltjoinsel ?fss!scalarltjoinsel jneqjoinsel ?fssneqjoinsel ieqjoinsel ?fsseqjoinsel hscalargtsel ?fssscalargtsel gscalarltsel ?fssscalarltsel fneqsel ?fssneqsel eeqsel ?fss eqsel Zpg_ddl_command_send ?fisp )pg_ddl_command_send Xpg_ddl_command_recv ?fis p)pg_ddl_command_recv Wpg_ddl_command_out ?fisp 'pg_ddl_command_out Vpg_ddl_command_in ?fis p%pg_ddl_command_in  Yversion ?fss`pgsql_version  Tboolne ?fisboolne  textcat ?fistextcat  textlen ?fisptextlen  textregexne ?fistextregexne textregexeq ?fistextregexeq nameregexne ?fisnameregexne Onameregexeq ?fisnameregexeq Nchar ?fispi4tochar Mint4 ?fispchartoi4 Jcharge ?fischarge Ichargt ?fischargt Hcharle ?fischarle(  Hpf؝f fhffp@npИpj`djf0xhhf@ffАff`fff8hhȋhhXhfh0hxhhhPhhh(hphhh+ int42ge ?fisint42ge* int24ge ?fisint24ge) int42le ?fisint42le( int24le ?fisint24le' int42ne ?fisint42ne& int24ne ?fisint24ne% int42gt ?fisint42gt$ int24gt ?fisint24gt# int42lt ?fisint42lt" int24lt ?fisint24lt! int42eq ?fisint42eq  int24eq ?fisint24eq textne ?fistextne int4mod ?fisint4mod int2mod ?fisint2mod int4div ?fisint4div int2div ?fisint2div int2mul ?fisint2mul int2ge ?fisint2ge int4ge ?fisint4ge int4le ?fisint4le int2le ?fisint2le int4gt ?fisint4gt int2gt ?fisint2gt int2ne ?fisint2ne int4ne ?fisint4ne int4mul ?fisint4mul areajoinsel ?fssareajoinsel areasel ?fssareasel box_center ?fisXp[box_center  on_ppath ?fisXZon_ppath  on_pb ?fisX[ on_pb  point_eq ?fisXXpoint_eq  point_below ?fisXXpoint_below  point_right ?fisXXpoint_right point_left ?fisXXpoint_left point_above ?fisXXpoint_above box_le ?fis[[box_le box_lt ?fis[[box_lt box_eq ?fis[[box_eq box_gt ?fis[[box_gt ~box_ge ?fis[[box_ge }box_overlap ?fis[[box_overlap(  Hjj؝j jhffh@hfИfh`hdd8jpȓjrHtlАtvXpr؍tt`bdl8ljȈjbXdr؅rth^^bHdl؀l+ float8div ?fisfloat8div* float8mul ?fisfloat8mul) float8out ?fispfloat8out( float8in ?fispfloat8in' int2um ?fispint2um& int4um ?fispint4um% float4smaller ?fisfloat4smaller$ float4larger ?fisfloat4larger# float4_accum ?fisfloat4_accum" float4abs ?fispfloat4abs! float4um ?fispfloat4um  float4mi ?fisfloat4mi float4pl ?fisfloat4pl float4div ?fisfloat4div float4mul ?fisfloat4mul float4out ?fispfloat4out float4in ?fispfloat4in pg_node_tree_send ?fssp%pg_node_tree_send pg_node_tree_recv ?fssp%pg_node_tree_recv pg_node_tree_out ?fisp#pg_node_tree_out pg_node_tree_in ?fisp!pg_node_tree_in box_contain_pt ?fis[Xbox_contain_pt box_contained ?fis[[box_contained box_right ?fis[[box_right box_overright ?fis[[box_overright box_overleft ?fis[[box_overleft box_left ?fis[[box_left box_contain ?fis[[box_contain box_same ?fis[[box_same oidne ?fis oidne  oideq ?fis oideq  int42mi ?fisint42mi  int24mi ?fisint24mi  int4mi ?fisint4mi  int2mi ?fisint2mi int42pl ?fisint42pl int24pl ?fisint24pl int4pl ?fisint4pl int2pl ?fisint2pl int42div ?fisint42div int24div ?fisint24div int42mul ?fisint42mul int24mul ?fisint24mul(h  Hjj؝b d`rvr thhhhH^^\8\^ؓ\(\x\bZ`\\\P\\t(dpfdfHff؇h jhpjXHll؂l lhl+ abstimele ?fisabstimele* abstimegt ?fisabstimegt) abstimelt ?fisabstimelt( abstimene ?fisabstimene' abstimeeq ?fisabstimeeq& timenow ?fss`timenow% tintervalrel ?fisptintervalrel$ intinterval ?fisintinterval# tintervalout ?fssptintervalout" tintervalin ?fssptintervalin! timemi ?fistimemi  timepl ?fistimepl reltimeout ?fsspreltimeout reltimein ?fsspreltimein abstimeout ?fsspabstimeout abstimein ?fsspabstimein line_distance ?fisttline_distance int2 ?fisp ftoi2 int2 ?fisp dtoi2 float4 ?fisp i2tof float8 ?fisp i2tod dlog1 ?fisp dlog1 dexp ?fisp dexp dpow ?fis dpow dcbrt ?fisp dcbrt dsqrt ?fisp dsqrt  sign ?fisp dsign  floor ?fispdfloor  ceiling ?fisp dceil  ceil ?fisp dceil  dtrunc ?fispdtrunc  dround ?fispdround  poly_center ?fisXp\poly_center  path_center ?fisXpZpath_center  lseg_center ?fisXpYlseg_center float8smaller ?fisfloat8smaller float8larger ?fisfloat8larger float8_combine ?fisfloat8_combine float8_accum ?fisfloat8_accum float8abs ?fispfloat8abs float8um ?fispfloat8um float8mi ?fisfloat8mi float8pl ?fisfloat8pl(  Hll؝l lhlll8tpȘpvHvvȕvvHvnؒj(\pnjjHnn؍l lhnnl@ljЈjj`jjj8jjȃjjXjjl+ +float48eq ?fisfloat48eq* *float8ge ?fisfloat8ge) )float8gt ?fisfloat8gt( (float8le ?fisfloat8le' 'float8lt ?fisfloat8lt& &float8ne ?fisfloat8ne% %float8eq ?fisfloat8eq$ $float4ge ?fisfloat4ge# #float4gt ?fisfloat4gt" "float4le ?fisfloat4le! !float4lt ?fisfloat4lt   float4ne ?fisfloat4ne float4eq ?fisfloat4eq float84mi ?fisfloat84mi float84pl ?fisfloat84pl float84div ?fisfloat84div float84mul ?fisfloat84mul float48mi ?fisfloat48mi float48pl ?fisfloat48pl float48div ?fisfloat48div float48mul ?fisfloat48mul inter_lb ?fist[inter_lb inter_sl ?fisYtinter_sl isfinite ?fispabstime_finite timeofday ?fvs`timeofday tintervalend ?fisptintervalend tintervalstart ?fisptintervalstart tintervallenge ?fistintervallenge tintervallenle ?fistintervallenle  tintervallengt ?fistintervallengt   tintervallenlt ?fistintervallenlt   tintervallenne ?fistintervallenne   tintervalleneq ?fistintervalleneq   tintervalov ?fistintervalov  tintervalct ?fistintervalct tintervalsame ?fistintervalsame reltimege ?fisreltimege reltimele ?fisreltimele reltimegt ?fisreltimegt reltimelt ?fisreltimelt reltimene ?fisreltimene reltimeeq ?fisreltimeeq abstimege ?fisabstimege(x  Hll؝l lhlll@llИllPZZ@^^\0\\Б\d`hhf8fh(pfXlrl t`vnv(rx`* [poly_in ?fis\ppoly_in) Zpoly_overlap ?fis\\poly_overlap( Ypoly_contained ?fis\\poly_contained' Xpoly_right ?fis\\poly_right& Wpoly_overright ?fis\\poly_overright% Vpoly_overleft ?fis\\poly_overleft$ Upoly_left ?fis\\poly_left# Tpoly_contain ?fis\\poly_contain" Spoly_same ?fis\\poly_same! ~pg_index_column_has_property ?fss;pg_index_column_has_property  }pg_index_has_property ?fss-pg_index_has_property |pg_indexam_has_property ?fss1pg_indexam_has_property Ramvalidate ?fvspamvalidate brin_desummarize_range ?fvu/brin_desummarize_range brin_summarize_range ?fvu+brin_summarize_range pbrin_summarize_new_values ?fvup5brin_summarize_new_values Obrinhandler ?fvsEpbrinhandler Nspghandler ?fvsEpspghandler Mginhandler ?fvsEpginhandler Lgisthandler ?fvsEpgisthandler Khashhandler ?fvsEphashhandler Jbthandler ?fvsEpbthandler ?int4 ?fisp ftoi4 >float4 ?fisp i4tof =int4 ?fisp dtoi4 <float8 ?fisp i4tod :int2 ?fispi4toi2 9int4 ?fispi2toi4 8float4 ?fisp dtof  7float8 ?fisp ftod  @width_bucket ?fis)width_bucket_float8  6float84ge ?fisfloat84ge  5float84gt ?fisfloat84gt  4float84le ?fisfloat84le 3float84lt ?fisfloat84lt 2float84ne ?fisfloat84ne 1float84eq ?fisfloat84eq 0float48ge ?fisfloat48ge /float48gt ?fisfloat48gt .float48le ?fisfloat48le -float48lt ?fisfloat48lt ,float48ne ?fisfloat48ne(   HblНtlXtlt(phxpx8jxrvr@llȒtlPtj؏rv`n P8xtrhHhh؁j j) oclose_pb ?fisXX[close_pb( nclose_ps ?fisXXYclose_ps' mdist_sb ?fisY[dist_sb& ldist_pb ?fisX[dist_pb% kdist_ps ?fisXYdist_ps$ jlseg_interpt ?fisXYYlseg_interpt# ilseg_distance ?fisYYlseg_distance" -in_range ?fis3in_range_numeric_numeric! ,in_range ?fis/in_range_float4_float8  +in_range ?fis/in_range_float8_float8 $in_range ?fis'in_range_int2_int2 #in_range ?fis'in_range_int2_int4 "in_range ?fis'in_range_int2_int8 !in_range ?fis'in_range_int4_int2  in_range ?fis'in_range_int4_int4 in_range ?fis'in_range_int4_int8 in_range ?fis'in_range_int8_int8 ~btarraycmp ?fisbtarraycmp }bttintervalcmp ?fisbttintervalcmp |btreltimecmp ?fisbtreltimecmp ycash_cmp ?fiscash_cmp  bttextsortsupport ?fisp%bttextsortsupport hbttextcmp ?fisbttextcmp ? btnamesortsupport ?fisp%btnamesortsupport gbtnamecmp ?fisbtnamecmp fbtcharcmp ?fisbtcharcmp ebtabstimecmp ?fisbtabstimecmp btoidvectorcmp ?fisbtoidvectorcmp  > btoidsortsupport ?fisp#btoidsortsupport  dbtoidcmp ?fisbtoidcmp  = btfloat8sortsupport ?fisp)btfloat8sortsupport  cbtfloat8cmp ?fisbtfloat8cmp  < btfloat4sortsupport ?fisp)btfloat4sortsupport bbtfloat4cmp ?fisbtfloat4cmp ; btint8sortsupport ?fisp%btint8sortsupport Jbtint8cmp ?fisbtint8cmp : btint4sortsupport ?fisp%btint4sortsupport _btint4cmp ?fisbtint4cmp 9 btint2sortsupport ?fisp%btint2sortsupport ^btint2cmp ?fisbtint2cmp \poly_out ?fisp\poly_out(H  HjdНtn`dj^@ddИhh`bzb(zpbzf8~f~`Pxb؍z b`zbz0hpl8jph@bzȂjHj* Hhashmacaddr8 ?fisphashmacaddr8)  hash_numeric_extended ?fis-hash_numeric_extended( hash_numeric ?fisphash_numeric'  hashinetextended ?fise#hashinetextended& hashinet ?fispehashinet%  hashmacaddrextended ?fis=)hashmacaddrextended$ hashmacaddr ?fisp=hashmacaddr#  hash_aclitem_extended ?fis -hash_aclitem_extended" Ihash_aclitem ?fisp hash_aclitem! hashoidvectorextended ?fis-hashoidvectorextended  hashoidvector ?fisphashoidvector hashvarlenaextended ?fis)hashvarlenaextended hashvarlena ?fisphashvarlena hashtextextended ?fis#hashtextextended hashtext ?fisphashtext hashnameextended ?fis#hashnameextended hashname ?fisphashname hashcharextended ?fis#hashcharextended hashchar ?fisphashchar hashoidextended ?fis!hashoidextended hashoid ?fisphashoid hashfloat8extended ?fis'hashfloat8extended hashfloat8 ?fisphashfloat8 hashfloat4extended ?fis'hashfloat4extended hashfloat4 ?fisphashfloat4 hashint8extended ?fis#hashint8extended hashint8 ?fisphashint8 hashint4extended ?fis#hashint4extended hashint4 ?fisphashint4  hashint2extended ?fis#hashint2extended  hashint2 ?fisphashint2  name ?fispbpchar_name  bpchar ?fispname_bpchar  name ?fisptext_name text ?fispname_text text ?fisprtrim1 uinter_sb ?fisY[inter_sb ton_sb ?fisY[ on_sb sdist_ppath ?fisXZdist_ppath rpath_distance ?fisZZpath_distance qon_ps ?fisXY on_ps pclose_sb ?fisXY[close_sb(  8Phpr@^`^(fpfhhHffؔf fhffh@hhЏhh`h\\P\\f(x\Ȉ\\h\ff@ffЃfnXtpp + mktinterval ?fismktinterval * varchar ? fisvarchar )  varchar_transform ?fisp%varchar_transform ( bpchar ?fisbpchar ' namene ?fisnamene & namege ?fisnamege % namegt ?fisnamegt $ namele ?fisnamele # namelt ?fisnamelt " int8 ?fisp int28 ! int2 ?fisp int82  int8 ?fisp ftoi8  float4 ?fisp i8tof  hash_array_extended ?fis)hash_array_extended  rhash_array ?fisphash_array  int8 ?fisp dtoi8  float8 ?fisp i8tod  int8 ?fisp int48  int4 ?fisp int84  int84ge ?fisint84ge  int84le ?fisint84le  int84gt ?fisint84gt  int84lt ?fisint84lt  int84ne ?fisint84ne  int84eq ?fisint84eq  int8ge ?fisint8ge  int8le ?fisint8le  int8gt ?fisint8gt  int8lt ?fisint8lt  int8ne ?fisint8ne  int8eq ?fisint8eq  int8div ?fisint8div  int8mul ?fisint8mul  int8mi ?fisint8mi  int8pl ?fisint8pl  int8um ?fispint8um  int8out ?fispint8out  int8in ?fispint8in  text_smaller ?fistext_smaller  text_larger ?fistext_larger  num_nonnulls ?fisp3-v!pg_num_nonnulls  num_nulls ?fisp3-vpg_num_nulls   hashmacaddr8extended ?fis+hashmacaddr8extended(  Hpp؝p phppb@ddИlrPzpؕxHhؒh hhntn8npȍhhXhhb0bxjjjPjjj(fphrd@ppȀr + array_length ?fisarray_length * ,array_upper ?fisarray_upper ) +array_lower ?fisarray_lower ( array_out ?fssparray_out ' array_in ?fssarray_in & array_ndims ?fisparray_ndims % array_dims ?fisparray_dims $ array_ge ?fisarray_ge # array_le ?fisarray_le " array_gt ?fisarray_gt ! array_lt ?fisarray_lt  array_ne ?fisarray_ne  array_eq ?fisarray_eq  session_user ?fss`session_user  current_user ?fss`current_user  text_ge ?fistext_ge  text_gt ?fistext_gt  text_le ?fistext_le  text_lt ?fistext_lt   dist_cpoint ?fisXdist_cpoint   dist_polyp ?fis\Xdist_polyp   dist_ppoly ?fisX\dist_ppoly  poly_distance ?fis\\poly_distance  dist_cpoly ?fis\dist_cpoly  dist_sl ?fisYtdist_sl  dist_lb ?fist[dist_lb  dist_pl ?fisXtdist_pl  overlay ?fis)byteaoverlay_no_len  overlay ?fisbyteaoverlay  set_bit ?fisbyteaSetBit  get_bit ?fisbyteaGetBit  set_byte ?fisbyteaSetByte  get_byte ?fisbyteaGetByte  octet_length ?fispbyteaoctetlen  oidle ?fis oidle  oidlt ?fis oidlt  getpgusername ?fss`current_user  oidvectorgt ?fisoidvectorgt  oidvectorge ?fisoidvectorge  oidvectoreq ?fisoidvectoreq  oidvectorle ?fisoidvectorle  oidvectorlt ?fisoidvectorlt  koidvectorne ?fisoidvectornepk  @trtlHtt8rxtv0xhn`jr| |`|p`p~rH^`0fxfЀȅ`nXpn9 %  P@geometry_gist_decompress_2d ?fvsp?gserialized_gist_decompress_2d)$libdir/postgis-2.59 $  'O@geometry_gist_same_2d ?fvs@@c$geom1$geom23gserialized_gist_same_2d)$libdir/postgis-2.59E #  N@geometry_gist_union_2d ?fvs5gserialized_gist_union_2d)$libdir/postgis-2.5  ) int2larger ?fisint2larger ( int4smaller ?fisint4smaller ' int4larger ?fisint4larger & int4inc ?fispint4inc " smgrne ?fissmgrne ! smgreq ?fissmgreq  smgrout ?fsspsmgrout  smgrin ?fsspsmgrin  arraycontjoinsel ?fss#arraycontjoinsel  arraycontsel ?fssarraycontsel  array_typanalyze ?fssp#array_typanalyze   width_bucket ?fis'width_bucket_array  array_agg ?aisp!aggregate_dummy  array_agg_array_finalfn ?fis1array_agg_array_finalfn  array_agg_array_transfn ?fis1array_agg_array_transfn   array_agg ?aisp !aggregate_dummy   array_agg_finalfn ?fis %array_agg_finalfn   array_agg_transfn ?fis %array_agg_transfn  ` array_replace ?fisarray_replace  _ array_remove ?fisarray_remove   unnest ?Bfisparray_unnest  array_fill ?fis;array_fill_with_lower_bounds  array_fill ?fisarray_fill  generate_subscripts ?zDfis5generate_subscripts_nodir  generate_subscripts ?zDfis)generate_subscripts   array_positions ?fis!array_positions   array_position ?fis+array_position_start   array_position ?fisarray_position  array_smaller ?fisarray_smaller  array_larger ?fisarray_larger  array_to_string ?fss'array_to_text_null  xstring_to_array ?fis'text_to_array_null  array_to_string ?fssarray_to_text  string_to_array ?fistext_to_array  array_cat ?fisarray_cat  {array_prepend ?fisarray_prepend  zarray_append ?fisarray_append  k cardinality ?fisp%array_cardinality(x  Hpp؝p phppp8txtthHjlؕh hhhhh@hjАlh`jdt(thttt(thttt8`bȅhhXhhh0hxh * ~cash_pl ?fiscash_pl ) }cash_ge ?fiscash_ge ( |cash_gt ?fiscash_gt ' {cash_le ?fiscash_le & zcash_lt ?fiscash_lt % ycash_ne ?fiscash_ne $ xcash_eq ?fiscash_eq # wcash_out ?fsspcash_out " vcash_in ?fsspcash_in ! ccash_div_int2 ?fiscash_div_int2  bcash_mul_int2 ?fiscash_mul_int2  acash_div_int4 ?fiscash_div_int4  `cash_mul_int4 ?fiscash_mul_int4   cash_div_int8 ?fiscash_div_int8   cash_mul_int8 ?fiscash_mul_int8  _int2_mul_cash ?fisint2_mul_cash  ^int4_mul_cash ?fisint4_mul_cash  G int8_mul_cash ?fisint8_mul_cash  1current_query ?fvr`current_query  ]current_database ?fss`#current_database  \bpchar ?fispchar_bpchar  [namenlike ?fisnamenlike  Znamelike ?fisnamelike  Yint48ge ?fisint48ge  Xint48le ?fisint48le  Wint48gt ?fisint48gt  Vint48lt ?fisint48lt  Uint48ne ?fisint48ne  Tint48eq ?fisint48eq  Stextnlike ?fistextnlike  Rtextlike ?fistextlike  Qposition ?fistextpos  Pflt4_mul_cash ?fisflt4_mul_cash  Ocash_div_flt4 ?fiscash_div_flt4  Ncash_mul_flt4 ?fiscash_mul_flt4  tintervalge ?fistintervalge  tintervalle ?fistintervalle  tintervalgt ?fistintervalgt  tintervallt ?fistintervallt  tintervalne ?fistintervalne  tintervaleq ?fistintervaleq  int2smaller ?fisint2smaller(p  HhtȝtnXptf thjjd@dhЕhh`hdd8nhȐlnPx|؍h jhfjv0zpzd0txddjPjjj(npb * area ?fisp[box_area ) path_inter ?fisZZpath_inter ( lo_unlink ?fvupbe_lo_unlink ' close_lb ?fisXt[close_lb & close_sl ?fisXYtclose_sl % close_pl ?fisXXtclose_pl $ on_sl ?fisYt on_sl # on_pl ?fisXt on_pl "  lo_put ?fvube_lo_put !  lo_get ?fvu'be_lo_get_fragment   lo_get ?fvupbe_lo_get   lo_from_bytea ?fvu#be_lo_from_bytea  d lo_truncate64 ?fvu#be_lo_truncate64  lo_truncate ?fvube_lo_truncate  c lo_tell64 ?fvupbe_lo_tell64  lo_tell ?fvupbe_lo_tell  lo_create ?fvupbe_lo_create  lo_creat ?fvupbe_lo_creat  b lo_lseek64 ?fvube_lo_lseek64  lo_lseek ?fvube_lo_lseek  lowrite ?fvube_lowrite  loread ?fvube_loread  lo_close ?fvupbe_lo_close  lo_open ?fvube_lo_open  text ?fispchar_text  char ?fisptext_char  mod ?fisint8mod  int8mod ?fisint8mod  mod ?fisint4mod  mod ?fisint2mod  money ?fsspint8_cash  money ?fsspint4_cash  money ?fsspnumeric_cash  numeric ?fsspcash_numeric  cash_div_cash ?fiscash_div_cash  cash_words ?fispcash_words  flt8_mul_cash ?fisflt8_mul_cash  cashsmaller ?fiscashsmaller  cashlarger ?fiscashlarger  cash_div_flt8 ?fiscash_div_flt8  cash_mul_flt8 ?fiscash_mul_flt8  cash_mi ?fiscash_mi(  HdfНrdXtxj(lplllHlhؕj nhpvp0vpvtl@lpЍhH|d؊f lhlpn8xv(hrdn@ptȀf* varcharout ?fispvarcharout) varcharin ?fisvarcharin( b bpchartypmodout ?fisp!bpchartypmodout' a bpchartypmodin ?fispbpchartypmodin& bpcharout ?fispbpcharout% bpcharin ?fisbpcharin$ ?aclexplode ? Afssp S 5iooooacl,grantor,granteeHprivilege_type@is_grantableaclexplode# gacldefault ?fis acldefault_sql" Umakeaclitem ?fis makeaclitem! &aclitemeq ?fis  aclitem_eq   aclcontains ?fis  aclcontains  aclremove ?fis   aclremove  aclinsert ?fis   aclinsert aclitemout ?fssp aclitemout aclitemin ?fss paclitemin timezone ?fisZ%timestamptz_izone timestamp_izone_transform ?fisp5timestamp_izone_transform lseg_eq ?fisYYlseg_eq lseg_horizontal ?fispY!lseg_horizontal lseg_vertical ?fispYlseg_vertical lseg_perp ?fisYYlseg_perp lseg_parallel ?fisYYlseg_parallel lseg_intersect ?fisYYlseg_intersect lseg ?fisYXXlseg_construct slope ?fisXXpoint_slope point_distance ?fisXXpoint_distance point_horiz ?fisXXpoint_horiz point_vert ?fisXXpoint_vert point_ne ?fisXXpoint_ne  path_length ?fispZpath_length  path_n_ge ?fisZZpath_n_ge  path_n_le ?fisZZpath_n_le  path_n_eq ?fisZZpath_n_eq  path_n_gt ?fisZZpath_n_gt path_n_lt ?fisZZpath_n_lt diagonal ?fisYp[box_diagonal bound_box ?fis[[[!boxes_bound_box box_intersect ?fis[[[box_intersect area ?fispZpath_area box_distance ?fis[[box_distance height ?fisp[box_height width ?fisp[box_width(  HprНjj`jjj8jxtvl@vfȕ~p``bh8hhȐhhXhjrXhhh0hxhjpHrh؅j jhpbj@lhȀt+ zcircle_add_pt ?fisXcircle_add_pt* ytime_eq ?fis;;time_eq) ^ timetypmodout ?fisptimetypmodout( ] timetypmodin ?fisptimetypmodin' xtime_out ?fisp;time_out& wtime_in ?fss;time_in% vdate_mii ?fis::date_mii$ udate_pli ?fis::date_pli# tdate_mi ?fis::date_mi" sdate_smaller ?fis:::date_smaller! rdate_larger ?fis:::date_larger  Stime_cmp ?fis;;time_cmp Rtime_ne ?fis;;time_ne Qtime_ge ?fis;;time_ge Ptime_gt ?fis;;time_gt Otime_le ?fis;;time_le Ntime_lt ?fis;;time_lt %in_range ?fis::/in_range_date_interval @ date_sortsupport ?fisp#date_sortsupport Ddate_cmp ?fis::date_cmp Cdate_ne ?fis::date_ne Bdate_ge ?fis::date_ge Adate_gt ?fis::date_gt @date_le ?fis::date_le ?date_lt ?fis::date_lt >date_eq ?fis::date_eq =date_out ?fssp:date_out <date_in ?fss:pdate_in 9format_type ?fssformat_type hashbpcharextended ?fis'hashbpcharextended  8hashbpchar ?fisphashbpchar   bpchar_sortsupport ?fisp'bpchar_sortsupport  6bpcharcmp ?fisbpcharcmp  (bpchar_smaller ?fisbpchar_smaller  'bpchar_larger ?fisbpchar_larger bpcharne ?fisbpcharne bpcharge ?fisbpcharge bpchargt ?fisbpchargt bpcharle ?fisbpcharle bpcharlt ?fisbpcharlt bpchareq ?fisbpchareq d varchartypmodout ?fisp#varchartypmodout c varchartypmodin ?fisp!varchartypmodin(  @ttt~HpxȚzrHrrȗrrHrvz@xjȑrtPppp(pppphHppЉztPxrȆ~H|hrr0jpx`* age ?fsrpxid_age) abstime ?fisp)timestamptz_abstime( date ?fss:pabstime_date' date ?fss:p#timestamptz_date& interval ?fisp#reltime_interval% timestamptz ?fss:;gselect cast(($1 + $2) as timestamp with time zone)$ justify_days ?fisp-interval_justify_days# justify_hours ?fisp/interval_justify_hours"  justify_interval ?fisp5interval_justify_interval! timestamptz ?fssp:#date_timestamptz  timestamptz ?fisp)abstime_timestamptz date_part ?fisinterval_part date_part ?fss#timestamptz_part interval_mi ?fisinterval_mi interval_pl ?fisinterval_pl interval_um ?fispinterval_um interval_gt ?fisinterval_gt interval_ge ?fisinterval_ge interval_le ?fisinterval_le interval_lt ?fisinterval_lt interval_ne ?fisinterval_ne interval_eq ?fisinterval_eq X intervaltypmodout ?fisp%intervaltypmodout W intervaltypmodin ?fisp#intervaltypmodin interval_out ?fispinterval_out interval_in ?fssinterval_in timezone ?fisZ#timestamptz_zone timestamp_zone_transform ?fisp3timestamp_zone_transform to_timestamp ?fisp'float8_timestamptz  timestamptz_gt ?fistimestamp_gt  timestamptz_ge ?fistimestamp_ge  timestamptz_le ?fistimestamp_le  timestamptz_lt ?fistimestamp_lt  timestamptz_ne ?fistimestamp_ne timestamptz_eq ?fistimestamp_eq \ timestamptztypmodout ?fisp+timestamptztypmodout [ timestamptztypmodin ?fisp)timestamptztypmodin timestamptz_out ?fssp!timestamptz_out ~timestamptz_in ?fsstimestamptz_in }circle_div_pt ?fisXcircle_div_pt |circle_mul_pt ?fisXcircle_mul_pt {circle_sub_pt ?fisXcircle_sub_pt(  Hbr8rx|zz8xxxvvP~8|xvȐ```pp`@npȋttHtt؈`(``~p0hxhjjPhhj( int48mul ?fisint48mul' int48mi ?fisint48mi& int48pl ?fisint48pl% int84div ?fisint84div$ int84mul ?fisint84mul# int84mi ?fisint84mi" int84pl ?fisint84pl! date_part ?fistimetz_part  datetime_pl ?fisZ:;'datetime_timestamp overlaps ?fis!overlaps_timetz int2abs ?fispint2abs int4abs ?fispint4abs nameicregexne ?fisnameicregexne nameicregexeq ?fisnameicregexeq texticregexne ?fistexticregexne texticregexeq ?fistexticregexeq int8smaller ?fisint8smaller int8larger ?fisint8larger int8abs ?fispint8abs  int8dec_any ?fisint8dec_any  int8inc_any ?fisint8inc_any  int8dec ?fispint8dec int8inc ?fispint8inc date_trunc ?fisinterval_trunc date_trunc ?fss%timestamptz_trunc shobj_description Bfssselect description from pg_catalog.pg_shdescription where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = 11) col_description BfssLselect description from pg_catalog.pg_description where objoid = $1 and classoid = 'pg_catalog.pg_class'::pg_catalog.regclass and objsubid = $2  obj_description Bfssselect description from pg_catalog.pg_description where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = 11) and objsubid = 0  interval ?Nfisinterval_scale  Ninterval_transform ?fisp'interval_transform  age ?fis!timestamptz_age  interval_larger ?fis!interval_larger interval_smaller ?fis#interval_smaller timestamptz_larger ?fis#timestamp_larger timestamptz_smaller ?fis%timestamp_smaller reltime ?fisp#interval_reltime timestamptz_mi_interval ?fss1timestamptz_mi_interval timestamptz_pl_interval ?fss1timestamptz_pl_interval timestamptz_mi ?fistimestamp_mi cmxid_age ?fsspmxid_age(P  Hjh؝h jhjhh@jjؘ`(``dz(|pdddHddؐj lhnz zxPЋPp`h؈xP0P) overlaps ?fis;;;Sselect ($1, $2) overlaps ($3, ($3 + $4))( overlaps ?fis;;aselect ($1, ($1 + $2)) overlaps ($3, ($3 + $4))' overlaps ?fis;;;;overlaps_time& overlaps ?fssSselect ($1, ($1 + $2)) overlaps ($3, $4)% overlaps ?fssSselect ($1, $2) overlaps ($3, ($3 + $4))$ overlaps ?fssaselect ($1, ($1 + $2)) overlaps ($3, ($3 + $4))# overlaps ?fis'overlaps_timestamp" contjoinsel ?fsscontjoinsel! contsel ?fsscontsel  positionjoinsel ?fss!positionjoinsel positionsel ?fsspositionsel Y clock_timestamp ?fvs`!clock_timestamp X statement_timestamp ?fsr`)statement_timestamp W transaction_timestamp ?fss` now now ?fsr` now timetzdate_pl ?fis:#select ($2 + $1) datetimetz_pl ?fis:/datetimetz_timestamptz timedate_pl ?fisZ;:#select ($2 + $1)  tidsmaller ?fistidsmaller  tidlarger ?fistidlarger  bttidcmp ?fisbttidcmp  tidle ?fis tidle  tidge ?fis tidge  tidlt ?fis tidlt  tidgt ?fis tidgt tidne ?fis tidne currtid2 ?fvu%currtid_byrelname  currtid ?fvu#currtid_byreloid   tideq ?fis tideq   suppress_redundant_updates_trigger ?fvs`Gsuppress_redundant_updates_trigger  int8 ?fispoidtoi8  oid ?fispi8tooid  int28div ?fisint28div int28mul ?fisint28mul int28mi ?fisint28mi Iint28pl ?fisint28pl Hint82div ?fisint82div Gint82mul ?fisint82mul Fint82mi ?fisint82mi Eint82pl ?fisint82pl int48div ?fisint48div(0  `zlt(vhtrn@`dЗdfXr^^H\^^8\\АbbhZhnt8fnȊplXlll0lxlnPd`l0d* \char_length ?fispbpcharlen) Zinterval ?fisp;time_interval( Ycharacter_length ?fisptextlen' Wcharacter_length ?fispbpcharlen& Ttime ?fss;pselect cast(cast($1 as timestamp without time zone) as pg_catalog.time)% Otimestamptz ?fis:/datetimetz_timestamptz$ Ntimetz_cmp ?fistimetz_cmp# Mtimetz_gt ?fistimetz_gt" Ltimetz_ge ?fistimetz_ge! Ktimetz_le ?fistimetz_le  Jtimetz_lt ?fistimetz_lt Itimetz_ne ?fistimetz_ne Htimetz_eq ?fistimetz_eq ` timetztypmodout ?fisp!timetztypmodout _ timetztypmodin ?fisptimetztypmodin Gtimetz_out ?fisptimetz_out Ftimetz_in ?fsstimetz_in Eoidvectortypes ?fsspoidvectortypes Dobj_description Bfsspselect description from pg_catalog.pg_description where objoid = $1 and objsubid = 0 Cexp ?fisp dexp Xpower ?fis dpow Bpow ?fis dpow Acbrt ?fisp dcbrt @sqrt ?fisp dsqrt ?trunc ?fispdtrunc >round ?fispdround =ln ?fisp dlog1 <log ?fispdlog10 ;dlog10 ?fispdlog10  .interval_div ?fisinterval_div   xidneqint4 ?fisxidneq  'xideqint4 ?fis xideq  &length ?fispbpcharlen  %length ?fisptextlen $time ?fis;pZtimestamp_time #interval_cmp ?fisinterval_cmp "timestamptz_cmp ?fistimestamp_cmp Z timestamptypmodout ?fisp'timestamptypmodout Y timestamptypmodin ?fisp%timestamptypmodin !timestamp_out ?fsspZtimestamp_out  timestamp_in ?fssZtimestamp_in overlaps ?fis;;;Sselect ($1, ($1 + $2)) overlaps ($3, $4)(`  Hjn؝prXtv`PlXvh rhphd@d``0`xddfPpȊnXptl(lpptl@lpЂll`n) box ?fis[XXpoints_box( time ?fis;pinterval_time' point ?fisXpcircle_center& ishorizontal ?fispt!line_horizontal% isvertical ?fisptline_vertical$ isperp ?fisttline_perp# isparallel ?fisttline_parallel" ishorizontal ?fispY!lseg_horizontal! isvertical ?fispYlseg_vertical  isperp ?fisYYlseg_perp isparallel ?fisYYlseg_parallel ishorizontal ?fisXXpoint_horiz ~isvertical ?fisXXpoint_vert }overlay ?fis'textoverlay_no_len |overlay ?fistextoverlay {current_schemas ?fssp!current_schemas zcurrent_schema ?fss`current_schema yvarchar ?fispname_text xname ?fisptext_name vabs ?fispint2abs uabs ?fispint4abs tabs ?fispint8abs sabs ?fispfloat8abs rabs ?fispfloat4abs `factorial ?fispnumeric_fac nisfinite ?fisp!interval_finite misfinite ?fisp#timestamp_finite ]isfinite ?fisp:date_finite  ltimetz ?fssp'timestamptz_timetz  jage ?fsspselect pg_catalog.age(cast(current_date as timestamp with time zone), $1)  idate_part ?fis;time_part  hdate_part ?fis:select pg_catalog.date_part($1, cast($2 as timestamp without time zone))  gdate_part ?fssselect pg_catalog.date_part($1, cast($2 as pg_catalog.interval)) fdate_part ?fssselect pg_catalog.date_part($1, cast($2 as timestamp with time zone)) echar_length ?fisptextlen dtimetz_smaller ?fistimetz_smaller ctimetz_larger ?fistimetz_larger btime_smaller ?fis;;;time_smaller atime_larger ?fis;;;time_larger _octet_length ?fispbpcharoctetlen ^octet_length ?fisptextoctetlen(`  Hhh؝h hPxК|l`hjf8djȕppXppx(lplllHjb؍d bhddf@pvȈpxHzrȅzvHrrЂll`l* circle_lt ?fiscircle_lt) circle_ne ?fiscircle_ne( circle_eq ?fiscircle_eq' circle_above ?fiscircle_above& circle_below ?fiscircle_below% circle_overlap ?fiscircle_overlap$ circle_contained ?fis#circle_contained# circle_right ?fiscircle_right" circle_overright ?fis#circle_overright! circle_overleft ?fis!circle_overleft  circle_left ?fiscircle_left circle_contain ?fiscircle_contain circle_same ?fiscircle_same circle_out ?fispcircle_out circle_in ?fispcircle_in polygon ?fis\pZpath_poly polygon ?fis\p[box_poly path ?fisZp\poly_path box ?fis[p\poly_box poly_npoints ?fisp\poly_npoints point_div ?fisXXXpoint_div point_mul ?fisXXXpoint_mul point_sub ?fisXXXpoint_sub point_add ?fisXXXpoint_add point ?fisX!construct_point path_div_pt ?fisZZXpath_div_pt path_mul_pt ?fisZZXpath_mul_pt path_sub_pt ?fisZZXpath_sub_pt path_add_pt ?fisZZXpath_add_pt  path_add ?fisZZZpath_add  popen ?fisZpZpath_open  pclose ?fisZpZpath_close  path_npoints ?fispZpath_npoints  isopen ?fispZpath_isopen isclosed ?fispZpath_isclosed pt_contained_poly ?fisX\%pt_contained_poly poly_contain_pt ?fis\X!poly_contain_pt path_contain_pt ?fisZXGselect pg_catalog.on_ppath($2, $1) box_div ?fis[[Xbox_div box_mul ?fis[[Xbox_mul box_sub ?fis[[Xbox_sub box_add ?fis[[Xbox_add(  Hll؝l hhplx8llȘhpXh|ؕ dhffp@hhАhh`hhj8n`ЋbhX|r؈vt`llp8hhȃhhXfhj+ lseg ?fisYp[box_diagonal* point ?fisXp\poly_center) point ?fisXp[box_center( point ?fisXpZpath_center' point ?fisXpYlseg_center& length ?fispZpath_length% length ?fispYlseg_length$ line_horizontal ?fispt!line_horizontal# line_vertical ?fisptline_vertical" line_perp ?fisttline_perp! line_parallel ?fisttline_parallel  line_intersect ?fisttline_intersect line_interpt ?fisXttline_interpt line ?fistXX%line_construct_pp line_eq ?fisttline_eq line_out ?fisptline_out line_in ?fistpline_in close_lseg ?fisXYYclose_lseg close_ls ?fisXtYclose_ls lseg_length ?fispYlseg_length lseg_ge ?fisYYlseg_ge lseg_gt ?fisYYlseg_gt lseg_le ?fisYYlseg_le lseg_lt ?fisYYlseg_lt lseg_ne ?fisYYlseg_ne tinterval ?fismktinterval box ?fis[pcircle_box circle ?fisp[box_circle box ?fis[pXpoint_box pt_contained_circle ?fisX)pt_contained_circle  circle_contain_pt ?fisX%circle_contain_pt  dist_pc ?fisXdist_pc  polygon ?fis\circle_poly  circle ?fisp\poly_circle  circle ?fisXcr_circle circle_center ?fisXpcircle_center circle_distance ?fis!circle_distance radius ?fispcircle_radius diameter ?fisp!circle_diameter area ?fispcircle_area circle_ge ?fiscircle_ge circle_le ?fiscircle_le circle_gt ?fiscircle_gt(  HfljPjn`0hxjjlPjlh(hpnxf8~xtfnPpdd(dpdddHfX`8\\؅\ fpZZZ`Z^^*  acosd ?fispdacosd)  asind ?fispdasind( Gcot ?fisp dcot' Ftan ?fisp dtan& Ecos ?fisp dcos% Dsin ?fisp dsin$ Catan2 ?fisdatan2# Batan ?fisp datan" Aacos ?fisp dacos! @asin ?fisp dasin  ?setseed ?fvrpsetseed >random ?fvr`drandom <bitcmp ?fisbitcmp ;bitlt ?fis bitlt :bitle ?fis bitle 9bitgt ?fis bitgt 8bitge ?fis bitge .bitne ?fis bitne -biteq ?fis biteq i varbittypmodout ?fisp!varbittypmodout V varbittypmodin ?fispvarbittypmodin ,varbit_out ?fispvarbit_out +varbit_in ?fisvarbit_in pg_sequence_last_value ?fvup/pg_sequence_last_value ? pg_sequence_parameters ?fsspk;iooooooo@sequence_oid<start_valueDminimum_valueDmaximum_value4increment@cycle_option8cache_size4data_type/pg_sequence_parameters setval ?fvusetval3_oid (setval ?fvusetval_oid 'currval ?fvupcurrval_oid &nextval ?fvupnextval_oid  $notlike ?fisnamenlike  #like ?fisnamelike  "notlike ?fistextnlike  !like ?fistextlike  h bittypmodout ?fispbittypmodout g bittypmodin ?fispbittypmodin bit_out ?fispbit_out bit_in ?fisbit_in npoints ?fisp\poly_npoints  npoints ?fispZpath_npoints polygon ?fis\pEselect pg_catalog.polygon(12, $1) center ?fisXpcircle_center center ?fisXp[box_center((  P^h\8\\؛\(`x`ЙPr`\Xf8vxvjlPnpn(ppptt8ppȌnpXh\\H`j؇j dhdxtH^^(~+ ssubstr ?fis'text_substr_no_len* rrtrim ?fisprtrim1) qltrim ?fispltrim1( prpad ?fisIselect pg_catalog.rpad($1, $2, ' ')' olpad ?fisIselect pg_catalog.lpad($1, $2, ' ')& ntranslate ?fistranslate% msubstr ?fistext_substr$ lrtrim ?fis rtrim# kltrim ?fis ltrim" jrpad ?fis rpad! ilpad ?fis lpad  hinitcap ?fispinitcap gupper ?fisp upper flower ?fisp lower dstrpos ?fistextpos }bpcharicnlike ?fistexticnlike |bpchariclike ?fistexticlike {bpcharregexne ?fistextregexne zbpcharregexeq ?fistextregexeq ybpcharicregexne ?fistexticregexne xbpcharicregexeq ?fistexticregexeq elike_escape ?fislike_escape dnameicnlike ?fisnameicnlike cnameiclike ?fisnameiclike btexticnlike ?fistexticnlike atexticlike ?fistexticlike `bpcharnlike ?fistextnlike _bpcharlike ?fistextlike Xmul_d_interval ?fismul_d_interval Wsimilar_escape ?fissimilar_escape  Vrepeat ?fisrepeat  Uchr ?fisp chr  Tascii ?fisp ascii  Rinterval_mul ?fisinterval_mul  Jpi ?fis` dpi Iradians ?fispradians Hdegrees ?fispdegrees  cotd ?fisp dcotd  tand ?fisp dtand  cosd ?fisp dcosd  sind ?fisp dsind  atan2d ?fisdatan2d  atand ?fispdatand(H  Hd^؝x~XzȚ@zx~v(`ȓbXbpn(~hxtv(xhxd0dxnxnHppЅtHtȂzpH) pg_get_serial_sequence ?fss/pg_get_serial_sequence( pg_get_expr ?fsspg_get_expr' kpg_get_constraintdef ?fssp+pg_get_constraintdef& ~pg_get_triggerdef ?fssp%pg_get_triggerdef% P pg_get_partition_constraintdef ?fssp?pg_get_partition_constraintdef$  pg_get_partkeydef ?fssp%pg_get_partkeydef# W pg_get_statisticsobjdef ?fssp1pg_get_statisticsobjdef" kpg_get_indexdef ?fssp!pg_get_indexdef! jpg_get_userbyid ?fssp!pg_get_userbyid  ipg_get_viewdef ?fsrppg_get_viewdef hpg_get_viewdef ?fsrp)pg_get_viewdef_name %pg_get_ruledef ?fssppg_get_ruledef goidge ?fis oidge foidgt ?fis oidgt  pg_encoding_max_length ?fisp7pg_encoding_max_length_sql =pg_encoding_to_char ?fssp)PG_encoding_to_char pg_char_to_encoding ?fssp)PG_char_to_encoding convert ?fsspg_convert convert_to ?fsspg_convert_to convert_from ?fss!pg_convert_from length ?fss'length_in_encoding *pg_client_encoding ?fss`'pg_client_encoding getdatabaseencoding ?fss`)getdatabaseencoding *to_hex ?fispto_hex64 )to_hex ?fispto_hex32  regexp_split_to_array ?fis-regexp_split_to_array  regexp_split_to_array ?fis?regexp_split_to_array_no_flags  regexp_split_to_table ?zDfis-regexp_split_to_table   regexp_split_to_table ?zDfis?regexp_split_to_table_no_flags  (split_part ?fissplit_text   regexp_matches ? Afisregexp_matches   regexp_matches ??fis1regexp_matches_no_flags  E regexp_match ?fisregexp_match D regexp_match ?fis-regexp_match_no_flags regexp_replace ?fis#textregexreplace regexp_replace ?fis/textregexreplace_noopt 'replace ?fisreplace_text substring ?fis'text_substr_no_len substring ?fistext_substr ubtrim ?fispbtrim1 tbtrim ?fis btrim(  @vx~ D|d@rx蕌0nxllpPprАrp`pvv r`rdd8ddȈddXfhf0f^rtHftЀd) length ?fispbitlength( substring ?fisbitsubstr' bitcat ?fisbitcat& bitshiftright ?fisbitshiftright% bitshiftleft ?fisbitshiftleft$ bitnot ?fispbitnot# bitxor ?fisbitxor" bitor ?fisbit_or! bitand ?fisbit_and  varbitcmp ?fisbitcmp varbitlt ?fis bitlt varbitle ?fis bitle varbitgt ?fis bitgt varbitge ?fis bitge varbitne ?fis bitne varbiteq ?fis biteq wRI_FKey_noaction_upd ?fvs`+RI_FKey_noaction_upd vRI_FKey_noaction_del ?fvs`+RI_FKey_noaction_del uRI_FKey_setdefault_upd ?fvs`/RI_FKey_setdefault_upd tRI_FKey_setdefault_del ?fvs`/RI_FKey_setdefault_del sRI_FKey_setnull_upd ?fvs`)RI_FKey_setnull_upd rRI_FKey_setnull_del ?fvs`)RI_FKey_setnull_del qRI_FKey_restrict_upd ?fvs`+RI_FKey_restrict_upd pRI_FKey_restrict_del ?fvs`+RI_FKey_restrict_del oRI_FKey_cascade_upd ?fvs`)RI_FKey_cascade_upd nRI_FKey_cascade_del ?fvs`)RI_FKey_cascade_del mRI_FKey_check_upd ?fvs`%RI_FKey_check_upd lRI_FKey_check_ins ?fvs`%RI_FKey_check_ins  unique_key_recheck ?fvs`'unique_key_recheck  pg_get_replica_identity_index Afssp=pg_get_replica_identity_index  pg_column_is_updatable Afss/pg_column_is_updatable  pg_relation_is_updatable Afss3pg_relation_is_updatable  Z pg_collation_for ?fssp#pg_collation_for Spg_typeof ?fssppg_typeof ?pg_options_to_table ?@@fsspC1iooDoptions_array<option_name@option_value)pg_options_to_table ?pg_get_keywords ACfss`C1oook word,catcode,catdesc!pg_get_keywords pg_get_function_arg_default ?fss9pg_get_function_arg_default upg_get_function_result ?fssp/pg_get_function_result pg_get_function_identity_arguments ?fsspGpg_get_function_identity_arguments rpg_get_function_arguments ?fssp5pg_get_function_arguments 2pg_get_functiondef ?fssp'pg_get_functiondef(p  Hnp؝d h`rnp0zp~l0txfhlPnnn(npnnpHhp؍nx`hjn8ppȈppXppr(jhrpt0tpr* macaddr8_set7bit ?fisp#macaddr8_set7bit) macaddr ?fis=p%macaddr8tomacaddr( macaddr8 ?fisp=%macaddrtomacaddr8' macaddr8_or ?fismacaddr8_or& macaddr8_and ?fismacaddr8_and% macaddr8_not ?fispmacaddr8_not$ macaddr8_cmp ?fismacaddr8_cmp# macaddr8_ne ?fismacaddr8_ne" macaddr8_ge ?fismacaddr8_ge! macaddr8_gt ?fismacaddr8_gt  macaddr8_le ?fismacaddr8_le macaddr8_lt ?fismacaddr8_lt macaddr8_eq ?fismacaddr8_eq trunc ?fispmacaddr8_trunc macaddr8_out ?fispmacaddr8_out macaddr8_in ?fispmacaddr8_in  macaddr_sortsupport ?fisp)macaddr_sortsupport J macaddr_or ?fis===macaddr_or I macaddr_and ?fis===macaddr_and H macaddr_not ?fis=p=macaddr_not Dmacaddr_cmp ?fis==macaddr_cmp Cmacaddr_ne ?fis==macaddr_ne Bmacaddr_ge ?fis==macaddr_ge Amacaddr_gt ?fis==macaddr_gt @macaddr_le ?fis==macaddr_le ?macaddr_lt ?fis==macaddr_lt >macaddr_eq ?fis==macaddr_eq trunc ?fis=p=macaddr_trunc macaddr_out ?fisp=macaddr_out  macaddr_in ?fis=pmacaddr_in   set_bit ?fisbitsetbit   get_bit ?fisbitgetbit   overlay ?fis%bitoverlay_no_len   overlay ?fisbitoverlay substring ?fis#bitsubstr_no_len position ?fisbitposition varbit ?V fisvarbit V varbit_transform ?fisp#varbit_transform bit ?fis bit int4 ?fispbittoint4 bit ?fisbitfromint4 octet_length ?fispbitoctetlength(  P`b`0bxnnnPnnn v`xpp0txptx@hhȐzzPnpp(phtjj8rjȈjjXjj`8hfȃfvPpf؀z+ inet_same_family ?fisee#inet_same_family* I inetmi ?fiseeinetmi) H inetmi_int8 ?fiseeinetmi_int8( G int8pl_inet ?fiseeselect $2 + $1' F inetpl ?fiseeinetpl& E inetor ?fiseeeinetor% D inetand ?fiseeeinetand$ C inetnot ?fisepeinetnot# inet_server_port ?fss`#inet_server_port" inet_server_addr ?fsse`#inet_server_addr! inet_client_port ?fsr`#inet_client_port  inet_client_addr ?fsre`#inet_client_addr cidr ?fispeinet_to_cidr Rhostmask ?fisepe#network_hostmask text ?fispenetwork_show host ?fispenetwork_host broadcast ?fisepe%network_broadcast masklen ?fispe!network_masklen netmask ?fisepe!network_netmask network ?fispe!network_network family ?fispenetwork_family {set_masklen ?fis#cidr_set_masklen ]set_masklen ?fisee#inet_set_masklen Wabbrev ?fispcidr_abbrev Vabbrev ?fispeinet_abbrev  network_overlap ?fisee!network_overlap network_supeq ?fiseenetwork_supeq network_sup ?fiseenetwork_sup network_subeq ?fiseenetwork_subeq network_sub ?fiseenetwork_sub  network_cmp ?fiseenetwork_cmp   network_smaller ?fiseee!network_smaller   network_larger ?fiseeenetwork_larger  network_ne ?fiseenetwork_ne  network_ge ?fiseenetwork_ge network_gt ?fiseenetwork_gt network_le ?fiseenetwork_le network_lt ?fiseenetwork_lt network_eq ?fiseenetwork_eq cidr_out ?fispcidr_out cidr_in ?fispcidr_in inet_out ?fispeinet_out inet_in ?fisepinet_in(  Hnxxv@px~8xxx~(h~r(fpfld@~hl@vȋhpPrt؈h hhhjt(htj0jxln* numeric_eq ?fisnumeric_eq) floor ?fispnumeric_floor( wceiling ?fispnumeric_ceil' ceil ?fispnumeric_ceil& trunc ?fisp=select pg_catalog.trunc($1,0)% trunc ?fisnumeric_trunc$ round ?fisp=select pg_catalog.round($1,0)# round ?fisnumeric_round" sign ?fispnumeric_sign! abs ?fispnumeric_abs  numeric_abs ?fispnumeric_abs numeric ?U fisnumeric U numeric_transform ?fisp%numeric_transform f numerictypmodout ?fisp#numerictypmodout e numerictypmodin ?fisp!numerictypmodin numeric_out ?fispnumeric_out numeric_in ?fisnumeric_in Z interval_hash_extended ?fis/interval_hash_extended interval_hash ?fispinterval_hash R timetz_hash_extended ?fis+timetz_hash_extended timetz_hash ?fisptimetz_hash Q time_hash_extended ?fis;'time_hash_extended time_hash ?fisp;time_hash btboolcmp ?fisbtboolcmp boolge ?fisboolge boolle ?fisboolle time_mi_time ?fis;;time_mi_time  networkjoinsel ?fssnetworkjoinsel  networksel ?fssnetworksel  inet_spg_leaf_consistent ?fis3inet_spg_leaf_consistent  inet_spg_inner_consistent ?fis5inet_spg_inner_consistent  inet_spg_picksplit ?fis'inet_spg_picksplit  inet_spg_choose ?fis!inet_spg_choose  inet_spg_config ?fis!inet_spg_config  inet_gist_same ?fiseeinet_gist_same  inet_gist_picksplit ?fis)inet_gist_picksplit  inet_gist_penalty ?fis%inet_gist_penalty  inet_gist_fetch ?fisp!inet_gist_fetch  inet_gist_compress ?fisp'inet_gist_compress  inet_gist_union ?fise!inet_gist_union  inet_gist_consistent ?fise+inet_gist_consistent inet_merge ?fiseeinet_merge(H  Hnn؝n nhnpp@ppИpp`jjh8hfȓfpXptؐtt`lj(npnjnHn|Ȉ|8zxz~~@hxvpHx*  numeric_sortsupport ?fisp)numeric_sortsupport) numeric_cmp ?fisnumeric_cmp( numeric_larger ?fisnumeric_larger' numeric_smaller ?fis!numeric_smaller& numeric_inc ?fispnumeric_inc% timetz_mi_interval ?fis'timetz_mi_interval$ timetz_pl_interval ?fis'timetz_pl_interval# time_mi_interval ?fis;;#time_mi_interval" time_pl_interval ?fis;;#time_pl_interval! zwidth_bucket ?fis+width_bucket_numeric  numeric_div_trunc ?fis%numeric_div_trunc div ?fis%numeric_div_trunc float8 ?fispnumeric_float8 float4 ?fispnumeric_float4 int4 ?fispnumeric_int4 numeric ?fispfloat8_numeric numeric ?fispfloat4_numeric log ?fisp=select pg_catalog.log(10, $1) numeric ?fispint4_numeric  scale ?fispnumeric_scale numeric_power ?fisnumeric_power ypower ?fisnumeric_power pow ?fisnumeric_power numeric_log ?fisnumeric_log log ?fisnumeric_log numeric_ln ?fispnumeric_ln ln ?fispnumeric_ln numeric_exp ?fispnumeric_exp exp ?fispnumeric_exp  numeric_sqrt ?fispnumeric_sqrt  sqrt ?fispnumeric_sqrt  numeric_mod ?fisnumeric_mod  mod ?fisnumeric_mod  numeric_div ?fisnumeric_div numeric_mul ?fisnumeric_mul numeric_sub ?fisnumeric_sub numeric_add ?fisnumeric_add numeric_le ?fisnumeric_le numeric_lt ?fisnumeric_lt numeric_ge ?fisnumeric_ge numeric_gt ?fisnumeric_gt numeric_ne ?fisnumeric_ne(  Hnj؝j jhjfl@ffИfj`jx r`rvv |`rhz0hxlnP\^ȈlXnjn(XЁ|~) icnlikesel ?fssicnlikesel( iclikesel ?fssiclikesel' bit_length ?fisp;select pg_catalog.length($1)& bit_length ?fispOselect pg_catalog.octet_length($1) * 8% bit_length ?fispOselect pg_catalog.octet_length($1) * 8$  format ?fssptext_format_nv#  format ?fss;/ivtext_format"  reverse ?fisptext_reverse!  right ?fistext_right   left ?fistext_left  concat_ws ?fss;/ivtext_concat_ws  concat ?fssp3-vtext_concat oidout ?fispoidout oidin ?fisp oidin  quote_nullable ?fsspmselect pg_catalog.quote_nullable($1::pg_catalog.text)  quote_nullable ?fispquote_nullable quote_literal ?fsspkselect pg_catalog.quote_literal($1::pg_catalog.text) quote_literal ?fispquote_literal quote_ident ?fispquote_ident to_char ?fss#interval_to_char to_date ?fss:to_date to_timestamp ?fssto_timestamp to_number ?fss%numeric_to_number to_char ?fssfloat8_to_char to_char ?fssfloat4_to_char to_char ?fssint8_to_char to_char ?fssint4_to_char to_char ?fss!numeric_to_char  to_char ?fss)timestamptz_to_char   float8 ?fispjsonb_float8  } float4 ?fispjsonb_float4  | int8 ?fispjsonb_int8  { int4 ?fispjsonb_int4 z int2 ?fispjsonb_int2 y numeric ?fispjsonb_numeric  bool ?fispjsonb_bool int2 ?fispnumeric_int2 numeric ?fispint2_numeric numeric ?fispint8_numeric int8 ?fispnumeric_int8 numeric_uminus ?fispnumeric_uminus(  8p~x(h~zP `|f(npptv0tpx|0|ht艀(|pnnn8x~v0vpvv~ ) ; int8_avg_accum_inv ?fis'int8_avg_accum_inv (  int8_accum_inv ?fisint8_accum_inv '  int4_accum_inv ?fisint4_accum_inv &  int2_accum_inv ?fisint2_accum_inv %  int8_avg_accum ?fisint8_avg_accum $  numeric_poly_deserialize ?fis3numeric_poly_deserialize #  numeric_poly_serialize ?fisp/numeric_poly_serialize "  numeric_poly_combine ?fis+numeric_poly_combine ! ,int8_accum ?fisint8_accum  +int4_accum ?fisint4_accum  *int2_accum ?fisint2_accum   numeric_accum_inv ?fis%numeric_accum_inv   numeric_deserialize ?fis)numeric_deserialize   numeric_serialize ?fisp%numeric_serialize   numeric_avg_deserialize ?fis1numeric_avg_deserialize   numeric_avg_serialize ?fisp-numeric_avg_serialize   numeric_avg_combine ?fis)numeric_avg_combine  * numeric_avg_accum ?fis%numeric_avg_accum   numeric_combine ?fis!numeric_combine  )numeric_accum ?fisnumeric_accum  (float8_stddev_samp ?fisp'float8_stddev_samp   float8_stddev_pop ?fisp%float8_stddev_pop  'float8_var_samp ?fisp!float8_var_samp   float8_var_pop ?fispfloat8_var_pop  &float8_avg ?fispfloat8_avg  n prefixjoinsel ?fssprefixjoinsel  m prefixsel ?fssprefixsel  %icregexnejoinsel ?fss#icregexnejoinsel  $nlikejoinsel ?fssnlikejoinsel  #regexnejoinsel ?fssregexnejoinsel  "icregexeqjoinsel ?fss#icregexeqjoinsel  !likejoinsel ?fsslikejoinsel   regexeqjoinsel ?fssregexeqjoinsel  icregexnesel ?fssicregexnesel  nlikesel ?fssnlikesel  regexnesel ?fssregexnesel  icregexeqsel ?fssicregexeqsel  likesel ?fsslikesel  regexeqsel ?fssregexeqsel  icnlikejoinsel ?fssicnlikejoinsel  iclikejoinsel ?fssiclikejoinsel(  @zvz@hhКprPvxؗj jhjrr(zh| v`z~j(vhv~~0bxj舄(pppp@rrȃntH|rȀt!*  float8_covar_samp ?fisp%float8_covar_samp!)  float8_covar_pop ?fisp#float8_covar_pop!(  float8_regr_intercept ?fisp-float8_regr_intercept!'  float8_regr_slope ?fisp%float8_regr_slope!&  float8_regr_r2 ?fispfloat8_regr_r2!%  float8_regr_avgy ?fisp#float8_regr_avgy!$  float8_regr_avgx ?fisp#float8_regr_avgx!#  float8_regr_sxy ?fisp!float8_regr_sxy!"  float8_regr_syy ?fisp!float8_regr_syy!!  float8_regr_sxx ?fisp!float8_regr_sxx!   float8_regr_combine ?fis)float8_regr_combine!  float8_regr_accum ?fis%float8_regr_accum!  int8inc_float8_float8 ?fis-int8inc_float8_float8!  int2int4_sum ?fispint2int4_sum! int8_avg ?fispint8_avg!  int4_avg_accum_inv ?fis'int4_avg_accum_inv!  int2_avg_accum_inv ?fis'int2_avg_accum_inv! int4_avg_accum ?fisint4_avg_accum! int2_avg_accum ?fisint2_avg_accum! 4interval_avg ?fispinterval_avg!  interval_accum_inv ?fis'interval_accum_inv!  interval_combine ?fis#interval_combine! 3interval_accum ?fisinterval_accum! A numeric_poly_stddev_samp ?fisp3numeric_poly_stddev_samp! @ numeric_poly_stddev_pop ?fisp1numeric_poly_stddev_pop! ? numeric_poly_var_samp ?fisp-numeric_poly_var_samp! > numeric_poly_var_pop ?fisp+numeric_poly_var_pop! = numeric_poly_avg ?fisp#numeric_poly_avg! < numeric_poly_sum ?fisp#numeric_poly_sum!  2int8_sum ?fisint8_sum!  1int4_sum ?fisint4_sum!  0int2_sum ?fisint2_sum!  /numeric_stddev_samp ?fisp)numeric_stddev_samp!  $ numeric_stddev_pop ?fisp'numeric_stddev_pop! .numeric_var_samp ?fisp#numeric_var_samp!  numeric_var_pop ?fisp!numeric_var_pop! -numeric_avg ?fispnumeric_avg! j numeric_sum ?fispnumeric_sum!  int4_avg_combine ?fis#int4_avg_combine!  int8_avg_deserialize ?fis+int8_avg_deserialize!  int8_avg_serialize ?fisp'int8_avg_serialize!  int8_avg_combine ?fis#int8_avg_combine(  Hhvx0hxr(rhzvh8hhȔhhXhhh0hxhhhPhfh0`xhhhPfh`0hxhhfPh`h0h^Ѐ^"+ wint2up ?fispint2up"* vint8up ?fispint8up") uint8shr ?fisint8shr"( tint8shl ?fisint8shl"' sint8not ?fispint8not"& rint8xor ?fisint8xor"% qint8or ?fisint8or"$ pint8and ?fisint8and"# oint4shr ?fisint4shr"" nint4shl ?fisint4shl"! mint4not ?fispint4not"  lint4xor ?fisint4xor" kint4or ?fisint4or" jint4and ?fisint4and" iint2shr ?fisint2shr" hint2shl ?fisint2shl" gint2not ?fispint2not" fint2xor ?fisint2xor" eint2or ?fisint2or" dint2and ?fisint2and" Eint82ge ?fisint82ge" Dint82le ?fisint82le" Cint82gt ?fisint82gt" Bint82lt ?fisint82lt" Aint82ne ?fisint82ne" @int82eq ?fisint82eq" ?int28ge ?fisint28ge" >int28le ?fisint28le" =int28gt ?fisint28gt" <int28lt ?fisint28lt"  ;int28ne ?fisint28ne"  :int28eq ?fisint28eq"  8interval_pl_time ?fis;;select $2 + $1"  7to_ascii ?fis#to_ascii_encname"  6to_ascii ?fisto_ascii_enc" 5to_ascii ?fisp#to_ascii_default"  string_agg ?ais!aggregate_dummy"  bytea_string_agg_finalfn ?fisp3bytea_string_agg_finalfn"  bytea_string_agg_transfn ?fis3bytea_string_agg_transfn"  string_agg ?ais!aggregate_dummy"  string_agg_finalfn ?fisp'string_agg_finalfn"  string_agg_transfn ?fis'string_agg_transfn"  float8_corr ?fispfloat8_corr(  P^bb(lX虔 XHȑ@h苞@p膢HȃprHttȀv#' L pg_dependencies_in ?fisJ p'pg_dependencies_in#&  pg_ndistinct_send ?fssp! %pg_ndistinct_send#%  pg_ndistinct_recv ?fss! p%pg_ndistinct_recv#$  pg_ndistinct_out ?fisp! #pg_ndistinct_out##  pg_ndistinct_in ?fis! p!pg_ndistinct_in#"  has_any_column_privilege Afss9has_any_column_privilege_id#!  has_any_column_privilege Afss=has_any_column_privilege_name#   has_any_column_privilege Afss?has_any_column_privilege_id_id#  has_any_column_privilege AfssChas_any_column_privilege_id_name#  has_any_column_privilege AfssChas_any_column_privilege_name_id#  has_any_column_privilege AfssGhas_any_column_privilege_name_name#  has_column_privilege ?fss?has_column_privilege_id_attnum#  has_column_privilege ?fss;has_column_privilege_id_name#  has_column_privilege ?fssChas_column_privilege_name_attnum#  has_column_privilege ?fss?has_column_privilege_name_name#  has_column_privilege ?fssEhas_column_privilege_id_id_attnum#  has_column_privilege ?fssAhas_column_privilege_id_id_name#  has_column_privilege ?fssIhas_column_privilege_id_name_attnum#  has_column_privilege ?fssEhas_column_privilege_id_name_name#  has_column_privilege ?fssIhas_column_privilege_name_id_attnum#  has_column_privilege ?fssEhas_column_privilege_name_id_name#  has_column_privilege ?fssMhas_column_privilege_name_name_attnum#  has_column_privilege ?fssIhas_column_privilege_name_name_name# has_sequence_privilege ?fss5has_sequence_privilege_id# has_sequence_privilege ?fss9has_sequence_privilege_name# has_sequence_privilege ?fss;has_sequence_privilege_id_id#  has_sequence_privilege ?fss?has_sequence_privilege_id_name#  has_sequence_privilege ?fss?has_sequence_privilege_name_id#  has_sequence_privilege ?fssChas_sequence_privilege_name_name#  has_table_privilege ?fss/has_table_privilege_id#  has_table_privilege ?fss3has_table_privilege_name# has_table_privilege ?fss5has_table_privilege_id_id# has_table_privilege ?fss9has_table_privilege_id_name# has_table_privilege ?fss9has_table_privilege_name_id# has_table_privilege ?fss=has_table_privilege_name_name# {numeric_uplus ?fispnumeric_uplus# zfloat8up ?fispfloat8up# yfloat4up ?fispfloat4up# xint4up ?fispint4up(  @xzzz8pPЖ@~蒒 P0p|x`؁f$ pg_stat_get_backend_pid ?fsrp1pg_stat_get_backend_pid$ pg_backend_pid ?fsr`pg_backend_pid$ ?pg_stat_get_subscription ?fsrps   = ioooooooo $subid$subid$relidpid@received_lsnXlast_msg_send_timedlast_msg_receipt_timeHlatest_end_lsnLlatest_end_time3pg_stat_get_subscription$ ? pg_stat_get_wal_receiver ?fsr`   GooooooooooooooPpid(statusTreceive_start_lsnTreceive_start_tli@received_lsn@received_tliXlast_msg_send_timedlast_msg_receipt_timeHlatest_end_lsnLlatest_end_time4slot_name<sender_host<sender_port0conninfo3pg_stat_get_wal_receiver$ ? pg_stat_get_wal_senders ? Afsr`  A ooooooooooo pid$state0sent_lsn4write_lsn4flush_lsn8replay_lsn4write_lag4flush_lag8replay_lagDsync_priority8sync_state1pg_stat_get_wal_senders$ ? pg_stat_get_progress_info ?BfsrpGiooooooooooooo,cmdtypepid$datid$relid(param1(param2(param3(param4(param5(param6(param7(param8(param9,param105pg_stat_get_progress_info$ ?pg_stat_get_activity ?Bfsrpe]ioooooooooooooooooooooooo@pid$datidpid0usesysidPapplication_name$state$queryLwait_event_type8wait_event8xact_start<query_startDbackend_start@state_change<client_addrLclient_hostname<client_port<backend_xid@backend_xmin@backend_typessl8sslversion4sslcipher,sslbitsHsslcompression<sslclientdn+pg_stat_get_activity$ pg_stat_get_backend_idset ?Bfsr`5pg_stat_get_backend_idset$  pg_stat_get_autoanalyze_count ?fsrp=pg_stat_get_autoanalyze_count$  pg_stat_get_analyze_count ?fsrp5pg_stat_get_analyze_count$  pg_stat_get_autovacuum_count ?fsrp;pg_stat_get_autovacuum_count$  pg_stat_get_vacuum_count ?fsrp3pg_stat_get_vacuum_count$  pg_stat_get_last_autoanalyze_time ?fsrpEpg_stat_get_last_autoanalyze_time$  pg_stat_get_last_analyze_time ?fsrp=pg_stat_get_last_analyze_time$  pg_stat_get_last_autovacuum_time ?fsrpCpg_stat_get_last_autovacuum_time$  pg_stat_get_last_vacuum_time ?fsrp;pg_stat_get_last_vacuum_time$ pg_stat_get_blocks_hit ?fsrp/pg_stat_get_blocks_hit$ pg_stat_get_blocks_fetched ?fsrp7pg_stat_get_blocks_fetched$  i pg_stat_get_mod_since_analyze ?fsrp=pg_stat_get_mod_since_analyze$  ? pg_stat_get_dead_tuples ?fsrp1pg_stat_get_dead_tuples$  > pg_stat_get_live_tuples ?fsrp1pg_stat_get_live_tuples$  pg_stat_get_tuples_hot_updated ?fsrp?pg_stat_get_tuples_hot_updated$  pg_stat_get_tuples_deleted ?fsrp7pg_stat_get_tuples_deleted$ pg_stat_get_tuples_updated ?fsrp7pg_stat_get_tuples_updated$ pg_stat_get_tuples_inserted ?fsrp9pg_stat_get_tuples_inserted$ pg_stat_get_tuples_fetched ?fsrp7pg_stat_get_tuples_fetched$ pg_stat_get_tuples_returned ?fsrp9pg_stat_get_tuples_returned$ pg_stat_get_numscans ?fsrp+pg_stat_get_numscans$ O pg_dependencies_send ?fsspJ +pg_dependencies_send$ N pg_dependencies_recv ?fssJ p+pg_dependencies_recv$ M pg_dependencies_out ?fispJ )pg_dependencies_out(  8p؜@x蘐 Xȕ8pP荒@x艎 XȆZHxЁ%&  pg_stat_get_bgwriter_maxwritten_clean ?fsr`Mpg_stat_get_bgwriter_maxwritten_clean%%  pg_stat_get_bgwriter_buf_written_clean ?fsr`Opg_stat_get_bgwriter_buf_written_clean%$  pg_stat_get_bgwriter_buf_written_checkpoints ?fsr`[pg_stat_get_bgwriter_buf_written_checkpoints%#  pg_stat_get_bgwriter_requested_checkpoints ?fsr`Wpg_stat_get_bgwriter_requested_checkpoints%"  pg_stat_get_bgwriter_timed_checkpoints ?fsr`Opg_stat_get_bgwriter_timed_checkpoints%! ?{ pg_stat_get_archiver ?fsr`c9oooooooHarchived_countTlast_archived_walXlast_archived_time@failed_countLlast_failed_walPlast_failed_time<stats_reset+pg_stat_get_archiver%   pg_stat_get_db_blk_write_time ?fsrp=pg_stat_get_db_blk_write_time%  pg_stat_get_db_blk_read_time ?fsrp;pg_stat_get_db_blk_read_time% O pg_stat_get_db_temp_bytes ?fsrp5pg_stat_get_db_temp_bytes% N pg_stat_get_db_temp_files ?fsrp5pg_stat_get_db_temp_files%  pg_stat_get_db_stat_reset_time ?fsrp?pg_stat_get_db_stat_reset_time% P pg_stat_get_db_deadlocks ?fsrp3pg_stat_get_db_deadlocks%  pg_stat_get_db_conflict_all ?fsrp9pg_stat_get_db_conflict_all%  pg_stat_get_db_conflict_startup_deadlock ?fsrpSpg_stat_get_db_conflict_startup_deadlock%  pg_stat_get_db_conflict_bufferpin ?fsrpEpg_stat_get_db_conflict_bufferpin%  pg_stat_get_db_conflict_snapshot ?fsrpCpg_stat_get_db_conflict_snapshot%  pg_stat_get_db_conflict_lock ?fsrp;pg_stat_get_db_conflict_lock%  pg_stat_get_db_conflict_tablespace ?fsrpGpg_stat_get_db_conflict_tablespace%  pg_stat_get_db_tuples_deleted ?fsrp=pg_stat_get_db_tuples_deleted%  pg_stat_get_db_tuples_updated ?fsrp=pg_stat_get_db_tuples_updated%  pg_stat_get_db_tuples_inserted ?fsrp?pg_stat_get_db_tuples_inserted%  pg_stat_get_db_tuples_fetched ?fsrp=pg_stat_get_db_tuples_fetched%  pg_stat_get_db_tuples_returned ?fsrp?pg_stat_get_db_tuples_returned% pg_stat_get_db_blocks_hit ?fsrp5pg_stat_get_db_blocks_hit% pg_stat_get_db_blocks_fetched ?fsrp=pg_stat_get_db_blocks_fetched%  pg_stat_get_db_xact_rollback ?fsrp;pg_stat_get_db_xact_rollback%  pg_stat_get_db_xact_commit ?fsrp7pg_stat_get_db_xact_commit%  pg_stat_get_db_numbackends ?fsrp7pg_stat_get_db_numbackends%  qpg_stat_get_backend_client_port ?fsrpApg_stat_get_backend_client_port%  ppg_stat_get_backend_client_addr ?fsrepApg_stat_get_backend_client_addr% opg_stat_get_backend_start ?fsrp5pg_stat_get_backend_start% ) pg_stat_get_backend_xact_start ?fsrp?pg_stat_get_backend_xact_start% .pg_stat_get_backend_activity_start ?fsrpGpg_stat_get_backend_activity_start% % pg_stat_get_backend_wait_event ?fsrp?pg_stat_get_backend_wait_event%  pg_stat_get_backend_wait_event_type ?fsrpIpg_stat_get_backend_wait_event_type% pg_stat_get_backend_activity ?fsrp;pg_stat_get_backend_activity% pg_stat_get_backend_userid ?fsrp7pg_stat_get_backend_userid% pg_stat_get_backend_dbid ?fsrp3pg_stat_get_backend_dbide  0h؜Pt0`ȕ8hؑ@pv0jp~tt8hhȈhhXhhj(thx9&  '@_postgis_deprecate 4Bfius,oldname,newname,version< DECLARE curver_text text; BEGIN -- -- Raises a NOTICE if it was deprecated in this version, -- a WARNING if in a previous version (only up to minor version checked) -- curver_text := '2.5.2'; IF split_part(curver_text,'.',1)::int > split_part(version,'.',1)::int OR ( split_part(curver_text,'.',1) = split_part(version,'.',1) AND split_part(curver_text,'.',2) != split_part(version,'.',2) ) THEN RAISE WARNING '% signature was deprecated in %. Please use %', oldname, version, newname; ELSE RAISE DEBUG '% signature was deprecated in %. Please use %', oldname, version, newname; END IF; END; eage&( Mtimestamp_transform ?fisp)timestamp_transform&'  bytea_sortsupport ?fisp%bytea_sortsupport&& byteacmp ?fisbyteacmp&% byteane ?fisbyteane&$ byteage ?fisbyteage&# byteagt ?fisbyteagt&" byteale ?fisbyteale&! bytealt ?fisbytealt&  byteaeq ?fisbyteaeq& decode ?fisbinary_decode& encode ?fisbinary_encode& pg_tablespace_location ?fssp/pg_tablespace_location& [ pg_trigger_depth ?fsr`#pg_trigger_depth& pg_stat_clear_snapshot ?fvr`/pg_stat_clear_snapshot& pg_stat_get_snapshot_timestamp ?fsr`?pg_stat_get_snapshot_timestamp&  pg_stat_get_xact_function_self_time ?fvrpIpg_stat_get_xact_function_self_time&  pg_stat_get_xact_function_total_time ?fvrpKpg_stat_get_xact_function_total_time&  pg_stat_get_xact_function_calls ?fvrpApg_stat_get_xact_function_calls&  pg_stat_get_xact_blocks_hit ?fvrp9pg_stat_get_xact_blocks_hit&  pg_stat_get_xact_blocks_fetched ?fvrpApg_stat_get_xact_blocks_fetched&  pg_stat_get_xact_tuples_hot_updated ?fvrpIpg_stat_get_xact_tuples_hot_updated&  pg_stat_get_xact_tuples_deleted ?fvrpApg_stat_get_xact_tuples_deleted&  pg_stat_get_xact_tuples_updated ?fvrpApg_stat_get_xact_tuples_updated&   pg_stat_get_xact_tuples_inserted ?fvrpCpg_stat_get_xact_tuples_inserted&   pg_stat_get_xact_tuples_fetched ?fvrpApg_stat_get_xact_tuples_fetched&   pg_stat_get_xact_tuples_returned ?fvrpCpg_stat_get_xact_tuples_returned&   pg_stat_get_xact_numscans ?fvrp5pg_stat_get_xact_numscans&   pg_stat_get_function_self_time ?fsrp?pg_stat_get_function_self_time&  pg_stat_get_function_total_time ?fsrpApg_stat_get_function_total_time&  pg_stat_get_function_calls ?fsrp7pg_stat_get_function_calls& + pg_stat_get_buf_alloc ?fsr`-pg_stat_get_buf_alloc&  pg_stat_get_buf_fsync_backend ?fsr`=pg_stat_get_buf_fsync_backend&  pg_stat_get_buf_written_backend ?fsr`Apg_stat_get_buf_written_backend& Y pg_stat_get_checkpoint_sync_time ?fsr`Cpg_stat_get_checkpoint_sync_time& X pg_stat_get_checkpoint_write_time ?fsr`Epg_stat_get_checkpoint_write_time&  pg_stat_get_bgwriter_stat_reset_time ?fsr`Kpg_stat_get_bgwriter_stat_reset_time(  HnxНlnX|nr@lЗnl`n|l0jpzz0xjlr@xvtnH~|ȉ|nPtrȆ@|zȃprPn'* overlaps ?fisZZZZ'overlaps_timestamp') S timestamp_hash_extended ?fisZ1timestamp_hash_extended'( timestamp_hash ?fispZtimestamp_hash'' timezone ?fistimetz_izone'& timezone ?fvstimetz_zone'% timestamp_larger ?fisZZZ#timestamp_larger'$ timestamp_smaller ?fisZZZ%timestamp_smaller'# timestamp_mi_interval ?fisZZ-timestamp_mi_interval'" timestamp_pl_interval ?fisZZ-timestamp_pl_interval'! timestamp_mi ?fisZZtimestamp_mi'  abstime ?fsspZ%timestamp_abstime' date ?fis:pZtimestamp_date' timestamptz ?fsspZ-timestamp_timestamptz' timestamp ?fssZp-timestamptz_timestamp' timestamp ?fisZ:;'datetime_timestamp' timestamp ?fisZp:date_timestamp' timestamp ?fssZp%abstime_timestamp' date_part ?fisZtimestamp_part' date_trunc ?fisZZ!timestamp_trunc' time ?fss;p#timestamptz_time' btrim ?fisbyteatrim' position ?fisbyteapos' &substr ?fis)bytea_substr_no_len' %substr ?fisbytea_substr' substring ?fis)bytea_substr_no_len' substring ?fisbytea_substr' byteacat ?fisbyteacat' length ?fispbyteaoctetlen' like_escape ?fis%like_escape_bytea'  notlike ?fisbyteanlike'  like ?fisbytealike'  byteanlike ?fisbyteanlike'  bytealike ?fisbytealike'  anytextcat ?fss Cselect $1::pg_catalog.text || $2' textanycat ?fss Cselect $1 || $2::pg_catalog.text' timetz ?hfistimetz_scale' time ?hfis;;time_scale' timestamptz ?Mfis%timestamptz_scale' oidsmaller ?fisoidsmaller' oidlarger ?fisoidlarger' timestamp ?MfisZZ!timestamp_scale' htime_transform ?fisptime_transformfh  8Xt؛|(Ph8hxr|r8rxrrr8rxtvx@zzxȉpXdxȆЃ\0h9(%  @geometry_in ?fis@pLWGEOM_in)$libdir/postgis-2.59($  @spheroid_out ?fisp@ellipsoid_out)$libdir/postgis-2.59(#  @spheroid_in ?fis@pellipsoid_in)$libdir/postgis-2.5s(" ?$pg_show_all_settings ?zDfss`Mooooooooooooooooo name,setting unit0category8short_desc8extra_desc,context,vartype(source,min_val,max_val0enumvals0boot_val4reset_val8sourcefile8sourcelineLpending_restart%show_all_settings(! set_config ?fvu'set_config_by_name(   current_setting ?fss?show_config_by_name_missing_ok( current_setting ?fssp)show_config_by_name( int8 ?fispbittoint8( bit ?fisbitfromint8( substring ?fisselect pg_catalog.substring($1, pg_catalog.similar_escape($2, $3))( substring ?fis!textregexsubstr( date_mi_interval ?fisZ:#date_mi_interval( date_pl_interval ?fisZ:#date_pl_interval( timezone ?fisZ!timestamp_izone( timezone ?fisZtimestamp_zone(  age ?fsspZselect pg_catalog.age(cast(current_date as timestamp without time zone), $1)(  age ?fisZZtimestamp_age(  timestamp_gt ?fisZZtimestamp_gt( timestamp_ge ?fisZZtimestamp_ge( timestamp_le ?fisZZtimestamp_le( timestamp_lt ?fisZZtimestamp_lt( timestamp_ne ?fisZZtimestamp_ne( timestamp_eq ?fisZZtimestamp_eq( to_char ?fssZ%timestamp_to_char(  isfinite ?fispZ#timestamp_finite(  timetz ?fssp;time_timetz(  time ?fis;ptimetz_time(  *in_range ?fis3in_range_timetz_interval(  )in_range ?fis;;/in_range_time_interval( (in_range ?fis7in_range_interval_interval( 'in_range ?fss=in_range_timestamptz_interval( &in_range ?fisZZ9in_range_timestamp_interval( A timestamp_sortsupport ?fisp-timestamp_sortsupport( timestamp_cmp ?fisZZtimestamp_cmp( overlaps ?fisZZZSselect ($1, ($1 + $2)) overlaps ($3, $4)( overlaps ?fisZZZSselect ($1, $2) overlaps ($3, ($3 + $4))( overlaps ?fisZZaselect ($1, ($1 + $2)) overlaps ($3, ($3 + $4))gX  8rpP VX88pPxvЏ~~P|~Ȍ@|8lt@z(#Xhȃr9)    @geometry_typmod_in ?fisp'geometry_typmod_in)$libdir/postgis-2.59)  @geometry_out ?fisp@LWGEOM_out)$libdir/postgis-2.5o)# +  }pg_stop_backup ?fvr `pg_stop_backupC  !pg_)" pg_backup_start_time ?fss`+pg_backup_start_time)! pg_is_in_backup ?fvs`!pg_is_in_backup) 0pg_terminate_backend ?fvsp+pg_terminate_backend) {pg_cancel_backend ?fvsp%pg_cancel_backend) ' pg_is_other_temp_schema ?fssp1pg_is_other_temp_schema) & pg_my_temp_schema ?fsr`%pg_my_temp_schema) pg_collation_is_visible Afssp1pg_collation_is_visible) pg_ts_config_is_visible Afssp1pg_ts_config_is_visible) pg_ts_template_is_visible Afssp5pg_ts_template_is_visible) pg_ts_dict_is_visible Afssp-pg_ts_dict_is_visible) pg_ts_parser_is_visible Afssp1pg_ts_parser_is_visible) K pg_statistics_obj_is_visible Afssp;pg_statistics_obj_is_visible) -pg_conversion_is_visible Afssp3pg_conversion_is_visible) pg_opfamily_is_visible Afssp/pg_opfamily_is_visible) #pg_opclass_is_visible Afssp-pg_opclass_is_visible) "pg_operator_is_visible Afssp/pg_operator_is_visible) !pg_function_is_visible Afssp/pg_function_is_visible)  pg_type_is_visible Afssp'pg_type_is_visible)  pg_table_is_visible Afssp)pg_table_is_visible)  ?rpg_get_object_address ?fss[7iiiooo type@object_names<object_args,classid$objid0objsubid-pg_get_object_address)  ?6 pg_identify_object_as_address ?fss[7iiiooo,classid$objid0objsubid type@object_names<object_args=pg_identify_object_as_address)  ?pg_identify_object ?fssc9iiioooo,classid$objid0objsubid type(schema name0identity'pg_identify_object)   pg_describe_object ?fss'pg_describe_object) ? pg_last_committed_xact ?fvs`;/oo[xid4timestamp/pg_last_committed_xact)  pg_xact_commit_timestamp ?fvsp3pg_xact_commit_timestamp) ?pg_get_multixact_members ?zDfvspC1iooc0multixidxid mode3pg_get_multixact_members) ?)pg_prepared_xact ?zDfvs`S5ooooo<transactiongid0prepared,ownerid dbid#pg_prepared_xact) 2 pg_isolation_test_session_is_blocked ?fvsKpg_isolation_test_session_is_blocked) 0 pg_safe_snapshot_blocking_pids ?fvsp?pg_safe_snapshot_blocking_pids)  pg_blocking_pids ?fvsp#pg_blocking_pids) ?[pg_lock_status ?zDfvs`Iooooooooooooooo`0locktype0database0relation page$tuple8virtualxidDtransactionid,classid$objid0objsubidXvirtualtransactionpid mode,granted0fastpathpg_lock_status`Yg8  Hn|ȝzj؛px`nlx(v`x8l-.()(z'+,*/0pbF0jxbp(8H"J0P9*  @geometry ?fis@@1geometry_enforce_typmod)$libdir/postgis-2.59*   @geometry_send ?fisp@LWGEOM_send)$libdir/postgis-2.59*   @geometry_recv ?fis@pLWGEOM_recv)$libdir/postgis-2.59*   @geometry_analyze ?fvup/gserialized_analyze_nd)$libdir/postgis-2.59*   @geometry_typmod_out ?fisp'postgis_typmod_out)$libdir/postgis-2.5v*0 +  pg_ls_dir ?zDfvspg_ls_dirC  v*/ +  A pg_ls_dir ?zDfvsppg_ls_dir_1argC  u*. + ? pg_stat_file ?fvsk;iioooooo0filename8missing_ok size(access@modification(change0creation$isdirpg_stat_fileC  binu*- + ? ? pg_stat_file ?fvspc9ioooooo0filename size(access@modification(change0creation$isdir%pg_stat_file_1argC  t*, +  pg_read_binary_file ?fvs)pg_read_binary_fileC  t*+ +  pg_read_binary_file ?fvs9pg_read_binary_file_off_lenC  t** +  pg_read_binary_file ?fvsp1pg_read_binary_file_allC  rom pg_s*) +  pg_read_file ?fvs!pg_read_file_v2C  p(es*( +  @ pg_read_file ?fvs+pg_read_file_off_lenC  s*' +  pg_read_file ?fvsp#pg_read_file_allC  zD*& 4avg ?aisp!aggregate_dummy*%  text ?fispbooltext*$ ;pg_jit_available ?fvs`#pg_jit_available*# `pg_sleep_until ?fvspselect pg_catalog.pg_sleep(extract(epoch from $1) operator(pg_catalog.-) extract(epoch from pg_catalog.clock_timestamp()))*" _pg_sleep_for ?fvspselect pg_catalog.pg_sleep(extract(epoch from pg_catalog.clock_timestamp() operator(pg_catalog.+) $1) operator(pg_catalog.-) extract(epoch from pg_catalog.clock_timestamp()))*! B pg_sleep ?fvsppg_sleep* pg_read_file_old ?fvspg_read_file* pg_rotate_logfile_old ?fvs`%pg_rotate_logfile*  pg_is_wal_replay_paused ?fvs`1pg_is_wal_replay_paused*  pg_last_xact_replay_timestamp ?fvs`=pg_last_xact_replay_timestamp*  pg_last_wal_replay_lsn ?fvs `/pg_last_wal_replay_lsn*  pg_last_wal_receive_lsn ?fvs `1pg_last_wal_receive_lsn*  pg_is_in_recovery ?fvs`%pg_is_in_recovery*  pg_export_snapshot ?fvu`'pg_export_snapshot* ] pg_wal_lsn_diff ?fis !pg_wal_lsn_diff* # pg_walfile_name ?fisp !pg_walfile_name* ?" pg_walfile_name_offset ?fisp C 1ioo{lsn4file_name<file_offset/pg_walfile_name_offset*  pg_current_wal_flush_lsn ?fvs `3pg_current_wal_flush_lsn* $ pg_current_wal_insert_lsn ?fvs `5pg_current_wal_insert_lsn* ! pg_current_wal_lsn ?fvs `'pg_current_wal_lsn(  Hpp؝p phppp@ppИpp`ppp8ppȓppXppp0pxpppPppp(pppppHpp؆p phppp@ppЁpp++ [min ?ais;p;!aggregate_dummy+* Zmin ?ais:p:!aggregate_dummy+) Ymin ?aisp!aggregate_dummy+( Xmin ?aisp!aggregate_dummy+' Wmin ?aisp!aggregate_dummy+& Vmin ?aisp!aggregate_dummy+% Umin ?aisp!aggregate_dummy+$ Tmin ?aisp!aggregate_dummy+# Smin ?aisp!aggregate_dummy+"  max ?aisepe!aggregate_dummy+!  max ?aisp!aggregate_dummy+  max ?aisp!aggregate_dummy+ max ?aisp!aggregate_dummy+ Rmax ?aisp!aggregate_dummy+ Qmax ?aisp!aggregate_dummy+ Pmax ?aisp!aggregate_dummy+ Omax ?aisp!aggregate_dummy+ Nmax ?aisZpZ!aggregate_dummy+ Mmax ?aisp!aggregate_dummy+ Lmax ?aisp!aggregate_dummy+ Kmax ?ais;p;!aggregate_dummy+ Jmax ?ais:p:!aggregate_dummy+ Imax ?aisp!aggregate_dummy+ Hmax ?aisp!aggregate_dummy+ Gmax ?aisp!aggregate_dummy+ Fmax ?aisp!aggregate_dummy+ Emax ?aisp!aggregate_dummy+ Dmax ?aisp!aggregate_dummy+ Cmax ?aisp!aggregate_dummy+ Bsum ?aisp!aggregate_dummy+  Asum ?aisp!aggregate_dummy+  @sum ?aisp!aggregate_dummy+  ?sum ?aisp!aggregate_dummy+  >sum ?aisp!aggregate_dummy+  =sum ?aisp!aggregate_dummy+ <sum ?aisp!aggregate_dummy+ ;sum ?aisp!aggregate_dummy+ :avg ?aisp!aggregate_dummy+ 9avg ?aisp!aggregate_dummy+ 8avg ?aisp!aggregate_dummy+ 7avg ?aisp!aggregate_dummy+ 6avg ?aisp!aggregate_dummy+ 5avg ?aisp!aggregate_dummy(  Hpp؝p phppp@ppИpp`php8ppȓppXppp0pxpppPppp(pppppHpp؆p phppp@ppЁpp,+  stddev_samp ?aisp!aggregate_dummy,*  stddev_samp ?aisp!aggregate_dummy,)  stddev_samp ?aisp!aggregate_dummy,(  stddev_samp ?aisp!aggregate_dummy,'  stddev_samp ?aisp!aggregate_dummy,&  stddev_samp ?aisp!aggregate_dummy,%  stddev_pop ?aisp!aggregate_dummy,$  stddev_pop ?aisp!aggregate_dummy,#  stddev_pop ?aisp!aggregate_dummy,"  stddev_pop ?aisp!aggregate_dummy,!  stddev_pop ?aisp!aggregate_dummy,   stddev_pop ?aisp!aggregate_dummy, ivariance ?aisp!aggregate_dummy, hvariance ?aisp!aggregate_dummy, gvariance ?aisp!aggregate_dummy, fvariance ?aisp!aggregate_dummy, evariance ?aisp!aggregate_dummy, dvariance ?aisp!aggregate_dummy, V var_samp ?aisp!aggregate_dummy, U var_samp ?aisp!aggregate_dummy, T var_samp ?aisp!aggregate_dummy, S var_samp ?aisp!aggregate_dummy, R var_samp ?aisp!aggregate_dummy, Q var_samp ?aisp!aggregate_dummy,  var_pop ?aisp!aggregate_dummy,  var_pop ?aisp!aggregate_dummy,  var_pop ?aisp!aggregate_dummy,  var_pop ?aisp!aggregate_dummy,  var_pop ?aisp!aggregate_dummy,  var_pop ?aisp!aggregate_dummy,   count ?ais`!aggregate_dummy,  ccount ?aisp!aggregate_dummy,   min ?aisepe!aggregate_dummy,   min ?aisp!aggregate_dummy,  min ?aisp!aggregate_dummy, min ?aisp!aggregate_dummy, bmin ?aisp!aggregate_dummy, amin ?aisp!aggregate_dummy, `min ?aisp!aggregate_dummy, _min ?aisp!aggregate_dummy, ^min ?aisZpZ!aggregate_dummy, ]min ?aisp!aggregate_dummy, \min ?aisp!aggregate_dummy(  Hpp؝p phppx0xpxxx0xpxxx0xpxxx0xpxx~(h|||(|`n(npnnnHnrȃrnXpdf-* regoperout ?fsspregoperout-) regoperin ?fsspregoperin-( regprocedureout ?fssp!regprocedureout-' regprocedurein ?fsspregprocedurein-& btfloat84cmp ?fisbtfloat84cmp-% btfloat48cmp ?fisbtfloat48cmp-$ btint82cmp ?fisbtint82cmp-# btint28cmp ?fisbtint28cmp-" btint42cmp ?fisbtint42cmp-! btint24cmp ?fisbtint24cmp-  btint84cmp ?fisbtint84cmp- btint48cmp ?fisbtint48cmp-  btbpchar_pattern_sortsupport ?fisp;btbpchar_pattern_sortsupport- btbpchar_pattern_cmp ?fis+btbpchar_pattern_cmp- bpchar_pattern_gt ?fis%bpchar_pattern_gt- bpchar_pattern_ge ?fis%bpchar_pattern_ge- bpchar_pattern_le ?fis%bpchar_pattern_le- ~bpchar_pattern_lt ?fis%bpchar_pattern_lt-  bttext_pattern_sortsupport ?fisp7bttext_pattern_sortsupport- vbttext_pattern_cmp ?fis'bttext_pattern_cmp- ttext_pattern_gt ?fis!text_pattern_gt- stext_pattern_ge ?fis!text_pattern_ge- qtext_pattern_le ?fis!text_pattern_le- ptext_pattern_lt ?fis!text_pattern_lt-  corr ?ais!aggregate_dummy-  covar_samp ?ais!aggregate_dummy-  covar_pop ?ais!aggregate_dummy-  regr_intercept ?ais!aggregate_dummy-  regr_slope ?ais!aggregate_dummy-   regr_r2 ?ais!aggregate_dummy-   regr_avgy ?ais!aggregate_dummy-   regr_avgx ?ais!aggregate_dummy-   regr_sxy ?ais!aggregate_dummy-   regr_syy ?ais!aggregate_dummy-  regr_sxx ?ais!aggregate_dummy-  regr_count ?ais!aggregate_dummy- ostddev ?aisp!aggregate_dummy- nstddev ?aisp!aggregate_dummy- mstddev ?aisp!aggregate_dummy- lstddev ?aisp!aggregate_dummy- kstddev ?aisp!aggregate_dummy- jstddev ?aisp!aggregate_dummy g`  Hfn؝l nhfhh@dfИfl`dff8npȓp`Hrv@x؋8h؇0`ȃ09.  @geometry ?fis@pX%point_to_geometry)$libdir/postgis-2.5 .( has_schema_privilege ?fss?has_schema_privilege_name_name.' has_language_privilege ?fss5has_language_privilege_id.& has_language_privilege ?fss9has_language_privilege_name.% has_language_privilege ?fss;has_language_privilege_id_id.$ has_language_privilege ?fss?has_language_privilege_id_name.# has_language_privilege ?fss?has_language_privilege_name_id." has_language_privilege ?fssChas_language_privilege_name_name.! has_function_privilege ?fss5has_function_privilege_id.  has_function_privilege ?fss9has_function_privilege_name. has_function_privilege ?fss;has_function_privilege_id_id. has_function_privilege ?fss?has_function_privilege_id_name. has_function_privilege ?fss?has_function_privilege_name_id. has_function_privilege ?fssChas_function_privilege_name_name. has_database_privilege ?fss5has_database_privilege_id. has_database_privilege ?fss9has_database_privilege_name. has_database_privilege ?fss;has_database_privilege_id_id. has_database_privilege ?fss?has_database_privilege_id_name. has_database_privilege ?fss?has_database_privilege_name_id. has_database_privilege ?fssChas_database_privilege_name_name. fmgr_sql_validator ?fssp'fmgr_sql_validator. fmgr_c_validator ?fssp#fmgr_c_validator. fmgr_internal_validator ?fssp1fmgr_internal_validator. to_regnamespace ?fssp!to_regnamespace. regnamespaceout ?fssp!regnamespaceout. regnamespacein ?fsspregnamespacein. to_regrole ?fsspto_regrole.  regroleout ?fsspregroleout.  regrolein ?fsspregrolein.  7regclass ?fssptext_regclass.   to_regtype ?fsspto_regtype.  regtypeout ?fsspregtypeout. regtypein ?fsspregtypein.  to_regclass ?fsspto_regclass. regclassout ?fsspregclassout. regclassin ?fsspregclassin. regoperatorout ?fsspregoperatorout. regoperatorin ?fsspregoperatorin.  to_regoperator ?fsspto_regoperator.  to_regoper ?fsspto_regoper(h  0`Ȝ(Pxؗ0Pp@p؍@pЉ@x腈 `zvn(~h/&  pg_tablespace_size ?fvsp1pg_tablespace_size_name/%  pg_tablespace_size ?fvsp/pg_tablespace_size_oid/$ pg_column_size ?fssppg_column_size/#  pg_has_role ?fsspg_has_role_id/"  pg_has_role ?fss#pg_has_role_name/!  pg_has_role ?fss%pg_has_role_id_id/   pg_has_role ?fss)pg_has_role_id_name/  pg_has_role ?fss)pg_has_role_name_id/  pg_has_role ?fss-pg_has_role_name_name/ G has_type_privilege ?fss-has_type_privilege_id/ F has_type_privilege ?fss1has_type_privilege_name/ E has_type_privilege ?fss3has_type_privilege_id_id/ D has_type_privilege ?fss7has_type_privilege_id_name/ C has_type_privilege ?fss7has_type_privilege_name_id/ B has_type_privilege ?fss;has_type_privilege_name_name/  has_server_privilege ?fss1has_server_privilege_id/  has_server_privilege ?fss5has_server_privilege_name/  has_server_privilege ?fss7has_server_privilege_id_id/  has_server_privilege ?fss;has_server_privilege_id_name/  has_server_privilege ?fss;has_server_privilege_name_id/  has_server_privilege ?fss?has_server_privilege_name_name/  has_foreign_data_wrapper_privilege ?fssMhas_foreign_data_wrapper_privilege_id/  has_foreign_data_wrapper_privilege ?fssQhas_foreign_data_wrapper_privilege_name/  has_foreign_data_wrapper_privilege ?fssShas_foreign_data_wrapper_privilege_id_id/  has_foreign_data_wrapper_privilege ?fssWhas_foreign_data_wrapper_privilege_id_name/   has_foreign_data_wrapper_privilege ?fssWhas_foreign_data_wrapper_privilege_name_id/   has_foreign_data_wrapper_privilege ?fss[has_foreign_data_wrapper_privilege_name_name/  [ has_tablespace_privilege ?fss9has_tablespace_privilege_id/  Z has_tablespace_privilege ?fss=has_tablespace_privilege_name/  Y has_tablespace_privilege ?fss?has_tablespace_privilege_id_id/ X has_tablespace_privilege ?fssChas_tablespace_privilege_id_name/ W has_tablespace_privilege ?fssChas_tablespace_privilege_name_id/ V has_tablespace_privilege ?fssGhas_tablespace_privilege_name_name/ has_schema_privilege ?fss1has_schema_privilege_id/ has_schema_privilege ?fss5has_schema_privilege_name/ has_schema_privilege ?fss7has_schema_privilege_id_id/ has_schema_privilege ?fss;has_schema_privilege_id_name/ has_schema_privilege ?fss;has_schema_privilege_name_id(8  @z|z(~pn~l@lpȗz@zxtfHfh^0`xhj`Xbfh(rhtxz0hxjdfPlnb(dhtxn8p0*  anynonarray_out ?fisp !anynonarray_out0)  anynonarray_in ?fis panynonarray_in0( & domain_recv ?fssdomain_recv0' % domain_in ?fssdomain_in0& _ shell_out ?fispshell_out0% ^ shell_in ?fispshell_in0$  anyelement_out ?fispanyelement_out0#  anyelement_in ?fispanyelement_in0"  opaque_out ?fispopaque_out0!  opaque_in ?fispopaque_in0   internal_out ?fispinternal_out0  internal_in ?fispinternal_in0 language_handler_out ?fisp+language_handler_out0 language_handler_in ?fisp)language_handler_in0  event_trigger_out ?fisp%event_trigger_out0  event_trigger_in ?fisp#event_trigger_in0 trigger_out ?fisptrigger_out0 trigger_in ?fisptrigger_in0 void_out ?fispvoid_out0 void_in ?fispvoid_in0 anyarray_out ?fsspanyarray_out0 anyarray_in ?fispanyarray_in0 any_out ?fispany_out0 any_in ?fispany_in0 cstring_out ?fispcstring_out0 cstring_in ?fispcstring_in0 record_out ?fssprecord_out0 record_in ?fssrecord_in0  postgresql_fdw_validator ?fis3postgresql_fdw_validator0   pg_relation_filepath ?fssp+pg_relation_filepath0  ~ pg_filenode_relation ?fss+pg_filenode_relation0   pg_relation_filenode ?fssp+pg_relation_filenode0   pg_indexes_size ?fvsp!pg_indexes_size0   pg_table_size ?fvsppg_table_size0  pg_size_bytes ?fisppg_size_bytes0 ^ pg_size_pretty ?fisp/pg_size_pretty_numeric0 pg_size_pretty ?fisppg_size_pretty0 pg_total_relation_size ?fvsp/pg_total_relation_size0  pg_relation_size ?fvs#pg_relation_size0  pg_relation_size ?fvsp_select pg_catalog.pg_relation_size($1, 'main')0 xpg_database_size ?fvsp-pg_database_size_name0  pg_database_size ?fvsp+pg_database_size_oid(  HnpНxzXnp| vhbdj@jjЕj|P||В||P|~ЏPЌH|ȉ||H||Ȇ|~HȃH1* O timestamptz_cmp_date ?fss:+timestamptz_cmp_date1) N timestamptz_ne_date ?fss:)timestamptz_ne_date1( M timestamptz_ge_date ?fss:)timestamptz_ge_date1' L timestamptz_gt_date ?fss:)timestamptz_gt_date1& K timestamptz_eq_date ?fss:)timestamptz_eq_date1% J timestamptz_le_date ?fss:)timestamptz_le_date1$ I timestamptz_lt_date ?fss:)timestamptz_lt_date1# B timestamp_cmp_date ?fisZ:'timestamp_cmp_date1" A timestamp_ne_date ?fisZ:%timestamp_ne_date1! @ timestamp_ge_date ?fisZ:%timestamp_ge_date1  ? timestamp_gt_date ?fisZ:%timestamp_gt_date1 > timestamp_eq_date ?fisZ:%timestamp_eq_date1 = timestamp_le_date ?fisZ:%timestamp_le_date1 < timestamp_lt_date ?fisZ:%timestamp_lt_date1 5 date_cmp_timestamptz ?fss:+date_cmp_timestamptz1 4 date_ne_timestamptz ?fss:)date_ne_timestamptz1 3 date_ge_timestamptz ?fss:)date_ge_timestamptz1 2 date_gt_timestamptz ?fss:)date_gt_timestamptz1 1 date_eq_timestamptz ?fss:)date_eq_timestamptz1 0 date_le_timestamptz ?fss:)date_le_timestamptz1 / date_lt_timestamptz ?fss:)date_lt_timestamptz1 ( date_cmp_timestamp ?fis:Z'date_cmp_timestamp1 ' date_ne_timestamp ?fis:Z%date_ne_timestamp1 & date_ge_timestamp ?fis:Z%date_ge_timestamp1 % date_gt_timestamp ?fis:Z%date_gt_timestamp1 $ date_eq_timestamp ?fis:Z%date_eq_timestamp1 # date_le_timestamp ?fis:Z%date_le_timestamp1 " date_lt_timestamp ?fis:Z%date_lt_timestamp1 ^ sha512 ?fispsha512_bytea1  ] sha384 ?fispsha384_bytea1  \ sha256 ?fispsha256_bytea1  [ sha224 ?fispsha224_bytea1   md5 ?fispmd5_bytea1   md5 ?fispmd5_text1  system ?fvs p'tsm_system_handler1  bernoulli ?fvs p-tsm_bernoulli_handler1  tsm_handler_out ?fisp !tsm_handler_out1  tsm_handler_in ?fis ptsm_handler_in1 Gindex_am_handler_out ?fispE+index_am_handler_out1 Findex_am_handler_in ?fisEp)index_am_handler_in1 - fdw_handler_out ?fisp+ !fdw_handler_out1 , fdw_handler_in ?fis+ pfdw_handler_in(  8pP0hؕPvfؒx hhbbb@bbЍbn`ndd8bbȈhh```l@lbЃbf`fff2* { float8send ?fispfloat8send2) z float8recv ?fispfloat8recv2( y float4send ?fispfloat4send2' x float4recv ?fispfloat4recv2& w namesend ?fsspnamesend2% v namerecv ?fsspnamerecv2$ u oidvectorsend ?fispoidvectorsend2# t oidvectorrecv ?fispoidvectorrecv2" s oidsend ?fispoidsend2! r oidrecv ?fispoidrecv2  q unknownsend ?fispunknownsend2 p unknownrecv ?fispunknownrecv2 o textsend ?fssptextsend2 n textrecv ?fssptextrecv2 m byteasend ?fispbyteasend2 l bytearecv ?fispbytearecv2 k int2vectorsend ?fispint2vectorsend2 j int2vectorrecv ?fispint2vectorrecv2 i int8send ?fispint8send2 h int8recv ?fispint8recv2 g int4send ?fispint4send2 f int4recv ?fispint4recv2 e int2send ?fispint2send2 d int2recv ?fispint2recv2 c record_send ?fssprecord_send2 b record_recv ?fssrecord_recv2 a array_send ?fssparray_send2 ` array_recv ?fssarray_recv2  timestamptz_cmp_timestamp ?fssZ5timestamptz_cmp_timestamp2   timestamptz_ne_timestamp ?fssZ3timestamptz_ne_timestamp2   timestamptz_ge_timestamp ?fssZ3timestamptz_ge_timestamp2   timestamptz_gt_timestamp ?fssZ3timestamptz_gt_timestamp2   timestamptz_eq_timestamp ?fssZ3timestamptz_eq_timestamp2   timestamptz_le_timestamp ?fssZ3timestamptz_le_timestamp2  timestamptz_lt_timestamp ?fssZ3timestamptz_lt_timestamp2  timestamp_cmp_timestamptz ?fssZ5timestamp_cmp_timestamptz2  timestamp_ne_timestamptz ?fssZ3timestamp_ne_timestamptz2  timestamp_ge_timestamptz ?fssZ3timestamp_ge_timestamptz2  timestamp_gt_timestamptz ?fssZ3timestamp_gt_timestamptz2  timestamp_eq_timestamptz ?fssZ3timestamp_eq_timestamptz2  timestamp_le_timestamptz ?fssZ3timestamp_le_timestamptz2  timestamp_lt_timestamptz ?fssZ3timestamp_lt_timestamptz(  HffНvfXxhb0bxbb`````P``h0hprrh@hpЎpj`jhh8hhrr@rbȆxhPzjh(hphhl3+  tintervalrecv ?fisptintervalrecv3*  reltimesend ?fispreltimesend3)  reltimerecv ?fispreltimerecv3(  abstimesend ?fispabstimesend3'  abstimerecv ?fispabstimerecv3&  numeric_send ?fispnumeric_send3%  numeric_recv ?fisnumeric_recv3$  varbit_send ?fispvarbit_send3#  varbit_recv ?fisvarbit_recv3"  bit_send ?fispbit_send3!  bit_recv ?fisbit_recv3  regnamespacesend ?fisp#regnamespacesend3 regnamespacerecv ?fisp#regnamespacerecv3 regrolesend ?fispregrolesend3 regrolerecv ?fispregrolerecv3  regtypesend ?fispregtypesend3  regtyperecv ?fispregtyperecv3  regclasssend ?fispregclasssend3  regclassrecv ?fispregclassrecv3  regoperatorsend ?fisp!regoperatorsend3  regoperatorrecv ?fisp!regoperatorrecv3  regopersend ?fispregopersend3  regoperrecv ?fispregoperrecv3  regproceduresend ?fisp#regproceduresend3  regprocedurerecv ?fisp#regprocedurerecv3  regprocsend ?fispregprocsend3  regprocrecv ?fispregprocrecv3  cidsend ?fispcidsend3  cidrecv ?fispcidrecv3  xidsend ?fispxidsend3   xidrecv ?fispxidrecv3   tidsend ?fisptidsend3   tidrecv ?fisptidrecv3   boolsend ?fispboolsend3   boolrecv ?fispboolrecv3  charsend ?fispcharsend3  charrecv ?fispcharrecv3  varcharsend ?fsspvarcharsend3  varcharrecv ?fssvarcharrecv3  bpcharsend ?fsspbpcharsend3 ~ bpcharrecv ?fssbpcharrecv3 } point_send ?fispXpoint_send3 | point_recv ?fisXppoint_recv(  Hld؝dt`dxh(~pnr(|plddHddؒb bhddd@dhЍhd`djj8ddȈddXjjl0lxddlPl~Ȁ4+  pg_get_viewdef ?fsr1pg_get_viewdef_name_ext4*  pg_get_ruledef ?fss'pg_get_ruledef_ext4) w macaddr8_send ?fispmacaddr8_send4( v macaddr8_recv ?fispmacaddr8_recv4' 1 void_send ?fispvoid_send4& 0 void_recv ?fispvoid_recv4%  anyarray_send ?fsspanyarray_send4$  anyarray_recv ?fsspanyarray_recv4#  cstring_send ?fsspcstring_send4"  cstring_recv ?fsspcstring_recv4!  cidr_send ?fispcidr_send4   cidr_recv ?fispcidr_recv4  inet_send ?fispeinet_send4  inet_recv ?fisepinet_recv4  macaddr_send ?fisp=macaddr_send4  macaddr_recv ?fis=pmacaddr_recv4  cash_send ?fispcash_send4  cash_recv ?fispcash_recv4  circle_send ?fispcircle_send4  circle_recv ?fispcircle_recv4  line_send ?fisptline_send4  line_recv ?fistpline_recv4  poly_send ?fisp\poly_send4  poly_recv ?fis\ppoly_recv4  box_send ?fisp[box_send4  box_recv ?fis[pbox_recv4  path_send ?fispZpath_send4  path_recv ?fisZppath_recv4  lseg_send ?fispYlseg_send4  lseg_recv ?fisYplseg_recv4   interval_send ?fispinterval_send4   interval_recv ?fisinterval_recv4   timestamptz_send ?fisp#timestamptz_send4   timestamptz_recv ?fis#timestamptz_recv4   timestamp_send ?fispZtimestamp_send4  timestamp_recv ?fisZtimestamp_recv4  timetz_send ?fisptimetz_send4  timetz_recv ?fistimetz_recv4  time_send ?fisp;time_send4  time_recv ?fis;time_recv4  date_send ?fisp:date_send4  date_recv ?fis:pdate_recv4  tintervalsend ?fisptintervalsend(8  @~0К`0\r(htl X(XȌ|zPnv؉j jhppp@ppЄpp`ppp8p5& bit_or ?aisp!aggregate_dummy5% bit_and ?aisp!aggregate_dummy5$ bit_or ?aisp!aggregate_dummy5# bit_and ?aisp!aggregate_dummy5" bit_or ?aisp!aggregate_dummy5! bit_and ?aisp!aggregate_dummy5  bit_or ?aisp!aggregate_dummy5 bit_and ?aisp!aggregate_dummy5  every ?aisp!aggregate_dummy5  bool_or ?aisp!aggregate_dummy5  bool_and ?aisp!aggregate_dummy5  bool_anytrue ?fispbool_anytrue5  bool_alltrue ?fispbool_alltrue5  bool_accum_inv ?fisbool_accum_inv5  bool_accum ?fisbool_accum5  boolor_statefunc ?fis#boolor_statefunc5  booland_statefunc ?fis%booland_statefunc5 generate_series ?zDfss9generate_series_timestamptz5 generate_series ?zDfisZZZ5generate_series_timestamp5  generate_series ?zDfis1generate_series_numeric5  generate_series ?zDfis;generate_series_step_numeric5 -generate_series ?zDfis+generate_series_int85 ,generate_series ?zDfis5generate_series_step_int85 +generate_series ?zDfis+generate_series_int45 *generate_series ?zDfis5generate_series_step_int45   pg_notification_queue_usage ?fvs`9pg_notification_queue_usage5   pg_notify ?fvrpg_notify5   pg_listening_channels ? Afsr`-pg_listening_channels5   pg_get_triggerdef ?fss-pg_get_triggerdef_ext5  ?( pg_timezone_names ?zDfss`K3oooo name(abbrev8utc_offset(is_dst%pg_timezone_names5 ?' pg_timezone_abbrevs ?zDfss`C1ooo{(abbrev8utc_offset(is_dst)pg_timezone_abbrevs5 ? pg_cursor ?zDfsr`[7oooooo name4statement<is_holdable4is_binaryDis_scrollableDcreation_timepg_cursor5 ? pg_prepared_statement ?zDfsr`S5ooooo name4statement@prepare_timeLparameter_types0from_sql-pg_prepared_statement5  pg_get_expr ?fss!pg_get_expr_ext5  pg_get_constraintdef ?fss3pg_get_constraintdef_ext5  pg_get_indexdef ?fss)pg_get_indexdef_ext5 W pg_get_viewdef ?fsr)pg_get_viewdef_wrap5  pg_get_viewdef ?fsr'pg_get_viewdef_ext(  @vvvv@vȚdd`Xzl0lpttl@nvvnHzz0~pv| vPzЈxr@pЄ8`6)  ginarrayextract ?fis-ginarrayextract_2args6( Pginarraytriconsistent ?fis-ginarraytriconsistent6'  ginarrayconsistent ?fis'ginarrayconsistent6&  ginqueryarrayextract ?fis+ginqueryarrayextract6%  ginarrayextract ?fis!ginarrayextract6$  gist_poly_distance ?fis\'gist_poly_distance6#  gist_circle_distance ?fis+gist_circle_distance6"  gist_point_distance ?fisX)gist_point_distance6! gist_point_consistent ?fisX-gist_point_consistent6   gist_point_fetch ?fisp#gist_point_fetch6 gist_point_compress ?fisp)gist_point_compress6  gist_circle_compress ?fisp+gist_circle_compress6  gist_circle_consistent ?fis/gist_circle_consistent6  gist_poly_compress ?fisp'gist_poly_compress6  gist_poly_consistent ?fis\+gist_poly_consistent6  gist_box_same ?fis[[gist_box_same6  gist_box_union ?fis[gist_box_union6  gist_box_picksplit ?fis'gist_box_picksplit6  gist_box_penalty ?fis#gist_box_penalty6  gist_box_consistent ?fis[)gist_box_consistent6  circle_overabove ?fis#circle_overabove6  circle_overbelow ?fis#circle_overbelow6  poly_above ?fis\\poly_above6  poly_overabove ?fis\\poly_overabove6  poly_overbelow ?fis\\poly_overbelow6  poly_below ?fis\\poly_below6  box_above ?fis[[box_above6  box_overabove ?fis[[box_overabove6   box_overbelow ?fis[[box_overbelow6   box_below ?fis[[box_below6  pg_conf_load_time ?fsr`%pg_conf_load_time6   pg_postmaster_start_time ?fss`3pg_postmaster_start_time6   lastval ?fvu`lastval6  int4 ?fispbool_int46  bool ?fispint4_bool6  pg_tablespace_databases ?zDfssp1pg_tablespace_databases6  integer_pl_date ?fis::select $2 + $16  interval_pl_timestamptz ?fssselect $2 + $16  interval_pl_timestamp ?fisZZselect $2 + $16  interval_pl_timetz ?fisselect $2 + $16  interval_pl_date ?fisZ:select $2 + $1((  @rtvx0h~@x|(XȒ(h؎@p؊0h؆v(^x`fdPpbb(n7( T xmlconcat2 ?fisxmlconcat27' S xml_send ?fsspxml_send7& R xml_recv ?fsspxml_recv7% Q xmlvalidate ?fisxmlvalidate7$ P xml ?fssptexttoxml7# O xmlcomment ?fispxmlcomment7" N xml_out ?fispxml_out7! M xml_in ?fsspxml_in7  L pg_advisory_unlock_all ?fvu`/pg_advisory_unlock_all7 K pg_advisory_unlock_shared ?fvu?pg_advisory_unlock_shared_int47 J pg_advisory_unlock ?fvu1pg_advisory_unlock_int47  pg_try_advisory_xact_lock_shared ?fvuMpg_try_advisory_xact_lock_shared_int47 I pg_try_advisory_lock_shared ?fvuCpg_try_advisory_lock_shared_int47  pg_try_advisory_xact_lock ?fvu?pg_try_advisory_xact_lock_int47 H pg_try_advisory_lock ?fvu5pg_try_advisory_lock_int47  pg_advisory_xact_lock_shared ?fvuEpg_advisory_xact_lock_shared_int47 G pg_advisory_lock_shared ?fvu;pg_advisory_lock_shared_int47  pg_advisory_xact_lock ?fvu7pg_advisory_xact_lock_int47 F pg_advisory_lock ?fvu-pg_advisory_lock_int47 E pg_advisory_unlock_shared ?fvup?pg_advisory_unlock_shared_int87 D pg_advisory_unlock ?fvup1pg_advisory_unlock_int87  pg_try_advisory_xact_lock_shared ?fvupMpg_try_advisory_xact_lock_shared_int87 C pg_try_advisory_lock_shared ?fvupCpg_try_advisory_lock_shared_int87  pg_try_advisory_xact_lock ?fvup?pg_try_advisory_xact_lock_int87 B pg_try_advisory_lock ?fvup5pg_try_advisory_lock_int87  pg_advisory_xact_lock_shared ?fvupEpg_advisory_xact_lock_shared_int87 A pg_advisory_lock_shared ?fvup;pg_advisory_lock_shared_int87   pg_advisory_xact_lock ?fvup7pg_advisory_xact_lock_int87  @ pg_advisory_lock ?fvup-pg_advisory_lock_int87   brin_inclusion_union ?fis+brin_inclusion_union7   brin_inclusion_consistent ?fis5brin_inclusion_consistent7   brin_inclusion_add_value ?fis3brin_inclusion_add_value7  brin_inclusion_opcinfo ?fisp/brin_inclusion_opcinfo7 : brin_minmax_union ?fis%brin_minmax_union7 9 brin_minmax_consistent ?fis/brin_minmax_consistent7 8 brin_minmax_add_value ?fis-brin_minmax_add_value7 7 brin_minmax_opcinfo ?fisp)brin_minmax_opcinfo7  arraycontained ?fisarraycontained7  arraycontains ?fisarraycontains7  arrayoverlap ?fisarrayoverlap(0  Hpd xX6H8  "(0ȓ"2؎l8lxzȊv8`Їbd`dl(hh~zr0p8# g json_agg ?assrp!aggregate_dummy8" f json_agg_finalfn ?fisrp#json_agg_finalfn8! e json_agg_transfn ?fss#json_agg_transfn8  T row_to_json ?fssr'row_to_json_pretty8 S row_to_json ?fssrprow_to_json8 R array_to_json ?fssr+array_to_json_pretty8 Q array_to_json ?fssrparray_to_json8 Djson_send ?fisprjson_send8 Cjson_recv ?fisrpjson_recv8 Bjson_out ?fisprjson_out8 Ajson_in ?fisrpjson_in8  xml_is_well_formed_content ?fisp7xml_is_well_formed_content8  xml_is_well_formed_document ?fisp9xml_is_well_formed_document8  xml_is_well_formed ?fssp'xml_is_well_formed8  xpath_exists ?fisselect pg_catalog.xpath_exists($1, $2, '{}'::pg_catalog.text[])8  xpath_exists ?fisxpath_exists8 6 xmlexists ?fisxmlexists8 t xpath ?fissselect pg_catalog.xpath($1, $2, '{}'::pg_catalog.text[])8 s xpath ?fis xpath8 'z database_to_xml_and_xmlschema Bfsr{$nulls<tableforest0targetns=database_to_xml_and_xmlschema8 'y database_to_xmlschema Bfsr{$nulls<tableforest0targetns-database_to_xmlschema8 'x database_to_xml Bfsr{$nulls<tableforest0targetns!database_to_xml8  'w schema_to_xml_and_xmlschema Bfsr(schema$nulls<tableforest0targetns9schema_to_xml_and_xmlschema8  'v schema_to_xmlschema Bfsr(schema$nulls<tableforest0targetns)schema_to_xmlschema8  'u schema_to_xml Bfsr(schema$nulls<tableforest0targetnsschema_to_xml8  'r query_to_xml_and_xmlschema Bfvu$query$nulls<tableforest0targetns7query_to_xml_and_xmlschema8  'q table_to_xml_and_xmlschema Bfsrtbl$nulls<tableforest0targetns7table_to_xml_and_xmlschema8 'p cursor_to_xmlschema Bfvu(cursor$nulls<tableforest0targetns)cursor_to_xmlschema8 'o query_to_xmlschema Bfvu$query$nulls<tableforest0targetns'query_to_xmlschema8 'n table_to_xmlschema Bfsrtbl$nulls<tableforest0targetns'table_to_xmlschema8 'm cursor_to_xml Bfvu(cursor$count$nulls<tableforest0targetnscursor_to_xml8 'l query_to_xml Bfvu$query$nulls<tableforest0targetnsquery_to_xml8 'k table_to_xml Bfsrtbl$nulls<tableforest0targetnstable_to_xml8 j text ?fispxmltotext8 U xmlagg ?aisp!aggregate_dummyh  8xxМx `zh蘀8`xrhN8XBL(thr@HRЀXnth0`xbhhPhhh(hpj99  @geometry ?fis@pZ#path_to_geometry)$libdir/postgis-2.599  @point ?fisXp@%geometry_to_point)$libdir/postgis-2.599%  uuid_cmp ?fis uuid_cmp9$  uuid_ne ?fis uuid_ne9#  uuid_gt ?fis uuid_gt9"  uuid_ge ?fis uuid_ge9!  uuid_eq ?fis uuid_eq9   uuid_le ?fis uuid_le9  uuid_lt ?fis uuid_lt9  uuid_out ?fisp uuid_out9  uuid_in ?fis puuid_in9 json_typeof ?fisprjson_typeof9  json_to_recordset ?Bfsspr%json_to_recordset9  json_to_record ?fssprjson_to_record9 ?wjson_each_text ?BfisprCr1ioos4from_jsonkey$valuejson_each_text9 ?vjson_each ?BfisprCrr1ioos4from_jsonkey$valuejson_each9 ujson_object_keys ?Bfispr#json_object_keys9 tjson_array_length ?fispr%json_array_length9 ?json_array_elements_text ?Bfispr;r/ioc4from_json$value3json_array_elements_text9 ?sjson_array_elements ?Bfisrpr;rr/ioc4from_json$value)json_array_elements9 ?qjson_extract_path_text ?fisr;r/ivk4from_json8path_elems/json_extract_path_text9 ?ojson_extract_path ?fisrr;r/ivk4from_json8path_elems%json_extract_path9 'njson_array_element_text ?fisrs4from_jsonDelement_index1json_array_element_text9 'mjson_array_element ?fisrrs4from_jsonDelement_index'json_array_element9  'ljson_object_field_text ?fisrk4from_json8field_name/json_object_field_text9  'kjson_object_field ?fisrrk4from_json8field_name%json_object_field9   json_strip_nulls ?fisrpr#json_strip_nulls9  h to_json ?fssrpto_json9   json_object ?fisr)json_object_two_arg9  json_object ?fisrpjson_object9  json_build_object ?fssr`3json_build_object_noargs9  json_build_object ?fssrp3-v%json_build_object9  json_build_array ?fssr`1json_build_array_noargs9 ~ json_build_array ?fssrp3-v#json_build_array9 } json_object_agg ?assr!aggregate_dummy9 | json_object_agg_finalfn ?fisrp1json_object_agg_finalfn9 l json_object_agg_transfn ?fss1json_object_agg_transfn(  @rdНddX~df0lxlllPlll(hphnh8fȐhhXbhh0hxhhhPjb؈zr`ppp8fd|nPldf:+ tsvectorin ?fisptsvectorin:*  enum_send ?fssp enum_send:)  enum_recv ?fss enum_recv:(  enum_range ?fssp enum_range_all:'  enum_range ?fss %enum_range_bounds:&  enum_last ?fss p enum_last:%  enum_first ?fss p enum_first:$  min ?ais p !aggregate_dummy:#  max ?ais p !aggregate_dummy:"  enum_larger ?fis  enum_larger:!  enum_smaller ?fis  enum_smaller:  V hashenumextended ?fis #hashenumextended:  hashenum ?fisp hashenum:  enum_cmp ?fis enum_cmp:  enum_ge ?fis enum_ge:  enum_le ?fis enum_le:  enum_gt ?fis enum_gt:  enum_lt ?fis enum_lt:  enum_ne ?fis enum_ne:  enum_eq ?fis enum_eq:  enum_out ?fssp enum_out:  enum_in ?fss enum_in:  anyenum_out ?fssp anyenum_out:  anyenum_in ?fis panyenum_in: U pg_lsn_hash_extended ?fis +pg_lsn_hash_extended:  pg_lsn_hash ?fisp pg_lsn_hash:  pg_lsn_cmp ?fis pg_lsn_cmp:  pg_lsn_send ?fisp pg_lsn_send:  pg_lsn_recv ?fis ppg_lsn_recv:  pg_lsn_mi ?fis pg_lsn_mi:   pg_lsn_ne ?fis pg_lsn_ne:   pg_lsn_gt ?fis pg_lsn_gt:   pg_lsn_ge ?fis pg_lsn_ge:   pg_lsn_eq ?fis pg_lsn_eq:   pg_lsn_le ?fis pg_lsn_le:  pg_lsn_lt ?fis pg_lsn_lt:  pg_lsn_out ?fisp pg_lsn_out:  pg_lsn_in ?fis ppg_lsn_in: T uuid_hash_extended ?fis 'uuid_hash_extended:  uuid_hash ?fisp uuid_hash:  uuid_send ?fisp uuid_send:  uuid_recv ?fis puuid_recv:  uuid_sortsupport ?fisp#uuid_sortsupport(  Hjh؝j dhhfh@hjИpp`ppp8pxrpnH~xx8~8txtxpHpp؈pvXz؅x~P;) Igin_extract_tsquery ?fis)gin_extract_tsquery;( Hgin_extract_tsvector ?fis+gin_extract_tsvector;' gtsvector_consistent ?fis:9gtsvector_consistent_oldsig;& Fgtsvector_consistent ?fis+gtsvector_consistent;% Egtsvector_penalty ?fis%gtsvector_penalty;$ Dgtsvector_same ?fis::gtsvector_same;# Cgtsvector_union ?fis:!gtsvector_union;" Bgtsvector_picksplit ?fis)gtsvector_picksplit;! Agtsvector_decompress ?fisp+gtsvector_decompress;  @gtsvector_compress ?fisp'gtsvector_compress; ts_match_tq Bfssts_match_tq; ts_match_tt Bfssts_match_tt; 3ts_match_qv ?fists_match_qv; 2ts_match_vq ?fists_match_vq;  ts_filter ?fis!tsvector_filter;  array_to_tsvector ?fisp%array_to_tsvector;  tsvector_to_array ?fisp%tsvector_to_array; ? unnest ? AfispK3iooo0tsvector(lexeme4positions,weights!tsvector_unnest;  ts_delete ?fis)tsvector_delete_arr;  ts_delete ?fis)tsvector_delete_str; )tsvector_concat ?fis!tsvector_concat;  setweight ?fis;tsvector_setweight_by_filter; (setweight ?fis'tsvector_setweight; 'strip ?fisptsvector_strip; length ?fisp!tsvector_length; &tsvector_cmp ?fistsvector_cmp; %tsvector_gt ?fistsvector_gt; $tsvector_ge ?fistsvector_ge;  #tsvector_ne ?fistsvector_ne;  "tsvector_eq ?fistsvector_eq;  !tsvector_le ?fistsvector_le;   tsvector_lt ?fistsvector_lt;  ?gtsvectorout ?fisp:gtsvectorout; >gtsvectorin ?fis:pgtsvectorin; 8tsquerysend ?fisptsquerysend; tsqueryout ?fisptsqueryout; 9tsqueryrecv ?fisptsqueryrecv; tsqueryin ?fisptsqueryin; 6tsvectorsend ?fisptsvectorsend; tsvectorout ?fisptsvectorout; 7tsvectorrecv ?fisptsvectorrecv(  @z8Xp~n@nnДnn`npp8nxvh8txvphHt~@v|腘P~ЂlXz<( pts_headline Bfssrr#ts_headline_json<' ?its_stat A@FfvupK3iooo{$query word ndoc(nentryts_stat1<& hts_typanalyze ?fsspts_typanalyze<% gtsmatchjoinsel ?fsstsmatchjoinsel<$ ftsmatchsel ?fsstsmatchsel<# gtsquery_consistent ?fis7gtsquery_consistent_oldsig<" ugtsquery_consistent ?fis)gtsquery_consistent<! tgtsquery_penalty ?fis#gtsquery_penalty<  sgtsquery_same ?fisgtsquery_same< rgtsquery_union ?fisgtsquery_union< qgtsquery_picksplit ?fis'gtsquery_picksplit< ogtsquery_compress ?fisp%gtsquery_compress< ets_rewrite Bfvu-tsquery_rewrite_query< dts_rewrite ?fis!tsquery_rewrite< Yquerytree ?fisptsquerytree< Xnumnode ?fisp!tsquery_numnode< ltsq_mcontained ?fistsq_mcontained< ktsq_mcontains ?fistsq_mcontains< Wtsquery_not ?fisptsquery_not< tsquery_phrase ?fis1tsquery_phrase_distance< tsquery_phrase ?fistsquery_phrase< Vtsquery_or ?fistsquery_or< Utsquery_and ?fistsquery_and< Ttsquery_cmp ?fistsquery_cmp< Stsquery_gt ?fistsquery_gt< Rtsquery_ge ?fistsquery_ge< Qtsquery_ne ?fistsquery_ne<  Ptsquery_eq ?fistsquery_eq<  Otsquery_le ?fistsquery_le<  Ntsquery_lt ?fistsquery_lt<  gin_clean_pending_list ?fvup/gin_clean_pending_list<  gin_tsquery_consistent ?fis=gin_tsquery_consistent_oldsig< gin_extract_tsquery ?fis7gin_extract_tsquery_oldsig<  gin_tsquery_consistent ?fis;gin_tsquery_consistent_6args<  gin_extract_tsquery ?fis5gin_extract_tsquery_5args<  gin_extract_tsvector ?fis7gin_extract_tsvector_2args<  gin_cmp_prefix ?fisgin_cmp_prefix< gin_cmp_tslexeme ?fis#gin_cmp_tslexeme< Qgin_tsquery_triconsistent ?fis5gin_tsquery_triconsistent< Jgin_tsquery_consistent ?fis/gin_tsquery_consistent(  0xpxn0|p|rh z~n(~pb|j@ljl@jn@p膀0p`Ѓ|@x=& ots_headline Bfssrr+ts_headline_json_opt=% nts_headline Bfisrr-ts_headline_json_byid=$ mts_headline Bfisrr5ts_headline_json_byid_opt=# lts_headline Bfss%ts_headline_jsonb=" kts_headline Bfss-ts_headline_jsonb_opt=! jts_headline Bfis/ts_headline_jsonb_byid=  its_headline Bfis7ts_headline_jsonb_byid_opt= ts_headline Bfssts_headline= ts_headline Bfss!ts_headline_opt= ts_headline Bfis#ts_headline_byid= ts_headline Bfis+ts_headline_byid_opt= thesaurus_lexize ?fis#thesaurus_lexize= thesaurus_init ?fispthesaurus_init= dispell_lexize ?fisdispell_lexize= dispell_init ?fispdispell_init= dsynonym_lexize ?fis!dsynonym_lexize= dsynonym_init ?fispdsynonym_init= dsimple_lexize ?fisdsimple_lexize= dsimple_init ?fispdsimple_init= ts_lexize ?fists_lexize= prsd_lextype ?fispprsd_lextype= prsd_headline ?fisprsd_headline= prsd_end ?fispprsd_end= prsd_nexttoken ?fisprsd_nexttoken= prsd_start ?fisprsd_start=  ?ts_parse ?zDfssK3iioo<parser_nametxt$tokid$token!ts_parse_byname=  ?ts_parse ?zDfisK3iioo8parser_oidtxt$tokid$tokents_parse_byid=  ?ts_token_type ?AfsspK3iooo<parser_name$tokid$alias<description+ts_token_type_byname=  ?ts_token_type ?AfispK3iooo8parser_oid$tokid$alias<description'ts_token_type_byid=  ~ts_rank_cd ?fists_rankcd_tt= }ts_rank_cd ?fists_rankcd_ttf= |ts_rank_cd ?fists_rankcd_wtt= {ts_rank_cd ?fists_rankcd_wttf= zts_rank ?fists_rank_tt= yts_rank ?fists_rank_ttf= xts_rank ?fists_rank_wtt= wts_rank ?fists_rank_wttf= ?jts_stat A@FfvuS5iiooo$query,weights word ndoc(nentryts_stat2(8  @zx(phfp@rz|8xzHt@hjЍll`prt thbfd@fjbH|tЂp8>)  jsonb_object_agg_finalfn ?fssp3jsonb_object_agg_finalfn>(  jsonb_object_agg_transfn ?fss3jsonb_object_agg_transfn>'  jsonb_agg ?assp!aggregate_dummy>&  jsonb_agg_finalfn ?fssp%jsonb_agg_finalfn>%  jsonb_agg_transfn ?fss%jsonb_agg_transfn>$ to_jsonb ?fsspto_jsonb>#  jsonb_object ?fis+jsonb_object_two_arg>"  jsonb_object ?fispjsonb_object>! jsonb_send ?fispjsonb_send>  jsonb_out ?fispjsonb_out> jsonb_recv ?fispjsonb_recv> jsonb_in ?fispjsonb_in> regdictionarysend ?fisp%regdictionarysend> regdictionaryrecv ?fisp%regdictionaryrecv> regdictionaryout ?fssp#regdictionaryout> regdictionaryin ?fssp!regdictionaryin> regconfigsend ?fispregconfigsend> regconfigrecv ?fispregconfigrecv> regconfigout ?fsspregconfigout> regconfigin ?fsspregconfigin> get_current_ts_config ?fss`-get_current_ts_config> tsvector_update_trigger_column ?fvs`Ctsvector_update_trigger_bycolumn> tsvector_update_trigger ?fvs`;tsvector_update_trigger_byid> xjson_to_tsvector Bfisr-json_to_tsvector_byid> tto_tsvector Bfisr;json_string_to_tsvector_byid> vjsonb_to_tsvector Bfis/jsonb_to_tsvector_byid> sto_tsvector Bfis=jsonb_string_to_tsvector_byid> wjson_to_tsvector Bfssr#json_to_tsvector>  rto_tsvector Bfsspr1json_string_to_tsvector>  ujsonb_to_tsvector Bfss%jsonb_to_tsvector>  qto_tsvector Bfssp3jsonb_string_to_tsvector>  websearch_to_tsquery Bfssp+websearch_to_tsquery>  phraseto_tsquery Bfssp#phraseto_tsquery> plainto_tsquery Bfssp!plainto_tsquery> to_tsquery Bfsspto_tsquery> to_tsvector Bfsspto_tsvector> websearch_to_tsquery Bfis5websearch_to_tsquery_byid> phraseto_tsquery Bfis-phraseto_tsquery_byid> plainto_tsquery Bfis+plainto_tsquery_byid> to_tsquery Bfis!to_tsquery_byid> to_tsvector Bfis#to_tsvector_byid(h  @xPz| t((((PДZDNvt؏JT`pvj0jxjjjPjjl(fhvr(zhz?$ jsonb_exists_all ?fis#jsonb_exists_all?# jsonb_exists_any ?fis#jsonb_exists_any?" jsonb_exists ?fisjsonb_exists?! jsonb_contains ?fisjsonb_contains?  X jsonb_hash_extended ?fis)jsonb_hash_extended? jsonb_hash ?fispjsonb_hash? jsonb_cmp ?fisjsonb_cmp? jsonb_eq ?fisjsonb_eq? jsonb_ge ?fisjsonb_ge? jsonb_le ?fisjsonb_le? jsonb_gt ?fisjsonb_gt? jsonb_lt ?fisjsonb_lt? jsonb_ne ?fisjsonb_ne?  jsonb_typeof ?fispjsonb_typeof?  jsonb_to_recordset ?Bfssp'jsonb_to_recordset?  jsonb_to_record ?fssp!jsonb_to_record?  jsonb_populate_recordset ?Bfss3jsonb_populate_recordset?  jsonb_populate_record ?fss-jsonb_populate_record? ?\jsonb_each_text ?BfispC1ioos4from_jsonkey$value!jsonb_each_text? ? jsonb_each ?BfispC1ioos4from_jsonkey$valuejsonb_each? [jsonb_object_keys ?Bfisp%jsonb_object_keys?  jsonb_array_length ?fisp'jsonb_array_length? ? jsonb_array_elements_text ?Bfisp;/ioc4from_json$value5jsonb_array_elements_text?  ? jsonb_array_elements ?Bfisp;/ioc4from_json$value+jsonb_array_elements?  ?djsonb_extract_path_text ?fis;/ivk4from_json8path_elems1jsonb_extract_path_text?  ? jsonb_extract_path ?fis;/ivk4from_json8path_elems'jsonb_extract_path?  ' jsonb_array_element_text ?fiss4from_jsonDelement_index3jsonb_array_element_text?  ' jsonb_array_element ?fiss4from_jsonDelement_index)jsonb_array_element? ' jsonb_object_field_text ?fisk4from_json8field_name1jsonb_object_field_text? ' jsonb_object_field ?fisk4from_json8field_name'jsonb_object_field?  jsonb_strip_nulls ?fisp%jsonb_strip_nulls?  jsonb_build_object ?fss`5jsonb_build_object_noargs?  jsonb_build_object ?fssp3-v'jsonb_build_object?  jsonb_build_array ?fss`3jsonb_build_array_noargs?  jsonb_build_array ?fssp3-v%jsonb_build_array?  jsonb_object_agg ?ais!aggregate_dummyVh  @x|(`r@rzXP|Ёj r`tvv(bhztv(vhth0lxlllPllp x`xx9@  @geometry ?fis@p\)polygon_to_geometry)$libdir/postgis-2.59@  @path ?fisZp@#geometry_to_path)$libdir/postgis-2.5@( o record_image_lt ?fis!record_image_lt@' n record_image_ne ?fis!record_image_ne@& m record_image_eq ?fis!record_image_eq@%  btrecordcmp ?fisbtrecordcmp@$  record_ge ?fisrecord_ge@#  record_le ?fisrecord_le@"  record_gt ?fisrecord_gt@!  record_lt ?fisrecord_lt@   record_ne ?fisrecord_ne@  record_eq ?fisrecord_eq@  txid_status ?fvsptxid_status@  txid_visible_in_snapshot ?fis 3txid_visible_in_snapshot@  txid_snapshot_xip ?HBfisp %txid_snapshot_xip@  txid_snapshot_xmax ?fisp 'txid_snapshot_xmax@  txid_snapshot_xmin ?fisp 'txid_snapshot_xmin@  txid_current_snapshot ?fss `-txid_current_snapshot@  txid_current_if_assigned ?fsu`3txid_current_if_assigned@  txid_current ?fsu`txid_current@ ~ txid_snapshot_send ?fisp 'txid_snapshot_send@ } txid_snapshot_recv ?fis p'txid_snapshot_recv@ | txid_snapshot_out ?fisp %txid_snapshot_out@ { txid_snapshot_in ?fis p#txid_snapshot_in@  jsonb_pretty ?fispjsonb_pretty@  jsonb_delete_path ?fis%jsonb_delete_path@ ? jsonb_delete ?fis;/ivk4from_json8path_elems'jsonb_delete_array@   jsonb_delete ?fis#jsonb_delete_idx@   jsonb_delete ?fisjsonb_delete@   jsonb_concat ?fisjsonb_concat@   gin_triconsistent_jsonb_path ?fis;gin_triconsistent_jsonb_path@   gin_consistent_jsonb_path ?fis5gin_consistent_jsonb_path@  gin_extract_jsonb_query_path ?fis;gin_extract_jsonb_query_path@  gin_extract_jsonb_path ?fis/gin_extract_jsonb_path@  gin_triconsistent_jsonb ?fis1gin_triconsistent_jsonb@  gin_consistent_jsonb ?fis+gin_consistent_jsonb@  gin_extract_jsonb_query ?fis1gin_extract_jsonb_query@  gin_extract_jsonb ?fis%gin_extract_jsonb@  gin_compare_jsonb ?fis%gin_compare_jsonb@ jsonb_contained ?fis!jsonb_contained(h  @xxxzțdHz@lؖ` lhpjj@fxh HvȍtzHxjЊrdXvfh0hxhppPppj(jhvA' range_overlaps ?fisrange_overlapsA& range_ne ?fisrange_neA% range_eq ?fisrange_eqA$ upper_inf ?fisp!range_upper_infA#  lower_inf ?fisp!range_lower_infA"  upper_inc ?fisp!range_upper_incA!  lower_inc ?fisp!range_lower_incA   isempty ?fisprange_emptyA  upper ?fisprange_upperA lower ?fisprange_lowerA range_send ?fssprange_sendA range_recv ?fssrange_recvA range_out ?fssprange_outA range_in ?fssrange_inA anyrange_out ?fsspanyrange_outA anyrange_in ?fssanyrange_inA * nth_value ?wis#window_nth_valueA ) last_value ?wisp%window_last_valueA ( first_value ?wisp'window_first_valueA ' lead ?wisIwindow_lead_with_offset_and_defaultA & lead ?wis1window_lead_with_offsetA % lead ?wispwindow_leadA $ lag ?wisGwindow_lag_with_offset_and_defaultA # lag ?wis/window_lag_with_offsetA " lag ?wispwindow_lagA ! ntile ?wispwindow_ntileA   cume_dist ?wis`#window_cume_distA   percent_rank ?wis`)window_percent_rankA   dense_rank ?wis`%window_dense_rankA   rank ?wis`window_rankA   row_number ?wis`%window_row_numberA  pg_extension_config_dump ?fvu3pg_extension_config_dumpA ? pg_extension_update_paths ABfsspK3iooo{ name(source(target path5pg_extension_update_pathsA ? pg_available_extension_versions ABfss`c9ooooooo name,version4superuser<relocatable(schema0requires,commentApg_available_extension_versionsA ? pg_available_extensions ABfss`C1ooo{ nameLdefault_version,comment1pg_available_extensionsA s btrecordimagecmp ?fis#btrecordimagecmpA r record_image_ge ?fis!record_image_geA q record_image_le ?fis!record_image_leA p record_image_gt ?fis!record_image_gt(X  @v~8vxrpv@xpЗpxXplj0jxjj0zh(fhrz(xhxx|(|hz|x(|h~~X~B) ]tsrange ?fisDZZ'range_constructor2B( numrange ?fisB'range_constructor3B' numrange ?fisB'range_constructor2B& int4range ?fis@'range_constructor3B% int4range ?fis@'range_constructor2B$ Ztstzrange_subdiff ?fis%tstzrange_subdiffB# Ytsrange_subdiff ?fisZZ!tsrange_subdiffB" Udaterange_subdiff ?fis::%daterange_subdiffB! Tnumrange_subdiff ?fis#numrange_subdiffB  Sint8range_subdiff ?fis%int8range_subdiffB Rint4range_subdiff ?fis%int4range_subdiffB Kdaterange_canonical ?fisHpH)daterange_canonicalB Xint8range_canonical ?fisVpV)int8range_canonicalB Jint4range_canonical ?fis@p@)int4range_canonicalB a rangesel ?fssrangeselB Lrange_typanalyze ?fssp#range_typanalyzeB Y hash_range_extended ?fis)hash_range_extendedB >hash_range ?fisphash_rangeB )range_gist_same ?fis!range_gist_sameB (range_gist_picksplit ?fis+range_gist_picksplitB 'range_gist_penalty ?fis'range_gist_penaltyB $range_gist_union ?fis#range_gist_unionB #range_gist_consistent ?fis-range_gist_consistentB "range_gt ?fisrange_gtB !range_ge ?fisrange_geB  range_le ?fisrange_leB range_lt ?fisrange_ltB range_cmp ?fisrange_cmpB  range_minus ?fisrange_minusB  range_intersect ?fis!range_intersectB  range_merge ?fisrange_mergeB  range_union ?fisrange_unionB  range_overright ?fis!range_overrightB range_overleft ?fisrange_overleftB range_after ?fisrange_afterB range_before ?fisrange_beforeB range_adjacent ?fisrange_adjacentB range_contained_by ?fis'range_contained_byB elem_contained_by_range ?fis1elem_contained_by_rangeB range_contains ?fisrange_containsB range_contains_elem ?fis)range_contains_elem0h@  8x~~(h~Ș(,`d@xx ~XАttPzȍxxH~(`@x؂9C   @polygon ?fis\p@)geometry_to_polygon)$libdir/postgis-2.5C& spg_bbox_quad_config ?fis+spg_bbox_quad_configC% spg_box_quad_leaf_consistent ?fis;spg_box_quad_leaf_consistentC$ spg_box_quad_inner_consistent ?fis=spg_box_quad_inner_consistentC# spg_box_quad_picksplit ?fis/spg_box_quad_picksplitC" spg_box_quad_choose ?fis)spg_box_quad_chooseC! spg_box_quad_config ?fis)spg_box_quad_configC   spg_range_quad_leaf_consistent ?fis?spg_range_quad_leaf_consistentC  spg_range_quad_inner_consistent ?fisAspg_range_quad_inner_consistentC  spg_range_quad_picksplit ?fis3spg_range_quad_picksplitC  spg_range_quad_choose ?fis-spg_range_quad_chooseC  spg_range_quad_config ?fis-spg_range_quad_configC spg_text_leaf_consistent ?fis3spg_text_leaf_consistentC spg_text_inner_consistent ?fis5spg_text_inner_consistentC spg_text_picksplit ?fis'spg_text_picksplitC spg_text_choose ?fis!spg_text_chooseC spg_text_config ?fis!spg_text_configC spg_kd_inner_consistent ?fis1spg_kd_inner_consistentC spg_kd_picksplit ?fis#spg_kd_picksplitC spg_kd_choose ?fisspg_kd_chooseC spg_kd_config ?fisspg_kd_configC spg_quad_leaf_consistent ?fis3spg_quad_leaf_consistentC spg_quad_inner_consistent ?fis5spg_quad_inner_consistentC spg_quad_picksplit ?fis'spg_quad_picksplitC spg_quad_choose ?fis!spg_quad_chooseC spg_quad_config ?fis!spg_quad_configC  ' make_timestamptz ?fss year$month mday hourminsec0timezone;make_timestamptz_at_timezoneC  ' make_timestamptz ?fss year$month mday hourminsec#make_timestamptzC  ' make_timestamp ?fisZ year$month mday hourminsecmake_timestampC  'make_time ?fis;[ hourminsecmake_timeC 'make_date ?fis:c year$monthdaymake_dateC jint8range ?fisV'range_constructor3C iint8range ?fisV'range_constructor2C fdaterange ?fisH::'range_constructor3C edaterange ?fisH::'range_constructor2C btstzrange ?fisF'range_constructor3C atstzrange ?fisF'range_constructor2C ^tsrange ?fisDZZ'range_constructor30h  @~@x p@p&l88xxx `xЌx@xpxh 9D  @st_z ?fisp@LWGEOM_z_point)$libdir/postgis-2.59D  @st_y ?fisp@LWGEOM_y_point)$libdir/postgis-2.59D  @st_x ?fisp@LWGEOM_x_point)$libdir/postgis-2.5ttypmjD  + pg_create_logical_replication_slot ?fvuS 5iiioo4slot_name(plugin4temporary4slot_namelsnh({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 135 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})Gpg_create_logical_replication_slotconsttyhD + pg_logical_slot_peek_binary_changes zDzDfvu c  9iiivooo4slot_name0upto_lsnDupto_nchanges,optionslsnxid data({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 161 :constvalue 16 [ 64 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 ]})Ipg_logical_slot_peek_binary_changesnsttygD + pg_logical_slot_get_binary_changes zDzDfvu c  9iiivooo4slot_name0upto_lsnDupto_nchanges,optionslsnxid data({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 160 :constvalue 16 [ 64 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 ]})Gpg_logical_slot_get_binary_changes8_multD percentile_cont ?ais!aggregate_dummyD percentile_cont_float8_multi_final ?fisGpercentile_cont_float8_multi_finalD percentile_cont ?ais!aggregate_dummyD percentile_disc_multi_final ?fis9percentile_disc_multi_finalD percentile_disc ?ais!aggregate_dummyD percentile_cont_interval_final ?fis?percentile_cont_interval_finalD percentile_cont ?ais!aggregate_dummyD percentile_cont_float8_final ?fis;percentile_cont_float8_finalD percentile_cont ?ais!aggregate_dummyD percentile_disc_final ?fis-percentile_disc_finalD percentile_disc ?ais!aggregate_dummyD ordered_set_transition_multi ?fis;/iv;ordered_set_transition_multiD ordered_set_transition ?fis/ordered_set_transitionD ?pg_event_trigger_ddl_commands ABfsr`s  = ooooooooop ,classid$objid0objsubid<command_tag<object_type<schema_nameLobject_identity@in_extension,command=pg_event_trigger_ddl_commandsD pg_event_trigger_table_rewrite_reason ?fsr`Mpg_event_trigger_table_rewrite_reasonD ?pg_event_trigger_table_rewrite_oid ?fsr`3-o;oidGpg_event_trigger_table_rewrite_oidD  ? pg_event_trigger_dropped_objects ABfsr` C oooooooooooo0 ,classid$objid0objsubid0original(normal@is_temporary<object_type<schema_name<object_nameLobject_identityDaddress_names@address_argsCpg_event_trigger_dropped_objectsD   pg_logical_emit_message ?fvu =pg_logical_emit_message_byteaD   pg_logical_emit_message ?fvu ;pg_logical_emit_message_textD  ?&pg_replication_slot_advance ?fvu K  3iioo4slot_name0upto_lsn4slot_name,end_lsn9pg_replication_slot_advanceD ?pg_get_replication_slots ? Afss`  A ooooooooooo 4slot_name(plugin4slot_type(datoid4temporary(active8active_pid xmin@catalog_xmin<restart_lsn\confirmed_flush_lsn3pg_get_replication_slotsD pg_drop_replication_slot ?fvup3pg_drop_replication_slotD spg_poly_quad_compress ?fis[p\/spg_poly_quad_compress(  (ppnМ؛  PxȒHx茢 X(X ȂF؀E$ pg_relation_is_publishable ?fssp7pg_relation_is_publishableE# ?pg_get_publication_tables ?zDfssp;/io[,pubname$relid5pg_get_publication_tablesE" ?~pg_show_replication_origin_status ?Bfvr`K 3oooo0local_id<external_id8remote_lsn4local_lsnEpg_show_replication_origin_statusE! }pg_replication_origin_progress ?fvu ?pg_replication_origin_progressE  |pg_replication_origin_advance ?fvu =pg_replication_origin_advanceE {pg_replication_origin_xact_reset ?fvr`Cpg_replication_origin_xact_resetE zpg_replication_origin_xact_setup ?fvr Cpg_replication_origin_xact_setupE ypg_replication_origin_session_progress ?fvu pOpg_replication_origin_session_progressE xpg_replication_origin_session_is_setup ?fvr`Opg_replication_origin_session_is_setupE wpg_replication_origin_session_reset ?fvu`Ipg_replication_origin_session_resetE vpg_replication_origin_session_setup ?fvupIpg_replication_origin_session_setupE upg_replication_origin_oid ?fssp5pg_replication_origin_oidE tpg_replication_origin_drop ?fvup7pg_replication_origin_dropE spg_replication_origin_create ?fvup;pg_replication_origin_createE binary_upgrade_set_missing_value ?fvuCbinary_upgrade_set_missing_valueE binary_upgrade_set_record_init_privs ?fvrpKbinary_upgrade_set_record_init_privsE binary_upgrade_create_empty_extension ?fvuMbinary_upgrade_create_empty_extensionE binary_upgrade_set_next_pg_authid_oid ?fvrpMbinary_upgrade_set_next_pg_authid_oidE binary_upgrade_set_next_pg_enum_oid ?fvrpIbinary_upgrade_set_next_pg_enum_oidE binary_upgrade_set_next_toast_pg_class_oid ?fvrpWbinary_upgrade_set_next_toast_pg_class_oidE binary_upgrade_set_next_index_pg_class_oid ?fvrpWbinary_upgrade_set_next_index_pg_class_oidE binary_upgrade_set_next_heap_pg_class_oid ?fvrpUbinary_upgrade_set_next_heap_pg_class_oidE binary_upgrade_set_next_toast_pg_type_oid ?fvrpUbinary_upgrade_set_next_toast_pg_type_oidE  binary_upgrade_set_next_array_pg_type_oid ?fvrpUbinary_upgrade_set_next_array_pg_type_oidE   binary_upgrade_set_next_pg_type_oid ?fvrpIbinary_upgrade_set_next_pg_type_oidE  dense_rank_final ?fis;/iv=hypothetical_dense_rank_finalE  dense_rank ?aisp3-v!aggregate_dummyE  cume_dist_final ?fis;/iv;hypothetical_cume_dist_finalE cume_dist ?aisp3-v!aggregate_dummyE percent_rank_final ?fis;/ivAhypothetical_percent_rank_finalE percent_rank ?aisp3-v!aggregate_dummyE rank_final ?fis;/iv1hypothetical_rank_finalE rank ?aisp3-v!aggregate_dummyE mode_final ?fismode_finalE mode ?aisp!aggregate_dummyE percentile_cont_interval_multi_final ?fisKpercentile_cont_interval_multi_finalpHix   @xxPl0Pؓ@,vPXp x@x聊` 9F  '@box2d_out ?fisp%@BOX2D_out)$libdir/postgis-2.59F  &@box2d_in ?fis%@pBOX2D_in)$libdir/postgis-2.59F  #@box3d_out ?fisp!@BOX3D_out)$libdir/postgis-2.59F  "@box3d_in ?fis!@pBOX3D_in)$libdir/postgis-2.59F   @st_m ?fisp@LWGEOM_m_point)$libdir/postgis-2.5wF + ?  pg_ls_waldir AAfvs`C1oook name size@modificationpg_ls_waldir[  - wF + ?  pg_ls_logdir AAfvs`C1oook name size@modificationpg_ls_logdir[  - si_F ?.ts_debug BzDfsspc9ioooooo0document$alias<description$token@dictionaries8dictionary,lexemes SELECT * FROM pg_catalog.ts_debug( pg_catalog.get_current_ts_config(), $1); ]F ?.ts_debug BzDfssk;iioooooo(config0document$alias<description$token@dictionaries8dictionary,lexemesh SELECT tt.alias AS alias, tt.description AS description, parse.token AS token, ARRAY ( SELECT m.mapdict::pg_catalog.regdictionary FROM pg_catalog.pg_ts_config_map AS m WHERE m.mapcfg = $1 AND m.maptokentype = parse.tokid ORDER BY m.mapseqno ) AS dictionaries, ( SELECT mapdict::pg_catalog.regdictionary FROM pg_catalog.pg_ts_config_map AS m WHERE m.mapcfg = $1 AND m.maptokentype = parse.tokid ORDER BY pg_catalog.ts_lexize(mapdict, parse.token) IS NULL, m.mapseqno LIMIT 1 ) AS dictionary, ( SELECT pg_catalog.ts_lexize(mapdict, parse.token) FROM pg_catalog.pg_ts_config_map AS m WHERE m.mapcfg = $1 AND m.maptokentype = parse.tokid ORDER BY pg_catalog.ts_lexize(mapdict, parse.token) IS NULL, m.mapseqno LIMIT 1 ) AS lexemes FROM pg_catalog.ts_parse( (SELECT cfgparser FROM pg_catalog.pg_ts_config WHERE oid = $1 ), $2 ) AS parse, pg_catalog.ts_token_type( (SELECT cfgparser FROM pg_catalog.pg_ts_config WHERE oid = $1 ) ) AS tt WHERE tt.tokid = parse.tokid 8F + ? H pg_config ?Afir`;/ooS name,settingpg_configC  4F + ? I pg_hba_file_rules ?zDfvs`s = ooooooooo0 <line_number type0database4user_name,address,netmask<auth_method,options$error%pg_hba_file_rulesC  2F  + ?  pg_show_all_file_settings ?zDfvs`c9ooooooo8sourcefile8sourceline$seqno name,setting,applied$error/show_all_file_settingsC  F  satisfies_hash_partition ?fis3iiiv3satisfies_hash_partitionF  x pg_collation_actual_version Bfvsp9pg_collation_actual_versionF u pg_import_system_collations Bfvup9pg_import_system_collationsF ?t pg_control_init ?fvs` C oooooooooooo  Xmax_data_alignment\database_block_sizeXblocks_per_segmentHwal_block_sizedbytes_per_wal_segmentdmax_identifier_lengthTmax_index_columns`max_toast_chunk_sizellarge_object_chunk_size`float4_pass_by_value`float8_pass_by_valuexdata_page_checksum_version!pg_control_initF ?s pg_control_recovery ?fvs`S  5ooooop`min_recovery_end_lsntmin_recovery_end_timelinePbackup_start_lsnHbackup_end_lsnend_of_backup_record_required)pg_control_recoveryF ?r pg_control_checkpoint ?fvs` OooooooooooooooooooHcheckpoint_lsn0redo_lsnDredo_wal_file<timeline_idPprev_timeline_idPfull_page_writes0next_xid0next_oidTnext_multixact_idTnext_multi_offset8oldest_xidLoldest_xid_dbidToldest_active_xidPoldest_multi_xidToldest_multi_dbid`oldest_commit_ts_xid`newest_commit_ts_xidLcheckpoint_time-pg_control_checkpointF ?q pg_control_system ?fvs`K3ooooXpg_control_versionXcatalog_version_noTsystem_identifierppg_control_last_modified%pg_control_systemF  row_security_active ?fssp3row_security_active_nameF  row_security_active ?fssp)row_security_active[\   XFLpv0xV XpȊNxX:p؂ oG +  = pg_reload_conf ?fvs`pg_reload_confC  oG +  > pg_rotate_logfile ?fvs`+pg_rotate_logfile_v2C  oG +  pg_wal_replay_resume ?fvs`+pg_wal_replay_resumeC  oG +  pg_wal_replay_pause ?fvs`)pg_wal_replay_pauseC  oG  +  pg_switch_wal ?fvs `pg_switch_walC  oG  +   pg_create_restore_point ?fvs p1pg_create_restore_pointC  oG  +  pg_stop_backup ?zDfvrS 5iiooo4exclusivePwait_for_archivelsn4labelfile8spcmapfileh({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 104 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})%pg_stop_backup_v2C  oG  + g |pg_start_backup ?fvr s$label fast4exclusive({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 481 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 514 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})!pg_start_backupC  nG  + g jsonb_insert ?fis0jsonb_in path<replacement@insert_afterh({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 132 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})jsonb_insertmG + gparse_ident ?fisSstr(strictd({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 74 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})parse_identlG + g jsonb_set ?fis0jsonb_in path<replacementTcreate_if_missingh({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 134 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})jsonb_setkG + g make_interval ?fis$years(months$weeks days$hours mins secs({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 62 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 85 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 107 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 144 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 166 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 187 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 236 :constvalue 6 [ 24 0 0 0 -128 -128 ]}) :location -1})make_intervaliG + pg_create_physical_replication_slot ?fvuS 5iiioo4slot_name\immediately_reserve4temporary4slot_namelsn({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 126 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 166 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})Ipg_create_physical_replication_slotfG + pg_logical_slot_peek_changes zDzDfvu c  9iiivooo4slot_name0upto_lsnDupto_nchanges,optionslsnxid data({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 154 :constvalue 16 [ 64 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 ]});pg_logical_slot_peek_changeseG + pg_logical_slot_get_changes zDzDfvu c  9iiivooo4slot_name0upto_lsnDupto_nchanges,optionslsnxid data({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 153 :constvalue 16 [ 64 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 ]})9pg_logical_slot_get_changesdG + gyjson_populate_recordset ?Bfssr base4from_jsonPuse_json_as_texth({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 167 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})1json_populate_recordsetcG + gxjson_populate_record ?fssr base4from_jsonPuse_json_as_texth({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 164 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})+json_populate_record[  (@hЙ(HhȒ(H`x؉8Xx؂H# )2sjis_to_euc_jp ?fvssjis_to_euc_jp1$libdir/euc_jp_and_sjisH" '2euc_jp_to_sjis ?fvseuc_jp_to_sjis1$libdir/euc_jp_and_sjisH! %2mic_to_euc_cn ?fvsmic_to_euc_cn/$libdir/euc_cn_and_micH  #2euc_cn_to_mic ?fvseuc_cn_to_mic/$libdir/euc_cn_and_micH !2win866_to_iso ?fvswin866_to_iso3$libdir/cyrillic_and_micH 2iso_to_win866 ?fvsiso_to_win8663$libdir/cyrillic_and_micH 2win1251_to_iso ?fvswin1251_to_iso3$libdir/cyrillic_and_micH 2iso_to_win1251 ?fvsiso_to_win12513$libdir/cyrillic_and_micH 2koi8r_to_iso ?fvskoi8r_to_iso3$libdir/cyrillic_and_micH 2iso_to_koi8r ?fvsiso_to_koi8r3$libdir/cyrillic_and_micH 2win1251_to_win866 ?fvs%win1251_to_win8663$libdir/cyrillic_and_micH 2win866_to_win1251 ?fvs%win866_to_win12513$libdir/cyrillic_and_micH 2win866_to_koi8r ?fvs!win866_to_koi8r3$libdir/cyrillic_and_micH 2koi8r_to_win866 ?fvs!koi8r_to_win8663$libdir/cyrillic_and_micH  2win1251_to_koi8r ?fvs#win1251_to_koi8r3$libdir/cyrillic_and_micH  2koi8r_to_win1251 ?fvs#koi8r_to_win12513$libdir/cyrillic_and_micH  2mic_to_win866 ?fvsmic_to_win8663$libdir/cyrillic_and_micH 2win866_to_mic ?fvswin866_to_mic3$libdir/cyrillic_and_micH 2mic_to_win1251 ?fvsmic_to_win12513$libdir/cyrillic_and_micH 2win1251_to_mic ?fvswin1251_to_mic3$libdir/cyrillic_and_micH 2mic_to_iso ?fvsmic_to_iso3$libdir/cyrillic_and_micH 1iso_to_mic ?fvsiso_to_mic3$libdir/cyrillic_and_micH  1mic_to_koi8r ?fvsmic_to_koi8r3$libdir/cyrillic_and_micH  1koi8r_to_mic ?fvskoi8r_to_mic3$libdir/cyrillic_and_micH  1mic_to_ascii ?fvsmic_to_ascii-$libdir/ascii_and_micH  1ascii_to_mic ?fvsascii_to_mic-$libdir/ascii_and_micqH  +  lo_export ?fvube_lo_exportC  qH +  lo_import ?fvu-be_lo_import_with_oidC  qH +  lo_import ?fvupbe_lo_importC  pH +  pg_stat_reset_single_function_counters ?fvspOpg_stat_reset_single_function_countersC  pH +  pg_stat_reset_single_table_counters ?fvspIpg_stat_reset_single_table_countersC  pH +  pg_stat_reset_shared ?fvsp+pg_stat_reset_sharedC  pH +  pg_stat_reset ?fvs`pg_stat_resetC  o H +  pg_current_logfile ?fvsp1pg_current_logfile_1argC  o H +  pg_current_logfile ?fvs`'pg_current_logfileC  iH  @` @`Ȓ0PpЊ0PpЃ#$H9%I%  *@box2df_in ?fis)@pbox2df_in)$libdir/postgis-2.5I$ + m2win_to_utf8 ?fvswin_to_utf8+$libdir/utf8_and_winI# + k2utf8_to_win ?fvsutf8_to_win+$libdir/utf8_and_winI  i2koi8u_to_utf8 ?fvskoi8u_to_utf85$libdir/utf8_and_cyrillicI g2utf8_to_koi8u ?fvsutf8_to_koi8u5$libdir/utf8_and_cyrillicI e2koi8r_to_utf8 ?fvskoi8r_to_utf85$libdir/utf8_and_cyrillicI c2utf8_to_koi8r ?fvsutf8_to_koi8r5$libdir/utf8_and_cyrillicI a2utf8_to_big5 ?fvsutf8_to_big5-$libdir/utf8_and_big5I _2big5_to_utf8 ?fvsbig5_to_utf8-$libdir/utf8_and_big5I ]2utf8_to_ascii ?fvsutf8_to_ascii/$libdir/utf8_and_asciiI [2ascii_to_utf8 ?fvsascii_to_utf8/$libdir/utf8_and_asciiI Y2mic_to_latin4 ?fvsmic_to_latin4-$libdir/latin_and_micI W2latin4_to_mic ?fvslatin4_to_mic-$libdir/latin_and_micI U2mic_to_latin3 ?fvsmic_to_latin3-$libdir/latin_and_micI S2latin3_to_mic ?fvslatin3_to_mic-$libdir/latin_and_micI Q2mic_to_latin1 ?fvsmic_to_latin1-$libdir/latin_and_micI O2latin1_to_mic ?fvslatin1_to_mic-$libdir/latin_and_micI M2win1250_to_latin2 ?fvs%win1250_to_latin27$libdir/latin2_and_win1250I K2latin2_to_win1250 ?fvs%latin2_to_win12507$libdir/latin2_and_win1250I I2mic_to_win1250 ?fvsmic_to_win12507$libdir/latin2_and_win1250I G2win1250_to_mic ?fvswin1250_to_mic7$libdir/latin2_and_win1250I E2mic_to_latin2 ?fvsmic_to_latin27$libdir/latin2_and_win1250I  C2latin2_to_mic ?fvslatin2_to_mic7$libdir/latin2_and_win1250I  A2mic_to_big5 ?fvsmic_to_big51$libdir/euc_tw_and_big5I  ?2mic_to_euc_tw ?fvsmic_to_euc_tw1$libdir/euc_tw_and_big5I  =2big5_to_mic ?fvsbig5_to_mic1$libdir/euc_tw_and_big5I  ;2euc_tw_to_mic ?fvseuc_tw_to_mic1$libdir/euc_tw_and_big5I 92big5_to_euc_tw ?fvsbig5_to_euc_tw1$libdir/euc_tw_and_big5I 72euc_tw_to_big5 ?fvseuc_tw_to_big51$libdir/euc_tw_and_big5I 52mic_to_euc_kr ?fvsmic_to_euc_kr/$libdir/euc_kr_and_micI 32euc_kr_to_mic ?fvseuc_kr_to_mic/$libdir/euc_kr_and_micI 12mic_to_sjis ?fvsmic_to_sjis1$libdir/euc_jp_and_sjisI /2mic_to_euc_jp ?fvsmic_to_euc_jp1$libdir/euc_jp_and_sjisI -2sjis_to_mic ?fvssjis_to_mic1$libdir/euc_jp_and_sjisI +2euc_jp_to_mic ?fvseuc_jp_to_mic1$libdir/euc_jp_and_sjis[  @`0Pp0Б0PpPHPЉqJ# 2_pg_index_position2 Bfsu SELECT (ss.a).n FROM (SELECT information_schema._pg_expandarray(indkey) AS a FROM pg_catalog.pg_index WHERE indexrelid = $1) ss WHERE (ss.a).x = $2; pJ  2_pg_keysequal2 Bfisselect $1 operator(pg_catalog.<@) $2 and $2 operator(pg_catalog.<@) $1oJ ?2_pg_expandarray2 BzDfispC1iooSxnselect $1[s], s - pg_catalog.array_lower($1,1) + 1 from pg_catalog.generate_series(pg_catalog.array_lower($1,1), pg_catalog.array_upper($1,1), 1) as g(s)c20048 J 2dsnowball_lexize ?fvu#dsnowball_lexize-$libdir/dict_snowballand_eJ 2dsnowball_init ?fvupdsnowball_init-$libdir/dict_snowball$liJ 2shift_jis_2004_to_euc_jis_2004 ?fvs?shift_jis_2004_to_euc_jis_20043$libdir/euc2004_sjis2004J 2euc_jis_2004_to_shift_jis_2004 ?fvs?euc_jis_2004_to_shift_jis_20043$libdir/euc2004_sjis2004J 2utf8_to_shift_jis_2004 ?fvs/utf8_to_shift_jis_20045$libdir/utf8_and_sjis2004 J" 2shift_jis_2004_to_utf8 ?fvs/shift_jis_2004_to_utf85$libdir/utf8_and_sjis2004so8859J! 2utf8_to_euc_jis_2004 ?fvs+utf8_to_euc_jis_20043$libdir/utf8_and_euc20048J 2euc_jis_2004_to_utf8 ?fvs+euc_jis_2004_to_utf83$libdir/utf8_and_euc20049J 2utf8_to_uhc ?fvsutf8_to_uhc+$libdir/utf8_and_uhcso8859_J 2uhc_to_utf8 ?fvsuhc_to_utf8+$libdir/utf8_and_uhc2J 2utf8_to_sjis ?fvsutf8_to_sjis-$libdir/utf8_and_sjis % J 2sjis_to_utf8 ?fvssjis_to_utf8-$libdir/utf8_and_sjisJJ 2utf8_to_johab ?fvsutf8_to_johab/$libdir/utf8_and_johabJ 2johab_to_utf8 ?fvsjohab_to_utf8/$libdir/utf8_and_johabJ 2utf8_to_iso8859_1 ?fvs%utf8_to_iso8859_17$libdir/utf8_and_iso8859_1J 2iso8859_1_to_utf8 ?fvs%iso8859_1_to_utf87$libdir/utf8_and_iso8859_1J + 2iso8859_to_utf8 ?fvs!iso8859_to_utf83$libdir/utf8_and_iso8859J + 2utf8_to_iso8859 ?fvs!utf8_to_iso88593$libdir/utf8_and_iso8859J  2utf8_to_gbk ?fvsutf8_to_gbk+$libdir/utf8_and_gbkJ  2gbk_to_utf8 ?fvsgbk_to_utf8+$libdir/utf8_and_gbkJ  2utf8_to_gb18030 ?fvs!utf8_to_gb180303$libdir/utf8_and_gb18030J  2gb18030_to_utf8 ?fvs!gb18030_to_utf83$libdir/utf8_and_gb18030J 2utf8_to_euc_tw ?fvsutf8_to_euc_tw1$libdir/utf8_and_euc_twJ 2euc_tw_to_utf8 ?fvseuc_tw_to_utf81$libdir/utf8_and_euc_twJ 2utf8_to_euc_kr ?fvsutf8_to_euc_kr1$libdir/utf8_and_euc_krJ 2euc_kr_to_utf8 ?fvseuc_kr_to_utf81$libdir/utf8_and_euc_krJ 2utf8_to_euc_jp ?fvsutf8_to_euc_jp1$libdir/utf8_and_euc_jpJ 2euc_jp_to_utf8 ?fvseuc_jp_to_utf81$libdir/utf8_and_euc_jpJ 2utf8_to_euc_cn ?fvsutf8_to_euc_cn1$libdir/utf8_and_euc_cnJ 2euc_cn_to_utf8 ?fvseuc_cn_to_utf81$libdir/utf8_and_euc_cnk  Pzș @@lZ XȋЊ؉0H`9K  M@geometry_gist_picksplit_2d ?fvs=gserialized_gist_picksplit_2d)$libdir/postgis-2.59K  L@geometry_gist_penalty_2d ?fvs9gserialized_gist_penalty_2d)$libdir/postgis-2.59K  K@geometry_gist_compress_2d ?fvsp;gserialized_gist_compress_2d)$libdir/postgis-2.59K  J@geometry_gist_consistent_2d ?fvs@?gserialized_gist_consistent_2d)$libdir/postgis-2.59K  I@geometry_gist_distance_2d ?fvs@;gserialized_gist_distance_2d)$libdir/postgis-2.59K  D@geometry_hash ?fisp@lwgeom_hash)$libdir/postgis-2.59K  '6@geometry_cmp ?fis@@[$geom1$geom2lwgeom_cmp)$libdir/postgis-2.59K  '5@geometry_eq ?fis@@[$geom1$geom2lwgeom_eq)$libdir/postgis-2.59K  '4@geometry_ge ?fis@@[$geom1$geom2lwgeom_ge)$libdir/postgis-2.59K  '3@geometry_gt ?fis@@[$geom1$geom2lwgeom_gt)$libdir/postgis-2.59K  '2@geometry_le ?fis@@[$geom1$geom2lwgeom_le)$libdir/postgis-2.59K  '1@geometry_lt ?fis@@[$geom1$geom2lwgeom_lt)$libdir/postgis-2.59K  /@gidx_out ?fisp-@gidx_out)$libdir/postgis-2.59K  .@gidx_in ?fis-@pgidx_in)$libdir/postgis-2.59&K   +@box2df_out ?fisp)@box2df_out)$libdir/postgis-2.5K  4plpgsql_validator ?fvup%plpgsql_validator!$libdir/plpgsqlK  4plpgsql_inline_handler ?fvup/plpgsql_inline_handler!$libdir/plpgsqlK  4plpgsql_call_handler ?fvu`+plpgsql_call_handler!$libdir/plpgsqlzK  '3_pg_interval_type2 BfisS$typidmodSELECT CASE WHEN $1 IN (1186) /* interval */ THEN upper(substring(format_type($1, $2) from 'interval[()0-9]* #"%#"' for '#')) ELSE null ENDyK '2_pg_datetime_precision2 Bfis[$typid(typmodDSELECT CASE WHEN $1 IN (1082) /* date */ THEN 0 WHEN $1 IN (1083, 1114, 1184, 1266) /* time, timestamp, same + tz */ THEN CASE WHEN $2 < 0 THEN 6 ELSE $2 END WHEN $1 IN (1186) /* interval */ THEN CASE WHEN $2 < 0 OR $2 & 65535 = 65535 THEN 6 ELSE $2 & 65535 END ELSE null ENDxK '2_pg_numeric_scale2 Bfis[$typid(typmodhSELECT CASE WHEN $1 IN (21, 23, 20) THEN 0 WHEN $1 IN (1700) THEN CASE WHEN $2 = -1 THEN null ELSE ($2 - 4) & 65535 END ELSE null ENDwK '2_pg_numeric_precision_radix2 Bfis[$typid(typmodSELECT CASE WHEN $1 IN (21, 23, 20, 700, 701) THEN 2 WHEN $1 IN (1700) THEN 10 ELSE null ENDvK '2_pg_numeric_precision2 Bfis[$typid(typmodSELECT CASE $1 WHEN 21 /*int2*/ THEN 16 WHEN 23 /*int4*/ THEN 32 WHEN 20 /*int8*/ THEN 64 WHEN 1700 /*numeric*/ THEN CASE WHEN $2 = -1 THEN null ELSE (($2 - 4) >> 16) & 65535 END WHEN 700 /*float4*/ THEN 24 /*FLT_MANT_DIG*/ WHEN 701 /*float8*/ THEN 53 /*DBL_MANT_DIG*/ ELSE null ENDuK '2_pg_char_octet_length2 Bfis[$typid(typmodSELECT CASE WHEN $1 IN (25, 1042, 1043) /* text, char, varchar */ THEN CASE WHEN $2 = -1 /* default typmod */ THEN CAST(2^30 AS integer) ELSE information_schema._pg_char_max_length($1, $2) * pg_catalog.pg_encoding_max_length((SELECT encoding FROM pg_catalog.pg_database WHERE datname = pg_catalog.current_database())) END ELSE null ENDtK '2_pg_char_max_length2 Bfis[$typid(typmodSELECT CASE WHEN $2 = -1 /* default typmod */ THEN null WHEN $1 IN (1042, 1043) /* char, varchar */ THEN $2 - 4 WHEN $1 IN (1560, 1562) /* bit, varbit */ THEN $2 ELSE null ENDsK 2_pg_truetypmod2 BfisKGSELECT CASE WHEN $2.typtype = 'd' THEN $2.typtypmod ELSE $1.atttypmod ENDrK 2_pg_truetypid2 BfisKGSELECT CASE WHEN $2.typtype = 'd' THEN $2.typbasetype ELSE $1.atttypid END[m(  @r V @Xph `hXP H@8 0(   (Pp؂(9L  @geometry_overlaps_nd ?fis@@+gserialized_overlaps)$libdir/postgis-2.59L  @geometry_gist_decompress_nd ?fvsp9gserialized_gist_decompress)$libdir/postgis-2.59L  @geometry_gist_same_nd ?fvs@@-gserialized_gist_same)$libdir/postgis-2.59L  @geometry_gist_union_nd ?fvs/gserialized_gist_union)$libdir/postgis-2.59L  @geometry_gist_picksplit_nd ?fvs7gserialized_gist_picksplit)$libdir/postgis-2.59L  @geometry_gist_penalty_nd ?fvs3gserialized_gist_penalty)$libdir/postgis-2.59L  @geometry_gist_compress_nd ?fvsp5gserialized_gist_compress)$libdir/postgis-2.59L  @geometry_gist_consistent_nd ?fvs@9gserialized_gist_consistent)$libdir/postgis-2.59L  't@geometry_above ?fis@@[$geom1$geom2+gserialized_above_2d)$libdir/postgis-2.59L  'r@geometry_overabove ?fis@@[$geom1$geom23gserialized_overabove_2d)$libdir/postgis-2.59L  'q@geometry_right ?fis@@[$geom1$geom2+gserialized_right_2d)$libdir/postgis-2.59L  'o@geometry_overright ?fis@@[$geom1$geom23gserialized_overright_2d)$libdir/postgis-2.59L  'm@geometry_overbelow ?fis@@[$geom1$geom23gserialized_overbelow_2d)$libdir/postgis-2.59L  'j@geometry_below ?fis@@[$geom1$geom2+gserialized_below_2d)$libdir/postgis-2.59L  'h@geometry_overleft ?fis@@[$geom1$geom21gserialized_overleft_2d)$libdir/postgis-2.59L  'e@geometry_left ?fis@@[$geom1$geom2)gserialized_left_2d)$libdir/postgis-2.59L  'b@geometry_within ?fis@@[$geom1$geom2-gserialized_within_2d)$libdir/postgis-2.59L   'a@geometry_contains ?fis@@[$geom1$geom21gserialized_contains_2d)$libdir/postgis-2.59L   '^@geometry_distance_box ?fis@@[$geom1$geom29gserialized_distance_box_2d)$libdir/postgis-2.59L   ']@geometry_distance_centroid ?fis@@[$geom1$geom2distance)$libdir/postgis-2.59L   '[@geometry_same ?fis@@[$geom1$geom2)gserialized_same_2d)$libdir/postgis-2.59L   'Y@geometry_overlaps ?fis@@[$geom1$geom21gserialized_overlaps_2d)$libdir/postgis-2.59L  X@gserialized_gist_joinsel_nd ?fvs9gserialized_gist_joinsel_nd)$libdir/postgis-2.59L  W@gserialized_gist_joinsel_2d ?fvs9gserialized_gist_joinsel_2d)$libdir/postgis-2.59L  V@gserialized_gist_sel_nd ?fvs1gserialized_gist_sel_nd)$libdir/postgis-2.59L  U@gserialized_gist_sel_2d ?fvs1gserialized_gist_sel_2d)$libdir/postgis-2.59L  'T@_postgis_index_extent ?fsu%@KtblcolE_postgis_gserialized_index_extent)$libdir/postgis-2.59L  gS@_postgis_stats ?fvs[tbl0att_namep({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 15959 :constvalue 5 [ 20 0 0 0 50 ]})7_postgis_gserialized_stats)$libdir/postgis-2.59L  GR@_postgis_join_selectivity ?fvsp({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 15544 :constvalue 5 [ 20 0 0 0 50 ]});_postgis_gserialized_joinsel)$libdir/postgis-2.59L  gQ@_postgis_selectivity ?fvs@stbl0att_name geom modep({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 15032 :constvalue 5 [ 20 0 0 0 50 ]})3_postgis_gserialized_sel)$libdir/postgis-2.5qn  (Xxp\P  8PZ6LHx9M  g@st_quantizecoordinates Afis@@g(prec_x(prec_y(prec_z(prec_m8({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 36483 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 36508 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 36533 :constvalue <>})/ST_QuantizeCoordinates)$libdir/postgis-2.59M  @postgis_hasbbox ?fisp@LWGEOM_hasBBOX)$libdir/postgis-2.59M  @postgis_dropbbox ?fis@p@!LWGEOM_dropBBOX)$libdir/postgis-2.59M  @postgis_addbbox ?fis@p@LWGEOM_addBBOX)$libdir/postgis-2.59M  @st_find_extent Bfis%@ SELECT public._postgis_deprecate('ST_Find_Extent', 'ST_FindExtent', '2.2.0'); SELECT public.ST_FindExtent($1,$2); 9M  @st_findextent 4Bfis%@ DECLARE tablename alias for $1; columnname alias for $2; myrec RECORD; BEGIN FOR myrec IN EXECUTE 'SELECT public.ST_Extent("' || columnname || '") As extent FROM "' || tablename || '"' LOOP return myrec.extent; END LOOP; END; 9M  @st_find_extent Bfis%@ SELECT public._postgis_deprecate('ST_Find_Extent', 'ST_FindExtent', '2.2.0'); SELECT public.ST_FindExtent($1,$2,$3); 9M  @st_findextent 4Bfis%@| DECLARE schemaname alias for $1; tablename alias for $2; columnname alias for $3; myrec RECORD; BEGIN FOR myrec IN EXECUTE 'SELECT public.ST_Extent("' || columnname || '") As extent FROM "' || schemaname || '"."' || tablename || '"' LOOP return myrec.extent; END LOOP; END; 9M  @st_estimated_extent Bfiu%@ SELECT public._postgis_deprecate('ST_Estimated_Extent', 'ST_EstimatedExtent', '2.1.0'); -- We use security invoker instead of security definer -- to prevent malicious injection of a same named different function -- that would be run under elevated permissions SELECT public.ST_EstimatedExtent($1, $2); 9M  @st_estimatedextent ?fiu%@;gserialized_estimated_extent)$libdir/postgis-2.59M  @st_estimated_extent Bfiu%@T SELECT public._postgis_deprecate('ST_Estimated_Extent', 'ST_EstimatedExtent', '2.1.0'); -- We use security invoker instead of security definer -- to prevent malicious injection of a different same named function SELECT public.ST_EstimatedExtent($1, $2, $3); 9M  @st_estimatedextent ?fiu%@;gserialized_estimated_extent)$libdir/postgis-2.59M  @st_estimatedextent ?fiu%@;gserialized_estimated_extent)$libdir/postgis-2.59M  '@st_makebox2d ?fis%@@@[$geom1$geom2!BOX2D_construct)$libdir/postgis-2.59M  @postgis_getbbox ?fis%@p@#LWGEOM_to_BOX2DF)$libdir/postgis-2.59M  '@st_expand ?fis%@%@[boxdxdyBOX2D_expand)$libdir/postgis-2.59M   @st_expand ?fis%@%@BOX2D_expand)$libdir/postgis-2.59M   @st_zmax ?fisp!@BOX3D_zmax)$libdir/postgis-2.59M   @st_ymax ?fisp!@BOX3D_ymax)$libdir/postgis-2.59M   @st_xmax ?fisp!@BOX3D_xmax)$libdir/postgis-2.59M   @st_zmin ?fisp!@BOX3D_zmin)$libdir/postgis-2.59M  @st_ymin ?fisp!@BOX3D_ymin)$libdir/postgis-2.59M  @st_xmin ?fisp!@BOX3D_xmin)$libdir/postgis-2.59M  @st_shift_longitude Bfis@p@ SELECT public._postgis_deprecate('ST_Shift_Longitude', 'ST_ShiftLongitude', '2.2.0'); SELECT public.ST_ShiftLongitude($1); 9M  '@st_wrapx ?fis@@[ geom wrap moveST_WrapX)$libdir/postgis-2.59M  @st_shiftlongitude ?fis@p@/LWGEOM_longitude_shift)$libdir/postgis-2.59M  @geometry_gist_distance_nd ?fvs@5gserialized_gist_distance)$libdir/postgis-2.59M  @geometry_distance_cpa ?fis@@ST_DistanceCPA)$libdir/postgis-2.59M  @geometry_distance_centroid_nd ?fis@@1gserialized_distance_nd)$libdir/postgis-2.5Xo  0,HxК 8nȕj蔴vВ P荘،`h00p,2Ȁ9N   @st_force3d ?fis@p@#LWGEOM_force_3dz)$libdir/postgis-2.59N  @st_force_3dz Bfis@p@ SELECT public._postgis_deprecate('ST_Force_3dz', 'ST_Force3DZ', '2.1.0'); SELECT public.ST_Force3DZ($1); 9N  @st_force3dz ?fis@p@#LWGEOM_force_3dz)$libdir/postgis-2.59N  @st_force_2d Bfis@p@ SELECT public._postgis_deprecate('ST_Force_2d', 'ST_Force2D', '2.1.0'); SELECT public.ST_Force2D($1); 9N  @st_force2d ?fis@p@!LWGEOM_force_2d)$libdir/postgis-2.59N  g@st_angle ?fis@@@@kpt1pt2pt3pt4({CONST :consttype 16390 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 43362 :constvalue 16 [ 64 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 ]})LWGEOM_angle)$libdir/postgis-2.59N  '@st_azimuth ?fis@@[$geom1$geom2LWGEOM_azimuth)$libdir/postgis-2.59N  @st_point_inside_circle Bfis@d SELECT public._postgis_deprecate('ST_Point_Inside_Circle', 'ST_PointInsideCircle', '2.2.0'); SELECT public.ST_PointInsideCircle($1,$2,$3,$4); 9N  @st_pointinsidecircle ?fis@7LWGEOM_inside_circle_point)$libdir/postgis-2.59N  '@st_distance Afis@@[$geom1$geom2distance)$libdir/postgis-2.59N  '@st_distance_spheroid Bfis@@@c$geom1$geom2H SELECT public._postgis_deprecate('ST_Distance_Spheroid', 'ST_DistanceSpheroid', '2.2.0'); SELECT public.ST_DistanceSpheroid($1,$2,$3); 9N  '@st_distancespheroid HCfis@@@c$geom1$geom25LWGEOM_distance_ellipsoid)$libdir/postgis-2.59N  @st_ispolygonccw Afisp@!ST_IsPolygonCCW)$libdir/postgis-2.59N  @st_ispolygoncw Afisp@ST_IsPolygonCW)$libdir/postgis-2.59N  @st_area Afisp@ area)$libdir/postgis-2.59N  @st_area2d Afisp@)LWGEOM_area_polygon)$libdir/postgis-2.59N  @st_perimeter Afisp@1LWGEOM_perimeter2d_poly)$libdir/postgis-2.59N  @st_perimeter2d Afisp@1LWGEOM_perimeter2d_poly)$libdir/postgis-2.59N  @st_3dperimeter Afisp@-LWGEOM_perimeter_poly)$libdir/postgis-2.59N   @st_length2d_spheroid Bfis@@< SELECT public._postgis_deprecate('ST_Length2D_Spheroid', 'ST_Length2DSpheroid', '2.2.0'); SELECT public.ST_Length2DSpheroid($1,$2); 9N   @st_length2dspheroid Cfis@@5LWGEOM_length2d_ellipsoid)$libdir/postgis-2.59N   @st_length_spheroid Bfis@@$ SELECT public._postgis_deprecate('ST_Length_Spheroid', 'ST_LengthSpheroid', '2.2.0'); SELECT public.ST_LengthSpheroid($1,$2); 9N   @st_3dlength_spheroid Bfiu@@, SELECT public._postgis_deprecate('ST_3DLength_Spheroid', 'ST_LengthSpheroid', '2.2.0'); SELECT public.ST_LengthSpheroid($1,$2); 9N   @st_lengthspheroid Cfis@@GLWGEOM_length_ellipsoid_linestring)$libdir/postgis-2.59N  @st_length Afisp@7LWGEOM_length2d_linestring)$libdir/postgis-2.59N  @st_length2d Afisp@7LWGEOM_length2d_linestring)$libdir/postgis-2.59N  @st_3dlength Afisp@3LWGEOM_length_linestring)$libdir/postgis-2.59N  @st_nrings ?fisp@LWGEOM_nrings)$libdir/postgis-2.59N  @st_npoints Afisp@LWGEOM_npoints)$libdir/postgis-2.59N  @st_summary Afisp@LWGEOM_summary)$libdir/postgis-2.59N  @st_mem_size Bfiup@ SELECT public._postgis_deprecate('ST_Mem_Size', 'ST_MemSize', '2.2.0'); SELECT public.ST_MemSize($1); 9N  @st_memsize @fisp@!LWGEOM_mem_size)$libdir/postgis-2.5 {p  ,2(,8b(Pؐtȋ00`ȆHx؁9O  Ast_polygonize ?fis@p@%polygonize_garray)$libdir/postgis-2.59O  Ast_buildarea ?fis@p@ST_BuildArea)$libdir/postgis-2.59O  @st_asewkt ;Dfisp@LWGEOM_asEWKT)$libdir/postgis-2.59O  @st_ndims @fisp@LWGEOM_ndims)$libdir/postgis-2.59O  @st_zmflag @fisp@LWGEOM_zmflag)$libdir/postgis-2.59O  '@st_normalize ?fis@p@; geomST_Normalize)$libdir/postgis-2.59O  @postgis_noop Afis@p@LWGEOM_noop)$libdir/postgis-2.59O  @st_forcerhr ?fis@p@9LWGEOM_force_clockwise_poly)$libdir/postgis-2.59O  @st_forcepolygonccw pAfis@p@s SELECT public.ST_Reverse(public.ST_ForcePolygonCW($1)) 9O  @st_forcepolygoncw pAfis@p@9LWGEOM_force_clockwise_poly)$libdir/postgis-2.59O  @st_reverse ?fis@p@LWGEOM_reverse)$libdir/postgis-2.59O  g@st_boundingdiagonal ?fis@@K geom fitsp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 49665 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}))ST_BoundingDiagonal)$libdir/postgis-2.59O  @st_envelope ?fis@p@!LWGEOM_envelope)$libdir/postgis-2.59O  g@st_expand ?fis@@{ geomdxdydzdmT ({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 49151 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 49172 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1})LWGEOM_expand)$libdir/postgis-2.59O  @st_expand ?fis@@LWGEOM_expand)$libdir/postgis-2.59O  g@st_expand ?fis!@!@kboxdxdydz({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 48678 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1})BOX3D_expand)$libdir/postgis-2.59O  @st_expand ?fis!@!@BOX3D_expand)$libdir/postgis-2.59O   '@st_forcesfs ?fis@@K,version#LWGEOM_force_sfs)$libdir/postgis-2.59O   @st_forcesfs ?fis@p@#LWGEOM_force_sfs)$libdir/postgis-2.59O   @st_forcecurve ?fis@p@'LWGEOM_force_curve)$libdir/postgis-2.59O   @st_multi ?fis@p@'LWGEOM_force_multi)$libdir/postgis-2.59O   @st_collectionhomogenize ?fis@p@1ST_CollectionHomogenize)$libdir/postgis-2.59O  @st_collectionextract ?fis@@+ST_CollectionExtract)$libdir/postgis-2.59O  @st_force_collection Bfis@p@$ SELECT public._postgis_deprecate('ST_Force_Collection', 'ST_ForceCollection', '2.1.0'); SELECT public.ST_ForceCollection($1); 9O  @st_forcecollection ?fis@p@1LWGEOM_force_collection)$libdir/postgis-2.59O  @st_force_4d Bfis@p@ SELECT public._postgis_deprecate('ST_Force_4d', 'ST_Force4D', '2.1.0'); SELECT public.ST_Force4D($1); 9O  @st_force4d ?fis@p@!LWGEOM_force_4d)$libdir/postgis-2.59O  @st_force_3dm Bfis@p@ SELECT public._postgis_deprecate('ST_Force_3dm', 'ST_Force3DM', '2.1.0'); SELECT public.ST_Force3DM($1); 9O  @st_force3dm ?fis@p@#LWGEOM_force_3dm)$libdir/postgis-2.59O  @st_force_3d Bfis@p@ SELECT public._postgis_deprecate('ST_Force_3d', 'ST_Force3D', '2.1.0'); SELECT public.ST_Force3D($1); pp  (@pȕ`$ P،  Hppph 8h9P  Ast_makepolygon ?fis@p@!LWGEOM_makepoly)$libdir/postgis-2.59P  Ast_makepolygon ?fis@@@!LWGEOM_makepoly)$libdir/postgis-2.59P  GAst_makeenvelope ?fis@p({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 57054 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]})!ST_MakeEnvelope)$libdir/postgis-2.59P  Ast_setpoint ?fis@@@7LWGEOM_setpoint_linestring)$libdir/postgis-2.59P  Ast_removepoint ?fis@@'LWGEOM_removepoint)$libdir/postgis-2.59P  'Ast_addpoint ?fis@@@c$geom1$geom2!LWGEOM_addpoint)$libdir/postgis-2.59P  'Ast_addpoint ?fis@@@[$geom1$geom2!LWGEOM_addpoint)$libdir/postgis-2.59P  'Ast_makeline ?fis@@@[$geom1$geom2!LWGEOM_makeline)$libdir/postgis-2.59P  Ast_linefrommultipoint ?fis@p@1LWGEOM_line_from_mpoint)$libdir/postgis-2.59P  Ast_makeline ?fis@p@/LWGEOM_makeline_garray)$libdir/postgis-2.59P  'Ast_3dmakebox ?fis!@@@[$geom1$geom2!BOX3D_construct)$libdir/postgis-2.59P  Ast_makepointm ?fis@)LWGEOM_makepoint3dm)$libdir/postgis-2.59P   Ast_makepoint ?fis@#LWGEOM_makepoint)$libdir/postgis-2.59P   Ast_makepoint ?fis@#LWGEOM_makepoint)$libdir/postgis-2.59P   Ast_makepoint ?fis@#LWGEOM_makepoint)$libdir/postgis-2.59P    Apostgis_cache_bbox ?fvu`cache_bbox)$libdir/postgis-2.59P    Ast_geomfromewkt ?fis@p#parse_WKT_lwgeom)$libdir/postgis-2.59P   Ageomfromewkt ?fis@p#parse_WKT_lwgeom)$libdir/postgis-2.59P   Ast_geomfromtwkb ?fis@pLWGEOMFromTWKB)$libdir/postgis-2.59P   Ast_geomfromewkb ?fis@pLWGEOMFromEWKB)$libdir/postgis-2.59P  Ageomfromewkb ?fis@pLWGEOMFromEWKB)$libdir/postgis-2.59P  gAst_aslatlontext ?fis@K geom tmpld({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 53158 :constvalue 4 [ 16 0 0 0 ]})#LWGEOM_to_latlon)$libdir/postgis-2.59P  Ast_asewkb Afis@WKBFromLWGEOM)$libdir/postgis-2.59P  Ast_ashexewkb Afis@#LWGEOM_asHEXEWKB)$libdir/postgis-2.59P  Ast_ashexewkb Afisp@#LWGEOM_asHEXEWKB)$libdir/postgis-2.59P  Ast_asewkb Afisp@WKBFromLWGEOM)$libdir/postgis-2.59P  g@st_astwkb ?fis@ geomids prec(prec_z(prec_m8with_sizes8with_boxesP ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 52079 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 52105 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 52131 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull true :location 52164 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull true :location 52197 :constvalue <>}))TWKBFromLWGEOMArray)$libdir/postgis-2.59P  g@st_astwkb ?fis@ geom prec(prec_z(prec_m8with_sizes8with_boxesP ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 51748 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 51774 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 51800 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull true :location 51833 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull true :location 51866 :constvalue <>})TWKBFromLWGEOM)$libdir/postgis-2.5Pt|  (H@ xxhX`6 xА؏8hh`؁9Q  Ast_lineinterpolatepoint ?fis@@=LWGEOM_line_interpolate_point)$libdir/postgis-2.59Q g?Apopulate_geometry_columns 4Bfvuc,tbl_oid8use_typmodp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 68089 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})}@A 9Q  g>Apopulate_geometry_columns 4BfvupK8use_typmodp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 65262 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) DECLARE inserted integer; oldcount integer; probed integer; stale integer; gcs RECORD; gc RECORD; gsrid integer; gndims integer; gtype text; query text; gc_is_valid boolean; BEGIN SELECT count(*) INTO oldcount FROM public.geometry_columns; inserted := 0; -- Count the number of geometry columns in all tables and views SELECT count(DISTINCT c.oid) INTO probed FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE c.relkind IN('r','v','f') AND t.typname = 'geometry' AND a.attisdropped = false AND a.atttypid = t.oid AND a.attrelid = c.oid AND c.relnamespace = n.oid AND n.nspname NOT ILIKE 'pg_temp%' AND c.relname != 'raster_columns' ; -- Iterate through all non-dropped geometry columns RAISE DEBUG 'Processing Tables.....'; FOR gcs IN SELECT DISTINCT ON (c.oid) c.oid, n.nspname, c.relname FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE c.relkind IN( 'r', 'f') AND t.typname = 'geometry' AND a.attisdropped = false AND a.atttypid = t.oid AND a.attrelid = c.oid AND c.relnamespace = n.oid AND n.nspname NOT ILIKE 'pg_temp%' AND c.relname != 'raster_columns' LOOP inserted := inserted + public.populate_geometry_columns(gcs.oid, use_typmod); END LOOP; IF oldcount > inserted THEN stale = oldcount-inserted; ELSE stale = 0; END IF; RETURN 'probed:' ||probed|| ' inserted:'||inserted; END 9Q  4Ast_dumppoints BzDfis1Ap@%LWGEOM_dumppoints)$libdir/postgis-2.59Q  3Ast_dumprings ?zDfis1Ap@%LWGEOM_dump_rings)$libdir/postgis-2.59Q  2Ast_dump BzDfis1Ap@LWGEOM_dump)$libdir/postgis-2.59Q  .Ast_transscale Bfis@@SELECT public.ST_Affine($1, $4, 0, 0, 0, $5, 0, 0, 0, 1, $2 * $4, $3 * $5, 0)9Q  -Ast_scale Bfis@@MSELECT public.ST_Scale($1, $2, $3, 1)9Q  ,Ast_scale Bfis@@ySELECT public.ST_Scale($1, public.ST_MakePoint($2, $3, $4))9Q  '+Ast_scale ?fis@@@@S(originST_Scale)$libdir/postgis-2.59Q  *Ast_scale ?fis@@@ST_Scale)$libdir/postgis-2.59Q  )Ast_translate Bfis@@USELECT public.ST_Translate($1, $2, $3, 0)9Q   (Ast_translate Bfis@@SELECT public.ST_Affine($1, 1, 0, 0, 0, 1, 0, 0, 0, 1, $2, $3, $4)9Q   'Ast_rotatey Bfis@@SELECT public.ST_Affine($1, cos($2), 0, sin($2), 0, 1, 0, -sin($2), 0, cos($2), 0, 0, 0)9Q   &Ast_rotatex Bfis@@SELECT public.ST_Affine($1, 1, 0, 0, 0, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0)9Q   %Ast_rotatez Bfis@@ASELECT public.ST_Rotate($1, $2)9Q   $Ast_rotate Bfis@@@SELECT public.ST_Affine($1, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0, 1, public.ST_X($3) - cos($2) * public.ST_X($3) + sin($2) * public.ST_Y($3), public.ST_Y($3) - sin($2) * public.ST_X($3) - cos($2) * public.ST_Y($3), 0)9Q  #Ast_rotate Bfis@@tSELECT public.ST_Affine($1, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0, 1, $3 - cos($2) * $3 + sin($2) * $4, $4 - sin($2) * $3 - cos($2) * $4, 0)9Q  "Ast_rotate Bfis@@SELECT public.ST_Affine($1, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0, 1, 0, 0, 0)9Q  !Ast_affine Bfis@@SELECT public.ST_Affine($1, $2, $3, 0, $4, $5, 0, 0, 0, 1, $6, $7, 0)9Q   Ast_affine ?fis @0 @LWGEOM_affine)$libdir/postgis-2.59Q  Ast_linemerge ?fis@p@linemerge)$libdir/postgis-2.59Q  'Ast_clusterdbscan ?wis@ceps4minpoints#ST_ClusterDBSCAN)$libdir/postgis-2.59Q  Ast_clusterwithin ?fis@@?cluster_within_distance_garray)$libdir/postgis-2.59Q  Ast_clusterintersecting ?fis@p@7clusterintersecting_garray)$libdir/postgis-2.5ptP  pn 8fpp <4V9R  Ast_line_interpolate_point Bfis@@t SELECT public._postgis_deprecate('ST_Line_Interpolate_Point', 'ST_LineInterpolatePoint', '2.1.0'); SELECT public.ST_LineInterpolatePoint($1, $2); 9R   gAst_lineinterpolatepoints ?fis@@S(repeatt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 110115 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})=LWGEOM_line_interpolate_point)$libdir/postgis-2.59R   MAupdategeometrysrid 4Bfvu DECLARE ret text; BEGIN SELECT public.UpdateGeometrySRID('','',$1,$2,$3) into ret; RETURN ret; END; 9R   LAupdategeometrysrid 4Bfvu DECLARE ret text; BEGIN SELECT public.UpdateGeometrySRID('',$1,$2,$3,$4) into ret; RETURN ret; END; 9R   'KAupdategeometrysrid 4BfvuDcatalogn_name<schema_name8table_name<column_name<new_srid_ino DECLARE myrec RECORD; okay boolean; cname varchar; real_schema ; unknown_srid intege*new  := _in; BEGIN -- Find, check or fix e_e IF (  != '' ) THEN = false; FOR IN SELECT nsp" RAISE EXCEPTION 'InvaXlidfM'RL 0'Zvcount(*!0 from spatial_ref_sys where F7/ i$SRI0D: % ^',S .J::=%ST_n('POINT EMPTY'::,8)R!= S#: #NOTICE '{wue % converted to the officiallyH18_inIF postgis_constrai1rid),(C1T&) IS NULL--was enforced withbs before, keep it#xway. -- Make up9Bc#c= 'h' || ; UDrop_(EXECUTE 'ALTER T@ABLE 'Xquote_ide2nL||>'./E. DROP >) Update5ies" aUPDAJS true ) THEN RAISE NOTICE 'Invalid schema name - using current_schema()'; SELECT current_schema() into real_schema; ELSE real_schema = schema_name; END IF; ELSE SELECT current_schema() into real_schema; END IF; -- Find out if the column is in the geometry_columns table okay = false; FOR myrec IN SELECT * from public.geometry_columns where f_table_schema = text(real_schema) and f_table_name = table_name and f_geometry_column = column_name LOOP okay := true; END LOOP; IF (okay <> true) THEN RAISE EXCEPTION 'column not found in geometry_columns table'; RETURN false; END IF; -- Remove table column EXECUTE 'ALTER TABLE ' || quote_ident(real_schema) || '.' || quote_ident(table_name) || ' DROP COLUMN ' || quote_ident(column_name); RETURN real_schema || '.' || table_name || '.' || column_name ||' effectively removed.'; END; 9R  gDAaddgeometrycolumn 4Bfvu8table_name<column_name0new_srid0new_type,new_dim8use_typmodp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 81620 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) DECLARE ret text; BEGIN SELECT public.AddGeometryColumn('','',$1,$2,$3,$4,$5, $6) into ret; RETURN ret; END; 9R  gCAaddgeometrycolumn 4Bfsu<schema_name8table_name<column_name0new_srid0new_type,new_dim8use_typmodp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 80877 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) DECLARE ret text; BEGIN SELECT public.AddGeometryColumn('',$1,$2,$3,$4,$5,$6,$7) into ret; RETURN ret; END; 9R gAAaddgeometrycolumn 4Bfvu@@catalog_name<schema_name8table_name<column_name<new_srid_in0new_type,new_dim8use_typmodp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 75471 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})BA t  xxؙ0薐BpВ Px؍0` 8 Xx 9S  'Ast_linelocatepoint ?fis@@[$geom1$geom23LWGEOM_line_locate_point)$libdir/postgis-2.59S  Ast_line_substring Bfis@@0 SELECT public._postgis_deprecate('ST_Line_Substring', 'ST_LineSubstring', '2.1.0'); SELECT public.ST_LineSubstring($1, $2, $3); 9S  Ast_linesubstring ?fis@@-LWGEOM_line_substring)$libdir/postgis-2.59S  dApostgis_extensions_upgrade 4Bfvu` DECLARE rec record; sql text; BEGIN -- if at a version different from default version or we are at a dev version, -- then do an upgrade to default version FOR rec in SELECT name, default_version, installed_version FROM pg_available_extensions WHERE installed_version > '' AND name IN('postgis', 'postgis_sfcgal', 'postgis_tiger_geocoder', 'postgis_topology') AND ( default_version <> installed_version OR ( default_version = installed_version AND default_version ILIKE '%dev%' AND installed_version ILIKE '%dev%' ) ) LOOP -- we need to upgrade to next so our installed is different from current -- and then we can upgrade to default_version IF rec.installed_version = rec.default_version THEN sql = 'ALTER EXTENSION ' || rec.name || ' UPDATE TO ' || quote_ident(rec.default_version || 'next') || ';'; EXECUTE sql; RAISE NOTICE '%', sql; END IF; sql = 'ALTER EXTENSION ' || rec.name || ' UPDATE TO ' || quote_ident(rec.default_version) || ';'; EXECUTE sql; RAISE NOTICE '%', sql; END LOOP; RETURN public.postgis_full_version(); END 9S  cA_postgis_pgsql_version Bfsu`4 SELECT CASE WHEN split_part(s,'.',1)::integer > 9 THEN split_part(s,'.',1) || '0' ELSE split_part(s,'.', 1) || split_part(s,'.', 2) END AS v FROM substring(version(), 'PostgreSQL ([0-9\.]+)') AS s; 9S  bA_postgis_scripts_pgsql_version Bfiu`=SELECT '110'::text AS version9S  aApostgis_lib_build_date ?fiu`/postgis_lib_build_date)$libdir/postgis-2.59S  `Apostgis_scripts_build_date Bfiu`]SELECT '2022-04-21 12:39:43'::text AS version9S  _Apostgis_libxml_version ?fiu`/postgis_libxml_version)$libdir/postgis-2.59S  ^Apostgis_svn_version ?fiu`)postgis_svn_version)$libdir/postgis-2.59S  ]Apostgis_geos_version ?fiu`+postgis_geos_version)$libdir/postgis-2.59S  \Apostgis_scripts_released ?fiu`3postgis_scripts_released)$libdir/postgis-2.59S  [Apostgis_lib_version ?fiu`)postgis_lib_version)$libdir/postgis-2.59S   ZApostgis_scripts_installed Bfiu`s SELECT '2.5.2'::text || ' r' || 17328::text AS version 9S   YApostgis_proj_version ?fiu`+postgis_proj_version)$libdir/postgis-2.59S   XApostgis_liblwgeom_version ?fiu`5postgis_liblwgeom_version)$libdir/postgis-2.59S   WApostgis_version ?fiu`!postgis_version)$libdir/postgis-2.59S   'VAst_transform Bfis@@s geom4from_proj,to_sridSELECT public.postgis_transform_geometry($1, $2, proj4text, $3) FROM spatial_ref_sys WHERE srid=$3;9S  'UAst_transform Bfis@@s geom4from_proj,to_projqSELECT public.postgis_transform_geometry($1, $2, $3, 0)9S  'TAst_transform Bfis@@S geom,to_projSELECT public.postgis_transform_geometry($1, proj4text, $2, 0) FROM spatial_ref_sys WHERE srid=public.ST_SRID($1);9S  SAst_transform ?fis@@transform)$libdir/postgis-2.59S  RApostgis_transform_geometry ?fis@@transform_geom)$libdir/postgis-2.59S  QAst_srid @fisp@!LWGEOM_get_srid)$libdir/postgis-2.59S  PAst_setsrid ?fis@@!LWGEOM_set_srid)$libdir/postgis-2.59S  OAget_proj4_from_srid 4Bfisp BEGIN RETURN proj4text::text FROM public.spatial_ref_sys WHERE srid= $1; END; 9S  NAfind_srid 4Bfis` DECLARE schem varchar = $1; tabl varchar = $2; sr int4; BEGIN -- if the table contains a . and the schema is empty -- split the table into a schema and a table -- otherwise drop through to default behavior IF ( schem = '' and strpos(tabl,'.') > 0 ) THEN schem = substr(tabl,1,strpos(tabl,'.')-1); tabl = substr(tabl,length(schem)+2); END IF; select SRID into sr from public.geometry_columns where (f_table_schema = schem or schem = '') and f_table_name = tabl and f_geometry_column = $3; IF NOT FOUND THEN RAISE EXCEPTION 'find_srid() - could not find the corresponding SRID - is the geometry registered in the GEOMETRY_COLUMNS table? Is there an uppercase/lowercase mismatch?'; END IF; return sr; END; t|  x ؗ8hȓ(X莘8`T"؃ЁP9T  Ast_segmentize ?fis@@)LWGEOM_segmentize2d)$libdir/postgis-2.59T  'Ast_snaptogrid ?fis@@@{$geom1$geom27LWGEOM_snaptogrid_pointoff)$libdir/postgis-2.59T  Ast_snaptogrid Bfis@@]SELECT public.ST_SnapToGrid($1, 0, 0, $2, $2)9T  Ast_snaptogrid ?fis@@]SELECT public.ST_SnapToGrid($1, 0, 0, $2, $3)9T  Ast_snaptogrid ?fis@@%LWGEOM_snaptogrid)$libdir/postgis-2.59T  GAst_chaikinsmoothing ?fis@@({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 108038 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 108057 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})1LWGEOM_ChaikinSmoothing)$libdir/postgis-2.59T  GAst_filterbym ?fis@@({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 107776 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 107798 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})#LWGEOM_FilterByM)$libdir/postgis-2.59T  GAst_seteffectivearea ?fis@@8({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 107486 :constvalue 4 [ -1 -1 -1 -1 -1 -1 -1 -1 ]}) :location -1} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 107506 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]})1LWGEOM_SetEffectiveArea)$libdir/postgis-2.59T  Ast_simplifyvw ?fis@@1LWGEOM_SetEffectiveArea)$libdir/postgis-2.59T  Ast_simplify ?fis@@%LWGEOM_simplify2d)$libdir/postgis-2.59T  Ast_simplify ?fis@@%LWGEOM_simplify2d)$libdir/postgis-2.59T  rAbytea Afisp@!LWGEOM_to_bytea)$libdir/postgis-2.59T   qAgeometry ?fis@p%LWGEOM_from_bytea)$libdir/postgis-2.59T   pAgeometry ?fis@p#parse_WKT_lwgeom)$libdir/postgis-2.59T   oAgeometry ?fis@p!@!BOX3D_to_LWGEOM)$libdir/postgis-2.59T   nAgeometry ?fis@p%@!BOX2D_to_LWGEOM)$libdir/postgis-2.59T   mAbox3dtobox ?fis[p!@BOX3D_to_BOX)$libdir/postgis-2.59T  lAtext Afisp@LWGEOM_to_text)$libdir/postgis-2.59T  kAbox ?fis[p!@BOX3D_to_BOX)$libdir/postgis-2.59T  jAbox3d ?fis!@p%@BOX2D_to_BOX3D)$libdir/postgis-2.59T  iAbox2d ?fis%@p!@BOX3D_to_BOX2D)$libdir/postgis-2.59T  hAbox Afis[p@LWGEOM_to_BOX)$libdir/postgis-2.59T  gAbox3d Afis!@p@!LWGEOM_to_BOX3D)$libdir/postgis-2.59T  fAbox2d Afis%@p@!LWGEOM_to_BOX2D)$libdir/postgis-2.59T  eApostgis_full_version 4Bfiu`E DECLARE libver text; svnproj!geos ,fcgal gd  libxm lwgeomdbprocrel ful @rast _lib_ scBr topo json 4; EXCEPTIO@WHEN undefined_funct!THE67:= NULL;RAISE NOTI`CE 'F3}not found@. Is 1er support enabled and rtC.sql installed?'ND4 F; C G  QJoSZW # Ic'missing'VWF/C?V> xmqV[8[Sq8releas7TQeleczt8vNc[/SQlogy<YOR invalid_schema_namej$?zDEBUG?y 8Is??insufficient_pri`vilegK T kcanbeH pectecurrent user granted USAGE on ( "" OTHERS(could!.be c: % (%)', SQLERRM STATE5_OlC/=#?^_ +%_*_GI"   :,= 'POSTGIS="' ||4 IF D ISA || ' rEFEND IF q 0"'jEXI STS (* FROM pg_catalog. pg|RE eDxtB= '') [EXTENSION]2r:= tru"eLSE$faLls%IFj !=e; (7  mismatch: Y@)ԁf PGSQLϻ !=s need upgrade forQ8 wit~hO!oB/pGEO%= \^SFCGA9Ab`PROJ=\D=\z^LIBXM`AbNdJSONe EhlPROTOBUF Mt?AG]cs from4Gd:I?&TOPOLOGYB G R_SANDhoo`afoUNPACKAGE|D!czRASTER Etlib N/V /.) O/  ; SRETURN]; END XMw  Ȝ@hȖTx~fHJHx 0PJ؄؃ȂЁ؀9U  'A_st_touches Bfis@@[$geom1$geom2touches)$libdir/postgis-2.59U  'Ast_disjoint ?fis@@[$geom1$geom2disjoint)$libdir/postgis-2.59U  'Ast_hausdorffdistance Bfis@@c$geom1$geom23hausdorffdistancedensify)$libdir/postgis-2.59U  'Ast_hausdorffdistance Bfis@@[$geom1$geom2%hausdorffdistance)$libdir/postgis-2.59U  Ast_isvalid Bfis@_SELECT (public.ST_isValidDetail($1, $2)).valid9U  Ast_isvalidreason Bfis@ SELECT CASE WHEN valid THEN 'Valid Geometry' ELSE reason END FROM ( SELECT (public.ST_isValidDetail($1, $2)).* ) foo 9U  Ast_isvaliddetail zDfisA@isvaliddetail)$libdir/postgis-2.59U  Ast_isvaliddetail zDfisAp@isvaliddetail)$libdir/postgis-2.59U  Ast_isvalidreason zDfisp@isvalidreason)$libdir/postgis-2.59U  Ast_simplifypreservetopology ?fis@@3topologypreservesimplify)$libdir/postgis-2.59U  'Ast_linecrossingdirection Bfis@@[$geom1$geom2 SELECT CASE WHEN NOT $1 OPERATOR(public.&&) $2 THEN 0 ELSE public._ST_LineCrossingDirection($1,$2) END 9U  'A_st_linecrossingdirection Bfis@@[$geom1$geom23ST_LineCrossingDirection)$libdir/postgis-2.59U  Ast_convexhull ?fis@p@convexhull)$libdir/postgis-2.59U  'Ast_generatepoints ?fis@@S area,npoints%ST_GeneratePoints)$libdir/postgis-2.59U  gAst_offsetcurve ?fis@@k line0distance(paramsh({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 115803 :constvalue 4 [ 16 0 0 0 ]})ST_OffsetCurve)$libdir/postgis-2.59U  Ast_orientedenvelope ?fis@p@)ST_OrientedEnvelope)$libdir/postgis-2.59U  gAst_minimumboundingcircle ?fis@@s4inputgeomPsegs_per_quarterx({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 115321 :constvalue 4 [ 48 0 0 0 0 0 0 0 ]})3ST_MinimumBoundingCircle)$libdir/postgis-2.59U  ?Ast_minimumboundingradius ?fisp@C@@1iooc(center(radius3ST_MinimumBoundingRadius)$libdir/postgis-2.59U   Ast_buffer Bfis@@ SELECT public._ST_Buffer($1, $2, CAST( regexp_replace($3, '^[0123456789]+$', 'quad_segs='||$3) AS cstring) ) 9U   Ast_buffer Bfis@@ SELECT public._ST_Buffer($1, $2, CAST('quad_segs='||CAST($3 AS text) as cstring)) 9U   A_st_buffer ?fis@@buffer)$libdir/postgis-2.59U   Ast_buffer ?fis@@buffer)$libdir/postgis-2.59U   'Ast_intersection ?fis@@@[$geom1$geom2intersection)$libdir/postgis-2.59U  Ast_isvalidtrajectory ?fisp@+ST_IsValidTrajectory)$libdir/postgis-2.59U  Ast_cpawithin ?fis@@ST_CPAWithin)$libdir/postgis-2.59U  Ast_distancecpa ?fis@@ST_DistanceCPA)$libdir/postgis-2.59U  Ast_closestpointofapproach ?fis@@5ST_ClosestPointOfApproach)$libdir/postgis-2.59U  Ast_addmeasure ?fis@@ST_AddMeasure)$libdir/postgis-2.59U  Ast_locate_along_measure Bfis@@o SELECT public.ST_locate_between_measures($1, $2, $2) 9U  Ast_locate_between_measures ?fis@@1LWGEOM_locate_between_m)$libdir/postgis-2.59U  'Ast_line_locate_point Bfis@@[$geom1$geom2< SELECT public._postgis_deprecate('ST_Line_Locate_Point', 'ST_LineLocatePoint', '2.1.0'); SELECT public.ST_LineLocatePoint($1, $2); Xwt  0008h(|04(@X؁0Ѐ9V  'A_st_dwithin Bfis@@c$geom1$geom2LWGEOM_dwithin)$libdir/postgis-2.59V  'Ast_touches Bfis@@[$geom1$geom2SELECT $1 OPERATOR(public.&&) $2 AND public._ST_Touches($1,$2)9V  gAst_voronoipolygons ?fis@@@{g14tolerance4extend_to({FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 128814 :constvalue 6 [ 24 0 0 0 -128 -128 ]}) :location -1} {CONST :consttype 16390 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 128846 :constvalue <>})y SELECT public._ST_Voronoi(g1, extend_to, tolerance, true) 9V  gA_st_voronoi ?fis@@@g1 clip4toleranceLreturn_polygons\ ({CONST :consttype 16390 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 128501 :constvalue <>} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 128532 :constvalue 6 [ 24 0 0 0 -128 -128 ]}) :location -1} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 128569 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})ST_Voronoi)$libdir/postgis-2.59V  gAst_delaunaytriangles ?fis@@sg14tolerance$flags8({FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 127348 :constvalue 6 [ 24 0 0 0 -128 -128 ]}) :location -1} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 127372 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]})+ST_DelaunayTriangles)$libdir/postgis-2.59V  'Ast_node ?fis@p@;gST_Node)$libdir/postgis-2.59V  Ast_relatematch BfisST_RelateMatch)$libdir/postgis-2.59V  'Ast_snap ?fis@@@c$geom1$geom2ST_Snap)$libdir/postgis-2.59V  'Ast_sharedpaths ?fis@@@[$geom1$geom2ST_SharedPaths)$libdir/postgis-2.59V  'Ast_split ?fis@@@[$geom1$geom2ST_Split)$libdir/postgis-2.59V   Ast_cleangeometry ?fis@p@#ST_CleanGeometry)$libdir/postgis-2.59V   Ast_makevalid ?fis@p@ST_MakeValid)$libdir/postgis-2.59V   gAst_subdivide BzDfis@@[ geom<maxverticest({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 121962 :constvalue 4 [ 0 1 0 0 0 0 0 0 ]})ST_Subdivide)$libdir/postgis-2.59V   'Ast_clipbybox2d HBfis@@%@K geomboxST_ClipByBox2d)$libdir/postgis-2.59V   gAst_removerepeatedpoints ?fis@@[ geom4tolerance({FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 121399 :constvalue 6 [ 24 0 0 0 -128 -128 ]}) :location -1})1ST_RemoveRepeatedPoints)$libdir/postgis-2.59V  Ast_unaryunion ?fis@p@ST_UnaryUnion)$libdir/postgis-2.59V  'Ast_union ?fis@@@[$geom1$geom2geomunion)$libdir/postgis-2.59V  'Ast_symmetricdifference ?fis@@@[$geom1$geom2symdifference)$libdir/postgis-2.59V  'Ast_symdifference ?fis@@@[$geom1$geom2symdifference)$libdir/postgis-2.59V  Ast_points ?fis@p@ST_Points)$libdir/postgis-2.59V  Ast_boundary ?fis@p@boundary)$libdir/postgis-2.59V  'Ast_difference Bfis@@@[$geom1$geom2difference)$libdir/postgis-2.59V  gAst_frechetdistance Bfis@@c$geom1$geom2({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 119329 :constvalue 4 [ -1 -1 -1 -1 -1 -1 -1 -1 ]}) :location -1})'ST_FrechetDistance)$libdir/postgis-2.5Bw  @h8Rh8RpȖpȕp8pؐ(Hhp0xpppHxp؄p؁Ѐ9W"  'Ast_relate ?fis@@c$geom1$geom2relate_pattern)$libdir/postgis-2.59W!  'Ast_relate ?fis@@c$geom1$geom2relate_full)$libdir/postgis-2.59W   'Ast_relate ?fis@@[$geom1$geom2relate_full)$libdir/postgis-2.59W  'Ast_clusterkmeans ?wvu@K geomk#ST_ClusterKMeans)$libdir/postgis-2.59W  Ast_makeline ?ais@p@!aggregate_dummy9W  Ast_polygonize ?ais@p@!aggregate_dummy9W  Ast_clusterwithin ?ais@@!aggregate_dummy9W  Ast_clusterintersecting ?ais@p@!aggregate_dummy9W  Ast_collect ?ais@p@!aggregate_dummy9W  Ast_union ?ais@p@!aggregate_dummy9W  Ast_union ?fis@p@5pgis_union_geometry_array)$libdir/postgis-2.59W  Ast_accum ?ais@p@!aggregate_dummy9W  Apgis_geometry_makeline_finalfn ?fvs@p?pgis_geometry_makeline_finalfn)$libdir/postgis-2.59W  Apgis_geometry_clusterwithin_finalfn ?fvs@pIpgis_geometry_clusterwithin_finalfn)$libdir/postgis-2.59W  Apgis_geometry_clusterintersecting_finalfn ?fvs@pUpgis_geometry_clusterintersecting_finalfn)$libdir/postgis-2.59W  Apgis_geometry_polygonize_finalfn ?fvs@pCpgis_geometry_polygonize_finalfn)$libdir/postgis-2.59W  Apgis_geometry_collect_finalfn ?fvs@p=pgis_geometry_collect_finalfn)$libdir/postgis-2.59W  Apgis_geometry_union_finalfn ?fvs@p9pgis_geometry_union_finalfn)$libdir/postgis-2.59W  Apgis_geometry_accum_finalfn ?fvs@p9pgis_geometry_accum_finalfn)$libdir/postgis-2.59W  Apgis_geometry_accum_transfn ?fvs@9pgis_geometry_accum_transfn)$libdir/postgis-2.59W  Apgis_geometry_accum_transfn ?fvs@9pgis_geometry_accum_transfn)$libdir/postgis-2.59W   Apgis_geometry_accum_transfn ?fvs@9pgis_geometry_accum_transfn)$libdir/postgis-2.59W   Ast_memunion ?ais@p@!aggregate_dummy9W   Ast_collect ?fis@p@-LWGEOM_collect_garray)$libdir/postgis-2.59W   Ast_memcollect ?ais@p@!aggregate_dummy9W   'Ast_collect ?fis@@@[$geom1$geom2LWGEOM_collect)$libdir/postgis-2.59W  Ast_3dextent ?ais!@p@!aggregate_dummy9W  Ast_extent ?ais%@p@!aggregate_dummy9W  Ast_combine_bbox Bfiu%@%@@ SELECT public._postgis_deprecate('ST_Combine_BBox', 'ST_CombineBbox', '2.2.0'); SELECT public.ST_CombineBbox($1,$2); 9W  Ast_combinebbox ?fis%@%@@BOX2D_combine)$libdir/postgis-2.59W  Ast_combine_bbox Bfiu!@!@@ SELECT public._postgis_deprecate('ST_Combine_BBox', 'ST_CombineBbox', '2.2.0'); SELECT public.ST_CombineBbox($1,$2); 9W  Ast_combinebbox ?fis!@!@!@)BOX3D_combine_BOX3D)$libdir/postgis-2.59W  Ast_combinebbox ?fis!@!@@BOX3D_combine)$libdir/postgis-2.59W  gAst_voronoilines ?fis@@@{g14tolerance4extend_to({FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 129116 :constvalue 6 [ 24 0 0 0 -128 -128 ]}) :location -1} {CONST :consttype 16390 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 129148 :constvalue <>}){ SELECT public._ST_Voronoi(g1, extend_to, tolerance, false) x  p6x`0hP0X82@(,(@0؍2@h膆Pp.x9X  B_st_geomfromgml ?fis@geom_from_gml)$libdir/postgis-2.59X  'Bequals ?fis@@[$geom1$geom2ST_Equals)$libdir/postgis-2.59X  'Bst_equals Bfis@@[$geom1$geom2}SELECT $1 OPERATOR(public.~=) $2 AND public._ST_Equals($1,$2)9X  'B_st_equals Bfis@@[$geom1$geom2ST_Equals)$libdir/postgis-2.59X  Bst_iscollection @fisp@!ST_IsCollection)$libdir/postgis-2.59X  Bst_issimple Afisp@issimple)$libdir/postgis-2.59X  Bst_pointonsurface ?fis@p@pointonsurface)$libdir/postgis-2.59X  Bst_isring ?fisp@isring)$libdir/postgis-2.59X  gBst_geometricmedian ?fis@@g4tolerance0max_iterdfail_if_not_converged({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 143908 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 143935 :constvalue 4 [ 16 39 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 143980 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})'ST_GeometricMedian)$libdir/postgis-2.59X  Ast_centroid ?fis@p@centroid)$libdir/postgis-2.59X  Ast_minimumclearanceline ?fis@p@1ST_MinimumClearanceLine)$libdir/postgis-2.59X  Ast_minimumclearance ?fisp@)ST_MinimumClearance)$libdir/postgis-2.59X  Ast_isvalid zDfisp@isvalid)$libdir/postgis-2.59X  'Ast_overlaps Bfis@@[$geom1$geom2SELECT $1 OPERATOR(public.&&) $2 AND public._ST_Overlaps($1,$2)9X  'Ast_within Bfis@@[$geom1$geom2SELECT $2 OPERATOR(public.~) $1 AND public._ST_Contains($2,$1)9X  'A_st_within Bfis@@[$geom1$geom2ESELECT public._ST_Contains($2,$1)9X  'A_st_overlaps Bfis@@[$geom1$geom2overlaps)$libdir/postgis-2.59X   'Ast_containsproperly Bfis@@[$geom1$geom2SELECT $1 OPERATOR(public.~) $2 AND public._ST_ContainsProperly($1,$2)9X   'A_st_containsproperly Bfis@@[$geom1$geom2#containsproperly)$libdir/postgis-2.59X   'Ast_covers Bfis@@[$geom1$geom2{SELECT $1 OPERATOR(public.~) $2 AND public._ST_Covers($1,$2)9X   'A_st_covers Bfis@@[$geom1$geom2covers)$libdir/postgis-2.59X   'Ast_coveredby Bfis@@[$geom1$geom2SELECT $1 OPERATOR(public.@) $2 AND public._ST_CoveredBy($1,$2)9X  'A_st_coveredby Bfis@@[$geom1$geom2coveredby)$libdir/postgis-2.59X  'Ast_contains Bfis@@[$geom1$geom2SELECT $1 OPERATOR(public.~) $2 AND public._ST_Contains($1,$2)9X  'A_st_contains Bfis@@[$geom1$geom2contains)$libdir/postgis-2.59X  'Ast_crosses Bfis@@[$geom1$geom2SELECT $1 OPERATOR(public.&&) $2 AND public._ST_Crosses($1,$2)9X  'A_st_crosses Bfis@@[$geom1$geom2crosses)$libdir/postgis-2.59X  'Ast_intersects Bfis@@[$geom1$geom2SELECT $1 OPERATOR(public.&&) $2 AND public._ST_Intersects($1,$2)9X  'A_st_intersects Bfis@@[$geom1$geom2intersects)$libdir/postgis-2.59X  'Ast_dwithin Bfis@@c$geom1$geom2<SELECT $1 OPERATOR(public.&&) public.ST_Expand($2,$3) AND $2 OPERATOR(public.&&) public.ST_Expand($1,$3) AND public._ST_DWithin($1, $2, $3)xp  0` Hp(4@`h*Љz`9Y  Bpgis_asmvt_transfn ?fis'pgis_asmvt_transfn)$libdir/postgis-2.59Y  gBst_asgeojson Bfis@8gj_version geomPmaxdecimaldigits,options({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 152909 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 152934 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) SELECT public.ST_AsGeoJson($2::public.geometry, $3::int4, $4::int4); 9Y  B_st_asgeojson Bfis@ SELECT public.ST_AsGeoJson($2::public.geometry, $3::int4, $4::int4); 9Y  gBst_asgeojson zDfis@{ geomPmaxdecimaldigits,options({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 152295 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 152320 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]})#LWGEOM_asGeoJson)$libdir/postgis-2.59Y  gBst_askml Bfis@,version geomPmaxdecimaldigits,nprefix({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 151753 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 151778 :constvalue <>}) SELECT public._ST_AsKML($1, public.ST_Transform($2,4326), $3, $4); 9Y  gBst_askml Bfis@c geomPmaxdecimaldigitsx({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 151380 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]}) SELECT public._ST_AsKML(2, ST_Transform($1,4326), $2, null); 9Y  B_st_askml @Efis@LWGEOM_asKML)$libdir/postgis-2.59Y  gBst_asgml Bfis@,version geomPmaxdecimaldigits,options,nprefixid ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 150647 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 150672 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 150696 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 150718 :constvalue <>})g SELECT public._ST_AsGML($1, $2, $3, $4, $5, $6); 9Y  gBst_asgml Bfis@{ geomPmaxdecimaldigits,options({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 150123 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 150148 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]})m SELECT public._ST_AsGML(2, $1, $2, $3, null, null); 9Y   B_st_asgml @Efis@LWGEOM_asGML)$libdir/postgis-2.59Y   gBst_assvg zDfis@s geomrelPmaxdecimaldigits({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 149254 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 149286 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]})LWGEOM_asSVG)$libdir/postgis-2.59Y   gBst_asencodedpolyline ?fis@C geomt({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 148737 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]})3LWGEOM_asEncodedPolyline)$libdir/postgis-2.59Y   GBst_linefromencodedpolyline ?fis@t({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 148216 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]})7line_from_encoded_polyline)$libdir/postgis-2.59Y   Bpostgis_libjson_version ?fis`1postgis_libjson_version)$libdir/postgis-2.59Y  Bst_geomfromgeojson Bfis@pWSELECT public.ST_GeomFromGeoJson($1::text)9Y  Bst_geomfromgeojson Bfis@prWSELECT public.ST_GeomFromGeoJson($1::text)9Y  Bst_geomfromgeojson ?fis@p%geom_from_geojson)$libdir/postgis-2.59Y   Bst_geomfromkml ?fis@pgeom_from_kml)$libdir/postgis-2.59Y   Bst_gmltosql ?fis@geom_from_gml)$libdir/postgis-2.59Y   Bst_gmltosql Bfis@pKSELECT public._ST_GeomFromGML($1, 0)9Y   Bst_geomfromgml Bfis@pKSELECT public._ST_GeomFromGML($1, 0)9Y   Bst_geomfromgml ?fis@geom_from_gml)$libdir/postgis-2.5Ky  (Hh`px@hp8x(@hІ(Hh9Z   >Bst_geometrytype Afisp@-geometry_geometrytype)$libdir/postgis-2.59Z  =Bgeometrytype Afisp@LWGEOM_getTYPE)$libdir/postgis-2.59Z  }) SELECT CAST(public.ST_Box2dFromGeoHash($1, $2) AS geometry); 9Z  G3Bst_pointfromgeohash ?fis@$({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 158626 :constvalue <>})'point_from_geohash)$libdir/postgis-2.59Z  G2Bst_box2dfromgeohash ?fis%@$({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 158398 :constvalue <>})'box2d_from_geohash)$libdir/postgis-2.59Z  g1Bst_geohash ?fis@S geom0maxcharst({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 157990 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]})ST_GeoHash)$libdir/postgis-2.59Z  0Bst_asgeobuf ?ais!aggregate_dummy9Z  /Bst_asgeobuf ?aisp!aggregate_dummy9Z  .Bpgis_asgeobuf_finalfn ?fisp-pgis_asgeobuf_finalfn)$libdir/postgis-2.59Z  -Bpgis_asgeobuf_transfn ?fis-pgis_asgeobuf_transfn)$libdir/postgis-2.59Z  ,Bpgis_asgeobuf_transfn ?fis-pgis_asgeobuf_transfn)$libdir/postgis-2.59Z   +Bpostgis_libprotobuf_version ?fiu`9postgis_libprotobuf_version)$libdir/postgis-2.59Z   g*Bst_asmvtgeom ?fis@@%@ geom(bounds(extent(buffer4clip_geom8({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 156187 :constvalue 4 [ 0 16 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 156213 :constvalue 4 [ 0 1 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 156241 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})ST_AsMVTGeom)$libdir/postgis-2.59Z   )Bst_asmvt ?ais!aggregate_dummy9Z   (Bst_asmvt ?ais!aggregate_dummy9Z   'Bst_asmvt ?ais!aggregate_dummy9Z  &Bst_asmvt ?aisp!aggregate_dummy9Z  %Bpgis_asmvt_deserialfn ?fis-pgis_asmvt_deserialfn)$libdir/postgis-2.59Z  $Bpgis_asmvt_serialfn ?fisp)pgis_asmvt_serialfn)$libdir/postgis-2.59Z  #Bpgis_asmvt_combinefn ?fis+pgis_asmvt_combinefn)$libdir/postgis-2.59Z  "Bpgis_asmvt_finalfn ?fisp'pgis_asmvt_finalfn)$libdir/postgis-2.59Z  !Bpgis_asmvt_transfn ?fis'pgis_asmvt_transfn)$libdir/postgis-2.59Z   Bpgis_asmvt_transfn ?fis'pgis_asmvt_transfn)$libdir/postgis-2.59Z  Bpgis_asmvt_transfn ?fis'pgis_asmvt_transfn)$libdir/postgis-2.5y  DМLHxؗ8h蒢Nl^HtXp8hh^x9[   ^Bst_mpolyfromtext Bfis@@ SELECT CASE WHEN public.geometrytype(public.ST_GeomFromText($1, $2)) = 'MULTIPOLYGON' THEN public.ST_GeomFromText($1,$2) ELSE NULL END 9[  ]Bst_multipointfromtext Bfis@pISELECT public.ST_MPointFromText($1)9[  \Bst_mpointfromtext Bfis@p SELECT CASE WHEN public.geometrytype(public.ST_GeomFromText($1)) = 'MULTIPOINT' THEN public.ST_GeomFromText($1) ELSE NULL END 9[  [Bst_mpointfromtext Bfis@  SELECT CASE WHEN public.geometrytype(public.ST_GeomFromText($1, $2)) = 'MULTIPOINT' THEN ST_GeomFromText($1, $2) ELSE NULL END 9[  ZBst_multilinestringfromtext Bfis@OSELECT public.ST_MLineFromText($1, $2)9[  YBst_multilinestringfromtext Bfis@pGSELECT public.ST_MLineFromText($1)9[  XBst_mlinefromtext Bfis@p0 SELECT CASE WHEN public.geometrytype(public.ST_GeomFromText($1)) = 'MULTILINESTRING' THEN public.ST_GeomFromText($1) ELSE NULL END 9[  WBst_mlinefromtext Bfis@P SELECT CASE WHEN public.geometrytype(public.ST_GeomFromText($1, $2)) = 'MULTILINESTRING' THEN public.ST_GeomFromText($1,$2) ELSE NULL END 9[  VBst_polygonfromtext Bfis@pESELECT public.ST_PolyFromText($1)9[  UBst_polygonfromtext Bfis@MSELECT public.ST_PolyFromText($1, $2)9[  TBst_polyfromtext Bfis@0 SELECT CASE WHEN public.geometrytype(public.ST_GeomFromText($1, $2)) = 'POLYGON' THEN public.ST_GeomFromText($1, $2) ELSE NULL END 9[  SBst_polyfromtext Bfis@p SELECT CASE WHEN public.geometrytype(public.ST_GeomFromText($1)) = 'POLYGON' THEN public.ST_GeomFromText($1) ELSE NULL END 9[  RBst_linefromtext Bfis@8 SELECT CASE WHEN public.geometrytype(public.ST_GeomFromText($1, $2)) = 'LINESTRING' THEN public.ST_GeomFromText($1,$2) ELSE NULL END 9[  QBst_linefromtext Bfis@p SELECT CASE WHEN public.geometrytype(public.ST_GeomFromText($1)) = 'LINESTRING' THEN public.ST_GeomFromText($1) ELSE NULL END 9[  PBst_pointfromtext Bfis@( SELECT CASE WHEN public.geometrytype(public.ST_GeomFromText($1, $2)) = 'POINT' THEN public.ST_GeomFromText($1, $2) ELSE NULL END 9[  OBst_pointfromtext Bfis@p SELECT CASE WHEN public.geometrytype(public.ST_GeomFromText($1)) = 'POINT' THEN public.ST_GeomFromText($1) ELSE NULL END 9[  NBst_wkttosql ?fis@p#LWGEOM_from_text)$libdir/postgis-2.59[  MBst_geomfromtext ?fis@#LWGEOM_from_text)$libdir/postgis-2.59[  LBst_geomfromtext ?fis@p#LWGEOM_from_text)$libdir/postgis-2.59[   KBst_geometryfromtext ?fis@#LWGEOM_from_text)$libdir/postgis-2.59[   JBst_geometryfromtext ?fis@p#LWGEOM_from_text)$libdir/postgis-2.59[   IBst_astext ?fiu@LWGEOM_asText)$libdir/postgis-2.59[   HBst_astext ;Dfisp@LWGEOM_asText)$libdir/postgis-2.59[   GBst_asbinary Afisp@!LWGEOM_asBinary)$libdir/postgis-2.59[  FBst_asbinary Afis@!LWGEOM_asBinary)$libdir/postgis-2.59[  EBst_isempty Afisp@LWGEOM_isempty)$libdir/postgis-2.59[  DBst_isclosed Afisp@!LWGEOM_isclosed)$libdir/postgis-2.59[  CBst_endpoint ?fis@p@7LWGEOM_endpoint_linestring)$libdir/postgis-2.59[  BBst_startpoint ?fis@p@;LWGEOM_startpoint_linestring)$libdir/postgis-2.59[  ABst_patchn Bfis@@ SELECT CASE WHEN public.ST_GeometryType($1) = 'ST_PolyhedralSurface' THEN public.ST_GeometryN($1, $2) ELSE NULL END 9[  @Bst_numpatches Bfisp@ SELECT CASE WHEN public.ST_GeometryType($1) = 'ST_PolyhedralSurface' THEN public.ST_NumGeometries($1) ELSE NULL END 9[  ?Bst_pointn ?fis@@3LWGEOM_pointn_linestring)$libdir/postgis-2.5uz  Ȟb xpؙhJPr ZrZxlPNjNrZHpZd|hd(v^v9\  yBst_multipolyfromwkb Bfis@< SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1, $2)) = 'MULTIPOLYGON' THEN public.ST_GeomFromWKB($1, $2) ELSE NULL END 9\  xBst_mpolyfromwkb Bfis@p SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1)) = 'MULTIPOLYGON' THEN public.ST_GeomFromWKB($1) ELSE NULL END 9\  wBst_mpolyfromwkb Bfis@< SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1, $2)) = 'MULTIPOLYGON' THEN public.ST_GeomFromWKB($1, $2) ELSE NULL END 9\  vBst_mlinefromwkb Bfis@p( SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1)) = 'MULTILINESTRING' THEN public.ST_GeomFromWKB($1) ELSE NULL END 9\  uBst_mlinefromwkb Bfis@H SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1, $2)) = 'MULTILINESTRING' THEN public.ST_GeomFromWKB($1, $2) ELSE NULL END 9\  tBst_multilinefromwkb Bfis@p( SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1)) = 'MULTILINESTRING' THEN public.ST_GeomFromWKB($1) ELSE NULL END 9\  sBst_multipointfromwkb Bfis@p SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1)) = 'MULTIPOINT' THEN public.ST_GeomFromWKB($1) ELSE NULL END 9\  rBst_multipointfromwkb Bfis@0 SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1,$2)) = 'MULTIPOINT' THEN public.ST_GeomFromWKB($1, $2) ELSE NULL END 9\  qBst_mpointfromwkb Bfis@p SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1)) = 'MULTIPOINT' THEN public.ST_GeomFromWKB($1) ELSE NULL END 9\  pBst_mpointfromwkb Bfis@4 SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1, $2)) = 'MULTIPOINT' THEN public.ST_GeomFromWKB($1, $2) ELSE NULL END 9\  oBst_polygonfromwkb Bfis@p SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1)) = 'POLYGON' THEN public.ST_GeomFromWKB($1) ELSE NULL END 9\  nBst_polygonfromwkb Bfis@$ SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1,$2)) = 'POLYGON' THEN public.ST_GeomFromWKB($1, $2) ELSE NULL END 9\  mBst_polyfromwkb Bfis@p SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1)) = 'POLYGON' THEN public.ST_GeomFromWKB($1) ELSE NULL END 9\  lBst_polyfromwkb Bfis@( SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1, $2)) = 'POLYGON' THEN public.ST_GeomFromWKB($1, $2) ELSE NULL END 9\   kBst_linestringfromwkb Bfis@p SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1)) = 'LINESTRING' THEN public.ST_GeomFromWKB($1) ELSE NULL END 9\   jBst_linestringfromwkb Bfis@4 SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1, $2)) = 'LINESTRING' THEN public.ST_GeomFromWKB($1, $2) ELSE NULL END 9\   iBst_linefromwkb Bfis@p SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1)) = 'LINESTRING' THEN public.ST_GeomFromWKB($1) ELSE NULL END 9\   hBst_linefromwkb Bfis@4 SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1, $2)) = 'LINESTRING' THEN public.ST_GeomFromWKB($1, $2) ELSE NULL END 9\   gBst_pointfromwkb Bfis@p SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1)) = 'POINT' THEN public.ST_GeomFromWKB($1) ELSE NULL END 9\  fBst_pointfromwkb Bfis@  SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1, $2)) = 'POINT' THEN public.ST_GeomFromWKB($1, $2) ELSE NULL END 9\  eBst_geomfromwkb Bfis@qSELECT public.ST_SetSRID(public.ST_GeomFromWKB($1), $2)9\  dBst_geomfromwkb ?fis@p!LWGEOM_from_WKB)$libdir/postgis-2.59\  cBst_geomcollfromtext Bfis@p@ SELECT CASE WHEN public.geometrytype(public.ST_GeomFromText($1)) = 'GEOMETRYCOLLECTION' THEN public.ST_GeomFromText($1) ELSE NULL END 9\  bBst_geomcollfromtext Bfis@@ SELECT CASE WHEN geometrytype(public.ST_GeomFromText($1, $2)) = 'GEOMETRYCOLLECTION' THEN public.ST_GeomFromText($1,$2) ELSE NULL END 9\  aBst_multipolygonfromtext Bfis@pGSELECT public.ST_MPolyFromText($1)9\  `Bst_multipolygonfromtext Bfis@OSELECT public.ST_MPolyFromText($1, $2)9\  _Bst_mpolyfromtext Bfis@p$ SELECT CASE WHEN public.geometrytype(public.ST_GeomFromText($1)) = 'MULTIPOLYGON' THEN public.ST_GeomFromText($1) ELSE NULL END {t   О^Pl@VȕVHH؎p&  9]  Bpostgis_typmod_srid ?fisp)postgis_typmod_srid)$libdir/postgis-2.59]  Bpostgis_typmod_dims ?fisp)postgis_typmod_dims)$libdir/postgis-2.59]  Bst_geogfromwkb ?fisBp-geography_from_binary)$libdir/postgis-2.59]  Blockrow BfvuZi SELECT LockRow(current_schema(), $1, $2, $3, $4); 9]  Blockrow Bfvu SELECT LockRow(current_schema(), $1, $2, $3, now()::timestamp+'1:00'); 9]  Blockrow Bfvuw SELECT LockRow($1, $2, $3, $4, now()::timestamp+'1:00'); 9]  Blockrow 4BfvuZl DECLARE myschema alias for $1; mytable alias for $2; myrid alias for $3; authid alias for $4; expires alias for $5; ret int; mytoid oid; myrec RECORD; BEGIN IF NOT LongTransactionsEnabled() THEN RAISE EXCEPTION 'Long transaction support disabled, use EnableLongTransaction() to enable.'; END IF; EXECUTE 'DELETE FROM authorization_table WHERE expires < now()'; SELECT c.oid INTO mytoid FROM pg_class c, pg_namespace n WHERE c.relname = mytable AND c.relnamespace = n.oid AND n.nspname = myschema; -- RAISE NOTICE 'toid: %', mytoid; FOR myrec IN SELECT * FROM authorization_table WHERE toid = mytoid AND rid = myrid LOOP IF myrec.authid != authid THEN RETURN 0; ELSE RETURN 1; END IF; END LOOP; EXECUTE 'INSERT INTO authorization_table VALUES ('|| quote_literal(mytoid::text)||','||quote_literal(myrid)|| ','||quote_literal(expires::text)|| ','||quote_literal(authid) ||')'; GET DIAGNOSTICS ret = ROW_COUNT; RETURN ret; END; 9]  Bunlockrows 4Bfvup DECLARE ret int; BEGIN IF NOT LongTransactionsEnabled() THEN RAISE EXCEPTION 'Long transaction support disabled, use EnableLongTransaction() to enable.'; END IF; EXECUTE 'DELETE FROM authorization_table where authid = ' || quote_literal($1); GET DIAGNOSTICS ret = ROW_COUNT; RETURN ret; END; 9]  Bst_bdmpolyfromtext 4Bfis@ DECLARE geomtext alias for $1; srid alias for $2; mline geometry; geom geometry; BEGIN mline := public.ST_MultiLineStringFromText(geomtext, srid); IF mline IS NULL THEN RAISE EXCEPTION 'Input is not a MultiLinestring'; END IF; geom := public.ST_Multi(public.ST_BuildArea(mline)); RETURN geom; END; 9]  Bst_bdpolyfromtext 4Bfis@ DECLARE geomtext alias for $1; srid alias for $2; mline geometry; geom geometry; BEGIN mline := public.ST_MultiLineStringFromText(geomtext, srid); IF mline IS NULL THEN RAISE EXCEPTION 'Input is not a MultiLinestring'; END IF; geom := public.ST_BuildArea(mline); IF GeometryType(geom) != 'POLYGON' THEN RAISE EXCEPTION 'Input returns more then a single polygon, try using BdMPolyFromText instead'; END IF; RETURN geom; END; 9]   Bst_flipcoordinates ?fis@p@'ST_FlipCoordinates)$libdir/postgis-2.59]   'Bst_swapordinates ?fis@@K geom ords#ST_SwapOrdinates)$libdir/postgis-2.59]   'Bst_dfullywithin Bfiu@@c$geom1$geom2SELECT $1 OPERATOR(public.&&) public.ST_Expand($2,$3) AND $2 OPERATOR(public.&&) public.ST_Expand($1,$3) AND public._ST_DFullyWithin(public.ST_ConvexHull($1), public.ST_ConvexHull($2), $3)9]   'B_st_dfullywithin ?fis@@c$geom1$geom2)LWGEOM_dfullywithin)$libdir/postgis-2.59]   'Bst_longestline Bfis@@@[$geom1$geom2SELECT public._ST_LongestLine(public.ST_ConvexHull($1), public.ST_ConvexHull($2))9]  'B_st_longestline ?fis@@@[$geom1$geom2+LWGEOM_longestline2d)$libdir/postgis-2.59]  'Bst_shortestline ?fis@@@[$geom1$geom2-LWGEOM_shortestline2d)$libdir/postgis-2.59]  'Bst_closestpoint ?fis@@@[$geom1$geom2)LWGEOM_closestpoint)$libdir/postgis-2.59]  '~Bst_maxdistance Bfis@@[$geom1$geom2SELECT public._ST_MaxDistance(public.ST_ConvexHull($1), public.ST_ConvexHull($2))9]  '}B_st_maxdistance ?fis@@[$geom1$geom2ALWGEOM_maxdistance2d_linestring)$libdir/postgis-2.59]  |Bst_geomcollfromwkb Bfis@p8 SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1)) = 'GEOMETRYCOLLECTION' THEN public.ST_GeomFromWKB($1) ELSE NULL END 9]  {Bst_geomcollfromwkb Bfis@X SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1, $2)) = 'GEOMETRYCOLLECTION' THEN public.ST_GeomFromWKB($1, $2) ELSE NULL END 9]  zBst_multipolyfromwkb Bfis@p SELECT CASE WHEN public.geometrytype(public.ST_GeomFromWKB($1)) = 'MULTIPOLYGON' THEN public.ST_GeomFromWKB($1) ELSE NULL END {t0  h"Ș(N @|6Ќ(X؇ PЂ09^  Bst_geogfromtext ?fisBp)geography_from_text)$libdir/postgis-2.59^  Bst_geographyfromtext ?fisBp)geography_from_text)$libdir/postgis-2.59^  Bst_astext Bfispc SELECT public.ST_AsText($1::public.geometry); 9^  Bst_astext ?fisBLWGEOM_asText)$libdir/postgis-2.59^  Bst_astext ?fispBLWGEOM_asText)$libdir/postgis-2.59^  Bbytea ?fispB!LWGEOM_to_bytea)$libdir/postgis-2.59^  Bgeography ?fisBp-geography_from_binary)$libdir/postgis-2.59^  Bgeography ?fisBB3geography_enforce_typmod)$libdir/postgis-2.59^  Bgeography_analyze ?fvup/gserialized_analyze_nd)$libdir/postgis-2.59^  Bgeography_send ?fispBgeography_send)$libdir/postgis-2.59^   Bgeography_recv ?fisBgeography_recv)$libdir/postgis-2.59^   Bgeography_out ?fispBgeography_out)$libdir/postgis-2.59^   Bgeography_in ?fisBgeography_in)$libdir/postgis-2.59^   Bgeography_typmod_out ?fisp'postgis_typmod_out)$libdir/postgis-2.59^   Bgeography_typmod_in ?fisp)geography_typmod_in)$libdir/postgis-2.59^  Bdisablelongtransactions 4Bfvu` DECLARE rec RECORD; BEGIN -- -- Drop all triggers applied by CheckAuth() -- FOR rec IN SELECT c.relname, t.tgname, t.tgargs FROM pg_trigger t, pg_class c, pg_proc p WHERE p.proname = 'checkauthtrigger' and t.tgfoid = p.oid and t.tgrelid = c.oid LOOP EXECUTE 'DROP TRIGGER ' || quote_ident(rec.tgname) || ' ON ' || quote_ident(rec.relname); END LOOP; -- -- Drop the authorization_table table -- FOR rec IN SELECT * FROM pg_class WHERE relname = 'authorization_table' LOOP DROP TABLE authorization_table; END LOOP; -- -- Drop the authorized_tables view -- FOR rec IN SELECT * FROM pg_class WHERE relname = 'authorized_tables' LOOP DROP VIEW authorized_tables; END LOOP; RETURN 'Long transactions support disabled'; END; 9^  Blongtransactionsenabled 4Bfvu`h DECLARE rec RECORD; BEGIN FOR rec IN SELECT oid FROM pg_class WHERE relname = 'authorized_tables' LOOP return 't'; END LOOP; return 'f'; END; 9^  Benablelongtransactions 4Bfvu`  DECLARE "query" text; exists bool; rec RECORD; BEGIN exists = 'f'; FOR rec IN SELECT * FROM pg_class WHERE relname = 'authorization_table' LOOP exists = 't'; END LOOP; IF NOT exists THEN "query" = 'CREATE TABLE authorization_table ( toid oid, -- table oid rid text, -- row id expires timestamp, authid text )'; EXECUTE "query"; END IF; exists = 'f'; FOR rec IN SELECT * FROM pg_class WHERE relname = 'authorized_tables' LOOP exists = 't'; END LOOP; IF NOT exists THEN "query" = 'CREATE VIEW authorized_tables AS ' || 'SELECT ' || 'n.nspname as schema, ' || 'c.relname as table, trim(' || quote_literal(chr(92) || '000') || ' from t.tgargs) as id_column ' || 'FROM pg_trigger t, pg_class c, pg_proc p ' || ', pg_namespace n ' || 'WHERE p.proname = ' || quote_literal('checkauthtrigger') || ' AND c.relnamespace = n.oid' || ' AND t.tgfoid = p.oid and t.tgrelid = c.oid'; EXECUTE "query"; END IF; RETURN 'Long transactions support enabled'; END; 9^  Bgettransactionid ?fvu`#getTransactionID)$libdir/postgis-2.59^  Bcheckauthtrigger ?fvu`)check_authorization)$libdir/postgis-2.59^  Bcheckauth Bfvu? SELECT CheckAuth('', $1, $2) 9^  Bcheckauth 4Bfvup DECLARE schema text; BEGIN IF NOT LongTransactionsEnabled() THEN RAISE EXCEPTION 'Long transaction support disabled, use EnableLongTransaction() to enable.'; END IF; if ( $1 != '' ) THEN schema = $1; ELSE SELECT current_schema() into schema; END IF; -- TODO: check for an already existing trigger ? EXECUTE 'CREATE TRIGGER check_auth BEFORE UPDATE OR DELETE ON ' || quote_ident(schema) || '.' || quote_ident($2) ||' FOR EACH ROW EXECUTE PROCEDURE CheckAuthTrigger(' || quote_literal($3) || ')'; RETURN 0; END; 9^  Baddauth 4Bfvup DECLARE lockid alias for $1; okay boolean; myrec record; BEGIN -- check to see if table exists -- if not, CREATE TEMP TABLE mylock (transid xid, lockcode text) okay := 'f'; FOR myrec IN SELECT * FROM pg_class WHERE relname = 'temp_lock_have_table' LOOP okay := 't'; END LOOP; IF (okay <> 't') THEN CREATE TEMP TABLE temp_lock_have_table (transid xid, lockcode text); -- this will only work from pgsql7.4 up -- ON COMMIT DELETE ROWS; END IF; -- INSERT INTO mylock VALUES ( $1) -- EXECUTE 'INSERT INTO temp_lock_have_table VALUES ( '|| -- quote_literal(getTransactionID()) || ',' || -- quote_literal(lockid) ||')'; INSERT INTO temp_lock_have_table VALUES (getTransactionID(), lockid); RETURN true::boolean; END; Ш}  0Xț蚺0Pxȕ Phȏ(X@`x((9_  B_st_askml ?fisB#geography_as_kml)$libdir/postgis-2.59_  gBst_asgml BfisB,version geogPmaxdecimaldigits,options,nprefixid ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 206552 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 206577 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 206601 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 206623 :constvalue <>})e SELECT public._ST_AsGML($1, $2, $3, $4, $5, $6);9_  gBst_asgml BfisB{ geogPmaxdecimaldigits,options({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 206123 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 206148 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]})gSELECT public._ST_AsGML(2, $1, $2, $3, null, null)9_  Bst_asgml Bfisp SELECT public._ST_AsGML(2,$1::public.geometry,15,0, NULL, NULL); 9_  B_st_asgml ?fisB#geography_as_gml)$libdir/postgis-2.59_  Bst_assvg Bfispk SELECT public.ST_AsSVG($1::public.geometry,0,15); 9_  gBst_assvg ?fisBs geogrelPmaxdecimaldigits({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 204911 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 204943 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]})#geography_as_svg)$libdir/postgis-2.59_  Bgeography_cmp ?fisBBgeography_cmp)$libdir/postgis-2.59_  Bgeography_eq ?fisBBgeography_eq)$libdir/postgis-2.59_  Bgeography_ge ?fisBBgeography_ge)$libdir/postgis-2.59_  Bgeography_gt ?fisBBgeography_gt)$libdir/postgis-2.59_  Bgeography_le ?fisBBgeography_le)$libdir/postgis-2.59_  Bgeography_lt ?fisBBgeography_lt)$libdir/postgis-2.59_  Bgeog_brin_inclusion_add_value ?fvu=geog_brin_inclusion_add_value)$libdir/postgis-2.59_  Boverlaps_geog BfiuB-@ESELECT $2 OPERATOR(public.&&) $1;9_  Boverlaps_geog ?fiu-@-@?gserialized_gidx_gidx_overlaps)$libdir/postgis-2.59_  Boverlaps_geog ?fiu-@B?gserialized_gidx_geog_overlaps)$libdir/postgis-2.59_   Bgeography_gist_distance ?fvuB?gserialized_gist_geog_distance)$libdir/postgis-2.59_   Bgeography_distance_knn BfisBB/geography_distance_knn)$libdir/postgis-2.59_   Bgeography_overlaps ?fisBB+gserialized_overlaps)$libdir/postgis-2.59_   Bgeography_gist_decompress ?fvup9gserialized_gist_decompress)$libdir/postgis-2.59_   Bgeography_gist_same ?fvu%@%@-gserialized_gist_same)$libdir/postgis-2.59_  Bgeography_gist_union ?fvu/gserialized_gist_union)$libdir/postgis-2.59_  Bgeography_gist_picksplit ?fvu7gserialized_gist_picksplit)$libdir/postgis-2.59_  Bgeography_gist_penalty ?fvu3gserialized_gist_penalty)$libdir/postgis-2.59_  Bgeography_gist_compress ?fvup5gserialized_gist_compress)$libdir/postgis-2.59_  Bgeography_gist_consistent ?fvuB9gserialized_gist_consistent)$libdir/postgis-2.59_  Bgeometry ?fis@pB1geometry_from_geography)$libdir/postgis-2.59_  Bgeography ?fisBp@1geography_from_geometry)$libdir/postgis-2.59_  Bpostgis_typmod_type ?fisp)postgis_typmod_type)$libdir/postgis-2.5X8~  XNp @XВ@؉0HX8<9`  gCst_length BfisB[ geog@use_spheroidt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 215052 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})#geography_length)$libdir/postgis-2.59`  Cst_area Bfisp_ SELECT public.ST_Area($1::public.geometry); 9`  gCst_area BfisB[ geog@use_spheroidt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 214551 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})geography_area)$libdir/postgis-2.59`  C_st_dwithinuncached BfiuBB|SELECT $1 OPERATOR(public.&&) public._ST_Expand($2,$3) AND $2 OPERATOR(public.&&) public._ST_Expand($1,$3) AND public._ST_DWithinUnCached($1, $2, $3, true)9`  C_st_dwithinuncached BfiuBB7geography_dwithin_uncached)$libdir/postgis-2.59`  C_st_distancetree BfiuBBeSELECT public._ST_DistanceTree($1, $2, 0.0, true)9`   C_st_distancetree BfiuBB1geography_distance_tree)$libdir/postgis-2.59`   C_st_distanceuncached BfiuBBmSELECT public._ST_DistanceUnCached($1, $2, 0.0, true)9`   C_st_distanceuncached BfiuBBiSELECT public._ST_DistanceUnCached($1, $2, 0.0, $3)9`   C_st_distanceuncached BfiuBB9geography_distance_uncached)$libdir/postgis-2.59`   Cst_dwithin Bfis SELECT public.ST_DWithin($1::public.geometry, $2::public.geometry, $3); 9`  Cst_dwithin BfisBB\SELECT $1 OPERATOR(public.&&) public._ST_Expand($2,$3) AND $2 OPERATOR(public.&&) public._ST_Expand($1,$3) AND public._ST_DWithin($1, $2, $3, true)9`  Cst_dwithin BfisBBTSELECT $1 OPERATOR(public.&&) public._ST_Expand($2,$3) AND $2 OPERATOR(public.&&) public._ST_Expand($1,$3) AND public._ST_DWithin($1, $2, $3, $4)9`   C_st_expand HBfisBB#geography_expand)$libdir/postgis-2.59`   Cst_distance Bfis SELECT public.ST_Distance($1::public.geometry, $2::public.geometry); 9`   Cst_distance BfisBB]SELECT public._ST_Distance($1, $2, 0.0, true)9`   Cst_distance BfisBBYSELECT public._ST_Distance($1, $2, 0.0, $3)9`   C_st_dwithin BfisBB%geography_dwithin)$libdir/postgis-2.59`  C_st_distance BfisBB'geography_distance)$libdir/postgis-2.59`  gCst_asgeojson BfisB8gj_version geogPmaxdecimaldigits,options({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 209015 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 209040 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]})_ SELECT public._ST_AsGeoJson($1, $2, $3, $4); 9`  gBst_asgeojson BfisB{ geogPmaxdecimaldigits,options({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 208659 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 208684 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]})] SELECT public._ST_AsGeoJson(1, $1, $2, $3); 9`  Bst_asgeojson Bfisp{ SELECT public._ST_AsGeoJson(1, $1::public.geometry,15,0); 9`  B_st_asgeojson ?fisB+geography_as_geojson)$libdir/postgis-2.59`  gBst_askml BfisB,version geogPmaxdecimaldigits,nprefix({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 207809 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 207834 :constvalue <>})QSELECT public._ST_AsKML($1, $2, $3, $4)9`  Bst_askml Bfisp} SELECT public._ST_AsKML(2, $1::public.geometry, 15, null); 9`  gBst_askml BfisBc geogPmaxdecimaldigitsx({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 207150 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]})SSELECT public._ST_AsKML(2, $1, $2, null)ذ  (pBИؗؓ8vh Ph胖(9a  Cpostgis_raster_lib_build_date ?fis`-RASTER_lib_build_date-$libdir/rtpostgis-2.59a  g1Cst_geohash ?fisBS geog0maxcharst({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 222422 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]})ST_GeoHash)$libdir/postgis-2.59a  0Cst_summary ?fispBLWGEOM_summary)$libdir/postgis-2.59a  /Cgeometrytype ?fispBLWGEOM_getTYPE)$libdir/postgis-2.59a  .Cst_asewkt Bfispc SELECT public.ST_AsEWKT($1::public.geometry); 9a  -Cst_asewkt ?fispBLWGEOM_asEWKT)$libdir/postgis-2.59a  ,Cst_asbinary BfisBo SELECT public.ST_AsBinary($1::public.geometry, $2); 9a  +Cst_asbinary ?fispB!LWGEOM_asBinary)$libdir/postgis-2.59a  *Cst_intersection Bfis@ SELECT public.ST_Intersection($1::public.geometry, $2::public.geometry); 9a  )Cst_intersection BfisBBBpSELECT public.geography(public.ST_Transform(public.ST_Intersection(public.ST_Transform(public.geometry($1), public._ST_BestSRID($1, $2)), public.ST_Transform(public.geometry($2), public._ST_BestSRID($1, $2))), 4326))9a  (Cst_buffer Bfis@s SELECT public.ST_Buffer($1::public.geometry, $2, $3); 9a  'Cst_buffer Bfis@s SELECT public.ST_Buffer($1::public.geometry, $2, $3); 9a  &Cst_buffer Bfis@k SELECT public.ST_Buffer($1::public.geometry, $2); 9a  %Cst_buffer BfisBBLSELECT public.geography(public.ST_Transform(public.ST_Buffer(public.ST_Transform(public.geometry($1), public._ST_BestSRID($1)), $2, $3), 4326))9a  $Cst_buffer BfisBBLSELECT public.geography(public.ST_Transform(public.ST_Buffer(public.ST_Transform(public.geometry($1), public._ST_BestSRID($1)), $2, $3), 4326))9a  #Cst_buffer BfisBB<SELECT public.geography(public.ST_Transform(public.ST_Buffer(public.ST_Transform(public.geometry($1), public._ST_BestSRID($1)), $2), 4326))9a  "C_st_bestsrid BfispBESELECT public._ST_BestSRID($1,$1)9a  !C_st_bestsrid ?fisBB'geography_bestsrid)$libdir/postgis-2.59a    Cst_intersects Bfis SELECT public.ST_Intersects($1::public.geometry, $2::public.geometry); 9a   Cst_intersects BfisBBSELECT $1 OPERATOR(public.&&) $2 AND public._ST_Distance($1, $2, 0.0, false) < 0.000019a   'Cst_segmentize BfisBBk geogXmax_segment_length+geography_segmentize)$libdir/postgis-2.59a   Cst_coveredby Bfis SELECT public.ST_CoveredBy($1::public.geometry, $2::public.geometry); 9a   Cst_coveredby BfisBBSELECT $1 OPERATOR(public.&&) $2 AND public._ST_Covers($2, $1)9a  Cst_covers Bfis SELECT public.ST_Covers($1::public.geometry, $2::public.geometry); 9a  Cst_covers BfisBBSELECT $1 OPERATOR(public.&&) $2 AND public._ST_Covers($1, $2)9a  C_st_covers BfisBB#geography_covers)$libdir/postgis-2.59a  C_st_pointoutside ?fiuBpB1geography_point_outside)$libdir/postgis-2.59a  gCst_perimeter BfisB[ geog@use_spheroidt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 215994 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}))geography_perimeter)$libdir/postgis-2.59a  'Cst_azimuth BfisBB[$geog1$geog2%geography_azimuth)$libdir/postgis-2.59a  'Cst_project BfisBBk geog0distance,azimuth%geography_project)$libdir/postgis-2.59a  Cst_length BfispU SELECT ST_Length($1::public.geometry); h  x8hTHj x~؆Ѕ XHȁȀ9b  'MC_st_3dintersects Bfis@@[$geom1$geom2intersects3d)$libdir/postgis-2.59b  'LCst_3ddfullywithin Bfis@@c$geom1$geom2XSELECT $1 OPERATOR(public.&&) public.ST_Expand($2,$3) AND $2 OPERATOR(public.&&) public.ST_Expand($1,$3) AND public._ST_3DDFullyWithin($1, $2, $3)9b  'KC_st_3ddfullywithin Bfis@@c$geom1$geom2-LWGEOM_dfullywithin3d)$libdir/postgis-2.59b  'JCst_3ddwithin Bfis@@c$geom1$geom2DSELECT $1 OPERATOR(public.&&) public.ST_Expand($2,$3) AND $2 OPERATOR(public.&&) public.ST_Expand($1,$3) AND public._ST_3DDWithin($1, $2, $3)9b  'IC_st_3ddwithin Bfis@@c$geom1$geom2#LWGEOM_dwithin3d)$libdir/postgis-2.59b  'HCst_3dlongestline ?fis@@@[$geom1$geom2+LWGEOM_longestline3d)$libdir/postgis-2.59b  'GCst_3dshortestline ?fis@@@[$geom1$geom2-LWGEOM_shortestline3d)$libdir/postgis-2.59b   'FCst_3dclosestpoint ?fis@@@[$geom1$geom2-LWGEOM_closestpoint3d)$libdir/postgis-2.59b   'ECst_3dmaxdistance Bfis@@[$geom1$geom2+LWGEOM_maxdistance3d)$libdir/postgis-2.59b   'DCst_3ddistance Bfis@@[$geom1$geom2distance3d)$libdir/postgis-2.59b   ';Cpostgis_constraint_type Bfss8geomschema4geomtable8geomcolumn4 SELECT replace(split_part(s.consrc, '''', 2), ')', '')::varchar FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND a.attnum = ANY (s.conkey) AND s.consrc LIKE '%geometrytype(% = %'; 9b   ':Cpostgis_constraint_dims Bfss8geomschema4geomtable8geomcolumn SELECT replace(split_part(s.consrc, ' = ', 2), ')', '')::integer FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND a.attnum = ANY (s.conkey) AND s.consrc LIKE '%ndims(% = %'; 9b  '9Cpostgis_constraint_srid Bfss8geomschema4geomtable8geomcolumnX SELECT replace(replace(split_part(s.consrc, ' = ', 2), ')', ''), '(', '')::integer FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND a.attnum = ANY (s.conkey) AND s.consrc LIKE '%srid(% = %'; 9b  g8Cpostgis_type_name HCfis0geomnameLcoord_dimension@use_new_namet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 224660 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})v SELECT CASE WHEN $3 Tnew_name ELSE oldND As geom FROM ( VALUES ('GEOMETRY', 'Geometry', 2) ," #Z', 3A$M', 4% " #COLION -Collection~5677 m8POINT+Poi0nt',M'b,M',m 5Z M',mMULTI"'Multiv# d$% I POLYG,Polyg   '?&(  *SLINESTRING.LineString. /0_ ,$ K CIRCULAR+Circular, - . [ OMPOUND CURVE.ompoundCurve * + , W %($?^( )* S ?^"N +%&7GDM'(SURFAC*Surfacej) k *+kU nLYHE0DRAL1ohedral[2^? 3V 4ng+TR IANGL,Triangl   !" C I"Ti9[.)(,, coord_dimension.WHERE (upper4) = $1)x OR I sAND ] = $2; 9b  '7Cst_distance_sphere Cfis@@[$geom1$geom2$ SELECT public._postgis_deprecate('ST_Distance_Sphere', 'ST_DistanceSphere', '2.2.0'); SELECT public.ST_DistanceSphere($1,$2); 9b  '6Cst_distancesphere Cfis@@[$geom1$geom2 select public.ST_distance( public.geography($1), public.geography($2),false) 9b  5Cst_centroid Bfis@pg SELECT public.ST_Centroid($1::public.geometry); 9b  g4Cst_centroid ?fisBBS@use_spheroidt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 223007 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})'geography_centroid)$libdir/postgis-2.59b  '3Cst_setsrid ?fisBBK geog srid!LWGEOM_set_srid)$libdir/postgis-2.59b  '2Cst_srid ?fispB; geog!LWGEOM_get_srid)$libdir/postgis-2.50  <xXX@ȍHȌ(@X脜(Xp9c  uCgeom3d_brin_inclusion_add_value ?fvuAgeom3d_brin_inclusion_add_value)$libdir/postgis-2.59c  tCgeom2d_brin_inclusion_add_value ?fvuAgeom2d_brin_inclusion_add_value)$libdir/postgis-2.59c  rCoverlaps_nd Bfiu@-@GSELECT $2 OPERATOR(public.&&&) $1;9c  oCoverlaps_nd ?fiu-@-@?gserialized_gidx_gidx_overlaps)$libdir/postgis-2.59c  nCoverlaps_nd ?fiu-@@?gserialized_gidx_geom_overlaps)$libdir/postgis-2.59c  jCoverlaps_2d Bfiu@)@ESELECT $2 OPERATOR(public.&&) $1;9c  iCis_contained_2d Bfiu@)@CSELECT $2 OPERATOR(public.~) $1;9c  hCcontains_2d Bfiu@)@CSELECT $2 OPERATOR(public.@) $1;9c  aCis_contained_2d ?fiu)@)@Mgserialized_contains_box2df_box2df_2d)$libdir/postgis-2.59c  `Ccontains_2d ?fiu)@)@Mgserialized_contains_box2df_box2df_2d)$libdir/postgis-2.59c  _Coverlaps_2d ?fiu)@)@Mgserialized_contains_box2df_box2df_2d)$libdir/postgis-2.59c  ^Coverlaps_2d ?fiu)@@Igserialized_overlaps_box2df_geom_2d)$libdir/postgis-2.59c  ]Cis_contained_2d ?fiu)@@Egserialized_within_box2df_geom_2d)$libdir/postgis-2.59c  \Ccontains_2d ?fiu)@@Igserialized_contains_box2df_geom_2d)$libdir/postgis-2.59c  '[Cst_interpolatepoint ?fis@@S line$point)ST_InterpolatePoint)$libdir/postgis-2.59c   'ZCst_locatebetweenelevations ?fis@@0geometryDfromelevation<toelevation7ST_LocateBetweenElevations)$libdir/postgis-2.59c   gYCst_locatealong ?fis@@0geometry,measureLleftrightoffset({FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 239011 :constvalue 6 [ 24 0 0 0 -128 -128 ]}) :location -1})ST_LocateAlong)$libdir/postgis-2.59c   gXCst_locatebetween ?fis@@0geometry<frommeasure4tomeasureLleftrightoffset({FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 238764 :constvalue 6 [ 24 0 0 0 -128 -128 ]}) :location -1})#ST_LocateBetween)$libdir/postgis-2.59c   'WCst_wkbtosql ?fis@p;wkb!LWGEOM_from_WKB)$libdir/postgis-2.59c   VCst_polygon Bfis@@y SELECT public.ST_SetSRID(public.ST_MakePolygon($1), $2) 9c  UCst_point ?fis@#LWGEOM_makepoint)$libdir/postgis-2.59c  'TCst_orderingequals Bfis@@k4geometrya4geometryb SELECT $1 OPERATOR(public.~=) $2 AND public._ST_OrderingEquals($1, $2) 9c  'SC_st_orderingequals Bfis@@k4geometrya4geometrybLWGEOM_same)$libdir/postgis-2.59c  'RCst_linetocurve ?fis@p@C0geometry3LWGEOM_line_desegmentize)$libdir/postgis-2.59c  'QCst_hasarc ?fisp@C0geometryLWGEOM_has_arc)$libdir/postgis-2.59c  gPCst_curvetoline ?fis@@{ geomtol,toltype$flags| ({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 236604 :constvalue 4 [ 32 0 0 0 0 0 0 0 ]}) :location -1} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 236632 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 236657 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]})ST_CurveToLine)$libdir/postgis-2.59c  'OCst_coorddim @fisp@C0geometryLWGEOM_ndims)$libdir/postgis-2.59c  'NCst_3dintersects Bfis@@[$geom1$geom2SELECT $1 OPERATOR(public.&&) $2 AND public._ST_3DIntersects($1, $2)p  @ fX b@`ЍȌ   Ј(@`Ȃ9d  Cpostgis_raster_scripts_installed Bfis`s SELECT '2.5.2'::text || ' r' || 17328::text AS version 9d  Cpostgis_raster_lib_version ?fis`'RASTER_lib_version-$libdir/rtpostgis-2.59d  Craster_out ?fispCRASTER_out-$libdir/rtpostgis-2.59d  Craster_in ?fisCpRASTER_in-$libdir/rtpostgis-2.59d  Cgeometry_spgist_compress_3d ?fisp?gserialized_spgist_compress_3d)$libdir/postgis-2.59d  Cgeometry_spgist_leaf_consistent_3d ?fisMgserialized_spgist_leaf_consistent_3d)$libdir/postgis-2.59d  Cgeometry_spgist_inner_consistent_3d ?fisOgserialized_spgist_inner_consistent_3d)$libdir/postgis-2.59d  Cgeometry_spgist_picksplit_3d ?fisAgserialized_spgist_picksplit_3d)$libdir/postgis-2.59d  Cgeometry_spgist_choose_3d ?fis;gserialized_spgist_choose_3d)$libdir/postgis-2.59d  Cgeometry_spgist_config_3d ?fis;gserialized_spgist_config_3d)$libdir/postgis-2.59d  'Cgeometry_same_3d ?fis@@[$geom1$geom2)gserialized_same_3d)$libdir/postgis-2.59d  'Cgeometry_contained_3d ?fis@@[$geom1$geom23gserialized_contained_3d)$libdir/postgis-2.59d  'Cgeometry_contains_3d ?fis@@[$geom1$geom21gserialized_contains_3d)$libdir/postgis-2.59d   'Cgeometry_overlaps_3d ?fis@@[$geom1$geom21gserialized_overlaps_3d)$libdir/postgis-2.59d   Cgeometry_spgist_compress_2d ?fisp?gserialized_spgist_compress_2d)$libdir/postgis-2.59d   Cgeometry_spgist_leaf_consistent_2d ?fisMgserialized_spgist_leaf_consistent_2d)$libdir/postgis-2.59d   Cgeometry_spgist_inner_consistent_2d ?fisOgserialized_spgist_inner_consistent_2d)$libdir/postgis-2.59d   Cgeometry_spgist_picksplit_2d ?fisAgserialized_spgist_picksplit_2d)$libdir/postgis-2.59d  Cgeometry_spgist_choose_2d ?fis;gserialized_spgist_choose_2d)$libdir/postgis-2.59d  Cgeometry_spgist_config_2d ?fis;gserialized_spgist_config_2d)$libdir/postgis-2.59d  'Cst_angle Bfiu@@[$line1$line2SELECT ST_Angle(St_StartPoint($1), ST_EndPoint($1), St_StartPoint($2), ST_EndPoint($2))9d  gCst_asx3d Bfis@{ geomPmaxdecimaldigits,options({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 260395 :constvalue 4 [ 15 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 260423 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]})QSELECT public._ST_AsX3D(3,$1,$2,$3,'');9d  C_st_asx3d ?fis@LWGEOM_asX3D)$libdir/postgis-2.59d gCst_concavehull 4Bfis@@8param_geomLparam_pctconvexTparam_allow_holest({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 250423 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})z$ C 9d  'C_st_concavehull 4Bfis@p@SLparam_inputgeom DECLARE vexhull GEOMETRY; var_result geom etryinpu@exring FcHavept9[]; seglength double pre@cisionqtemp pscale_factor float := 1; i integer; BEGIN -- First compute the C@onvexHo&f` := public.ST_2(param );4: %$--A point really has no con u IFwG Type() = 'ST_PLp' OR0 0L ineSt' THE RET0URN ZEN@D IF; ;crt#perimeter to a linesT so we can manipulate individu4als`1:= CASE WHEN  ELSEDExteriorRingDENDIF ahbs(.X UN4f,1))) < 1n--"|*1prevent stupid' errors - not sure it works/make low forp now*!0n05S- <, "/ I ! O P--RAISE NOTICE 'E)F 8 rL)/leaTstNs!*2,1000) "egmentiz~-- 0find3on original that is closesteach3C12x3and a new9ou1it. WLZ@llect(SA RRAY( @SELECT .pt )h As_  hXIF: >G"@ backzGH", 1/KK  --3LR/|covers7(#3638! -- Us1TST_UnaryUnQysince SFCGAL doesn'qwplace with its own gA8ati2o!--2 round(0::numeric, 10) OR round(metadata.skewy::numeric, 10) <> round(0::numeric, 10) THEN msg := 'Skewed ' || overlay(msg placing 'r' from 1 for 1); END IF; msgset := Array[]::text[] || msg; FOR bandmetadata IN SELECT * FROM public.ST_BandMetadata(rast, ARRAY[]::int[]) LOOP msg := 'band ' || bandmetadata.bandnum || ' of pixtype ' || bandmetadata.pixeltype || ' is '; IF bandmetadata.isoutdb IS FALSE THEN msg := msg || 'in-db '; ELSE msg := msg || 'out-db '; END IF; msg := msg || 'with '; IF bandmetadata.nodatavalue IS NOT NULL THEN msg := msg || 'NODATA value of ' || bandmetadata.nodatavalue; ELSE msg := msg || 'no NODATA value'; END IF; msgset := msgset || (' ' || msg); END LOOP; RETURN array_to_string(msgset, E'\n'); END; 9e  ?Cst_metadata ?fispC CA ioooooooooop  rast8upperleftx8upperlefty$width(height(scalex(scaley$skewx$skewy srid0numbands!RASTER_metadata-$libdir/rtpostgis-2.59e  Cst_rotation BfvupC_ SELECT ( public.ST_Geotransform($1)).theta_i 9e  ?Cst_geotransform ?fispCcC9ioooooo imag jmag,theta_i0theta_ij,xoffset,yoffset/RASTER_getGeotransform-$libdir/rtpostgis-2.59e  Cst_pixelheight ?fispC-RASTER_getPixelHeight-$libdir/rtpostgis-2.59e  Cst_pixelwidth ?fispC+RASTER_getPixelWidth-$libdir/rtpostgis-2.59e  Cst_width ?fispC!RASTER_getWidth-$libdir/rtpostgis-2.59e  Cst_upperlefty ?fispC+RASTER_getYUpperLeft-$libdir/rtpostgis-2.59e   Cst_upperleftx ?fispC+RASTER_getXUpperLeft-$libdir/rtpostgis-2.59e   Cst_srid ?fispCRASTER_getSRID-$libdir/rtpostgis-2.59e   Cst_skewy ?fispC!RASTER_getYSkew-$libdir/rtpostgis-2.59e   Cst_skewx ?fispC!RASTER_getXSkew-$libdir/rtpostgis-2.59e   Cst_scaley ?fispC#RASTER_getYScale-$libdir/rtpostgis-2.59e  Cst_scalex ?fispC#RASTER_getXScale-$libdir/rtpostgis-2.59e  Cst_numbands ?fispC'RASTER_getNumBands-$libdir/rtpostgis-2.59e  Cst_height ?fispC#RASTER_getHeight-$libdir/rtpostgis-2.59e  Cbox3d Bfis!@pCQselect box3d( public.ST_convexhull($1))9e  gCst_minconvexhull ?fis@CS rast$nband$({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 348385 :constvalue <>})'RASTER_convex_hull-$libdir/rtpostgis-2.59e  Cst_convexhull Cfiu@pC'RASTER_convex_hull-$libdir/rtpostgis-2.59e  Cst_envelope ?fis@pC!RASTER_envelope-$libdir/rtpostgis-2.59e  Cpostgis_gdal_version ?fis`)RASTER_gdal_version-$libdir/rtpostgis-2.5P  80,ȓpPHHlx( 9f  'Dst_summarystats Bfis DCk rast`exclude_nodata_value_ SELECT public._ST_summarystats($1, 1, $2, 1) 9f   gDst_summarystats Bfis DC rast$nband`exclude_nodata_value({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 358761 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 358802 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})a SELECT public._ST_summarystats($1, $2, $3, 1) 9f   g D_st_summarystats ?fis DC rast$nband`exclude_nodata_valueHsample_percentx ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 358480 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 358521 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 358568 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1}))RASTER_summaryStats-$libdir/rtpostgis-2.59f   g Dst_band BfisCCs rast(nbands4delimiter|({CONST :consttype 1042 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 357645 :constvalue 5 [ 20 0 0 0 44 ]}) SELECT public.ST_band($1, regexp_split_to_array(regexp_replace($2, '[[:space:]]', '', 'g'), E'\\' || array_to_string(regexp_split_to_array($3, ''), E'\\'))::int[]) 9f   'Dst_band BfisCCS rast$nbandQ SELECT public.ST_band($1, ARRAY[$2]) 9f   gDst_band ?fisCCS rast(nbands$({ARRAY :array_typeid 1007 :array_collid 0 :element_typeid 23 :elements ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 357279 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :multidims false :location 357273})RASTER_band-$libdir/rtpostgis-2.59f  gDst_addband BfisCC rast4outdbfile8outdbindex$index4nodataval8({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 356875 :constvalue <>} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 356917 :constvalue <>})_ SELECT public.ST_AddBand($1, $4, $2, $3, $5) 9f  gDst_addband ?fisCC rast$index4outdbfile8outdbindex4nodataval(({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 356654 :constvalue <>}))RASTER_addBandOutDB-$libdir/rtpostgis-2.59f  gDst_addband ?fisCCC(torast4fromrasts0fromband<torastindex({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 356370 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 356398 :constvalue <>})5RASTER_addBandRasterArray-$libdir/rtpostgis-2.59f  gDst_addband ?fisCCC(torast0fromrast0fromband<torastindex({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 356131 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 356159 :constvalue <>})!RASTER_copyBand-$libdir/rtpostgis-2.59f  gDst_addband BfisCC rast4pixeltype@initialvalue4nodataval({FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 355741 :constvalue 6 [ 24 0 0 0 0 -128 ]}) :location -1} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 355771 :constvalue <>}) SELECT public.ST_addband($1, ARRAY[ROW(NULL, $2, $3, $4)]::addbandarg[]) 9f  gDst_addband BfisCC rast$index4pixeltype@initialvalue4nodataval({FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 355353 :constvalue 6 [ 24 0 0 0 0 -128 ]}) :location -1} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 355383 :constvalue <>}) SELECT public.ST_addband($1, ARRAY[ROW($2, $3, $4, $5)]::addbandarg[]) 9f  'Dst_addband ?fisCCCc rastDaddbandargsetRASTER_addBand-$libdir/rtpostgis-2.59f  'Cst_makeemptyraster 4BfisCpC; rast DECLARE w int; h int; ul_x double precision; ul_y double precision; scale_x double precision; scale_y double precision; skew_x double precision; skew_y double precision; sr_id int; BEGIN SELECT width, height, upperleftx, upperlefty, scalex, scaley, skewx, skewy, srid INTO w, h, ul_x, ul_y, scale_x, scale_y, skew_x, skew_y, sr_id FROM public.ST_Metadata(rast); RETURN public.ST_makeemptyraster(w, h, ul_x, ul_y, scale_x, scale_y, skew_x, skew_y, sr_id); END; md0  XN8@И(@ؑ0N `x@d^09g  sEgeometry_contained_by_raster Bfis@Ccselect $1 OPERATOR(public.@) $2::public.geometry9g  '!Dst_approxsummarystats Bfss D<rastertable@rastercolumnHsample_percentm SELECT public._ST_summarystats($1, $2, 1, TRUE, $3) 9g  ' Dst_approxsummarystats Bfss D<rastertable@rastercolumn`exclude_nodata_valuek SELECT public._ST_summarystats($1, $2, 1, $3, 0.1) 9g  'Dst_approxsummarystats Bfss D<rastertable@rastercolumn$nbandHsample_percento SELECT public._ST_summarystats($1, $2, $3, TRUE, $4) 9g  gDst_approxsummarystats Bfss D<rastertable@rastercolumn$nband`exclude_nodata_valueHsample_percent ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 363307 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 363348 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 363395 :constvalue 8 [ 32 0 0 0 -1 -128 -24 3 ]}) :location -1})k SELECT public._ST_summarystats($1, $2, $3, $4, $5) 9g  'Dst_summarystats Bfss D<rastertable@rastercolumn`exclude_nodata_valueg SELECT public._ST_summarystats($1, $2, 1, $3, 1) 9g   gDst_summarystats Bfss D<rastertable@rastercolumn$nband`exclude_nodata_value({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 362777 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 362818 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})i SELECT public._ST_summarystats($1, $2, $3, $4, 1) 9g   gD_st_summarystats 4Bfis D<rastertable@rastercolumn$nband`exclude_nodata_valueHsample_percentx ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 362220 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 362261 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 362308 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1})| DECLARE stats summarystats; BEGIN EXECUTE 'SELECT (stats).* FROM (SELECT public.ST_SummaryStatsAgg(' || quote_ident($2) || ', ' || $3 || ', ' || $4 || ', ' || $5 || ') AS stats ' || 'FROM ' || quote_ident($1) || ') foo' INTO stats; RETURN stats; END; 9g   Dst_summarystatsagg ?ais DC!aggregate_dummy9g   D_st_summarystats_transfn ?fisC9RASTER_summaryStats_transfn-$libdir/rtpostgis-2.59g   Dst_summarystatsagg ?ais DC!aggregate_dummy9g  D_st_summarystats_transfn ?fisC9RASTER_summaryStats_transfn-$libdir/rtpostgis-2.59g  Dst_summarystatsagg ?ais DC!aggregate_dummy9g  D_st_summarystats_transfn ?fisC9RASTER_summaryStats_transfn-$libdir/rtpostgis-2.59g  D_st_summarystats_finalfn ?fis Dp9RASTER_summaryStats_finalfn-$libdir/rtpostgis-2.59g  'Dst_approxsummarystats Bfis DCc rastHsample_percente SELECT public._ST_summarystats($1, 1, TRUE, $2) 9g  gDst_approxsummarystats Bfis DC rast`exclude_nodata_valueHsample_percent({FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 359834 :constvalue 8 [ 32 0 0 0 -1 -128 -24 3 ]}) :location -1})a SELECT public._ST_summarystats($1, 1, $2, $3) 9g  'Dst_approxsummarystats Bfis DC{ rast$nbandHsample_percentg SELECT public._ST_summarystats($1, $2, TRUE, $3) 9g  gDst_approxsummarystats Bfis DC rast$nband`exclude_nodata_valueHsample_percent ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 359235 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 359276 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 359323 :constvalue 8 [ 32 0 0 0 -1 -128 -24 3 ]}) :location -1})c SELECT public._ST_summarystats($1, $2, $3, $4) 8P  @0@p2Ўl8&hT0,9h  '2D_st_countagg_transfn 4Bfis+D+DC{agg rast`exclude_nodata_value DECLARE rtn_agg agg_count; BEGIN rtn_agg := public.__ST_countagg_transfn( agg, rast, 1, exclude_nodata_value, 1 ); RETURN rtn_agg; END; 9h   1Dst_countagg ?aisC!aggregate_dummy9h   '0D_st_countagg_transfn 4Bfis+D+DCagg rast$nband`exclude_nodata_value DECLARE rtn_agg agg_count; BEGIN rtn_agg := public.__ST_countagg_transfn( agg, rast, nband, exclude_nodata_value, 1 ); RETURN rtn_agg; END; 9h   /Dst_countagg ?aisC!aggregate_dummy9h   '.D_st_countagg_transfn 4Bfis+D+DCagg rast$nband`exclude_nodata_valueHsample_percent DECLARE rtn_agg agg_count; BEGIN rtn_agg := public.__st_countagg_transfn( agg, rast, nband, exclude_nodata_value, sample_percent ); RETURN rtn_agg; END; 9h   g-D__st_countagg_transfn 4Bfis+D+DCagg rast$nband`exclude_nodata_valueHsample_percentx ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 366981 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 367021 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 367068 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1})l DECLARE _count bigint; rtn_agg agg_count; BEGIN -- only process parameter args once IF agg IS NULL THEN rtn_agg.count := 0; IF nband < 1 THEN RAISE EXCEPTION 'Band index must be greater than zero (1-based)'; ELSE rtn_agg.nband := nband; END IF; IF exclude_nodata_value IS FALSE THEN rtn_agg.exclude_nodata_value := FALSE; ELSE rtn_agg.exclude_nodata_value := TRUE; END IF; IF sample_percent < 0. OR sample_percent > 1. THEN RAISE EXCEPTION 'Sample percent must be between zero and one'; ELSE rtn_agg.sample_percent := sample_percent; END IF; ELSE rtn_agg := agg; END IF; IF rast IS NOT NULL THEN IF rtn_agg.exclude_nodata_value IS FALSE THEN SELECT width * height INTO _count FROM public.ST_Metadata(rast); ELSE SELECT count INTO _count FROM public._ST_summarystats( rast, rtn_agg.nband, rtn_agg.exclude_nodata_value, rtn_agg.sample_percent ); END IF; END IF; rtn_agg.count := rtn_agg.count + _count; RETURN rtn_agg; END; 9h  ',D_st_countagg_finalfn 4Bfisp+D;agg BEGIN IF agg IS NULL THEN RAISE EXCEPTION 'Cannot count coverage'; END IF; RETURN agg.count; END; 9h  '(Dst_approxcount BfisCc rastHsample_percentW SELECT public._ST_count($1, 1, TRUE, $2) 9h  g'Dst_approxcount BfisC rast`exclude_nodata_valueHsample_percent({FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 366000 :constvalue 8 [ 32 0 0 0 -1 -128 -24 3 ]}) :location -1})S SELECT public._ST_count($1, 1, $2, $3) 9h  '&Dst_approxcount BfisC{ rast$nbandHsample_percentY SELECT public._ST_count($1, $2, TRUE, $3) 9h  g%Dst_approxcount BfisC rast$nband`exclude_nodata_valueHsample_percent ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 365453 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 365493 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 365539 :constvalue 8 [ 32 0 0 0 -1 -128 -24 3 ]}) :location -1})U SELECT public._ST_count($1, $2, $3, $4) 9h  '$Dst_count BfisCk rast`exclude_nodata_valueQ SELECT public._ST_count($1, 1, $2, 1) 9h  g#Dst_count BfisC rast$nband`exclude_nodata_value({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 365028 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 365068 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})S SELECT public._ST_count($1, $2, $3, 1) 9h  g"D_st_count 4BfisC rast$nband`exclude_nodata_valueHsample_percentx ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 364549 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 364589 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 364635 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1}) DECLARE rtn bigint; BEGIN IF exclude_nodata_value IS FALSE THEN SELECT width * height INTO rtn FROM public.ST_Metadata(rast); ELSE SELECT count INTO rtn FROM public._ST_summarystats($1, $2, $3, $4); END IF; RETURN rtn; END; XrD`  R(rh@PV( @`9i   tEgeometry_raster_overlap Bfis@Ceselect $1 OPERATOR(public.&&) $2::public.geometry9i   ?=Dst_histogram BzDfisCs C= iiiiioooo  rast$nband`exclude_nodata_value bins$rightminmax$count,percent SELECT min, max, count, percent FROM public._ST_histogram($1, $2, $3, 1, $4, NULL, $5) 9i   } {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 373014 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT min, max, count, percent FROM public._ST_histogram($1, $2, $3, 1, $4, $5, $6) 9i  ;D_st_histogram ?zDfis  C CE iiiiiiiiioooo  rast$nband`exclude_nodata_valueHsample_percent bins$width$rightminmaxminmax$count,percent({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 372302 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 372343 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 372390 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 372411 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 372447 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 372476 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 372513 :constvalue <>} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 372548 :constvalue <>})#RASTER_histogram-$libdir/rtpostgis-2.59i  ':Dst_approxcount Bfsu<rastertable@rastercolumnHsample_percent_ SELECT public._ST_count($1, $2, 1, TRUE, $3) 9i  g9Dst_approxcount Bfsu<rastertable@rastercolumn`exclude_nodata_valueHsample_percent({FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 371663 :constvalue 8 [ 32 0 0 0 -1 -128 -24 3 ]}) :location -1})[ SELECT public._ST_count($1, $2, 1, $3, $4) 9i  '8Dst_approxcount Bfsu<rastertable@rastercolumn$nbandHsample_percenta SELECT public._ST_count($1, $2, $3, TRUE, $4) 9i  g7Dst_approxcount Bfsu<rastertable@rastercolumn$nband`exclude_nodata_valueHsample_percent ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 371094 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 371134 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 371180 :constvalue 8 [ 32 0 0 0 -1 -128 -24 3 ]}) :location -1})] SELECT public._ST_count($1, $2, $3, $4, $5) 9i  '6Dst_count Bfsu<rastertable@rastercolumn`exclude_nodata_valueY SELECT public._ST_count($1, $2, 1, $3, 1) 9i  g5Dst_count Bfsu<rastertable@rastercolumn$nband`exclude_nodata_value({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 370647 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 370687 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})[ SELECT public._ST_count($1, $2, $3, $4, 1) 9i  g4D_st_count 4Bfsu<rastertable@rastercolumn$nband`exclude_nodata_valueHsample_percentx ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 370182 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 370222 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 370268 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1}) DECLARE count bigint; BEGIN EXECUTE 'SELECT public.ST_CountAgg(' || quote_ident($2) || ', ' || $3 || ', ' || $4 || ', ' || $5 || ') ' || 'FROM ' || quote_ident($1) INTO count; RETURN count; END; (lHp  8| 0T`>xHR p@Xp<j   ]Fdblink_send_query ?fvr%dblink_send_query$libdir/dblink9j   'aDst_approxquantile BfisCS rast0quantile SELECT ( public._ST_quantile($1, 1, TRUE, 0.1, ARRAY[$2]::double precision[])).value 9j   g`Dst_approxquantile BfisC rast`exclude_nodata_value0quantile(({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 387150 :constvalue <>}) SELECT ( public._ST_quantile($1, 1, $2, 0.1, ARRAY[$3]::double precision[])).value 9j   FD_st_histogram ?zDfis C iiiiiiiioooo <rastertable@rastercolumn$nband`exclude_nodata_valueHsample_percent bins$width$rightminmax$count,percentX({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 377322 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 377363 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 377410 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 377431 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 377467 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 377496 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})3RASTER_histogramCoverage-$libdir/rtpostgis-2.59j  ?EDst_approxhistogram BzDfisCs C= iiiiioooo  rast$nbandHsample_percent bins$rightminmax$count,percent SELECT min, max, count, percent FROM public._ST_histogram($1, $2, TRUE, $3, $4, NULL, $5) 9j  DDst_approxhistogram BzDfisC{ C? iiiiiioooo   rast$nbandHsample_percent bins$width$rightminmax$count,percent({CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 376462 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 376491 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT min, max, count, percent FROM public._ST_histogram($1, $2, TRUE, $3, $4, $5, $6) 9j  ?CDst_approxhistogram BzDfisC[C7iioooo rastHsample_percentminmax$count,percent SELECT min, max, count, percent FROM public._ST_histogram($1, 1, TRUE, $2, 0, NULL, FALSE) 9j  ?BDst_approxhistogram BzDfisCcC9iiioooo rast$nbandHsample_percentminmax$count,percent SELECT min, max, count, percent FROM public._ST_histogram($1, $2, TRUE, $3, 0, NULL, FALSE) 9j  ?ADst_approxhistogram BzDfisC{ C? iiiiiiooooP  rast$nband`exclude_nodata_valueHsample_percent bins$rightminmax$count,percent SELECT min, max, count, percent FROM public._ST_histogram($1, $2, $3, $4, $5, NULL, $6) 9j  @Dst_approxhistogram BzDfisC CA iiiiiiioooo  rast$nband`exclude_nodata_valueHsample_percent bins$width$rightminmax$count,percent({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 374627 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 374668 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 374715 :constvalue 8 [ 32 0 0 0 -1 -128 -24 3 ]}) :location -1} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 374738 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 374774 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 374803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT min, max, count, percent FROM public._ST_histogram($1, $2, $3, $4, $5, $6, $7) 9j  ??Dst_histogram BzDfisCkC;iiiioooo rast$nband bins$rightminmax$count,percent SELECT min, max, count, percent FROM public._ST_histogram($1, $2, TRUE, 1, $3, NULL, $4) 9j  >Dst_histogram BzDfisCs C= iiiiioooo  rast$nband bins$width$rightminmax$count,percent({CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 373835 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 373864 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT min, max, count, percent FROM public._ST_histogram($1, $2, TRUE, 1, $3, $4, $5) (H   @  hb8RH؀9k   'Est_samealignment ?fisCC[$rast1$rast2+RASTER_sameAlignment-$libdir/rtpostgis-2.59k   'pDst_approxquantile Bfsu<rastertable@rastercolumnHsample_percent0quantile SELECT ( public._ST_quantile($1, $2, 1, TRUE, $3, ARRAY[$4]::double precision[])).value 9k   ?PDst_approxhistogram BzDfsu{ ? iiiiiiooooP <rastertable@rastercolumn$nbandHsample_percent bins$rightminmax$count,percent SELECT public._ST_histogram($1, $2, $3, TRUE, $4, $5, NULL, $6) 9k   ODst_approxhistogram BzDfsu A iiiiiiioooo <rastertable@rastercolumn$nbandHsample_percent bins$width$rightminmax$count,percent({CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 381249 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 381278 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT public._ST_histogram($1, $2, $3, TRUE, $4, $5, $6, $7) 9k  ?NDst_approxhistogram BzDfsuc9iiioooo<rastertable@rastercolumnHsample_percentminmax$count,percent SELECT public._ST_histogram($1, $2, 1, TRUE, $3, 0, NULL, FALSE) 9k  ?MDst_approxhistogram BzDfsuk;iiiioooo<rastertable@rastercolumn$nbandHsample_percentminmax$count,percent SELECT public._ST_histogram($1, $2, $3, TRUE, $4, 0, NULL, FALSE) 9k  ?LDst_approxhistogram BzDfsu A iiiiiiioooo <rastertable@rastercolumn$nband`exclude_nodata_valueHsample_percent bins$rightminmax$count,percent SELECT public._ST_histogram($1, $2, $3, $4, $5, $6, NULL, $7) 9k  KDst_approxhistogram BzDfsu C iiiiiiiioooo <rastertable@rastercolumn$nband`exclude_nodata_valueHsample_percent bins$width$rightminmax$count,percent({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 379490 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 379531 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 379578 :constvalue 8 [ 32 0 0 0 -1 -128 -24 3 ]}) :location -1} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 379601 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 379637 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 379666 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})} SELECT public._ST_histogram($1, $2, $3, $4, $5, $6, $7, $8) 9k  ?JDst_histogram BzDfsus = iiiiioooo <rastertable@rastercolumn$nband bins$rightminmax$count,percent SELECT public._ST_histogram($1, $2, $3, TRUE, 1, $4, NULL, $5) 9k  IDst_histogram BzDfsu{ ? iiiiiioooo0 <rastertable@rastercolumn$nband bins$width$rightminmax$count,percent({CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 378735 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 378764 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT public._ST_histogram($1, $2, $3, TRUE, 1, $4, $5, $6) 9k  ?HDst_histogram BzDfsu{ ? iiiiiioooo` <rastertable@rastercolumn$nband`exclude_nodata_value bins$rightminmax$count,percent SELECT public._ST_histogram($1, $2, $3, $4, 1, $5, NULL, $6) 9k  GDst_histogram BzDfsu A iiiiiiioooo <rastertable@rastercolumn$nband`exclude_nodata_value bins$width$rightminmax$count,percent ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 377822 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 377863 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 377887 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 377923 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 377952 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}){ SELECT public._ST_histogram($1, $2, $3, $4, 1, $5, $6, $7) 0ҒXh  p @蓪vАTN ЈHXHh9l  E_st_union_transfn ?fisC+RASTER_union_transfn-$libdir/rtpostgis-2.59l  '_Dst_approxquantile BfisC{ rastHsample_percent0quantile SELECT ( public._ST_quantile($1, 1, TRUE, $2, ARRAY[$3]::double precision[])).value 9l  '^Dst_approxquantile BfisC rast$nbandHsample_percent0quantile SELECT ( public._ST_quantile($1, $2, TRUE, $3, ARRAY[$4]::double precision[])).value 9l   ']Dst_approxquantile BfisC rast$nband`exclude_nodata_valueHsample_percent0quantile SELECT ( public._ST_quantile($1, $2, $3, $4, ARRAY[$5]::double precision[])).value 9l   ?\Dst_approxquantile BzDfisCKC3iioo rast4quantiles0quantile$valueg SELECT public._ST_quantile($1, 1, TRUE, 0.1, $2) 9l   [Dst_approxquantile BzDfisCSC5iiioo rastHsample_percent4quantiles0quantile$value4({CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 385596 :constvalue <>})e SELECT public._ST_quantile($1, 1, TRUE, $2, $3) 9l   ZDst_approxquantile BzDfisC[C7iiiioo rast$nbandHsample_percent4quantiles0quantile$value4({CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 385226 :constvalue <>})g SELECT public._ST_quantile($1, $2, TRUE, $3, $4) 9l   YDst_approxquantile BzDfisCcC9iiiiioo rast$nband`exclude_nodata_valueHsample_percent4quantiles0quantile$value ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 384715 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 384756 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 384803 :constvalue 8 [ 32 0 0 0 -1 -128 -24 3 ]}) :location -1} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 384846 :constvalue <>})c SELECT public._ST_quantile($1, $2, $3, $4, $5) 9l  'XDst_quantile BfisCS rast0quantile SELECT ( public._ST_quantile($1, 1, TRUE, 1, ARRAY[$2]::double precision[])).value 9l  gWDst_quantile BfisC rast`exclude_nodata_value0quantile(({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 384177 :constvalue <>}) SELECT ( public._ST_quantile($1, 1, $2, 1, ARRAY[$3]::double precision[])).value 9l  'VDst_quantile BfisCk rast$nband0quantile SELECT ( public._ST_quantile($1, $2, TRUE, 1, ARRAY[$3]::double precision[])).value 9l  'UDst_quantile BfisC rast$nband`exclude_nodata_value0quantile SELECT ( public._ST_quantile($1, $2, $3, 1, ARRAY[$4]::double precision[])).value 9l  ?TDst_quantile BzDfisCKC3iioo rast4quantiles0quantile$valuec SELECT public._ST_quantile($1, 1, TRUE, 1, $2) 9l  ?SDst_quantile BzDfisCSC5iiioo rast$nband4quantiles0quantile$valuee SELECT public._ST_quantile($1, $2, TRUE, 1, $3) 9l  RDst_quantile BzDfisC[C7iiiioo rast$nband`exclude_nodata_value4quantiles0quantile$value({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 382633 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 382674 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 382718 :constvalue <>})a SELECT public._ST_quantile($1, $2, $3, 1, $4) 9l  QD_st_quantile ?zDfisCcC9iiiiioo rast$nband`exclude_nodata_valueHsample_percent4quantiles0quantile$value ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 382208 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 382249 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 382296 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 382337 :constvalue <>})!RASTER_quantile-$libdir/rtpostgis-2.5P  @x  6  ȏx `(f9m  'oDst_approxquantile Bfsu<rastertable@rastercolumn$nbandHsample_percent0quantile SELECT ( public._ST_quantile($1, $2, $3, TRUE, $4, ARRAY[$5]::double precision[])).value 9m   'nDst_approxquantile Bfsu<rastertable@rastercolumn$nband`exclude_nodata_valueHsample_percent0quantile SELECT ( public._ST_quantile($1, $2, $3, $4, $5, ARRAY[$6]::double precision[])).value 9m   ?mDst_approxquantile BzDfsuS5iiioo<rastertable@rastercolumn4quantiles0quantile$valueo SELECT public._ST_quantile($1, $2, 1, TRUE, 0.1, $3) 9m   lDst_approxquantile BzDfsu[7iiiioo<rastertable@rastercolumnHsample_percent4quantiles0quantile$value4({CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 391219 :constvalue <>})m SELECT public._ST_quantile($1, $2, 1, TRUE, $3, $4) 9m   kDst_approxquantile BzDfsuc9iiiiioo<rastertable@rastercolumn$nbandHsample_percent4quantiles0quantile$value4({CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 390837 :constvalue <>})o SELECT public._ST_quantile($1, $2, $3, TRUE, $4, $5) 9m   jDst_approxquantile BzDfsuk;iiiiiioo`<rastertable@rastercolumn$nband`exclude_nodata_valueHsample_percent4quantiles0quantile$value ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 390314 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 390355 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 390402 :constvalue 8 [ 32 0 0 0 -1 -128 -24 3 ]}) :location -1} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 390445 :constvalue <>})k SELECT public._ST_quantile($1, $2, $3, $4, $5, $6) 9m  'iDst_quantile Bfsu<rastertable@rastercolumn0quantile SELECT ( public._ST_quantile($1, $2, 1, TRUE, 1, ARRAY[$3]::double precision[])).value 9m  ghDst_quantile Bfsu<rastertable@rastercolumn`exclude_nodata_value0quantile(({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 389753 :constvalue <>}) SELECT ( public._ST_quantile($1, $2, 1, $3, 1, ARRAY[$4]::double precision[])).value 9m  'gDst_quantile Bfsu<rastertable@rastercolumn$nband0quantile SELECT ( public._ST_quantile($1, $2, $3, TRUE, 1, ARRAY[$4]::double precision[])).value 9m  'fDst_quantile Bfsu<rastertable@rastercolumn$nband`exclude_nodata_value0quantile SELECT ( public._ST_quantile($1, $2, $3, $4, 1, ARRAY[$5]::double precision[])).value 9m  ?eDst_quantile BzDfsuS5iiioo<rastertable@rastercolumn4quantiles0quantile$valuek SELECT public._ST_quantile($1, $2, 1, TRUE, 1, $3) 9m  ?dDst_quantile BzDfsu[7iiiioo<rastertable@rastercolumn$nband4quantiles0quantile$valuem SELECT public._ST_quantile($1, $2, $3, TRUE, 1, $4) 9m  cDst_quantile BzDfsuc9iiiiioo<rastertable@rastercolumn$nband`exclude_nodata_value4quantiles0quantile$value({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 388152 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 388193 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 388237 :constvalue <>})i SELECT public._ST_quantile($1, $2, $3, $4, 1, $5) 9m  bD_st_quantile ?zDfsuk;iiiiiioo`<rastertable@rastercolumn$nband`exclude_nodata_valueHsample_percent4quantiles0quantile$value ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 387711 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 387752 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 387799 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 387840 :constvalue <>})1RASTER_quantileCoverage-$libdir/rtpostgis-2.5h֒D  < pN p@:@R Ѐ9n   Est_union ?aisCC!aggregate_dummy9n   zDst_valuepercent BzDfisCcC9iiiiioo rast$nband`exclude_nodata_value@searchvalues,roundto$value,percent ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 396049 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 396090 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 396137 :constvalue <>} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 396177 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT value, percent FROM public._ST_valuecount($1, $2, $3, $4, $5) 9n   gyDst_valuecount BfisCs rast<searchvalue,roundto({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 395804 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT ( public._ST_valuecount($1, 1, TRUE, ARRAY[$2]::double precision[], $3)).count 9n  gxDst_valuecount BfisC rast$nband<searchvalue,roundto({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 395521 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT ( public._ST_valuecount($1, $2, TRUE, ARRAY[$3]::double precision[], $4)).count 9n  gwDst_valuecount BfisC rast$nband`exclude_nodata_value<searchvalue,roundto({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 395225 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT ( public._ST_valuecount($1, $2, $3, ARRAY[$4]::double precision[], $5)).count 9n  vDst_valuecount BzDfisCSC5iiioo rast@searchvalues,roundto$value$count({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 394871 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT value, count FROM public._ST_valuecount($1, 1, TRUE, $2, $3) 9n  uDst_valuecount BzDfisC[C7iiiioo rast$nband@searchvalues,roundto$value$count({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 394558 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT value, count FROM public._ST_valuecount($1, $2, TRUE, $3, $4) 9n  tDst_valuecount BzDfisCcC9iiiiioo rast$nband`exclude_nodata_value@searchvalues,roundto$value$count ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 394102 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 394143 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 394190 :constvalue <>} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 394230 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT value, count FROM public._ST_valuecount($1, $2, $3, $4, $5) 9n  sD_st_valuecount ?zDfisCkC;iiiiiooo rast$nband`exclude_nodata_value@searchvalues,roundto$value$count,percent ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 393701 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 393742 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 393789 :constvalue <>} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 393829 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1})%RASTER_valueCount-$libdir/rtpostgis-2.59n  'rDst_approxquantile Bfsu<rastertable@rastercolumn0quantile SELECT ( public._ST_quantile($1, $2, 1, TRUE, 0.1, ARRAY[$3]::double precision[])).value 9n  gqDst_approxquantile Bfsu<rastertable@rastercolumn`exclude_nodata_value0quantile(({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 392829 :constvalue <>}) SELECT ( public._ST_quantile($1, $2, 1, $3, 0.1, ARRAY[$4]::double precision[])).value @  (htȗ>@ Ȓ 0 8Xz9o   gDst_valuecount Bfsu<rastertable@rastercolumn$nband`exclude_nodata_value<searchvalue,roundto({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 399676 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT ( public._ST_valuecount($1, $2, $3, $4, ARRAY[$5]::double precision[], $6)).count 9o   Dst_valuecount BzDfsu[7iiiioo<rastertable@rastercolumn@searchvalues,roundto$value$count({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 399311 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT value, count FROM public._ST_valuecount($1, $2, 1, TRUE, $3, $4) 9o  Dst_valuecount BzDfsuc9iiiiioo<rastertable@rastercolumn$nband@searchvalues,roundto$value$count({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 398987 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT value, count FROM public._ST_valuecount($1, $2, $3, TRUE, $4, $5) 9o  Dst_valuecount BzDfsuk;iiiiiioo@<rastertable@rastercolumn$nband`exclude_nodata_value@searchvalues,roundto$value$count ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 398520 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 398561 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 398608 :constvalue <>} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 398648 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT value, count FROM public._ST_valuecount($1, $2, $3, $4, $5, $6) 9o  D_st_valuecount ?zDfsus = iiiiiiooop <rastertable@rastercolumn$nband`exclude_nodata_value@searchvalues,roundto$value$count,percent ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 398103 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 398144 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 398191 :constvalue <>} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 398231 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1})5RASTER_valueCountCoverage-$libdir/rtpostgis-2.59o  gDst_valuepercent BfisCs rast<searchvalue,roundto({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 397822 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT ( public._ST_valuecount($1, 1, TRUE, ARRAY[$2]::double precision[], $3)).percent 9o  g~Dst_valuepercent BfisC rast$nband<searchvalue,roundto({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 397526 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT ( public._ST_valuecount($1, $2, TRUE, ARRAY[$3]::double precision[], $4)).percent 9o  g}Dst_valuepercent BfisC rast$nband`exclude_nodata_value<searchvalue,roundto({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 397217 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT ( public._ST_valuecount($1, $2, $3, ARRAY[$4]::double precision[], $5)).percent 9o  |Dst_valuepercent BzDfisCSC5iiioo rast@searchvalues,roundto$value,percent({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 396848 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT value, percent FROM public._ST_valuecount($1, 1, TRUE, $2, $3) 9o  {Dst_valuepercent BzDfisC[C7iiiioo rast$nband@searchvalues,roundto$value,percent({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 396520 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT value, percent FROM public._ST_valuecount($1, $2, TRUE, $3, $4) zH  XF$蕢 H~J(Іl 69p   'Dst_reclass BfisCC{ rast<reclassexpr4pixeltype] SELECT st_reclass($1, ROW(1, $2, $3, NULL)) 9p   gDst_reclass BfisCC rast$nband<reclassexpr4pixeltype4nodataval(({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 403809 :constvalue <>})[ SELECT st_reclass($1, ROW($2, $3, $4, $5)) 9p   ?Dst_reclass 4BDfisCCD;CD/ivc rastDreclassargset( DECLARE i int; expr text; BEGIN -- for each reclassarg, validate elements as all except nodataval cannot be NULL FOR i IN SELECT * FROM generate_subscripts($2, 1) LOOP IF $2[i].nband IS NULL OR $2[i].reclassexpr IS NULL OR $2[i].pixeltype IS NULL THEN RAISE WARNING 'Values are required for the nband, reclassexpr and pixeltype attributes.'; RETURN rast; END IF; END LOOP; RETURN public._ST_reclass($1, VARIADIC $2); END; 9p   ?D_st_reclass ?DfisCCD;CD/ivc rastDreclassargsetRASTER_reclass-$libdir/rtpostgis-2.59p  gDst_valuepercent Bfsu<rastertable@rastercolumn<searchvalue,roundto({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 402362 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT ( public._ST_valuecount($1, $2, 1, TRUE, ARRAY[$3]::double precision[], $4)).percent 9p  gDst_valuepercent Bfsu<rastertable@rastercolumn$nband<searchvalue,roundto({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 402055 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT ( public._ST_valuecount($1, $2, $3, TRUE, ARRAY[$4]::double precision[], $5)).percent 9p  gDst_valuepercent Bfsu<rastertable@rastercolumn$nband`exclude_nodata_value<searchvalue,roundto({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 401735 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT ( public._ST_valuecount($1, $2, $3, $4, ARRAY[$5]::double precision[], $6)).percent 9p  Dst_valuepercent BzDfsu[7iiiioo<rastertable@rastercolumn@searchvalues,roundto$value,percent({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 401355 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT value, percent FROM public._ST_valuecount($1, $2, 1, TRUE, $3, $4) 9p  Dst_valuepercent BzDfsuc9iiiiioo<rastertable@rastercolumn$nband@searchvalues,roundto$value,percent({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 401016 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT value, percent FROM public._ST_valuecount($1, $2, $3, TRUE, $4, $5) 9p  Dst_valuepercent BzDfsuk;iiiiiioo@<rastertable@rastercolumn$nband`exclude_nodata_value@searchvalues,roundto$value,percent ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 400534 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 400575 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 400622 :constvalue <>} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 400662 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT value, percent FROM public._ST_valuecount($1, $2, $3, $4, $5, $6) 9p  gDst_valuecount Bfsu<rastertable@rastercolumn<searchvalue,roundto({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 400277 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT ( public._ST_valuecount($1, $2, 1, TRUE, ARRAY[$3]::double precision[], $4)).count 9p  gDst_valuecount Bfsu<rastertable@rastercolumn$nband<searchvalue,roundto({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 399983 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1}) SELECT ( public._ST_valuecount($1, $2, $3, TRUE, ARRAY[$4]::double precision[], $5)).count D`  N( ؏bp8f8 Z`B9q   Est_pixelofvalue BzDfisCSC5iiioo rast(search`exclude_nodata_valuexyt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 505389 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT x, y FROM public.ST_PixelOfValue($1, 1, ARRAY[$2], $3) 9q   gDst_astiff BfisC rast(nbands<compression srid$({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 411943 :constvalue <>})Y SELECT st_astiff(st_band($1, $2), $3, $4) 9q   gDst_astiff 4BfisCk rast<compression srid$({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 409594 :constvalue <>})&Q DECLARE compression2@ text;_typelevel ini num_bandsoptions9[]; BEGIN IF rast IS NULL THE RETU RN@END IF; := trim(both from u pper(%))7IF length 2) > 0u-- JPEG IF posi('' idn ;!=<:= 0":= substring '[0-9]+$'; OT !> 10# u100 ELSE5< 13 1t := array_appPend(,_QUALITY=' ||l)Q P-- per !% pixel >check!'C; t_num($1PFOR i @IN 1...LOOP"public.ST_BandPhType@($1, i' 8BUI' RAISE EXCEPTION 'The of%!the"er i@s not P. "H)/ can only be used with@2a.', i A-- DEFLAT1_'/3/Z9/9/VZLEVEL// 'CCITT??c??1BB:?.10BB. ?1B>B?:8 -- wYIF ARRAY[] <@S, 'LZWPACKBIT&S 5,, RL FAX3 4 NONE']V/COMPRESS%&NOTICE 'Unknow*c: %. outputted TIFF willbe nEDnnmpStst_a`stiff">$3END; 9q  gDst_astiff BfisC{ rast(nbands,options sridL({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 409321 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 409348 :constvalue <>})Y SELECT st_astiff(st_band($1, $2), $3, $4) 9q  gDst_astiff 4BfisCc rast,options sridL({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 408456 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 408483 :constvalue <>}) DECLARE i int; num_bands int; nodata double precision; last_nodata double precision; BEGIN IF rast IS NULL THEN RETURN NULL; END IF; num_bands := st_numbands($1); -- TIFF only allows one NODATA value for ALL bands FOR i IN 1..num_bands LOOP nodata := st_bandnodatavalue($1, i); IF last_nodata IS NULL THEN last_nodata := nodata; ELSEIF nodata != last_nodata THEN RAISE NOTICE 'The TIFF format only permits one NODATA value for all bands. The value used will be the last band with a NODATA value.'; END IF; END LOOP; RETURN st_asgdalraster($1, 'GTiff', $2, $3); END; 9q  gDst_asgdalraster ?fisC{ rast(format,options sridL({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 408031 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 408058 :constvalue <>}))RASTER_asGDALRaster-$libdir/rtpostgis-2.59q  ?Dst_gdaldrivers ?zDfis`[7ooooooidx8short_name4long_name0can_read4can_writeHcreate_options-RASTER_getGDALDrivers-$libdir/rtpostgis-2.59q  gDst_fromgdalraster ?fisCS0gdaldata srid$({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 407231 :constvalue <>})-RASTER_fromGDALRaster-$libdir/rtpostgis-2.59q  gDst_colormap BfisCCk rast0colormap(method({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 406852 :constvalue 15 [ 60 0 0 0 73 78 84 69 82 80 79 76 65 84 69 ]})W SELECT public.ST_ColorMap($1, 1, $2, $3) 9q  gDst_colormap 4BfisCC rast$nband0colormap(method,({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 404591 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 404617 :constvalue 13 [ 52 0 0 0 103 114 97 121 115 99 97 108 101 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 404651 :constvalue 15 [ 60 0 0 0 73 78 84 69 82 80 79 76 65 84 69 ]}) DECLARE _ismap boolean;coloBrtexte@lement[]; BEGIN>:= TRUE; -- cK Go see what it is e:= split_part(, E'\n', 1) := regexp_replace(4:+', ' g';,;(\\t=( ;p:#to_array A' 5ytreat as| IF (5_length&(^\ >TH>E   [keyword ELS!B method4'INTERPOLATE'9 CASE lower(trim(both from m))) WHEN 'grayscalrere  ' 100% 0 0% 254 nv 8255/^ps0eudoAS255WM 5ht&nvfir $43Y21]93(.75217b8t87. 1381.2@28 96 E*87 5d 68\A1%.D62\ 8456\ 42*?4 .324  7\31838 9\40P 931 99 8\1 58 B  12 1 bluereJd/W .163w 94.12% 216 21 4x88.247 39 82.3L6176.47 20 870.5972 1B14.71$14 1`58.841 18$d052.9$e23447.06%741.18 8 249350.29%p4 @29.41%13.53%Ќ177.6 61%1.76h% !'85@.88% !m2  3616&U RAISE EXCEPTION 'U`nknowxT9: %',Z^ END Q)  IFRRETURN public._ST&Q($1, $2,WE, $4a<END; 9q  gD_st_colormap ?fisCC rast$nband0colormap(method({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 404393 :constvalue 15 [ 60 0 0 0 73 78 84 69 82 80 79 76 65 84 69 ]})!RASTER_colorMap-$libdir/rtpostgis-2.5ޒL  >L$ hJPJ8*`49r   E_st_union_transfn ?fisC+RASTER_union_transfn-$libdir/rtpostgis-2.59r   gDst_asraster Bfis C @  geom(scalex(scaley$gridx$gridy4pixeltype$value4nodataval$skewx$skewy,touched0({CONST :constty@pe 701mod -col lid 0len 8 byva@l trueisnullocation 417853#value <>} `9@ARRAY :array_id 1009z100 :e@lement'25s T  Tfals 3 928 @[ 32 056 66 85 73 ]}) :multidimsK222 FUNCEXPR :func@id 316 r0esults etvariadic for0mat 4inpu(#arg%m/^4/^ A84 [ 15d-17980Lz 8047} MJ2M1QM)4/v!(k@-751 SELECT public._ST_asraster($1, $2, $3, NULL, NULL, $6, $7, $8, NULL, NULL, $4, $5, $9, $10, $11) 9r   gD_st_asraster ?fisCP@` geom(scalex(scaley$width(height4pixeltype$value4nodataval8upperleftx8upperlefty$gridx$gridy$skewx$skewy,touched ({FUNCEXPR :func@id 316 resulttyp e 701tset falsevariadic format 2collid 0 :inputargs ({CONST :consn23mod -1;len 4 byval trueisnulllocation 417078$value 4 [ 0 ]}B)5-1} )11`)_39a65ARRAY!ray_id` 1009100 :element'25/!T 2C8 [ 3256 66 85 73#*multidims19422 2|?I4?~257.r1?25136_G319O?9u v86 <>a42{dr6 q50{54P?a)7O!/(WT6,1!RASTER_asRaster-$libdir/rtpostgis-2.59r   'Dst_aspng BfisCs rast$nband<compressionY SELECT public.st_aspng($1, ARRAY[$2], $3) 9r   gDst_aspng BfisCk rast$nband,options<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 416447 :constvalue <>})] SELECT public.st_aspng(st_band($1, $2), $3) 9r  'Dst_aspng 4BfisCs rast(nbands<compression DECLARE compression2 int; options text[]; BEGIN IF compression IS NOT NULL THEN IF compression > 9 THEN compression2 := 9; ELSEIF compression < 1 THEN compression2 := 1; ELSE compression2 := compression; END IF; options := array_append(options, 'ZLEVEL=' || compression2); END IF; RETURN public.st_aspng(st_band($1, $2), options); END; 9r  gDst_aspng BfisCk rast(nbands,options<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 415711 :constvalue <>})] SELECT public.st_aspng(st_band($1, $2), $3) 9r  gDst_aspng 4BfisCS rast,options<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 414631 :constvalue <>}) DECLARE rast2 raster; num_bands int; i int; pt text; BEGIN IF rast IS NULL THEN RETURN NULL; END IF; num_bands := st_numbands($1); -- PNG allows 1, 3 or 4 bands IF num_bands <> 1 AND num_bands <> 3 AND num_bands <> 4 THEN RAISE NOTICE 'The PNG format only permits one, three or four bands. The first band will be used.'; rast2 := public.st_band($1, ARRAY[1]); num_bands := public.st_numbands(rast2); ELSE rast2 := rast; END IF; -- PNG only supports 8BUI and 16BUI pixeltype FOR i IN 1..num_bands LOOP pt = public.ST_BandPixelType(rast, i); IF pt != '8BUI' AND pt != '16BUI' THEN RAISE EXCEPTION 'The pixel type of band % in the raster is not 8BUI or 16BUI. The PNG format can only be used with 8BUI and 16BUI pixel types.', i; END IF; END LOOP; RETURN public.st_asgdalraster(rast2, 'PNG', $2, NULL); END; 9r  'Dst_asjpeg BfisCk rast$nband,quality[ SELECT public.st_asjpeg($1, ARRAY[$2], $3) 9r  gDst_asjpeg BfisCk rast$nband,options<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 414049 :constvalue <>})_ SELECT public.st_asjpeg(st_band($1, $2), $3) 9r  'Dst_asjpeg 4BfisCk rast(nbands,quality DECLARE quality2 int; options text[]; BEGIN IF quality IS NOT NULL THEN IF quality > 100 THEN quality2 := 100; ELSEIF quality < 10 THEN quality2 := 10; ELSE quality2 := quality; END IF; options := array_append(options, 'QUALITY=' || quality2); END IF; RETURN public.st_asjpeg(st_band($1, $2), options); END; 9r  gDst_asjpeg BfisCk rast(nbands,options<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 413304 :constvalue <>})Q SELECT st_asjpeg(st_band($1, $2), $3) 9r  gDst_asjpeg 4BfisCS rast,options<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 412333 :constvalue <>}) DECLARE rast2 raster; num_bands int; i int; BEGIN IF rast IS NULL THEN RETURN NULL; END IF; num_bands := st_numbands($1); -- JPEG allows 1 or 3 bands IF num_bands <> 1 AND num_bands <> 3 THEN RAISE NOTICE 'The JPEG format only permits one or three bands. The first band will be used.'; rast2 := st_band(rast, ARRAY[1]); num_bands := st_numbands(rast); ELSE rast2 := rast; END IF; -- JPEG only supports 8BUI pixeltype FOR i IN 1..num_bands LOOP IF public.ST_BandPixelType(rast, i) != '8BUI' THEN RAISE EXCEPTION 'The pixel type of band % in the raster is not 8BUI. The JPEG format can only be used with the 8BUI pixel type.', i; END IF; END LOOP; RETURN st_asgdalraster(rast2, 'JPEG', $2, NULL); END; XZ4@  ,P@9s  gDst_asraster Bfis C @  geom$width(height4pixeltype$value4nodataval8upperleftx8upperlefty$skewx$skewy,touchedG({FUNCEXPR :func@id 316 resulttyp e 701tset falsevariadic format 2collid 0 :inputargs ({CONST :consn23mod -1;len 4 byval trueisnulllocation 422059$value 4 [ 1 0 ]})5-1} )98)')s 13 t<>b8@/321/3#)52)"(/,1 SELECT public._ST_asraster($1, NULL, NULL, $2, $3, ARRAY[$4]::text[], ARRAY[$5]::double precision[], ARRAY[$6]::double precision[], $7, $8, NULL, NULL,$9, $10, $11) 9s  gDst_asraster Bfis C @  geom$width(height$gridx$gridy4pixeltype$value4nodataval$skewx$skewy,touched({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 421544 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 421583 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 421618 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 421652 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 421680 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT public._ST_asraster($1, NULL, NULL, $2, $3, ARRAY[$6]::text[], ARRAY[$7]::double precision[], ARRAY[$8]::double precision[], NULL, NULL, $4, $5, $9, $10, $11) 9s  gDst_asraster Bfis C @  geom(scalex(scaley4pixeltype$value4nodataval8upperleftx8upperlefty$skewx$skewy,touchedG({FUNCEXPR :func@id 316 resulttyp e 701tset falsevariadic format 2collid 0 :inputargs ({CONST :consn23mod -1;len 4 byval trueisnulllocation 420895$value 4 [ 1 0 ]})5-1} )935)')8  7 <>`10! /3105/3#)8%d?\,&w1,1 SELECT public._ST_asraster($1, $2, $3, NULL, NULL, ARRAY[$4]::text[], ARRAY[$5]::double precision[], ARRAY[$6]::double precision[], $7, $8, NULL, NULL, $9, $10, $11) 9s  gDst_asraster Bfis C @  geom(scalex(scaley$gridx$gridy4pixeltype$value4nodataval$skewx$skewy,touched({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 420361 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 420400 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 420435 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 420469 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 420497 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT public._ST_asraster($1, $2, $3, NULL, NULL, ARRAY[$6]::text[], ARRAY[$7]::double precision[], ARRAY[$8]::double precision[], NULL, NULL, $4, $5, $9, $10, $11) 9s  gDst_asraster Bfis C @  geom$width(height4pixeltype$value4nodataval8upperleftx8upperlefty$skewx$skewy,touched!({ARRAY :array_typeid 1022collid 0 :element%701s ({FUNCEXPR :funcid 316 result75tset falseva@riadic format 4 inputargCONST :consn23mod -1;len 4 byval trueisnulllocation 419712$value 4 [ 1 0 H]})5-1multidimsaU06} 8A"74} w98  v84O<>b8/WI2/W92/W)55)"( ,1 SELECT public._ST_asraster($1, NULL, NULL, $2, $3, $4, $5, $6, $7, $8, NULL, NULL, $9, $10, $11) 9s  gDst_asraster Bfis C @  geom$width(height$gridx$gridy4pixeltype$value4nodataval$skewx$skewy,touched0({CONST :constty@pe 701mod -col lid 0len 8 byva@l trueisnullocation 419074#value <>} _ 11OARRAY :array_id 1009z100 :element'25s T  Tfals'  49 8 @[ 32 056 66 85 73 ]}) :multidimsK322 FUNCEXPR :func@id 316 r0esults etvariadic for0mat 4inDpu(#arg3/^%/^A2064 [ 15-1200Lz"68} MJ2M33AM)6/v!(k@92 1 SELECT public._ST_asraster($1, NULL, NULL, $2, $3, $6, $7, $8, NULL, NULL, $4, $5, $9, $10, $11) 9s  gDst_asraster Bfis C @  geom(scalex(scaley4pixeltype$value4nodataval8upperleftx8upperlefty$skewx$skewy,touched!({ARRAY :array_typeid 1022collid 0 :element%701s ({FUNCEXPR :funcid 316 result75tset falseva@riadic format 4 inputargCONST :consn23mod -1;len 4 byval trueisnulllocation 41851Avalue 4@ [ 1 0 ]$})5-1multidimsU004} 78"72} ?9 v639 <>b8O/WI2/W71/W)5`)(,1 SELECT public._ST_asraster($1, $2, $3, NULL, NULL, $4, $5, $6, $7, $8, NULL, NULL, $9, $10, $11) 80X  fXP9t  gDst_resample 4BfisCCC rastref4algorithm(maxerr0usescale ({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 426188 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 426241 :constvalue 8 [ 32 0 0 0 -1 -127 -30 4 ]}) :location -1} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 426274 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) DECLARE rastsrid int; _srid int; _dimx int; _dimy int; _scalex double precision; _scaley double precision; _gridx double precision; _gridy double precision; _skewx double precision; _skewy double precision; BEGIN SELECT srid, width, height, scalex, scaley, upperleftx, upperlefty, skewx, skewy INTO _srid, _dimx, _dimy, _scalex, _scaley, _gridx, _gridy, _skewx, _skewy FROM st_metadata($2); rastsrid := public.ST_SRID($1); -- both rasters must have the same SRID IF (rastsrid != _srid) THEN RAISE EXCEPTION 'The raster to be resampled has a different SRID from the reference raster'; RETURN NULL; END IF; IF usescale IS TRUE THEN _dimx := NULL; _dimy := NULL; ELSE _scalex := NULL; _scaley := NULL; END IF; RETURN public._ST_gdalwarp($1, $3, $4, NULL, _scalex, _scaley, _gridx, _gridy, _skewx, _skewy, _dimx, _dimy); END; 9t  gDst_resample Bfis C C  rast$width(height$gridx$gridy$skewx$skewy4algorithm(maxerr({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 425752 :constvalue <>} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 425789 :constvalue <>} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 425827 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 425861 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 425888 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 425940 :constvalue 8 [ 32 0 0 0 -1 -127 -30 4 ]}) :location -1}) SELECT public._ST_gdalwarp($1, $8, $9, NULL, NULL, NULL, $4, $5, $6, $7, $2, $3) 9t  gDst_resample Bfis C C  rast(scalex(scaley$gridx$gridy$skewx$skewy4algorithm(maxerr({FUNCEXPR :func@id 316 resulttyp e 701tset falsevariadic format 2collid 0 :inputargs ({CONST :consn23mod -1;len 4 byval trueisnulllocation 42523Pvalue 4 [ 0 ]})!5-1} )66)"8  3_<>b343/337/3#)41A?\,25 10 O37 2 0 [ 878 101 97 114 115 116105 103 104 `98 11".]174n176U$89U8 [ 32T-1 -127 -30 &,) SELECT public._ST_gdalwarp($1, $8, $9, NULL, $2, $3, $4, $5, $6, $7) 9t  gD_st_gdalwarp ?fis C  C  rast4algorithm(maxerr srid(scalex(scaley$gridx$gridy$skewx$skewy$width(heightB ({CONST :constty pe 25mod -1collid 100lenbyval false isnullocation 424526value 20 [ 80 78 101 97 114 115 116105 103 104 98 11".]} {FUNCEXPR :func746 resu"l701ts etvariadic for`mat 2 0@ :inpu0 :args U176WU073U@8 [ 32T-1 -127 -(30 &)<-1\} /N4 tru  602 <>31n:64; 4 [)76)"8 /71"_44?\78/3#)82A?\,o2L8q- ^7)!RASTER_GDALWarp-$libdir/rtpostgis-2.59t  gDst_asraster BfisC@C geomref4pixeltype$value4nodataval,touched ({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 423936 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 423975 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 424003 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT public.ST_AsRaster($1, $2, ARRAY[$3]::text[], ARRAY[$4]::double precision[], ARRAY[$5]::double precision[], $6) 9t  gDst_asraster 4BfisC@C geomref4pixeltype$value4nodataval,touched({ARRAY :array_typeid 1009coll :element'25s ({CONST :const" mod -1 Tlenbyval falseAisnullocation @422622$value 8 [ 32 056 66 85 73 ]}) :multidimsK16} f 701FUNCEXPR :funcid 316 resul"5tsetvariadic format C4inpuU0g3 4Htru794 [ 15d-173747!741|} L;9 `1 DECLARE g geometry; g_srid integer; ul_x double precision; ul_y double precision; scale_x double precision; scale_y double precision; skew_x double precision; skew_y double precision; sr_id integer; BEGIN SELECT upperleftx, upperlefty, scalex, scaley, skewx, skewy, srid INTO ul_x, ul_y, scale_x, scale_y, skew_x, skew_y, sr_id FROM public.ST_Metadata(ref); --RAISE NOTICE '%, %, %, %, %, %, %', ul_x, ul_y, scale_x, scale_y, skew_x, skew_y, sr_id; -- geometry and raster has different SRID g_srid := public.ST_SRID(geom); IF g_srid != sr_id THEN RAISE NOTICE 'The geometry''s SRID (%) is not the same as the raster''s SRID (%). The geometry will be transformed to the raster''s projection', g_srid, sr_id; g := public.ST_Transform(geom, sr_id); ELSE g := geom; END IF; RETURN public._ST_asraster(g, scale_x, scale_y, NULL, NULL, $3, $4, $5, NULL, NULL, ul_x, ul_y, skew_x, skew_y, $6); END; h<  V Xx (脀x9u   Est_union ?aisCC!aggregate_dummy9u  gDst_reskew BfisCC rast$skewx$skewy4algorithm(maxerr0({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 430406 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 430458 :constvalue 8 [ 32 0 0 0 -1 -127 -30 4 ]}) :location -1}) SELECT public._ST_GdalWarp($1, $4, $5, NULL, 0, 0, NULL, NULL, $2, $3) 9u  gDst_rescale BfisCC rast,scalexy4algorithm(maxerr0({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 429940 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 429992 :constvalue 8 [ 32 0 0 0 -1 -127 -30 4 ]}) :location -1})q SELECT public._ST_GdalWarp($1, $3, $4, NULL, $2, $2) 9u  gDst_rescale BfisCC rast(scalex(scaley4algorithm(maxerr0({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 429652 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 429704 :constvalue 8 [ 32 0 0 0 -1 -127 -30 4 ]}) :location -1})q SELECT public._ST_GdalWarp($1, $4, $5, NULL, $2, $3) 9u  gDst_transform 4BfisCCC rast,alignto4algorithm(maxerr0({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 428765 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 428817 :constvalue 8 [ 32 0 0 0 -1 -127 -30 4 ]}) :location -1})` DECLARE _srid integer; _scalex double precision; _scaley double precision; _gridx double precision; _gridy double precision; _skewx double precision; _skewy double precision; BEGIN SELECT srid, scalex, scaley, upperleftx, upperlefty, skewx, skewy INTO _srid, _scalex, _scaley, _gridx, _gridy, _skewx, _skewy FROM st_metadata($2); RETURN public._ST_gdalwarp($1, $3, $4, _srid, _scalex, _scaley, _gridx, _gridy, _skewx, _skewy, NULL, NULL); END; 9u  gDst_transform BfisCC rast srid,scalexy4algorithm(maxerr0({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 428484 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 428536 :constvalue 8 [ 32 0 0 0 -1 -127 -30 4 ]}) :location -1})k SELECT public._ST_gdalwarp($1, $4, $5, $2, $3, $3) 9u  gDst_transform BfisCC rast srid(scalex(scaley4algorithm(maxerr0({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 428183 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 428235 :constvalue 8 [ 32 0 0 0 -1 -127 -30 4 ]}) :location -1})k SELECT public._ST_gdalwarp($1, $5, $6, $2, $3, $4) 9u  gDst_transform BfisCC rast srid4algorithm(maxerr(scalex(scaleyx({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 427788 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 427840 :constvalue 8 [ 32 0 0 0 -1 -127 -30 4 ]}) :location -1} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 427879 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1} {FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 427914 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1})k SELECT public._ST_gdalwarp($1, $3, $4, $2, $5, $6) 9u  gDst_resample BfisCCC rastref0usescale4algorithm(maxerr0({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 427356 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 427409 :constvalue 8 [ 32 0 0 0 -1 -127 -30 4 ]}) :location -1})a SELECT public.st_resample($1, $2, $4, $5, $3) [8  ؖ `p P49v  g)Est_setbandnodatavalue ?fisCC rast band<nodatavalueDforcecheckingt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 513262 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})5RASTER_setBandNoDataValue-$libdir/rtpostgis-2.59v  Dst_mapalgebrafct ?fisCCCkCC;iiiiiiiv $rast1$band1$rast2$band2Ltworastuserfunc4pixeltype8extenttype0userargsD({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 440247 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 440277 :constvalue 16 [ 64 0 0 0 73 78 84 69 82 83 69 67 84 73 79 78 ]} {CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 440327 :constvalue <>})'RASTER_mapAlgebra2-$libdir/rtpostgis-2.59v  gDst_resize BfisCC rast$width(height4algorithm(maxerr0({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 434370 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 434422 :constvalue 8 [ 32 0 0 0 -1 -127 -30 4 ]}) :location -1}) SELECT public._ST_gdalwarp($1, $4, $5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, abs($2), abs($3)) 9v  gDst_resize 4BfisCC rast$width(height4algorithm(maxerr0({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 432458 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 432510 :constvalue 8 [ 32 0 0 0 -1 -127 -30 4 ]}) :location -1})  DECLARE i integer; wh text[2]d double precision._widthP _heightBEGINH[1] := trim(both from H$2)g[23)k-- see if tand lare percentages FOR i IN 1..2 LOOP IF position('%' in wh[i]) > 0 THE  i(regexp_matches(, E'^(\\d*.?)%{1}$'))[1:slength2) < 1j RAISE invalid_parameter_valueDEND IFdR:: * 0.01=EXCEPTION WHEN O THERS -- TODO:9 !vN'I 0x 1provided for/'RETURN NULLND ELS!%iabv::$\"7only handle appropriate SQLST ATwNon-?m0 !IF 1] IS NOT: OR2 %8SELEC@T foo., 4 INTO 3, 5FROM public.ST_Metadata($1) A~S?#_&3round(g/G)kkCk;l2l  AFhould NEVER be here.)Unato bd1} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 439821 :constvalue 16 [ 64 0 0 0 73 78 84 69 82 83 69 67 84 73 79 78 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 439863 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 439894 :constvalue <>} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 439942 :constvalue <>}) SELECT public.ST_mapalgebraexpr($1, 1, $2, 1, $3, $4, $5, $6, $7, $8) 9w   gDst_mapalgebraexpr ?fis C CC $rast1$band1$rast2$band28expression4pixeltype8extenttype<nodata1expr<nodata2exprLnodatanodatavalp ({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 439409 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 439439 :constvalue 16 [ 64 0 0 0 73 78 84 69 82 83 69 67 84 73 79 78 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 439481 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 439512 :constvalue <>} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 439560 :constvalue <>})'RASTER_mapAlgebra2-$libdir/rtpostgis-2.59w   'Dst_mapalgebrafct BfisCCc rastLonerastuserfuncq SELECT public.ST_mapalgebrafct($1, 1, NULL, $2, NULL) 9w   ?Dst_mapalgebrafct BfisCCCC1iivs rastLonerastuserfunc args SELECT public.ST_mapalgebrafct($1, 1, NULL, $2, VARIADIC $3) 9w   'Dst_mapalgebrafct BfisCC rast4pixeltypeLonerastuserfuncm SELECT public.ST_mapalgebrafct($1, 1, $2, $3, NULL) 9w  ?Dst_mapalgebrafct BfisCCKC3iiiv rast4pixeltypeLonerastuserfunc args{ SELECT public.ST_mapalgebrafct($1, 1, $2, $3, VARIADIC $4) 9w  'Dst_mapalgebrafct BfisCCs rast bandLonerastuserfuncs SELECT public.ST_mapalgebrafct($1, $2, NULL, $3, NULL) 9w  ?Dst_mapalgebrafct BfisCCKC3iiiv rast bandLonerastuserfunc args SELECT public.ST_mapalgebrafct($1, $2, NULL, $3, VARIADIC $4) 9w  'Dst_mapalgebrafct BfisCC rast band4pixeltypeLonerastuserfunco SELECT public.ST_mapalgebrafct($1, $2, $3, $4, NULL) 9w  ?Dst_mapalgebrafct ?fisCCSC5iiiiv rast band4pixeltypeLonerastuserfunc args+RASTER_mapAlgebraFct-$libdir/rtpostgis-2.59w  gDst_mapalgebraexpr BfisCC rast4pixeltype8expression4nodataval(({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 436441 :constvalue <>})k SELECT public.ST_mapalgebraexpr($1, 1, $2, $3, $4) 9w  gDst_mapalgebraexpr ?fisCC rast band4pixeltype8expression4nodataval(({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 436030 :constvalue <>})-RASTER_mapAlgebraExpr-$libdir/rtpostgis-2.59w  gDst_resize 4BfisCC rast@percentwidthDpercentheight4algorithm(maxerr0({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 434744 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 434796 :constvalue 8 [ 32 0 0 0 -1 -127 -30 4 ]}) :location -1}) DECLARE _width integer; _height integer; BEGIN -- range check IF $2 <= 0. OR $2 > 1. OR $3 <= 0. OR $3 > 1. THEN RAISE EXCEPTION 'Percentages must be a value greater than zero and less than or equal to one, e.g. 0.5 for 50%%'; END IF; SELECT width, height INTO _width, _height FROM public.ST_Metadata($1); _width := round(_width::double precision * $2)::integer; _height:= round(_height::double precision * $3)::integer; IF _width < 1 THEN _width := 1; END IF; IF _height < 1 THEN _height := 1; END IF; RETURN public._ST_gdalwarp( $1, $4, $5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, _width, _height ); END; D  pؖXdȊ @h9x   E_st_union_transfn ?fisC+RASTER_union_transfn-$libdir/rtpostgis-2.59x   g,Est_setbandpath ?fisCC rast band4outdbpath8outdbindex$forcet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 514095 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})'RASTER_setBandPath-$libdir/rtpostgis-2.59x   ?Dst_stddev4ma BfisC1iivs(matrix8nodatamode argsQ SELECT stddev(unnest) FROM unnest($1) 9x  ?Dst_distinct4ma BfisC1iivs(matrix8nodatamode argso SELECT COUNT(DISTINCT unnest)::float FROM unnest($1) 9x  ?Dst_range4ma 4BfisC1iivs(matrix8nodatamode args DECLARE _matrix float[][]; min float; max float; BEGIN _matrix := matrix; min := 'Infinity'::float; max := '-Infinity'::float; FOR x in array_lower(matrix, 1)..array_upper(matrix, 1) LOOP FOR y in array_lower(matrix, 2)..array_upper(matrix, 2) LOOP IF _matrix[x][y] IS NULL THEN IF NOT nodatamode = 'ignore' THEN _matrix[x][y] := nodatamode::float; END IF; END IF; IF min > _matrix[x][y] THEN min = _matrix[x][y]; END IF; IF max < _matrix[x][y] THEN max = _matrix[x][y]; END IF; END LOOP; END LOOP; IF max = '-Infinity'::float OR min = 'Infinity'::float THEN RETURN NULL; END IF; RETURN max - min; END; 9x  ?Dst_mean4ma 4BfisC1iivs(matrix8nodatamode args DECLARE _matrix float[][]; sum float; count float; BEGIN _matrix := matrix; sum := 0; count := 0; FOR x in array_lower(matrix, 1)..array_upper(matrix, 1) LOOP FOR y in array_lower(matrix, 2)..array_upper(matrix, 2) LOOP IF _matrix[x][y] IS NULL THEN IF nodatamode = 'ignore' THEN _matrix[x][y] := 0; ELSE _matrix[x][y] := nodatamode::float; count := count + 1; END IF; ELSE count := count + 1; END IF; sum := sum + _matrix[x][y]; END LOOP; END LOOP; IF count = 0 THEN RETURN NULL; END IF; RETURN sum / count; END; 9x  ?Dst_sum4ma 4BfisC1iivs(matrix8nodatamode args8 DECLARE _matrix float[][]; sum float; BEGIN _matrix := matrix; sum := 0; FOR x in array_lower(matrix, 1)..array_upper(matrix, 1) LOOP FOR y in array_lower(matrix, 2)..array_upper(matrix, 2) LOOP IF _matrix[x][y] IS NULL THEN IF nodatamode = 'ignore' THEN _matrix[x][y] := 0; ELSE _matrix[x][y] := nodatamode::float; END IF; END IF; sum := sum + _matrix[x][y]; END LOOP; END LOOP; RETURN sum; END; 9x  ?Dst_min4ma 4BfisC1iivs(matrix8nodatamode args DECLARE _matrix float[][]; min float; BEGIN _matrix := matrix; min := 'Infinity'::float; FOR x in array_lower(_matrix, 1)..array_upper(_matrix, 1) LOOP FOR y in array_lower(_matrix, 2)..array_upper(_matrix, 2) LOOP IF _matrix[x][y] IS NULL THEN IF NOT nodatamode = 'ignore' THEN _matrix[x][y] := nodatamode::float; END IF; END IF; IF min > _matrix[x][y] THEN min := _matrix[x][y]; END IF; END LOOP; END LOOP; RETURN min; END; 9x  ?Dst_max4ma 4BfisC1iivs(matrix8nodatamode args DECLARE _matrix float[][]; max float; BEGIN _matrix := matrix; max := '-Infinity'::float; FOR x in array_lower(_matrix, 1)..array_upper(_matrix, 1) LOOP FOR y in array_lower(_matrix, 2)..array_upper(_matrix, 2) LOOP IF _matrix[x][y] IS NULL THEN IF NOT nodatamode = 'ignore' THEN _matrix[x][y] := nodatamode::float; END IF; END IF; IF max < _matrix[x][y] THEN max := _matrix[x][y]; END IF; END LOOP; END LOOP; RETURN max; END; 9x  ?Dst_mapalgebrafctngb ?fisCCkC;iiiiiiiv rast band4pixeltype0ngbwidth4ngbheightXonerastngbuserfunc8nodatamode args1RASTER_mapAlgebraFctNgb-$libdir/rtpostgis-2.59x  Dst_mapalgebrafct BfisCCC[CC7iiiiiv$rast1$rast2Ltworastuserfunc4pixeltype8extenttype0userargsD({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 440570 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 440600 :constvalue 16 [ 64 0 0 0 73 78 84 69 82 83 69 67 84 73 79 78 ]} {CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 440650 :constvalue <>}) SELECT public.ST_mapalgebrafct($1, 1, $2, 1, $3, $4, $5, VARIADIC $6) S,@  h& T h@| @ 9y  Dst_max4ma 4BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 453566 :constvalue <>})$ DECLARE _value double precision[][][]; max double precision; x int; y int; z int; ndims int; BEGIN max := '-Infinity'::double precision; ndims := array_ndims(value); -- add a third dimension if 2-dimension IF ndims = 2 THEN _value := public._ST_convertarray4ma(value); ELSEIF ndims != 3 THEN RAISE EXCEPTION 'First parameter of function must be a 3-dimension array'; ELSE _value := value; END IF; -- raster FOR z IN array_lower(_value, 1)..array_upper(_value, 1) LOOP -- row FOR y IN array_lower(_value, 2)..array_upper(_value, 2) LOOP -- column FOR x IN array_lower(_value, 3)..array_upper(_value, 3) LOOP IF _value[z][y][x] IS NULL THEN IF array_length(userargs, 1) > 0 THEN _value[z][y][x] = userargs[array_lower(userargs, 1)]::double precision; ELSE CONTINUE; END IF; END IF; IF _value[z][y][x] > max THEN max := _value[z][y][x]; END IF; END LOOP; END LOOP; END LOOP; IF max = '-Infinity'::double precision THEN RETURN NULL; END IF; RETURN max; END; 9y  Dst_mapalgebra Bfis C CCs CC= iiiiiiiiv`  rast$nband@callbackfunc4pixeltype8extenttype@customextent4distancex4distancey0userargs ({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 448932 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 448963 :constvalue 9 [ 36 0 0 0 70 73 82 83 84 ]} {CONST :consttype 17367 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 449000 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 449033 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 449062 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 449099 :constvalue <>})H SELECT public._ST_MapAlgebra(ARRAY[ROW($1, $2)]::rastbandarg[], $3, $4, $7, $8, $5, $6,NULL::double precision [],NULL::boolean, VARIADIC $9) 9y  Dst_mapalgebra 4Bfis C CCs CC= iiiiiiiiv`  rast$nband@callbackfunc4pixeltype8extenttype@customextent4distancex4distancey0userargs ({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 447925 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 447956 :constvalue 9 [ 36 0 0 0 70 73 82 83 84 ]} {CONST :consttype 17367 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 447993 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 448026 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 448055 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 448092 :constvalue <>}) DECLARE x int; argset rastbandarg[]; BEGIN IF $2 IS NULL OR array_ndims($2) < 1 OR array_length($2, 1) < 1 THEN RAISE EXCEPTION 'Populated 1D array must be provided for nband'; RETURN NULL; END IF; FOR x IN array_lower($2, 1)..array_upper($2, 1) LOOP IF $2[x] IS NULL THEN CONTINUE; END IF; argset := argset || ROW($1, $2[x])::rastbandarg; END LOOP; IF array_length(argset, 1) < 1 THEN RAISE EXCEPTION 'Populated 1D array must be provided for nband'; RETURN NULL; END IF; RETURN public._ST_MapAlgebra(argset, $3, $4, $7, $8, $5, $6,NULL::double precision [],NULL::boolean, VARIADIC $9); END; 9y  Dst_mapalgebra BfisCCCkCC;iiiiiiiv`Hrastbandargset@callbackfunc4pixeltype8extenttype@customextent4distancex4distancey0userargs(({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 447445 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 447476 :constvalue 16 [ 64 0 0 0 73 78 84 69 82 83 69 67 84 73 79 78 ]} {CONST :consttype 17367 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 447520 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 447553 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 447582 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 447619 :constvalue <>}) SELECT public._ST_MapAlgebra($1, $2, $3, $6, $7, $4, $5,NULL::double precision [],NULL::boolean, VARIADIC $8) 9y  D_st_mapalgebra ?fis C CC{ CC? iiiiiiiiiv Hrastbandargset@callbackfunc4pixeltype4distancex4distancey8extenttype@customextent mask0weighted0userargsX({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 446961 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 446994 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 447023 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 447051 :constvalue 16 [ 64 0 0 0 73 78 84 69 82 83 69 67 84 73 79 78 ]} {CONST :consttype 17367 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 447095 :constvalue <>} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 447136 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull true :location 447167 :constvalue <>} {CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 447207 :constvalue <>})'RASTER_nMapAlgebra-$libdir/rtpostgis-2.5J8  * ` @~x :9z  'D_st_convertarray4ma 4BfispC$valueD DECLARE _value double precision[][][]; x int; y int; BEGIN IF array_ndims(value) != 2 THEN RAISE EXCEPTION 'Function parameter must be a 2-dimension array'; END IF; _value := array_fill(NULL::double precision, ARRAY[1, array_length(value, 1), array_length(value, 2)]::int[], ARRAY[1, array_lower(value, 1), array_lower(value, 2)]::int[]); -- row FOR y IN array_lower(value, 1)..array_upper(value, 1) LOOP -- column FOR x IN array_lower(value, 2)..array_upper(value, 2) LOOP _value[1][y][x] = value[y][x]; END LOOP; END LOOP; RETURN _value; END; 9z  gDst_mapalgebra BfisCCCP$rast1$rast28expression4pixeltype8extenttype<nodata1expr<nodata2exprLnodatanodatavalp ({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 452064 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 452094 :constvalue 16 [ 64 0 0 0 73 78 84 69 82 83 69 67 84 73 79 78 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 452136 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 452167 :constvalue <>} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 452215 :constvalue <>}) SELECT public.ST_mapalgebra($1, 1, $2, 1, $3, $4, $5, $6, $7, $8) 9z  gDst_mapalgebra Bfis C CC $rast1$band1$rast2$band28expression4pixeltype8extenttype<nodata1expr<nodata2exprLnodatanodatavalp ({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 451622 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 451652 :constvalue 16 [ 64 0 0 0 73 78 84 69 82 83 69 67 84 73 79 78 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 451694 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 451725 :constvalue <>} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 451773 :constvalue <>}) SELECT public._ST_mapalgebra(ARRAY[ROW($1, $2), ROW($3, $4)]::rastbandarg[], $5, $6, $7, $8, $9, $10) 9z  gDst_mapalgebra BfisCC rast4pixeltype8expression4nodataval(({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 451356 :constvalue <>})c SELECT public.ST_mapalgebra($1, 1, $2, $3, $4) 9z  gDst_mapalgebra BfisCC rast$nband4pixeltype8expression4nodataval(({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 451064 :constvalue <>}) SELECT public._ST_mapalgebra(ARRAY[ROW($1, $2)]::rastbandarg[], $4, $3, 'FIRST', $5::text) 9z  gD_st_mapalgebra ?fisCC@Hrastbandargset8expression4pixeltype8extenttype<nodata1expr<nodata2exprLnodatanodatavalp ({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 450655 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 450685 :constvalue 16 [ 64 0 0 0 73 78 84 69 82 83 69 67 84 73 79 78 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 450727 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 450758 :constvalue <>} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 450806 :constvalue <>})/RASTER_nMapAlgebraExpr-$libdir/rtpostgis-2.59z  Dst_mapalgebra Bfis C CCs CC= iiiiiiiiv0  rast$nband@callbackfunc mask0weighted4pixeltype8extenttype@customextent0userargsh ({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 450034 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 450065 :constvalue 16 [ 64 0 0 0 73 78 84 69 82 83 69 67 84 73 79 78 ]} {CONST :consttype 17367 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 450109 :constvalue <>} {CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 450149 :constvalue <>}) select public._ST_mapalgebra(ARRAY[ROW($1,$2)]::rastbandarg[],$3,$6,NULL::integer,NULL::integer,$7,$8,$4,$5,VARIADIC $9) 9z  Dst_mapalgebra Bfis C CCC CCCA iiiiiiiiiiv $rast1(nband1$rast2(nband2@callbackfunc4pixeltype8extenttype@customextent4distancex4distancey0userargs(({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 449463 :constvalue <>} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 449494 :constvalue 16 [ 64 0 0 0 73 78 84 69 82 83 69 67 84 73 79 78 ]} {CONST :consttype 17367 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 449538 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 449571 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 449600 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 449637 :constvalue <>}) SELECT public._ST_MapAlgebra(ARRAY[ROW($1, $2), ROW($3, $4)]::rastbandarg[], $5, $6, $9, $10, $7, $8,NULL::double precision [],NULL::boolean, VARIADIC $11) ލ8   d (`j9{  gEst_value BfisC@{ rastpt`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 503995 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})Q SELECT public.ST_value($1, 1, $2, $3) 9{ Dst_invdistweight4ma 4BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 460816 :constvalue <>})D 9{  Dst_stddev4ma BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 460342 :constvalue <>})Q SELECT stddev(unnest) FROM unnest($1) 9{  Dst_distinct4ma BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 460074 :constvalue <>}) SELECT COUNT(DISTINCT unnest)::double precision FROM unnest($1) 9{  Dst_range4ma 4BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 458588 :constvalue <>}) DECLARE _value double precision[][][]; min double precision; max double precision; x int; y int; z int; ndims int; BEGIN min := 'Infinity'::double precision; max := '-Infinity'::double precision; ndims := array_ndims(value); -- add a third dimension if 2-dimension IF ndims = 2 THEN _value := public._ST_convertarray4ma(value); ELSEIF ndims != 3 THEN RAISE EXCEPTION 'First parameter of function must be a 3-dimension array'; ELSE _value := value; END IF; -- raster FOR z IN array_lower(_value, 1)..array_upper(_value, 1) LOOP -- row FOR y IN array_lower(_value, 2)..array_upper(_value, 2) LOOP -- column FOR x IN array_lower(_value, 3)..array_upper(_value, 3) LOOP IF _value[z][y][x] IS NULL THEN IF array_length(userargs, 1) > 0 THEN _value[z][y][x] = userargs[array_lower(userargs, 1)]::double precision; ELSE CONTINUE; END IF; END IF; IF _value[z][y][x] < min THEN min := _value[z][y][x]; END IF; IF _value[z][y][x] > max THEN max := _value[z][y][x]; END IF; END LOOP; END LOOP; END LOOP; IF max = '-Infinity'::double precision OR min = 'Infinity'::double precision THEN RETURN NULL; END IF; RETURN max - min; END; 9{  Dst_mean4ma 4BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 457309 :constvalue <>}) DECLARE _value double precision[][][]; sum double precision; count int; x int; y int; z int; ndims int; BEGIN sum := 0; count := 0; ndims := array_ndims(value); -- add a third dimension if 2-dimension IF ndims = 2 THEN _value := public._ST_convertarray4ma(value); ELSEIF ndims != 3 THEN RAISE EXCEPTION 'First parameter of function must be a 3-dimension array'; ELSE _value := value; END IF; -- raster FOR z IN array_lower(_value, 1)..array_upper(_value, 1) LOOP -- row FOR y IN array_lower(_value, 2)..array_upper(_value, 2) LOOP -- column FOR x IN array_lower(_value, 3)..array_upper(_value, 3) LOOP IF _value[z][y][x] IS NULL THEN IF array_length(userargs, 1) > 0 THEN _value[z][y][x] = userargs[array_lower(userargs, 1)]::double precision; ELSE CONTINUE; END IF; END IF; sum := sum + _value[z][y][x]; count := count + 1; END LOOP; END LOOP; END LOOP; IF count < 1 THEN RETURN NULL; END IF; RETURN sum / count::double precision; END; 9{  Dst_sum4ma 4BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 456156 :constvalue <>}) DECLARE _value double precision[][][]; sum double precision; x int; y int; z int; ndims int; BEGIN sum := 0; ndims := array_ndims(value); -- add a third dimension if 2-dimension IF ndims = 2 THEN _value := public._ST_convertarray4ma(value); ELSEIF ndims != 3 THEN RAISE EXCEPTION 'First parameter of function must be a 3-dimension array'; ELSE _value := value; END IF; -- raster FOR z IN array_lower(_value, 1)..array_upper(_value, 1) LOOP -- row FOR y IN array_lower(_value, 2)..array_upper(_value, 2) LOOP -- column FOR x IN array_lower(_value, 3)..array_upper(_value, 3) LOOP IF _value[z][y][x] IS NULL THEN IF array_length(userargs, 1) > 0 THEN _value[z][y][x] = userargs[array_lower(userargs, 1)]::double precision; ELSE CONTINUE; END IF; END IF; sum := sum + _value[z][y][x]; END LOOP; END LOOP; END LOOP; RETURN sum; END; 9{  Dst_min4ma 4BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 454862 :constvalue <>}) DECLARE _value double precision[][][]; min double precision; x int; y int; z int; ndims int; BEGIN min := 'Infinity'::double precision; ndims := array_ndims(value); -- add a third dimension if 2-dimension IF ndims = 2 THEN _value := public._ST_convertarray4ma(value); ELSEIF ndims != 3 THEN RAISE EXCEPTION 'First parameter of function must be a 3-dimension array'; ELSE _value := value; END IF; -- raster FOR z IN array_lower(_value, 1)..array_upper(_value, 1) LOOP -- row FOR y IN array_lower(_value, 2)..array_upper(_value, 2) LOOP -- column FOR x IN array_lower(_value, 3)..array_upper(_value, 3) LOOP IF _value[z][y][x] IS NULL THEN IF array_length(userargs, 1) > 0 THEN _value[z][y][x] = userargs[array_lower(userargs, 1)]::double precision; ELSE CONTINUE; END IF; END IF; IF _value[z][y][x] < min THEN min := _value[z][y][x]; END IF; END LOOP; END LOOP; END LOOP; IF min = 'Infinity'::double precision THEN RETURN NULL; END IF; RETURN min; END; X0X   z : ($ X9|  oEraster_geometry_contain BfisC@Aselect $1::public.geometry ~ $29|  D_st_aspect4ma 4BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 472817 :constvalue <>}), DECLARE x integer;  y z _width double precision)_heightunits textGdz_dx *yaspec_halfpi{value []=ndims; BEGIN:= arPray_(I)3-- add a third dimenU if 2- IF L= 2 THE]:= public._ST_conveDrtq4manELSEH!= 3IRAISE EXCEPTION 'First parameter of functmust be a 3'g  ND IFOIF (&lower(2, 2)1 O"R8upp3 4ORA3A 3  ).1x3x3e with each,the  bounds starting from 1+ength(userargs, 1) < At least three elementsprovided for#m -- only us+e f raspassed toFsm1) > 1 NOTICE 'Oik3s" { AO6V1)Ia :=J[1]:v:Oq ,2,C +3]q:check that cen2ixel isn't NODATA-[z][2 IS NULL)ETURND+subst`itute \any nbobsarew5FOR y IN 1..3 LOO6Px y][x6#=   h (S0:= (Q3][1] +c3F3]) -nM1M1;3])RZc  22~2&dlc1lDat4bs() = 0/ AND%y%,-1OT}in radiansw1tanb2g, -=north|, p@i/2 = A, 3westqi() / 2.0h> $(5.0 * ) i-F %7[+q*r0._{utput depea6onBikference @ CASECring(ctrim(leadfdC$))B!3)|--{ WHEN 'rad'74degrees (defaultoL3%(;rN D END; 9|  gDst_slope BfisCC rast$nband4pixeltype$units$scaleXinterpolate_nodata({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 472175 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 472202 :constvalue 8 [ 32 0 0 0 51 50 66 70 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 472229 :constvalue 11 [ 44 0 0 0 68 69 71 82 69 69 83 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 472272 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 472312 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT public.ST_slope($1, $2, NULL::raster, $3, $4, $5, $6) 9|  gDst_slope 4BfisCCC rast$nband@customextent4pixeltype$units$scaleXinterpolate_nodatax ({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 470678 :constvalue 8 [ 32 0 0 0 51 50 66 70 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 470705 :constvalue 11 [ 44 0 0 0 68 69 71 82 69 69 83 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 470748 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 470788 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})  DECLARE _rasDt er;nband integpixtype textwidth double pre@cisionheight: `. customexten  BEGIN3:=F  Bx-- get properties*jPCW(7(-H.SE LECT ], A8INTO #,B %FROMe ta!L RETURN/ ' 5,, $/ 'H_ST_slope/2 7 ,;V!5::[, d& # unitsAscale #pEND; 9|  D_st_slope4ma 4BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 467916 :constvalue <>}) DECLARE x integer;  y z _pixwidth double precisi on,height: 7 units text scale* dz_dxEBy5slopP_valu[]AWndims"; BEGIN6:= arraTy_(J)4-- add a third dimenV if 2- IF L= 2 THEN := public._ST_conveDrtq4manELSEH!= 3IRAISE EXCEPTION 'First parameter of functmust be a 3'g  ND IFP-- only use the frrasopassed ttos{Kl@ength(e, 1) > 1 NOTICE 'bOiingk3s from{!lowerpaIF (p#2B)e1 ORBupp3 ORA3A 3 )A.1x3x3e with each, bounds star6tI>1/us@erargs< 6At least six elementsprovided for313 G:=!c[1]::O /2/Zv3+W4,C +5BZD 6D 3Zcheck that cen2Rixel isn't NODATA#M[z][2 IS NULLETURNDsubstitute \any nbosarewE!FOR y IN 1..3 LOOP x y][xFv#=  9? h (Rc6:= (4Q3][1h] +c3F3]) -nM1M1;3])) / 'ex - ?2232Jx{:= sqrtR(* +yy=(8 * 3SaPutput depeAon201!ference CASEA#ring(SRtrim(leadF3))"3)@-- per!agesWHEN 'PER''100.0 * "Y-- radian=rad=atan(r;degrees (defaulto5J:'(BsN})H DECLARE _value double precis ion[]; ndims int; d* DEFAULT NULL1_$;zEege*r%x y  c c c*v\w %h max_dx6y`BEGINX:= array_(2)B-- add a third dimenif 2-@ IF L= 2 THEN  |:= public._ST_convertq4manELSE!H!= 3IRAISE EXCEPTION 'First parameter of functmust be a 3'g  ND IFr-- only use the "frrasopassed tos{Klength(e, 1) > 1 NOT@ICE 'Oii ngk3s fr|om{!tl0owerpwidth and height (0-based)#"K@upp@2)T -Y2w8383max distancecenVixel':= w / 2(:= hKcorrect1w + 13=E!should!Codd n@umbersw % 2.!(BWQof nPb@orhood does not permit `for aIF huHv3] s coordinate c+/* c)'G s3S:= -[z][cy][cx]4heck1seeA DhasHIF cv IS1wRMETURN 0.FOR y IN..a?:LOOPX@xu@3@3@Askip NODA|TAE!<4$y0][x]OR (x = cx@ AND y y) CONTINUEQpythagoreanAorem _dsqrt(pcx - x+ y - y); --7[F= %', _d|IF d _d < d}/  E { yrq$OEND; 0  ؘNR؂ ^9}  Est_pixelofvalue ?zDfisCcC9iiiiooo rast$nband(search`exclude_nodata_valuevalxyt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 504429 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}))RASTER_pixelOfValue-$libdir/rtpostgis-2.59}  gDst_hillshade BfisCC  rast$nband4pixeltype,azimuth0altitude8max_bright$scaleXinterpolate_nodata({CONST :constty pe 23mod -1col lid 0len 4 byva@l trueisnull false :location 483275$value 4 [ 1 0 ]} 810  302 8 [ 3251 50 66 7FUNCEXPR :func746A resul701tsetvvariadic format 2rinpuAargs 1n7$$4$-12859 1 ]})=-16f8+645"644286-A@66665N o507 1 [l SELECT public.ST_hillshade($1, $2, NULL::raster, $3, $4, $5, $6, $7, $8) 9}  gDst_hillshade 4Bfis C CC`  rast$nband@customextent4pixeltype,azimuth0altitude8max_bright$scaleXinterpolate_nodataJ({CONST :constty pe 25mod -1collid 100lenbyval false isnullocation 48165Cvalue 8 [ 32 051 50 66 70 ]} {FUNCEXPR :fuDnc746 resul701atsetvvariadic format 20 :inpu0 :args $17&$092$-12859 1 ]})=-16733645 !]6766-1681465 tru5U1 []}) DECLARE _rast raster; _nband integer; _pixtype text; _pixwidth double precision; _pixheight double precision; _width integer; _height integer; _customextent raster; _extenttype text; BEGIN _customextent := customextent; IF _customextent IS NULL THEN _extenttype := 'FIRST'; ELSE _extenttype := 'CUSTOM'; END IF; IF interpolate_nodata IS TRUE THEN _rast := public.ST_MapAlgebra( ARRAY[ROW(rast, nband)]::rastbandarg[], 'public.st_invdistweight4ma(double precision[][][], integer[][], text[])'::regprocedure, pixeltype, 'FIRST', NULL, 1, 1 ); _nband := 1; _pixtype := NULL; ELSE _rast := rast; _nband := nband; _pixtype := pixeltype; END IF; -- get properties _pixwidth := public.ST_PixelWidth(_rast); _pixheight := public.ST_PixelHeight(_rast); SELECT width, height, scalex INTO _width, _height FROM public.ST_Metadata(_rast); RETURN public.ST_MapAlgebra( ARRAY[ROW(_rast, _nband)]::rastbandarg[], ' public._ST_hillshade4ma(double precision[][][], integer[][], text[])'::regprocedure, _pixtype, _extenttype, _customextent, 1, 1, _pixwidth::text, _pixheight::text, _width::text, _height::text, $5::text, $6::text, $7::text, $8::text ); END; 9}  D_st_hillshade4ma 4BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 477490 :constvalue <>})v DECLARE _pixwidth double precision;height: A7 azimu9altitudebrWscal7 dz_dx6y zenBislopaspecshaCvalu[] 1 NOTICE 'Oik3s" { 1j6V1)3VZ:=M`[1]::_j /2/Z3+W4,E -5-U .6.T ,7,S +8+#-check that pixel is not 0edge4poa[1] 42) $f )Q8ETURN NULL/clamp Xf< 0.}/C7!6=5C%q10',Mz0.Xs>= 36vSxbe between 0 8andS  - (~* floor(/)c&6cC7-J+ 9?1?"fradians(t#$/= %',Y45(6og8>,x+9y X S6[6Z YCDWDQU4SGO > 255q*255s\LD:= (db[z][3B+ 23]) -uMC )C3])) / (8 * g۳q 3 E229 RsA0tan@(sqrt(* +yyHc@IF(!!>G X2Ty, -,:B'* < + (2.0 * xpi(S18xy >M= / 2"n%3(2QvQB-- set!pi assBie exDed PostgreSQL ansin Linux 76aa4B* ((cos(aC<) * )):sin*g')al0  ; ; 9}  gDst_aspect BfisCC rast$nband4pixeltype$unitsXinterpolate_nodata ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 476881 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 476908 :constvalue 8 [ 32 0 0 0 51 50 66 70 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 476935 :constvalue 11 [ 44 0 0 0 68 69 71 82 69 69 83 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 476982 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})y SELECT public.ST_aspect($1, $2, NULL::raster, $3, $4, $5) 9}  gDst_aspect 4BfisCCC rast$nband@customextent4pixeltype$unitsXinterpolate_nodata({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 475620 :constvalue 8 [ 32 0 0 0 51 50 66 70 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 475647 :constvalue 11 [ 44 0 0 0 68 69 71 82 69 69 83 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 475694 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})< DECLARE _rast raster; _nband integer; _pixtype text; _width integer; _height integer; _customextent raster; _extenttype text; BEGIN _customextent := customextent; IF _customextent IS NULL THEN _extenttype := 'FIRST'; ELSE _extenttype := 'CUSTOM'; END IF; IF interpolate_nodata IS TRUE THEN _rast := public.ST_MapAlgebra( ARRAY[ROW(rast, nband)]::rastbandarg[], 'public.st_invdistweight4ma(double precision[][][], integer[][], text[])'::regprocedure, pixeltype, 'FIRST', NULL, 1, 1 ); _nband := 1; _pixtype := NULL; ELSE _rast := rast; _nband := nband; _pixtype := pixeltype; END IF; -- get properties SELECT width, height INTO _width, _height FROM public.ST_Metadata(_rast); RETURN public.ST_MapAlgebra( ARRAY[ROW(_rast, _nband)]::rastbandarg[], ' public._ST_aspect4ma(double precision[][][], integer[][], text[])'::regprocedure, _pixtype, _extenttype, _customextent, 1, 1, _width::text, _height::text, units::text ); END; 0`  &. `^9~  Est_pixelofvalue BzDfisC[C7iiiooo rast(search`exclude_nodata_valuevalxyt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 504739 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})} SELECT val, x, y FROM public.ST_PixelOfValue($1, 1, $2, $3) 9~  gDst_roughness 4BfisCCC rast$nband@customextent4pixeltypeXinterpolate_nodata({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 489862 :constvalue 8 [ 32 0 0 0 51 50 66 70 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 489905 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) DECLARE _rast raster; _nband integer; _pixtype text; _pixwidth double precision; _pixheight double precision; _width integer; _height integer; _customextent raster; _extenttype text; BEGIN _customextent := customextent; IF _customextent IS NULL THEN _extenttype := 'FIRST'; ELSE _extenttype := 'CUSTOM'; END IF; IF interpolate_nodata IS TRUE THEN _rast := public.ST_MapAlgebra( ARRAY[ROW(rast, nband)]::rastbandarg[], 'public.st_invdistweight4ma(double precision[][][], integer[][], text[])'::regprocedure, pixeltype, 'FIRST', NULL, 1, 1 ); _nband := 1; _pixtype := NULL; ELSE _rast := rast; _nband := nband; _pixtype := pixeltype; END IF; RETURN public.ST_MapAlgebra( ARRAY[ROW(_rast, _nband)]::rastbandarg[], ' public._ST_roughness4ma(double precision[][][], integer[][], text[])'::regprocedure, _pixtype, _extenttype, _customextent, 1, 1); END; 9~  D_st_roughness4ma 4BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 488069 :constvalue <>}) DECLARE x integer; y integer; z integer; minimum double precision; maximum double precision; _value double precision[][][]; ndims int; BEGIN ndims := array_ndims(value); -- add a third dimension if 2-dimension IF ndims = 2 THEN _value := public._ST_convertarray4ma(value); ELSEIF ndims != 3 THEN RAISE EXCEPTION 'First parameter of function must be a 3-dimension array'; ELSE _value := value; END IF; -- only use the first raster passed to this function IF array_length(_value, 1) > 1 THEN RAISE NOTICE 'Only using the values from the first raster'; END IF; z := array_lower(_value, 1); IF ( array_lower(_value, 2) != 1 OR array_upper(_value, 2) != 3 OR array_lower(_value, 3) != 1 OR array_upper(_value, 3) != 3 ) THEN RAISE EXCEPTION 'First parameter of function must be a 1x3x3 array with each of the lower bounds starting from 1'; END IF; -- check that center pixel isn't NODATA IF _value[z][2][2] IS NULL THEN RETURN NULL; -- substitute center pixel for any neighbor pixels that are NODATA ELSE FOR y IN 1..3 LOOP FOR x IN 1..3 LOOP IF _value[z][y][x] IS NULL THEN _value[z][y][x] = _value[z][2][2]; END IF; END LOOP; END LOOP; END IF; minimum := _value[z][1][1]; maximum := _value[z][1][1]; FOR Y IN 1..3 LOOP FOR X IN 1..3 LOOP IF _value[z][y][x] < minimum THEN minimum := _value[z][y][x]; ELSIF _value[z][y][x] > maximum THEN maximum := _value[z][y][x]; END IF; END LOOP; END LOOP; RETURN maximum - minimum; END; 9~  gDst_tpi BfisCC rast$nband4pixeltypeXinterpolate_nodataX({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 487587 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 487614 :constvalue 8 [ 32 0 0 0 51 50 66 70 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 487657 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})k SELECT public.ST_tpi($1, $2, NULL::raster, $3, $4) 9~  gDst_tpi 4BfisCCC rast$nband@customextent4pixeltypeXinterpolate_nodata({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 486263 :constvalue 8 [ 32 0 0 0 51 50 66 70 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 486306 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) DECLARE _rast raster; _nband integer; _pixtype text; _pixwidth double precision; _pixheight double precision; _width integer; _height integer; _customextent raster; _extenttype text; BEGIN _customextent := customextent; IF _customextent IS NULL THEN _extenttype := 'FIRST'; ELSE _extenttype := 'CUSTOM'; END IF; IF interpolate_nodata IS TRUE THEN _rast := public.ST_MapAlgebra( ARRAY[ROW(rast, nband)]::rastbandarg[], 'public.st_invdistweight4ma(double precision[][][], integer[][], text[])'::regprocedure, pixeltype, 'FIRST', NULL, 1, 1 ); _nband := 1; _pixtype := NULL; ELSE _rast := rast; _nband := nband; _pixtype := pixeltype; END IF; -- get properties _pixwidth := public.ST_PixelWidth(_rast); _pixheight := public.ST_PixelHeight(_rast); SELECT width, height INTO _width, _height FROM public.ST_Metadata(_rast); RETURN public.ST_MapAlgebra( ARRAY[ROW(_rast, _nband)]::rastbandarg[], ' public._ST_tpi4ma(double precision[][][], integer[][], text[])'::regprocedure, _pixtype, _extenttype, _customextent, 1, 1); END; 9~  D_st_tpi4ma 4BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 483929 :constvalue <>})2Z DECLARE x integer;  y z Z1 double precisHion%Z23U456789 tpi0mean_value []!ndims4; BEGIN:= arPray_(I)3-- add a third dimenU if 2- IF L= 2 THE]:= public._ST_conveDrtq4manELSEH!= 3IRAISE EXCEPTION 'First parameter of functmust be a 3'g  ND IF-- only use the frrasopassed ttos{Kl@ength(e, 1) > 1 NOTICE 'bOiingk3s from{1lowerpaIF (p#2B)e1 ORBupp3 ORA3A 3 )A.1x3x3e with each, bounds star6tI>1/check that cenixel isn't NODATA: [z][2 I@S NULLE0TURN4-substitute \for any neighbosarew%FOR y IN 1..3 LOlOPx y][x&#=  )` h V4| Z1= Z(-1,1) | Z20,1) | Z3  |4hj4h0h5hZ*6h0h27h-1)h8h9ih%c:1d 23 34K#Z5K6Kj7K38K9Ke:= (Z@1 + Z23U4678a9)/8Oq0:`= Z5-?Hreturn tpi; !; 08P  2 ~ P 8&@H tPp9  Est_union ?aisCpC!aggregate_dummy9  Est_pixelofvalue BzDfisC[C7iiiioo rast$nband(search`exclude_nodata_valuexyt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 505084 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT x, y FROM public.ST_PixelofValue($1, $2, ARRAY[$3], $4) 9  gEst_grayscale 4BfisCCsHrastbandargset8extenttype({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 496714 :constvalue 16 [ 64 0 0 0 73 78 84 69 82 83 69 67 84 73 79 78 ]}) DECLARE _NBANDS integer DEFAULT 3; ODATA255PIXTYP@E text'@8BUI';]set rastbandarg[]nUIidxo n> stats summary (odata double precisionval geclassexpr[ BEGINc-- check for three := array_length($set, D1)jIF /< pTHEN RAISE EXCEPTIO N ''' D'' must ha,vesred, green $blue'q(ELSt>tWARNING 'Only the firstdelements of will be usedr :=&set[1:3]E'" ND IFFOR !IN 1..LOOP# := L[idx].#, Wthat each$g hasspecifiede4IF public.ST_HasNoBand, \)Y-- a!dex ''%'' not found'S, 3s 1i. if Q, $ify |to?# PixelTypeq != 63l:=DS3yS C5 3wNoDataValu y2%:IS NOT NULL&9Cq::= conPcat( '[]a, '-, ']:',S,'),K0.minNax]:0F - 1)D$5  ?{p7]32YROW*R|B 7/$,&:Vval)::#S2GB %G  1 1 all map algebra with _st_grayscale4ma RETURN(MapA4'#_ST_GDMA(mH[],eB a8[])'gproced8ureYr extenttype " ; 9  E_st_grayscale4ma 4BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 495888 :constvalue <>}) DECLARE ndims integer; _value double precision[][][]; red double precision; green double precision; blue double precision; gray double precision; BEGIN ndims := array_ndims(value); -- add a third dimension if 2-dimension IF ndims = 2 THEN _value := public._ST_convertarray4ma(value); ELSEIF ndims != 3 THEN RAISE EXCEPTION 'First parameter of function must be a 3-dimension array'; ELSE _value := value; END IF; red := _value[1][1][1]; green := _value[2][1][1]; blue := _value[3][1][1]; gray = round(0.2989 * red + 0.5870 * green + 0.1140 * blue); RETURN gray; END; 9  gEst_tri BfisCC rast$nband4pixeltypeXinterpolate_nodataX({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 495289 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 495316 :constvalue 8 [ 32 0 0 0 51 50 66 70 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 495359 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})k SELECT public.ST_tri($1, $2, NULL::raster, $3, $4) 9  gEst_tri 4BfisCCC rast$nband@customextent4pixeltypeXinterpolate_nodata({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 493965 :constvalue 8 [ 32 0 0 0 51 50 66 70 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 494008 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) DECLARE _rast raster; _nband integer; _pixtype text; _pixwidth double precision; _pixheight double precision; _width integer; _height integer; _customextent raster; _extenttype text; BEGIN _customextent := customextent; IF _customextent IS NULL THEN _extenttype := 'FIRST'; ELSE _extenttype := 'CUSTOM'; END IF; IF interpolate_nodata IS TRUE THEN _rast := public.ST_MapAlgebra( ARRAY[ROW(rast, nband)]::rastbandarg[], 'public.st_invdistweight4ma(double precision[][][], integer[][], text[])'::regprocedure, pixeltype, 'FIRST', NULL, 1, 1 ); _nband := 1; _pixtype := NULL; ELSE _rast := rast; _nband := nband; _pixtype := pixeltype; END IF; -- get properties _pixwidth := public.ST_PixelWidth(_rast); _pixheight := public.ST_PixelHeight(_rast); SELECT width, height INTO _width, _height FROM public.ST_Metadata(_rast); RETURN public.ST_MapAlgebra( ARRAY[ROW(_rast, _nband)]::rastbandarg[], ' public._ST_tri4ma(double precision[][][], integer[][], text[])'::regprocedure, _pixtype, _extenttype, _customextent, 1, 1); END; 9  E_st_tri4ma 4BfisC1iivk$valuepos0userargs<({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 491487 :constvalue <>})> DECLARE x integer;  y z Z1 double precisHion%Z23U456789 tri0_valdue[]!ndims; BEGIN:= array_ (I)3-- add a third dimenU if 2-@ IF L= 2 THE]:= public._ST_co nvertq4mBanELSEH!= 3IRAISE EXCEPTION 'First parameter of functmust be a 3'g   ND IFg-- only use the frrasopassed tos{Klength(e, 1) > 1 NOTICE 'Oiingk3s from{!low erpIF (p#2)e1 O"RBupp3 4ORA3A 3  ).1x3x3e with peach, bounds startI>1/check that cenixel isn't NODATA:[z][2 IS NULLETURN4-substitute \for any neig(hbosarew%FOR y IN 1..3` LOOPx y][x&#=  )` h V4| Z1= Z(-1,1) | Z20,1) 0| Z3  |W4h4h0h5ShZ6h0h27h-1)h8h9ih%#g_scale width and h!Xt units / z to makeequal0As):)1t+ 23 34K#]Z5K6K7K3v8K9Kt;:= ( abs(Z1 - Z5 ) + Z2 3 4 6 7 8  ( Z9 ) / 8return tri; 1X; 9  gEst_roughness BfisCC rast$nband4pixeltypeXinterpolate_nodataX({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 491011 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 491038 :constvalue 8 [ 32 0 0 0 51 50 66 70 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 491081 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})w SELECT public.ST_roughness($1, $2, NULL::raster, $3, $4) ׍T  8PBX4Fx<ЈF@| 9  gEst_value 4BfisC@ rast bandpt`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 503060 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) DECLARE x float8; y float8; gtype text; BEGIN gtype := public.ST_GeometryType(pt); IF ( gtype != 'ST_Point' ) THEN RAISE EXCEPTION 'Attempting to get the value of a pixel with a non-point geometry'; END IF; IF public.ST_SRID(pt) != public.ST_SRID(rast) THEN RAISE EXCEPTION 'Raster and geometry do not have the same SRID'; END IF; x := public.ST_x(pt); y := public.ST_y(pt); RETURN public.ST_value(rast, band, public.ST_worldtorastercoordx(rast, x, y), public.ST_worldtorastercoordy(rast, x, y), exclude_nodata_value); END; 9  gEst_value BfisC rastxy`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 502822 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})K SELECT st_value($1, 1, $2, $3, $4) 9   gEst_value ?fisC rast bandxy`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 502585 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})+RASTER_getPixelValue-$libdir/rtpostgis-2.59   gEst_bandfiletimestamp ?fisCK rast bandt({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 502159 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]})9RASTER_getBandFileTimestamp-$libdir/rtpostgis-2.59   gEst_bandfilesize ?fisCK rast bandt({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 501925 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]})/RASTER_getBandFileSize-$libdir/rtpostgis-2.59   Est_bandmetadata BfisCs C= iiooooooo0  rast band4pixeltype<nodatavalue,isoutdb path@outdbbandnum0filesizeDfiletimestampt({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 501449 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]})L SELECT pixeltype, nodatavalue, isoutdb, path, outdbbandnum, filesize, filetimestamp FROM public.ST_BandMetaData($1, ARRAY[$2]::int[]) LIMIT 1 9   ?Est_bandmetadata ?fisC{ C? iioooooooo`  rast band,bandnum4pixeltype<nodatavalue,isoutdb path@outdbbandnum0filesizeDfiletimestamp)RASTER_bandmetadata-$libdir/rtpostgis-2.59  g Est_bandpixeltype ?fisCK rast bandt({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 500885 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]})9RASTER_getBandPixelTypeName-$libdir/rtpostgis-2.59  g Est_bandpath ?fisCK rast bandt({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 500685 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]})'RASTER_getBandPath-$libdir/rtpostgis-2.59  ' Est_bandisnodata BfisCc rastDforcecheckingW SELECT public.ST_bandisnodata($1, 1, $2) 9  g Est_bandisnodata ?fisCs rast bandDforcechecking({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 500243 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 500276 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}))RASTER_bandIsNoData-$libdir/rtpostgis-2.59  g Est_bandnodatavalue ?fisCK rast bandt({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 500025 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]})5RASTER_getBandNoDataValue-$libdir/rtpostgis-2.59  gEst_hasnoband ?fisCS rast$nbandt({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 499651 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]})#RASTER_hasNoBand-$libdir/rtpostgis-2.59  'Est_isempty ?fispC; rastRASTER_isEmpty-$libdir/rtpostgis-2.59  gEst_grayscale 4BfisCC rast,redband4greenband0blueband8extenttype ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 498835 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 498866 :constvalue 4 [ 2 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 498896 :constvalue 4 [ 3 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 498924 :constvalue 16 [ 64 0 0 0 73 78 84 69 82 83 69 67 84 73 79 78 ]})| DECLARE BEGIN RETURN public.ST_Grayscale( ARRAY[ ROW(rast, redband)::rastbandarg, ROW(rast, greenband)::rastbandarg, ROW(rast, blueband)::rastbandarg ]::rastbandarg[], extenttype ); END; P]Xp   ȓ2ȒxPFЈXȃPp9  pEraster_contained_by_geometry BfisC@cselect $1::public.geometry OPERATOR(public.@) $29  g(Est_tile BzDfisCC rast$width(heightDpadwithnodata4nodataval({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 512671 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 512713 :constvalue <>})} SELECT public._ST_tile($1, $2, $3, NULL::integer[], $4, $5) 9  g'Est_tile BzDfisCC rast$nband$width(heightDpadwithnodata4nodataval({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 512370 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 512412 :constvalue <>}) SELECT public._ST_tile($1, $3, $4, ARRAY[$2]::integer[], $5, $6) 9   g&Est_tile BzDfisCC rast$nband$width(heightDpadwithnodata4nodataval({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 512072 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 512114 :constvalue <>})c SELECT public._ST_tile($1, $3, $4, $2, $5, $6) 9   g%E_st_tile ?zDfisCC rast$width(height$nbandDpadwithnodata4nodataval({CONST :consttype 1007 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 511752 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 511789 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 511831 :constvalue <>})RASTER_tile-$libdir/rtpostgis-2.59   '$Est_setgeoreference BfisCC rast8upperleftx8upperlefty(scalex(scaley$skewx$skewy SELECT public.ST_setgeoreference($1, array_to_string(ARRAY[$4, $7, $6, $5, $2, $3], ' ')) 9   g#Est_setgeoreference 4BfisCCk rast(georef(format({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 509241 :constvalue 8 [ 32 0 0 0 71 68 65 76 ]})N  DEC0LARE params text[];rastouter BEGIN"IF IS NUL`L THERAISE WARNING 'Cannot set georeferencing on a nulln in st_set)e.'_ETURNEND IF; SELECT regexp_matches([, SE'(-?\\d+(?:\\. )?)\\Bs' ||X?') INTOIF NOT FOUNDEXCEPTION 'Y requires a strwith 6 floatpoint valu eslIF format = @'ESRI'--%uarray is now: ${scalex, skewyy, uppe@rleftx y} F%:= public.STD(,[1]T::84)#+zWkewVouY3Y2Y^ 7 n5n - ( * 0.5)=R6R.RELSGq+'!= 'GDAL/('FDF5 ''%''#8t recognized, defaul"to Xh.', r% /L/o/M/'@)$_END 9   '"Est_setgeotransform ?fisCC rast imag jmag,theta_i0theta_ij,xoffset,yoffset/RASTER_setGeotransform-$libdir/rtpostgis-2.59  '!Est_setrotation ?fisCCS rast0rotation'RASTER_setRotation-$libdir/rtpostgis-2.59  ' Est_setupperleft ?fisCC{ rast8upperleftx8upperlefty-RASTER_setUpperLeftXY-$libdir/rtpostgis-2.59  'Est_setsrid ?fisCCK rast sridRASTER_setSRID-$libdir/rtpostgis-2.59  'Est_setskew ?fisCCk rast$skewx$skewy#RASTER_setSkewXY-$libdir/rtpostgis-2.59  'Est_setskew ?fisCCK rast skewRASTER_setSkew-$libdir/rtpostgis-2.59  'Est_setscale ?fisCCk rast(scalex(scaley%RASTER_setScaleXY-$libdir/rtpostgis-2.59  'Est_setscale ?fisCCS rast$scale!RASTER_setScale-$libdir/rtpostgis-2.59  gEst_georeference 4BfisCS rast(format({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 505830 :constvalue 8 [ 32 0 0 0 71 68 65 76 ]}) DECLARE scale_x numeric; scale_y numeric; skew_x numeric; skew_y numeric; ul_x numeric; ul_y numeric; result text; BEGIN SELECT scalex::numeric, scaley::numeric, skewx::numeric, skewy::numeric, upperleftx::numeric, upperlefty::numeric INTO scale_x, scale_y, skew_x, skew_y, ul_x, ul_y FROM public.ST_Metadata(rast); -- scale x result := trunc(scale_x, 10) || E'\n'; -- skew y result := result || trunc(skew_y, 10) || E'\n'; -- skew x result := result || trunc(skew_x, 10) || E'\n'; -- scale y result := result || trunc(scale_y, 10) || E'\n'; IF format = 'ESRI' THEN -- upper left x result := result || trunc((ul_x + scale_x * 0.5), 10) || E'\n'; -- upper left y result = result || trunc((ul_y + scale_y * 0.5), 10) || E'\n'; ELSE -- IF format = 'GDAL' THEN -- upper left x result := result || trunc(ul_x, 10) || E'\n'; -- upper left y result := result || trunc(ul_y, 10) || E'\n'; END IF; RETURN result; END; pT  0hЗ(@H8xV0229  g;Est_polygon ?fis@CK rast bandt({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 520199 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]})%RASTER_getPolygon-$libdir/rtpostgis-2.59  g:Est_dumpvalues BfisC rast$nband`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 519802 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT valarray FROM public.ST_dumpvalues($1, ARRAY[$2]::integer[], $3) 9   9Est_dumpvalues ?zDfisCSC5iiioo rast$nband`exclude_nodata_value$nband0valarray({CONST :consttype 1007 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 519481 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 519524 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})%RASTER_dumpValues-$libdir/rtpostgis-2.59   g8Est_dumpaspolygons ?zDfisCC{ rast band`exclude_nodata_value({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 519072 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 519112 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})-RASTER_dumpAsPolygons-$libdir/rtpostgis-2.59   '7Est_setvalue BfisCC@c rast geom0newvalue SELECT public.ST_setvalues($1, 1, ARRAY[ROW($2, $3)]::geomval[], FALSE) 9   '6Est_setvalue BfisCC@{ rast$nband geom0newvalue SELECT public.ST_setvalues($1, $2, ARRAY[ROW($3, $4)]::geomval[], FALSE) 9   '5Est_setvalue BfvuCCs rastxy0newvalue_ SELECT public.ST_SetValue($1, 1, $2, $3, $4) 9  '4Est_setvalue ?fisCC rast bandxy0newvalue+RASTER_setPixelValue-$libdir/rtpostgis-2.59  g3Est_setvalues ?fisCCC rast$nband8geomvalset8keepnodatat({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 517183 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]});RASTER_setPixelValuesGeomval-$libdir/rtpostgis-2.59  g2Est_setvalues 4BfisCC rastxy$width(height0newvalue8keepnodatat({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 516679 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})  BEGIN IF width <= 0 OR height <= 0 THEN RAISE EXCEPTION 'Values for width and height must be greater than zero'; RETURN NULL; END IF; RETURN public._ST_setvalues($1, 1, $2, $3, array_fill($6, ARRAY[$5, $4]::int[]), NULL, FALSE, NULL, $7); END; 9  g1Est_setvalues 4BfisCC rast$nbandxy$width(height0newvalue8keepnodatat({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 516129 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})$ BEGIN IF width <= 0 OR height <= 0 THEN RAISE EXCEPTION 'Values for width and height must be greater than zero'; RETURN NULL; END IF; RETURN public._ST_setvalues($1, $2, $3, $4, array_fill($7, ARRAY[$6, $5]::int[]), NULL, FALSE, NULL, $8); END; 9  g0Est_setvalues BfisCC rast$nbandxy<newvalueset8nosetvalue8keepnodatat({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 515760 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT public._ST_setvalues($1, $2, $3, $4, $5, NULL, TRUE, $6, $7) 9  g/Est_setvalues BfisCC rast$nbandxy<newvalueset$noset8keepnodata({CONST :consttype 1000 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 515395 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 515429 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT public._ST_setvalues($1, $2, $3, $4, $5, $6, FALSE, NULL, $7) 9  g.E_st_setvalues ?fis C C0  rast$nbandxy<newvalueset$nosetDhasnosetvalue8nosetvalue8keepnodata ({CONST :consttype 1000 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 515003 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 515040 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 515084 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 515118 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})7RASTER_setPixelValuesArray-$libdir/rtpostgis-2.59  g-Est_setbandindex BfisCC rast band8outdbindex$forcet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 514329 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})k SELECT public.ST_SetBandPath($1, $2, NULL, $3, $4) bX  (:.xbx hH:0&4p 9  qEraster_geometry_overlap BfisC@eselect $1::public.geometry OPERATOR(public.&&) $29  'JEst_worldtorastercoordy BfisCK rastyw SELECT rowy FROM public._ST_worldtorastercoord($1, NULL, $2) 9  'IEst_worldtorastercoordy BfisC[ rastxwyw{ SELECT rowy FROM public._ST_worldtorastercoord($1, $2, $3) 9   'HEst_worldtorastercoordx 4BfisC@K rastpt DECLARE xr integer; BEGIN IF ( public.ST_geometrytype(pt) != 'ST_Point' ) THEN RAISE EXCEPTION 'Attempting to compute raster coordinate with a non-point geometry'; END IF; IF public.ST_SRID(rast) != public.ST_SRID(pt) THEN RAISE EXCEPTION 'Raster and geometry do not have the same SRID'; END IF; SELECT columnx INTO xr FROM public._ST_worldtorastercoord($1, public.ST_x(pt), public.ST_y(pt)); RETURN xr; END; 9   'GEst_worldtorastercoordx BfisCK rastxw SELECT columnx FROM public._ST_worldtorastercoord($1, $2, NULL) 9   'FEst_worldtorastercoordx BfisC[ rastxwyw SELECT columnx FROM public._ST_worldtorastercoord($1, $2, $3) 9   ?EEst_worldtorastercoord 4BfisC@KC@3iioos rastpt,columnx rowy DECLARE rx integer; ry integer; BEGIN IF public.ST_geometrytype(pt) != 'ST_Point' THEN RAISE EXCEPTION 'Attempting to compute raster coordinate with a non-point geometry'; END IF; IF public.ST_SRID(rast) != public.ST_SRID(pt) THEN RAISE EXCEPTION 'Raster and geometry do not have the same SRID'; END IF; SELECT rc.columnx AS x, rc.rowy AS y INTO columnx, rowy FROM public._ST_worldtorastercoord($1, public.ST_x(pt), public.ST_y(pt)) AS rc; RETURN; END; 9   ?DEst_worldtorastercoord BfisCSC5iiioo rast4longitude0latitude,columnx rowy SELECT columnx, rowy FROM public._ST_worldtorastercoord($1, $2, $3) 9  CE_st_worldtorastercoord ?fisCSC5iiioo rast4longitude0latitude,columnx rowy<({CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 524186 :constvalue <>} {CONST :consttype 701 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 524226 :constvalue <>})5RASTER_worldToRasterCoord-$libdir/rtpostgis-2.59  'BEst_pixelascentroid Bfis@C[ rastxy SELECT public.ST_Centroid(geom) FROM public._ST_pixelaspolygons($1, NULL, $2, $3) 9  AEst_pixelascentroids BzDfisCcC@9iiioooo rast band`exclude_nodata_value geomvalxy({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 523036 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 523077 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT public.ST_Centroid(geom), val, x, y FROM public._ST_pixelaspolygons($1, $2, NULL, NULL, $3) 9  '@Est_pixelaspoint Bfis@C[ rastxy SELECT ST_PointN(ST_ExteriorRing(geom), 1) FROM public._ST_pixelaspolygons($1, NULL, $2, $3) 9  ?Est_pixelaspoints BzDfisCcC@9iiioooo rast band`exclude_nodata_value geomvalxy({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 522046 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 522087 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})  SELECT public.ST_PointN( public.ST_ExteriorRing(geom), 1), val, x, y FROM public._ST_pixelaspolygons($1, $2, NULL, NULL, $3) 9  '>Est_pixelaspolygon Bfis@C[ rastxy SELECT geom FROM public._ST_pixelaspolygons($1, NULL, $2, $3) 9  =Est_pixelaspolygons BzDfisCcC@9iiioooo rast band`exclude_nodata_value geomvalxy({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 521136 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 521177 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT geom, val, x, y FROM public._ST_pixelaspolygons($1, $2, NULL, NULL, $3) 9  } {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 520806 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 520850 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})1RASTER_getPixelPolygons-$libdir/rtpostgis-2.5R  h>P*0<(Hx(H$.(h@` @`p9  nEraster_overlap BfisCCselect $1::public.geometry OPERATOR(public.&&) $2::public.geometry9  mEraster_contain BfisCCcselect $1::public.geometry ~ $2::public.geometry9  lEraster_contained BfisCCselect $1::public.geometry OPERATOR(public.@) $2::public.geometry9  kEraster_same BfisCCeselect $1::public.geometry ~= $2::public.geometry9  jEraster_below BfisCCgselect $1::public.geometry <<| $2::public.geometry9  iEraster_above BfisCCgselect $1::public.geometry |>> $2::public.geometry9  hEraster_overbelow BfisCCgselect $1::public.geometry &<| $2::public.geometry9  gEraster_overabove BfisCCgselect $1::public.geometry |&> $2::public.geometry9  fEraster_right BfisCCeselect $1::public.geometry >> $2::public.geometry9  eEraster_left BfisCCeselect $1::public.geometry << $2::public.geometry9  dEraster_overright BfisCCeselect $1::public.geometry &> $2::public.geometry9  cEraster_overleft BfisCCeselect $1::public.geometry &< $2::public.geometry9  ]Eraster_eq BfisCCs SELECT public.raster_hash($1) = public.raster_hash($2) 9  \Eraster_hash ?fispChashvarlena9  XEbytea ?fispC!RASTER_to_bytea-$libdir/rtpostgis-2.59   gWEst_ashexwkb ?fisCK,outasint({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 536735 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})!RASTER_asHexWKB-$libdir/rtpostgis-2.59   gVEst_asbinary BfisCK,outasint({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 536491 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})C SELECT public.ST_AsWKB($1, $2) 9   gUEst_aswkb ?fisCK,outasint({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 536203 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})RASTER_asWKB-$libdir/rtpostgis-2.59   TEst_rastfromhexwkb ?fisCp%RASTER_fromHexWKB-$libdir/rtpostgis-2.59   SEst_rastfromwkb ?fisCpRASTER_fromWKB-$libdir/rtpostgis-2.59  'REst_minpossiblevalue ?fispK4pixeltype1RASTER_minPossibleValue-$libdir/rtpostgis-2.59  'QEst_rastertoworldcoordy BfisCK rastyr SELECT latitude FROM public._ST_rastertoworldcoord($1, NULL, $2) 9  'PEst_rastertoworldcoordy BfisC[ rastxryr SELECT latitude FROM public._ST_rastertoworldcoord($1, $2, $3) 9  'OEst_rastertoworldcoordx BfisCK rastxr SELECT longitude FROM public._ST_rastertoworldcoord($1, $2, NULL) 9  'NEst_rastertoworldcoordx BfisC[ rastxryr SELECT longitude FROM public._ST_rastertoworldcoord($1, $2, $3) 9  ?MEst_rastertoworldcoord BfisCSC5iiioo rast,columnx rowy4longitude0latitude SELECT longitude, latitude FROM public._ST_rastertoworldcoord($1, $2, $3) 9  LE_st_rastertoworldcoord ?fisCSC5iiioo rast,columnx rowy4longitude0latitude4({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 530913 :constvalue <>} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 530940 :constvalue <>})5RASTER_rasterToWorldCoord-$libdir/rtpostgis-2.59  'KEst_worldtorastercoordy 4BfisC@K rastpt@ DECLARE yr integer; BEGIN IF ( st_geometrytype(pt) != 'ST_Point' ) THEN RAISE EXCEPTION 'Attempting to compute raster coordinate with a non-point geometry'; END IF; IF ST_SRID(rast) != ST_SRID(pt) THEN RAISE EXCEPTION 'Raster and geometry do not have the same SRID'; END IF; SELECT rowy INTO yr FROM public._ST_worldtorastercoord($1, st_x(pt), st_y(pt)); RETURN yr; END; `  (Hpr BА:Xȇvh>6`<9  E_st_union_transfn ?fisC+RASTER_union_transfn-$libdir/rtpostgis-2.59  'E_st_touches zDfisCC$rast1(nband1$rast2(nband2RASTER_touches-$libdir/rtpostgis-2.59  'Est_overlaps zDfisCC[$rast1$rast2 SELECT public.st_overlaps($1, NULL::integer, $2, NULL::integer) 9  'Est_overlaps zDfisCC$rast1(nband1$rast2(nband2 SELECT $1 OPERATOR(public.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN public._st_overlaps(public.st_convexhull($1), public.st_convexhull($3)) ELSE public._ST_overlaps($1, $2, $3, $4) END 9  'E_st_overlaps zDfiuCC$rast1(nband1$rast2(nband2!RASTER_overlaps-$libdir/rtpostgis-2.59   'Est_intersects zDfisC@c rast$nband geom SELECT $1::public.geometry OPERATOR(public.&&) $3 AND public._st_intersects($3, $1, $2) 9   gEst_intersects zDfisC@c rast geom$nband$({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 554845 :constvalue <>}) SELECT $1::public.geometry OPERATOR(public.&&) $2 AND public._st_intersects($2, $1, $3) 9   gEst_intersects zDfis@Cc geom rast$nband$({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 554399 :constvalue <>}) SELECT $1 OPERATOR(public.&&) $2::public.geometry AND public._st_intersects($1, $2, $3); 9   gE_st_intersects 4zDfis@Cc geom rast$nband$({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 553452 :constvalue <>}) DECLARE hasnodata boolean := TRUE; _geom public.geometry; BEGIN IF public.ST_SRID(rast) != public.ST_SRID(geom) THEN RAISE EXCEPTION 'Raster and geometry do not have the same SRID'; END IF; _geom := public.ST_ConvexHull(rast); IF nband IS NOT NULL THEN SELECT CASE WHEN bmd.nodatavalue IS NULL THEN FALSE ELSE NULL END INTO hasnodata FROM public.ST_BandMetaData(rast, nband) AS bmd; END IF; IF public.ST_Intersects(geom, _geom) IS NOT TRUE THEN RETURN FALSE; ELSEIF nband IS NULL OR hasnodata IS FALSE THEN RETURN TRUE; END IF; SELECT public.ST_Buffer(public.ST_Collect(t.geom), 0) INTO _geom FROM public.ST_PixelAsPolygons(rast, nband) AS t; RETURN public.ST_Intersects(geom, _geom); END; 9   'Est_intersects zDfisCC[$rast1$rast2 SELECT public.st_intersects($1, NULL::integer, $2, NULL::integer) 9  'Est_intersects zDfisCC$rast1(nband1$rast2(nband2, SELECT $1 OPERATOR(public.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN public._st_intersects(public.st_convexhull($1), public.st_convexhull($3)) ELSE public._st_intersects($1, $2, $3, $4) END 9  'E_st_intersects zDfisCC$rast1(nband1$rast2(nband2%RASTER_intersects-$libdir/rtpostgis-2.59  'Est_iscoveragetile 4BfisCC rast0coverage4tilewidth8tileheight DECLARE _rastmeta re cord;cov cr max integer[]tile edg BEGIN IF NOT public.ST_SameAlignment(, coverage) THE6 RAISE:ICE 'Raster and+ are not aLed' RETURN FALSEEND IF; :=Metadata)(V-- getgriordinates of upper-leftha `WorldToCAj, .L5Kxy is#par{Q/(cr.columnx < 1 OR >  .width) OR6rowy30height0)  inp then't o >s - 1) % ! != 0?'($ toB#1s#5BsX"Y formax[0]!Lceil(::double precisi0on /)::44[1[\ ]n) + 1E )tinnerChF<s AND11]F#S (7{&G#O &'F%Y /QP/=is invalid"L8rio/_.` ELSaTRU$z-R*  may have same size| a[2S)(AND %'6v Qo13Gd$S;'` - ((2*e$b<;1 ;JB of expectA$ADTbottom+=///$//,-most/'LSE37$ &O-7;END; 9  'Est_notsamealignmentreason ?fisCC[$rast1$rast2=RASTER_notSameAlignmentReason-$libdir/rtpostgis-2.59  Est_samealignment ?aispC!aggregate_dummy9  'E_st_samealignment_finalfn BfispE;agg) SELECT $1.aligned 9  'E_st_samealignment_transfn 4BfisEECKagg rastH DECLARE m record; aligned boolean; BEGIN IF agg IS NULL THEN agg.refraster := NULL; agg.aligned := NULL; END IF; IF rast IS NULL THEN agg.aligned := NULL; ELSE IF agg.refraster IS NULL THEN m := ST_Metadata(rast); agg.refraster := ST_MakeEmptyRaster(1, 1, m.upperleftx, m.upperlefty, m.scalex, m.scaley, m.skewx, m.skewy, m.srid); agg.aligned := TRUE; ELSIF agg.aligned IS TRUE THEN agg.aligned := ST_SameAlignment(agg.refraster, rast); END IF; END IF; RETURN agg; END; 9  'Est_samealignment Bfis   `  ulx1 uly1,scalex1,scaley1(skewx1(skewy1 ulx2 uly2,scalex2,scaley2(skewx2(skewy2 SELECT st_samealignment(st_makeemptyraster(1, 1, $1, $2, $3, $4, $5, $6), st_makeemptyraster(1, 1, $7, $8, $9, $10, $11, $12)) ot8  84>06NFȓ:~2ȏ@8LЈ2\(\fx8<  ^Fdblink_is_busy ?fvrpdblink_is_busy$libdir/dblink9  Est_union ?aisCC!aggregate_dummy9  'E_st_dfullywithin zDfisCC$rast1(nband1$rast2(nband20distance)RASTER_dfullywithin-$libdir/rtpostgis-2.59  'Est_dwithin zDfisCCs$rast1$rast20distance SELECT public.st_dwithin($1, NULL::integer, $2, NULL::integer, $3) 9  'Est_dwithin zDfisCC$rast1(nband1$rast2(nband20distance SELECT $1::public.geometry OPERATOR(public.&&) public.ST_Expand(public.ST_ConvexHull($3), $5) AND $3::public.geometry OPERATOR(public.&&) public.ST_Expand(public.ST_ConvexHull($1), $5) AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN public._ST_dwithin(public.st_convexhull($1), public.st_convexhull($3), $5) ELSE public._ST_dwithin($1, $2, $3, $4, $5) END 9  'E_st_dwithin zDfisCC$rast1(nband1$rast2(nband20distanceRASTER_dwithin-$libdir/rtpostgis-2.59  'Est_within zDfisCC[$rast1$rast2 SELECT public.st_within($1, NULL::integer, $2, NULL::integer) 9  'Est_within zDfisCC$rast1(nband1$rast2(nband2 SELECT $1 OPERATOR(public.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN public._st_within(public.st_convexhull($1), public.st_convexhull($3)) ELSE public._st_contains($3, $4, $1, $2) END 9  'E_st_within zDfisCC$rast1(nband1$rast2(nband2[ SELECT public._st_contains($3, $4, $1, $2) 9  'Est_coveredby zDfisCC[$rast1$rast2 SELECT public.st_coveredby($1, NULL::integer, $2, NULL::integer) 9   'Est_coveredby zDfisCC$rast1(nband1$rast2(nband2$ SELECT $1 OPERATOR(public.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN public._st_coveredby(public.st_convexhull($1), public.st_convexhull($3)) ELSE public._st_coveredby($1, $2, $3, $4) END 9   'E_st_coveredby zDfisCC$rast1(nband1$rast2(nband2#RASTER_coveredby-$libdir/rtpostgis-2.59   'Est_covers zDfisCC[$rast1$rast2 SELECT public.st_covers($1, NULL::integer, $2, NULL::integer) 9   'Est_covers zDfisCC$rast1(nband1$rast2(nband2  SELECT $1 OPERATOR(public.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN public._st_covers(public.st_convexhull($1), public.st_convexhull($3)) ELSE public._st_covers($1, $2, $3, $4) END 9   'E_st_covers zDfisCC$rast1(nband1$rast2(nband2RASTER_covers-$libdir/rtpostgis-2.59  'Est_containsproperly zDfisCC[$rast1$rast2 SELECT public.st_containsproperly($1, NULL::integer, $2, NULL::integer) 9  'Est_containsproperly zDfisCC$rast1(nband1$rast2(nband2\ SELECT $1 OPERATOR(public.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN public._st_containsproperly(public.st_convexhull($1), public.st_convexhull($3)) ELSE public._st_containsproperly($1, $2, $3, $4) END 9  'E_st_containsproperly zDfisCC$rast1(nband1$rast2(nband21RASTER_containsProperly-$libdir/rtpostgis-2.59  'Est_contains zDfisCC[$rast1$rast2 SELECT public.st_contains($1, NULL::integer, $2, NULL::integer) 9  'Est_contains zDfisCC$rast1(nband1$rast2(nband2 SELECT $1 OPERATOR(public.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN public._st_contains(public.st_convexhull($1), public.st_convexhull($3)) ELSE public._st_contains($1, $2, $3, $4) END 9  'E_st_contains zDfiuCC$rast1(nband1$rast2(nband2!RASTER_contains-$libdir/rtpostgis-2.59  'Est_touches zDfisCC[$rast1$rast2 SELECT public.st_touches($1, NULL::integer, $2, NULL::integer) 9  'Est_touches zDfisCC$rast1(nband1$rast2(nband2 SELECT $1 OPERATOR(public.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN public._st_touches(public.st_convexhull($1), public.st_convexhull($3)) ELSE public._st_touches($1, $2, $3, $4) END ɒ`   HfTx6p ``F P@ЄNd x9  Est_union ?aisCCE!aggregate_dummy9  E_st_union_transfn ?fisCE+RASTER_union_transfn-$libdir/rtpostgis-2.59  E_st_union_finalfn ?fisCp+RASTER_union_finalfn-$libdir/rtpostgis-2.59  'Est_intersection BfisCCC{$rast1$rast24nodataval SELECT public.st_intersection($1, 1, $2, 1, 'BOTH', ARRAY[$3, $3]) 9  'Est_intersection BfisCCC{$rast1$rast24nodatavalu SELECT public.st_intersection($1, 1, $2, 1, 'BOTH', $3) 9   'Est_intersection BfisCCC$rast1$rast28returnband4nodataval SELECT public.st_intersection($1, 1, $2, 1, $3, ARRAY[$4, $4]) 9   gEst_intersection BfisCCC$rast1$rast28returnband4nodataval({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 570143 :constvalue 8 [ 32 0 0 0 66 79 84 72 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 570189 :constvalue <>})m SELECT public.st_intersection($1, 1, $2, 1, $3, $4) 9   'Est_intersection BfisCCC$rast1$band1$rast2$band24nodataval SELECT public.st_intersection($1, $2, $3, $4, 'BOTH', ARRAY[$5, $5]) 9   'Est_intersection BfisCCC$rast1$band1$rast2$band24nodatavaly SELECT public.st_intersection($1, $2, $3, $4, 'BOTH', $5) 9   'Est_intersection BfisCCC$rast1$band1$rast2$band28returnband4nodataval SELECT public.st_intersection($1, $2, $3, $4, $5, ARRAY[$6, $6]) 9  gEst_intersection 4BfssCCC$rast1$band1$rast2$band28returnband4nodataval({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 567348 :constvalue 8 [ 32 0 0 0 66 79 84 72 ]} {CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 567394 :constvalue <>})>  DECLARE rtn raster; _returnband textnewnodata1 flPoat8 2BEGIN IF ST_SRID(Z1) != 2) THE+ RAISE EXCEPTION 'The twos do not have the same J'END IF; := coalesce(val[1],BandN Value, 1)"MinPossible#public.=PixelTypY ;))22=K2!;:= upper(%:= NUL"LCAS! WHEN A= 'BAND1';MapAlgebraExpr,, '[.val]',D] , 'INTERSEC!'', y::! Settn, 1=2;2()>2*=OTH/-/&6Add6+/ 2/ELC<_Unknown v@ provided for '5: %',RETURNFQABrtn; ; 9  'Est_intersection BzDfisCC@S rast(geominW SELECT public.ST_Intersection($2, $1, 1) 9  'Est_intersection BzDfisCC@c rast band(geominY SELECT public.ST_Intersection($3, $1, $2) 9  gEst_intersection 4BzDfisC@Cc(geomin rast bandt({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 565661 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) DECLARE intersects boolean := FALSE; BEGIN intersects := public.ST_Intersects(geomin, rast, band); IF intersects THEN -- Return the intersections of the geometry with the vectorized parts of -- the raster and the values associated with those parts, if really their -- intersection is not empty. RETURN QUERY SELECT intgeom, val FROM ( SELECT public.ST_Intersection((gv).geom, geomin) AS intgeom, (gv).val FROM public.ST_DumpAsPolygons(rast, band) gv WHERE public.ST_Intersects((gv).geom, geomin) ) foo WHERE NOT public.ST_IsEmpty(intgeom); ELSE -- If the geometry does not intersect with the raster, return an empty -- geometry and a null value RETURN QUERY SELECT emptygeom, NULL::float8 FROM public.ST_GeomCollFromText('GEOMETRYCOLLECTION EMPTY', ST_SRID($1)) emptygeom; END IF; END; 9  'Est_disjoint zDfisCC[$rast1$rast2 SELECT public.ST_Disjoint($1, NULL::integer, $2, NULL::integer) 9  'Est_disjoint zDfisCC$rast1(nband1$rast2(nband2 SELECT CASE WHEN $2 IS NULL OR $4 IS NULL THEN public.ST_Disjoint(public.ST_ConvexHull($1), public.ST_ConvexHull($3)) ELSE NOT public._ST_intersects($1, $2, $3, $4) END 9  'Est_dfullywithin zDfisCCs$rast1$rast20distance SELECT public.ST_DFullyWithin($1, NULL::integer, $2, NULL::integer, $3) 9  'Est_dfullywithin zDfisCC$rast1(nband1$rast2(nband20distance SELECT $1::public.geometry OPERATOR(public.&&) public.ST_Expand(public.ST_ConvexHull($3), $5) AND $3::public.geometry OPERATOR(public.&&) public.ST_Expand(public.ST_ConvexHull($1), $5) AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN public._ST_DFullyWithin(public.ST_ConvexHull($1), public.ST_Convexhull($3), $5) ELSE public._ST_DFullyWithin($1, $2, $3, $4, $5) END T  hh ؔБBPjph9  'E_add_raster_constraint_spatially_unique 4Bfvu8rastschema4rasttable8rastcolumn| DECLARE fqtn text; cn name; sql text; attr text; meta record; BEGIN fqtn := ''; IF length($1) > 0 THEN fqtn := quote_ident($1) || '.'; END IF; fqtn := fqtn || quote_ident($2); cn := 'enforce_spatially_unique_' || quote_ident($2) || '_'|| $3; sql := 'ALTER TABLE ' || fqtn || ' ADD CONSTRAINT ' || quote_ident(cn) || ' EXCLUDE ((' || quote_ident($3) || '::public.geometry) WITH =)'; RETURN public._add_raster_constraint(cn, sql); END; 9  gEst_neighborhood BfisC rast,columnx rowy4distancex4distancey`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 578494 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})y SELECT public._ST_neighborhood($1, 1, $2, $3, $4, $5, $6) 9   gEst_neighborhood BfisC rast band,columnx rowy4distancex4distancey`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 578172 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}){ SELECT public._ST_neighborhood($1, $2, $3, $4, $5, $6, $7) 9   gE_st_neighborhood ?fisC rast band,columnx rowy4distancex4distancey`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 577856 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}))RASTER_neighborhood-$libdir/rtpostgis-2.59   gEst_nearestvalue BfisC rast,columnx rowy`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 577231 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT public.st_nearestvalue($1, 1, public.st_setsrid(public.st_makepoint(public.st_rastertoworldcoordx($1, $2, $3), public.st_rastertoworldcoordy($1, $2, $3)), public.st_srid($1)), $4) 9   gEst_nearestvalue BfisC rast band,columnx rowy`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 576823 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT public.st_nearestvalue($1, $2, public.st_setsrid(public.st_makepoint(public.st_rastertoworldcoordx($1, $3, $4), public.st_rastertoworldcoordy($1, $3, $4)), public.st_srid($1)), $5) 9   gEst_nearestvalue BfisC@{ rastpt`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 576551 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})Q SELECT st_nearestvalue($1, 1, $2, $3) 9  gEst_nearestvalue ?fisC@ rast bandpt`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 576310 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}))RASTER_nearestValue-$libdir/rtpostgis-2.59  'Est_clip BfisCC@[ rast geom crop SELECT public.ST_Clip($1, NULL, $2, null::double precision[], $3) 9  gEst_clip BfisCC@{ rast geom4nodataval cropt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 575637 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT public.ST_Clip($1, NULL, $2, ARRAY[$3]::double precision[], $4) 9  gEst_clip BfisCC@{ rast geom4nodataval crop({CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 575352 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 575379 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})] SELECT public.ST_Clip($1, NULL, $2, $3, $4) 9  'Est_clip BfisCC@s rast$nband geom crop SELECT public.ST_Clip($1, ARRAY[$2]::integer[], $3, null::double precision[], $4) 9  gEst_clip BfisCC@ rast$nband geom4nodataval cropt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 574793 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT public.ST_Clip($1, ARRAY[$2]::integer[], $3, ARRAY[$4]::double precision[], $5) 9  gEst_clip 4BfisCC@ rast$nband geom4nodataval crop({CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 574260 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 574287 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})X BEGIN -- short-cut if geometry's extent fully contains raster's extent IF (nodataval IS NULL OR array_length(nodataval, 1) < 1) AND public.ST_Contains(geom, public.ST_Envelope(rast)) THEN RETURN rast; END IF; RETURN public._ST_Clip($1, $2, $3, $4, $5); END; 9  gE_st_clip ?fisCC@ rast$nband geom4nodataval crop({CONST :consttype 1022 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 573965 :constvalue <>} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 573992 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})RASTER_clip-$libdir/rtpostgis-2.5!Dh  ؛N0l(PHz( 8h<   MFdblink ?zDfvrdblink_record$libdir/dblink9   'E_drop_raster_constraint_scale 4Bfvu8rastschema4rasttable8rastcolumn axis BEGIN IF lower($4) != 'x' AND lower($4) != 'y' THEN RAISE EXCEPTION 'axis must be either "x" or "y"'; RETURN FALSE; END IF; RETURN public._drop_raster_constraint($1, $2, 'enforce_scale' || $4 || '_' || $3); END; 9   'E_add_raster_constraint_scale 4Bfvu8rastschema4rasttable8rastcolumn axis DECLARE fqtn text; cn name; sql text; attr double precision; BEGIN IF lower($4) != 'x' AND lower($4) != 'y' THEN RAISE EXCEPTION 'axis must be either "x" or "y"'; RETURN FALSE; END IF; fqtn := ''; IF length($1) > 0 THEN fqtn := quote_ident($1) || '.'; END IF; fqtn := fqtn || quote_ident($2); cn := 'enforce_scale' || $4 || '_' || $3; sql := 'SELECT public.st_scale' || $4 || '(' || quote_ident($3) || ') FROM ' || fqtn || ' LIMIT 1'; BEGIN EXECUTE sql INTO attr; EXCEPTION WHEN OTHERS THEN RAISE NOTICE 'Unable to get the %-scale of a sample raster: % (%)', upper($4), SQLERRM, SQLSTATE; RETURN FALSE; END; sql := 'ALTER TABLE ' || fqtn || ' ADD CONSTRAINT ' || quote_ident(cn) || ' CHECK (round(public.st_scale' || $4 || '(' || quote_ident($3) || ')::numeric, 10) = round(' || text(attr) || '::numeric, 10))'; RETURN public._add_raster_constraint(cn, sql); END; 9  'E_raster_constraint_info_scale Bfsu8rastschema4rasttable8rastcolumn axis4 WITH c AS (SELECT regexp_replace( replace( split_part( split_part(s.consrc, ' = ', 2), '::', 1 ), 'round(', '' ), '[ ''''\(\)]', '', 'g' )::text AS val FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND a.attnum = ANY (s.conkey) AND s.consrc LIKE '%st_scale' || $4 || '(% = %') -- if it is a comma separated list of two numbers then need to use round SELECT CASE WHEN split_part(c.val,',', 2) > '' THEN round( split_part(c.val, ',',1)::numeric, split_part(c.val,',',2)::integer )::float8 ELSE c.val::float8 END FROM c; 9  'E_drop_raster_constraint_srid Bfvu8rastschema4rasttable8rastcolumn SELECT public._drop_raster_constraint($1, $2, 'enforce_srid_' || $3) 9  'E_add_raster_constraint_srid 4Bfvu8rastschema4rasttable8rastcolumn< DECLARE fqtn text; cn name; sql text; attr int; BEGIN fqtn := ''; IF length($1) > 0 THEN fqtn := quote_ident($1) || '.'; END IF; fqtn := fqtn || quote_ident($2); cn := 'enforce_srid_' || $3; sql := 'SELECT public.st_srid(' || quote_ident($3) || ') FROM ' || fqtn || ' LIMIT 1'; BEGIN EXECUTE sql INTO attr; EXCEPTION WHEN OTHERS THEN RAISE NOTICE 'Unable to get the SRID of a sample raster: % (%)', SQLERRM, SQLSTATE; RETURN FALSE; END; sql := 'ALTER TABLE ' || fqtn || ' ADD CONSTRAINT ' || quote_ident(cn) || ' CHECK (public.st_srid(' || quote_ident($3) || ') = ' || attr || ')'; RETURN public._add_raster_constraint(cn, sql); END; 9  'E_raster_constraint_info_srid Bfsu8rastschema4rasttable8rastcolumnh SELECT regexp_replace( split_part(s.consrc, ' = ', 2), '[\(\)]', '', 'g' )::integer FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND a.attnum = ANY (s.conkey) AND s.consrc LIKE '%st_srid(% = %'; 9  'E_drop_raster_constraint 4Bfvu{8rastschema4rasttablecn` DECLARE fqtn text; BEGIN fqtn := ''; IF length($1) > 0 THEN fqtn := quote_ident($1) || '.'; END IF; fqtn := fqtn || quote_ident($2); BEGIN EXECUTE 'ALTER TABLE ' || fqtn || ' DROP CONSTRAINT ' || quote_ident(cn); RETURN TRUE; EXCEPTION WHEN undefined_object THEN RAISE NOTICE 'The constraint "%" does not exist. Skipping', cn; WHEN OTHERS THEN RAISE NOTICE 'Unable to drop constraint "%": % (%)', cn, SQLERRM, SQLSTATE; RETURN FALSE; END; RETURN TRUE; END; 9  'E_add_raster_constraint 4BfvuKcnsql BEGIN BEGIN EXECUTE sql; EXCEPTION WHEN duplicate_object THEN RAISE NOTICE 'The constraint "%" already exists. To replace the existing constraint, delete the constraint and call ApplyRasterConstraints again', cn; WHEN OTHERS THEN RAISE NOTICE 'Unable to add constraint: %', cn; RAISE NOTICE 'SQL used for failed constraint: %', sql; RAISE NOTICE 'Returned error message: % (%)', SQLERRM, SQLSTATE; RETURN FALSE; END; RETURN TRUE; END; 9  gEst_neighborhood BfisC@ rastpt4distancex4distancey`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 579665 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})o SELECT public.st_neighborhood($1, 1, $2, $3, $4, $5) 9  gEst_neighborhood 4BfisC@ rast bandpt4distancex4distancey`exclude_nodata_valuet({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 578811 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) DECLARE wx double precision; wy double precision; rtn double precision[][]; BEGIN IF (public.st_geometrytype($3) != 'ST_Point') THEN RAISE EXCEPTION 'Attempting to get the neighbor of a pixel with a non-point geometry'; END IF; IF public.ST_SRID(rast) != public.ST_SRID(pt) THEN RAISE EXCEPTION 'Raster and geometry do not have the same SRID'; END IF; wx := st_x($3); wy := st_y($3); SELECT public._ST_neighborhood( $1, $2, public.st_worldtorastercoordx(rast, wx, wy), public.st_worldtorastercoordy(rast, wx, wy), $4, $5, $6 ) INTO rtn; RETURN rtn; END; DX  x`( `" ȅX~B   Fuuid_nil ?fis `uuid_nil%$libdir/uuid-ossp9   'E_raster_constraint_info_spatially_unique Bfsu8rastschema4rasttable8rastcolumn SELECT TRUE FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conindid, conkey, contype, conexclop, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s , pg_index idx, pg_operator op WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND s.contype = 'x' AND 0::smallint = ANY (s.conkey) AND idx.indexrelid = s.conindid AND pg_get_indexdef(idx.indexrelid, 1, true) LIKE '(' || quote_ident($3) || '::%geometry)' AND s.conexclop[1] = op.oid AND op.oprname = '='; 9   'E_drop_raster_constraint_alignment Bfvu8rastschema4rasttable8rastcolumn SELECT public._drop_raster_constraint($1, $2, 'enforce_same_alignment_' || $3) 9  'E_add_raster_constraint_alignment 4Bfvu8rastschema4rasttable8rastcolumn\ DECLARE fqtn text; cn name; sql text; attr text; BEGIN fqtn := ''; IF length($1) > 0 THEN fqtn := quote_ident($1) || '.'; END IF; fqtn := fqtn || quote_ident($2); cn := 'enforce_same_alignment_' || $3; sql := 'SELECT public.st_makeemptyraster(1, 1, upperleftx, upperlefty, scalex, scaley, skewx, skewy, srid) FROM public.st_metadata((SELECT ' || quote_ident($3) || ' FROM ' || fqtn || ' LIMIT 1))'; BEGIN EXECUTE sql INTO attr; EXCEPTION WHEN OTHERS THEN RAISE NOTICE 'Unable to get the alignment of a sample raster: % (%)', SQLERRM, SQLSTATE; RETURN FALSE; END; sql := 'ALTER TABLE ' || fqtn || ' ADD CONSTRAINT ' || quote_ident(cn) || ' CHECK (public.st_samealignment(' || quote_ident($3) || ', ''' || attr || '''::raster))'; RETURN public._add_raster_constraint(cn, sql); END; 9  'E_raster_constraint_info_alignment Bfsu8rastschema4rasttable8rastcolumn0 SELECT TRUE FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND a.attnum = ANY (s.conkey) AND s.consrc LIKE '%st_samealignment(%'; 9  'E_drop_raster_constraint_extent Bfvu8rastschema4rasttable8rastcolumn SELECT public._drop_raster_constraint($1, $2, 'enforce_max_extent_' || $3) 9  'E_add_raster_constraint_extent 4 Ffvu8rastschema4rasttable8rastcolumnd DECLARE fqtn text; cn name; sql text; attr text; srid integer; BEGIN fqtn := ''; IF length($1) > 0 THEN fqtn := quote_ident($1) || '.'; END IF; fqtn := fqtn || quote_ident($2); sql := 'SELECT public.ST_SRID(' || quote_ident($3) || ') FROM ' || fqtn || ' LIMIT 1;'; EXECUTE sql INTO srid; cn := 'enforce_max_extent_' || $3; sql := 'SELECT public.st_ashexewkb( public.st_setsrid( public.st_extent( public.st_envelope(' || quote_ident($3) || ')), ' || srid || ')) FROM ' || fqtn; EXECUTE sql INTO attr; -- NOTE: I put NOT VALID to prevent the costly step of validating the constraint sql := 'ALTER TABLE ' || fqtn || ' ADD CONSTRAINT ' || quote_ident(cn) || ' CHECK ( public.st_envelope(' || quote_ident($3) || ') @ ''' || attr || '''::geometry) NOT VALID'; RETURN public._add_raster_constraint(cn, sql); END; 9  'E_raster_constraint_info_extent Bfsu@8rastschema4rasttable8rastcolumn SELECT trim(both '''' from split_part(trim(split_part(s.consrc, ' @ ', 2)), '::', 1))::public.geometry FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND a.attnum = ANY (s.conkey) AND s.consrc LIKE '%st_envelope(% @ %'; 9  'E_drop_raster_constraint_blocksize 4Bfvu8rastschema4rasttable8rastcolumn axis BEGIN IF lower($4) != 'width' AND lower($4) != 'height' THEN RAISE EXCEPTION 'axis must be either "width" or "height"'; RETURN FALSE; END IF; RETURN public._drop_raster_constraint($1, $2, 'enforce_' || $4 || '_' || $3); END; 9  'E_add_raster_constraint_blocksize 4Bfvu8rastschema4rasttable8rastcolumn axis@ DECLARE fqtn text; cn name; sql text; attrset integer[]; attr integer; BEGIN IF lower($4) != 'width' AND lower($4) != 'height' THEN RAISE EXCEPTION 'axis must be either "width" or "height"'; RETURN FALSE; END IF; fqtn := ''; IF length($1) > 0 THEN fqtn := quote_ident($1) || '.'; END IF; fqtn := fqtn || quote_ident($2); cn := 'enforce_' || $4 || '_' || $3; sql := 'SELECT st_' || $4 || '(' || quote_ident($3) || ') FROM ' || fqtn || ' GROUP BY 1 ORDER BY count(*) DESC'; BEGIN attrset := ARRAY[]::integer[]; FOR attr IN EXECUTE sql LOOP attrset := attrset || attr; END LOOP; EXCEPTION WHEN OTHERS THEN RAISE NOTICE 'Unable to get the % of a sample raster: % (%)', $4, SQLERRM, SQLSTATE; RETURN FALSE; END; sql := 'ALTER TABLE ' || fqtn || ' ADD CONSTRAINT ' || quote_ident(cn) || ' CHECK (st_' || $4 || '(' || quote_ident($3) || ') IN (' || array_to_string(attrset, ',') || '))'; RETURN public._add_raster_constraint(cn, sql); END; 9  'E_raster_constraint_info_blocksize Bfsu8rastschema4rasttable8rastcolumn axis SELECT CASE WHEN strpos(s.consrc, 'ANY (ARRAY[') > 0 THEN split_part((substring(s.consrc FROM E'ARRAY\\[(.*?){1}\\]')), ',', 1)::integer ELSE regexp_replace( split_part(s.consrc, '= ', 2), '[\(\)]', '', 'g' )::integer END FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND a.attnum = ANY (s.conkey) AND s.consrc LIKE '%st_' || $4 || '(%= %'; +P    pJp:؁<  PFdblink ?zDfvrdblink_record$libdir/dblink<   OFdblink ?zDfvrpdblink_record$libdir/dblink<   NFdblink ?zDfvrdblink_record$libdir/dblink9   'E_raster_constraint_pixel_types BfsupC; rast SELECT array_agg(pixeltype)::text[] FROM public.ST_BandMetaData($1, ARRAY[]::int[]); 9   'E_raster_constraint_info_pixel_types Bfsu8rastschema4rasttable8rastcolumn SELECT trim( both '''' from split_part( regexp_replace( split_part(s.consrc, ' = ', 2), '[\(\)]', '', 'g' ), '::', 1 ) )::text[] FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND a.attnum = ANY (s.conkey) AND s.consrc LIKE '%_raster_constraint_pixel_types(%'; 9   'E_drop_raster_constraint_num_bands Bfvu8rastschema4rasttable8rastcolumn SELECT public._drop_raster_constraint($1, $2, 'enforce_num_bands_' || $3) 9  'E_add_raster_constraint_num_bands 4Bfvu8rastschema4rasttable8rastcolumn DECLARE fqtn text; cn name; sql text; attr int; BEGIN fqtn := ''; IF length($1) > 0 THEN fqtn := quote_ident($1) || '.'; END IF; fqtn := fqtn || quote_ident($2); cn := 'enforce_num_bands_' || $3; sql := 'SELECT public.st_numbands(' || quote_ident($3) || ') FROM ' || fqtn || ' LIMIT 1'; BEGIN EXECUTE sql INTO attr; EXCEPTION WHEN OTHERS THEN RAISE NOTICE 'Unable to get the number of bands of a sample raster: % (%)', SQLERRM, SQLSTATE; RETURN FALSE; END; sql := 'ALTER TABLE ' || fqtn || ' ADD CONSTRAINT ' || quote_ident(cn) || ' CHECK (public.st_numbands(' || quote_ident($3) || ') = ' || attr || ')'; RETURN public._add_raster_constraint(cn, sql); END; 9  'E_raster_constraint_info_num_bands Bfsu8rastschema4rasttable8rastcolumn\ SELECT regexp_replace( split_part(s.consrc, ' = ', 2), '[\(\)]', '', 'g' )::integer FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND a.attnum = ANY (s.conkey) AND s.consrc LIKE '%st_numbands(%'; 9  'E_drop_raster_constraint_regular_blocking Bfvu8rastschema4rasttable8rastcolumn SELECT public._drop_raster_constraint($1, $2, 'enforce_regular_blocking_' || $3) 9  'E_raster_constraint_info_regular_blocking 4Bfsu8rastschema4rasttable8rastcolumn DECLARE covtile boolean; spunique boolean; BEGIN -- check existance of constraints -- coverage tile constraint covtile := COALESCE( public._raster_constraint_info_coverage_tile($1, $2, $3), FALSE); -- spatially unique constraint spunique := COALESCE( public._raster_constraint_info_spatially_unique($1, $2, $3), FALSE); RETURN (covtile AND spunique); END; 9  'E_drop_raster_constraint_coverage_tile Bfvu8rastschema4rasttable8rastcolumn SELECT public._drop_raster_constraint($1, $2, 'enforce_coverage_tile_' || $3) 9  'E_add_raster_constraint_coverage_tile 4Bfvu8rastschema4rasttable8rastcolumnv} DECLARE fqtn text; cn name sql _scalex double precision)ykew7kew6tilewidth in tegerheight alignment b@ooleanc ovextge@ometry.covrast AABEGIN:= ''(IF length($1) > 0 T HE'(quote_ident$ || '. 0 THEN fqtn := quote_ident($1) || '.'; END IF; fqtn := fqtn || quote_ident($2); cn := 'enforce_out_db_' || $3; sql := 'SELECT public._raster_constraint_out_db(' || quote_ident($3) || ') FROM ' || fqtn || ' LIMIT 1'; BEGIN EXECUTE sql INTO attr; EXCEPTION WHEN OTHERS THEN RAISE NOTICE 'Unable to get the out-of-database bands of a sample raster: % (%)', SQLERRM, SQLSTATE; RETURN FALSE; END; max := array_length(attr, 1); IF max < 1 OR max IS NULL THEN RAISE NOTICE 'Unable to get the out-of-database bands of a sample raster (max < 1 or null)'; RETURN FALSE; END IF; sql := 'ALTER TABLE ' || fqtn || ' ADD CONSTRAINT ' || quote_ident(cn) || ' CHECK ( public._raster_constraint_out_db(' || quote_ident($3) || ') = ''{'; FOR x in 1..max LOOP IF attr[x] IS FALSE THEN sql := sql || 'FALSE'; ELSE sql := sql || 'TRUE'; END IF; IF x < max THEN sql := sql || ','; END IF; END LOOP; sql := sql || '}''::boolean[])'; RETURN public._add_raster_constraint(cn, sql); END; 9  'F_raster_constraint_out_db BfispC; rast SELECT array_agg(isoutdb)::boolean[] FROM public.ST_BandMetaData($1, ARRAY[]::int[]); 9  'F_raster_constraint_info_out_db Bfsu8rastschema4rasttable8rastcolumn SELECT trim( both '''' from split_part( regexp_replace( split_part(s.consrc, ' = ', 2), '[\(\)]', '', 'g' ), '::', 1 ) )::boolean[] FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND a.attnum = ANY (s.conkey) AND s.consrc LIKE '%_raster_constraint_out_db(%'; 9  'F_drop_raster_constraint_nodata_values Bfvu8rastschema4rasttable8rastcolumn SELECT public._drop_raster_constraint($1, $2, 'enforce_nodata_values_' || $3) 9  'F_add_raster_constraint_nodata_values 4Bfvu8rastschema4rasttable8rastcolumn DECLARE fqtn text; cn name; sql text; attr numeric[]; max int; BEGIN fqtn := ''; IF length($1) > 0 THEN fqtn := quote_ident($1) || '.'; END IF; fqtn := fqtn || quote_ident($2); cn := 'enforce_nodata_values_' || $3; sql := 'SELECT public._raster_constraint_nodata_values(' || quote_ident($3) || ') FROM ' || fqtn || ' LIMIT 1'; BEGIN EXECUTE sql INTO attr; EXCEPTION WHEN OTHERS THEN RAISE NOTICE 'Unable to get the nodata values of a sample raster: % (%)', SQLERRM, SQLSTATE; RETURN FALSE; END; max := array_length(attr, 1); IF max < 1 OR max IS NULL THEN RAISE NOTICE 'Unable to get the nodata values of a sample raster (max < 1 or null)'; RETURN FALSE; END IF; sql := 'ALTER TABLE ' || fqtn || ' ADD CONSTRAINT ' || quote_ident(cn) || ' CHECK (_raster_constraint_nodata_values(' || quote_ident($3) || ')::numeric[] = ''{'; FOR x in 1..max LOOP IF attr[x] IS NULL THEN sql := sql || 'NULL'; ELSE sql := sql || attr[x]; END IF; IF x < max THEN sql := sql || ','; END IF; END LOOP; sql := sql || '}''::numeric[])'; RETURN public._add_raster_constraint(cn, sql); END; 9  'E_raster_constraint_nodata_values BfispC; rast SELECT array_agg(round(nodatavalue::numeric, 10))::numeric[] FROM public.ST_BandMetaData($1, ARRAY[]::int[]); 9  'E_raster_constraint_info_nodata_values Bfsu8rastschema4rasttable8rastcolumn SELECT trim(both '''' from split_part( regexp_replace( split_part(s.consrc, ' = ', 2), '[\(\)]', '', 'g' ), '::', 1 ) )::double precision[] FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND a.attnum = ANY (s.conkey) AND s.consrc LIKE '%_raster_constraint_nodata_values(%'; 9  'E_drop_raster_constraint_pixel_types Bfvu8rastschema4rasttable8rastcolumn SELECT public._drop_raster_constraint($1, $2, 'enforce_pixel_types_' || $3) 9  'E_add_raster_constraint_pixel_types 4Bfvu8rastschema4rasttable8rastcolumnd DECLARE fqtn text; cn name; sql text; attr text[]; max int; BEGIN fqtn := ''; IF length($1) > 0 THEN fqtn := quote_ident($1) || '.'; END IF; fqtn := fqtn || quote_ident($2); cn := 'enforce_pixel_types_' || $3; sql := 'SELECT public._raster_constraint_pixel_types(' || quote_ident($3) || ') FROM ' || fqtn || ' LIMIT 1'; BEGIN EXECUTE sql INTO attr; EXCEPTION WHEN OTHERS THEN RAISE NOTICE 'Unable to get the pixel types of a sample raster: % (%)', SQLERRM, SQLSTATE; RETURN FALSE; END; max := array_length(attr, 1); IF max < 1 OR max IS NULL THEN RAISE NOTICE 'Unable to get the pixel types of a sample raster (max < 1 or null)'; RETURN FALSE; END IF; sql := 'ALTER TABLE ' || fqtn || ' ADD CONSTRAINT ' || quote_ident(cn) || ' CHECK (public._raster_constraint_pixel_types(' || quote_ident($3) || ') = ''{'; FOR x in 1..max LOOP sql := sql || '"' || attr[x] || '"'; IF x < max THEN sql := sql || ','; END IF; END LOOP; sql := sql || '}''::text[])'; RETURN public._add_raster_constraint(cn, sql); END; ݔ4  Php9  ? Fdroprasterconstraints BfvuC1iiv4rasttable8rastcolumn<constraints SELECT public.DropRasterConstraints('', $1, $2, VARIADIC $3) 9  ? Fdroprasterconstraints 4BfvuK3iiiv8rastschema4rasttable8rastcolumn<constraints DECLARE max int;  schema nameql t$exkw rtn boolea"ncnt@BEGIN:= 0g:= array_length(constraints, 1")'IF *< 1 THEE RAISE NOTICE 'No 7 indicated to be dropped. Doing nothing'\ RETURN TRUEEND IF; -- validate := NULL$1) > 0#:= 'SELECT nsp= FROM pg_ space '. || @'WHERE*= ' || quote_literalf/LIMIT 1EXE CUTE wIN> FOR A 1..!A@LOOP:kw!otrim(both from lowerI}[x]))E CASQ WH EN kwEsrid'MDA~AwpSRIDH4>S3:= public._A_rasPter_/_g(w, $2, $3"lscale_x!L x')s+-X*B ,P 'x' yyY@y,=Qqblock8siz$bwidth86+F "height* /5/l]/~Coame_alignmentBvame  .)D_reg0ular,   X coverage tile requir<f#|f_fIF sPOT,_Dpatially uniqu!_lj_j-num@_bands!num /-er xof 4/)/pixel_type/ 0)nodata_g u+Nr) out_dboutdbout-of-qjbas*~ =` 'extQpmaximum 2g)AEL U@nknownx: %. Skiθ)ICONTINUE ç?1YdDLcnt+ 1WARNINGqto ,^ E=pNoneAze specified could beped. Isj,Jor columnincorrect?#11TRUr 9  g Faddrasterconstraints Bfvu @4rasttable8rastcolumn srid,scale_x,scale_y<blocksize_x<blocksize_yHsame_alignmentPregular_blocking4num_bands<pixel_typesDnodata_values(out_db(extent*!({CONST :constty pe 16mod -1col lid 0len byval trueisnull false :location 615787$value 1 [ 1 "0 ]} _8184984$91095/99G c607?6h1135A}8 21) SELECT public.AddRasterConstraints('', $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14) 9  g Faddrasterconstraints 4Bfvu P8rastschema4rasttable8rastcolumn srid,scale_x,scale_y<blocksize_x<blocksize_yHsame_alignmentPregular_blocking4num_bands<pixel_typesDnodata_values(out_db(extent*!({CONST :constty pe 16mod -1col lid 0len byval trueisnull false :location 613963$value 1 [ 1 "0 ]} `9440256A%}9013/41N7 d25?2d8932`}58)0 DECLARE constraints text[]; BEGIN IF srid IS TRUE THEN constraints := constraints || 'srid'::text; END IF; IF scale_x IS TRUE THEN constraints := constraints || 'scale_x'::text; END IF; IF scale_y IS TRUE THEN constraints := constraints || 'scale_y'::text; END IF; IF blocksize_x IS TRUE THEN constraints := constraints || 'blocksize_x'::text; END IF; IF blocksize_y IS TRUE THEN constraints := constraints || 'blocksize_y'::text; END IF; IF same_alignment IS TRUE THEN constraints := constraints || 'same_alignment'::text; END IF; IF regular_blocking IS TRUE THEN constraints := constraints || 'regular_blocking'::text; END IF; IF num_bands IS TRUE THEN constraints := constraints || 'num_bands'::text; END IF; IF pixel_types IS TRUE THEN constraints := constraints || 'pixel_types'::text; END IF; IF nodata_values IS TRUE THEN constraints := constraints || 'nodata_values'::text; END IF; IF out_db IS TRUE THEN constraints := constraints || 'out_db'::text; END IF; IF extent IS TRUE THEN constraints := constraints || 'extent'::text; END IF; RETURN public.AddRasterConstraints($1, $2, $3, VARIADIC constraints); END; 9  ?Faddrasterconstraints BfvuC1iiv4rasttable8rastcolumn<constraints} SELECT public.AddRasterConstraints('', $1, $2, VARIADIC $3) 9  ?Faddrasterconstraints 4BfvuK3iiiv8rastschema4rasttable8rastcolumn<constraintsru DECLARE max int; cnt sql tex chema` name/kw#rtn boolean; BEGINP:= 0"g:= array_length(constraints, 1)'IF *< 1 THEE RAISE NOTICE 'No 7 indicated to be added. Doing nothing'Z RETURN TRUEEND IF; -- validate := NULL$1) > 0.:= 'SELECT nsp- FROM pg_ space '. || @'WHERE*= ' || quote_literalf/LIMIT 1EXE CUTE wIN> FOR A 1..!A>LOOP:kw!otrim(both from lowerI{[x]))E CASQ WH EN kwEsrid'MAddAuSRIDH4 0; Y@  ؓXjȃp<   XFdblink_get_pkey ?zDfvrWFp!dblink_get_pkey$libdir/dblink<   TFdblink_exec ?fvrdblink_exec$libdir/dblink9  'Faddoverviewconstraints Bfvu,ovtable0ovcolumn0reftable4refcolumn0ovfactor SELECT public.AddOverviewConstraints('', $1, $2, '', $3, $4, $5) 9  'Faddoverviewconstraints 4Bfvu0ovschema,ovtable0ovcolumn4refschema0reftable4refcolumn0ovfactorl DECLARE x int; s name; t name; oschema name; rschema name; sql text; rtn boolean; BEGIN FOR x IN 1..2 LOOP s := ''; IF x = 1 THEN s := $1; t := $2; ELSE s := $4; t := $5; END IF; -- validate user-provided schema IF length(s) > 0 THEN sql := 'SELECT nspname FROM pg_namespace ' || 'WHERE nspname = ' || quote_literal(s) || 'LIMIT 1'; EXECUTE sql INTO s; IF s IS NULL THEN RAISE EXCEPTION 'The value % is not a valid schema', quote_literal(s); RETURN FALSE; END IF; END IF; -- no schema, determine what it could be using the table IF length(s) < 1 THEN sql := 'SELECT n.nspname AS schemaname ' || 'FROM pg_catalog.pg_class c ' || 'JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace ' || 'WHERE c.relkind = ' || quote_literal('r') || ' AND n.nspname NOT IN (' || quote_literal('pg_catalog') || ', ' || quote_literal('pg_toast') || ') AND pg_catalog.pg_table_is_visible(c.oid)' || ' AND c.relname = ' || quote_literal(t); EXECUTE sql INTO s; IF s IS NULL THEN RAISE EXCEPTION 'The table % does not occur in the search_path', quote_literal(t); RETURN FALSE; END IF; END IF; IF x = 1 THEN oschema := s; ELSE rschema := s; END IF; END LOOP; -- reference raster rtn := public._add_overview_constraint(oschema, $2, $3, rschema, $5, $6, $7); IF rtn IS FALSE THEN RAISE EXCEPTION 'Unable to add the overview constraint. Is the schema name, table name or column name incorrect?'; RETURN FALSE; END IF; RETURN TRUE; END; 9  'F_drop_overview_constraint Bfvus0ovschema,ovtable0ovcolumn SELECT public._drop_raster_constraint($1, $2, 'enforce_overview_' || $3) 9  'F_add_overview_constraint 4Bfvu0ovschema,ovtable0ovcolumn4refschema0reftable4refcolumn(factorT DECLARE fqtn text; cn name; sql text; BEGIN fqtn := ''; IF length($1) > 0 THEN fqtn := quote_ident($1) || '.'; END IF; fqtn := fqtn || quote_ident($2); cn := 'enforce_overview_' || $3; sql := 'ALTER TABLE ' || fqtn || ' ADD CONSTRAINT ' || quote_ident(cn) || ' CHECK ( public._overview_constraint(' || quote_ident($3) || ',' || $7 || ',' || quote_literal($4) || ',' || quote_literal($5) || ',' || quote_literal($6) || '))'; RETURN public._add_raster_constraint(cn, sql); END; 9  ?F_overview_constraint_info Bfsuc9iiioooo0ovschema,ovtable0ovcolumn4refschema0reftable4refcolumn(factor SELECT split_part(split_part(s.consrc, '''::name', 1), '''', 2)::name, split_part(split_part(s.consrc, '''::name', 2), '''', 2)::name, split_part(split_part(s.consrc, '''::name', 3), '''', 2)::name, trim(both from split_part(s.consrc, ',', 2))::integer FROM pg_class c, pg_namespace n, pg_attribute a , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS s WHERE n.nspname = $1 AND c.relname = $2 AND a.attname = $3 AND a.attrelid = c.oid AND s.connamespace = n.oid AND s.conrelid = c.oid AND a.attnum = ANY (s.conkey) AND s.consrc LIKE '%_overview_constraint(%' 9  'F_overview_constraint BfsuCov(factor4refschema0reftable4refcolumn SELECT COALESCE((SELECT TRUE FROM public.raster_columns WHERE r_table_catalog = current_database() AND r_table_schema = $3 AND r_table_name = $4 AND r_raster_column = $5), FALSE) 9  gFdroprasterconstraints Bfvu @4rasttable8rastcolumn srid,scale_x,scale_y<blocksize_x<blocksize_yHsame_alignmentPregular_blocking4num_bands<pixel_typesDnodata_values(out_db(extent!({CONST :constty pe 16mod -1col lid 0len byval trueisnull false :location 623759$value 1 [ 1 0 ]} `9A|825}5`}9092/9640023774103) SELECT DropRasterConstraints('', $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14) 9  g Fdroprasterconstraints 4Bfvu P8rastschema4rasttable8rastcolumn srid,scale_x,scale_y<blocksize_x<blocksize_yHsame_alignmentPregular_blocking4num_bands<pixel_typesDnodata_values(out_db(extent!({CONST :constty pe 16mod -1col lid 0len byval trueisnull false :location 621988$value 1 [ 1 "0 ]} ^204195A}85I12015/19235}6`Q|30336) DECLARE constraints text[]; BEGIN IF srid IS TRUE THEN constraints := constraints || 'srid'::text; END IF; IF scale_x IS TRUE THEN constraints := constraints || 'scale_x'::text; END IF; IF scale_y IS TRUE THEN constraints := constraints || 'scale_y'::text; END IF; IF blocksize_x IS TRUE THEN constraints := constraints || 'blocksize_x'::text; END IF; IF blocksize_y IS TRUE THEN constraints := constraints || 'blocksize_y'::text; END IF; IF same_alignment IS TRUE THEN constraints := constraints || 'same_alignment'::text; END IF; IF regular_blocking IS TRUE THEN constraints := constraints || 'regular_blocking'::text; END IF; IF num_bands IS TRUE THEN constraints := constraints || 'num_bands'::text; END IF; IF pixel_types IS TRUE THEN constraints := constraints || 'pixel_types'::text; END IF; IF nodata_values IS TRUE THEN constraints := constraints || 'nodata_values'::text; END IF; IF out_db IS TRUE THEN constraints := constraints || 'out_db'::text; END IF; IF extent IS TRUE THEN constraints := constraints || 'extent'::text; END IF; RETURN DropRasterConstraints($1, $2, $3, VARIADIC constraints); END; hD   `p8Hp 8 XxЀ<   \Fdblink_current_query ?fvr`+dblink_current_query$libdir/dblink<   [Fdblink_build_sql_update ?fvr1dblink_build_sql_update$libdir/dblink<   ZFdblink_build_sql_delete ?fvr1dblink_build_sql_delete$libdir/dblink<  YFdblink_build_sql_insert ?fvr1dblink_build_sql_insert$libdir/dblink9  g%Fst_createoverview 4Bfvustabcol(factor algo\({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 640643 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]}) DECLARE sinfo RECORD; -- source ql TEXT; ttab BEG IN 10. Check arguments, we need to ensure:, a. Sctable has a raster column with give@n name?O$A 7&i]returndas 0wellblRETURN\||'.'||; END; 9  g$Fst_retile 4BzDfsuC@tabcolextsfxsfytwth algo\({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 638152 :constvalue 20 [ 80 0 0 0 78 101 97 114 101 115 116 78 101 105 103 104 98 111 117 114 ]})9 DECLARE rec RECORD; ipx FLO(AT8ytxP int y e public.GEOMETRY; -- tile extent ncols!2nlin srid ql TEXT; BEGIN RAISE DEBUG 'Target coverage will have sfx=%, sfy=%*'x ;C-- 2. Loop 9 each tKand build it from sou(rces:=st_xmin`(ext):= ceil(( ax-ipx)/sfx/tw ,IF < 0 THEN c ^y?2/` (!-ipygy/th5ELS\\  \ND IFZ_ST_Srid_% x %m,of approx siz!',j,, tw, thh$Kext::box2dFOR!IN 0..g-1 LOOP&y~ 2MakeEnvelope(!=+]* tw!>+w8h8y8p(tx+1)p (ty8?p!$N1l!sfy: %,v7/3H4/te)A:= 'SELECT count(*), vClip( Union SnapToG! Rescale N' || quote_ident(col)|| ' Expand($3, greatest($1,$2))),$1, $2, $6), $4, $5, )3) g FROM xtab`::texQ@ q WHERE vIntersectsC$3)'zSQL:ql#!aIN EXECUTEUSIN6G,!ty,` algo9j%Z]QZ%,% with) rec., tx, Nt{6nIF)g IS NULLWgWARN'No C( : KV T^foG hasKT, st_width()heightw RETURN NEXTT  Q`P; END; 9  '#Fupdaterastersrid Bfvu8table_name<column_name0new_sridg SELECT public._UpdateRasterSRID('', $1, $2, $3) 9  '"Fupdaterastersrid Bfvu<schema_name8table_name<column_name0new_sridg SELECT public._UpdateRasterSRID($1, $2, $3, $4) 9  '!F_updaterastersrid 4Bfvu<schema_name8table_name<column_name0new_srid DECLARE fqtn text; schema nameqlrid integerct boolean; BEGIN -- vali`date LU:@= NULL 00 THE@r:= 'SELECT nsp FR@OM pg_ s@pace '. || 'WHERE*= ' || quote_literalf/LIMIT 1' EXECUTE wINTO$; IF IS RAISE EXCEPTION 'Theue provided for@is inw RETURN FALSEND IF  ''.AS3%Acatalog. lass c%0JOIN %qn ON n.oid = c.relckin+'r' ANDNOT IN (7@,bpg_toast))j table_is_visible(c)4/^2)/M@ % does not occur in the search_path',/e-- clamp SRID#unew_2<9:= public.ST_2('POINT EMPTY'::geometryNOT ICE '7 % convert ed toofficially unknown! %',, LSA"drop coverage tile|strai$nt#onUparately justlcas -n't exi2s;ct{_r@aster_0_info_{_{(#, $2, $3 IF ct!!TRUEqPERFORMq_d_X, extent, alignments DropRC( r, 'W1Y ')btARo(#ident$1.<',641upb$UHUPDATE3A' SET;9O3!;et32 ::D"B;*=2sqlGcadd3'*AddBq?N if needed/add'/-Dg; ; 9  ' Fdropoverviewconstraints Bfvu[,ovtable0ovcolumnk SELECT public.DropOverviewConstraints('', $1, $2) 9  'Fdropoverviewconstraints 4Bfvus0ovschema,ovtable0ovcolumn DECLARE schema name; sql text; rtn boolean; BEGIN -- validate schema schema := NULL; IF length($1) > 0 THEN sql := 'SELECT nspname FROM pg_namespace ' || 'WHERE nspname = ' || quote_literal($1) || 'LIMIT 1'; EXECUTE sql INTO schema; IF schema IS NULL THEN RAISE EXCEPTION 'The value provided for schema is invalid'; RETURN FALSE; END IF; END IF; IF schema IS NULL THEN sql := 'SELECT n.nspname AS schemaname ' || 'FROM pg_catalog.pg_class c ' || 'JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace ' || 'WHERE c.relkind = ' || quote_literal('r') || ' AND n.nspname NOT IN (' || quote_literal('pg_catalog') || ', ' || quote_literal('pg_toast') || ') AND pg_catalog.pg_table_is_visible(c.oid)' || ' AND c.relname = ' || quote_literal($2); EXECUTE sql INTO schema; IF schema IS NULL THEN RAISE EXCEPTION 'The table % does not occur in the search_path', quote_literal($2); RETURN FALSE; END IF; END IF; rtn := public._drop_overview_constraint(schema, $2, $3); IF rtn IS FALSE THEN RAISE EXCEPTION 'Unable to drop the overview constraint . Is the schema name, table name or column name incorrect?'; RETURN FALSE; END IF; RETURN TRUE; END; P  :.  (8 p(8H؉XtV@Px8hЅ0h؁<&  LFdblink_close ?fvrdblink_close$libdir/dblink<%  KFdblink_close ?fvrdblink_close$libdir/dblink<$  JFdblink_close ?fvrdblink_close$libdir/dblink<#  IFdblink_close ?fvrpdblink_close$libdir/dblink$lib<"  HFdblink_fetch ?zDfvrdblink_fetch$libdir/dblink<!  GFdblink_fetch ?zDfvrdblink_fetch$libdir/dblinkdbli<   FFdblink_fetch ?zDfvrdblink_fetch$libdir/dblinknk<  EFdblink_fetch ?zDfvrdblink_fetch$libdir/dblink<  DFdblink_open ?fvrdblink_open$libdir/dblinkr<  CFdblink_open ?fvrdblink_open$libdir/dblink<  BFdblink_open ?fvrdblink_open$libdir/dblink<  AFdblink_open ?fvrdblink_open$libdir/dblinkd<  @Fdblink_disconnect ?fvrp%dblink_disconnect$libdir/dblink_v1_1%$<  ?Fdblink_disconnect ?fvr`%dblink_disconnect$libdir/dblink<  (  >Fdblink_connect_u ?fvrdblink_connect$libdir/dblinkC  link_<  (  =Fdblink_connect_u ?fvrpdblink_connect$libdir/dblinkC  e<< @ >Fdblink_connect_u ?fvrdblink_connect$libdir/dblink<< @ =Fdblink_connect_u ?fvrpdblink_connect$libdir/dblink<  #Ox,3OOwOkOxOXO ONRETUR@N NEXT_ rw, rh"*DuE\DCD+Bu1y END 0H  0`v``Ȗ0萠 088Hp@R(.008`h`H,A  'Fpldbg_set_breakpoint ?fvus,session func8linenumber+pldbg_set_breakpoint1$libdir/plugin_debuggerA  'Fpldbg_select_frame ?fvuyF[,session$frame'pldbg_select_frame1$libdir/plugin_debuggerA  'Fpldbg_get_variables ?zDfvuFpC,session)pldbg_get_variables1$libdir/plugin_debuggerA  Fpldbg_get_proxy_info ?fvuF`+pldbg_get_proxy_info1$libdir/plugin_debuggerA  'Fpldbg_get_stack ?zDfvu|FpC,session!pldbg_get_stack1$libdir/plugin_debuggerA  'Fpldbg_get_source ?fvuS,session func#pldbg_get_source1$libdir/plugin_debuggerA  'Fpldbg_get_breakpoints ?zDfvuyFpC,session-pldbg_get_breakpoints1$libdir/plugin_debuggerA  'Fpldbg_drop_breakpoint ?fvus,session func8linenumber-pldbg_drop_breakpoint1$libdir/plugin_debuggerA  'Fpldbg_deposit_value ?fvu,session,varname8linenumber$value)pldbg_deposit_value1$libdir/plugin_debuggerA  Fpldbg_create_listener ?fvu`-pldbg_create_listener1$libdir/plugin_debuggerA  'Fpldbg_continue ?fvuyFpC,sessionpldbg_continue1$libdir/plugin_debuggerA  'Fpldbg_attach_to_port ?fvupK8portnumber+pldbg_attach_to_port1$libdir/plugin_debuggerA  'Fpldbg_abort_target ?zDfvupC,session'pldbg_abort_target1$libdir/plugin_debuggerA  'Fplpgsql_oid_debug BfvupK<functionoid; SELECT pldbg_oid_debug($1) A  'Fpldbg_oid_debug ?fvupK<functionoid!pldbg_oid_debug1$libdir/plugin_debugger?  sFautoprewarm_dump_now ?fvu`+autoprewarm_dump_now'$libdir/pg_prewarm?  rFautoprewarm_start_worker ?fvu`3autoprewarm_start_worker'$libdir/pg_prewarm?   gqFpg_prewarm ?fvs mode fork<first_block8last_blockH ({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 213 :constvalue 10 [ 40 0 0 0 98 117 102 102 101 114 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 250 :constvalue 8 [ 32 0 0 0 109 97 105 110 ]} {CONST :consttype 20 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 292 :constvalue <>} {CONST :consttype 20 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull true :location 331 :constvalue <>})pg_prewarm'$libdir/pg_prewarm>   nFogr_fdw_validator ?fvu%ogr_fdw_validator!$libdir/ogr_fdw>   mFogr_fdw_handler ?fvu+ `!ogr_fdw_handler!$libdir/ogr_fdw=   jFfile_fdw_validator ?fvu'file_fdw_validator#$libdir/file_fdw=   iFfile_fdw_handler ?fvu+ `#file_fdw_handler#$libdir/file_fdw<  'fFdblink_fdw_validator ?fvs[,options,catalog+dblink_fdw_validator$libdir/dblink<  ?eFdblink_get_notify ?zDfvrpK3iooo,conname<notify_name(be_pid$extra%dblink_get_notify$libdir/dblink<  ?dFdblink_get_notify ?zDfvr`C1ooo{<notify_name(be_pid$extra%dblink_get_notify$libdir/dblink<  cFdblink_error_message ?fvrp+dblink_error_message$libdir/dblink<  bFdblink_cancel_query ?fvrp)dblink_cancel_query$libdir/dblink<  aFdblink_get_connections ?fvr`/dblink_get_connections$libdir/dblink<  `Fdblink_get_result ?zDfvr%dblink_get_result$libdir/dblink<  _Fdblink_get_result ?zDfvrp%dblink_get_result$libdir/dblink0  ȞbН؜؛\ A  'Fpldbg_get_target_info BfvuFk4signature8targettype( SELECT p.oid AS target, pronamespace AS schema, pronargs::int4 AS nargs, -- The returned argtypes column is of type oidvector, but unlike -- proargtypes, it's supposed to include OUT params. So we -- essentially have to return proallargtypes, converted to an -- oidvector. There is no oid[] -> oidvector cast, so we have to -- do it via text. CASE WHEN proallargtypes IS NOT NULL THEN translate(proallargtypes::text, ',{}', ' ')::oidvector ELSE proargtypes END AS argtypes, proname AS targetname, proargmodes AS argmodes, proargnames AS proargnames, prolang AS targetlang, quote_ident(nspname) || '.' || quote_ident(proname) AS fqname, proretset AS returnsset, prorettype AS returntype, 't'::bool AS isfunc, 0::oid AS pkg, NULL::text[] AS argdefvals FROM pg_proc p, pg_namespace n WHERE p.pronamespace = n.oid AND p.oid = $1::oid -- We used to support querying by function name or trigger name/oid as well, -- but that was never used in the client, so the support for that has been -- removed. The targeType argument remains as a legacy of that. You're -- expected to pass 'o' as target type, but it doesn't do anything. AND $2 = 'o' A  'Fpldbg_wait_for_target ?fvupC,session-pldbg_wait_for_target1$libdir/plugin_debuggerA  'Fpldbg_wait_for_breakpoint ?fvuyFpC,session5pldbg_wait_for_breakpoint1$libdir/plugin_debuggerA  'Fpldbg_step_over ?fvuyFpC,session!pldbg_step_over1$libdir/plugin_debuggerA  'Fpldbg_step_into ?fvuyFpC,session!pldbg_step_into1$libdir/plugin_debuggerA  'Fpldbg_set_global_breakpoint ?fvu,session func8linenumber4targetpid9pldbg_set_global_breakpoint1$libdir/plugin_debugger8  8pHHЖȕ HxЎHx؉0h~HxȁE%  Fsimilarity_dist ?fis!similarity_dist!$libdir/pg_trgmE$  Fword_similarity_commutator_op ?fss=word_similarity_commutator_op!$libdir/pg_trgmE#  Fword_similarity_op ?fss'word_similarity_op!$libdir/pg_trgmE"  Fword_similarity ?fis!word_similarity!$libdir/pg_trgmE!  Fsimilarity_op ?fsssimilarity_op!$libdir/pg_trgmE   Fsimilarity ?fissimilarity!$libdir/pg_trgmE  Fshow_trgm ?fispshow_trgm!$libdir/pg_trgmE  Fshow_limit ?fss`show_limit!$libdir/pg_trgmE  Fset_limit ?fvupset_limit!$libdir/pg_trgmD  Fpostgres_fdw_validator ?fvu/postgres_fdw_validator+$libdir/postgres_fdwD  Fpostgres_fdw_handler ?fvu+ `+postgres_fdw_handler+$libdir/postgres_fdwC  Fst_issolid Bfisp@!sfcgal_is_solid)$libdir/postgis-2.5C  Fst_makesolid Bfis@p@%sfcgal_make_solid)$libdir/postgis-2.5C  Fst_volume Bfisp@sfcgal_volume)$libdir/postgis-2.5C  Fst_isplanar Bfisp@#sfcgal_is_planar)$libdir/postgis-2.5C  Fst_approximatemedialaxis Bfis@p@?sfcgal_approximate_medial_axis)$libdir/postgis-2.5C  Fst_straightskeleton Bfis@p@3sfcgal_straight_skeleton)$libdir/postgis-2.5C  Fst_minkowskisum Bfis@@@+sfcgal_minkowski_sum)$libdir/postgis-2.5C  Fst_orientation Bfisp@'sfcgal_orientation)$libdir/postgis-2.5C  Fst_forcelhr Bfis@p@#sfcgal_force_lhr)$libdir/postgis-2.5C  Fst_extrude Bfis@@sfcgal_extrude)$libdir/postgis-2.5C  Fst_3darea Bfisp@sfcgal_area3D)$libdir/postgis-2.5C  Fst_tesselate Bfis@p@#sfcgal_tesselate)$libdir/postgis-2.5C  'Fst_3dunion Bfis@@@[$geom1$geom2sfcgal_union3D)$libdir/postgis-2.5C   'Fst_3ddifference Bfis@@@[$geom1$geom2)sfcgal_difference3D)$libdir/postgis-2.5C   'Fst_3dintersection Bfis@@@[$geom1$geom2-sfcgal_intersection3D)$libdir/postgis-2.5C   Fpostgis_sfcgal_version ?fiu`/postgis_sfcgal_version)$libdir/postgis-2.5C   Fpostgis_sfcgal_scripts_installed Bfiu`s SELECT '2.5.2'::text || ' r' || 17328::text AS version B   'Fuuid_generate_v5 ?fis  [4namespace name#uuid_generate_v5%$libdir/uuid-osspB  Fuuid_generate_v4 ?fvs `#uuid_generate_v4%$libdir/uuid-osspB  'Fuuid_generate_v3 ?fis  [4namespace name#uuid_generate_v3%$libdir/uuid-osspB  Fuuid_generate_v1mc ?fvs `'uuid_generate_v1mc%$libdir/uuid-osspB  Fuuid_generate_v1 ?fvs `#uuid_generate_v1%$libdir/uuid-osspB  Fuuid_ns_x500 ?fis `uuid_ns_x500%$libdir/uuid-osspB  Fuuid_ns_oid ?fis `uuid_ns_oid%$libdir/uuid-osspB  Fuuid_ns_url ?fis `uuid_ns_url%$libdir/uuid-osspB  Fuuid_ns_dns ?fis `uuid_ns_dns%$libdir/uuid-ossp@  (H؛8hȗ0Xpȑ(@HXHhp@^\`ȃ"bF"  '%Gurlencode ?fiupC(stringurlencode$libdir/httpF!  '$Ghttp_head BfvuGp;uri SELECT public.http(('HEAD', $1, NULL, NULL, NULL)::public.http_request) F   '#Ghttp_delete BfvuGsuri,content@content_type SELECT public.http(('DELETE', $1, NULL, $3, $2)::public.http_request) F  '"Ghttp_delete BfvuGp;uri SELECT public.http(('DELETE', $1, NULL, NULL, NULL)::public.http_request) F  '!Ghttp_patch BfvuGsuri,content@content_type SELECT public.http(('PATCH', $1, NULL, $3, $2)::public.http_request) F  ' Ghttp_put BfvuGsuri,content@content_type SELECT public.http(('PUT', $1, NULL, $3, $2)::public.http_request) F  'Ghttp_post BfvuGsuri,content@content_type SELECT public.http(('POST', $1, NULL, $3, $2)::public.http_request) F  'Ghttp_get BfvuGp;uri SELECT public.http(('GET', $1, NULL, NULL, NULL)::public.http_request) F  'Ghttp ?fvuGpGC,requesthttp_request$libdir/httpF  'Ghttp_header BfvuG[$field$value! SELECT $1, $2 F  ?Ghttp_list_curlopt ?zDfvu`;/tt[,curlopt$value%http_list_curlopt$libdir/httpF  Ghttp_reset_curlopt ?fvu`'http_reset_curlopt$libdir/httpF  'Ghttp_set_curlopt ?fvu[,curlopt$value#http_set_curlopt$libdir/httpE  Gstrict_word_similarity_dist_commutator_op ?fisUstrict_word_similarity_dist_commutator_op!$libdir/pg_trgmE  Gstrict_word_similarity_dist_op ?fis?strict_word_similarity_dist_op!$libdir/pg_trgmE  Fstrict_word_similarity_commutator_op ?fssKstrict_word_similarity_commutator_op!$libdir/pg_trgmE  Fstrict_word_similarity_op ?fss5strict_word_similarity_op!$libdir/pg_trgmE  Fstrict_word_similarity ?fis/strict_word_similarity!$libdir/pg_trgmE  Fgin_trgm_triconsistent ?fis/gin_trgm_triconsistent!$libdir/pg_trgmE  Fgin_trgm_consistent ?fis)gin_trgm_consistent!$libdir/pg_trgmE  Fgin_extract_query_trgm ?fis/gin_extract_query_trgm!$libdir/pg_trgmE   Fgin_extract_value_trgm ?fis/gin_extract_value_trgm!$libdir/pg_trgmE   Fgtrgm_same ?fisFFgtrgm_same!$libdir/pg_trgmE   Fgtrgm_union ?fisFgtrgm_union!$libdir/pg_trgmE   Fgtrgm_picksplit ?fis!gtrgm_picksplit!$libdir/pg_trgmE   Fgtrgm_penalty ?fisgtrgm_penalty!$libdir/pg_trgmE  Fgtrgm_decompress ?fisp#gtrgm_decompress!$libdir/pg_trgmE  Fgtrgm_compress ?fispgtrgm_compress!$libdir/pg_trgmE  Fgtrgm_distance ?fisgtrgm_distance!$libdir/pg_trgmE  Fgtrgm_consistent ?fis#gtrgm_consistent!$libdir/pg_trgmE  Fgtrgm_out ?fispFgtrgm_out!$libdir/pg_trgmE  Fgtrgm_in ?fisFpgtrgm_in!$libdir/pg_trgmE  Fword_similarity_dist_commutator_op ?fisGword_similarity_dist_commutator_op!$libdir/pg_trgmE  Fword_similarity_dist_op ?fis1word_similarity_dist_op!$libdir/pg_trgmл  8|Pv蓜8x HHXP`pG  Gpcpatch_agg_final_array ?fvsPGpzG1pcpatch_agg_final_array/$libdir/pointcloud-1.2G  'KGpc_asbinary ?fispCG;p#pcpoint_as_bytea/$libdir/pointcloud-1.2G  'JGpc_astext ?fispCG;p!pcpoint_as_text/$libdir/pointcloud-1.2G  'IGpc_makepoint ?fisCGK pcid vals5pcpoint_from_double_array/$libdir/pointcloud-1.2G  'HGpc_get ?fispCG;pt'pcpoint_get_values/$libdir/pointcloud-1.2G  'GGpc_get ?fisCGSpt,dimname%pcpoint_get_value/$libdir/pointcloud-1.2G  EGpcpoint_out ?fispCGpcpoint_out/$libdir/pointcloud-1.2G  DGpcpoint_in ?fisCGppcpoint_in/$libdir/pointcloud-1.2G  gBGpc_upgrade 4BfvupK8to_version,({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 4395 :constvalue <>}) DECLARE ver RECORD; target_version text; BEGIN SELECT default_version, installed_version FROM pg_catalog.pg_available_extensions WHERE name = 'pointcloud' INTO ver; IF to_version IS NULL THEN target_version := ver.default_version; ELSE target_version := to_version; END IF; IF target_version != ver.installed_version THEN EXECUTE 'ALTER EXTENSION pointcloud UPDATE TO ' || quote_literal(target_version); ELSE -- Use the "next" trick IF target_version LIKE '%next' THEN target_version := replace(target_version, 'next', ''); EXECUTE 'ALTER EXTENSION pointcloud UPDATE TO ' || quote_literal(target_version); ELSE -- Double upgrade, to get back to "next"-free EXECUTE 'ALTER EXTENSION pointcloud UPDATE TO ' || quote_literal(target_version || 'next'); EXECUTE 'ALTER EXTENSION pointcloud UPDATE TO ' || quote_literal(target_version); END IF; END IF; RETURN public.pc_version(); END; G  AGpc_full_version 4Bfiu`` DECLARE pcver TEXT; pclibver TEXT; pcscrver TEXT; pgsqlver TEXT; libxml2ver TEXT; lazperfenabled BOOLEAN; BEGIN pclibver := public.pc_lib_version(); pcscrver := public.pc_script_version(); pcver := public._pc_version_no_commit(pclibver, pcscrver); pgsqlver := public.pc_pgsql_version(); libxml2ver := public.pc_libxml2_version(); lazperfenabled := public.pc_lazperf_enabled(); RETURN 'POINTCLOUD="' || pclibver || '" PGSQL="' || pgsqlver || '" LIBXML2="' || libxml2ver || ' LAZPERF enabled=' || lazperfenabled; END; G  @Gpc_version 4Bfiu`d DECLARE libver TEXT; scrver TEXT; version TEXT; BEGIN libver := public.pc_lib_version(); scrver := public.pc_script_version(); version := public._pc_version_no_commit(libver, scrver); RETURN version; END; G  '?G_pc_version_no_commit 4Bfiu[(libver(scrver DECLARE libver_no_commit TEXT; BEGIN libver_no_commit := split_part(libver, ' ', 1); IF scrver != libver_no_commit THEN RAISE WARNING 'Library (%) and script (%) version mismatch', libver_no_commit, scrver; END IF; RETURN libver_no_commit; END; G  >Gpc_lazperf_enabled ?fis`'pc_lazperf_enabled/$libdir/pointcloud-1.2G   =Gpc_libxml2_version ?fis`'pc_libxml2_version/$libdir/pointcloud-1.2G   })`J"^I cdjoin_collapse_limit=2J  gHdrop_state_tables_generate_scriptG Bfvuk<param_state@param_schema({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 78438 :constvalue 14 [ 56 0 0 0 116 105 103 101 114 95 100 97 116 97 ]})< SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n') FROM (SELECT * FROM information_schema.tables WHERE table_schema = $2 AND table_name like lower($1) || '_%' ORDER BY table_name) AS foo; ; J  'Hloader_macro_replaceG 4Bfiu<param_input8param_keys@param_values DECLARE var_result text = param_input; DECLARE var_count integer = array_upper(param_keys,1); BEGIN FOR i IN 1..var_count LOOP var_result := replace(var_result, '${' || param_keys[i] || '}', param_values[i]); END LOOP; return var_result; END; J  Hcreate_census_base_tablesG 4Bfvu`:Y DECLARE var_temp text; @BEGIN := tiger.SetSearchPathForInstall(''); IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE1 = _ AND )Mract_idi') THEN -- census block group/%s parentAs not created yet or an older version -- drDop if3i@n use,; new structure DROP TABLpE IF"X; CREATE% ( gid serial_NULL,statefpchar(2)countyM3Sce6_id11) PRIMARYp KEY%V!7#9lsa920Amtfcc5funcgaland double pre ciawaterintptlg OPonthe_geom !etryCONSTRAINT e!ce_dims*CHECK@ (st_n(aC) = V@geotypmCt G'MULTIPOLYGON'D::1 ORISnsrid  f4269) ); / ab2./Sj4.M*6/ / ur-uNax//bg-bg/Ukgrpʹbg*2/Z=1j_=/y COMMENT ONU$j'Zs'; END IF; >* @W C OLUMN]TYvPU;C J16JRAISEAICE 'S 8re bei ngRETU RN 'T+al ready1_sent) J  'Gset_geocode_settingG Bfvus@setting_nameDsetting_value INSERT INTO geocode_settings(name, setting, unit, category, short_desc) SELECT name, setting, unit, category, short_desc FROM geocode_settings_default WHERE name NOT IN(SELECT name FROM geocode_settings); UPDATE geocode_settings SET setting = $2 WHERE name = $1 RETURNING setting; J   'Gget_geocode_settingG BfsupK@setting_name SELECT COALESCE(gc.setting,gd.setting) As setting FROM geocode_settings_default AS gd LEFT JOIN geocode_settings AS gc ON gd.name = gc.name WHERE gd.name = $1; J   Ginstall_geocode_settingsG 4Bfvu`: DECLARE var_temp text; BEGIN := tiger.SetSearchPathForInstall(''); /** set+ path to haveH in front **/ IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE1 =  AND L= 'geocode_settings') THEN CREATE TABLE ((A" primary key, , unit categoryshor@t_desc); GRAN$T ONt TO public; END IF;1o_default90Ab|I--recreate (s T0RUNCNSERT INTOU ,,,,!) f.*  (VALUES ('debug_faddress', 'false boolean',,outputs )1notice log such as queries whenls is called if true' ,interse^cjS qnclizGOand medi!eexpqpionr 0:= 50'-- Some potentials were f_. Begin a"0-by- on each!f FOR"IN LOLOP;8:=_s(rec.[2:= TRUE )get_l|asF9dlTi 1.. [split_part, ' ', i)) !=}8 75 FALS'e  "|st T-- T he&:Bed, determine if the distance is better#_^levenshtein_ignore_case)<&BcU:=7 :6|8FF4?.#??? =If no fi, leavenull.q RETURN; END; J  'Hloader_load_staged_dataG Bfvu\param_staging_tableXparam_target_table< -- exclude this set list of columns if no exclusion list is specified SELECT loader_load_staged_data($1, $2,(SELECT COALESCE(columns_exclude,ARRAY['gid', 'geoid','cpi','suffix1ce', 'statefp00', 'statefp10', 'countyfp00','countyfp10' ,'tractce00','tractce10', 'blkgrpce00', 'blkgrpce10', 'blockce00', 'blockce10' , 'cousubfp00', 'submcdfp00', 'conctyfp00', 'placefp00', 'aiannhfp00', 'aiannhce00', 'comptyp00', 'trsubfp00', 'trsubce00', 'anrcfp00', 'elsdlea00', 'scsdlea00', 'unsdlea00', 'uace00', 'cd108fp', 'sldust00', 'sldlst00', 'vtdst00', 'zcta5ce00', 'tazce00', 'ugace00', 'puma5ce00','vtdst10','tazce10','uace10','puma5ce10','tazce', 'uace', 'vtdst', 'zcta5ce', 'zcta5ce10', 'puma5ce', 'ugace10','pumace10', 'estatefp', 'ugace', 'blockce']) FROM loader_lookuptables WHERE $2 LIKE '%' || lookup_name)) J  'Hloader_load_staged_dataG 4Bfvu\param_staging_tableXparam_target_tabledparam_columns_exclude  DECLARE var_sql text; var_staging_schema text; var_data_schema text; var_temp text; var_num_records bigint; BEGIN -- Add all the fields except geoid and gid -- Assume all the columns are in same order as target SELECT staging_schema, data_schema INTO var_staging_schema, var_data_schema FROM loader_variables; var_sql := 'INSERT INTO ' || var_data_schema || '.' || quote_ident(param_target_table) || '(' || array_to_string(ARRAY(SELECT quote_ident(column_name::text) FROM information_schema.columns WHERE table_name = param_target_table AND table_schema = var_data_schema AND column_name <> ALL(param_columns_exclude) ORDER BY column_name ), ',') || ') SELECT ' || array_to_string(ARRAY(SELECT quote_ident(column_name::text) FROM information_schema.columns WHERE table_name = param_staging_table AND table_schema = var_staging_schema AND column_name <> ALL( param_columns_exclude) ORDER BY column_name ), ',') ||' FROM ' || var_staging_schema || '.' || param_staging_table || ';'; RAISE NOTICE '%', var_sql; EXECUTE (var_sql); GET DIAGNOSTICS var_num_records = ROW_COUNT; SELECT DropGeometryTable(var_staging_schema,param_staging_table) INTO var_temp; RETURN var_num_records; END; J  'Hloader_generate_scriptG BzDfvu[@param_statesos SELECT loader_macro_replace(   $declare_sect% , ARRAY['staging_fold', te'website_rootpsql%@abbrevdata_sche level files - if an over ride  is specified we use that instead of one array_to_string ((# 'cdz  ZwgetYCOALESCE(lu_,C/Cupper(lookup_name) {/tl_#Dtiger_year"lower(t9X.zip --mirror --reject=html '> "56*Aregexp6x5/6 !http[s]?:/''),'ftp'')8 unzip_command, '*,G&*'(^CO%pre_%_@proces]Ex'\n*L#-D -lu.insert_mod -s 4269 -g the_geom ' !ASE WHEN9sin,gl >T' -S ' ELSbE2 ENDC]W "latin14" >! %u.aAdbf D$.(KgJ | '?Z: oB ostfB8','r('];-, 8 ])b,FROM $;4s AS lu#WHERES{*te = true AND;-ORDER BY _or8d2,#w) 5RCounty LW1_U -- ex4pl!ccpcreRcall for each ' ( oVE'o O#o -c.fp?9 o !I=_o8ut "ptS APs c #dcwfp = Q ')oXv#o^o\%d'o?:j@EoA*.E1''C__'_`a3poo_bD4_c>:hXWϽ ξ˶͔SD ϑA@S sheld>eCZA CROSS J0OIN U"Asr d, ulpad(stl$U2,'0')+?- Sr15#' _ Pold#6!   T$1 @>$W N' -- Ifkљcontained in 0listэs input gener.scriptrfit 1 &Aos = $2^0selected; J  'Hloader_generate_nation_scriptG BzDfvup;osJ. WITH lu AS (SELECT lookup_name,@ table pre_load_process,Ppost   _order, insert_mode, single_geomlevel_nationcountystate FROM ner_s WHERE P = true AN&D6)  Kmacro_replace(  $declare_sect}, ARRAY['staging_fold', 'websit@e_rootpsql', 'data_sch8ema8],CWUvari. ^,  f, platform._m 't  |]z) , '/' Kath_sep) || ' ' || -- Nkx fiarray_to_string('^R'cd '\  ||wgetY. -- hardcoding zcta5 `!ce doesn't follow c onven || upper(CASE WHEBN84 = 'L100' T' ELSE )END")tl_ tiger_year"_us"lower(F .zip --mirror --reject=html\ 'no*/r`egexp/'http[s]?:/[''),'Hftp'''note ha ve to-codederfor becxaus[#n$unzip_command, '*tl_*3N')COALESCE(lu.]r E'\n<*3X!#-D -lu.Xs 4269 -g thS` ' |l u.] -S 1\END::tex4m-W "latin1" / & o(u.db,f 0$.* | 'JR;B ^m WVT8','rzx!']-, 8 ShRblu ORD`ER BY}H;),#)  gd_k^m]hooa} cJoK o ]AS shelde #c36 AsC CROSS JxOIN+* #os = $1 -- generate scripA@r se@lected@; J  gHdrop_nation_tables_generate_scriptG BfvupK@param_schema({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 79141 :constvalue 14 [ 56 0 0 0 116 105 103 101 114 95 100 97 116 97 ]})H SELECT array_to_string(array_agg('DROP TABLE ' || quote_ident(table_schema) || '.' || quote_ident(table_name) || ';'),E'\n') FROM (SELECT * FROM information_schema.tables WHERE table_schema = $1 AND (table_name ~ E'^[a-z]{2}\_county' or table_name ~ E'^[a-z]{2}\_state' or table_name = 'state_all' or table_name LIKE 'county_all%' or table_name LIKE 'zcta5_all%') ORDER BY table_name) AS foo; ; @P  P^ nЖ(B0BD؈ Px J   'Ilocation_extract_countysub_exactG 4 Afsuk8fullstreet<stateabbrev` DECLARE ws VARCHAR; location VARCHAR; tempInt INTEGER; lstate VARCHAR; rec RECORD; BEGIN ws := E'[ ,.\n\f\t]'; -- No hope of determining the location from place. Try countysub. IF stateAbbrev IS NOT NULL THEN lstate := statefp FROM state WHERE stusps = stateAbbrev; SELECT INTO tempInt count(*) FROM cousub WHERE cousub.statefp = lstate AND texticregexeq(fullStreet, '(?i)' || name || '$'); ELSE SELECT INTO tempInt count(*) FROM cousub WHERE texticregexeq(fullStreet, '(?i)' || name || '$'); END IF; IF tempInt > 0 THEN IF stateAbbrev IS NOT NULL THEN FOR rec IN SELECT substring(fullStreet, '(?i)(' || name || ')$') AS value, name FROM cousub WHERE cousub.statefp = lstate AND texticregexeq(fullStreet, '(?i)' || ws || name || '$') ORDER BY length(name) DESC LOOP -- Only the first result is needed. location := rec.value; EXIT; END LOOP; ELSE FOR rec IN SELECT substring(fullStreet, '(?i)(' || name || ')$') AS value, name FROM cousub WHERE texticregexeq(fullStreet, '(?i)' || ws || name || '$') ORDER BY length(name) DESC LOOP -- again, only the first is needed. location := rec.value; EXIT; END LOOP; END IF; END IF; RETURN location; END; J   'Iget_last_wordsG 4 Afiuc<inputstring$count DECLARE tempString VARCHAR; result VARCHAR := ''; BEGIN FOR i IN 1..count LOOP tempString := substring(inputString from '((?: )+[a-zA-Z0-9_]*)' || result || '$'); IF tempString IS NULL THEN RETURN inputString; END IF; result := tempString || result; END LOOP; result := trim(both from result); RETURN result; END; J  'Istate_extractG 4BfsupC0rawinputV DECLARE tempInt INTEGER;String VARCHAstate@Abbrev r esult c @RECORD^st BOOLEANws ,var_verbose boolean := false; BEGIN4:= E'[ ,.\t\n\f\r]'; -- If there is a trailspace or , get rid of it!5this1to handle @case wIpeople use , inst ea=Sto s0epar &an d zipZsuch as '2450 N COLORADO ST, PHILADELPHIA, PA, 19132' f98:= regexp_replace(rawInput, E'(.@*)' ||R| | '+'\\1'), := btrim?', !'-- Sout~ last wor, Hit8comparCClookup tablbdetermine$entir e namSs welltheIa"iation associated with it. The code0 may!no t havHbeen foundB.subs (!fromNE'+([^(0-9 ]*?)$6IF*THEN RAISE NOTICE ' _ex@tract y: %: %',,; END IFlSELECT1O6count(*) FROM (select distixnctB  WHERE @upper(+)L =))blah}= 1N:=  Iob#ELSQ.Jl!)like'%2|0>1 FORRXIN^  LOOP- st texticB[eqHd Cv%0 THEN pref:=32600; ELSE pref:=32700; END IF; zone:=floor((ST_X(geomgeog)+180)/6)+1; RETURN zone+pref; END; J  'Hloader_generate_census_scriptG BzDfvu[@param_statesosNK SELECT create_census_base_tables();$ loader_macro_replace(  $declare _sect% , ARRAY['staging_fold', te'website_root!psql%abbrevdata_schemaT Vips' ],varie. , , & , platform.5? 7  vips::text]), '/' oath_sep) || ' ' || -- S> level files - if an override  is specified we use that instead of one array_to_stri(ng(($?'cd  Z0wgetYCOALESCE(lju_,C/Cupper(lookup_na me) {/t l_#Dtiger_year"lower(20X.zip --mirror --reject=html '> "56*Arepgexp6x5D!http[s]+:/''),'ftp'')  unzip_command, '*+G&*'(]O$pre_%_proces]E'\n*L#-D -lu.insert_mod -s 4269 -g the_geom '  !ASE WHEN9singl  >T' -S ' ELSE2 ENDC]W "latin1" M>! %u.Adbf D$.(KgJ | 'Z9O oB o$W Nf -- Ifkcontained in lists input gener.scriptrit 1)&Aos = $2^0selected; 8-8  x08XHX xP 'IvalidatetopologymI 4BzDfvuIpC0toponamey I J  'Iinstall_pagc_tablesG 4Bfvu` DECLARE var_temp text; BEGIN var_temp := tiger.SetSearchPathForInstall('tiger'); /** set set search path to have tiger in front **/ IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_gaz') THEN CREATE TABLE pagc_gaz (id serial NOT NULL primary key ,seq integer ,word text, stdword text, token integer,is_custom boolean NOT NULL default true); GRANT SELECT ON pagc_gaz TO public; END IF; IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_lex') THEN CREATE TABLE pagc_lex (id serial NOT NULL primary key,seq integer,word text,stdword text,token integer,is_custom boolean NOT NULL default true); GRANT SELECT ON pagc_lex TO public; END IF; IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_rules') THEN CREATE TABLE pagc_rules (id serial NOT NULL primary key,rule text, is_custom boolean DEFAULT true); GRANT SELECT ON pagc_rules TO public; END IF; IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_gaz' AND data_type='text') THEN -- its probably old table structure change type of lex and gaz columns ALTER TABLE tiger.pagc_lex ALTER COLUMN word TYPE text; ALTER TABLE tiger.pagc_lex ALTER COLUMN stdword TYPE text; ALTER TABLE tiger.pagc_gaz ALTER COLUMN word TYPE text; ALTER TABLE tiger.pagc_gaz ALTER COLUMN stdword TYPE text; END IF; IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_rules' AND column_name = 'is_custom' ) THEN -- its probably old table structure add column ALTER TABLE tiger.pagc_rules ADD COLUMN is_custom boolean NOT NULL DEFAULT false; END IF; END; J  '&Ipprint_addyG 4BfiupGC$input| DECLARE result VARCHAR; BEGIN IF NOT input.parsed THEN RETURN NULL; END IF; result := COALESCE(input.address_alphanumeric, cull_null(input.address::text)) || COALESCE(' ' || input.preDirAbbrev, '') || CASE WHEN is_pretype(input.streetTypeAbbrev) THEN ' ' || input.streetTypeAbbrev ELSE '' END || COALESCE(' ' || input.streetName, '') || CASE WHEN NOT is_pretype(input.streetTypeAbbrev) THEN ' ' || input.streetTypeAbbrev ELSE '' END || COALESCE(' ' || input.postDirAbbrev, '') || CASE WHEN input.address IS NOT NULL OR input.streetName IS NOT NULL THEN ', ' ELSE '' END || cull_null(input.internal) || CASE WHEN input.internal IS NOT NULL THEN ', ' ELSE '' END || cull_null(input.location) || CASE WHEN input.location IS NOT NULL THEN ', ' ELSE '' END || COALESCE(input.stateAbbrev || ' ' , '') || cull_null(input.zip) || COALESCE('-' || input.zip4, ''); RETURN trim(result); END; J  %Iis_pretypeG Bfiup SELECT EXISTS(SELECT name FROM street_type_lookup WHERE upper(name) = upper($1) AND is_hw ); J '#Inormalize_addressG 4BfiuGpK<in_rawinputrE$I J  '"Ilocation_extractG 4Bfsuk8fullstreet<stateabbrevr  DECLARE ws VARCHAR; location state stmt reet_array @text[]word_count INTEGE-rec RECORDbes := 0tempStringfBEGIN IF fullSs IS NU@LL THE RETURNJEND IF; := E'[ ,.\n\f\t]'IF @AbbrevSO&T W:=+fp FROM _lookup WHERE aF)T LCOALESCE(,'')P:= regexp_spliPt_to(,ws)q:= &_upper( R ,1ff:= ''BFOR i @IN 1..NLOOPCONTPINUEN [A/-i+1]OR( {^ ? 4x ||;L" SELECT'|| ' 1,namelevenshtein_ignore_case("'!quo!it`eral(',S) as r ating^ngth()len %"nplace #v1CAS/ '%# AND ' ELSE ''!soundex )1/ pl0<= 2 ]UNION (ALL/2/co0usub//OR@DER BY 3 ASC, 14 DESC &LIMIT 1;DzEXECUTECINTOa)IF . >=sfgx:=J.bDh^ LO0Q2 sreBe(,' ',ws +a /subsUi'(?i)u;+?$dt; END; J  '!Ilocation_extract_place_fuzzyG 4Bfsuk8fullstreet<stateabbrev DECLARE ws VARCHAR; tempString location *Int INTEGEword_cou rec RECORD7st B@OOLEAN[stateYBEGIN:= E'[ ,.\n\f@\t]'; :@= subs (fullStreet, '(?i)' || ws || '([a-zA-Z0-9]+)$') IF SIS NULL THE qg=END DIFIF A bbrevIOT M fp FROM WHERE stusps "Mj SELECT into}m(*)Hplace P5.o=%AND soundex() = end_name-ELS!4&jZc> 0N-- Some potentials @were fL. Begin a"-by- on each.J_:= 50n FOR"|IN 0LOOP;8~:=_s(rec.Y%s'TRUE )get_l|asF9alT i 1.. Ysplit_part, ' ', i)) !=}8 75 FALS'c  $ "|stV-- The&Omatched, determine if the distance is better#tblevenshtein_ignore_case;) <&X:=5 ,| H@ PF;?6"???*?2<? hRETURN; END; J  ' Ilocation_extract_place_exactG 4Bfsuk8fullstreet<stateabbrev( DECLARE ws VARCHAR; location VARCHAR; tempInt INTEGER; lstate VARCHAR; rec RECORD; BEGIN ws := E'[ ,.\n\f\t]'; -- Try for an exact match against places IF stateAbbrev IS NOT NULL THEN lstate := statefp FROM state WHERE stusps = stateAbbrev; SELECT INTO tempInt count(*) FROM place WHERE place.statefp = lstate AND fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || name || '$'); ELSE SELECT INTO tempInt count(*) FROM place WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || name || '$'); END IF; IF tempInt > 0 THEN -- Some matches were found. Look for the last one in the string. IF stateAbbrev IS NOT NULL THEN FOR rec IN SELECT substring(fullStreet, '(?i)(' || name || ')$') AS value, name FROM place WHERE place.statefp = lstate AND fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || name || '$') ORDER BY length(name) DESC LOOP -- Since the regex is end of string, only the longest (first) result -- is useful. location := rec.value; EXIT; END LOOP; ELSE FOR rec IN SELECT substring(fullStreet, '(?i)(' || name || ')$') AS value, name FROM place WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || name || '$') ORDER BY length(name) DESC LOOP -- Since the regex is end of string, only the longest (first) result -- is useful. location := rec.value; EXIT; END LOOP; END IF; END IF; RETURN location; END; -D  0 "Pj4 : P  'IcreatetopologymI 4Bfvu{4atopology srid prec haszc" I J   'WIzip_rangeG Bfiu{zip<range_start4range_endX SELECT ARRAY( SELECT lpad((to_number( CASE WHEN trim(substring($1,1,5)) ~ '^[0-9]+$' THEN $1 ELSE '0' END,'99999')::integer + i)::text, 5, '0')::varchar FROM generate_series($2, $3) As i ); J   VIdrop_dupe_featnames_generate_scriptG Bfvu` SELECT array_to_string(ARRAY(SELECT 'CREATE TEMPORARY TABLE dup AS SELECT min(f.gid) As min_gid, f.tlid, lower(f.fullname) As fname FROM ONLY ' || t.table_schema || '.' || t.table_name || ' As f GROUP BY f.tlid, lower(f.fullname) HAVING count(*) > 1; DELETE FROM ' || t.table_schema || '.' || t.table_name || ' AS feat WHERE EXISTS (SELECT tlid FROM dup WHERE feat.tlid = dup.tlid AND lower(feat.fullname) = dup.fname AND feat.gid > dup.min_gid); DROP TABLE dup; CREATE INDEX idx_' || t.table_schema || '_' || t.table_name || '_tlid ' || ' ON ' || t.table_schema || '.' || t.table_name || ' USING btree(tlid); ' As drop_sql_create_index FROM (SELECT table_name, table_schema FROM information_schema.tables WHERE table_type = 'BASE TABLE' AND (table_name LIKE '%featnames' ) AND table_schema IN('tiger','tiger_data')) As t LEFT JOIN pg_catalog.pg_indexes i ON (i.tablename = t.table_name AND i.schemaname = t.table_schema AND indexdef LIKE '%btree%(%tlid%') WHERE i.tablename IS NULL) ,E'\r'); J  UIinstall_missing_indexesG 4Bfvu` DECLARE var_sql text = missing_indexes_generate_script(); BEGIN EXECUTE(var_sql); RETURN true; END J  TImissing_indexes_generate_scriptG Bfvu`& SELECT array_to_string(ARRAY( -- create unique index on faces for tfid seems to perform better --b'CREATE UNIQUE INDEX uidx_' || c.table_schema' name @column (ON K.K USING btree(W);' As FROMl (M, r !' in ations WHERE4type = 'BASE TABLE')qt INNER JOIN u*] \]! IN('') ) AS c ON (t=AND  ") LEFT pg_catalog.pg_/es i ON (i;ki.T A &$LIKE '!@%%' )  }IS N8ULLv,*(iger',_da\ta,~%2' UNION ALL10basic#S regulares= 3??Fcountyfp', 'tlidfidl r zi)place4cousubfp?Gdef%?BP-(NOT?H )1?Gist spatial58aF7d?EN|_g?J'>?I9?Hthe_geom1??5!SouL/Lsndo-Fs// fbity/?o ^ 7/` o>8  dAo=s%' O"Ro]eats'H &' orEzip%' a3Lowe?El?d?F]??֣%(>%oP?5?+?east addres$Աl_hn(fromhn, tohn)?Cj$?0?`3 /M ?B??#1var_ops B*oF_}?5o char_patternx?"e(?#9Xor?CWzip_lookup_bas& state_locq[?jur}yfullg?z?)%/?mtfcc1/** ?A?Se?edg|es?un"?Y?Q **/1Uziplr on E/?HE?5e??law ?)oY 1unique)on tlid F cn?UNIQU5u6?;7trfp_tfp6I3I:U,U,U?/o(,/oe^%_fp/o Ru tedxt\es!t&fpield_Av_ft_gist.D(to_tsvector(''english'',m))/pu_k) #QtripgramT?G_trgm?"8kh?', H?/!*?6ORDER BY 1), E'\r'); J  gSIdrop_indexes_generate_scriptG Bfsup[Ttiger_data_schema({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 976121 :constvalue 14 [ 56 0 0 0 116 105 103 101 114 95 100 97 116 97 ]}) SELECT array_to_string(ARRAY(SELECT 'DROP INDEX ' || schemaname || '.' || indexname || ';' FROM pg_catalog.pg_indexes where schemaname IN('tiger',$1) AND indexname NOT LIKE 'uidx%' AND indexname NOT LIKE 'pk_%' AND indexname NOT LIKE '%key'), E'\n'); J  'RInumeric_streets_equalG @fius@input_streetDoutput_streett SELECT COALESCE(length($1) < 10 AND length($2) < 10 AND $1 ~ E'^[0-9\/\s]+' AND $2 ~ E'^[0-9\/\s]+' AND trim(substring($1, E'^[0-9\/\s]+')) = trim(substring($2, E'^[0-9\/\s]+')), false); J  'QIdiff_zipG HCfiuK zip1 zip2 SELECT abs(to_number( CASE WHEN trim(substring($1,1,5)) ~ '^[0-9]+$' THEN $1 ELSE '0' END,'99999')::integer - to_number( CASE WHEN trim(substring($2,1,5)) ~ '^[0-9]+$' THEN $2 ELSE '0' END,'99999')::integer )::integer; J  'PIgreatest_hnG HCfiuS(fromhn tohn SELECT greatest(to_number( CASE WHEN trim($1) ~ '^[0-9]+$' THEN $1 ELSE '0' END,'99999999'),to_number(CASE WHEN trim($2) ~ '^[0-9]+$' THEN $2 ELSE '0' END,'99999999') )::integer; J  'OIleast_hnG HCfiuS(fromhn tohn SELECT least(to_number( CASE WHEN trim($1) ~ '^[0-9]+$' THEN $1 ELSE '0' END,'9999999'),to_number(CASE WHEN trim($2) ~ '^[0-9]+$' THEN $2 ELSE '0' END,'9999999') )::integer; J  'NIpagc_normalize_addressG 4BfiuGpK<in_rawinput DECLARE result norm_addy; var_rec RECORD; var_parse_rec RECORD; rawInput VARCHAR; BEGIN result.parsed := FALSE; rawInput := trim(in_rawinput); var_parse_rec := parse_address(rawInput); result.location := var_parse_rec.city; result.stateAbbrev := trim(var_parse_rec.state); result.zip := var_parse_rec.zip; result.zip4 := NULLIF(var_parse_rec.zipplus,''); var_rec := standardize_address('pagc_lex' , 'pagc_gaz' , 'pagc_rules' , COALESCE(var_parse_rec.address1,''), COALESCE(var_parse_rec.city,'') || COALESCE(', ' || var_parse_rec.state, '') || COALESCE(' ' || var_parse_rec.zip,'') ) ; -- For address number only put numbers and stop if reach a non-number e.g. 123-456 will return 123 result.address := to_number(substring(var_rec.house_num, '[0-9]+'), '99999999'); result.address_alphanumeric := var_rec.house_num; --get rid of extraneous spaces before we return result.zip := COALESCE(var_rec.postcode,result.zip); result.streetName := trim(var_rec.name); result.location := trim(var_rec.city); result.stateAbbrev := trim(var_rec.state); --this should be broken out separately like pagc, but normalizer doesn't have a slot for it result.streettypeAbbrev := trim(COALESCE(var_rec.suftype, var_rec.pretype)); result.preDirAbbrev := trim(var_rec.predir); result.postDirAbbrev := trim(var_rec.sufdir); result.internal := trim(regexp_replace(replace(var_rec.unit, '#',''), '([0-9]+)\s+([A-Za-z]){0,1}', E'\\1\\2')); result.parsed := TRUE; RETURN result; END 7*0  JF 0TN2JJ \Igeocode_addressG 4zDHBfsuG@[G@G@7iiiooo(parsed<max_resultsDrestrict_geom addy,geomout(rating({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 999859 :constvalue 4 [ 10 0 0 0 0 0 0 0 ]} {CONST :consttype 16390 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 999894 :constvalue <>})`J"]I J ( g[Iinterpolate_from_addressG 4 Afiu@@Dgiven_address0in_addr10in_addr2,in_road,in_side<in_offset_m({CONST :consttype 1043@mod -1collid 10"0lenbyval falseisnullocation 996236$value 4 @[ 16 0]} {FUNCEXPR :funcid 316 resul701tsetivariadic format 20 :inpu0 :arhgs 2 4tru65#]})6-1}) DECLARE addrwidth INTEGER; part DOUBLE PREC ISIONroad GEOMETRYesulBt var_V1 R2 ecenter_p> cl  npos integerdelx flPoat; y x0 y x1 az distQirlBEGIN I F in_IS NULL THERETURNV END IF;  := to_number( CASE WHENZ!~ '^[0-`9]+$'`ELSE '0'Y, '9');`2`2`2`geometry type( ) = 'LINESTRINGT,:= ST_Transform8, utmzone(ST_StartPointWH) )FLS{ MPULTI G?N1_ & 1A/  7c:= greatest (&,) - leaZIFP= 0 or9/ 01  2:= (give#ess ) / trunc(\, X;'>8 w1 &- 9IF&< 0 OR > 1 X0.5SGuALineIpolate,Htin_side > '' ANDoffset@_m > 0/** Compute pP th o Mof% **/CTak(to con-ration non-straight so we! azimu,th#\2zs that :dd le loc;[} v!]7S az4,Ag ?,!NG2)5n3Z1Z EST_NBsf - 1kEnd9k3 Findlargest nthaposiXis befor )N This @will b%sou calc SELECT iaObOFROM gene_series(1) As i5 WHERE5$L)Di))AORDER BY i pDESC7ro<UrE/ \+ 1V6KGOH Fq:=xaz < pi(t -t`1A*E--9T30:=I~*zn2qtf`:= ABS(COS(az)) *-c* /y/SIFN/a'z >/&2BOR3 *! xQy) ; :-;:' H;o%|"0SRIDT7--RAISE NOT ICE '2: %,l new  az: %'`AsText!_3?,54),%m %O턕.; "}ktclient_min_messages=ERRORJJ@ g[Iinterpolate_from_addressG 4 Afiu@@Dgiven_address0in_addr10in_addr2,in_road,in_side<in_offset_m({CONST :consttype 1043@mod -1collid 10"0lenbyval falseisnullocation 996236$value 4 @[ 16 0]} {FUNCEXPR :funcid 316 resul701tsetivariadic format 20 :inpu0 :arhgs 2 4tru65#]})6-1}) DECLARE addrwidth INTEGER; part DOUBLE PREC ISIONroad GEOMETRYesulBt var_V1 R2 ecenter_p> cl  npos integerdelx flPoat; y x0 y x1 az distQirlBEGIN I F in_IS NULL THERETURNV END IF;  := to_number( CASE WHENZ!~ '^[0-`9]+$'`ELSE '0'Y, '9');`2`2`2`geometry type( ) = 'LINESTRINGT,:= ST_Transform8, utmzone(ST_StartPointWH) )FLS{ MPULTI G?N1_ & 1A/  7c:= greatest (&,) - leaZIFP= 0 or9/ 01  2:= (give#ess ) / trunc(\, X;'>8 w1 &- 9IF&< 0 OR > 1 X0.5SGuALineIpolate,Htin_side > '' ANDoffset@_m > 0/** Compute pP th o Mof% **/CTak(to con-ration non-straight so we! azimu,th#\2zs that :dd le loc;[} v!]7S az4,Ag ?,!NG2)5n3Z1Z EST_NBsf - 1kEnd9k3 Findlargest nthaposiXis befor )N This @will b%sou calc SELECT iaObOFROM gene_series(1) As i5 WHERE5$L)Di))AORDER BY i pDESC7ro<UrE/ \+ 1V6KGOH Fq:=xaz < pi(t -t`1A*E--9T30:=I~*zn2qtf`:= ABS(COS(az)) *-c* /y/SIFN/a'z >/&2BOR3 *! xQy) ; :-;:' H;o%|"0SRIDT7--RAISE NOT ICE '2: %,l new  az: %'`AsText!_3?,54),%m %O턕.; "}J  'ZIincludes_addressG 4BfiuDgiven_address$addr1$addr2$addr3$addr4Z  DECLARE lmaxaddr INTEGER := -@1; rlxmin4M2verbose B@OOLEANfalse; BEGIN IF ;1 IS NOT NULL THEr:=&?To  .EN@D IF; 2<vOR ,2m P>?P P P OR R%S <<SWaSm3m 3m#33m#P6N #61 U4 4#44#P OR R%S <<SaSm G-- NoOesses were non-null, return FALSE (arbit rary)=AN2D <= The is within the? rangeC?o6p6Ysis checks to see ifsois side oBroad, i8 even,street mu`st beHIF ( % 2) = (.|OR2TRU+F.b&b&bSee abov3_s) /not)%;END; J  'YIrate_attributesG 4Bfiu  ` $dirpa$dirpb<streetnamea<streetnameb<streettypea<streettypeb$dirsa$dirsb8prequalabr DECLARE result INTEGER := 0; directionWeigh 2 name1@if one!completely%%'RA )!OR'PyPN|/PV &Zomrate_attribute4s(ASCvs (canQball!' r RETxURNR~k#Typ1xBqÇ-q'dirs k ereturng; END; J  'XIrate_attributesG 4Bfiu   $dirpa$dirpb<streetnamea<streetnameb<streettypea<streettypeb$dirsa$dirsb4locationa4locationb8prequalabr DECLARE result INTEGER := 0; locationWeight INTEGER := 14; var_verbose BOOLEAN := FALSE; BEGIN IF locationA IS NOT NULL AND locationB IS NOT NULL THEN result := levenshtein_ignore_case(locationA, locationB); ELSE IF var_verbose THEN RAISE NOTICE 'rate_attributes() - Location names cannot be null!'; END IF; RETURN NULL; END IF; result := result + rate_attributes($1, $2, streetNameA, streetNameB, $5, $6, $7, $8,prequalabr); RETURN result; END; 8*4  Jșd PX  J  ggIget_tractG 4Cfiu@c0loc_geom@output_field({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 1052036 :constvalue 8 [ 32 0 0 0 110 97 109 101 ]})d DECLARE var_state text := NULL; var_stusps text := NULL; var_result text := NULL; var_loc_geom geometry; var_stmt text; var_debug boolean = false; BEGIN IF loc_geom IS NULL THEN RETURN null; ELSE IF ST_SRID(loc_geom) = 4269 THEN var_loc_geom := loc_geom; ELSIF ST_SRID(loc_geom) > 0 THEN var_loc_geom := ST_Transform(loc_geom, 4269); ELSE --If srid is unknown, assume its 4269 var_loc_geom := ST_SetSRID(loc_geom, 4269); END IF; IF GeometryType(var_loc_geom) != 'POINT' THEN var_loc_geom := ST_Centroid(var_loc_geom); END IF; END IF; -- Determine state tables to check -- this is needed to take advantage of constraint exclusion IF var_debug THEN RAISE NOTICE 'Get matching states start: %', clock_timestamp(); END IF; SELECT statefp, stusps INTO var_state, var_stusps FROM state WHERE ST_Intersects(the_geom, var_loc_geom) LIMIT 1; IF var_debug THEN RAISE NOTICE 'Get matching states end: % - %', var_state, clock_timestamp(); END IF; IF var_state IS NULL THEN -- We don't have any data for this state RAISE NOTICE 'No data for this state'; RETURN NULL; END IF; -- locate county var_stmt := 'SELECT ' || quote_ident(output_field) || ' FROM tract WHERE statefp = $1 AND ST_Intersects(the_geom, $2) LIMIT 1;'; EXECUTE var_stmt INTO var_result USING var_state, var_loc_geom ; RETURN var_result; END; J eIreverse_geocodeG 4zDfsu@S@@G5iiooopt`include_strnum_range$intpt addy(streetx({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 1040165 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})0,fI J  dIgeocodeG 4zDzDfsuG@[G@G@7iiiooo,in_addy<max_resultsDrestrict_geom addy,geomout(rating({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 1037361 :constvalue 4 [ 10 0 0 0 0 0 0 0 ]} {CONST :consttype 16390 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 1037400 :constvalue <>})Z  DECLARE rec RECORD; BEGIN IF NOT IN_ADDY.parsed THEN RETURN; END IF;4-- Go for the full monty if we've got enough in fohdstreetName IS~NULL ADNDs (*z$ip #OREateAbbrev #F)IFORISELECT *FROM  (! DISTINCT ON (  (a.addy) ress, predira%name# typBeL postrinternal!location atzip )  tiger.geo`code_j%$, max_results, restrict_g@eom) a JORDER BY a.rating) as &br b+ L0IMIT,LO$OP3  :=1{A|GEO0MOUToutRATINGmBG NEXTIF4= 0G/ZH EIM KI]KNo A!, try / need both orQ`ll get too much stuffs.[e_;VW_<Q@_]Y\inVT2<F7}) DECLARE rec RECORD; BEGIN IF input IS NULL THEN RETURN; END IF; -- Pass the input string into the address normalizer ADDY := normalize_address(input); IF NOT ADDY.parsed THEN RETURN; END IF; /* FOR rec IN SELECT * FROM geocode(ADDY) LOOP ADDY := rec.addy; GEOMOUT := rec.geomout; RATING := rec.rating; RETURN NEXT; END LOOP;*/ RETURN QUERY SELECT g.addy, g.geomout, g.rating FROM geocode(ADDY, max_results, restrict_geom) As g ORDER BY g.rating; END; J( `Igeocode_intersectionG 4zD Afiu8 (G@ = iiiiiiooo 0roadway10roadway20in_state,in_city(in_zip<num_results addy,geomout(rating({CONST :constty pe 25mod -1collid 100lenbyval false isnullocation 1@028719%value 4 [ 16 0]} e563 "4 tru80Q]}) bI cdjoin_collapse_limit=2JJ@ `Igeocode_intersectionG 4zD Afius G@= iiiiiiooo 0roadway10roadway20in_state,in_city(in_zip<num_results addy,geomout(rating,({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 1028719 :constvalue 4 [ 16 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 1028756 :constvalue 4 [ 16 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 1028801 :constvalue 4 [ 10 0 0 0 0 0 0 0 ]}) aI J  _Igeocode_locationG 4BzDfsuG@SG@G@5iiooo(parsedDrestrict_geom addy,geomout(rating<({CONST :consttype 16390 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull true :location 1024845 :constvalue <>})z DECLARE result RECORD; in_statefp V@ARCHARstmt var_debug boolean := false; @BEGIN K:=  FROM @ WHERE .stusps = parsed.Abbrev; MIFuTHEN RAISE NOTICE 'geocode_location[rting: %', clock_timestamp()END IF (FORI^SE0LECT coalesce(zip.city)::varchar as place,.%zipzipST_Centroid(zcta5.the_geom),addressg5as.100::inte ger +levenshtein_ignore@_case(,#r6),0inx_ra>mvzip_lookup_base JOIN  ON d=.ce AND% ) N#*N%($=@0"M:|OR(soundex =  and 'zORDER BY u+ LOOPZADDY#1E#."k!#8-&&zip#tru5GEOMOUT4)$RATING#&62 RETUR@N NEXTIF6=!7-Z54E < IS 0NULLJ !:= wC|-C $<(I*LIMIT >1O |M4R:=$ 'C 'E3|| ' pl.nameG ZEv#a +IplO 8L?<), 'Aquote_liter al&,'')^)pK (**i2|}x2COALESCE('BST_Intersects(restrict:::te$xtO::etry, k', ''AS pl INNER[PPZ\) =U X3&nd!\ H8[7 _/D.;*mt EXECUT!~mteo6Z,Mto{endAhitaD' i m/   END; -H  JJ ؎&؍. > *P   IcreatetopologymI Bfvup SELECT topology.CreateTopology($1, ST_SRID('POINT EMPTY'::geometry), 0); P   IcreatetopologymI Bfvu[ SELECT topology.CreateTopology($1, $2, 0); P   'IcreatetopologymI Bfvuc0toponame srid preci SELECT topology.CreateTopology($1, $2, $3, false);IP   ?Ipopulate_topology_layermI BzDfvu`C1ttt<schema_name8table_nameHfeature_column INSERT INTO topology.layer WITH checks AS ( SELECT n.nspname sch, r.relname tab, replace(c.conname, 'check_topogeom_', '') col, --c.consrc src, regexp_matches(c.consrc, '\.topology_id = (\d+).*\.layer_id = (\d+).*\.type = (\d+)') inf FROM (SELECT conname, connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc FROM pg_constraint) AS c, pg_class r, pg_namespace n WHERE c.conname LIKE 'check_topogeom_%' AND r.oid = c.conrelid AND n.oid = r.relnamespace ), newrows AS ( SELECT inf[1]::int as topology_id, inf[2]::int as layer_id, sch, tab, col, inf[3]::int as feature_type --, src FROM checks c WHERE NOT EXISTS ( SELECT * FROM topology.layer l WHERE l.schema_name = c.sch AND l.table_name = c.tab AND l.feature_column = c.col ) ) SELECT topology_id, layer_id, sch, tab, col, feature_type, 0, NULL FROM newrows RETURNING schema_name,table_name,feature_column; )P  'IdroptopogeometrycolumnmI 4Bfvuc(schematblcol| DECLARE rec RECORD; lyrinfook BOOL result text; BE@GIN -- Get layer and topology PH= falDseKFORzIN EXECUTE 'SELECT t.name asC , l.* FROM *'q'`.it,u.l0 WH ERE l0_id = t.id%AND l.s@chema_= ' || quote_litePral(!)8||8table7 tbl4feature_colu$mn8co8LOOP?LtruK=SEND-B;-- Lnot found IF NOBTITHENFRAISE EXCEPTION 'Noregistered on %.%.%',4 ,tbl,c$ol}IF{Clean up the'6 #F$A,+relatpion T"&)D`ELETE$.ident( qs.V' ?#!aUDrosequen@ce forgeoms in 0thisJ ROP SEQUENCEa_s_h8WHEN UNDEFINED_TABLE!NOTI%', SQLERRM#c?OTHERS6(4Got %0 (%)A STATE$=OD4pg2Ospace n,class c attribute !MREB(n.nsRp8 ='p 2vc! X= n.oi1@$@tblIa.vel"cg9 9co9?EHXIT>IF:-- Set D'QA'to NULLbypreferential integrityBchecks+UPDA-x?D#h5 $FDSETID%='O$Delete2FEqcorW?\^[: \?6gALTER 3pl3B7mcascadent= 'cB(||4>qtbl#x) dropped'oRETURN v; 2tP  IaddtopogeometrycolumnmI Bfvu SELECT topology.AddTopoGeometryColumn($1, $2, $3, $4, $5, NULL); P  'IaddtopogeometrycolumnmI 4Bfvu0toponame(schematblcol$ltype$child DECLARE intltype eger; newlevel topoid rec @RECORD4ayer_ %query text; BEGIN -- GetSlogy id SELECT id INTOp F(ROM-.6WHERE name, = ;`IF NOT FOUND THENGRAISE EXCEPTION 'TJ% does not exist', quote_litePral(^)E`ND IFi=ILIKE '%POINT%' OR PUNTALF'w= 1ULSMLINELL2LPOLYGONOARN3N(COLIQGE@OMETRYT4WT!|L!D ,must be o@ne of [,U,,'--#gAdd! Geometry column in schema.table6@EXECUTLTER TABL@E ' ||$ident(:) || '."tbl ADD C OLUMNLco' *& ;' See if chi ld12"s an tract its 27IF0IS2NULL4~3+ 1F""%"',,H"U%,/6A!6cid from seque nc/) 0this is hier1ical4WT-- Ele!Type mus"tthech0ild KEW$.e2_t3!=?|)T eofZ Bsh%|sbe"~its}$^d2 {')+ dIduanAvTopoGeometry'&#A/geo"%|| quote_ident(5)"7&!#-^" (0&.'+/I/he !ELSE)a basic/compatiblec!feature&4r!=409 1*D%:'??A ?'+Now lets see ifccons3:, which8eFtables.k sNod3 O= 1V=? nod1;?597O?v:x?z9|=~?/I;oy>s.+/-An EdgELS2+edg 5dataTabs((VCHh Fac3? 'Pn %0 canqss ociatan|y D/cfac/c 5/^OO!nl/YJ 5EW; END; P  }IlayertriggermI 4Bfvu` DECLARE rec RECORD; ok BOOL toponame varcharquery TEXT; BEGIN --RAISE NOTICE 'LayerTrigger called % % at % level', TG_WHHEN OPL EVEL;RIF = 'INSERT' THE@N mEXCEPTION pnot meant to be1on IELS cUPDATEc Thelogy.lp tab l_nrbe u@pdated`ND IF-- Check for existance of any feature column refere ncing;this p FORIN SELECT * FROM pg_space n,class c attribute aWHERE text( n.nsp<) = OLD.sc0hemaO,AND c.rela= n.oidI$I Ha.elid = c/D D_ ` LOOP4#= ' ''' || quote_ident ( )2|| '>.- ,@_id(zA )||') =w*N hLIMIT 1"Rq?f%',(EXECUTEw8%EA&({ %!% % still#s in %.%. 5v"Z) RETURN NULB3X5d 3+Ge1$x$B"6*INTO?F8" EVISM9^CouldaBfindTwithi%', LOIiC;reco$rdthla0tionDesOC2OGO7 O,  %11?,: A;i?n%3sy4',v;?: *OLD; END; H-@  P` (BЖbؐl`D 膞Ѐ& P   'IgeometrymI 4Bfvu@pIC0topogeom DECLARE toponame varchar; geometryrec RECORDplyrc sql TEXT; BEGIN -- Getklogy p SELECT FROM!. WHERE id =_id INTO IFIS NULL THEN RAISE EXCEPTION 'Invalid TopoG (unexistenid %)',xEND IF;layer info* $U AND_ (%Could not fin% in%(-If this feature9s on any level > 0 we will7compute theical union of all childZs9in fact!ursing.&.r(4{V hH/1V2/ * += , C*:= '6st_multi(st_&(A%~('|| quote_ident(._column)*'))) asCG schemTa_A>)>.. t0able-q, ' .ETrelat!pr_ &'$% prWgeo#[r& W"? =(r ;J+Aid(' ||m!r.elementx P af,type ' #d--#DEBUG 'Aquec EXECUTE"}2@ "ELSGd:#S= 3F["]polygozn}D/ &ST_GetFace/literal,>,('i%/ JC'g'o)(u'.)_+1a2lineST_Line Merge Collect(e.eLFedge e,.tr;!??!<=P>abs(91ve_id%b1?Qint6Unnode n1Zo= n(4mixed c3OWITH areas AS (ST_6UO[O)'r in^eFO OL b Bns7dMROQGQOunK7CUNkALL # G4m) 77$Mu5 g))9un_EI#- ies&known H]`IFÈޥ|HQMULTIPOLYGON EMPTY9TLINESTRINGWINT SE +GEOMETRYCOL 3LVRETURNEND P   'IgettopogeomelementsmI 4BzDfsuIpI;tg DECLARE toponame varchar; rec RECORD; BEGIN toponame = topology.GetTopologyName(tg.topology_id); FOR rec IN SELECT * FROM topology.GetTopoGeomElements(toponame, tg.layer_id,tg.id) as ret LOOP RETURN NEXT rec.ret; END LOOP; RETURN; END; P  'IgettopogeomelementsmI 4BzDfsuIk0toponame,layerid tgid DECLARE ret topology.TopoElement; rec RECORD; rec2 RECORD; query text; query2 text; lyr RECORD; ok bool; topoid INTEGER; BEGIN -- Get topology id SELECT id INTO topoid FROM topology.topology WHERE name = toponame; IF NOT FOUND THEN RAISE EXCEPTION 'Topology % does not exist', quote_literal(toponame); END IF; -- Get layer info ok = false; FOR rec IN EXECUTE 'SELECT * FROM topology.layer ' ' WHERE layer_id = $1 AND topology_id = $2' USING layerid, topoid LOOP lyr = rec; ok = true; END LOOP; IF NOT ok THEN RAISE EXCEPTION 'Layer % does not exist', layerid; END IF; query = 'SELECT abs(element_id) as element_id, element_type FROM ' || quote_ident(toponame) || '.relation WHERE ' ' layer_id = ' || layerid || ' AND topogeo_id = ' || quote_literal(tgid) || ' ORDER BY element_type, element_id'; --RAISE NOTICE 'Query: %', query; FOR rec IN EXECUTE query LOOP IF lyr.level > 0 THEN query2 = 'SELECT * from topology.GetTopoGeomElements(' || quote_literal(toponame) || ',' || rec.element_type || ',' || rec.element_id || ') as ret;'; --RAISE NOTICE 'Query2: %', query2; FOR rec2 IN EXECUTE query2 LOOP RETURN NEXT rec2.ret; END LOOP; ELSE ret = '{' || rec.element_id || ',' || rec.element_type || '}'; RETURN NEXT ret; END IF; END LOOP; RETURN; END; P  'IgettopogeomelementarraymI 4BfsuIpI;tg DECLARE toponame varchar; BEGIN toponame = topology.GetTopologyName(tg.topology_id); RETURN topology.GetTopoGeomElementArray(toponame, tg.layer_id, tg.id); END; P  'IgettopogeomelementarraymI 4BfsuIk0toponame0layer_id tgid8 DECLARE rec RECORD; tg_objs varchar := '{'; i integer; query text; BEGIN query = 'SELECT * FROM topology.GetTopoGeomElements(' || quote_literal(toponame) || ',' || quote_literal(layer_id) || ',' || quote_literal(tgid) || ') as obj ORDER BY obj'; -- TODO: why not using array_agg here ? i = 1; FOR rec IN EXECUTE query LOOP IF i > 1 THEN tg_objs = tg_objs || ','; END IF; tg_objs = tg_objs || '{' || rec.obj[1] || ',' || rec.obj[2] || '}'; i = i+1; END LOOP; tg_objs = tg_objs || '}'; RETURN tg_objs; END; P  'IgettopologysridmI BfsupC0toponameq SELECT SRID FROM topology.topology WHERE name = $1; P  'IgettopologyidmI 4BfsupC0toponame DECLARE ret integer; BEGIN SELECT id INTO ret FROM topology.topology WHERE name = toponame; IF NOT FOUND THEN RAISE EXCEPTION 'Topology % does not exist', quote_literal(toponame); END IF; RETURN ret; END P  'IgettopologynamemI 4BfsupC(topoid, DECLARE ret varchar; BEGIN SELECT name FROM topology.topology into ret WHERE id = topoid; RETURN ret; END P  'IcreatetopogeommI BfvuIs0toponame,tg_type0layer_idq SELECT topology.CreateTopoGeom($1,$2,$3,'{{0,0}}'); P  'IcreatetopogeommI 4BfvuII0toponame,tg_type0layer_id,tg_objs DECLARE i integer; dims varchaoute"r innobj_type Nid ret topology.TopoGeometryc R ECORDlayer RlevelchillBEGIN @ IF tg< 1 OR> 4 THEN RAISE EXCEPTION 'InvaPlid 8% (must b the range 1..4)',`END IF;-- *G ourn g SELECT%INTOE%.:_idFROMMXWHERE name = IF NOT FOUND J% does not exist', quote_literal(^) infoـ:= NULL>FOR"IN EXECUTE '-* @' ' = ' ||5|| 'p AND- LOOP-=.feature*# # _id.h%Check forkence of givenDIFIS@ No=with!N% is reg1dred&<%', ,(=-Verify compatibility betweg:3an--& request ed * != 4> 5A LDof5can!contain a_;(? S'dD5objectC##l T .$^ch<>newif rom s:nc++?; nextval(!(;4Dident72*2?@geo_s_=% #)162!~/Loop ovabaxensionb= array_lower(tg_objs, 1Bhld^=![i][1]3|f 2]Ele ments0 represent emptin@ess, jQs(kipQm>IF `0'id! /Malformedpy2p e@ {0,%}id en0 as well',g' LSqJVa specifies k-(#sxB6 ??s=F 1zW$ie !4SFC%dorGmat|chWScS6O DO: vSvthatveferQWreallC>bRselation tableL ?,B--NOTICE 'obj:%:% id:i'@ InsertAorR 8FINSERT'||OB Aag׆;? ) ' VALUES ('||Ct',Z ,R;D "aRF;$Q i+1IF i >Tupp[)0EXIT N\RETURNQ; END =.@  & Ph ؆***.P   'I_st_mintolerancemI 4Bfsu@c4atopology$ageom DECLARE ret FLOAT8; BEGIN SELECT COALESCE( NULLIF(precision, 0), topology._st_mintolerance($2)) FROM topology.topology WHERE name = $1 INTO ret; IF NOT FOUND THEN RAISE EXCEPTION 'No topology with name "%" in topology.topology', atopology; END IF; return ret; END; P   'I_st_mintolerancemI Bfiup@C$ageom, SELECT 3.6 * power(10, - ( 15 - log(coalesce( nullif( greatest(abs(ST_xmin($1)), abs(ST_ymin($1)), abs(ST_xmax($1)), abs(ST_ymax($1))), 0), 1)) )); P  'IgetfacebypointmI ?fsu@s4atopology(apoint tol1GetFaceByPoint;$libdir/postgis_topology-2.5P  'IgetedgebypointmI ?fsu@s4atopology(apoint tol1GetEdgeByPoint;$libdir/postgis_topology-2.5P  'IgetnodebypointmI ?fsu@s4atopology(apoint tol1GetNodeByPoint;$libdir/postgis_topology-2.5P  'IequalsmI 4BfsuIIKtg1tg2 DECLARE rec RECORD; toponame varchar; query text; BEGIN IF tg1.topology_id != tg2.topology_id THEN -- TODO: revert to ::geometry instead ? RAISE EXCEPTION 'Cannot compare TopoGeometries from different topologies'; END IF; -- Not the same type, not equal IF tg1.type != tg2.type THEN RETURN FALSE; END IF; -- Geometry collection are not currently supported IF tg2.type = 4 THEN RAISE EXCEPTION 'GeometryCollection are not supported by equals()'; END IF; -- Get topology name SELECT name FROM topology.topology into toponame WHERE id = tg1.topology_id; -- Two geometries are equal if they are composed by -- the same TopoElements FOR rec IN EXECUTE 'SELECT * FROM ' || ' topology.GetTopoGeomElements(' || quote_literal(toponame) || ', ' || tg1.layer_id || ',' || tg1.id || ') ' || ' EXCEPT SELECT * FROM ' || ' topology.GetTopogeomElements(' || quote_literal(toponame) || ', ' || tg2.layer_id || ',' || tg2.id || ');' LOOP RETURN FALSE; END LOOP; FOR rec IN EXECUTE 'SELECT * FROM ' || ' topology.GetTopoGeomElements(' || quote_literal(toponame) || ', ' || tg2.layer_id || ',' || tg2.id || ')' || ' EXCEPT SELECT * FROM ' || ' topology.GetTopogeomElements(' || quote_literal(toponame) || ', ' || tg1.layer_id || ',' || tg1.id || '); ' LOOP RETURN FALSE; END LOOP; RETURN TRUE; END P 'IintersectsmI 4BfsuIIKtg1tg2~1V I P  'IcopytopologymI 4Bfvuc4atopology,newtopo DECLARE rec R@ECORD;2oldtopo_id integernew 4Et text; BEGIN SELECT * FROM >logy. where name = a INTO strictE =.id-- TODO: more gracefully handle unexistentCreateT(,iSRID pre@cisionhasZ) &;h-- Copy faces EXECUTE 'INSERT;' || quote_ident\ '.@O6A 8WHERE>!= 0';@Update sequence ssetval(sliteral(k _|`_seq'2, (alast_value[))'unodu+@u"8bKaD[_a? [aedga+@_dataf"=kkEs_ p?`ulayers and their AGeom0etryFORRIN_LD SbWo LOOP E(@, feature@_type,blevel, child%schema_a , table >column VALUES CQvz. U 0'LAYER"4 j'')!bF's////1geo_s_ ASTRICT n|CREATE SEQUENCE? 4ws _?p075w n 1/ 8END":;definitionO*relaDO"<3RETURNAEND P  'ItopologysummarymI 4BfsupK4atopologyH DECLARE rec R@ECORD;2var_topology_id integern 4 missingsql textPt tgcount(@BEGIN #:= 'Th ' || quote_ident(a1) ;2; SELECT * FROM '. WHERE name = G INTO STRICT -- TODO: catch to give a nice error message:&:=V.id|| ' (id&, ',SRID,sr. precipsion3IFhasz THEN , has Z'; EN0D IF6 %E')\n'EXCEPTIOWPNO_DATA_FOUNDc D (unregi@steredRNDEXECUTE '"D(*)/, x.nodxe 'n#.s, UNDEFINED_TABLE OR INVALID_SCHEMA_NAME IF NOT EXIS0TS (+pg_catalog.pg_!space%sp-J v '5sche maRETUR" ELSAF %3&0Eedge?-; gDfacgreatest(n-1,0);A-1 is=0Lwdistinct layer_id) AS lnWGb ,(-,:geo89tnd=oQdrelationhfeTtxms iXlE's_C=qErUICOLUMNJ corruptedL@-- prirform$ about W FOR[IN+ lRE lv qF=}X*ORDER by&) PLOOP{'Lf6dtypreECAF>/feature_(= 1__ Punt,alVD2D LineD3 oly(gonG4G MixedWo???'aF )B.5O,UA(%ZDISTINCT?5y:O "G r5$r'2=/F = ) foof?qM)Z|E'2sT&D_? naANULLXy,leve l > 0/. Hierarchy~ 0,63chilD634d Deploy:%ocolumn != '' )(u/d/|/abable8! )nrC?' ??"?&/6*#>id( C?) as1>EIt =u.UJ4 6) ?z unexnt 5 [4 \B  NYco E'NONE (deta|ch a}a}& ( contain "t%<6{o<;N H'3$1 BYK:--RAISE DEBUG '%',.: 0Addcan onlyused againsties withs defined:; Fif+! crosses an existing node@%9098ST_BC($1,")' USING#H/J_8%',lintersect2on anythbut end2sTFollow DE-9 IQion Matrix represent1C|rela'we accept.V F FD 1 * * 1 * 2+Exa@mple1:8Hs toucat0 oneQF1 F00 10J** 1*2 <ur match k2kboth%mF 1Fm/~ _id#5,!J RIe&I, 2) as im/" #$1 &&H/@ IFyM(!}im, 'FF1F**1*2')4GCONTINUE; -F-1"yior'i,on+G +Reuse!EQUAL#(be it cloA"or not) 1FF F*FFF RETURN2;Y;WARNING:"constructive oper#might throw3L!tqix =9)cU5 WHEN OT0HERSCNOTICE 'Could comput8between inp1J%)r %'::textCT&r)&OH`(on7)SJu %2r near EST_AsText(ST_P$OnSura(ix))OGet newDd from sequenc_extval('@ || 3Nliteral(aԁ?`_data_Ű_seq1 )w3T=St_Inser!qerowINSERT INTOO d(fstart_=aP, e_l(eft,_r1)$,  bVVALUES(' ||', A.addNode( "TSM"O($1))d1EndbN1-fu|>0$1!{T.r; END P  'IaddnodemI Bfvu@c4atopology(apointg SELECT topology.AddNode($1, $2, false, false); P  gIaddnodemI 4Bfvu@4atopology(apointXallowedgesplittingTsetcontainingfacep({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 87605 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) DECLARE nodeid int; rec RECORD; containing_face$BEG@IN -- Atopology and apoint are requireBd*IF a*IS NULL OR1THEN RAISE EXCEPTION 'Invalid null argument'; END 0IF; Qmust be a substring(geometrytype(), 1, 5) != 'POINT' Node E pCheck if a coinc@ident  already @exists2We uswdex AND x/y equalitBy&FOR IN EXECUTE 'SELECTZ_id FROM ' |@| quotent() || '.' || 'WHERE && $1!ST_X9) = $1)Y Y' USING LOOPOETURN x_id3!5ny edge crosses this((endcs"~fine)"P"("ST_DWithin($1,1, 0,NOT*Es)ST_StartP:5End 3c1ullowEdgeSplit0ting3d .ST_Mod/,/,j)A# ELSE >#Ane giveny.'@4(setCFFAMD:=Get-By(zMA$=Get new3id from seque nc"? extval(4e#kliteral( ?_4,_seq!)'6XT=3Yo?YInsert1rowINSERT INT^OB?4(,T3,VALUESEid,coalesce( ?::textH, '')6",Ae*$^; END /<  PV` X؈pTrP   'Ist_removeisoedgemI ?fvuc4atopology(anedgeST_RemIsoEdge;$libdir/postgis_topology-2.5P  'I_asgmlnodemI 4Bfiu@id$point<nsprefix_in prec,options0idprefix(gmlverD DECLARE nsprefix text; gml text; BEGIN nsprefix := 'gml:'; IF NOT nsprefix_in IS NULL THEN IF nsprefix_in = '' THEN nsprefix = nsprefix_in; ELSE nsprefix = nsprefix_in || ':'; END IF; END IF; gml := '<' || nsprefix || 'Node ' || nsprefix || 'id="' || idprefix || 'N' || id || '"'; IF point IS NOT NULL THEN gml = gml || '>' || '<' || nsprefix || 'pointProperty>' || ST_AsGML(gmlver, point, prec, options, nsprefix_in) || '' || ''; ELSE gml = gml || '/>'; END IF; RETURN gml; END P  'Itopogeom_remelementmI 4BfvuIIIKtgelX DECLARE toponame TEXT; sql TEXT; BEGIN -- Get topology name BEGIN SELECT name FROM topology.topology INTO STRICT toponame WHERE id = topology_id(tg); EXCEPTION WHEN NO_DATA_FOUND THEN RAISE EXCEPTION 'No topology with name "%" in topology.topology', atopology; END; -- Delete the element sql := format('DELETE FROM %s.relation WHERE ' 'topogeo_id = $1 AND layer_id = $2 AND ' 'element_id = $3 AND element_type = $4', quote_ident(toponame)); EXECUTE sql USING id(tg), layer_id(tg), el[1], el[2]; RETURN tg; END P  'Itopogeom_addelementmI 4BfvuIIIKtgel DECLARE toponame TEXT; sql TEXT; BEGIN -- Get topology name BEGIN SELECT name FROM topology.topology INTO STRICT toponame WHERE id = topology_id(tg); EXCEPTION WHEN NO_DATA_FOUND THEN RAISE EXCEPTION 'No topology with name "%" in topology.topology', atopology; END; -- Insert new element sql := format('INSERT INTO %s.relation' '(topogeo_id,layer_id,element_id,element_type)' ' VALUES($1,$2,$3,$4)', quote_ident(toponame)); BEGIN EXECUTE sql USING id(tg), layer_id(tg), el[1], el[2]; EXCEPTION WHEN unique_violation THEN -- already present, let go WHEN OTHERS THEN RAISE EXCEPTION 'Got % (%)', SQLERRM, SQLSTATE; END; RETURN tg; END P gItotopogeommI 4BfvuI@Is$ageomtg8atolerance({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 119099 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1})I P  gItotopogeommI 4BfvuI@$ageom4atopology(alayer8atolerance({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 115669 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1})> DECLARE layer_info RECORD; topologyg.TopoGeometryyp TEXT; BEGIN -- Ge t3 Nrmat@ion ' SELECT * FROMf  INTO STRICT WHERE name = aEXCEPTIOlWHEN NO_DATA_FOUND THE RAISE!2 'Nowithb"%" iRn',H ND;t, C ASfeature_typ1 'punt(al'* 2*line* 3*ar) 4)mixed)ELSE 'unexpected0_'|| 8'ND as!2eO"l'RE lq3_id  ApND l!*;.id/'2"$id-")-,/%Can't conver1@ a hierarchica lWg4| IF.level > 0 LDof is m,@ canno it. IFheck compatibility and create e`mpty I\<1B:#, 2:#, 3:", 4:collec4KpA= %u(a)IF 'GEOMETRYCOBL1vION'7-`- A \ only go 'o:3!54N %hold a o)4 ,,1>, )5) tgd :7=.C(a, 4,$nELSqPOINT' ORMULTIBS-- Apointgo1X! or$!q_! SY<x1LINEQoNG'c 3 _Fc<x2?Q LYGA>SR-n FX; x3-- Should never happea Unsupporteds>8%', |g toCa, tgrlerance)5RETURN tg; END P  'Ist_simplifymI 4Bfvu@I[tg4tolerance DECLARE topology_info RECORD; layer child_geometrysql TEXT; BEGIN -- (Gets Crmation SELECT id, name PFROM,. INTO WHERE id = tg2_idIF NOT FOUND THEN3 RAISE EXCEPTION 'NowithQ"%" in',jEND IF;2* $U'AND"$Could not find ToXpoG% %~If this feature$s on any level > 0 we will7compute theical union of all simplified#;jsfact recursing.IF3.-C{\ n3]/=s/Invali (unexisten %) ,(!C):= '9st_multi(st_(DST_"Sy('|| quote_ident( ._column)6','tol@erance))) asCgschema_A )J.:tablve9  :J.jrelRD prMu'$m prgeo#Sg.&O&?!{ 7(5Jo;id('||%) =|element~ \ mr8type '#37DEBUG 'Asql$XECUTE"2!@"ELSIF2I= 3FJ["]polygon}G]TODO: use ST_GetFaceEdges !is1. unaryCne`eded??W2(ST_BuildArea NodeCollect 6s,q>JTopod*iesCknown H9 WZRETURNwEND P  'IcleartopogeommI 4BfvuIpI;tg DECLARE topology_info RECORD; sql TEXT; BEGIN -- Get topology information SELECT id, name FROM topology.topology INTO topology_info WHERE id = topology_id(tg); IF NOT FOUND THEN RAISE EXCEPTION 'No topology with id "%" in topology.topology', topology_id(tg); END IF; -- Clear the TopoGeometry contents sql := 'DELETE FROM ' || quote_ident(topology_info.name) || '.relation WHERE layer_id = ' || layer_id(tg) || ' AND topogeo_id = ' || id(tg); EXECUTE sql; RETURN tg; END P  'Ist_geometrytypemI BfsupI;tg SELECT CASE WHEN type($1) = 1 THEN 'ST_MultiPoint' WHEN type($1) = 2 THEN 'ST_MultiLinestring' WHEN type($1) = 3 THEN 'ST_MultiPolygon' WHEN type($1) = 4 THEN 'ST_GeometryCollection' ELSE 'ST_Unexpected' END; X/l0  6 PБ^:, xphX@0 20P  Ist_remisonodemI ?fvu#ST_RemoveIsoNode;$libdir/postgis_topology-2.5P  'Ist_removeisonodemI ?fvuc4atopology$anode#ST_RemoveIsoNode;$libdir/postgis_topology-2.5P  'Ist_moveisonodemI ?fvu@{4atopology$anode(apointST_MoveIsoNode;$libdir/postgis_topology-2.5P  'Ist_addisonodemI ?fvu@{4atopology$aface(apointST_AddIsoNode;$libdir/postgis_topology-2.5P  'Ist_getfacegeometrymI ?fsu@[0toponame$aface'ST_GetFaceGeometry;$libdir/postgis_topology-2.5P  'Ist_remedgemodfacemI ?fvuS0toponame e1id%ST_RemEdgeModFace;$libdir/postgis_topology-2.5P  'Ist_remedgenewfacemI ?fvuS0toponame e1id%ST_RemEdgeNewFace;$libdir/postgis_topology-2.5P  'Ist_modedgehealmI ?fvuc0toponame e1id e2idST_ModEdgeHeal;$libdir/postgis_topology-2.5P   'Ist_newedgehealmI ?fvuc0toponame e1id e2idST_NewEdgeHeal;$libdir/postgis_topology-2.5P   'Ist_getfaceedgesmI ?zDfsuI[0toponame,face_id!ST_GetFaceEdges;$libdir/postgis_topology-2.5P  'IastopojsonmI 4BfvuI[tg@edgemaptable I P   'IasgmlmI BfsupI;tgK SELECT topology.AsGML($1, 'gml'); P   'IasgmlmI BfvuIstg@visitedtable0nsprefix[ SELECT topology.AsGML($1, $3, 15, 1, $2); P  'IasgmlmI BfvuI[tg@visitedtablea SELECT topology.AsGML($1, 'gml', 15, 1, $2); P  'IasgmlmI BfsuIStg0nsprefix_ SELECT topology.AsGML($1, $2, 15, 1, NULL); P  'IasgmlmI BfsuIstg0nsprefix prec optsa SELECT topology.AsGML($1, $2, $3, $4, NULL); P  'IasgmlmI BfvuItg0nsprefix prec,optionsvise SELECT topology.AsGML($1, $2, $3, $4, $5, ''); P  'IasgmlmI BfvuItg0nsprefix prec,options@visitedtable0idprefixk SELECT topology.AsGML($1, $2, $3, $4, $5, $6, 3); P 'IasgmlmI 4BfvuItg<nsprefix_in@precision_in8options_in@visitedtable0idprefix(gmlverI P  'I_asgmlfacemI 4Bfvu0toponame,face_id@visitedtable<nsprefix_in prec,options0idprefix(gmlverni DECLARE visited bool; nsprefix textgml rec RECORD2bounds geometry; BEGIN T:= 'gmHl:'0IF_in IS NOT NULL T@HEN $= ''Y= ']` ELS' || ' END IF  9<',F8Fa8ce Gidd="id 1f@ace_id">'f-- Construct Xthe%G,n for each polygon: FORIN SELECT (ST_DumpRings(ForceRHR(topology.STP_GetGp(Aname,)0))). LOOPtents of a direc#!Sarelist edges;that cover&specific ring&$X= ST_B ary(re^cC2E XECUT B' e.*,GLineLocatePoint($1',%Interpol*ev, 0.2)) as pos<a.8a2 FROMB CquoteTnt) d.k e WHERE ( e.leftB_= $2 OR e.righ#) ANDCs) ORDER BYUSING&^{)R3y=X?%dEdge3F&Rif this"i goes in same$ion t>o!n 6!vmake it with negative orientaG@IF"z.> B] D i="-"DI DoYkkeepifTable was give "^4W6Otrue-$ T,::a@ "'$element_typ!u2"eidQ ;aU LIMIT 1 INTOw, i:9Use xlink:hxref1 )1="#_E  b /a 'CONTpINUE hMarkA#oth`erwis'INSERT) (,) VALUES (2,) .ut.f_AsGM.LAa },start_node,Gnd77RBd,Cpr@ec, opA s ,&k,ver)V\8/_9 R|Q T ?LRETURN.; END P  'I_asgmledgemI 4Bfvu  @P ,edge_id8start_node0end_node line@visitedtable<nsprefix_in prec,options0idprefix(gmlver | DECLARE visited bool; nsprefix textgml BEGIN $:= ' gml:')IF_in IS NOT NULL THEN a$= ''Y= '] ELSA' || ' END IF  <',F8Edge Gid="id 1edge_id">'f-- Start notdev=&|directedNode orientation="-"-- Dokkeepi ng ifTable was given= .EXECUTE 'SELECT true FROM 'd|| M::!% "' WHERE element_type = 1 hANDi]sD_D LIMIT 1 INTOu~ xlink:href="#N{ /,-- Mark asAINSERTWX0 h(&,) VALUES (1,))/+'% topology._AsGML!(~,Q,9,pre c, op!s,,xver)8'+TST(,m, )D zH ORETURN.; END x5HP  64X8Xb(`"Xl PR   ?J_pgr_strongcomponents ?zDfiupK3iooo4edges_sqlseq4component node-_pgr_strongcomponents3$libdir/libpgrouting-3.0P   'IgetnodeedgesmI 4BzDfsuIc4atopology$anode DECLARE curedge int; nextedge int; rec RECORD; retrec topology.GetFaceEdges_ReturnType; n int; sql text; BEGIN n := 0; sql := 'WITH incident_edges AS ( SELECT edge_id, start_node, end_node, ST_RemoveRepeatedPoints(geom) as geom FROM ' || quote_ident(atopology) || '.edge_data WHERE start_node = ' || anode || ' or end_node = ' || anode || ') SELECT edge_id, ST_Azimuth(ST_StartPoint(geom), ST_PointN(geom, 2)) as az FROM incident_edges WHERE start_node = ' || anode || ' UNION ALL SELECT -edge_id, ST_Azimuth(ST_EndPoint(geom), ST_PointN(geom, ST_NumPoints(geom)-1)) FROM incident_edges WHERE end_node = ' || anode || ' ORDER BY az'; FOR rec IN EXECUTE sql LOOP -- incident edges { n := n + 1; retrec.sequence := n; retrec.edge := rec.edge_id; RETURN NEXT retrec; END LOOP; -- incident edges } END P   gIgetringedgesmI 4BzDfsuI{4atopology(anedge0maxedges$({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull true :location 168162 :constvalue <>})X DECLARE rec RECORD; retrec topology.GetFaceEdges_ReturnType; n int; sql text; BEGIN sql := 'WITH RECURSIVE edgering AS ( SELECT ' || anedge || ' as signed_edge_id, edge_id, next_left_edge, next_right_edge FROM ' || quote_ident(atopology) || '.edge_data WHERE edge_id = ' || abs(anedge) || ' UNION ' || ' SELECT CASE WHEN p.signed_edge_id < 0 THEN p.next_right_edge ' || ' ELSE p.next_left_edge END, e.edge_id, e.next_left_edge, e.next_right_edge ' || ' FROM ' || quote_ident(atopology) || '.edge_data e, edgering p WHERE e.edge_id = CASE WHEN p.signed_edge_id < 0 ' || 'THEN abs(p.next_right_edge) ELSE abs(p.next_left_edge) END ) SELECT * FROM edgering'; n := 1; FOR rec IN EXECUTE sql LOOP retrec.sequence := n; retrec.edge := rec.signed_edge_id; RETURN NEXT retrec; n := n + 1; IF n > maxedges THEN RAISE EXCEPTION 'Max traversing limit hit: %', maxedges; END IF; END LOOP; END P   'Ist_createtopogeomI 4Bfvu@k4atopology<acollectionJ DECLARE typ char(4); rec RECORDt int nodededges GE@OMETRYpPoint s+_id:e tolerance F`LOAT8Ifo|BEGIN IF alogy IS NULL OR acollectionTHEN RAISE EXCEPTION 'SQL/MM Spatial excep;- null argument'END IF;~-- Getrma1; qSELECT * FhROM/. $ INTO STRICTWHERE name =?WHEN NO_DATA_FOUNDinvalid}Check SRID comFbilitIF ST_B() !=.9Geometrya(%) does not `match!'6,{, yVerify pre@-condi6s (, emptysschema exists6)G{O Qthe8views in Nto bFejDFOR2min EXECUT 1'$LcounPt(*)#S'|@| quot1Pe(nt(&0)'.A1_data 1' UNv ||e2C1,LOOP%F.R > 0?%on-N" xface c"is separated as it will contain a single (wor ldCrecordIf: != 1;.g@OdINVALID_SCHEMA_NAMEOj@lUNDEFINED_TABLh'1entDY} CC N!input linework with itselBf*WITHBoneaAS (UgeomST_pDump[ !V*ST_UnaryUnion(ST_C((C)$>(iD\}c+sime nsRG = 1##3ALL QST_Boundary/^2 )/1O1iˇ;iLinemergeRresultin g +Q reducVsetOTE: this1more of a)ar forzS split\overlappingGsreacFhHssegqs.1M(ݞ)$aan%rs end/mA{/\60/\K!"\Rsd$`Further#K by+#TODO: o@ptimiz!^is add!=9support"Cm!/ Kre PGR DEBUG in %: %',fnName,msg; else raise notice '----> PGR NOTICE in %: %',fnName,msg; end if; END; R   'J_pgr_iscolumnintable 4BfvuKtabcolh DECLARE cname text; BEGIN select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname; return cname is not null; END; R   gJ_pgr_getcolumnname 4Bfvutabcol8reporterrs(fnname({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 6920 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 6946 :constvalue 22 [ 88 0 0 0 95 112 103 114 95 103 101 116 67 111 108 117 109 110 78 97 109 101 ]})< DECLARE sname text; tname text; cname text; naming record; err boolean; BEGIN select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ; sname=naming.sname; tname=naming.tname; select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName); RETURN cname; END; R   gJ_pgr_getcolumnname 4Bfvu$sname$tnamecol8reporterrs(fnname({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 5985 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 6011 :constvalue 22 [ 88 0 0 0 95 112 103 114 95 103 101 116 67 111 108 117 109 110 78 97 109 101 ]})t DECLARE cname text; naming record; err boolean; BEGIN execute 'SELECT column_name FROM information_schema.columns WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname; IF cname is null THEN execute 'SELECT column_name FROM information_schema.columns WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col)) into cname; END if; err = cname is null; perform _pgr_onError(err, reportErrs, fnName, 'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found'); RETURN cname; END; R  J_pgr_gettablename 4BfvuS5iiiootab8reporterrs(fnname$sname$tname({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 3219 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 3245 :constvalue 21 [ 84 0 0 0 95 112 103 114 95 103 101 116 84 97 98 108 101 78 97 109 101 ]}) v DECLARE naming record;i integerquer@y textsn -- scPhemaQe tA table t8ype"!for future us0err booleandebuglevel var_Ns[] = ARRAY['BASE TABLE', 'VIEW']; BEGIN ?execute 'show client_min_messages' o|; :perform _pgr_msg( 0, fnName, 'Checkp0' || ' exists')--RAISE@ DEBUG:%A(,tab;ui := strpos(tab,'.FIF (i <> 0) TH EN4plit _part8 'p.',1;&21&ELS'MUcu|rr0# M:ND IF8SEL(ECT$D_!% I NTO s%0FR OM in\at(ion^.ta@ WHERE A=H sn!IFJ IS NOT NULL!found%(as is)V, "t7<>s&'`= ANY(&) and0)Htn IF is @% Jlower(tn) ORDER BY -% &dEDorV --U)ot${)Sm?b 5)?%sn) 4- ?1withE cap7; /8r/9E4K "6O=?O.#'6+-/7g7T PGR DEBUG in %: %',fnName,msgerr USING HINT = ' ---->'|| hinto; else if reportErrs = 2 then raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = ' ---->'|| hinto; raise raise_exception; else raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = ' ---->'|| hinto; end if; end if; else raise debug 'PGR ----> %: %',fnName,msgok; end if; END; R  g J_pgr_parameter_check 4?fvu[fnsqlbigp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 13310 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})"  DECLARE reBcord;1has_rcost booleansafesql textBEGIN IF (bi@g) THE RAISE EXCEPTION 'This function  or old@ styles'] END IF; -- checking query@executable$= 'select * from ('||sql||' ) AS __a__ limPit 1{ [eHinto   WHEN O`THERS Could notjplease verify syntax of: ' P USING HINT = sql41the fixed columns and data types of$int egersfn IN ('dijkstra','astar'y=zid,source,tarpget,"Ze||') as __b__'sw{An expect wasfound in{ERRCODE = 'XX000',+'Pyfy_{@names:' ( ) *&gpg_of(i0d)::1Oid, f$(((&:0|| '2b__ -- VersA42.0.01more restrictivC$NOT( (rec.ϔ('$'))AND5 991!'double preci>OWError!63'''', '''' muQe2t4!"mfloat8??*R CHYON#x1,y1,x2,y62OD O8 x18x1>y y x2 @2@ y O$o?{ ?;"v#[;O,CC%"4 $5 y2?I>johnsonOAďf/Ox ks>Suphpor!wr;%6o(nlyE:5. 9Cost: O?1E@CI@O.opFal reverhse_ "L:= falseOU, Kf- |) (rev/!(16 tru?OO L)repturn&iif ( )n94(big B! 1.2bigi$nt$, < , 'small #?, 'real7 ?Illegar2'gparameter.\/,LSEO[=!Ol,< $ eqf$' -0-- jAke epE 3END R  ' J_pgr_versionless 4?fvuKv1v2 declare v1a text[]; v2a text[]; nv1 integer; nv2 integer; ne1 integer; ne2 integer; begin -- separate components into an array, like: -- '2.1.0-beta3dev' => {2,1,0,beta3dev} v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$'); v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$'); -- convert modifiers to numbers for comparison -- we do not delineate between alpha1, alpha2, alpha3, etc ne1 := case when v1a[4] is null or v1a[4]='' then 5 when v1a[4] ilike 'rc%' then 4 when v1a[4] ilike 'beta%' then 3 when v1a[4] ilike 'alpha%' then 2 when v1a[4] ilike 'dev%' then 1 else 0 end; ne2 := case when v2a[4] is null or v2a[4]='' then 5 when v2a[4] ilike 'rc%' then 4 when v2a[4] ilike 'beta%' then 3 when v2a[4] ilike 'alpha%' then 2 when v2a[4] ilike 'dev%' then 1 else 0 end; nv1 := v1a[1]::integer * 10000 + coalesce(v1a[2], '0')::integer * 1000 + coalesce(v1a[3], '0')::integer * 100 + ne1; nv2 := v2a[1]::integer * 10000 + coalesce(v2a[2], '0')::integer * 1000 + coalesce(v2a[3], '0')::integer * 100 + ne2; --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2; return nv1 < nv2; end; R  ' J_pgr_quote_ident 4BfiupC(idnameh declare t text[]; pgver text; begin pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1'); if _pgr_versionless(pgver, '9.2') then select into t array_agg(quote_ident(term)) from (select nullif(unnest, '') as term from unnest(string_to_array(idname, '.'))) as foo; else select into t array_agg(quote_ident(term)) from (select unnest(string_to_array(idname, '.', '')) as term) as foo; end if; return array_to_string(t, '.'); end; R  g J_pgr_iscolumnindexed 4Bfvutabcol8reporterrs(fnname({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 9909 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 9935 :constvalue 24 [ 96 0 0 0 95 112 103 114 95 105 115 67 111 108 117 109 110 73 110 100 101 120 101 100 ]}) DECLARE naming record; rec record; sname text; tname text; cname text; pkey text; value boolean; BEGIN SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName); sname=naming.sname; tname=naming.tname; IF sname IS NULL OR tname IS NULL THEN RETURN FALSE; END IF; SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ; IF cname IS NULL THEN RETURN FALSE; END IF; select * into value from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName); return value; END R  g J_pgr_iscolumnindexed 4Bfvu$sname$tname$cname8reporterrs(fnname({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 8064 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 8090 :constvalue 24 [ 96 0 0 0 95 112 103 114 95 105 115 67 111 108 117 109 110 73 110 100 101 120 101 100 ]}) Z DECLARE naming record;rec pkey text; BEGINSELECT pg_attribute.attname in to@)-- format_type( 8typid,Otypmod)qFROMA'index1c0lass ;0WHE 9.oid = _pgr_quote_id ent(s|| '.'||)::reg4 ANDSindrelO ^. ;)num = anyW.indkey9ANDisprimary; I%IF=cthenД^  R  UJpgr_bddijkstracost BzDfvuc9iiiiooo0directed4start_vid,end_vid0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 88188 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})\ SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a; R  gJ_pgr_createindex 4Bfvu,tabname,colname(indext8reporterrs(fnname({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 25674 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 25700 :constvalue 20 [ 80 0 0 0 95 112 103 114 95 99 114 101 97 116 101 73 110 100 101 120 ]})P DECLARE naming record; sname text; tname text; BEGIN select * from _pgr_getTableName(tabname, 2, fnName) into naming; sname=naming.sname; tname=naming.tname; execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName); END; R  gJ_pgr_createindex 4Bfvu$sname$tname,colname(indext8reporterrs(fnname({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 24078 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 24104 :constvalue 20 [ 80 0 0 0 95 112 103 114 95 99 114 101 97 116 101 73 110 100 101 120 ]})p DECLARE debuglevel text; naming record; tabname text; query text; msgKind int; BEGIN msgKind = 0; -- debug_ execute 'show client_min_messages' into debuglevel; tabname=_pgr_quote_ident(sname||'.'||tname); perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed'); IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then perform _pgr_msg(msgKind, fnName); else if indext = 'gist' then query = 'create index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||' on '||tabname||' using gist('||quote_ident(colname)||')'; else query = 'create index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||' on '||tabname||' using btree('||quote_ident(colname)||')'; end if; perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' || colname || '_idx'); perform _pgr_msg(msgKind, fnName, ' Using ' || query); set client_min_messages to warning; BEGIN execute query; EXCEPTION WHEN others THEN perform _pgr_onError( true, reportErrs, fnName, 'Could not create index on:' || colname, SQLERRM); END; execute 'set client_min_messages to '|| debuglevel; perform _pgr_msg(msgKind, fnName); END IF; END; R  J_pgr_checkverttab 4Bfvu[7iiiioo0vertname8columnsarr8reporterrs(fnname$sname$vname({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 22178 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 22204 :constvalue 21 [ 84 0 0 0 95 112 103 114 95 99 104 101 99 107 86 101 114 116 84 97 98 ]})  DECLARE cname text; ol naming recorddebuglevel(err booleanmsgKind int; BEGIN = 0; --O_Execute 'show client_min_messagesJ'No; 9perform _pgr_msg(e, fnName, 'Checktable ' || vert|| ' exists') select * fro\getT@U(?, 0i)6I&=. v NS=< is NULL or2- onError(@, 2W 'Vertex : not found' 8Please crea8usc&Topology()Cices() h); / columns of YFOREACH4IN ARRAY8Arr(loop$-%&?.,'R/.4v if6is null then#AddC.it? to warn)6ALTER TABLE '||quote_ ident)||' ADD COLUMN,teger' hG# '||J$@7eAf?sFinished c/{U3'Index0 , 'id'btree', repor tErrs END R  'J_pgr_get_statement 4BfsupC$o_sql DECLARE sql TEXT; BEGIN EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name =' || quote_literal(o_sql) || ' limit 1 ' INTO sql; IF (sql IS NULL) THEN RETURN o_sql; ELSE RETURN regexp_replace(regexp_replace(regexp_replace(sql, '\s(as)\s', '___foo___', 'i'), '^.*___foo___', '','i'), ';$', ''); END IF; END R  gJ_pgr_getcolumntype 4Bfvutabcol8reporterrs(fnname({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 20765 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 20791 :constvalue 22 [ 88 0 0 0 95 112 103 114 95 103 101 116 67 111 108 117 109 110 84 121 112 101 ]}) DECLARE sname text; tname text; cname text; ctype text; naming record; err boolean; BEGIN select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ; sname=naming.sname; tname=naming.tname; select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ; select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName); RETURN ctype; END; R  gJ_pgr_getcolumntype 4Bfvu$sname$tname$cname8reporterrs(fnname({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 19963 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 19989 :constvalue 22 [ 88 0 0 0 95 112 103 114 95 103 101 116 67 111 108 117 109 110 84 121 112 101 ]})P DECLARE ctype text; naming record; err boolean; BEGIN EXECUTE 'select data_type from information_schema.columns ' || 'where table_name = '||quote_literal(tname) || ' and table_schema=' || quote_literal(sname) || ' and column_name='||quote_literal(cname) into ctype; err = ctype is null; perform _pgr_onError(err, reportErrs, fnName, 'Type of Column '|| cname ||' not found', 'Check your column name', 'OK: Type of Column '|| cname || ' is ' || ctype); RETURN ctype; END; 1D  8 0HH @H肸\R   ? J_pgr_dijkstravia ?zDfvuIiiiiiooooooooooP4edges_sql0via_vids0directed(strictHu_turn_on_edgeseq,path_id0path_seq4start_vid,end_vid node edge cost0agg_costHroute_agg_cost#_pgr_dijkstravia3$libdir/libpgrouting-3.0R   Jpgr_dijkstracostmatrix BzDfvu[7iiiooo0directed4start_vid,end_vid0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 34898 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, TRUE) a; R   Jpgr_dijkstracost BzDfvuc9iiiiooo0directed4start_vid,end_vid0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 32841 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})  SELECT start_vid, end_vid, agg_cost FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true); R  Jpgr_dijkstracost BzDfvuc9iiiiooo0directed4start_vid,end_vid0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 32333 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})( SELECT start_vid, end_vid, agg_cost FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true); R  Jpgr_dijkstracost BzDfvuc9iiiiooo0directed4start_vid,end_vid0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 31827 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})( SELECT start_vid, end_vid, agg_cost FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true); R  Jpgr_dijkstracost BzDfvuc9iiiiooo0directed4start_vid,end_vid0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 31315 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})D SELECT start_vid, end_vid, agg_cost FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true); R  Jpgr_dijkstra BzDfvu C iiiioooooooo 0directedseq0path_seq4start_vid,end_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 29116 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a; R  Jpgr_dijkstra BzDfvu A iiiiooooooo 0directedseq0path_seq4start_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 28478 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a; R  Jpgr_dijkstra BzDfvu A iiiiooooooo 0directedseq0path_seq,end_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 27847 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a; R  Jpgr_dijkstra BzDfvu{ ? iiiioooooo 0directedseq0path_seq node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 27244 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, true) AS a; R  J_pgr_dijkstra ?zDfvuIiiiiiiioooooooo04edges_sql8start_vids0end_vids0directed4only_cost(normal,n_goalsseq0path_seq4start_vid,end_vid node edge cost0agg_cost ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 26492 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 26528 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 26562 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 481 :funcresulttype 20 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 26595 :constvalue 4 [ 0 0 0 0 0 0 0 0 ]}) :location -1})_pgr_dijkstra3$libdir/libpgrouting-3.0^2@  ( 8DЄ:(R   4Jpgr_withpointsdd BzDfvu C iiiiiiiooooo 0directed@driving_side,detailsseq node edge cost0agg_cost0({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 54671 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1042 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 54707 :constvalue 5 [ 20 0 0 0 98 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 54740 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT seq, node, edge, cost, agg_cost FROM _pgr_withPointsDD(_pgr_get_statement($1), _pgr_get_statement($2), ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false); R   )J_pgr_astar ?zDfvu  Miiiiiiiiioooooooo4edges_sql8start_vids0end_vids0directed4heuristic(factor,epsilon4only_cost(normalseq0path_seq4start_vid,end_vid node edge cost0agg_cost$({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 42824 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 42860 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 42888 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 42919 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 42954 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 42988 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})_pgr_astar3$libdir/libpgrouting-3.0R  (Jpgr_floydwarshall BzDfvuS5iiooo0directed4start_vid,end_vid0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 42013 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT * FROM _pgr_floydWarshall(_pgr_get_statement($1), $2); R  ?'J_pgr_floydwarshall ?zDfvuS5iiooo4edges_sql0directed4start_vid,end_vid0agg_cost'_pgr_floydwarshall3$libdir/libpgrouting-3.0R  &Jpgr_johnson BzDfvuS5iiooo0directed4start_vid,end_vid0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 40989 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT * FROM _pgr_johnson(_pgr_get_statement($1), $2); R  ?%J_pgr_johnson ?zDfvuS5iiooo4edges_sql0directed4start_vid,end_vid0agg_cost_pgr_johnson3$libdir/libpgrouting-3.0R  $J_pgr_dijkstranear BzDfvu E iiiiioooooooo  0directedseq0path_seq,end_vid4start_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 38890 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $5, false, false, $4); R  #J_pgr_dijkstranear BzDfvu C iiiiiooooooo 0directedseq0path_seq4start_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 38234 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT seq, path_seq, start_vid, node, edge, cost, agg_cost FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $5, false, false, $4); R  "J_pgr_dijkstranear BzDfvu C iiiiiooooooo 0directedseq0path_seq,end_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 37584 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT seq, path_seq, end_vid, node, edge, cost, agg_cost FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $5, false, true, $4); R  !Jpgr_dijkstravia BzDfvuIiiiiioooooooooo0directed(strictHu_turn_on_edgeseq,path_id0path_seq4start_vid,end_vid node edge cost0agg_costHroute_agg_cost(({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 36373 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 36406 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 36448 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT * FROM _pgr_dijkstraVia(_pgr_get_statement($1), $2, $3 , $4, $5); #2,P  2 Z h h P" R  .Jpgr_astarcost BzDfvu{ ? iiiiiiiooo 0directed4heuristic(factor,epsilon4start_vid,end_vid0agg_costl({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 48351 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 48387 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 48415 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 48446 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1})d SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a ORDER BY a.start_vid, a.end_vid; R  -Jpgr_astar BzDfvuIiiiiiiioooooooo0directed4heuristic(factor,epsilonseq0path_seq4start_vid,end_vid node edge cost0agg_costl({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 45810 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 45846 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 45874 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 45905 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1}) SELECT * FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a; R  ,Jpgr_astar BzDfvuGiiiiiiiooooooo0directed4heuristic(factor,epsilonseq0path_seq4start_vid node edge cost0agg_costl({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 45065 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 45101 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 45129 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 45160 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1})X SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a; R  +Jpgr_astar BzDfvuGiiiiiiiooooooop0directed4heuristic(factor,epsilonseq0path_seq,end_vid node edge cost0agg_costl({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 44340 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 44376 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 44404 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 44435 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1}) SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a; R  *Jpgr_astar BzDfvu E iiiiiiioooooo@ 0directed4heuristic(factor,epsilonseq0path_seq node edge cost0agg_costl({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 43643 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 43679 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 43707 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 43738 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1}) SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a; x30   Г2 ȍ l ؀^R  SJpgr_bddijkstra BzDfvu C iiiioooooooo 0directedseq0path_seq4start_vid,end_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 85521 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT * FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a; R  3J_pgr_withpointsdd ?zDfvuGiiiiiiiioooooo4edges_sql8points_sql4start_pid0distance0directed@driving_side,details0equicostseq4start_vid node edge cost0agg_cost ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 53969 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1042 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 54005 :constvalue 5 [ 20 0 0 0 98 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 54038 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 54074 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})%_pgr_withpointsdd3$libdir/libpgrouting-3.0R  2Jpgr_astarcostmatrix BzDfvus = iiiiiiooo 0directed4heuristic(factor,epsilon4start_vid,end_vid0agg_costl({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 52900 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 52936 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 52964 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 52995 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1})8 SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a; R  1Jpgr_astarcost BzDfvu{ ? iiiiiiiooo 0directed4heuristic(factor,epsilon4start_vid,end_vid0agg_costl({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 50351 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 50387 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 50415 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 50446 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1}), SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a ORDER BY a.start_vid, a.end_vid; R  0Jpgr_astarcost BzDfvu{ ? iiiiiiiooo 0directed4heuristic(factor,epsilon4start_vid,end_vid0agg_costl({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 49677 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 49713 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 49741 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 49772 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1}) SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a ORDER BY a.start_vid, a.end_vid; R  /Jpgr_astarcost BzDfvu{ ? iiiiiiiooo 0directed4heuristic(factor,epsilon4start_vid,end_vid0agg_costl({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 49018 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 49054 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 49082 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 49113 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1})H SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a ORDER BY a.start_vid, a.end_vid; 3@  XD @"(*hb X 0B$R   TJpgr_bddijkstracost BzDfvuc9iiiiooo0directed4start_vid,end_vid0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 87662 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})x SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a; R   ?=J_pgr_turnrestrictedpath ?zDfiu  Kiiiiiiiiiooooooo0directed8heap_pathsDstop_on_first(strictseq,path_id0path_seq node edge cost0agg_cost1_pgr_turnrestrictedpath3$libdir/libpgrouting-3.0R  316>"z?58@# O174+n17~0-./ 6f2;{A32F18@ -24 3459440 35_1 ?695 11? SELECT * FROM _pgr_TSPeuclidean(_pgr_get_statement($1), $2,$3, $4, $5,$6,$7, $8,$9,$10, $11); R  AJpgr_tsp BzDfvu  Iiiiiiiiiiiioooo0start_id(end_id\max_processing_timedtries_per_temperature|max_changes_per_temperature|max_consecutive_non_changes\initial_temperatureTfinal_temperatureHcooling_factor4randomizeseq node cost0agg_cost({FUNCEXPR :func@id 481 resulttype 20tset falsevariadic format 2collid 0 :inputargs ({CONST :Pconsm3mod -1; len 4 byval trueisnulllocation@ 66799#value 4 [D 0 ]})4-1} '828'"y70s7 @8 -16 `127 ]BL93_B-12 1D`866^703/s10>8316>"z?7082O174+n170-./ 1G32F18 -24 34654 40 35_1 ?197 11? SELECT * FROM _pgr_TSP(_pgr_get_statement($1), $2, $3, $4, $5, $6, $7, $8, $9, $10, $11); R  @J_pgr_tspeuclidean ?zDfvu  IiiiiiiiiiiiooooLcoordinates_sql0start_id(end_id\max_processing_timedtries_per_temperature|max_changes_per_temperature|max_consecutive_non_changes\initial_temperatureTfinal_temperatureHcooling_factor4randomizeseq node cost0agg_cost~({FUNCEXPR :func@id 481 resulttype 20tset falsevariadic format 2collid 0 :inputargs ({CONST :Pconsm3mod -1; len 4 byval trueisnulllocation 6591@value 4 [ "0 ]})4-1d} '39'"7v08 8 -16 127 ]BK6044B-12 1D`4976_14/s10>316>"z?619_ O174+n170?-./ 233;{A32F18 -24 3472440 35_1g ?30e+11?%_pgr_tspeuclidean3$libdir/libpgrouting-3.0R  ?J_pgr_tsp ?zDfvu  IiiiiiiiiiiiooooHmatrix_row_sql0start_id(end_id\max_processing_timedtries_per_temperature|max_changes_per_temperature|max_consecutive_non_changes\initial_temperatureTfinal_temperatureHcooling_factor4randomizeseq node cost0agg_costz({FUNCEXPR :func@id 481 resulttype 20tset falsevariadic format 2collid 0 :inputargs ({CONST :Pconsm3mod -1; len 4 byval trueisnulllocation 6507_value 4 [ "0 ]})4-1} '102'"708 48 -16 1027 ]BL207B-12 1Dm`6@6_321/s10>316>"z?356O174+n170-./ 9;{A32F18 -24 34435440 35_1g ?47411?_pgr_tsp3$libdir/libpgrouting-3.0R  >Jpgr_turnrestrictedpath BzDfvu  Kiiiiiiiiiooooooo0directed8heap_pathsDstop_on_first(strictseq,path_id0path_seq node edge cost0agg_cost ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 63873 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 63910 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 63951 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 63984 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT * FROM _pgr_turnRestrictedPath(_pgr_get_statement($1), _pgr_get_statement($2), $3, $4, $5, $6, $7, $8, $9); 530  " x. Ȁ R  JJpgr_bdastarcost BzDfvu{ ? iiiiiiiooo 0directed4heuristic(factor,epsilon4start_vid,end_vid0agg_cost ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 77384 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 77420 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 77450 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 77483 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a; R  IJpgr_bdastar BzDfvuIiiiiiiioooooooo0directed4heuristic(factor,epsilonseq0path_seq4start_vid,end_vid node edge cost0agg_cost ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 74794 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 74830 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 74860 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 74893 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) SELECT * FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false); R  HJpgr_bdastar BzDfvuGiiiiiiiooooooo0directed4heuristic(factor,epsilonseq0path_seq4start_vid node edge cost0agg_cost ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 74042 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 74078 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 74108 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 74141 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]})< SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a; R  GJpgr_bdastar BzDfvuGiiiiiiiooooooop0directed4heuristic(factor,epsilonseq0path_seq,end_vid node edge cost0agg_cost ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 73296 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 73332 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 73362 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 73395 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]})4 SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a; R  FJpgr_bdastar BzDfvu E iiiiiiioooooo@ 0directed4heuristic(factor,epsilonseq0path_seq node edge cost0agg_cost ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 72578 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 72614 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 72644 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 72677 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]})$ SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a; R  EJ_pgr_bdastar ?zDfvuKiiiiiiiioooooooo0directed4heuristic(factor,epsilon4only_costseq0path_seq4start_vid,end_vid node edge cost0agg_cost({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 71776 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 71812 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 71840 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {FUNCEXPR :funcid 1746 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 71871 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) :location -1} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 71906 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})_pgr_bdastar3$libdir/libpgrouting-3.05<  8 p v P R   ?Jpgr_strongcomponents BzDfvupK3iooosseq4component node SELECT * FROM _pgr_strongComponents(_pgr_get_statement($1)); R  RJpgr_bddijkstra BzDfvu A iiiiooooooo 0directedseq0path_seq4start_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 84885 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a; R  QJpgr_bddijkstra BzDfvu A iiiiooooooo 0directedseq0path_seq,end_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 84257 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a; R  PJpgr_bddijkstra BzDfvu{ ? iiiioooooo 0directedseq0path_seq node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 83657 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a; R  OJ_pgr_bddijkstra ?zDfvu E iiiiiooooooooP 0directed4only_costseq0path_seq4start_vid,end_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 83026 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})!_pgr_bddijkstra3$libdir/libpgrouting-3.0R  NJpgr_bdastarcostmatrix BzDfvus = iiiiiiooo 0directed4heuristic(factor,epsilon4start_vid,end_vid0agg_cost ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 81859 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 81895 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 81925 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 81958 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a; R  MJpgr_bdastarcost BzDfvu{ ? iiiiiiiooo 0directed4heuristic(factor,epsilon4start_vid,end_vid0agg_cost ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 79305 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 79341 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 79371 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 79404 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a; R  LJpgr_bdastarcost BzDfvu{ ? iiiiiiiooo 0directed4heuristic(factor,epsilon4start_vid,end_vid0agg_cost ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 78665 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 78701 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 78731 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 78764 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a; R  KJpgr_bdastarcost BzDfvu{ ? iiiiiiiooo 0directed4heuristic(factor,epsilon4start_vid,end_vid0agg_cost ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 78028 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 78064 :constvalue 4 [ 5 0 0 0 0 0 0 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 78094 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]} {CONST :consttype 1700 :consttypmod -1 :constcollid 0 :constlen -1 :constbyval false :constisnull false :location 78127 :constvalue 8 [ 32 0 0 0 -128 -128 1 0 ]}) SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a; p 6H  ph@hph &xPFR   ?J_pgr_biconnectedcomponents ?zDfiupK3iooo4edges_sqlseq4component edge7_pgr_biconnectedcomponents3$libdir/libpgrouting-3.0R   fJ_pgr_maxflow ?zDfvu A iiiiioooooo 4edges_sql,sources,targets4algorithm4only_flowseq,edge_id(source(target flowTresidual_capacity({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 114874 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 114907 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})_pgr_maxflow3$libdir/libpgrouting-3.0R   _J_pgr_array_reverse Bfiup SELECT ARRAY( SELECT $1[i] FROM generate_subscripts($1,1) AS s(i) ORDER BY i DESC ); R   ^J_pgr_trsp ?zDfiu C iiiiiiiioooo sql8source_eid8source_pos8target_eid8target_pos0directedPhas_reverse_costTturn_restrict_sqlseqid1id2 cost0({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 96173 :constvalue <>})_pgr_trsp3$libdir/libpgrouting-3.0R  ]J_pgr_trsp BzDfvu E iiiiioooooooo  0directedseq0path_seq4start_vid,end_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 94926 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost FROM _trsp( _pgr_get_statement($1), _pgr_get_statement($2), $3::bigint[], $4::bigint[], $5) AS a; R  \J_pgr_trsp BzDfvu C iiiiiooooooo 0directedseq0path_seq4start_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 94229 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost FROM _trsp( _pgr_get_statement($1), _pgr_get_statement($2), $3::bigint[], ARRAY[$4]::BIGINT[], $5) AS a; R  [J_pgr_trsp BzDfvu C iiiiiooooooo 0directedseq0path_seq,end_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 93534 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost FROM _trsp( _pgr_get_statement($1), _pgr_get_statement($2), ARRAY[$3]::BIGINT[], $4::bigint[], directed) AS a; R  ZJ_pgr_trsp BzDfvu A iiiiioooooo 0directedseq0path_seq node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 92867 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost FROM _trsp( _pgr_get_statement($1), _pgr_get_statement($2), ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], directed) AS a; R  YJ_trsp ?zDfvu E iiiiioooooooo  0directedseq0path_seq4start_vid,end_vid node edge cost0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 92256 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) _trsp3$libdir/libpgrouting-3.0R  XJpgr_bddijkstracostmatrix BzDfvu[7iiiooo0directed4start_vid,end_vid0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 91319 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})4 SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a; R  WJpgr_bddijkstracost BzDfvuc9iiiiooo0directed4start_vid,end_vid0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 89228 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})X SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a; R  VJpgr_bddijkstracost BzDfvuc9iiiiooo0directed4start_vid,end_vid0agg_costp({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 88707 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})\ SELECT a.start_vid, a.end_vid, a.agg_cost FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a; 60  8 ȋF lR  ?Jpgr_biconnectedcomponents BzDfvupK3iooosseq4component edge SELECT * FROM _pgr_biconnectedComponents(_pgr_get_statement($1)); R dJpgr_trspviaedges 4BzDfsu@ , A iiiiiioooooVh (Tturn_restrict_sql seqid 123 cost4({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 109962 :constvalue <>})#eJ R  cJpgr_trspviavertices 4BzDfvu{ ? iiiiiooooo Prestrictions_sqlseqid1id2id3 cost4({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 107638 :constvalue <>}) DECLARE edges_sql TEXT := $1; via_vids INTEGER[] := $2; directed BOOLEAN := $3; has_rcost BOOLEAN := $4; has_reverse BOOLEAN; new_sql TEXT; BEGIN has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false); new_sql := edges_sql; IF (has_reverse != has_rcost) THEN -- user contradiction IF (has_reverse) THEN -- it has reverse_cost but user don't want it. new_sql := 'WITH old_sql AS (' || edges_sql || ')' || ' SELECT id, source, target, cost FROM old_sql'; ELSE -- it does not have reverse_cost but user wants it RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column' USING ERRCODE := 'XX000'; END IF; END IF; IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER, (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, a.cost FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) AS a WHERE edge != -1; RETURN; END IF; -- make the call without contradiction from part of the user RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql); IF NOT FOUND THEN RAISE EXCEPTION 'Error computing path: Path Not Found'; END IF; END R  bJ_pgr_trspviavertices 4BzDfsu{ ? iiiiiooooo sql vids0directed4has_rcostTturn_restrict_sqlseqid1id2id3 cost4({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 105291 :constvalue <>}) declare i integer;rr RECORDla boolean := falseseq1L02restrictions_query TEXT; begin$IF (turn_-_sql IS NULL) THEN(RAISE EXCEPTION 'Ra Missing'|END IF; = $$WITH oldMAS ( $$ ||~$5 ||6)SELECT ROW_NUMBE@R() OVA S id,&_pgr_array_reverse(prepend(target _id, ng_to1(via_path, ',')::INTEGER[])ceto_costFROMC$$; -- loop through each pair of vids and compute the#u;for"[ 1 .. length(9, 18)-1^E"*:=1+ 1MrrNselect @a.seq,*as id1, a`.node2edg 3 ! fromtrsp(sql,/(",[i] +1], directed)ia Tfilter out4indiv idual? ends excep last on3Gwe might not want to do this so can know whervia points ar} ul-- bis needps moI! +raiseice 'rr: %', rDZif rr.id3 =x -1~3 Aw:=;F:= truDyels$F#U1+Urr!M$D C(@ida_id"2332  BeQ" nex end if!wcfX;l4!2%& ; end; R  aJpgr_trsp 4BzDfvu C iiiiiiiioooo Tturn_restrict_sqlseqid1id2 cost0({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 99434 :constvalue <>})> DECLARE sql` TEXT : = $1;$ource_eid INTEGER$2 $pos FL,OAP$3$targetH4 $H5$directed BOOLEAN $6$has_reverse`_cost,$7; !; new_; tr|sp uPnion1 2Afinal2 BEGINIF $2 IS NULL OR $3 4 5 6THEORETURN!END IF- =_pgr_parameter_check('dijks tra',!3, false); 3@7:=TIF ( X!=) -- user contradiction I5-- it^ butXdon't wa@nt it. ;to be on the safe side be causeZreadsdata wrong, sending only postitive values e 'WITH oldAS (' ||2|| ') 1 SELECT id,4s,43, FROMT'LSE(does no1ve2,s it RAISE EXCEPTION 'Error, CisBd,Lquery did''Fturn '' 0'' c@olumn' kUSING ERRCODE!W'XX000 ( &xi_restric38lengthA$) = 0,^- - no &ion"n its a withPoi+or 5")X= 0/HS= '(, b WHERE id2Y#8 1#Y p -1, X8= 1 as p!qedge_ !!::f loat8)fra (S-- raise1=ice '%Q4 4; #$:x/:h|/:c/:x/: /:/:  q -2/;2"; 2+< r/</<*/ ! /=2e+=2iIF9?AOTCAND ͇= O,UNR $:g3 O  cYpc=hSnE%=57 -$ a.seq-1&seq, @node::}AS id1," 2O($$Ӆ!$$,Y(&8 & %1) a ) UMORDE0R BY-O --,@ ('CASEagNrAA=s\MW?G N!O-NidaOlvOPR]id1B%k?8 UnDaD QUERY EXECUTE(TZ--2calBlorigO code1sý$V*trsp(4Beגpv',, ϔEND R  `Jpgr_trsp 4BzDfvu{ ? iiiiiioooo Prestrictions_sqlseqid1id2 cost0({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull true :location 97043 :constvalue <>})bV DECLARE edges_sql TEXT:= $1;start_vid INTPEGER2e,nd :3directed B@OOLEAN4has_rco st5; everse ; new; restrictions_querytrsp(`BEGINoU=_pgr_parameter_check('dijkstra',, false); F:=#!IF ( d!=) THEN -- user contradO>B5itL E_5butMdon't wan`t it.N-- to be on the safe side becauseAZreadsdata wrong, sending only postitive values e 'WITH oldAS (' ||(j|| ') 7 SELECT id, source, target, FROM Z'~ELSE.does no7ve82s it RAISE EXCEPTION 'Error, CisBd,LA#}did''Lt@urn '' 0'' column' kUSING ERRCODE!Q@'XX000 ND IF &l:PIS NULL OR length#) = 0#Wd-- no  *! n its a 5/RETU RNa.se q - 1seq, node::EAS id13T 2, a.$a1{($`,G,Ev,Fb) a88O7= $$:&! $$-l$6!>) ROW_NUMBER() OV, IBarray5(prepe(nd(#_2tr@ing_to1(via_path::text, ',')e[])'q! sto#AS2SJ$$F ) (&**/Q'/AS%IF NOT FOUND;? computQc Path Not Found4&bEND 4X  h$xȕؓ(8Ph؂\R  ?vJ_pgr_edgedisjointpaths ?zDfvu E iiiiooooooooo@ 0directedseq,path_id0path_seq4start_vid,end_vid node edge cost0agg_cost/_pgr_edgedisjointpaths3$libdir/libpgrouting-3.0R  uJpgr_maxcardinalitymatch BzDfvu[7iioooo0directedseq edge(source(targett({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 126964 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT * FROM _pgr_maxCardinalityMatch(_pgr_get_statement($1), $2) R  ?tJ_pgr_maxcardinalitymatch ?zDfvu[7iioooo4edges_sql0directedseq edge(source(target3_pgr_maxcardinalitymatch3$libdir/libpgrouting-3.0R   ?sJpgr_pushrelabel BzDfvus = iiioooooo seq edge4start_vid,end_vid flowTresidual_capacity SELECT * FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1); R   ?rJpgr_pushrelabel BzDfvus = iiioooooo seq edge4start_vid,end_vid flowTresidual_capacity SELECT * FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1); R   ?qJpgr_pushrelabel BzDfvus = iiioooooo seq edge4start_vid,end_vid flowTresidual_capacity SELECT * FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1); R   ?pJpgr_pushrelabel BzDfvus = iiioooooo seq edge4start_vid,end_vid flowTresidual_capacity SELECT * FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1); R   ?oJpgr_boykovkolmogorov BzDfvus = iiioooooo seq edge4start_vid,end_vid flowTresidual_capacity SELECT * FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2); R  ?nJpgr_boykovkolmogorov BzDfvus = iiioooooo seq edge4start_vid,end_vid flowTresidual_capacity SELECT * FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2); R  ?mJpgr_boykovkolmogorov BzDfvus = iiioooooo seq edge4start_vid,end_vid flowTresidual_capacity SELECT * FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2); R  ?lJpgr_boykovkolmogorov BzDfvus = iiioooooo seq edge4start_vid,end_vid flowTresidual_capacity SELECT * FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2); R  ?kJpgr_edmondskarp BzDfvus = iiioooooo seq edge4start_vid,end_vid flowTresidual_capacity SELECT * FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3); R  ?jJpgr_edmondskarp BzDfvus = iiioooooo seq edge4start_vid,end_vid flowTresidual_capacity SELECT * FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3); R  ?iJpgr_edmondskarp BzDfvus = iiioooooo seq edge4start_vid,end_vid flowTresidual_capacity SELECT * FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3); R  ?hJpgr_edmondskarp BzDfvus = iiioooooo seq edge4start_vid,end_vid flowTresidual_capacity SELECT * FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3); R  gJ_pgr_maxflowmincost ?zDfiu C iiiioooooooo 4edges_sql,sources,targets4only_costseq edge(source(target flowTresidual_capacity cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 115612 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}))_pgr_maxflowmincost3$libdir/libpgrouting-3.0h6\   Px8,(؊p\x\PNp0z耎R  ?J_pgr_articulationpoints ?zDfiupC1iook4edges_sqlseq node1_pgr_articulationpoints3$libdir/libpgrouting-3.0R  Jpgr_maxflow Bfvu4 SELECT flow FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true); R  Jpgr_maxflow BfvuP SELECT flow FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], algorithm := 1, only_flow := true); R  Jpgr_maxflow BfvuP SELECT flow FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true); R   Jpgr_maxflow Bfvul SELECT flow FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], algorithm := 1, only_flow := true); R   Jpgr_maxflowmincost_cost Bfvu SELECT cost FROM _pgr_maxFlowMinCost(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], only_cost := true); R   Jpgr_maxflowmincost_cost Bfvu SELECT cost FROM _pgr_maxFlowMinCost(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], only_cost := true); R   Jpgr_maxflowmincost_cost Bfvu SELECT cost FROM _pgr_maxFlowMinCost(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], only_cost := true); R   Jpgr_maxflowmincost_cost Bfvu  SELECT cost FROM _pgr_maxFlowMinCost(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], only_cost := true); R  ?~Jpgr_maxflowmincost BzDfvu A iiioooooooo seq edge(source(target flowTresidual_capacity cost0agg_cost SELECT * FROM _pgr_maxFlowMinCost(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], only_cost := false); R  ?}Jpgr_maxflowmincost BzDfvu A iiioooooooo seq edge(source(target flowTresidual_capacity cost0agg_cost SELECT * FROM _pgr_maxFlowMinCost(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], only_cost := false); R  ?|Jpgr_maxflowmincost BzDfvu A iiioooooooo seq edge(source(target flowTresidual_capacity cost0agg_cost SELECT * FROM _pgr_maxFlowMinCost(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], only_cost := false); R  ?{Jpgr_maxflowmincost BzDfvu A iiioooooooo seq edge(source(target flowTresidual_capacity cost0agg_cost SELECT * FROM _pgr_maxFlowMinCost(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], only_cost := false); R  zJpgr_edgedisjointpaths BzDfvu E iiiiooooooooo@ 0directedseq,path_id0path_seq4start_vid,end_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 130296 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT * From _pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4) AS a; R  yJpgr_edgedisjointpaths BzDfvu C iiiioooooooo 0directedseq,path_id0path_seq4start_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 129627 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost From _pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a; R  xJpgr_edgedisjointpaths BzDfvu C iiiioooooooo 0directedseq,path_id0path_seq,end_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 128964 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})  SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost From _pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a; R  wJpgr_edgedisjointpaths BzDfvu A iiiiooooooo 0directedseq,path_id0path_seq node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 128334 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost From _pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a; 88  XHn 2 ؉ Є ȀpS  Jh3_ext_version ?fiu`h3_ext_version pgh3R  Jpgr_withpointscost BzDfvus = iiiiiiooo 0directed@driving_side4start_pid,end_pid0agg_cost({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 158227 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1042 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 158263 :constvalue 5 [ 20 0 0 0 98 ]})p SELECT $3, $4, a.agg_cost FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a; R  Jpgr_pickdelivereuclidean BzDfvuMiiiiioooooooooooo(factor8max_cycles<initial_solseq<vehicle_seq8vehicle_id0stop_seq4stop_type0order_id$cargo<travel_time@arrival_time4wait_time@service_timeHdeparture_time| ({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 146817 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 146851 :constvalue 4 [ 10 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 146887 :constvalue 4 [ 4 0 0 0 0 0 0 0 ]}) SELECT * FROM _pgr_pickDeliverEuclidean(_pgr_get_statement($1), _pgr_get_statement($2), $3, $4, $5); R  J_pgr_pickdelivereuclidean ?zDfvuMiiiiioooooooooooo(factor8max_cycles<initial_solseq<vehicle_seq8vehicle_id0stop_seq4stop_type0order_id$cargo<travel_time@arrival_time4wait_time@service_timeHdeparture_time| ({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 146066 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 146100 :constvalue 4 [ 10 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 146136 :constvalue 4 [ 4 0 0 0 0 0 0 0 ]})5_pgr_pickdelivereuclidean3$libdir/libpgrouting-3.0R  Jpgr_pickdeliver BzDfvuQiiiiiiooooooooooooo0(factor8max_cycles<initial_solseq<vehicle_seq8vehicle_id0stop_seq4stop_type,stop_id0order_id$cargo<travel_time@arrival_time4wait_time@service_timeHdeparture_time| ({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 144531 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 144565 :constvalue 4 [ 10 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 144601 :constvalue 4 [ 4 0 0 0 0 0 0 0 ]}) SELECT * FROM _pgr_pickDeliver(_pgr_get_statement($1), _pgr_get_statement($2), $3, $4, $5); R  J_pgr_pickdeliver ?zDfvuQiiiiiiooooooooooooo0(factor8max_cycles<initial_solseq<vehicle_seq8vehicle_id0stop_seq4stop_type,stop_id0order_id$cargo<travel_time@arrival_time4wait_time@service_timeHdeparture_time| ({FUNCEXPR :funcid 316 :funcresulttype 701 :funcretset false :funcvariadic false :funcformat 2 :funccollid 0 :inputcollid 0 :args ({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 143738 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]}) :location -1} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 143772 :constvalue 4 [ 10 0 0 0 0 0 0 0 ]} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 143808 :constvalue 4 [ 4 0 0 0 0 0 0 0 ]})#_pgr_pickdeliver3$libdir/libpgrouting-3.0R  Jpgr_contraction BzDfvu A iiiiioooooop 8max_cyclesXforbidden_vertices0directed typeid\contracted_vertices(source(target cost({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 142762 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {ARRAY :array_typeid 1016 :array_collid 0 :element_typeid 20 :elements <> :multidims false :location 142805} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 142853 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT * FROM _pgr_contraction(_pgr_get_statement($1), $2::BIGINT[], $3, $4, $5); R  J_pgr_contraction ?zDfvu A iiiiioooooo 4edges_sqlTcontraction_order8max_cyclesXforbidden_vertices0directed typeid\contracted_vertices(source(target cost({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :location 141989 :constvalue 4 [ 1 0 0 0 0 0 0 0 ]} {ARRAY :array_typeid 1016 :array_collid 0 :element_typeid 20 :elements <> :multidims false :location 142032} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 142080 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})#_pgr_contraction3$libdir/libpgrouting-3.054  @| $v0R  Jpgr_withpoints BzDfvuIiiiiiiioooooooo0directed@driving_side,detailsseq0path_seq4start_pid,end_pid node edge cost0agg_cost<({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 155141 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1042 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 155177 :constvalue 5 [ 20 0 0 0 98 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 155230 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a; R  Jpgr_withpoints BzDfvuGiiiiiiiooooooo`0directed@driving_side,detailsseq0path_seq4start_pid node edge cost0agg_cost<({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 154372 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1042 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 154408 :constvalue 5 [ 20 0 0 0 98 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 154461 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a; R  Jpgr_withpoints BzDfvuGiiiiiiioooooooP0directed@driving_side,detailsseq0path_seq,end_pid node edge cost0agg_cost<({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 153624 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1042 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 153660 :constvalue 5 [ 20 0 0 0 98 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 153713 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a; R  Jpgr_withpoints BzDfvu E iiiiiiioooooo  0directed@driving_side,detailsseq0path_seq node edge cost0agg_cost<({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 152900 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1042 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 152936 :constvalue 5 [ 20 0 0 0 98 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 152989 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a; R  J_pgr_withpoints ?zDfvu  Miiiiiiiiioooooooo4edges_sql8points_sql8start_pids0end_pids0directed@driving_side,details4only_cost(normalseq0path_seq4start_pid,end_pid node edge cost0agg_cost({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 152115 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 152162 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})!_pgr_withpoints3$libdir/libpgrouting-3.0R  ?Jpgr_vrponedepot zDzDfvus = iiiiooooo oid oposvid0tarrival,tdepart SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER FROM _pgr_vrpOneDepot($1, $2, ' SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a ', $4); R  ?J_pgr_vrponedepot 4BzDfvuMiiiioooooooooooooseq<vehicle_seq8vehicle_id0stop_seq4stop_type,stop_id0order_id$cargo<travel_time@arrival_time4wait_time@service_timeHdeparture_time DECLARE orders_sql TEXT; trucks_sql TEXT; matrix_sql TEXT; final_sql TEXT; BEGIN orders_sql = $$WITH vrp_orders AS ($$ || $1 || $$ ), pickups AS ( SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service FROM vrp_orders WHERE id = $$ || $4 || $$ ) SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service, vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service FROM vrp_orders, pickups WHERE vrp_orders.id != $$ || $4; trucks_sql = $$ WITH vrp_orders AS ($$ || $1 || $$ ), vrp_vehicles AS ($$ || $2 || $$ ), starts AS ( SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service FROM vrp_orders WHERE id = $$ || $4 || $$ ) SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts; $$; final_sql = ' SELECT * FROM _pgr_pickDeliver( $$' || orders_sql || '$$, $$' || trucks_sql || '$$, $$' || $3 || '$$, max_cycles := 3, initial_sol := 7 ); '; RAISE DEBUG '%', orders_sql; RAISE DEBUG '%', trucks_sql; RAISE DEBUG '%', $3; RAISE DEBUG '%', final_sql; RETURN QUERY EXECUTE final_sql; END; p8H  XZ hpS   'Jh3_geo_to_h3index ?fiuX[p8resolution%h3_geo_to_h3index pgh3R   ?Jpgr_connectedcomponents BzDfvupK3iooosseq4component node SELECT * FROM _pgr_connectedComponents(_pgr_get_statement($1)); R   ?J_pgr_connectedcomponents ?zDfiupK3iooo4edges_sqlseq4component node3_pgr_connectedcomponents3$libdir/libpgrouting-3.0R   Jpgr_linegraph BzDfvuc9iiooooo0directedseq(source(target cost@reverse_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 171588 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT * FROM _pgr_lineGraph(_pgr_get_statement($1), $2) R  ?J_pgr_linegraph ?zDfiuc9iiooooo0directedseq(source(target cost@reverse_cost_pgr_linegraph3$libdir/libpgrouting-3.0R  ?Jpgr_linegraphfull BzDfvup[7ioooooseq(source(target cost edge SELECT * FROM _pgr_lineGraphFull(_pgr_get_statement($1)) R  ?J_pgr_linegraphfull ?zDfiup[7ioooooseq(source(target cost edge'_pgr_linegraphfull3$libdir/libpgrouting-3.0R  J_pgr_withpointsvia 4BzDfvuGiiiioooooooooosql4via_edges0fraction0directedseq,path_id0path_seq4start_vid,end_vid node edge cost0agg_costHroute_agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 163966 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) DECLARE has_rcost boolean; sql_new_vertices text @:= ' ' o2nexv_ union -dummyrec r ecordreDc1viakint[]esafe`edgBEGIN  <= 'SELECT id, source, target, , reverse_FRO@M ('||D || ') AS __a'; `EXECUTE 'select C, pg_typeof( )::as/" fromo||' rb__ limit 1 ' INTO9:= trueEXCEPTIO WHEN OTHERS T HE  L= falsLEND; IF array_length(, 1) != fractionthenAqRAISE 'The 6 of"is differentG$"d IFFOR i IN 01 .. /LODOPIF [i] = 03=!$m#i/M__a where id![i" %k linto6Z 39P*. 1ELSE13P @-i dIF8"; Z7=T(||3E'(O> -i\A%I * (Bn Z* (1 -Q) S /wZ #*%#H)$bWHERE//'V2'5UN[ iao2n$iL? iVl %Ips ?z?6rp?first_part@(q(j lead() OVER wB$/Y9E7-#_o< _]7$> 0 AN"DQ> 0EWI@NDOW w5PARTIBY! ORDER C) )(n2ObIS NOT NULLsecond-asj-Z ` L(Qand v/ Nqmor:b[\ENox* SeT9GU98&Ma89{ip__ ?_ ??R1 -- ra@ise no! '%',7o0>h 'RETURN querypgr_dijkstraVia(,s, direct(ed, )hEND R  Jpgr_withpointscostmatrix BzDfvuk;iiiiiooo0directed@driving_side4start_vid,end_vid0agg_cost({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 162897 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1042 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 162933 :constvalue 5 [ 20 0 0 0 98 ]})| SELECT a.start_pid, a.end_pid, a.agg_cost FROM _pgr_withPoints(_pgr_get_statement($1), _pgr_get_statement($2), $3, $3, $4, $5, TRUE, TRUE) AS a; R  Jpgr_withpointscost BzDfvus = iiiiiiooo 0directed@driving_side4start_pid,end_pid0agg_cost({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 160053 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1042 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 160089 :constvalue 5 [ 20 0 0 0 98 ]})| SELECT a.start_pid, a.end_pid, a.agg_cost FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a; R  Jpgr_withpointscost BzDfvus = iiiiiiooo 0directed@driving_side4start_pid,end_pid0agg_cost({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 159441 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1042 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 159477 :constvalue 5 [ 20 0 0 0 98 ]})x SELECT a.start_pid, $4, a.agg_cost FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a; R  Jpgr_withpointscost BzDfvus = iiiiiiooo 0directed@driving_side4start_pid,end_pid0agg_cost({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 158834 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 1042 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 158870 :constvalue 5 [ 20 0 0 0 98 ]})p SELECT $3, a.end_pid, a.agg_cost FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a; 0d6Lp  px0|(Phxp HhpR   Jpgr_edwardmoore BzDfvu C iiiioooooooo 0directedseq0path_seq4start_vid,end_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 184507 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_edwardMoore(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4) AS a; R   Jpgr_edwardmoore BzDfvu A iiiiooooooo 0directedseq0path_seq4start_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 183896 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_edwardMoore(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a; R   Jpgr_edwardmoore BzDfvu A iiiiooooooo 0directedseq0path_seq,end_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 183291 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_edwardMoore(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a; R   Jpgr_edwardmoore BzDfvu{ ? iiiioooooo 0directedseq0path_seq node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 182714 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_edwardMoore(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a; R   J_pgr_edwardmoore ?zDfiu C iiiioooooooo 4edges_sql4from_vids,to_vids0directedseq0path_seq4start_vid,end_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 182077 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})#_pgr_edwardmoore3$libdir/libpgrouting-3.0R  Jpgr_bellmanford BzDfvu C iiiioooooooo 0directedseq0path_seq4start_vid,end_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 179798 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_bellmanFord(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false ) AS a; R  Jpgr_bellmanford BzDfvu A iiiiooooooo 0directedseq0path_seq4start_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 179174 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_bellmanFord(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], directed, false) AS a; R  Jpgr_bellmanford BzDfvu A iiiiooooooo 0directedseq0path_seq,end_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 178555 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_bellmanFord(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], directed, false) AS a; R  Jpgr_bellmanford BzDfvu{ ? iiiioooooo 0directedseq0path_seq node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 177965 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_bellmanFord(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false) AS a; R  ?J_pgr_bellmanford ?zDfiu E iiiiioooooooo 4edges_sql4from_vids,to_vids0directed4only_costseq0path_seq4start_vid,end_vid node edge cost0agg_cost#_pgr_bellmanford3$libdir/libpgrouting-3.0R  ?Jpgr_bridges BzDfvup;/ioC edge SELECT edge FROM _pgr_bridges(_pgr_get_statement($1)); R  ?J_pgr_bridges ?zDfiupC1iook4edges_sqlseq edge_pgr_bridges3$libdir/libpgrouting-3.0R  ?Jpgr_articulationpoints BzDfvup;/ioC node SELECT node FROM _pgr_articulationPoints(_pgr_get_statement($1)); p6P  4И&& Ќ` ~\~R  Jpgr_primbfs 4BzDfvu{ ? iiiooooooo 4max_depthseq$depth4start_vid node edge cost0agg_cost({CONST :consttype 20 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull false :location 196741 :constvalue 8 [ -1 -1 -1 -1 -1 -1 -1 127 ]})L BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''max_depth''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_prim(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], 'BFS', $3, -1); END; R   Jpgr_primdfs 4BzDfvu{ ? iiiooooooo 4max_depthseq$depth4start_vid node edge cost0agg_cost({CONST :consttype 20 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull false :location 195291 :constvalue 8 [ -1 -1 -1 -1 -1 -1 -1 127 ]}) BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''max_depth''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_prim(_pgr_get_statement($1), $2, 'DFS', $3, -1); END; R   Jpgr_primdfs 4BzDfvu{ ? iiiooooooo 4max_depthseq$depth4start_vid node edge cost0agg_cost({CONST :consttype 20 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull false :location 194623 :constvalue 8 [ -1 -1 -1 -1 -1 -1 -1 127 ]})L BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''max_depth''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_prim(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], 'DFS', $3, -1); END; R   ?Jpgr_prim BzDfvupC1iooS edge cost SELECT edge, cost FROM _pgr_prim(_pgr_get_statement($1), ARRAY[0]::BIGINT[], '', -1, -1); R   ?J_pgr_kruskal ?zDfvu C iiiiioooooooP 4fn_suffix4max_depth0distanceseq$depth4start_vid node edge cost0agg_cost_pgr_kruskal3$libdir/libpgrouting-3.0R   ?J_pgr_prim ?zDfvu C iiiiiooooooo@ 0order_by4max_depth0distanceseq$depth4start_vid node edge cost0agg_cost_pgr_prim3$libdir/libpgrouting-3.0R  Jpgr_chinesepostmancost Bfvup SELECT cost FROM _pgr_chinesePostman(_pgr_get_statement($1), only_cost := true); R  ?Jpgr_chinesepostman BzDfvup[7ioooooseq node edge cost0agg_cost SELECT * FROM _pgr_chinesePostman(_pgr_get_statement($1), only_cost := false); R  ?J_pgr_chinesepostman ?zDfiuc9iiooooo4edges_sql4only_costseq node edge cost0agg_cost)_pgr_chinesepostman3$libdir/libpgrouting-3.0R  ?Jpgr_dagshortestpath BzDfvus = iiioooooo seq0path_seq node edge cost0agg_cost SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_dagShortestPath(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], true, false ) AS a; R  ?Jpgr_dagshortestpath BzDfvus = iiioooooo seq0path_seq node edge cost0agg_cost SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_dagShortestPath(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], true, false ) AS a; R  ?Jpgr_dagshortestpath BzDfvus = iiioooooo seq0path_seq node edge cost0agg_cost SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_dagShortestPath(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], true, false ) AS a; R  ?Jpgr_dagshortestpath BzDfvus = iiioooooo seq0path_seq node edge cost0agg_cost SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_dagShortestPath(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false ) AS a; R  J_pgr_dagshortestpath ?zDfiu A iiiiioooooo 0directed4only_costseq0path_seq node edge cost0agg_cost({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 186761 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 186797 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})+_pgr_dagshortestpath3$libdir/libpgrouting-3.0((7D  М\@8@bx@b$R   ?Jpgr_kruskaldd 4BzDfvu{ ? iiiooooooo seq$depth4start_vid node edge cost0agg_costh BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''distance''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_kruskal(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], 'DD', -1, $3::FLOAT); END; R   Jpgr_kruskalbfs 4BzDfvu{ ? iiiooooooo 4max_depthseq$depth4start_vid node edge cost0agg_cost({CONST :consttype 20 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull false :location 206104 :constvalue 8 [ -1 -1 -1 -1 -1 -1 -1 127 ]}) BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''max_depth''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_kruskal(_pgr_get_statement($1), $2, 'BFS', $3, -1); END; R   Jpgr_kruskalbfs 4BzDfvu{ ? iiiooooooo 4max_depthseq$depth4start_vid node edge cost0agg_cost({CONST :consttype 20 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull false :location 205429 :constvalue 8 [ -1 -1 -1 -1 -1 -1 -1 127 ]})X BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''max_depth''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_kruskal(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], 'BFS', $3, -1); END; R  Jpgr_kruskaldfs 4BzDfvu{ ? iiiooooooo 4max_depthseq$depth4start_vid node edge cost0agg_cost({CONST :consttype 20 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull false :location 203950 :constvalue 8 [ -1 -1 -1 -1 -1 -1 -1 127 ]}) BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''max_depth''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_kruskal(_pgr_get_statement($1), $2, 'DFS', $3, -1); END; R  Jpgr_kruskaldfs 4BzDfvu{ ? iiiooooooo 4max_depthseq$depth4start_vid node edge cost0agg_cost({CONST :consttype 20 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull false :location 203277 :constvalue 8 [ -1 -1 -1 -1 -1 -1 -1 127 ]})X BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''max_depth''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_kruskal(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], 'DFS', $3, -1); END; R  ?Jpgr_kruskal BzDfvupC1iooS edge cost SELECT edge, cost FROM _pgr_kruskal(_pgr_get_statement($1), ARRAY[0]::BIGINT[], '', -1, -1); R  ?Jpgr_primdd 4BzDfvu{ ? iiiooooooo seq$depth4start_vid node edge cost0agg_cost BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''distance''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_prim(_pgr_get_statement($1), $2, 'DD', -1, $3::FLOAT); END; R  ?Jpgr_primdd 4BzDfvu{ ? iiiooooooo seq$depth4start_vid node edge cost0agg_cost BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''distance''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_prim(_pgr_get_statement($1), $2, 'DD', -1, $3); END; R  ?Jpgr_primdd 4BzDfvu{ ? iiiooooooo seq$depth4start_vid node edge cost0agg_cost\ BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''distance''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_prim(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], 'DD', -1, $3::FLOAT); END; R  ?Jpgr_primdd 4BzDfvu{ ? iiiooooooo seq$depth4start_vid node edge cost0agg_cost\ BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''distance''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_prim(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], 'DD', -1, $3::FLOAT); END; R  Jpgr_primbfs 4BzDfvu{ ? iiiooooooo 4max_depthseq$depth4start_vid node edge cost0agg_cost({CONST :consttype 20 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull false :location 197409 :constvalue 8 [ -1 -1 -1 -1 -1 -1 -1 127 ]}) BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''max_depth''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_prim(_pgr_get_statement($1), $2, 'BFS', $3, -1); END; ȓ7l  h$`@pȏ(*H(@(R  J_pgr_binarybreadthfirstsearch ?zDfiu C iiiioooooooo 4edges_sql4from_vids,to_vids0directedseq0path_seq4start_vid,end_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 217798 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})=_pgr_binarybreadthfirstsearch3$libdir/libpgrouting-3.0R  ?J_pgr_breadthfirstsearch ?zDfiu A iiiiooooooop 4edges_sql4from_vids4max_depth0directedseq$depth4start_vid node edge cost0agg_cost1_pgr_breadthfirstsearch3$libdir/libpgrouting-3.0R  ?Jpgr_transitiveclosure BzDfvupK3iooosseqvid@target_array SELECT * FROM _pgr_transitiveClosure(_pgr_get_statement($1)); R  ?J_pgr_transitiveclosure ?zDfvupK3iooo4edges_sqlseqvid@target_array/_pgr_transitiveclosure3$libdir/libpgrouting-3.0R  ?Jpgr_topologicalsort BzDfvupC1ioo[seq0sorted_v SELECT * FROM _pgr_topologicalSort(_pgr_get_statement($1)); R  ?J_pgr_topologicalsort ?zDfvupC1ioos4edges_sqlseq0sorted_v+_pgr_topologicalsort3$libdir/libpgrouting-3.0R  ?Jpgr_full_version Bfiu`s = ooooooooo0 ,version8build_type@compile_date,library(system8postgresql0compiler$boost hash4 SELECT pgr_version(), _pgr_build_type(), _pgr_compilation_date(), _pgr_lib_version(), _pgr_operating_system(), _pgr_pgsql_version(), _pgr_compiler_version(), _pgr_boost_version(), _pgr_git_hash() R  Jpgr_version ?fvu`pgr_version3$libdir/libpgrouting-3.0R   J_pgr_pgsql_version ?fvu`'_pgr_pgsql_version3$libdir/libpgrouting-3.0R   J_pgr_operating_system ?fvu`-_pgr_operating_system3$libdir/libpgrouting-3.0R   J_pgr_lib_version ?fvu`#_pgr_lib_version3$libdir/libpgrouting-3.0R   J_pgr_git_hash ?fvu`_pgr_git_hash3$libdir/libpgrouting-3.0R   J_pgr_compiler_version ?fvu`-_pgr_compiler_version3$libdir/libpgrouting-3.0R  J_pgr_compilation_date ?fvu`-_pgr_compilation_date3$libdir/libpgrouting-3.0R  J_pgr_build_type ?fvu`!_pgr_build_type3$libdir/libpgrouting-3.0R  J_pgr_boost_version ?fvu`'_pgr_boost_version3$libdir/libpgrouting-3.0R  ?Jpgr_stoerwagner BzDfvupS5ioooo{seq edge cost(mincut SELECT * FROM _pgr_stoerWagner(_pgr_get_statement($1)); R  ?J_pgr_stoerwagner ?zDfvupS5ioooo4edges_sqlseq edge cost(mincut#_pgr_stoerwagner3$libdir/libpgrouting-3.0R  ?Jpgr_kruskaldd 4BzDfvu{ ? iiiooooooo seq$depth4start_vid node edge cost0agg_cost$ BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''distance''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_kruskal(_pgr_get_statement($1), $2, 'DD', -1, $3::FLOAT); END; R  ?Jpgr_kruskaldd 4BzDfvu{ ? iiiooooooo seq$depth4start_vid node edge cost0agg_cost BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''distance''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_kruskal(_pgr_get_statement($1), $2, 'DD', -1, $3); END; R  ?Jpgr_kruskaldd 4BzDfvu{ ? iiiooooooo seq$depth4start_vid node edge cost0agg_costh BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''distance''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_kruskal(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], 'DD', -1, $3::FLOAT); END; 8<H  (80X x HVR  gJpgr_analyzeoneway 4Bfvu   Ltwo_way_if_null(oneway(source(target({CONST :constty pe 16mod -1col lid 0len byval trueisnull false :location 249608$value 1 [ 1 "0 ]} 25 10 37 0 [ 4111 110 109 97 121h7C57 114 99f703 6N14 103a6 ]})%J R gJpgr_analyzegraph 4Bfvu0the_geomid(source(target8rows_whereX ({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 235949 :constvalue 12 [ 48 0 0 0 116 104 101 95 103 101 111 109 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 235981 :constvalue 6 [ 24 0 0 0 105 100 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 236011 :constvalue 10 [ 40 0 0 0 115 111 117 114 99 101 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 236045 :constvalue 10 [ 40 0 0 0 116 97 114 103 101 116 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 236083 :constvalue 8 [ 32 0 0 0 116 114 117 101 ]})2v J R gJpgr_createtopology 4Bfvu0the_geomid(source(target8rows_where$clean({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 225183 :constvalue 12 [ 48 0 0 0 116 104 101 95 103 101 111 109 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 225215 :constvalue 6 [ 24 0 0 0 105 100 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 225245 :constvalue 10 [ 40 0 0 0 115 111 117 114 99 101 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 225279 :constvalue 10 [ 40 0 0 0 116 97 114 103 101 116 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 225317 :constvalue 8 [ 32 0 0 0 116 114 117 101 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 225351 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})& J R  Jpgr_binarybreadthfirstsearch BzDfvu C iiiioooooooo 0directedseq0path_seq4start_vid,end_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 222758 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]})  SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_binaryBreadthFirstSearch(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4) AS a; R  Jpgr_binarybreadthfirstsearch BzDfvu A iiiiooooooo 0directedseq0path_seq4start_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 222121 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_binaryBreadthFirstSearch(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a; R  Jpgr_binarybreadthfirstsearch BzDfvu A iiiiooooooo 0directedseq0path_seq,end_vid node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 221490 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_binaryBreadthFirstSearch(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a; R  Jpgr_binarybreadthfirstsearch BzDfvu{ ? iiiioooooo 0directedseq0path_seq node edge cost0agg_costt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 220887 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost FROM _pgr_binaryBreadthFirstSearch(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a; R  Jpgr_breadthfirstsearch 4BzDfvu A iiiiooooooo 4max_depth0directedseq$depth4start_vid node edge cost0agg_cost({CONST :consttype 20 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull false :location 219193 :constvalue 8 [ -1 -1 -1 -1 -1 -1 -1 127 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 219243 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''max_depth''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_breadthFirstSearch(_pgr_get_statement($1), $2::BIGINT[], max_depth, directed) AS a; END; R  Jpgr_breadthfirstsearch 4BzDfvu A iiiiooooooo 4max_depth0directedseq$depth4start_vid node edge cost0agg_cost({CONST :consttype 20 :consttypmod -1 :constcollid 0 :constlen 8 :constbyval true :constisnull false :location 218438 :constvalue 8 [ -1 -1 -1 -1 -1 -1 -1 127 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 218488 :constvalue 1 [ 1 0 0 0 0 0 0 0 ]}) BEGIN IF $3 < 0 THEN RAISE EXCEPTION 'Negative value found on ''max_depth''' USING HINT = format('Value found: %s', $3); END IF; RETURN QUERY SELECT * FROM _pgr_breadthFirstSearch(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], max_depth, directed) AS a; END; A8$  (ȗR Jpgr_extractvertices 4BzDfvuk@;iioooooo(dryrunid0in_edges4out_edgesxy geomt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 277038 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]}) CJ R gJpgr_nodenetwork 4Bfvuid0the_geom@table_ending8rows_where(outall ({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 265219 :constvalue 6 [ 24 0 0 0 105 100 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 265249 :constvalue 12 [ 48 0 0 0 116 104 101 95 103 101 111 109 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 265289 :constvalue 9 [ 36 0 0 0 110 111 100 101 100 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 265324 :constvalue 4 [ 16 0 0 0 ]} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 265359 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})+LJ R gJpgr_createverticestable 4Bfvu0the_geom(source(target8rows_where ({CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 256099 :constvalue 12 [ 48 0 0 0 116 104 101 95 103 101 111 109 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 256140 :constvalue 10 [ 40 0 0 0 115 111 117 114 99 101 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 256179 :constvalue 10 [ 40 0 0 0 116 97 114 103 101 116 ]} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :location 256223 :constvalue 8 [ 32 0 0 0 116 114 117 101 ]}) J U;p  h,И (@Xp.XT8@؅T  '`__create_wrapper_excel` 4Bfvuserexc@names_tables tipo eschl BEGIN /*Descripcion: wrapper local a archivos excel con limite de tablas, exc:direccion del archivo con el .xls o .xlsx, name_tables: el nombre de los archivos a limitar en el caso del excell el nombre de las hojas, tipo: XLS o XLSX*/ EXECUTE 'CREATE SERVER aserpost FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''' || exc || ''', format ''' || tipo || ''', config_options ''OGR_XLSX_HEADERS=FORCE'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all LIMIT TO ("'|| names_tables ||'")FROM SERVER '|| ser ||' INTO "'|| esch||'"' ; EXECUTE 'ALTER SERVER aserpost RENAME TO "'|| ser ||'"'; END; S  ' Kh3_uncompact ?zDfiuk4h3indexes8resolutionh3_uncompact pgh3S  'Kh3_compact ?zDfiupK4h3indexesh3_compact pgh3S  'Kh3_polyfill_estimate 4Bfiu@[ geom8resolution declare result integer; begin select sum(_h3_polyfill_polygon_estimate_c(exterior_ring, interior_rings, resolution)) into result from ( select st_makepolygon(st_exteriorring(g))::polygon exterior_ring, (select array_agg(st_makepolygon(st_interiorringn(g, i))::polygon) rings from ( select generate_series(0, st_numinteriorrings(g)) i ) gs where gs.i > 0 -- index starts with 1 ) interior_rings from ( select geom g where st_geometrytype(geom) = 'ST_Polygon' union select g from ( select (st_dump(geom)).geom as g where st_geometrytype(geom) = 'ST_MultiPolygon' ) d ) polys group by g ) pg_polys; return result; end; S  'K_h3_polyfill_polygon_estimate_c ?fiu\Dexterior_ringHinterior_rings8resolution=_h3_polyfill_polygon_estimate pgh3S  'Kh3_polyfill 4BzDfiu@[ geom8resolution8 begin return query select _h3_polyfill_polygon_c(exterior_ring, interior_rings, resolution) from ( select st_makepolygon(st_exteriorring(g))::polygon exterior_ring, (select array_agg(st_makepolygon(st_interiorringn(g, i))::polygon) rings from ( select generate_series(0, st_numinteriorrings(g)) i ) gs where gs.i > 0 -- index starts with 1 ) interior_rings from ( select geom g where st_geometrytype(geom) = 'ST_Polygon' union select g from ( select (st_dump(geom)).geom as g where st_geometrytype(geom) = 'ST_MultiPolygon' ) d ) polys group by g ) pg_polys; return; end; S  'K_h3_polyfill_polygon_c ?zDfiu\Dexterior_ringHinterior_rings8resolution+_h3_polyfill_polygon pgh3S  'Kh3_edge_length_m ?fiupK8resolution#h3_edge_length_m pgh3S  'Kh3_edge_length_km ?fiupK8resolution%h3_edge_length_km pgh3S   'Kh3_hexagon_area_m2 ?fiupK8resolution'h3_hexagon_area_m2 pgh3S   'Kh3_hexagon_area_km2 ?fiupK8resolution)h3_hexagon_area_km2 pgh3S   'Jh3_kring ?zDfiu[,h3index0distanceh3_kring pgh3S   'Jh3_to_children ?zDfiuc,h3index8resolutionh3_to_children pgh3S   'Jh3_to_parent ?fiuc,h3index8resolutionh3_to_parent pgh3S  'Jh3_get_basecell ?fiupC,h3index!h3_get_basecell pgh3S  'Jh3_get_resolution ?fiupC,h3index%h3_get_resolution pgh3S  'Jh3_h3index_is_valid ?fiupC,h3index)h3_h3index_is_valid pgh3S  'Jh3_h3index_to_geoboundary 4Bfiu@pC,h3indexP declare g geometry; point_geoms geometry[]; begin select _h3_h3index_to_geoboundary(h3index)::geometry into g; return g; end; S  'J_h3_h3index_to_geoboundary ?fiu\pC,h3index7_h3_h3index_to_geoboundary pgh3S  'Jh3_h3index_to_geo 4Bfiu@pC,h3index declare g geometry; begin select st_makepoint(p[0], p[1]) into g from ( select _h3_h3index_to_geo(h3index) p ) foo; return g; end; S  'J_h3_h3index_to_geo ?fiuXpC,h3index'_h3_h3index_to_geo pgh3S  'Jh3_geo_to_h3index 4Bfiu@[g8resolution begin if st_geometrytype(g) != 'ST_Point' then raise exception 'h3 only supports point geometries'; end if; return h3_geo_to_h3index(g::point, resolution); end; ;<  P hp؋ & pT(   '(`__drop_server` 4Bfvup;serBEGIN /*Descripcion: eliminar servidor en cascada*/ EXECUTE 'DROP SERVER if exists "'|| ser ||'" cascade'; END; T   ' `__crear_teselas_en_poligono_mv` 4Bfvu esch(namein,nameoutxy declare geoma text; srid1 text; BEGIN /*se lanza la función __crear_tesela y de las teselas que extrae las separa añadiendolas un identificador */ SELECT f_geometry_column into geoma FROM geometry_columns WHERE f_table_schema = esch AND f_table_name = namein; EXECUTE 'select ST_SRID('||geoma||') from "'|| esch ||'"."'|| namein ||'" group by ST_SRID;' into srid1; EXECUTE 'create materialized view "'|| esch ||'"."'|| nameout ||'" as select row_number ()over() as id_tess,st_transform(st_setsrid(geom,'|| srid1 ||'),4326)::geometry(Geometry, 4326) as geom from (select (st_dump (geom)).geom from (select funciones.__crear_tesela( '|| geoma ||', '|| x ||', '|| y ||') as geom from "'|| esch ||'"."'|| namein ||'")t order by geom desc)t;'; END; T  ?`__crear_tesela` 4BzDfiu@@K@@3iiios geom(x_side(y_side /*crea una geometría de salida con la teselación de una geometría de entrada que ha de ser un polígono. geom:campo geometría, x_side:tamaño de la tesela en X, y_side:tamaño de la tesela en Y*/ DECLARE x_max DECIMAL; y_max DECIMAL; x_min DECIMAL; y_min DECIMAL; srid INTEGER := 4326; input_srid INTEGER; x_series DECIMAL; y_series DECIMAL; geom_cell geometry := ST_GeomFromText(FORMAT('POLYGON((0 0, 0 %s, %s %s, %s 0,0 0))', $3, $2, $3, $2), srid); BEGIN CASE ST_SRID (geom) WHEN 0 THEN geom := ST_SetSRID (geom, srid); RAISE NOTICE'SRID Not Found.'; ELSE RAISE NOTICE'SRID Found.'; END CASE; input_srid := ST_srid ( geom ); geom := ST_Transform ( geom, srid ); x_max := ST_XMax ( geom ); y_max := ST_YMax ( geom ); x_min := ST_XMin ( geom ); y_min := ST_YMin ( geom ); x_series := CEIL ( @( x_max - x_min ) / x_side ); y_series := CEIL ( @( y_max - y_min ) / y_side ); RETURN QUERY With foo AS ( SELECT ST_Translate( geom_cell, j * $2 + x_min, i * $3 + y_min ) AS cell FROM generate_series ( 0, x_series ) AS j, generate_series ( 0, y_series ) AS i ) SELECT ST_CollectionExtract(ST_Collect(ST_Transform ( ST_Intersection(cell, geom), input_srid)), 3) FROM foo where ST_intersects (cell, geom); END; T  ?`__contour_lines` 4BzDfiu@S@@5iiitt(geomin$colin(breaks geom$break*| /*Extrae la interpolación de @puntos d@ispers, convirtiendolas en linea*contorno'lin: numeric values array bre8aks*/ DECLARE bucketinger[]; gs geometry; verte2x !vvibu O ! 12 F$2331 se gment running_merge F; BEGIN WITH a AS( SELECT width_(t.x,<) AS bin FROM unnes t(t(x)0 ) Ll_agg(b"INTO oCa; < (:[\e), b $ST_DelaunayTriangles(ST_Collect(a.en)lBc B.Dump(t)).lv.bvgs%ci:= 0 FOREACH g IN ARRAY gs LOOP a1Qa.v b.c), bk) }#, v v, bu  Points(g limit 3 ) as a CROSS JOINzLATER ALQ t.*o 4I$ge1,  WHEREEqpualsLIMIT 1!kU CONTINUE WHEN bu[1] =@2] and 3]26\:= _get_cell_sects(B%,1,2);@D23@2,3@31@3,1)34    hT12 $23 31br, C, !1H1 hCASE  (UIS NOT NULL0 ANDcST _e##p23)=false) OR S?S S?S312S PT!ST_Mak@eLine(B[c]::W ?ELSE nulla# ENDa, -brU16+IU=)oHent\Xc(x) !iLEFTC/b ON b.br = c.x"IF i = 0 Uk=w; %i1911J+P1 ?$?( f!ionct(x, 2xLny& ,u,y)ST_cdXrle +$  c'Zd NmQ !IF! a RETURN QUERYsbrbGxgeoCbr&1M`Rbr1 egeoO8brr+ 3q7END; T  '`__change_epsg` 4Bfvu esch8name_table epsg4geometria BEGIN /*Descripcion: sirve para cambiar el epsg */ EXECUTE 'ALTER TABLE "'|| esch ||'"."'||name_table||'" ALTER COLUMN geom TYPE Geometry('||geometria||',' || epsg||')'; END; T  '`__alter_table_name` 4Bfvus esch<name_tables0new_nameBEGIN /*Descripcion: sirve para renombrar una tabla foranea, name_tables (viejo nombre de la tabla), new_name (nuevo nombre de la tabla) */ EXECUTE 'ALTER FOREIGN TABLE "'|| esch ||'".'|| name_tables ||' RENAME TO "'|| new_name||'"'; END; T  '`__alter_column_name_mv` 4Bfvu esch<name_tables<column_nameLnew_column_nameBEGIN /*Descripcion: sirve para renombrar una columna de una vista materializada, column_name (viejo nombre de la columna), new_column_name (nuevo nombre de la columna) */ EXECUTE 'ALTER MATERIALIZED VIEW "'|| esch ||'"."'|| name_tables ||'" RENAME COLUMN "'|| column_name ||'" TO "'|| new_column_name||'"'; END; T  '`10_tablas_union_vw` 4Bfvu@8num_tablas esch4contenido0nameview8nametable18nametable28nametable38nametable48nametable58nametable68nametable78nametable88nametable9<nametable10 declare tab text; BEGIN --el nu@mero dlas marca úuniones, funcion que hasta 10= CASE WHENZ_T= '2' THEN EXECUTE 'create view "'|| esch ||'".name as select contenido FROMEe1 UNION ALL KL#2'; E(LSEW:; END  %3--geometrias no valiXdas)L53u3u y 4yyL544 5aL55$+5!%(/ 6//L56/[6No]/_ 7/_/_L577{/ 8///4L58/8,%/ 9//k/L59?F9?F 10?G?G?GL510?10>Return"; T  '`10_tablas_union_mv` 4Bfvu@8num_tablas esch4contenido0nameview8nametable18nametable28nametable38nametable48nametable58nametable68nametable78nametable88nametable9<nametable10Z! declare tab text; BEGIN --el numero d las marc$a úuniones, funcion que hasta 10= CASE WHE NZ_T= '2' THEN EXECUTE 'create materialized view "'|| esch ||'".name as se lect contenido` FROMEe1 UNION` ALL KL#2'; ELSEd:; END  3--geometrias no validas+5L533 ] 4!L544 5mL55$+ 5!1(/ 6//L56/g6N/k 7/k/k#kL57=7=/ ^8///@L58?8<5? 9???L59?R9 ?R 10?S'?S?SL510?10>Return"; :4   8h 4 T  '`__create_leftjoin_id_mv` 4Bfvu esch(namemvDnametablegeomPnametablegeom_id,tematic8tematic_id4contenido$BEGIN /*Descripcion: crea una vista materializada desde un innerjoin, nametablegeom_id (nombre de la columna de la tabla geométrica), tematic_id (nombre de la columna de la tabla temática) */ EXECUTE 'CREATE MATERIALIZED VIEW "'|| esch ||'"."'|| namemv ||'" AS SELECT '|| contenido||' From "'|| esch ||'"."'|| nametablegeom ||'" LEFT JOIN "'|| esch ||'"."'|| tematic ||'" ON concat( "'|| nametablegeom ||'"."'|| nametablegeom_id ||'" )= concat( "'|| tematic ||'"."'|| tematic_id ||'" )'; EXECUTE 'create unique index on "'|| esch ||'"."'|| namemv ||'" (id_srm)'; exception when others then EXECUTE 'CREATE MATERIALIZED VIEW "'|| esch ||'"."'|| namemv ||'" AS select row_number ()over() as id_srm, * from (SELECT '|| contenido||' From "'|| esch ||'"."'|| nametablegeom ||'" LEFT JOIN "'|| esch ||'"."'|| tematic ||'" ON concat( "'|| nametablegeom ||'"."'|| nametablegeom_id ||'" )= concat( "'|| tematic ||'"."'|| tematic_id ||'" ))t'; EXECUTE 'create unique index on "'|| esch ||'"."'|| namemv ||'" (id_srm)'; END; T  '`__create_leftjoin__id_vw` 4Bfvu esch(namemvDnametablegeomPnametablegeom_id,tematic8tematic_id4contenidohBEGIN /*Descripcion: crea una vista desde un leftjoin, nametablegeom_id (nombre de la columna de la tabla geométrica), tematic_id (nombre de la columna de la tabla temática) */ EXECUTE 'CREATE VIEW "'|| esch ||'"."'|| namemv ||'" AS SELECT '|| contenido||' From "'|| esch ||'"."'|| nametablegeom ||'" LEFT JOIN "'|| esch ||'"."'|| tematic ||'" ON concat( "'|| nametablegeom ||'"."'|| nametablegeom_id ||'" )= concat( "'|| tematic ||'"."'|| tematic_id ||'" )'; END; T  '`__create_innerjoin_vw` 4Bfvu esch(namemvDnametablegeomPnametablegeom_id,tematic8tematic_id4contenidoBEGIN /*Descripcion: crea una vista desde un innerjoin, nametablegeom_id (nombre de la columna de la tabla geométrica), tematic_id (nombre de la columna de la tabla temática) */ EXECUTE 'CREATE VIEW "'|| esch ||'"."'|| namemv ||'" AS select a.* FRom "'|| esch ||'"."'|| nametablegeom ||'" as B INNER JOIN (SELECT '|| contenido||',similarity ("'|| nametablegeom ||'"."'|| nametablegeom_id ||'"::text,"'|| tematic ||'"."'|| tematic_id ||'"::text)as similarity_index From "'|| esch ||'"."'|| nametablegeom ||'" INNER JOIN "'|| esch ||'"."'|| tematic ||'" ON "'|| nametablegeom ||'"."'|| nametablegeom_id ||'"::text % "'|| tematic ||'"."'|| tematic_id ||'"::text)A ON A."'|| nametablegeom_id ||'" = B."'|| nametablegeom_id ||'" INNER JOIN ( select A."'|| nametablegeom_id ||'",MAX(A.similarity)as expertrank from (SELECT '|| contenido||',similarity ("'|| nametablegeom ||'"."'|| nametablegeom_id ||'"::text,"'|| tematic ||'"."'|| tematic_id ||'"::text) From "'|| esch ||'"."'|| nametablegeom ||'" INNER JOIN "'|| esch ||'"."'|| tematic ||'" ON "'|| nametablegeom ||'"."'|| nametablegeom_id ||'"::text % "'|| tematic ||'"."'|| tematic_id ||'"::text)A group by A."'|| nametablegeom_id ||'" ) as NewA ON a."'|| nametablegeom_id ||'" = NewA."'|| nametablegeom_id ||'" AND a.similarity_index = NewA.expertrank;'; END; T   ' `__create_innerjoin_mv` 4Bfvu esch(namemvDnametablegeomPnametablegeom_id,tematic8tematic_id4contenidoj 5 BEGIN /*Descripcion: crea una vista materializada desde un innerjoin, nametablegeom_id (nombre de la coplumn;)a *étrica), tematic;temt9 */ EXECUTE 'CREATE MATERIALIZED VIEW "'|| esch ||'".mv AS select a.* F8Rom3: a s B INNER JOIN (SELECT 5contenido||',similaritxy (Sk::text,!33E-)as u_index x Fr3 0 ONp! % ;AzON A\ = B D V$_ ,MA0X(A.ftexpertrank=Mfv/y/ group by 0")1New@ON< a/I ," ANxD a(4zA';'; FQ}tQaique 6onO(id_srm)'; exception when ot@hers t _,;row_number ()over(O,*$?_Y?P_Y?/ _Y)t_[AEND; T   ' `__create_innerjoin_id_vw` 4Bfvu esch(namemvDnametablegeomPnametablegeom_id,tematic8tematic_id4contenidopBEGIN /*Descripcion: crea una vista desde un innerjoin, nametablegeom_id (nombre de la columna de la tabla geométrica), tematic_id (nombre de la columna de la tabla temática) */ EXECUTE 'CREATE VIEW "'|| esch ||'"."'|| namemv ||'" AS SELECT '|| contenido||' From "'|| esch ||'"."'|| nametablegeom ||'" INNER JOIN "'|| esch ||'"."'|| tematic ||'" ON concat( "'|| nametablegeom ||'"."'|| nametablegeom_id ||'" )= concat( "'|| tematic ||'"."'|| tematic_id ||'" )'; END; T   ' `__create_innerjoin_id_mv` 4Bfvu esch(namemvDnametablegeomPnametablegeom_id,tematic8tematic_id4contenido@BEGIN /*Descripcion: crea una vista materializada desde un innerjoin, nametablegeom_id (nombre de la columna de la tabla geométrica), tematic_id (nombre de la columna de la tabla temática) */ EXECUTE 'CREATE MATERIALIZED VIEW "'|| esch ||'"."'|| namemv ||'" AS SELECT '|| contenido||' From "'|| esch ||'"."'|| nametablegeom ||'" INNER JOIN "'|| esch ||'"."'|| tematic ||'" ON concat( "'|| nametablegeom ||'"."'|| nametablegeom_id ||'" )= concat( "'|| tematic ||'"."'|| tematic_id ||'" )'; EXECUTE 'create unique index on "'|| esch ||'"."'|| namemv ||'" (id_srm)'; exception when others then EXECUTE 'CREATE MATERIALIZED VIEW "'|| esch ||'"."'|| namemv ||'" AS select row_number ()over() as id_srm,* from (SELECT '|| contenido||' From "'|| esch ||'"."'|| nametablegeom ||'" INNER JOIN "'|| esch ||'"."'|| tematic ||'" ON concat( "'|| nametablegeom ||'"."'|| nametablegeom_id ||'" )= concat( "'|| tematic ||'"."'|| tematic_id ||'" ))t'; EXECUTE 'create unique index on "'|| esch ||'"."'|| namemv ||'" (id_srm)'; END; T   ' `__crear_teselas_en_poligono_vw` 4Bfvu esch(namein,nameoutxy declare geoma text; srid1 text; BEGIN /*se lanza la función __crear_tesela y de las teselas que extrae las separa añadiendolas un identificador */ SELECT f_geometry_column into geoma FROM geometry_columns WHERE f_table_schema = esch AND f_table_name = namein; EXECUTE 'select ST_SRID('||geoma||') from "'|| esch ||'"."'|| namein ||'" group by ST_SRID;' into srid1; EXECUTE 'create view "'|| esch ||'"."'|| nameout ||'" as select row_number ()over() as id_tess,st_transform(st_setsrid(geom,'|| srid1 ||'),4326)::geometry(Geometry, 4326) as geom from (select (st_dump (geom)).geom from (select funciones.__crear_tesela( '|| geoma ||', '|| x ||', '|| y ||') as geom from "'|| esch ||'"."'|| namein ||'")t order by geom desc)t;'; END; H2;@P  0 @8 $xPT   '`__create_wrapper_csv` 4Bfvu{serexc<name_tables esch<BEGIN /*Descripcion: wrapper local a archivos csv con limite de tablas, exc:direccion del archivo, name_tables: el nombre de los archivos a limitar*/ EXECUTE 'CREATE SERVER aserpost FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''' || exc || ''', format ''CSV'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all limit to ("'|| name_tables ||'") FROM SERVER ' || ser || ' INTO "' || esch||'"'; EXECUTE 'ALTER SERVER aserpost RENAME TO "'|| ser ||'"'; END; T   '`__create_wrapper_csv` 4Bfvu[serexc eschBEGIN /*Descripcion: wrapper local a archivos csv sin limite, exc:direccion del archivo*/ EXECUTE 'CREATE SERVER aserpost FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''' || exc || ''', format ''CSV'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER "'|| ser ||'" INTO "'|| esch||'"' ; EXECUTE 'ALTER SERVER aserpost RENAME TO "'|| ser ||'"'; END; T  '`__create_user` 4BfvucHnombre_usuariopw BEGIN /*Descripcion: crea un usuario pw: password */ EXECUTE 'CREATE SCHEMA "'|| nombre_usuario ||'"'; EXECUTE 'CREATE user "'|| nombre_usuario ||'" LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION CONNECTION LIMIT -1 PASSWORD ''' || pw ||''''; EXECUTE 'GRANT ALL ON SCHEMA "'|| nombre_usuario ||'" TO postgres'; EXECUTE 'GRANT ALL ON SCHEMA "'|| nombre_usuario ||'" TO "'|| nombre_usuario ||'"'; EXECUTE 'ALTER USER "'|| nombre_usuario ||'" SET search_path TO "' || nombre_usuario ||'"'; EXECUTE 'ALTER ROLE "'|| nombre_usuario ||'" IN DATABASE '||current_database()||' SET search_path TO "'|| nombre_usuario ||'"'; EXECUTE 'GRANT SELECT ON ALL TABLES IN SCHEMA public TO "' || nombre_usuario ||'"'; EXECUTE 'GRANT all privileges ON ALL TABLES IN SCHEMA "'|| nombre_usuario ||'" TO "'|| nombre_usuario ||'"'; END; T  '`__create_schema` 4BfvupSHnombre_usuario,BEGIN /*Descripcion: crea un esquema, nombre_usuario (nombre del esquema) */ EXECUTE 'CREATE SCHEMA "'|| nombre_usuario ||'"'; END; T  '`__create_view_contain` 4Bfvu esch0nameview4nametable4contenidoHBEGIN /*Descripcion: crea una vista, contenido: la selección en bruto de los nombres de las columnas que se quieren llevar a la vista */ EXECUTE 'CREATE VIEW "'|| esch ||'"."'|| nameview ||'" AS SELECT "'|| contenido||'" FROM "'|| esch ||'"."'|| nametable||'"'; END; T  '`__create_mv_contain` 4Bfvu esch0nameview4nametable4contenidoBEGIN /*Descripcion: crea una vista materializada, contenido: la selección en bruto de los nombres de las columnas que se quieren llevar a la vista */ EXECUTE 'CREATE materialized VIEW "'|| esch ||'"."'|| nameview ||'" AS SELECT "'|| contenido||'" FROM "'|| esch ||'"."'|| nametable||'"'; EXECUTE 'create unique index on "'|| esch ||'"."'|| nameview ||'" (fid)'; END; T  '`__create_view` 4Bfvus esch0nameview4nametable|BEGIN /*Descripcion: crea una vista */ EXECUTE 'CREATE VIEW "'|| esch ||'"."'|| nameview ||'" AS SELECT * FROM "'|| esch ||'"."'|| nametable||'"'; END; T  '`__create_mv` 4Bfvus esch0nameview4nametableBEGIN /*Descripcion: crea una vista materializada */ EXECUTE 'CREATE materialized VIEW "'|| esch ||'"."'|| nameview ||'" AS SELECT * FROM "'|| esch ||'"."'|| nametable||'"'; EXECUTE 'create unique index on "'|| esch ||'"."'|| nameview ||'" (fid)'; END; T  '`__create_leftjoin_vw` 4Bfvu esch(namemvDnametablegeomPnametablegeom_id,tematic8tematic_id4contenidohBEGIN /*Descripcion: crea una vista desde un leftjoin, nametablegeom_id (nombre de la columna de la tabla geométrica), tematic_id (nombre de la columna de la tabla temática) */ EXECUTE 'CREATE VIEW "'|| esch ||'"."'|| namemv ||'" AS select a.* FRom "'|| esch ||'"."'|| nametablegeom ||'" as B INNER JOIN (SELECT '|| contenido||',COALESCE(similarity ("'|| nametablegeom ||'"."'|| nametablegeom_id ||'"::text,"'|| tematic ||'"."'|| tematic_id ||'"::text),0)as similarity_index From "'|| esch ||'"."'|| nametablegeom ||'" LEFT JOIN "'|| esch ||'"."'|| tematic ||'" ON "'|| nametablegeom ||'"."'|| nametablegeom_id ||'"::text % "'|| tematic ||'"."'|| tematic_id ||'"::text)A ON A."'|| nametablegeom_id ||'" = B."'|| nametablegeom_id ||'" INNER JOIN ( select A."'|| nametablegeom_id ||'",MAX(A.similarity)as expertrank from (SELECT '|| contenido||',COALESCE(similarity ("'|| nametablegeom ||'"."'|| nametablegeom_id ||'"::text,"'|| tematic ||'"."'|| tematic_id ||'"::text),0) as similarity From "'|| esch ||'"."'|| nametablegeom ||'" LEFT JOIN "'|| esch ||'"."'|| tematic ||'" ON "'|| nametablegeom ||'"."'|| nametablegeom_id ||'"::text % "'|| tematic ||'"."'|| tematic_id ||'"::text)A group by A."'|| nametablegeom_id ||'" ) as NewA ON a."'|| nametablegeom_id ||'" = NewA."'|| nametablegeom_id ||'" AND a.similarity_index = NewA.expertrank;'; END; T  '`__create_leftjoin_mv` 4Bfvu esch(namemvDnametablegeomPnametablegeom_id,tematic8tematic_id4contenido } BEGIN /*Descripcion: crea una vista materializada desde un innerjoin, nametablegeom_id (nombre de la coplumn;)a *étrica), tematic;temt9 */ EXECUTE 'CREATE MATERIALIZED VIEW "'|| esch ||'".mv AS select a.* F8Rom3: a s B INNER JOIN (SELECT 5contenido||',COALESCE(similarity (\t!::text,!<3N-),0)as x_index FrpLEFT2 0 ON{! % ;AON A\ = B D V$"_ ,MA0X(A.esexpertrankMfu/'!y/"group byG 0New@OxN a/b ," AND a(-4A'7;'; FQtQique 6onO(id_srm)'; exception when others t  _P;row_number ()o0ver(O,*?4_}?[_}_}_})t_AEND; ;H  8v|X@z؇ȀT'   ''`__drop_esch` 4Bfvup; eschBEGIN /*Descripcion: eliminar vista materializada en cascada*/ EXECUTE 'DROP schema if exists "'|| esch ||'" cascade'; END; T&   '&`__drop_vw` 4Bfvu[ esch<name_tablesXBEGIN /*Descripcion: eliminar vista materializada en cascada*/ EXECUTE 'DROP VIEW if exists "'|| esch ||'"."'|| name_tables ||'" cascade'; END; T%   '%`__drop_mv` 4Bfvu[ esch<name_tablesBEGIN /*Descripcion: eliminar vista materializada en cascada*/ EXECUTE 'DROP materialized VIEW if exists "'|| esch ||'"."'|| name_tables ||'" cascade'; END; T$   '$`__create_wrapper_shp` 4Bfvu{serexc<name_tables eschhBEGIN /*Descripcion: wrapper local a archivos shp con limite de tablas, exc:direccion del archivo, name_tables: el nombre de los archivos a limitar*/ EXECUTE 'CREATE SERVER aserpost FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''' || exc || ''', format ''ESRI Shapefile'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all limit to ("'|| name_tables ||'") FROM SERVER ' || ser || ' INTO "'|| esch ||'"'; EXECUTE 'ALTER SERVER aserpost RENAME TO "'|| ser ||'"'; END; T#  '#`__create_wrapper_shp` 4Bfvu[serexc eschBEGIN /*Descripcion: wrapper local a archivos shp sin limite de tablas, exc:direccion del archivo*/ EXECUTE 'CREATE SERVER aserpost FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''' || exc || ''', format ''ESRI Shapefile'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER ' || ser || ' INTO "'|| esch ||'"'; EXECUTE 'ALTER SERVER aserpost RENAME TO "'|| ser ||'"'; END; T"  '"`__create_wrapper_mdb` 4Bfvu{serexc@names_tables esch$ BEGIN /*Descripcion: wrapper local a archivos MDB con limite de tablas, exc:direccion del archivo, name_tables: el nombre de los archivos a limitar*/ EXECUTE 'CREATE SERVER aserpost FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''' || exc || ''', format ''Geomedia'', config_options ''OGR_SKIP=ODBC GEOMEDIA_DRIVER_TEMPLATE="DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=%s"'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all LIMIT TO ("'|| names_tables ||'")FROM SERVER ' || ser || ' INTO "'|| esch ||'"'; EXECUTE 'ALTER SERVER aserpost RENAME TO "'|| ser ||'"'; END; T!  '!`__create_wrapper_mdb` 4Bfvu[serexc eschBEGIN /*Descripcion: wrapper local a archivos MDB sin limite de tablas, exc:direccion del archivo*/ EXECUTE 'CREATE SERVER aserpost FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''' || exc || ''', format ''Geomedia'', config_options ''OGR_SKIP=ODBC GEOMEDIA_DRIVER_TEMPLATE="DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=%s"'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER ' || ser || ' INTO "'|| esch ||'"'; EXECUTE 'ALTER SERVER aserpost RENAME TO "'|| ser ||'"'; END; T   ' `__create_wrapper_kml` 4Bfvu[serexc eschBEGIN /*Descripcion: wrapper local a archivos kml sin limite de tablas, exc:direccion del archivo*/ EXECUTE 'CREATE SERVER aserpost FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''' || exc || ''', format ''KML'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER '|| ser ||' INTO "'|| esch||'"'; EXECUTE 'ALTER SERVER aserpost RENAME TO "'|| ser ||'"'; END; T  '`__create_wrapper_host` 4Bfvu   ser host(puerto$dbaseusr pass$esch1$esch2<name_tables BEGIN /*Descripcion: wrapper a otro postgres con limitacion de tablas , usr: usuario del otro postgres, pass: password del otro postgres, esch1:el esquema que se quiere importar, esch2: el esquema propio name_tables: el nombre de los archivos a limitar*/ EXECUTE 'CREATE SERVER aserpost FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host ''' || host || ''', port ''' || puerto || ''', dbname ''' || dbase || ''')'; EXECUTE 'CREATE USER MAPPING FOR "'|| dbase ||'" SERVER ' || ser || ' OPTIONS ("user" ''' || usr || ''', password ''' || pass || ''')'; EXECUTE 'IMPORT FOREIGN SCHEMA "'|| esch1 ||'" LIMIT TO ("'|| name_tables ||'") FROM SERVER '|| ser ||' INTO "'|| esch2||'"'; EXECUTE 'ALTER SERVER aserpost RENAME TO "'|| ser ||'"'; END; T  '`__create_wrapper_host` 4Bfvuser host(puerto$dbaseusr pass$esch1$esch2< BEGIN /*Descripcion: wrapper a otro postgres, usr: usuario del otro postgres, pass: password del otro postgres, esch1:el esquema que se quiere importar, esch2: el esquema propio*/ EXECUTE 'CREATE SERVER aserpost FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host ''' || host || ''', port ''' || puerto || ''', dbname ''' || dbase || ''')'; EXECUTE 'CREATE USER MAPPING FOR "'|| dbase ||'" SERVER '|| ser ||' OPTIONS ("user" ''' || usr || ''', password ''' || pass || ''')'; EXECUTE 'IMPORT FOREIGN SCHEMA "'|| esch1 ||'" FROM SERVER '|| ser ||' INTO "'|| esch2||'"' ; EXECUTE 'ALTER SERVER aserpost RENAME TO "'|| ser ||'"'; END; T  '`__create_wrapper_geopackage` 4Bfvu[serexc eschBEGIN /*Descripcion: wrapper local a archivos geopackage sin limite, exc:direccion del archivo acabado con nombre archivo y .gpkg*/ EXECUTE 'CREATE SERVER aserpost FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''' || exc || ''', format ''GPKG'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER ' || ser || ' INTO "'|| esch ||'"'; EXECUTE 'ALTER SERVER aserpost RENAME TO "'|| ser ||'"'; END; T  '`__create_wrapper_excel` 4Bfvukserexc tipo eschhBEGIN /*Descripcion: wrapper local a archivos excel sin limite de tablas, exc:direccion del archivo con el .xls o .xlsx, tipo: XLS o XLSX*/ EXECUTE 'CREATE SERVER aserpost FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''' || exc || ''', format ''' || tipo || ''', config_options ''OGR_XLSX_HEADERS=FORCE'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER ' || ser || ' INTO "'|| esch||'"'; EXECUTE 'ALTER SERVER aserpost RENAME TO "'|| ser ||'"'; END; (A=@   8  (8 X TF   'F`cambiar_esquema_multiples_tablas` 4Bfvu{H_schema_salidaHschema_entrada DECLARE row record; BEGIN FOR row IN SELECT table_schema, table_name FROM information_schema.tables WHERE table_schema = ''||schema_entrada ||'' LOOP EXECUTE 'alter TABLE "'||schema_entrada ||'"."'||row.table_name||'" set schema "'||_schema_salida ||'"'; END LOOP; END; T1   '1`__external_wrapper_geopackage_limit` 4Bfvuserexc esch<name_tables0new_name BEGIN /*Descripcion: wrapper extertno a archivos geopackage con limite de tablas, exc:direccion del archivo con nombre archivo y .gpkg, name_tables: el nombre de los archivos a limitar, new_name:nuevo nombre de la tabla*/ EXECUTE 'CREATE SERVER ageopackage FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl_streaming/' || exc || ''', format ''GPKG'',config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all limit to ("'|| name_tables ||'") FROM SERVER ageopackage INTO "'|| esch ||'"'; EXECUTE 'ALTER FOREIGN TABLE "'|| esch ||'"."'|| name_tables ||'" RENAME TO "'|| new_name ||'"'; EXECUTE 'ALTER SERVER ageopackage RENAME TO "'|| ser ||'"'; END; T0  '0`__external_wrapper_geopackage` 4Bfvu[serexc eschBEGIN /*Descripcion: wrapper extertno a archivos geopackage sin limite de tablas, exc:direccion del archivo con nombre archivo y .gpkg*/ EXECUTE 'CREATE SERVER ageopackage FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl_streaming/' || exc || ''', format ''GPKG'',config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER ageopackage INTO "'|| esch ||'"'; EXECUTE 'ALTER SERVER ageopackage RENAME TO "'|| ser ||'"'; END; T/  '/`__external_wrapper_geojson_limit` 4Bfvuserexc esch<name_tables0new_name BEGIN /*Descripcion: wrapper extertno a archivos geojson con limite de tablas, exc:direccion del archivo, name_tables: el nombre de los archivos a limitar, new_name:nuevo nombre de la tabla*/ EXECUTE 'CREATE SERVER ageojson FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''' || exc || ''', format ''GeoJSON'', config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all limit to ('|| name_tables ||') FROM SERVER ageojson INTO "'|| esch ||'"'; EXECUTE 'ALTER FOREIGN TABLE "'|| esch ||'".'|| name_tables ||' RENAME TO "'|| new_name ||'"'; EXECUTE 'ALTER SERVER ageojson RENAME TO "'|| ser ||'"'; END; T.  '.`__external_wrapper_geojson` 4Bfvu[serexc eschBEGIN /*Descripcion: wrapper extertno a archivos geojson sin limite de tablas, exc:direccion del archivo*/ EXECUTE 'CREATE SERVER ageojson FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''' || exc || ''', format ''GeoJSON'', config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER ageojson INTO "'|| esch ||'"'; EXECUTE 'ALTER SERVER ageojson RENAME TO "'|| ser ||'"'; END; T-  '-`__external_wrapper_excel_limit` 4Bfvuserexc esch tipo<name_tables0new_namex BEGIN /*Descripcion: wrapper externo a archivos excel con limite de tablas, exc:direccion del archivo con el .xls o .xlsx, tipo: XLS o XLSX name_tables: el nombre de los archivos a limitar, new_name:nuevo nombre de la tabla*/ EXECUTE 'CREATE SERVER axcl FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl_streaming/' || exc || ''', format ''' || tipo || ''',open_options ''OGR_XLSX_HEADERS=FORCE'', config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all limit to ('|| name_tables ||') FROM SERVER axcl INTO "'|| esch ||'"'; EXECUTE 'ALTER FOREIGN TABLE "'|| esch ||'".'|| name_tables ||' RENAME TO "'|| new_name ||'"'; EXECUTE 'ALTER SERVER axcl RENAME TO "'|| ser ||'"'; END; T,  ',`__external_wrapper_excel` 4Bfvukserexc esch tipoBEGIN /*Descripcion: wrapper externo a archivos excel sin limite de tablas, exc:direccion del archivo con el .xls o .xlsx, tipo: XLS o XLSX*/ EXECUTE 'CREATE SERVER axcl FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl_streaming/' || exc || ''', format ''' || tipo || ''',open_options ''OGR_XLSX_HEADERS=FORCE'', config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER axcl INTO "'|| esch ||'"'; EXECUTE 'ALTER SERVER axcl RENAME TO "'|| ser ||'"'; END; T+  '+`__external_wrapper_csv_limit` 4Bfvuserexc esch<name_tables0new_name BEGIN /*Descripcion: wrapper extertno a archivos csv con limite de tablas, exc:direccion del archivo, name_tables: el nombre de los archivos a limitar, new_name:nuevo nombre de la tabla*/ EXECUTE 'CREATE SERVER acsv FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl_streaming/' || exc || ''', format ''CSV'',config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all limit to ('|| name_tables ||') FROM SERVER acsv INTO "'|| esch ||'"'; EXECUTE 'ALTER FOREIGN TABLE "'|| esch ||'".'|| name_tables ||' RENAME TO "'|| new_name ||'"'; EXECUTE 'ALTER SERVER acsv RENAME TO "'|| ser ||'"'; END; T*  '*`__external_wrapper_csv` 4Bfvu[serexc eschBEGIN /*Descripcion: wrapper extertno a archivos csv sin limite de tablas, exc:direccion del archivo*/ EXECUTE 'CREATE SERVER ageojson FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''' || exc || ''', format ''CSV'', config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER ageojson INTO "'|| esch ||'"'; EXECUTE 'ALTER SERVER ageojson RENAME TO "'|| ser ||'"'; END; T)  ')`__drop_user` 4BfvupSHnombre_usuarioBEGIN /*Descripcion: eliminar usuario*/ EXECUTE 'drop schema "'|| nombre_usuario ||'" cascade'; EXECUTE 'REVOKE GRANT OPTION FOR ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public FROM "'|| nombre_usuario ||'" CASCADE'; EXECUTE 'REVOKE GRANT OPTION FOR ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM "'|| nombre_usuario ||'" CASCADE'; EXECUTE 'REVOKE select ON all tables in schema public FROM "'|| nombre_usuario ||'"'; EXECUTE 'drop role "'|| nombre_usuario ||'"'; END; PG=<  TP\0: Hr 0HTG   G`cambiarusermapping` 4Bfvu` DECLARE row record; BEGIN FOR row IN select split_part(split_part(umoptions::Text, ',',1),'=','2') as pga, replace(split_part(split_part(umoptions::Text, ',',2),'=','2'),'}',' ') as usr, srvname from pg_user_mappings LOOP EXECUTE 'DROP USER MAPPING IF EXISTS FOR postgres SERVER "'||row.srvname||'"; CREATE USER MAPPING if not exists FOR srm_postgres_1 SERVER "'||row.srvname||'" OPTIONS (password '''||row.pga||''', "user" '''||row.usr||''')'; END LOOP; END; T9  '8`__external_wrapper_shp` 4Bfvu[serexc eschBEGIN /*Descripcion: wrapper extertno a archivos shp sin limite de tablas, exc:direccion del archivo*/ EXECUTE 'CREATE SERVER ashp FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl/' || exc || ''', format ''ESRI Shapefile'',config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER ashp INTO "'|| esch ||'"'; EXECUTE 'ALTER SERVER ashp RENAME TO "'|| ser ||'"'; END; T8  '7`__external_wrapper_shp_limit` 4Bfvuserexc esch<name_tables0new_name BEGIN /*Descripcion: wrapper extertno a archivos shp con limite de tablas, exc:direccion del archivo, name_tables: el nombre de los archivos a limitar, new_name:nuevo nombre de la tabla*/ EXECUTE 'CREATE SERVER ashp FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl/'|| exc ||''', format ''ESRI Shapefile'',config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all limit to ('|| name_tables ||') FROM SERVER ashp INTO "'|| esch ||'"'; EXECUTE 'ALTER FOREIGN TABLE "'|| esch ||'".'|| name_tables ||' RENAME TO "'|| new_name ||'"'; EXECUTE 'ALTER SERVER ashp RENAME TO "'|| ser ||'"'; END; T7  '6`__external_wrapper_postgresql_no_limit` 4Bfvu  @ ser host(puerto8dbase_user8usr_server0usr_user4pass_user4esch_user<esch_server BEGIN /*Descripcion: wrapper a otro postgres sin limitacion de tablas , usr_user: usuario del otro postgres, pass_user: password del otro postgres, esch_user:el esquema que se quiere importar, esch_server: el esquema propio*/ EXECUTE 'CREATE SERVER a'|| ser ||' FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host ''' || host || ''', port ''' || puerto || ''', dbname ''' || dbase_user || ''')'; EXECUTE 'CREATE USER MAPPING FOR "'|| usr_server ||'" SERVER a'|| ser ||' OPTIONS ("user" ''' || usr_user || ''', password ''' || pass_user || ''')'; EXECUTE 'IMPORT FOREIGN SCHEMA "'|| esch_user || '" FROM SERVER a'|| ser ||' INTO "'|| esch_server ||'"'; EXECUTE 'ALTER SERVER a'|| ser ||' RENAME TO "'|| ser ||'"'; END; T6  '5`__external_wrapper_postgresql` 4Bfvu   ser host(puerto8dbase_user8usr_server0usr_user4pass_user4esch_user<esch_server<name_tables0new_nameBEGIN /*Descripcion: wrapper a otro postgres con limitacion de tablas , usr_user: usuario del otro postgres, pass_user: password del otro postgres, esch_user:el esquema que se quiere importar, esch_server: el esquema propio name_tables: el nombre de los archivos a limitar*/ EXECUTE 'CREATE SERVER a'|| ser ||' FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host ''' || host || ''', port ''' || puerto || ''', dbname ''' || dbase_user || ''')'; EXECUTE 'CREATE USER MAPPING FOR "'|| usr_server ||'" SERVER a'|| ser ||' OPTIONS ("user" ''' || usr_user || ''', password ''' || pass_user || ''')'; EXECUTE 'IMPORT FOREIGN SCHEMA "'|| esch_user || '" LIMIT TO ("'|| name_tables ||'") FROM SERVER a'|| ser ||' INTO "'|| esch_server ||'"'; EXECUTE 'ALTER FOREIGN TABLE "'|| esch_server ||'"."'|| name_tables ||'" RENAME TO "'|| new_name ||'"'; EXECUTE 'ALTER SERVER a'|| ser ||' RENAME TO "'|| ser ||'"'; END; T5  '4`__external_wrapper_kml_limit` 4Bfvuserexc esch<name_tables0new_name BEGIN /*Descripcion: wrapper extertno a archivos kml con limite de tablas, exc:direccion del archivo, name_tables: el nombre de los archivos a limitar, new_name:nuevo nombre de la tabla*/ EXECUTE 'CREATE SERVER akml FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl_streaming/' || exc || ''', format ''KML'',config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all limit to ('|| name_tables ||') FROM SERVER akml INTO "'|| esch ||'"'; EXECUTE 'ALTER FOREIGN TABLE "'|| esch ||'".'|| name_tables ||' RENAME TO "'|| new_name ||'"'; EXECUTE 'ALTER SERVER akml RENAME TO "'|| ser ||'"'; END; T4 ( '3`__external_wrapper_kml` 4Bfvu[serexc eschBEGIN /*Descripcion: wrapper extertno a archivos kml sin limite de tablas, exc:direccion del archivo*/ EXECUTE 'CREATE SERVER akml FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl_streaming/' || exc || ''', format ''KML'',config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER akml INTO "'|| esch ||'"'; EXECUTE 'ALTER SERVER akml RENAME TO "'|| ser ||'"'; END; TT@+ '3`__external_wrapper_kml` 4Bfvu[serexc eschBEGIN /*Descripcion: wrapper extertno a archivos kml sin limite de tablas, exc:direccion del archivo*/ EXECUTE 'CREATE SERVER akml FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl_streaming/' || exc || ''', format ''KML'',config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER akml INTO "'|| esch ||'"'; EXECUTE 'ALTER SERVER akml RENAME TO "'|| ser ||'"'; END; T2  '2`__external_wrapper_gml_limit` 4Bfvuserexc esch<name_tables0new_name BEGIN /*Descripcion: wrapper extertno a archivos geopackage con limite de tablas, exc:direccion del archivo con nombre archivo y .gml, name_tables: el nombre de los archivos a limitar, new_name:nuevo nombre de la tabla*/ EXECUTE 'CREATE SERVER agml FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl_streaming/' || exc || ''', format ''GML'',config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all limit to ("'|| name_tables ||'") FROM SERVER agml INTO "'|| esch ||'"'; EXECUTE 'ALTER FOREIGN TABLE "'|| esch ||'"."'|| name_tables ||'" RENAME TO "'|| new_name ||'"'; EXECUTE 'ALTER SERVER agml RENAME TO "'|| ser ||'"'; END; X=HH  XT&ȑ8<T8RJHTE  'D`calles_desde_edificios` 4Bfvu esch<tbl_entrada8tbl_salidaldistancia_nucleo_urbanoLlongitud_calles0precison?'E` TD   'C`alter_name_vw` 4Bfvu[ esch4nametable$ BEGIN /*Descripcion:cambia el nombre de una vista pensado para las de la union */ EXECUTE 'ALTER VIEW "'|| esch ||'"."paraunion_'|| nametable ||'" RENAME TO "zvw_'|| nametable ||'";'; END; TC   'B`alter_name_rail2_vw` 4Bfvu[ esch4nametable4 BEGIN /*Descripcion:cambia el nombre de una vista pensado para las de la union */ EXECUTE 'ALTER VIEW "'|| esch ||'"."paraunionrail_'|| nametable ||'" RENAME TO "zvw_'|| nametable ||'";'; END; TB   'A`alter_name_hidro2_vw` 4Bfvu[ esch4nametable8 BEGIN /*Descripcion:cambia el nombre de una vista pensado para las de la union */ EXECUTE 'ALTER VIEW "'|| esch ||'"."paraunionhidro_'|| nametable ||'" RENAME TO "zvw_'|| nametable ||'";'; END; TA  ?@`__list_tbl_view_matview` 4BzDfvupC1ittk,_schema(nombre tipo BEGIN RETURN query select * from (SELECT table_name::character varying as nombre,table_type as tipo FROM information_schema.tables WHERE table_schema = _schema union all select matviewname::character varying as nombre, 'MATVIEW' as tipo from pg_matviews where schemaname = _schema)t; END; T@  ??`__list_schemas` 4BzDfvu`3-tSDschema_name_0, BEGIN RETURN QUERY select schema_name::character varying from information_schema.schemata where not schema_name like 'pg%'; END; T?  '>`__ftp_wrapper_shp` 4Bfvuserexc esch<name_tables0new_nameh BEGIN /*sin uso; Descripcion: wrapper extertno a archivos shp con limite de tablas, exc:direccion del archivo, name_tables: el nombre de los archivos a limitar, new_name:nuevo nombre de la tabla*/ EXECUTE 'CREATE SERVER ashp FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl_streaming/' || exc || ''', format ''ESRI Shapefile'',config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all limit to ("'|| name_tables ||'") FROM SERVER ashp INTO "'|| esch ||'"'; EXECUTE 'ALTER FOREIGN TABLE "'|| esch ||'"."'|| name_tables ||'" RENAME TO "'|| new_name ||'"'; EXECUTE 'ALTER SERVER ashp RENAME TO "'|| ser ||'"'; END; T>  '=`__ftp_wrapper_kml_limit` 4Bfvuserexc esch<name_tables0new_name, BEGIN /*sin uso; Descripcion: wrapper extertno a archivos kml con limite de tablas, exc:direccion del archivo, name_tables: el nombre de los archivos a limitar, new_name:nuevo nombre de la tabla*/ EXECUTE 'CREATE SERVER akml FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl_streaming/' || exc || ''', format ''KML'',config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all limit to ('|| name_tables ||') FROM SERVER akml INTO "'|| esch ||'"'; EXECUTE 'ALTER FOREIGN TABLE "'|| esch ||'".'|| name_tables ||' RENAME TO "'|| new_name ||'"'; EXECUTE 'ALTER SERVER akml RENAME TO "'|| ser ||'"'; END; T=  '<`__ftp_wrapper_excel` 4Bfvuserexc esch tipo<name_tables0new_name BEGIN /*sin uso; Descripcion: wrapper externo a archivos excel con limite de tablas, exc:direccion del archivo con el .xls o .xlsx, tipo: XLS o XLSX name_tables: el nombre de los archivos a limitar, new_name:nuevo nombre de la tabla*/ EXECUTE 'CREATE SERVER axcl FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl_streaming/' || exc || ''', format ''' || tipo || ''',open_options ''OGR_XLSX_HEADERS=FORCE'', config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all limit to ('|| name_tables ||') FROM SERVER axcl INTO "'|| esch ||'"'; EXECUTE 'ALTER FOREIGN TABLE "'|| esch ||'".'|| name_tables ||' RENAME TO "'|| new_name ||'"'; EXECUTE 'ALTER SERVER axcl RENAME TO "'|| ser ||'"'; END; T<  ';`__ftp_wrapper_csv` 4Bfvuserexc esch<name_tables0new_name< BEGIN /*sin uso; Descripcion: wrapper extertno a archivos shp con limite de tablas, exc:direccion del archivo, name_tables: el nombre de los archivos a limitar, new_name:nuevo nombre de la tabla*/ EXECUTE 'CREATE SERVER acsv FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsicurl_streaming/' || exc || ''', format ''CSV'',config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all limit to ("'|| name_tables ||'") FROM SERVER acsv INTO "'|| esch ||'"'; EXECUTE 'ALTER FOREIGN TABLE "'|| esch ||'"."'|| name_tables ||'" RENAME TO "'|| new_name ||'"'; EXECUTE 'ALTER SERVER acsv RENAME TO "'|| ser ||'"'; END; T;  ':`__external_wrapper_zip_varios` 4Bfvu[serexc esch( declare coordx character varying ; BEGIN /*Descripcion: wrapper extertno a archivos zip que tienen muchas archivos, exc:direccion del archivo*/ EXECUTE 'CREATE SERVER zip FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsizip//vsicurl/'|| exc ||''', config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER zip INTO "'|| esch ||'"'; EXECUTE 'ALTER SERVER zip RENAME TO "'|| ser ||'"'; END; T:  '9`__external_wrapper_zip` 4Bfvusserexc esch0new_name declare coordx character varying ; BEGIN /*Descripcion: wrapper extertno a archivos zip que tienen un archivo, exc:direccion del archivo, new_name:nuevo nombre de la tabla, coordx:extrae el nombre de la tabla por si no coincide con el zip*/ EXECUTE 'CREATE SERVER zip FOREIGN DATA WRAPPER ogr_fdw OPTIONS (datasource ''/vsizip//vsicurl_streaming/'|| exc ||''', config_options ''GDAL_HTTP_UNSAFESSL=YES'')'; EXECUTE 'IMPORT FOREIGN SCHEMA ogr_all FROM SERVER zip INTO "'|| esch ||'"'; select foreign_table_name into coordx FROM information_schema.foreign_tables where foreign_server_name = 'zip'; EXECUTE 'ALTER FOREIGN TABLE "'|| esch ||'"."'|| coordx ||'" RENAME TO "'|| new_name ||'"'; EXECUTE 'ALTER SERVER zip RENAME TO "'|| ser ||'"'; END; =,  F ؎ HЀ TL  'L`chequear_topologia_vw` 4Bfvus esch0nameview4nametable BEGIN /*Descripcion: Saca errores topológicos */ Execute 'create view "'|| esch ||'".name as select row_number() OVER () AS id6table||', id, from( Dgid1Sid,concat(''geometries with union points'','': id '',KBy 2)P"m", seudoR (c1.idH max (c2.idGP,$BO, countH (*)nuY Y(st_dump(4))H-n8) c1, Vl,e2 where <> andA&& c2indistanc(e (%,"l))=0 group byU,%)as {ar: = 1  all %(''''Junction#out#"|''"$b2r1 left join/?r2 on''a,r#a) = 02x)Jid2 i1ll/DP/A J6(I%"?/[#?1 c/$r2 X<>#exp2g1000)!Ep( Ninct on (r#) r2w ''Hollow spacest_centroi=_ redre.contiene, ST_touches@ (ST_B3st_force2d makevalid40))1P)D8id FROM?(SE`LECT |ains ((%FoundarydMultiB${), ST_ExteriorRingdW"n ?F oRO Y) re) ra 9$ra&F?!ra.st&"= ''@true''/gidaF\IsoQmdetry#ST_B~OnSu rface%0po lygon{ST_ColaionExtract(orno,2jJeta,!sCbv\s ,tDd^GOa Repd vertex71kpGJ[*,5\ p_unotasewkbaremover3 k =,r GROUP BY HAVING COUNT(*)>1  *Rs dup8lic1'úxoriginalt?U \H"OAquals1ISnapToGrV, 0.005S)/X.lapping/ieϩ6?ũ5Oj$fPdRre'; END; TK  'K`chequear_topologia_mv` 4Bfvu esch0nameview4nametablepkj BEGIN /*Descripcion: Saca errores topológicos */ Execute 'create materialized view "'|| esch@ ||'".name as select row_number() OVER () AS id6table||', '|| pk  from( Jgid1Y&concat(''geometries with union points@'','': pk '',HRy 2)V"s", seudoRG (c1."N max (c2S\,0N[, co@unt (*)n ue e(st_Pdump(4)~)H&3V) c1, \ l,k#2 whHere'<> and&& c2{ndist@ance (%,"l))=0 group by a,+)as aX= 1 ! #all %XF+]''Junction#Uout#X'4>)`r+!_, r 2,4Iast_intersebuf fer(a40),b)  a,&b x{st_r elAQ, ''T*'1Tnd>b8or1 left join?FEr2 on',r#) = 0'2) i1ll/P/ J(%"i/#%SE1  /fr2 3<> #lexpBS1000)!( Tinct on (r#) r8 ''Hollow spacest_centroiCo rere.contiene, ST_touches (ST_B3^st_force2d mak@evalid4)v)1xP)D8 FROMOZ(SELECT ains ((%joundarypMultiB$), @ ST_ExorRingdW"t ? /R Y) r@e) ra $ra&F1ra.st&(= ''true''/gidaLIsoQd0etry#ƕMST_BOnSurface% Cvs ,tDn]O Repd vertex1MqpGtk*,l Ipo :not@asewkbaremover k =,r GROUP BY HAVING COUNT(*)>1 6Xe duplic'\original^m \⟚H>"yQquals1SnapToGrV, 0.x005c)/LlappingMie߫<ձSOj$$P^re'; EXECUTEunique index()YND; TJ  'J`chequear_topologia_mv` 4Bfvus esch0nameview4nametableD BEGIN /*Descripcion: Saca errores topológicos */ Execute 'create materialized view "'|| esch@ ||'".name as select row_number() OVER () AS id6table||', id, from( B Dgid1Sid,concat(''geometries with union points' ','': i`d '',By) 2)P"m", seudoR# (c1.idH max (c2.id;GP,$BO, count (*))nuY Y(s@t_dump(4))H-n8) c1, 3Vl,e2 where<>! and&&H c2indistance (%,"l))=0 group byU,%)as {ar:= 1  0all %(''''Junction#out#"''"o$b2r1 left join/?r2 on'a,r#a) = 02x)Jid2 i1ll/DP/A J6(I%"?/[#?1` /$r2 X<>#exp2g1000)!Ep( Ninct on (r#) r2w ''Hollow spacest_centroi#=_ redre.contiene, ST_touches (ST_B3st_f@orce2d makevalid40))1P)D8id FROM?(SELEC T |ains ((%FounpdarydMultiB${), ST_ExorRin>gdW"n  ? oRO Y) re) ra $ra&F?! ra.st&"= ''true''!/gidaF\Is oQmdetry##ST_B~OnSurface%0polygon{@ST_ColaionExtract(orno,2jJeta,!'sCbv\s ,tDd^Oa Repd vertex1kpGJ[*,\ p_unotasewkbaremover k =,r GROUP LBY HAVING COUNT(*)>18 *Rs duplic1'úxoriginaltU \H"OA quals1ISn@apToGrV, 0.005S;)/X.la pping/ieϩ6ũ5Oj$fPdRre'; EXECUTEunique index7()YND; TI  'I`chequear_geometrias_vw` 4Bfvu,validar esch0nameview4nametable declare tab text; BEGIN --cuando validar es 0 extrae la vista de todas las geometrías, cuando es 1 solo las falsas CASE WHEN validar = '0' THEN --todas geometrías sean validas o no EXECUTE 'CREATE VIEW "'|| esch ||'"."'|| nameview ||'" AS SELECT row_number() OVER () AS id'|| nametable||', (case when st_isvalid (st_force2d (geom)) is null then ''f'' else st_isvalid (st_force2d (geom)) end) AS valido,* FROM "'|| esch ||'"."'|| nametable||'"'; ELSE tab := 'falsa'; END CASE; CASE WHEN validar = '1' THEN --las geometrias no validas EXECUTE 'CREATE VIEW "'|| esch ||'"."'|| nameview ||'" AS SELECT row_number() OVER () AS id'|| nametable||', (case when st_isvalid (st_force2d (geom)) is null then ''f'' else st_isvalid (st_force2d (geom)) end) AS valido,* FROM "'|| esch ||'"."'|| nametable||'"where st_isvalid (geom)= ''false'' or st_isvalid (geom) is null'; ELSE tab := 'todas'; END CASE; Return tab; END; TH  'H`chequear_geometrias_mv` 4Bfvu,validar esch0nameview4nametable declare tab text; BEGIN --cuando validar es 0 extrae la vista de todas las geometrías, cuando es 1 solo las falsas CASE WHEN validar = '0' THEN --todas geometrías sean validas o no EXECUTE 'CREATE MATERIALIZED VIEW "'|| esch ||'"."'|| nameview ||'" AS SELECT row_number() OVER () AS id'|| nametable||', (case when st_isvalid (st_force2d (geom)) is null then ''f'' else st_isvalid (st_force2d (geom)) end) AS valido,* FROM "'|| esch ||'"."'|| nametable||'"'; EXECUTE 'create unique index on "'|| esch ||'"."'|| nameview ||'" (id'|| nametable||')'; ELSE tab := 'falsa'; END CASE; CASE WHEN validar = '1' THEN --las geometrias no validas EXECUTE 'CREATE MATERIALIZED VIEW "'|| esch ||'"."'|| nameview ||'" AS SELECT row_number() OVER () AS id'|| nametable||', (case when st_isvalid (st_force2d (geom)) is null then ''f'' else st_isvalid (st_force2d (geom)) end) AS valido,* FROM "'|| esch ||'"."'|| nametable||'"where st_isvalid (geom)= ''false'' or st_isvalid (geom) is null'; EXECUTE 'create unique index on "'|| esch ||'"."'|| nameview ||'" (id'|| nametable||')'; ELSE tab := 'todas'; END CASE; Return tab; END; (A?@   x ` ؅v "Ti  'l`sacar_puntos_erroneos_mv` 4Bfvus esch0nameview4nametable_m` TU   'W`create_for_union_vw` 4Bfvu esch0nameview4nametable$valueT BEGIN /*Descripcion:crea una vista para hacer una union posterior */ EXECUTE 'create view "'|| esch ||'"."paraunion_'|| nameview ||'" as select ra.geom, ra.layer_ori from (select geom, '''|| value||''' as layer_ori FROM "'|| esch ||'"."'|| nametable||'") ra'; END; TT  'V`create_for_union_rail2_vw` 4Bfvus esch0nameview4nametable BEGIN /*Descripcion:crea una vista para hacer una union posterior */ EXECUTE 'create view "'|| esch ||'"."paraunionrail_'|| nameview ||'" as select ra.* from (select * FROM "'|| esch ||'"."'|| nametable||'") ra'; END; TS  'U`crear_geometrias_validas_vw` 4Bfvus esch0nameview4nametable<declare geome1 text; srid1 text; BEGIN /*percent_detection limite por el cual la interseccion no sera valida, percent_nochange limite por el cual no habra cambio*/ EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| nametable ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| nametable ||'" group by ST_SRID;' into srid1; /*Descripcion: crea una vista materializada con una columna de geometrías validas */ EXECUTE 'CREATE VIEW "'|| esch ||'"."'|| nameview ||'" AS SELECT row_number() OVER () AS id'|| nameview ||', st_transform(st_setsrid(st_makevalid,'|| srid1 ||'),4326)::geometry(Geometry, 4326) as geom from (select st_makevalid ('|| geome1 ||'),* FROM "'|| esch ||'"."'|| nametable||'")a'; EXECUTE 'create unique index on "'|| esch ||'"."'|| nameview ||'" (id'|| nameview ||')'; END; TR  'T`crear_geometrias_validas_mv` 4Bfvus esch0nameview4nametablepdeclare geome1 text; srid1 text; BEGIN /*percent_detection limite por el cual la interseccion no sera valida, percent_nochange limite por el cual no habra cambio*/ EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| nametable ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| nametable ||'" group by ST_SRID;' into srid1; /*Descripcion: crea una vista materializada con una columna de geometrías validas */ EXECUTE 'CREATE MATERIALIZED VIEW "'|| esch ||'"."'|| nameview ||'" AS SELECT row_number() OVER () AS id'|| nameview ||', st_transform(st_setsrid(st_makevalid,'|| srid1 ||'),4326)::geometry(Geometry, 4326) as geom from (select st_makevalid ('|| geome1 ||'),* FROM "'|| esch ||'"."'|| nametable||'")a'; EXECUTE 'create unique index on "'|| esch ||'"."'|| nameview ||'" (id'|| nameview ||')'; END; TQ  'S`comprobacion_de_datos_vw` 4Bfvu esch0nameview4nametable4contenido declare namecolumn character varying; BEGIN /*Retorna una vista con una columna en la cual informa si el contenido buscado existe o no. contenido:que se quiere buscar*/ SELECT COLUMN_NAME into namecolumn FROM information_schema.COLUMNS WHERE TABLE_NAME = ''|| nametable ||'' limit 1; EXECUTE 'create view "'|| esch ||'"."'|| nameview ||'" as select *, ''true'' as exists from "'|| esch ||'"."'|| nametable||'" where '|| contenido ||' union select *, ''false'' as exists from "'|| esch ||'"."'|| nametable||'" where '||namecolumn||' not in (select '||namecolumn||' from "'|| esch ||'"."'|| nametable||'" where '|| contenido ||')'; END; TP  'R`comprobacion_de_datos_mv` 4Bfvu esch0nameview4nametable4contenido@ declare namecolumn character varying; BEGIN /*Retorna una vista con una columna en la cual informa si el contenido buscado existe o no. contenido:que se quiere buscar*/ SELECT COLUMN_NAME into namecolumn FROM information_schema.COLUMNS WHERE TABLE_NAME = ''|| nametable ||'' limit 1; EXECUTE 'create materialized view "'|| esch ||'"."'|| nameview ||'" as select *, ''true'' as exists from "'|| esch ||'"."'|| nametable||'" where '|| contenido ||' union select *, ''false'' as exists from "'|| esch ||'"."'|| nametable||'" where '||namecolumn||' not in (select '||namecolumn||' from "'|| esch ||'"."'|| nametable||'" where '|| contenido ||')'; END; TO 'P`comprobacion_cambios_vw` 4Bfvu esch0nameview<nametableia@nametableoriTpercent_detectionPpercent_nochangedfv Q` TN 'N`comprobacion_cambios_mv` 4Bfvu esch0nameview<nametableia@nametableoriTpercent_detectionPpercent_nochangeqf O` TM  'M`chequear_topologia_vw` 4Bfvu esch0nameview4nametablepk BEGIN /*Descripcion: Saca errores topológicos */ Execute 'create view "'|| esch ||'".name as select row_number() OVER () AS id6table||', `'||pk  from( J0gid1Y&concat(''geometries with union points'','': pk '',Hy 2)V"s", seu and&& c2{ndistance (%,"l))=0 group( by a,+)a4s aX= 1  #all %XF+]''JunctiDon#Uout#X'41)`r+!_, r 2,4 Iast_intersebuffer(aQ40),b)E  a,&b| x{s`t_relAD, ''T*'1T$nd>b8or1 left join?FEr2 on'',r#) 8= 02) i1ll/P/ J(%"i/#%SE1 /fr2 <> 1#lexpBS10x00)!( Tinct on (r#)  r8 ''Hollow spacest_centroiGCo rere.contiene, ST_touches (ST_B3^st_force2d makevalid4))1xP)D8 FROMOZ(SELECT ains ((%jound8arypMuxltiB$), ST_ExteriorRingdW"th ? /R  Y) re) ra $ra&F1ra.st&(= ''true''/gidaL(IsoQdetry#ƕMST_BOnSurface% Cvs |,tDn]O Repd verxtex1qpSGtk*,l Ip#o :notasewkbarem0over k =,r GROU0P BY HAVING COUNT(*)>1 6Xe duplic'\original^m \⟚H>"yQquals1SnapToGrV, 0.005c)/LlappingMie߫<ձSOj$$P^re'; END; 0?4h  h" `hؐ . h Tt  'y`union_multiple_rail2_vw` 4Bfvuc,_schema4_nameview DECLARE _safe_target text := quote_ident(_schema) || '.' || quote_ident(_nameview); BEGIN EXECUTE ( SELECT 'CREATE view ' || _safe_target || ' AS TABLE ' || string_agg(quote_ident(table_schema) || '.' || quote_ident(table_name), ' UNION ALL TABLE ') FROM information_schema.views WHERE table_schema = _schema AND table_name LIKE ('paraunionrail%') ); END T[  ']`extraer_lineas_exteriores_mv` 4Bfvus esch0nameview4nametableX declare geome1 text; srid1 text; camposc text; BEGIN EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| nametable ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| nametable ||'" group by ST_SRID;' into srid1; EXECUTE 'select concat(''"''||STRING_AGG(column_name,''", "'')||''"'') from (SELECT a.attname as column_name, pg_catalog.format_type(a.atttypid, a.atttypmod) FROM pg_attribute a JOIN pg_class t on a.attrelid = t.oid JOIN pg_namespace s on t.relnamespace = s.oid WHERE a.attnum > 0 AND NOT a.attisdropped AND t.relname = '''|| nametable ||''' AND s.nspname = '''|| esch ||''' ORDER BY a.attnum)a where format_type not like ''%geometry%'';'into camposc; EXECUTE 'create materialized view "'|| esch ||'"."'|| nameview||'" as select '||camposc||', st_transform(st_setsrid(bounda,'||srid1||'),4326)::geometry(Geometry, 4326) AS geom, row_number() OVER () as fidid from (select *, ST_boundary(st_force2d(geom)) as bounda from "'|| esch ||'"."'||nametable||'")a'; EXECUTE 'create unique index on "'|| esch ||'"."'|| nameview ||'" (fidid)'; END; TZ  '\`extraer_centroides_vw` 4Bfvus esch0nameview4nametable declare geome1 text; srid1 text; camposc text; BEGIN /*percent_detection limite por el cual la interseccion no sera valida, percent_nochange limite por el cual no habra cambio*/ EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| nametable ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| nametable ||'" group by ST_SRID;' into srid1; EXECUTE 'select concat(''"''||STRING_AGG(column_name,''", "'')||''"'') from (SELECT a.attname as column_name, pg_catalog.format_type(a.atttypid, a.atttypmod) FROM pg_attribute a JOIN pg_class t on a.attrelid = t.oid JOIN pg_namespace s on t.relnamespace = s.oid WHERE a.attnum > 0 AND NOT a.attisdropped AND t.relname = '''|| nametable ||''' AND s.nspname = '''|| esch ||''' ORDER BY a.attnum)a where format_type not like ''%geometry%'';'into camposc; /*Descripcion: extrae puntos que siempre estan dentro de la geometria */ EXECUTE 'CREATE VIEW "'|| esch ||'"."'|| nameview ||'" AS select '||camposc||', st_transform(st_setsrid(centroid,'||srid1||'),4326)::geometry(Geometry, 4326) AS geom from (SELECT *, ST_PointOnSurface ("'||geome1||'") as centroid FROM "'|| esch ||'"."'|| nametable||'")te'; END; TY  '[`extraer_centroides_mv` 4Bfvus esch0nameview4nametable declare geome1 text; srid1 text; camposc text; BEGIN /*percent_detection limite por el cual la interseccion no sera valida, percent_nochange limite por el cual no habra cambio*/ EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| nametable ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| nametable ||'" group by ST_SRID;' into srid1; EXECUTE 'select concat(''"''||STRING_AGG(column_name,''", "'')||''"'') from (SELECT a.attname as column_name, pg_catalog.format_type(a.atttypid, a.atttypmod) FROM pg_attribute a JOIN pg_class t on a.attrelid = t.oid JOIN pg_namespace s on t.relnamespace = s.oid WHERE a.attnum > 0 AND NOT a.attisdropped AND t.relname = '''|| nametable ||''' AND s.nspname = '''|| esch ||''' ORDER BY a.attnum)a where format_type not like ''%geometry%'';'into camposc; /*Descripcion: extrae puntos que siempre estan dentro de la geometria */ EXECUTE 'CREATE MATERIALIZED VIEW "'|| esch ||'"."'|| nameview ||'" AS select '||camposc||', st_transform(st_setsrid(centroid,'||srid1||'),4326)::geometry(Geometry, 4326) AS geom, row_number() OVER () as fidid from(SELECT *, ST_PointOnSurface ("'||geome1||'") as centroid FROM "'|| esch ||'"."'|| nametable||'")te'; EXECUTE 'create unique index on "'|| esch ||'"."'|| nameview ||'" (fidid)'; END; TX  'Z`dividir_por_tipo_vw` 4Bfvu esch0nameview4nametable$campo$valorBEGIN /*Descripcion: divide la tabla por el topo que se quiera tipo */ EXECUTE 'create view "'|| esch ||'"."'|| nameview ||'" as select * from "'|| esch ||'"."'|| nametable||'" where "'|| campo ||'" = '''|| valor ||''''; END; TW  'Y`dividir_por_tipo_mv` 4Bfvu esch0nameview4nametable$campo$valorBEGIN /*Descripcion: divide la tabla por el topo que se quiera tipo */ EXECUTE 'create materialized view "'|| esch ||'"."'|| nameview ||'" as select * from "'|| esch ||'"."'|| nametable||'" where "'|| campo ||'" = '''|| valor ||''''; END; TV  'X`cubierta_sin_solapes` 4Bfvu esch0cubiertaHcubiertasalidaDredtransporte<hidrografia epsg BEGIN /*Descripcion: une los atributos iniciales a las capas generalizadas */ EXECUTE 'drop table if exists "'||esch||'". cubierta||'_valid"; create=3 as select *, s@t_make(`geom)  2 fromR "; alter}@columnf; Crename E2 toN index z_Pred_F_._dif_gidx onzusin@g gist+;z sG92 (lik!)\p addP e@try (G ,Jpsg||')j diferenciak k F lA); qredtransporteuni4  0h @@ 8 Ȁ Tb  'e`rellenar_huecos_mv` 4Bfvus esch4nametable0nameviewBEGIN EXECUTE 'CREATE MATERIALIZED VIEW "'|| esch ||'".nameview AS SELECT st_union(st_makevalid(pol3.geom@)) AS  ,| layer_oriFROM (Ore.fid,reK G Oo_1.b@"id{&6p$ area 7a max(rare{4a.id" ; 0% 4v - /r  st_h!intersect!".2&*6p)#M \  DISTINCT ON (5~polyg on(rarow_number() OVER (wst_buffer9, 0.00005::double precision, ''endcap=flat join=round''::text_*:K!).'con tienest_touches st_forPce2dKa0, 0),w[ od+XDWaO_ Qtable 8())ains"6dumpary Wult~i<o$Xst_exteriorringqHPy/ b%) "x)2b>q>/>$ ? a,b whereRelateaj, ''TE||''') = true)reOuniQindePx on/[(/8)_LSEb\:= '1 END. ! /1$ /I/T%count(a.fid)as num`touch/SGa.B*"#i) I ) &Return,; T`  'c`nineintersection_matrix_mv` 4Bfvu,validar esch0nameview<name_table1<name_table2(matrizc declare geome1 character varying;" "2" tab textsridU !T BEGIN /*Descripcion: crea una vista omaterializada que compr@ueba lriz 9d y extrae si es cierto su intersecciónno hay correspondencia retorvacia*/ EXECUTE 't le __nmtab1 as select * from "'|| esch ||'".name_91';W 2W2WSELE CT f_try_columno% FROM !s WHERPE fS_^ X= '^2^$2droph >8ST_SRIDn(*#)N group byL;'"r2rr 2; CASE LN va lidarE0'` THEN.U7>ed view!as  ROW_NUMBER() OVER ()! fid_3,st_se t(,4326)::%(G ,  AS"*#D ($`st_5tion(st_transform ca.$C||')~>b>~>>$" ? a,b whereRelatej, ''TR||''') = true)reOuniQindex on/[(/8)_LSEabi:= '1 END ! /1$ ?V/T%count(a.fid)as numtouch/`Ga.B7"/v_Iu &Retu rn,; T_  'b`geocoding_inverse_geopy` 4BfiupK4direccion DECLARE sLongitud text; sLatitud text; sSql text; BEGIN sSql:= ' WITH entjsonGeoloc AS (SELECT json_array_elements(content::json) as content from http ( ( ''POST'', ''http://192.168.1.43:30015/MG/externalRestAPI_call/geocoding_Inverse_geopy'', NULL, ''application/json'', ''{"user":"","input":"'||direccion||'"}'' )::http_request ) ) SELECT (content::json#>>''{lon}'')::numeric AS longitude, (content::json#>>''{lat}'')::numeric AS latitude FROM entjsonGeoloc LIMIT 1'; EXECUTE sSql INTO sLongitud,sLatitud; --RAISE NOTICE '%, %',sLongitud,sLatitud; RETURN sLongitud||','||sLatitud; END; T^  'a`generalizar_areas` 4Bfvu esch4nametable8tbl_salida4tolerance(simply0pk_field0min_area epsgBEGIN /*Descripcion: une los atributos iniciales a las capas generalizadas */ EXECUTE 'create table "'|| esch ||'".name||'_tipo" as select2pk_field6, st_union (geom) om fromc" gr@oup by\; disso0lve" (s@t_dump).; @CREATE_simplify" AS SELECT st0preservetop ology, +6#y4) @ FROM;; TABLE!2" as fid,st_area(< (row_number() OVER ()H ASY 1 ST_GeomFromText(ST_As  Dump*f)&@ / )t(G&_anillos" AS ).A%rings force2d([s23AS0Y(a9Ua/SKJ~ HBE!!fid , eZ7 ?^UNION ST_BufferC&%toleranc ^)1; UPD!`%SET)=ST_makevaliDWHERE NOTisV{ o,dD?eOvC& ;822 5>c ;9o4  [1 ;!r3ST_ColionExtract(,3(O#UM) 4" 'os*oc wheree>''(miW;''; uINDEX z_ _9 _gidxBONUSING gistsD tbl_sQa"' 1 ?v E_ced?w?l" O ;9-3ؑ7"Ǎ@-?A+!l 'C0J7t;/J"A !qTALTERs<.COLUMN2 TYPE etxry(? VJ)4LST_SetSRID]U; '; END; T] '_`generalizar_areas` 4Bfvu  0  esch4nametable8tbl_salida4tolerance(simply0pk_field0min_area4area_peri epsgR4@ `` T\  '^`extraer_lineas_exteriores_vw` 4Bfvus esch0nameview4nametable declare geome1 text; srid1 text; camposc text; BEGIN EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| nametable ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| nametable ||'" group by ST_SRID;' into srid1; EXECUTE 'select concat(''"''||STRING_AGG(column_name,''", "'')||''"'') from (SELECT a.attname as column_name, pg_catalog.format_type(a.atttypid, a.atttypmod) FROM pg_attribute a JOIN pg_class t on a.attrelid = t.oid JOIN pg_namespace s on t.relnamespace = s.oid WHERE a.attnum > 0 AND NOT a.attisdropped AND t.relname = '''|| nametable ||''' AND s.nspname = '''|| esch ||''' ORDER BY a.attnum)a where format_type not like ''%geometry%'';'into camposc; EXECUTE 'create view "'|| esch ||'"."'|| nameview||'" as select '||camposc||', st_transform(st_setsrid(bounda,'||srid1||'),4326)::geometry(Geometry, 4326) AS geom, row_number() OVER () as fidid from (select *, ST_boundary(st_force2d(geom)) as bounda from "'|| esch ||'"."'||nametable||'")a'; END; x#?0    `f  Th  'k`sacar_puntos_erroneos_mv2` 4Bfvus esch0nameview4nametable0 BEGIN EXECUTE 'create materialized view "'|| esch ||'"."'|| nameview ||'" as (select distinct on (ra.geom) st_pointonsurface (ra.geom) as geom, ra.fid, ''hollow space'' as errores from (select re.geom, re.contiene, ST_touches (ST_Buffer(st_force2d(st_makevalid(a.geom)),0),re.geom), ST_Buffer(st_force2d(st_makevalid(a.geom)),0),fid FROM "'|| esch ||'"."'|| nametable||'" a, (SELECT st_contains (((st_dump (ST_Boundary(st_union(ST_Multi(ST_Buffer(st_force2d(geom),0)))))).geom), ST_ExteriorRing(st_union(ST_Multi(ST_Buffer(st_force2d(geom),0))))) as contiene, ((st_dump (ST_Boundary(st_union(ST_Multi(ST_Buffer(st_force2d(geom),0)))))).geom) AS geom FROM "'|| esch ||'"."'|| nametable||'") re) ra where ra.contiene = ''false'' and ra.st_touches = ''true'') UNION ALL (SELECT re.re as geom, re.fid, ra.ra as errores FROM (SELECT ST_SetSRID(ST_MakePoint (a[2]::double precision, a[4]::double precision),4326) as re, fid from (select regexp_split_to_array( to_tsvector(ST_IsValidReason(st_force2d(geom)))::text,''''''''), fid FROM "'|| esch ||'"."'|| nametable||'" WHERE NOT ST_IsValid(geom))as dt(a)) re, (select ST_IsValidReason(geom) as ra, fid fROM "'|| esch ||'"."'|| nametable||'" WHERE NOT ST_IsValid(geom)) ra where ra.fid = re.fid)'; END; Tg  'j`renombrar_multiples_tablas` 4BfvupC,_schema DECLARE row record; BEGIN FOR row IN SELECT table_name, table_schema FROM information_schema.tables where table_schema = ''||_schema || '' LOOP EXECUTE 'Alter TABLE "'||row.table_schema||'"."'||row.table_name||'" rename to "'||row.table_name||'_ft"'; EXECUTE 'create table TABLE "'||row.table_schema||'"."'||row.table_name||'" as select * from "'||row.table_schema||'"."'||row.table_name||'_ft"'; END LOOP; END; Tf  'i`rellenar_huecos_vw` 4Bfvus esch4nametable0nameviewBEGIN EXECUTE 'CREATE OR REPLACE VIEW "'|| esch ||'".nameview AS SELECT st_union(st_makevalid(pol3.geom))P AS  ,z layer_oriFROM (Ore.fid,reK G Oo_1.b@"id{&6p$ area  a max(%.&T2/Q/G#/=%ebuffer_id2M(FY ,0.05/P Rc,*Eo ?/ntersectϞ?GP 8R`0areaP 4 (uS},S))T, layer_o ri;a, #b d, s 6~ ?-?+Io'HmXF_polig_?mC'X,N.0N-.,X9I\&R3 U&_oXFTSND; Td  'g`rellenar_huecos_tbl` 4Bfvus esch0nameview4nametable! BEGIN EXECUTE 'drop table if exists "'|| esch ||'".tmpnameview;';DcreateF= as select st_makevalid (geom) , layer_ori from Y W"INDEX  :__q_gidx ONUSING gist5 ]?(E;Z row_number ()over([id_todo,*UV WV union+t$pG /d"1_dump\e).'5-/2(/KEboundary+YG(@dE4N-W[7exte0rior[ringk*[g[./g%_poligZST_MakePolygon_l%7&MST'D*L/')y /06/8O?)g_1 Dv containsO6kP!c $a/u8$,/-b where1CPrope@rly (b,/*5/%._a4nhueco/2I ׎p_O/a_idX>%.&T2/Q/G#/=%ebuffer_id2M(FY ,0.05/P Rc,*Eo ?/ntersectϞ?GP 8R`0areaP 4 (uS},S))T, layer_ori (cLcH= ''cub'') a,d #b W s b O--O +uoSHmax,U+o#gmax(!?) _"group byZO.?.orioya./a, @)a.3 =b.Vnd a. = b o)/?/0 A b.*,y/W y joinAeon zO\' .BBg Q/kRho  all F?)o)Udq6. sts Yo1upda |se2JX,b UK4[%3J8җO=_boundaryX>ext eriorXF_polig_?mCSX,N.\N-.XX9I\&R3 U&_oXFTSND; Tc  'f`rellenar_huecos_tbl2` 4Bfvus esch0nameview4nametablez#BEGIN EXECUTE 'drop table if exists "'|| esch ||'".tmpnameview;';DcreateF= as select st_makevalid (geom) , layer_ori from Y W"INDEX  :__q_gidx ONUSING gist5 ]?(E;Z row_number ()over([id_todo,*UV WV union+t$pG /d"1_dump\e).'5-/2(/KEboundary+YG(@dE4N-W[7exte0rior[ringk*[g[./g%_poligZST_MakePolygon_l%7&MST'D*L/')y /06/8O?)g_1 Dv containsO6kP!c $a/u8$,/-b where1CPrope@rly (b,/*5/%._a4nhueco/2I ׎p_O/a_idX>%.&T2/Q/G#/=%ebuffer_id2M(FY ,0.05/P Rc,*Eo ?/ntersectϞ?GP 8R`0areaP 4 (uS},S))T, layer_o ri;a, #b d, s 6~ ?-?+Io'HmexteriorXF_polig_?mCcontainsX93Q3N62;X9޶\&R4iGua:ori;bR@W END; (?@@   (0xj2@:Ts   'x`union_multiple_rail2_mw` 4Bfvuc,_schema4_nameview DECLARE _safe_target text := quote_ident(_schema) || '.' || quote_ident(_nameview); BEGIN EXECUTE ( SELECT 'CREATE materialized view ' || _safe_target || ' AS TABLE ' || string_agg(quote_ident(table_schema) || '.' || quote_ident(table_name), ' UNION ALL TABLE ') FROM information_schema.views WHERE table_schema = _schema AND table_name LIKE ('paraunionrail%') ); END Tr   'w`union_multiple_mw` 4Bfvuc,_schema4_nameview DECLARE _safe_target text := quote_ident(_schema) || '.' || quote_ident(_nameview); BEGIN EXECUTE ( SELECT 'CREATE materialized view ' || _safe_target || ' AS TABLE ' || string_agg(quote_ident(table_schema) || '.' || quote_ident(table_name), ' UNION ALL TABLE ') FROM information_schema.views WHERE table_schema = _schema AND table_name LIKE ('paraunion%') ); END Tq  'v`union_de_atributos_por_centrodies_vw` 4Bfvu esch0nameviewHnametable_geomPtabla_centroides4contenido\ declare colum character varying; BEGIN /*Descripcion: une los atributos iniciales a las capas generalizadas */ EXECUTE 'create view "'|| esch ||'"."'|| nameview ||'" as SELECT '|| contenido ||',a.geom FROM (SELECT '|| contenido ||', b.geom, st_contains(b.geom, a.centroid) AS st_contains FROM "'|| esch ||'"."'|| nametable_geom||'" b, "'|| esch ||'"."'||tabla_centroides||'" a ) a WHERE a.st_contains = ''true'''; END; Tp  'u`union_de_atributos_por_centrodies_tbl` 4Bfvu esch0nameviewHnametable_geomPtabla_centroides declare colum character varying; BEGIN EXECUTE 'drop table if exists "'|| esch ||'".centroides;';4 as SELECT * FROM,9Fa_6 nalmn geomD"rename  toKINDEX ZxasCabW7iWwiBeL8_;_gidx @ ONz USING gist-(<)x ubierta 3select  ,layer_ori,row_number ()over()/id_srm from Pw group by ^f7u/= st_pointonsurface , /C/L5/Uh0_valorp F as D*DISTINCT(h.ls.*, h.j,  3 , Ojs@ LEFT JOIJh 5ON st_dwithin, s200 ::douprecision)ORDER BY 4(Histance I)O T _(U T"uY%/XF"pview?< A8a.*,b*#2!? b, / w@here a$ = b h'L2o)ogc0_fidY@Mupd!Sset shape_leng = ST_PerimeterWZ+areaZ _](o(;3o2 END; To  't`union_de_atributos_por_centrodies_mv` 4Bfvu esch0nameviewHnametable_geomPtabla_centroides4contenido declare colum character varying; BEGIN /*Descripcion: une los atributos iniciales a las capas generalizadas */ EXECUTE 'create materialized view "'|| esch ||'"."'|| nameview ||'" as SELECT '|| contenido ||',a.geom FROM (SELECT '|| contenido ||', b.geom, st_contains(b.geom, a.centroid) AS st_contains FROM "'|| esch ||'"."'|| nametable_geom||'" b, "'|| esch ||'"."'||tabla_centroides||'" a ) a WHERE a.st_contains = ''true'''; END; Tn  's`topotoleranceloop` 4Bfsu@esquema_dest,destino(anedge@maxtolerance DECLARE tol float8; sql varchar; BEGIN tol := maxtolerance; LOOP sql := 'select topology.toTopoGeom(geom,''topo_'||destino||''', 1,' || tol || ') from "'||esquema_dest||'"."'||destino||'_topo"'; BEGIN RAISE DEBUG 'Running %', sql; EXECUTE sql; RETURN tol; EXCEPTION WHEN OTHERS THEN RAISE WARNING 'Simplification of edge % with tolerance % failed: %', anedge, tol, SQLERRM; tol := round( (tol/1.25) * 1e8 ) / 1e8; -- round to get to zero quicker IF tol = 0 THEN RAISE EXCEPTION '%', SQLERRM; END IF; END; END LOOP; END Tm  'r`seleccion_total_mv` 4Bfvu esch0nameview4nametable4contenidoBEGIN /*Descripcion: hace una busqueda por el contenido que se añada en el where */ EXECUTE 'create materialized view "'|| esch ||'"."'|| nameview ||'" as select * from "'|| esch ||'"."'|| nametable||'" where '|| contenido ||''; END; Tl  'q`seleccion_total_vw` 4Bfvu esch0nameview4nametable4contenidoBEGIN /*Descripcion: hace una busqueda por el contenido que se añada en el where */ EXECUTE 'create view "'|| esch ||'"."'|| nameview ||'" as select * from "'|| esch ||'"."'|| nametable||'" where '|| contenido ||''; END; Tk 'o`sacar_puntos_erroneos_vw` 4Bfvus esch0nameview4nametableRp` Tj  'n`sacar_puntos_erroneos_vw2` 4Bfvus esch0nameview4nametable BEGIN EXECUTE 'create view "'|| esch ||'"."'|| nameview ||'" as (select distinct on (ra.geom) st_pointonsurface (ra.geom) as geom, ra.fid, ''hollow space'' as errores from (select re.geom, re.contiene, ST_touches (ST_Buffer(st_force2d(st_makevalid(a.geom)),0),re.geom), ST_Buffer(st_force2d(st_makevalid(a.geom)),0),fid FROM "'|| esch ||'"."'|| nametable||'" a, (SELECT st_contains (((st_dump (ST_Boundary(st_union(ST_Multi(ST_Buffer(st_force2d(geom),0)))))).geom), ST_ExteriorRing(st_union(ST_Multi(ST_Buffer(st_force2d(geom),0))))) as contiene, ((st_dump (ST_Boundary(st_union(ST_Multi(ST_Buffer(st_force2d(geom),0)))))).geom) AS geom FROM "'|| esch ||'"."'|| nametable||'") re) ra where ra.contiene = ''false'' and ra.st_touches = ''true'') UNION ALL (SELECT re.re as geom, re.fid, ra.ra as errores FROM (SELECT ST_SetSRID(ST_MakePoint (a[2]::double precision, a[4]::double precision),4326) as re, fid from (select regexp_split_to_array( to_tsvector(ST_IsValidReason(st_force2d(geom)))::text,''''''''), fid FROM "'|| esch ||'"."'|| nametable||'" WHERE NOT ST_IsValid(geom))as dt(a)) re, (select ST_IsValidReason(geom) as ra, fid fROM "'|| esch ||'"."'|| nametable||'" WHERE NOT ST_IsValid(geom)) ra where ra.fid = re.fid)'; END; @<  pؓ H| tT}   '`convexhull_mv` 4Bfvu esch<tbl_entrada4vw_salida4contenido declare geome1 text; srid1 text; BEGIN EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as select '|| contenido ||' st_transform(st_setsrid(ST_ConvexHull('||geome1||'), '||srid1||'),4326)::geometry(Geometry, 4326) AS geom from "'||esch||'"."'||tbl_entrada||'";'; END; T|  '`concavehull_vw` 4Bfvu esch<tbl_entrada4vw_salida4contenido8porcentaje$holesH declare geome1 text; srid1 text; BEGIN EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create view "'||esch||'"."'||vw_salida||'" as select '|| contenido ||' st_transform(st_setsrid(ST_ConcaveHull(st_force2d("'||geome1||'"),'||porcentaje||','||holes||'), '||srid1||'),4326)::geometry(Geometry, 4326) AS geom from "'||esch||'"."'||tbl_entrada||'";'; END; T{  '`concavehull_union_vw` 4Bfvu esch<tbl_entrada4vw_salida8porcentaje$holes0simplify buff0area_min declare geome1 text; srid1 text; BEGIN /*ejemplo se saca un casco urbano, simplify simplificación previa de las geometrías para mejorar la velocidad buff distancia a la que se genera un buffer para unir geometrías colindantes area_min area a la cual no aparecerán los geometrías*/ EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create view "'||esch||'"."'||vw_salida||'" as select row_number() OVER () AS id_srm, st_transform(st_setsrid(geom,'||srid1||'),4326)::geometry(Geometry, 4326) AS geom from (select (st_dump(st_union(geom))).geom from (select ST_ConcaveHull (st_buffer ((st_dump(st_union(st_buffer(st_simplify('||geome1||','||simplify||'),'||buff||',''endcap=flat'')))).geom ,-'||buff||',''endcap=flat''),'||porcentaje||','||holes||') as geom from "'||esch||'"."'||tbl_entrada||'")a)a where st_area (geom) > '||area_min||';'; END; Tz  '`concavehull_union_mv` 4Bfvu esch<tbl_entrada4vw_salida8porcentaje$holes0simplify buff0area_min( declare geome1 text; srid1 text; BEGIN /*ejemplo se saca un casco urbano, simplify simplificación previa de las geometrías para mejorar la velocidad buff distancia a la que se genera un buffer para unir geometrías colindantes area_min area a la cual no aparecerán los geometrías*/ EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as select row_number() OVER () AS id_srm, st_transform(st_setsrid(geom,'||srid1||'),4326)::geometry(Geometry, 4326) AS geom from (select (st_dump(st_union(geom))).geom from (select ST_ConcaveHull (st_buffer ((st_dump(st_union(st_buffer(st_simplify('||geome1||','||simplify||'),'||buff||',''endcap=flat'')))).geom ,-'||buff||',''endcap=flat''),'||porcentaje||','||holes||') as geom from "'||esch||'"."'||tbl_entrada||'")a)a where st_area (geom) > '||area_min||';'; END; Ty  '~`concavehull_mv` 4Bfvu esch<tbl_entrada4vw_salida4contenido8porcentaje$holes| declare geome1 text; srid1 text; BEGIN EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as select '|| contenido ||' st_transform(st_setsrid(ST_ConcaveHull(st_force2d("'||geome1||'"),'||porcentaje||','||holes||'), '||srid1||'),4326)::geometry(Geometry, 4326) AS geom from "'||esch||'"."'||tbl_entrada||'";'; END; Tx  }`zzloop` 4Bfvu` DECLARE r geometry; BEGIN FOR r IN SELECT geom FROM "ZxasCabW7iWwiBeL8".edipbpruebaarea LOOP BEGIN -- may be unnecessary UPDATE "ZxasCabW7iWwiBeL8".llenar SET geom = st_union (geom,r); EXCEPTION when others THEN UPDATE "ZxasCabW7iWwiBeL8".llenar SET geom = st_union (geom,r); END; END LOOP; END Tw  '|`verficar_datos_vw` 4Bfvu$campo$valor esch0nameview4nametable4BEGIN /*Descripcion: verifica datos */ EXECUTE 'CREATE VIEW "'|| esch ||'"."'|| nameview ||'" AS SELECT * FROM "'|| esch ||'"."'|| nametable||'" where "'|| campo ||'" = '''|| valor ||''''; END; Tv  '{`verficar_datos_mv` 4Bfvu$campo$valor esch0nameview4nametablehBEGIN /*Descripcion: verifica datos */ EXECUTE 'CREATE MATERIALIZED VIEW "'|| esch ||'"."'|| nameview ||'" AS SELECT * FROM "'|| esch ||'"."'|| nametable||'" where "'|| campo ||'" = '''|| valor ||''''; END; Tu  'z`union_multiple_vw` 4Bfvuc,_schema4_nameview DECLARE _safe_target text := quote_ident(_schema) || '.' || quote_ident(_nameview); BEGIN EXECUTE ( SELECT 'CREATE view ' || _safe_target || ' AS TABLE ' || string_agg(quote_ident(table_schema) || '.' || quote_ident(table_name), ' UNION ALL TABLE ') FROM information_schema.views WHERE table_schema = _schema AND table_name LIKE ('paraunion%') ); END O@0  @~ d pF x T  '`difference_dump_vw` 4Bfvu0 esch`tbl_entrada_a_cortar4tbl_corta4vw_salida4contenidoHsrid1_a_cortar<srid2_corta declare geome1 text; geome2 text; BEGIN --el resultado de la diferencia se corta para crear poligonos independientes EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada_a_cortar ||'"'; EXECUTE 'create table __cespaci2 as select * from "'|| esch ||'"."'|| tbl_corta ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; SELECT f_geometry_column into geome2 FROM geometry_columns WHERE f_table_name = '__cespaci2'; EXECUTE 'drop table __cespaci1'; EXECUTE 'drop table __cespaci2'; EXECUTE 'create view "'||esch||'"."'||vw_salida||'" as SELECT '||contenido||' b.geom::geometry(Geometry, 4326) AS geom FROM (select '||contenido||' (st_dump(b.geom)).geom AS geom from (select '||contenido||' ST_difference(a.transform_srid ,b.geom) as geom from (select * ,ST_Transform(st_setsrid('||geome1||','||srid1_a_cortar||'),4326) as transform_srid from "'||esch||'"."'||tbl_entrada_a_cortar||'") a, (select st_union(st_makevalid(ST_Transform(st_setsrid('||geome2||','||srid2_corta||'),4326))) as geom from "'||esch||'"."'||tbl_corta||'") b)b)b;'; END; T  '`difference_dump_mv` 4Bfvu0 esch`tbl_entrada_a_cortar4tbl_corta4vw_salida4contenidoHsrid1_a_cortar<srid2_corta declare geome1 text; geome2 text; BEGIN --el resultado de la diferencia se corta para crear poligonos independientes EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada_a_cortar ||'"'; EXECUTE 'create table __cespaci2 as select * from "'|| esch ||'"."'|| tbl_corta ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; SELECT f_geometry_column into geome2 FROM geometry_columns WHERE f_table_name = '__cespaci2'; EXECUTE 'drop table __cespaci1'; EXECUTE 'drop table __cespaci2'; EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as SELECT '||contenido||' b.geom::geometry(Geometry, 4326) AS geom FROM (select '||contenido||' (st_dump(b.geom)).geom AS geom from (select '||contenido||' ST_difference(a.transform_srid ,b.geom) as geom from (select * ,ST_Transform(st_setsrid('||geome1||','||srid1_a_cortar||'),4326) as transform_srid from "'||esch||'"."'||tbl_entrada_a_cortar||'") a, (select st_union(st_makevalid(ST_Transform(st_setsrid('||geome2||','||srid2_corta||'),4326))) as geom from "'||esch||'"."'||tbl_corta||'") b)b)b;'; END; T  '`crear_tabla_desde_foreign` 4BfvupSHschema_entrada< DECLARE row record; BEGIN FOR row IN SELECT table_schema, table_name FROM information_schema.tables WHERE table_schema = ''||schema_entrada ||'' LOOP execute 'create table "'||schema_entrada ||'"."'||row.table_name||'2" as select * from "'||schema_entrada ||'"."'||row.table_name||'"; CREATE INDEX "'||schema_entrada ||'_'||row.table_name||'_geom_gist" ON "'||schema_entrada ||'"."'||row.table_name||'2" USING gist (geom); drop foreign table "'||schema_entrada ||'"."'||row.table_name||'"; alter table "'||schema_entrada ||'"."'||row.table_name||'2" rename to "'||row.table_name||'"'; END LOOP; END; T  '`convexhull_vw` 4Bfvu esch<tbl_entrada4vw_salida4contenido declare geome1 text; srid1 text; BEGIN EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create view "'||esch||'"."'||vw_salida||'" as select '|| contenido ||' st_transform(st_setsrid(ST_ConvexHull('||geome1||'), '||srid1||'),4326)::geometry(Geometry, 4326) AS geom from "'||esch||'"."'||tbl_entrada||'";'; END; T  '`convexhull_union_vw` 4Bfvu esch<tbl_entrada4vw_salida0simplify buff0area_minX declare geome1 text; srid1 text; BEGIN --ejemplo se saca un casco urbano EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create view "'||esch||'"."'||vw_salida||'" as select row_number() OVER () AS id_srm, st_transform(st_setsrid(geom, '||srid1||'),4326)::geometry(Geometry, 4326) AS geom from (select (st_dump(st_union(geom))).geom from (select ST_ConvexHull (st_buffer((st_dump(st_union(st_buffer (st_simplify(st_force2d('||geome1||'),'||simplify||'),'||buff||',''endcap=flat'')))) .geom,-'||buff||',''endcap=flat'')) as geom from "'||esch||'"."'||tbl_entrada||'")a)a where st_area (geom) > '||area_min||';'; END; T~  '`convexhull_union_mv` 4Bfvu esch<tbl_entrada4vw_salida0simplify buff0area_min declare geome1 text; srid1 text; BEGIN --ejemplo se saca un casco urbano EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as select row_number() OVER () AS id_srm, st_transform(st_setsrid(geom, '||srid1||'),4326)::geometry(Geometry, 4326) AS geom from (select (st_dump(st_union(geom))).geom from (select ST_ConvexHull (st_buffer((st_dump(st_union(st_buffer (st_simplify(st_force2d('||geome1||'),'||simplify||'),'||buff||',''endcap=flat'')))) .geom,-'||buff||',''endcap=flat'')) as geom from "'||esch||'"."'||tbl_entrada||'")a)a where st_area (geom) > '||area_min||';'; END; @0(   Б,Ћ  ( T  '`h3_punto_mixto_index_vw` 4Bfvu esch4vw_salidaDtabla_entrada,h3_zoomPcontenido_camposLcontenido_where$srid1X DECLARE geome1 character varying; astring character varying; begin EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; select STRING_AGG(string,', ') into astring from(select string from (select split_part(split_part(regexp_split_to_table(''|| contenido_campos ||'', ','),'(', 2),')','1') as string)a group by string)a; execute 'drop view if exists "'||esch||'"."'||vw_salida||'"'; execute 'CREATE VIEW "'||esch||'"."'||vw_salida||'" AS SELECT '|| contenido_campos ||', h3_index FROM (SELECT '|| astring ||',h3_geo_to_h3index(ST_Transform(st_setsrid('||geome1||','||srid1||'),4326), '||h3_zoom||') AS h3_index FROM "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||')a group by h3_index;' ; end; T  '`h3_mixto_index_vw` 4Bfvu    esch4vw_salidaDtabla_entrada,h3_zoomPcontenido_campos`campos_no_agrupacionLcontenido_where$srid1@valor_escalaF DECLARE geome1 character varying; astPringb c begin /*valor escala según nivel: 15--0.0!8,14 2,13 55,12A 14,11 38,10 85,D 9 2,8 48,7 15,69,q12,l35,h82,2--2.5,1--9*/ EXECUTE 'create table __cespaci1 as select * from "'||h |0|'".6a_entrada'; SELECT f_try_column into FR OM !s WHERE f__name =$ '';drop'; STRING_AGG(,', ')%(1 plit_ part( re gexp_to ('contenido_ca0mposx,'),'(', 2),')','1 ')gu)a group by@; if F_no_agruon <> ''@ then concat( ('',de,'::text, '','q,1)%)8,' ?49 "?,hde)a where de <>''; (EA4; else :=7; .end if; execute$o view if exists216vw_salida4=iA7 '||//_, h3_in8dex&3 id_pol,J$||' h6Rh31h3Z (st_c1oi(d (1)Fh3_zoom||C4w fdump  transform setsridzH 1w,4326))). xrow_number() OVER () |ASD. fun!es.__r_tesela( st_makev('||C 'b'v_c''JA ./Zy"3+3I~t )a ) a Fc *)a <;;' ; end; T  '`h3_mixto_vw` 4Bfvu    esch4vw_salidaDtabla_entrada,h3_zoomPcontenido_campos`campos_no_agrupacionLcontenido_where$srid1@valor_escala DECLARE geome1 character varying; astPringb c begin /*valor escala según nivel: 15--0.0!8,14 2,13 55,12A 14,11 38,10 85,D 9 2,8 48,7 15,69,q12,l35,h82,2--2.5,1--9*/ EXECUTE 'create table __cespaci1 as select * from "'||h |0|'".6a_entrada'; SELECT f_try_column into FR OM !s WHERE f__name =$ '';drop'; STRING_AGG(,', ')%(1 plit_ part( re gexp_to ('contenido_ca0mposx,'),'(', 2),')','1 ')gu)a group by@; if F_no_agruon <> ''@ then concat( ('',de,'::text, '','q,1)%)8,' ?49 "?,hde)a where de <>''; (EA4; else :=7; .end if; execute$o view if exists216vw_salida4=iA7 '||//_, h3_index,st_setsrid(h03_h3geoboundary),4326)::5(G D,  AS2 '6C id`_pol,4G|8|' 6kh3(st_cAACoid (m)Fh3_zoom|||#Cw fdump  transform .7zH 1w)). xrow_number() OVER (-T4. fun!v es.__!(r_tesela( st_makev!('||S@ '!b_c!$'JA .Z"+s3~t ) a ) a F *)a <;;' ; end; T  ?`h3_loop` 4BzDfvuC1iit[ tipocolar DECLARE pa record; BEGIN execute 'create table borrar_table (column_name text,column_valor text);'; Execute 'insert into borrar_table (column_name) values '||col||';'; Execute 'insert into borrar_table (column_valor) values '||tipo||';'; FOR pa IN select column_name,column_valor from (select column_name from borrar_table where column_name is not null)b, (select column_valor from borrar_table where column_valor is not null)a group by column_name,column_valor LOOP ar:= 'ROUND('||pa.column_valor||'(b."'||pa.column_name||'"::integer),3) as "'||pa.column_valor||'_'||pa.column_name||'",'; RETURN NEXT; END LOOP; execute 'drop table if exists borrar_table'; execute 'drop table if exists borrar_valor'; raise notice 'Value: %', pa; END; T  '`difference_vw` 4Bfvu0 esch`tbl_entrada_a_cortar4tbl_corta4vw_salida4contenidoHsrid1_a_cortar<srid2_corta declare geome1 text; geome2 text; BEGIN EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada_a_cortar ||'"'; EXECUTE 'create table __cespaci2 as select * from "'|| esch ||'"."'|| tbl_corta ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; SELECT f_geometry_column into geome2 FROM geometry_columns WHERE f_table_name = '__cespaci2'; EXECUTE 'drop table __cespaci1'; EXECUTE 'drop table __cespaci2'; EXECUTE 'create view "'||esch||'"."'||vw_salida||'" as select '|| contenido ||' ST_difference(a.transform_srid ,b.geom)::geometry(Geometry, 4326) as geom from (select * ,ST_Transform(st_setsrid('||geome1||','||srid1_a_cortar||'),4326) as transform_srid from "'||esch||'"."'||tbl_entrada_a_cortar||'") a, (select st_union(st_makevalid(ST_Transform(st_setsrid('||geome2||','||srid2_corta||'),4326))) as geom from "'||esch||'"."'||tbl_corta||'") b;'; END; T  '`difference_mv` 4Bfvu0 esch`tbl_entrada_a_cortar4tbl_corta4vw_salida4contenidoHsrid1_a_cortar<srid2_corta declare geome1 text; geome2 text; BEGIN EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada_a_cortar ||'"'; EXECUTE 'create table __cespaci2 as select * from "'|| esch ||'"."'|| tbl_corta ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; SELECT f_geometry_column into geome2 FROM geometry_columns WHERE f_table_name = '__cespaci2'; EXECUTE 'drop table __cespaci1'; EXECUTE 'drop table __cespaci2'; EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as select '|| contenido ||' ST_difference(a.transform_srid ,b.geom)::geometry(Geometry, 4326) as geom from (select * ,ST_Transform(st_setsrid('||geome1||','||srid1_a_cortar||'),4326) as transform_srid from "'||esch||'"."'||tbl_entrada_a_cortar||'") a, (select st_union(st_makevalid(ST_Transform(st_setsrid('||geome2||','||srid2_corta||'),4326))) as geom from "'||esch||'"."'||tbl_corta||'") b;'; END; A0    Ȏ Љ ^ T  '`medialaxis_vw` 4Bfvu esch<tbl_entrada4vw_salida4contenido declare geome1 text; srid1 text; BEGIN EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create view "'||esch||'"."'||vw_salida||'" as select '|| contenido ||' st_transform(st_setsrid(ST_ApproximateMedialAxis(st_makevalid('||geome1||')), '||srid1||'),4326)::geometry(Geometry, 4326) as geom from "'||esch||'"."'||tbl_entrada||'";'; END; T  '`h3_punto_mixto_vw` 4Bfvu esch4vw_salidaDtabla_entrada,h3_zoomPcontenido_camposLcontenido_where$srid1 DECLARE geome1 character varying; astring character varying; begin EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; select STRING_AGG(string,', ') into astring from(select string from (select split_part(split_part(regexp_split_to_table(''|| contenido_campos ||'', ','),'(', 2),')','1') as string)a group by string)a; execute 'drop view if exists "'||esch||'"."'||vw_salida||'"'; execute 'CREATE VIEW "'||esch||'"."'||vw_salida||'" AS SELECT '|| contenido_campos ||', h3_index,st_setsrid(h3_h3index_to_geoboundary(h3_index),4326)::geometry(Geometry, 4326) as geom FROM (SELECT '|| astring ||',h3_geo_to_h3index(ST_Transform(st_setsrid('||geome1||','||srid1||'),4326), '||h3_zoom||') AS h3_index FROM "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||')a group by h3_index;' ; end; T  '`h3_punto_mixto_index_mv` 4Bfvu esch4vw_salidaDtabla_entrada,h3_zoomPcontenido_camposLcontenido_where$srid1 DECLARE geome1 character varying; astring character varying; begin EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; select STRING_AGG(string,', ') into astring from(select string from (select split_part(split_part(regexp_split_to_table(''|| contenido_campos ||'', ','),'(', 2),')','1') as string)a group by string)a; execute 'drop materialized view if exists "'||esch||'"."'||vw_salida||'"'; execute 'CREATE materialized VIEW "'||esch||'"."'||vw_salida||'" AS SELECT '|| contenido_campos ||', h3_index FROM (SELECT '|| astring ||',h3_geo_to_h3index(ST_Transform(st_setsrid('||geome1||','||srid1||'),4326), '||h3_zoom||') AS h3_index FROM "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||')a group by h3_index;' ; end; T  '`h3_punto_mixto_mv` 4Bfvu esch4vw_salidaDtabla_entrada,h3_zoomPcontenido_camposLcontenido_where$srid1 DECLARE geome1 character varying; astring character varying; begin EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; select STRING_AGG(string,', ') into astring from(select string from (select split_part(split_part(regexp_split_to_table(''|| contenido_campos ||'', ','),'(', 2),')','1') as string)a group by string)a; execute 'drop materialized view if exists "'||esch||'"."'||vw_salida||'"'; execute 'CREATE materialized VIEW "'||esch||'"."'||vw_salida||'" AS SELECT '|| contenido_campos ||', h3_index,st_setsrid(h3_h3index_to_geoboundary(h3_index),4326)::geometry(Geometry, 4326) as geom FROM (SELECT '|| astring ||',h3_geo_to_h3index(ST_Transform(st_setsrid('||geome1||','||srid1||'),4326), '||h3_zoom||') AS h3_index FROM "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||')a group by h3_index;' ; end; T  '`h3_mixto_index_mv` 4Bfvu    esch4vw_salidaDtabla_entrada,h3_zoomPcontenido_campos`campos_no_agrupacionLcontenido_where$srid1@valor_escala DECLARE geome1 character varying; astPringb c begin /*valor escala según nivel: 15--0.0!8,14 2,13 55,12A 14,11 38,10 85,D 9 2,8 48,7 15,69,q12,l35,h82,2--2.5,1--9*/ EXECUTE 'create table __cespaci1 as select * from "'||h |0|'".6a_entrada'; SELECT f_try_column into FR OM !s WHERE f__name =$ '';drop'; STRING_AGG(,', ')%(1 plit_ part( re gexp_to ('contenido_ca0mposx,'),'(', 2),')','1 ')gu)a group by@; if F_no_agruon <> ''@ then concat( ('',de,'::text, '','q,1)%)8,' ?49 "?,hde)a where de <>''; (EA4; else :=7; .end if; execute$omaterialized view if exists2"1!6 vw_salid~a4=uMC ('||G/w, h3_index&3 id_0pol,J4||' h6+Rh31 h3Z(st_cAoid (1)Fh3_zoom||CLw f dump  transform setsridz H 1w,432`6))). xrow_number() OVER () ASDG. fun!6es.__r_tesela( st_makeva('||S l 'b?_c?'JA ./Z"3+3a~t )a ) a F{ *)a <;;' ; end; T  '`h3_mixto_mv` 4Bfvu    esch4vw_salidaDtabla_entrada,h3_zoomPcontenido_campos`campos_no_agrupacionLcontenido_where$srid1@valor_escalaV DECLARE geome1 character varying; astPringb c begin /*valor escala según nivel: 15--0.0!8,14 2,13 55,12A 14,11 38,10 85,D 9 2,8 48,7 15,69,q12,l35,h82,2--2.5,1--9*/ EXECUTE 'create table __cespaci1 as select * from "'||h |0|'".6a_entrada'; SELECT f_try_column into FR OM !s WHERE f__name =$ '';drop'; STRING_AGG(,', ')%(1 plit_ part( re gexp_to ('contenido_ca0mposx,'),'(', 2),')','1 ')gu)a group by@; if F_no_agruon <> ''@ then concat( ('',de,'::text, '','q,1)%)8,' ?49 "?,hde)a where de <>''; (EA4; else :=7; .end if; execute$omaterialized view if exists2"1!6 vw_salid~a4=uMC ('||G/w, h3_index,st_setsrid(h3_h3geobou`ndary),4326)::I5(G ,  tAS2 #6-C,  id_pol,4_||' s6h3(st_cA[oid (m)Fh3_zoom||#7Cw fdump  transfo|rm .zH 1cw)). xrow_number() OVER (-TL. fun!es.__!4r_tesela( st_ makev!('||SX '!b_c!$'JA .Z"+s3~t )a ) a F 1*)a <;;' ; end; p)A,`  `@ ؒ ` ` T  '`h3_conteo_mv` 4Bfvu esch4vw_salidaDtabla_entrada,h3_zoomLcontenido_where$srid1@valor_escala DECLARE geome1 character varying; begin /*valor escala según nivel: 15--0.000008,14--0.00002,13--0.000055,12--0.00014,11--0.00038,10--0.00085, 9--0.002,8--0.0048,7--0.0015,6--0.0049,5--0.12,4--0.35,3--0.82,2--2.5,1--9*/ EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; execute 'drop materialized view if exists "'||esch||'"."'||vw_salida||'"'; EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as select count(*), h3_index,st_setsrid(h3_h3index_to_geoboundary(h3_index),4326)::geometry(Geometry, 4326) AS geom from (select * from (select id_pol,h3_geo_to_h3index(st_centroid (geom),'||h3_zoom||') as h3_index from (select id_pol,(st_dump (st_transform(st_setsrid(geom,'||srid1||'),4326))).geom from (select row_number() OVER () AS id_pol,* from (select funciones.__crear_tesela( st_makevalid('||geome1||'), '''||valor_escala||''', '''||valor_escala||''') as geom from "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||')t )a ) a )a group by h3_index,id_pol)a group by h3_index;' ; end; T  '`h3_conteo_index_vw` 4Bfvu esch4vw_salidaDtabla_entrada,h3_zoomLcontenido_where$srid1@valor_escala, DECLARE geome1 character varying; begin /*valor escala según nivel: 15--0.000008,14--0.00002,13--0.000055,12--0.00014,11--0.00038,10--0.00085, 9--0.002,8--0.0048,7--0.0015,6--0.0049,5--0.12,4--0.35,3--0.82,2--2.5,1--9*/ EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; execute 'drop view if exists "'||esch||'"."'||vw_salida||'"'; EXECUTE 'create view "'||esch||'"."'||vw_salida||'" as select count(*),h3_index from (select * from (select id_pol,h3_geo_to_h3index(st_centroid (geom),'||h3_zoom||') as h3_index from (select id_pol,(st_dump (st_transform(st_setsrid(geom,'||srid1||'),4326))).geom from (select row_number() OVER () AS id_pol,* from (select funciones.__crear_tesela( st_makevalid('||geome1||'), '''||valor_escala||''', '''||valor_escala||''') as geom from "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||')t )a ) a )a group by h3_index,id_pol)a group by h3_index;' ; end; T  '`h3_conteo_vw` 4Bfvu esch4vw_salidaDtabla_entrada,h3_zoomLcontenido_where$srid1@valor_escala DECLARE geome1 character varying; begin /*valor escala según nivel: 15--0.000008,14--0.00002,13--0.000055,12--0.00014,11--0.00038,10--0.00085, 9--0.002,8--0.0048,7--0.015,6--0.049,5--0.12,4--0.35,3--0.82,2--2.5,1--9*/ EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; execute 'drop view if exists "'||esch||'"."'||vw_salida||'"'; EXECUTE 'create view "'||esch||'"."'||vw_salida||'" as select count(*), h3_index,st_setsrid(h3_h3index_to_geoboundary(h3_index),4326)::geometry(Geometry, 4326) AS geom from (select * from (select id_pol,h3_geo_to_h3index(st_centroid (geom),'||h3_zoom||') as h3_index from (select id_pol,(st_dump (st_transform(st_setsrid(geom,'||srid1||'),4326))).geom from (select row_number() OVER () AS id_pol,* from (select funciones.__crear_tesela( st_makevalid('||geome1||'), '''||valor_escala||''', '''||valor_escala||''') as geom from "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||')t )a ) a )a group by h3_index,id_pol)a group by h3_index;' ; end; T  ?`h3_valores_vw` 4BzDfvu  { ? iiiiiiiiit`  esch4vw_salidaDtabla_entrada,h3_zoom tipocolLcontenido_where$srid1@valor_escalate0 DECLARE te text; geome1 character varying; begin -- descarte del mixto se deja por si acaso select STRING_AGG(ar,' ') from (select funciones.h3_loop(tipo,col) as ar) a into te; EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; execute 'drop view if exists "'||esch||'"."'||vw_salida||'"'; EXECUTE 'create view "'||esch||'"."'||vw_salida||'" as select '||te||' h3_index,a.geom from (select st_setsrid(h3_h3index_to_geoboundary( h3_geo_to_h3index),4326) as geom,h3_geo_to_h3index as h3_index from (select * from (select ( h3_geo_to_h3index ((st_dump(st_generatepoints(ST_Transform(st_setsrid('||geome1||','||srid1||'),4326), ((round(st_area(ST_Transform(st_setsrid('||geome1||','||srid1||'),4326)::Geography)))*'||valor_escala||')::integer))).geom,'|| h3_zoom ||')) from "'||esch||'"."'||tabla_entrada||'")a group by h3_geo_to_h3index)a)a, (select * from "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||') b where st_intersects (a.geom,ST_Transform(st_setsrid(b.'||geome1||','||srid1||'),4326)) group by a.geom,a.h3_index' ; end; T  ?`h3_valores_mv` 4BzDfvu  { ? iiiiiiiiit`  esch4vw_salidaDtabla_entrada,h3_zoom tipocolLcontenido_where$srid1@valor_escalate DECLARE te text; geome1 character varying; begin -- descarte del mixto se deja por si acaso select STRING_AGG(ar,' ') from (select funciones.h3_loop(tipo,col) as ar) a into te; EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; execute 'drop materialized view if exists "'||esch||'"."'||vw_salida||'"'; EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as select '||te||' h3_index,a.geom from (select st_setsrid(h3_h3index_to_geoboundary( h3_geo_to_h3index),4326) as geom,h3_geo_to_h3index as h3_index from (select * from (select ( h3_geo_to_h3index ((st_dump(st_generatepoints(ST_Transform(st_setsrid('||geome1||','||srid1||'),4326), ((round(st_area(ST_Transform(st_setsrid('||geome1||','||srid1||'),4326)::Geography)))*'||valor_escala||')::integer))).geom,'|| h3_zoom ||')) from "'||esch||'"."'||tabla_entrada||'")a group by h3_geo_to_h3index)a)a, (select * from "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||') b where st_intersects (a.geom,ST_Transform(st_setsrid(b.'||geome1||','||srid1||'),4326)) group by a.geom,a.h3_index' ; end; A4  XJ ȕ lJ " T '`areas_ejes_viales_ia` 4Bfvu  esch<tbl_entrada<salidaareas8salidaejes<umbralscore4dist_buff(simpli,sridauxH ` T  '`h3_padre_hijo_vw` 4Bfvu esch4vw_salidaDtabla_entradaPcontenido_camposLcontenido_where$srid1v/ DECLARE geome1 character varying; astring begin EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'".6a_entrada'; SELECT f_try_column into FROM !s WHER E f__name = '';drop'; STRING_AGG(,', ')[((1 plit_part( regexp_to('contenido_camposx,'),'(', 2),')','1')fu)a group by; e@xecuteview if existsvw_salida||'_h1C9, h3_index,st_setsrid(h3_h3geobou`ndary),4326)::I(G ,  AS" "w# id_pol,h3y(st_c! oid (\),>1|#ZIdump  transform ]C7 1||') ). grow_number() OVER (4y. funciones.__r_tesela( st_makev('||3u ''9'' .:,where)t )a ) a &fcP)a ,+;@' ; /*2/&2/2/2.5W4 ?3?&3?3?0.824 ?Ȫ4?&4?4?3e  ?5?&5?5?1g  ?6?&6?r6?04 ?7?&7?7?1 U?8?&8?8?0\487 ? 9? &9=? 9?  ?10I?&10? 10? 0^8??31?'1?1?3#??2*2?'2?2?14W9?3?'3?3?05,?4?'4?4?GI5?'5?5?0;? end; T  '`h3_punto_conteo_index_mv` 4Bfvu esch4vw_salidaDtabla_entrada,h3_zoomLcontenido_where$srid1 DECLARE geome1 character varying; begin EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; execute 'drop materialized view if exists "'||esch||'"."'||vw_salida||'"'; execute 'CREATE materialized VIEW "'||esch||'"."'||vw_salida||'" AS SELECT "num_'||vw_salida||'", h3_index FROM (SELECT count(*) AS "num_'||vw_salida||'", h3_index FROM (SELECT h3_geo_to_h3index(ST_Transform(st_setsrid('||geome1||','||srid1||'),4326), '||h3_zoom||') AS h3_index FROM "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||')a group by h3_index )a order by "num_'||vw_salida||'" desc;' ; end; T  '`h3_punto_conteo_mv` 4Bfvu esch4vw_salidaDtabla_entrada,h3_zoomLcontenido_where$srid1 DECLARE geome1 character varying; begin EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; execute 'drop materialized view if exists "'||esch||'"."'||vw_salida||'"'; execute 'CREATE materialized VIEW "'||esch||'"."'||vw_salida||'" AS SELECT "num_'||vw_salida||'", h3_index, st_setsrid(h3_h3index_to_geoboundary(h3_index),4326::geometry(Geometry, 4326) as geom FROM (SELECT count(*) AS "num_'||vw_salida||'", h3_index FROM (SELECT h3_geo_to_h3index(ST_Transform(st_setsrid('||geome1||','||srid1||'),4326), '||h3_zoom||') AS h3_index FROM "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||')a group by h3_index )a order by "num_'||vw_salida||'" desc;' ; end; T  '`h3_punto_conteo_index_vw` 4Bfvu esch4vw_salidaDtabla_entrada,h3_zoomLcontenido_where$srid1( DECLARE geome1 character varying; begin EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; execute 'drop view if exists "'||esch||'"."'||vw_salida||'"'; execute 'CREATE VIEW "'||esch||'"."'||vw_salida||'" AS SELECT "num_'||vw_salida||'", h3_index FROM (SELECT count(*) AS "num_'||vw_salida||'", h3_index FROM (SELECT h3_geo_to_h3index(ST_Transform(st_setsrid('||geome1||','||srid1||'),4326), '||h3_zoom||') AS h3_index FROM "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||')a group by h3_index )a order by "num_'||vw_salida||'" desc;' ; end; T  '`h3_punto_conteo_vw` 4Bfvu esch4vw_salidaDtabla_entrada,h3_zoomLcontenido_where$srid1 DECLARE geome1 character varying; begin EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; execute 'drop view if exists "'||esch||'"."'||vw_salida||'"'; execute 'CREATE VIEW "'||esch||'"."'||vw_salida||'" AS SELECT "num_'||vw_salida||'", h3_index, st_setsrid(h3_h3index_to_geoboundary(h3_index),4326)::geometry(Geometry, 4326) as geom FROM (SELECT count(*) AS "num_'||vw_salida||'", h3_index FROM (SELECT h3_geo_to_h3index(ST_Transform(st_setsrid('||geome1||','||srid1||'),4326), '||h3_zoom||') AS h3_index FROM "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||')a group by h3_index )a order by "num_'||vw_salida||'" desc;' ; end; T  '`h3_conteo_index_mv` 4Bfvu esch4vw_salidaDtabla_entrada,h3_zoomLcontenido_where$srid1@valor_escala DECLARE geome1 character varying; begin /*valor escala según nivel: 15--0.000008,14--0.00002,13--0.000055,12--0.00014,11--0.00038,10--0.00085, 9--0.002,8--0.0048,7--0.0015,6--0.0049,5--0.12,4--0.35,3--0.82,2--2.5,1--9*/ EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tabla_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; execute 'drop materialized view if exists "'||esch||'"."'||vw_salida||'"'; EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as select count(*),h3_index from (select * from (select id_pol,h3_geo_to_h3index(st_centroid (geom),'||h3_zoom||') as h3_index from (select id_pol,(st_dump (st_transform(st_setsrid(geom,'||srid1||'),4326))).geom from (select row_number() OVER () AS id_pol,* from (select funciones.__crear_tesela( st_makevalid('||geome1||'), '''||valor_escala||''', '''||valor_escala||''') as geom from "'||esch||'"."'||tabla_entrada||'" '|| contenido_where ||')t )a ) a )a group by h3_index,id_pol)a group by h3_index;' ; end; xA0p  XB 0B ( .  p T  '`medialaxis_mv` 4Bfvu esch<tbl_entrada4vw_salida4contenido0 declare geome1 text; srid1 text; BEGIN EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as select '|| contenido ||' st_transform(st_setsrid(ST_ApproximateMedialAxis(st_makevalid('||geome1||')), '||srid1||'),4326)::geometry(Geometry, 4326) as geom from "'||esch||'"."'||tbl_entrada||'";'; END; T  '`medialaxis_con_limpieza_vw` 4Bfvu esch<tbl_entrada4vw_salida4contenido<metros_buff(simpli declare geome1 text; srid1 text; BEGIN /*medial axis con una limpieza previa por si hubiera geometrias no validas o agujeros o cortes que solucionan los problemas de un medial axis básico. - metros_buff para la limpieza de pequeños huecos dentro de la geometría que da errores al medial*/ EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create view "'||esch||'"."'||vw_salida||'" as select '||contenido||' st_transform(st_setsrid(ST_ApproximateMedialAxis(geom), '||srid1||'),4326)::geometry(Geometry, 4326) as geom from (select '||contenido||' ST_SimplifyPreserveTopology(st_buffer('||geome1||','||metros_buff||'),'||simpli||') as geom from "'||esch||'"."'||tbl_entrada||'")a;'; END; T  '`medialaxis_con_limpieza_mv` 4Bfvu esch<tbl_entrada4vw_salida4contenido<metros_buff(simpli declare geome1 text; srid1 text; BEGIN /*medial axis con una limpieza previa por si hubiera geometrias no validas o agujeros o cortes que solucionan los problemas de un medial axis básico. - metros_buff para la limpieza de pequeños huecos dentro de la geometría que da errores al medial*/ EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as select '||contenido||' st_transform(st_setsrid(ST_ApproximateMedialAxis(geom), '||srid1||'),4326)::geometry(Geometry, 4326) as geom from (select '||contenido||' ST_SimplifyPreserveTopology(st_buffer('||geome1||','||metros_buff||'),'||simpli||') as geom from "'||esch||'"."'||tbl_entrada||'")a;'; END; T  g`medialaxis_con_limpieza_unidos_mv` 4Bfvu esch<tbl_entrada4vw_salida4contenido<metros_buff(simpli@materializedt({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :location 324327 :constvalue 1 [ 0 0 0 0 0 0 0 0 ]})Q declare geome1 text; vwType varchar; sSqlBEGIN /*medial axis con una limpieza previa por si hubiera ftrias no validas o agujero cortes que solucionan los problemas @de un básico. Une-tram o*v%entre cruces. os_buff para lde pequeños huecHntrolíada error es al*/ --EXECUTE 'create table __cespaci1 as select * from "'|| esch@ ||'".tbl_ada'; SELE CT f_y_column into1 FR OM!s WHERE f__schemaD =wANDn ame = ; IF materialized rue THE N #=:=' %view'; ELSE &ND IF; 5drop3'; !DROP '||N||' IF EXISTSIGvw_s"rC!:= B  WITH ejs(  '||contenido||', ST_ApproxioM"+Axis('||||')K#VWX (ST_SimplifyPreserveTopology ((st_dumpmakNe2w !er {,'||8))). se?&.(6)6  ) $ (t2t "W2 / linemerge col0((t. efg gF>!t GROUP BY F$2'; -- DEBBUG --RAISE NOTICE 'sql: %',!; &? 6CREATE INDEX_,BB_idx ON/USING GIST14END; T  '`linea_central_poligono_tbl` 4Bfvu esch<tbl_entrada8tbl_salida0num_limp declare geome1 text; BEGIN EXECUTE 'create table __espaci1 as select * from "'|| esch ||'".tbl_entrada'; SELECT f_wtry_column into FROM !s WHER E f__name = '`drop !/*el num_limp es la cantidad de veces que se eliminan los extremos*/fif exists    ||'_cdz";';e> st_simplify((st@_dump  union buffer ('||a||',(0.0005/1.1132*01),''endca p=squ! join=bevel'')))).Ch,(1 9) & indexE :_ ON'USING GIShT () w&b ,boundxaryH&L.s >ST_Segmentize// /4#s" %/2s/1Dvl/0*vl" \row_numb1)over(Iid_zohna,T(.E(ST_VoronoiLines܇4s")t'\vl(Cc+c)u<xb.*,id a.*,a.4q a, ?D) b @ whereA{intersects (aSst_exterior@ring(b)))t rightbx)b onAEquals (tqatid is null/g(c/gc/g/h./g+*f /<%L/~ /':salio 9%st_lengthwdistancia, - 3eContainsPropePrly 4,))a)aW$for cou!^ in 0..loop?x0 >Zid,''Points without [''errores, p#zLlr1vh%,:1, r2&2]ndQ1exp (,1000) &&o(4e*!)` = 0)a: e2o /eletec a MxbdB= b.id2,RAISE NOTICA36: %',5C; end29o0`5ώ3x43O4+ END; T  '`h3_padre_hijo_mv` 4Bfvu esch4vw_salidaDtabla_entradaPcontenido_camposLcontenido_where$srid11 DECLARE geome1 character varying; astring begin EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'".6a_entrada'; SELECT f_try_column into FROM !s WHER E f__name = '';drop'; STRING_AGG(,', ')[((1 plit_part( regexp_to('contenido_camposx,'),'(', 2),')','1')fu)a group by; e@xecutematerialized view if existsvw_salida||'_h1PF(, h3_index,st_setsrid(`h3_h30geobounda ry),43 26)::%(G ,  AS"3 "# id_pol,sh3y(st_c!oid (\),1#ZIdump  transfo|rm ]7 1||')). grow_number() OVER (4. funcion es.__r_tesela( st_makev('||3 ''9'' .:A,where)t )a ) ay &fP) a ,+;' ; ?72?32?2?2.54 ?*3?33?3?0.\824 ?4?34u?4?3e= ?5?35?5?1g> U?6?36?6?04 ?!7?!37?!Ѻ7?!1` ?!8?!38?!8?!0487" ?#9?#39?#9?#'Dž ?!10?"310?#10?$08j?(?)@1?)41?)1?)^3q?)?(?2?(42?(2?(149(?(*3?(43?(3?(05Wz?*4?*44?*4W?*5?(45?(5?(0ʣ?* end; @B<P  TКV : ,0XP^D^PDT  ( '`generica_vw` 4Bfvu esch4vw_salidaDcontenido_sql BEGIN /*función para introducir código sql que crea vista o vista materializada*/ EXECUTE 'create view "'||esch||'"."'||vw_salida||'" as '||contenido_sql||';'; END; T ( '`generica_mv` 4Bfvu esch4vw_salidaDcontenido_sql BEGIN /*función para introducir código sql que crea vista o vista materializada*/ EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as '||contenido_sql||';'; END; TT @+ '`generica_vw` 4Bfvu esch4vw_salidaDcontenido_sql BEGIN /*función para introducir código sql que crea vista o vista materializada*/ EXECUTE 'create view "'||esch||'"."'||vw_salida||'" as '||contenido_sql||';'; END; TT@+ '`generica_mv` 4Bfvu esch4vw_salidaDcontenido_sql BEGIN /*función para introducir código sql que crea vista o vista materializada*/ EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as '||contenido_sql||';'; END; T  ?`padre_hijo_loop3` 4BzDfvuC1iit[ tipocolar` DECLARE pa record; BEGIN execute 'create table borrar_table (column_name text,column_valor text);'; Execute 'insert into borrar_table (column_name) values '||col||';'; Execute 'insert into borrar_table (column_valor) values '||tipo||';'; FOR pa IN select column_name,column_valor from (select column_name from borrar_table where column_name is not null)b, (select column_valor from borrar_table where column_valor is not null)a group by column_name,column_valor LOOP ar:= 'ROUND('||pa.column_valor||'(b."'||pa.column_valor||'_'||pa.column_name||'"::integer),3) as "'||pa.column_valor||'_'||pa.column_name||'",'; RETURN NEXT; END LOOP; execute 'drop table if exists borrar_table'; execute 'drop table if exists borrar_valor'; raise notice 'Value: %', pa; END; T  ?`padre_hijo_loop2` 4BzDfvup;/itK tipoarx --num_x es el nombre de la columna de la vista de apoyo donde cuenta la geometría DECLARE pa record; BEGIN execute 'create table borrar_table (column_name text,column_valor text);'; Execute 'insert into borrar_table (column_name) values (''num_features'');'; Execute 'insert into borrar_table (column_valor) values '||tipo||';'; FOR pa IN select column_name,column_valor from (select column_name from borrar_table where column_name is not null)b, (select column_valor from borrar_table where column_valor is not null)a group by column_name,column_valor LOOP ar:= 'ROUND('||pa.column_valor||'(b."'||pa.column_name||'"::integer),3) as "'||pa.column_valor||'_'||pa.column_name||'",'; RETURN NEXT; END LOOP; execute 'drop table if exists borrar_table'; execute 'drop table if exists borrar_valor'; raise notice 'Value: %', pa; END; T  ?`padre_hijo_loop1` 4BzDfvuC1iit[ tipocolar DECLARE pa record; BEGIN execute 'create table borrar_table (column_name text,column_valor text);'; Execute 'insert into borrar_table (column_name) values '||col||';'; Execute 'insert into borrar_table (column_valor) values '||tipo||';'; FOR pa IN select column_name,column_valor from (select column_name from borrar_table where column_name is not null)b, (select column_valor from borrar_table where column_valor is not null)a group by column_name,column_valor LOOP ar:= 'ROUND('||pa.column_valor||'(b."'||pa.column_name||'"::integer),3) as "'||pa.column_valor||'_'||pa.column_name||'",'; RETURN NEXT; END LOOP; execute 'drop table if exists borrar_table'; execute 'drop table if exists borrar_valor'; raise notice 'Value: %', pa; END; T  '`padre_hijo_limites_administrativos_vw` 4Bfvu eschHtable_a_contar4vw_salida tipocol$srid1 --si se cambia el nombre de num_feature"s!r tén en la función padre_hijo_loop2 declare geome1 text; Tte a u BEGIN select STRING_AGG(ar,' ') from ( y ones. z1(tipo,col) as ar) a into hte;^/2^ZaZ03u; EXECUTE 'creaFable __espaXci13b*q"'|| esch ||'".5_a_contar'; SELECT f_try_colu mnFROM !s WHE@RE f_\name = '`drop !execute! view if existsvw_sal(ida; ACREATE VIEW9 _apoy@o" AScount(b.9,'||te||' a.municipio,a.natcode_%provincDia ccagid_0NmeOr bA JOIN multinivels a ON st_intersects(ST_Transform(st_setsrid(b.'||||' ),4326 ),# GROUP BY?.SOR(DER`() DESC';  4"> z_4"Wu||'_ ::5$(G ,  A2S2$ 6/ b@ RIGHT $onM::Q;=b groupx by^ :DH3H jCZ}CC C>72>q1 'B;:1co!/dades!UdoA<7 4'14 g /oEright join*oaiseQl+bC$D'0[ainent[   END; T  '`padre_hijo_limites_administrativos_mv` 4Bfvu eschHtable_a_contar4vw_salida tipocol$srid1> --si se cambia el nombre de num_feature"s!r tén en la función padre_hijo_loop2 declare geome1 text; Tte a u BEGIN select STRING_AGG(ar,' ') from ( y ones. z1(tipo,col) as ar) a into hte;^/2^ZaZ03u; EXECUTE 'creaFable __espaXci13b*q"'|| esch ||'".5_a_contar'; SELECT f_try_colu mnFROM !s WHE@RE f_\name = '`drop !execute!materialized view if exi8stsvw_salida; MCREATE! OVIEWE _apoyo" AScount(b.9,'||te||' a.municipio,a.natcode_%prov incia ccagid_0N|me bA JOIN multinivels a ON st_intersects(ST_Transform(st_setsrid@(b.'||# ||' ),4`326),# GROUP BY.SAORDER`() DESC'; '42/W/ pz_4"%du||'l $::5-(G , ( AS2I 6/ b RIGHT onY::Q_=b group byj :\T'3T w" O P1}PP PKD>2K~13BAHXcoA!Jdades!pdoOJE B4>1B t BEright joina*aiseQ8bS 1T*)")40) [ainent%$ $  END; ZB,   8 p t ЃT  ?`get_http_text` 4BzDfvup;/itS,containar DECLARE pa record; am text; BEGIN select content FROM http_get (contain) into am; execute 'create table borrar_geo as select json_object_keys(properties) as column_name from (select gid,geom,properties from (WITH data AS (select '''||am||'''::json AS fc) SELECT row_number() OVER () AS gid, ST_GeomFromGeoJSON(feat->>''geometry'') AS geom, feat->''properties'' AS properties FROM ( SELECT json_array_elements(fc->''features'') AS feat FROM data ) AS f)a)a'; FOR pa IN SELECT column_name FROM borrar_geo LOOP ar:= 'properties ->> '''||pa.column_name||''' as '||pa.column_name||','; RETURN NEXT; END LOOP; execute 'drop table if exists borrar_geo'; raise notice 'Value: % %', pa,contain; END; T  '`padre_hijo_limites_administrativos_mixto_vw` 4Bfvu eschHtable_a_contar4vw_salida4contenidoLcontenido_where$srid1* declare geome1 text; tali BEGIN select string_agg(concat(operacion,'(',alias,')',' as ),',') from (Jrow_number() OVER () AS id_srm, unnestEC =*! =`(5to_arr0ay (Rte@nido, >)9))a wherenot like ('%sum(%'))a $count#&J avgJstddev'maxominHboo l_and)itg(u (orx(everyu)a,&'/replace6A+<"/,/\71a ','<in ('sum','"E','avg','# ','maxin','  orC 7'))bna.id_Srm=b srm into A; EXECUTE 'create table __espaci1;"'|| esch ||'".5_a_ ar'; SELE CT f_Rtry_columnTFROM !s WHERE f_\name = '`0drop !ex ecute! view if existsvw_salida||'_apoyo" cascade; OCREATE VIEWG ASUC0b.)`num@_x,'||&H||', a.municipio,a.natcode_%provincDia ccagid_0Nme_\e _"k||' ) bh JOIN multinivels a ON st_intersects(ST_Transform(st_setsrid(`b.'||#+' || ),43026),K GROUP BYU#z,ORDER`() DESC';x '$4P#u/$ z8_4"! %"pliO" ::5:(rG , P  /b RIGDHT onJ::=b group by[ :iEmaterializedQ3Q rL[~LL LG;2; Om1BD8Yco!6dades!\do?:5 2(12c 2Frigh@t join*jaiseQm(bC!D(0 \ainent   END; T  '`padre_hijo_limites_administrativos_mixto_mv` 4Bfvu eschHtable_a_contar4vw_salida4contenidoLcontenido_where$srid1"% declare geome1 text; tali BEGIN select string_agg(concat(operacion,'(',alias,')',' as ),',') from (Jrow_number() OVER () AS id_srm, unnestEC =*! =`(5to_arr0ay (Rte@nido, >)9))a wherenot like ('%sum(%'))a $count#&J avgJstddev'maxominHboo l_and)itg(u (orx(everyu)a,&'/replace6A+<"/,/\71a ','<in ('sum','"E','avg','# ','maxin','  orC 7'))bna.id_Srm=b srm into A; EXECUTE 'create table __espaci1;"'|| esch ||'".5_a_ ar'; SELE CT f_Rtry_columnTFROM !s WHERE f_\name = '`0drop !ex ecute!materialized view if existsvw_salida||'_apoyo" cascade; [CREATE ]VIEWS ASUCHb. )xnum_x,'||&`||', a.municipio,a.natcode_%prov incia ccagid_0Nme\} _"||' ) bh JOIN multi nivels a ON st_intersects(ST_Transform(st_setsrid(b.'||c#C'|| ),4326),K GROUP BYU#z,ORDER`() DESC'; '04h//0 z_4"!%.y|li" ::5^(G , #P >?b RIGHT onIU::=b group byf :P'3P r"KZ}KK KFD2F y1%BZC D2co!Adades!gdoKFA >41>o >Fright join*aiseQ4bC-T &%w%40% \ainent!      END; T  '`agrupacion_espacial_mixto_vw` 4Bfvu esch4vw_salidaXtabla_entrada_geom`tabla_entrada_camposPcontenido_camposLcontenido_whereHsrid1_a_cortarHsrid2_a_campos DECLARE geome1 character varying; geome2 character varying; begin EXECUTE 'create table __nmtabe1 as select * from "'|| esch ||'"."'|| tabla_entrada_geom ||'"'; EXECUTE 'create table __nmtabe2 as select * from "'|| esch ||'"."'|| tabla_entrada_campos ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__nmtabe1'; SELECT f_geometry_column into geome2 FROM geometry_columns WHERE f_table_name = '__nmtabe2'; EXECUTE 'drop table __nmtabe1'; EXECUTE 'drop table __nmtabe2'; execute 'drop view if exists "'||esch||'"."'||vw_salida||'"'; EXECUTE 'create view"'||esch||'"."'||vw_salida||'" as select '|| contenido_campos ||',ST_Transform(st_setsrid(a.'||geome1||','||srid1_a_cortar||'),4326)::geometry(Geometry, 4326) as geom from (SELECT * from "'|| esch ||'"."'|| tabla_entrada_geom ||'") a, (select * from "'|| esch ||'"."'|| tabla_entrada_campos ||'" '|| contenido_where ||') b where st_intersects (ST_Transform(st_setsrid(a.'||geome1||','||srid1_a_cortar||'),4326),ST_Transform(st_setsrid(b.'||geome2||','||srid2_a_campos||'),4326)) group by a.geom;'; end; T  '`agrupacion_espacial_mixto_mv` 4Bfvu esch4vw_salidaXtabla_entrada_geom`tabla_entrada_camposPcontenido_camposLcontenido_whereHsrid1_a_cortarHsrid2_a_campos DECLARE geome1 character varying; geome2 character varying; begin EXECUTE 'create table __nmtabe1 as select * from "'|| esch ||'"."'|| tabla_entrada_geom ||'"'; EXECUTE 'create table __nmtabe2 as select * from "'|| esch ||'"."'|| tabla_entrada_campos ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__nmtabe1'; SELECT f_geometry_column into geome2 FROM geometry_columns WHERE f_table_name = '__nmtabe2'; EXECUTE 'drop table __nmtabe1'; EXECUTE 'drop table __nmtabe2'; execute 'drop materialized view if exists "'||esch||'"."'||vw_salida||'"'; EXECUTE 'create materialized view "'||esch||'"."'||vw_salida||'" as select '|| contenido_campos ||',ST_Transform(st_setsrid(a.'||geome1||','||srid1_a_cortar||'),4326)::geometry(Geometry, 4326) as geom from (SELECT * from "'|| esch ||'"."'|| tabla_entrada_geom ||'") a, (select * from "'|| esch ||'"."'|| tabla_entrada_campos ||'" '|| contenido_where ||') b where st_intersects (ST_Transform(st_setsrid(a.'||geome1||','||srid1_a_cortar||'),4326),ST_Transform(st_setsrid(b.'||geome2||','||srid2_a_campos||'),4326)) group by a.geom;'; end; B8  Hnp&`T  ?`post_http_text` 4BzDfvuC1iitcurl,containar DECLARE pa record; am text; BEGIN select content FROM http_post (url,contain,'application/x-www-form-urlencoded') into am; execute 'create table borrar_geo as select column_name from (select json_object_keys(properties) as column_name from (select gid,geom,properties from (WITH data AS (select '''||am||'''::json AS fc) SELECT row_number() OVER () AS gid, ST_GeomFromGeoJSON(feat->>''geometry'') AS geom, feat->''properties'' AS properties FROM ( SELECT json_array_elements(fc->''features'') AS feat FROM data ) AS f)a)a)a group by column_name'; FOR pa IN SELECT column_name FROM borrar_geo LOOP ar:= 'properties ->> '''||pa.column_name||''' as '||pa.column_name||','; RETURN NEXT; END LOOP; execute 'drop table if exists borrar_geo'; raise notice 'Value: % %', pa,contain; END; T  '`owm_vw` 4Bfvuc eschvw(ciudadZ DECLARE begin execute 'drop view if exists "'||esch ||'". vw! '; 8cr0eate:0 as select ''table { border: 3px solid #1FBAEB; -collapse: separate font-family: arial, sans-serif;width:100%;Lspacing: 2px;h1 {text-align: center;}"pdivthR @ <a target=_blank>!xrighyopenweathermap.org/themes /assets/img/logo_white_c@ropped $TEMPERATURADescriPpciodtLio IV IENTO#VelociRspeDedm/sirec20g$A/EIUDAD/$aíountr##LCiu:nam#/#AmanecqFunrisC OAnoch Bset+ \Horha aYQi''Iinfo ,st_a[rid(ST_MakePoint(lon::float,lat ),4326)?geom from (a.properties -> ''coord@'' ->lon AS lo$n,0at0at, repl0ace( B::9,''['','''')]pjsonlt^nizAS id,jLmai  nMX u|MicuUcm!'base''\-, /!:7qz 2;8?p*t:ax :ax:u::u:visixbil2sw|in8bp 4deg&g, 1r 1h0"1h8", AKF''q5all#dt dt)y\typyp /d , split_part( to_Qstamp(:Zd2integer7 '',2),''+'',1#R0, |3set{set, yzonJQ/Q)& +-co Wcod,current+].s) u*(contentS;&u ,"_ge@t (''/api.3data /2.5/?units=metric&q=U"||'&lang=en&appid=b7186bcc4eb7869e0fd3f2565e54a458'') )a)a' ; end; T '`owm_centroid_masciudades_vw` 4Bfvu eschvwlatlon0num_city3` T  ?`get_owm_vw` 4BzDfvuK3iiits eschvw(ciudadteL DECLARE te text; begin select STRING_AGG(ar,' ') from (select funciones.get_owm_text (ciudad) as ar) a into te; execute 'drop view if exists "'||esch||'"."'||vw||'"'; execute 'create view "'||esch||'"."'||vw||'" as select '||te||' current_time as time from (select (content::json) as properties from http_get (''https://api.openweathermap.org/data/2.5/weather?units=metric&q='||ciudad||'&lang=en&appid=b7186bcc4eb7869e0fd3f2565e54a458'') )a' ; end; T  ?`get_owm_mv` 4BzDfvuK3iiits eschvw(ciudadte DECLARE te text; begin select STRING_AGG(ar,' ') from (select funciones.get_owm_text (ciudad) as ar) a into te; execute 'drop materialized view if exists "'||esch||'"."'||vw||'"'; execute 'create materialized view "'||esch||'"."'||vw||'" as select '||te||' current_time as time from (select (content::json) as properties from http_get (''https://api.openweathermap.org/data/2.5/weather?units=metric&q='||ciudad||'&lang=en&appid=b7186bcc4eb7869e0fd3f2565e54a458'') )a' ; end; T  ?`get_owm_text` 4BzDfvup;/itS(ciudadarl DECLARE pa record; --am text; BEGIN --select content FROM http_get --(contain) into am; execute 'create table borrar_geo_owm as select json_object_keys(content::json) as column_name from http_get (''https://api.openweathermap.org/data/2.5/weather?units=metric&q='||ciudad||'&lang=en&appid=b7186bcc4eb7869e0fd3f2565e54a458'') '; FOR pa IN SELECT column_name FROM borrar_geo_owm LOOP ar:= 'properties ->> '''||pa.column_name||''' as '||pa.column_name||','; RETURN NEXT; END LOOP; execute 'drop table if exists borrar_geo_owm'; raise notice 'Value: % %', pa,ciudad; END; T  ?`get_http_mv` 4BzDfvuK3iiits eschvw,containte DECLARE te text; am text; begin select STRING_AGG(ar,' ') from (select funciones.get_http_text (contain) as ar) a into te; select content FROM http_get (contain) into am; execute 'drop materialized view if exists "'||esch||'"."'||vw||'"'; execute 'create materialized view "'||esch||'"."'||vw||'" as select '||te||' geom from (select gid,geom,properties from (WITH data AS (select (select content FROM http_get ('''||contain||'''))::json AS fc) SELECT row_number() OVER () AS gid, ST_GeomFromGeoJSON(feat->>''geometry'') AS geom, feat->''properties'' AS properties FROM ( SELECT json_array_elements(fc->''features'') AS feat FROM data ) AS f)a)a' ; end; T  ?`get_http_vw` 4BzDfvuK3iiits eschvw,containte< DECLARE te text; am text; begin select STRING_AGG(ar,' ') from (select funciones.get_http_text (contain) as ar) a into te; select content FROM http_get (contain) into am; execute 'drop view if exists "'||esch||'"."'||vw||'"'; execute 'create view "'||esch||'"."'||vw||'" as select '||te||' geom from (select gid,geom,properties from (WITH data AS (select (select content FROM http_get ('''||contain||'''))::json AS fc) SELECT row_number() OVER () AS gid, ST_GeomFromGeoJSON(feat->>''geometry'') AS geom, feat->''properties'' AS properties FROM ( SELECT json_array_elements(fc->''features'') AS feat FROM data ) AS f)a)a' ; end; xhC0X  ЛT@8 @PXT  '`delaunytriangles_tbl` 4Bfvu esch<tbl_entrada8tbl_salida8tolerancia inti declare geome1 text; srid1 text; BEGIN EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create table "'||esch||'"."'||tbl_salida||'" as select row_number() OVER () AS id'|| tbl_salida ||',st_transform(st_setsrid(geom, '||srid1||'),4326)::geometry(Geometry, 4326) as geom from ( select (st_dump(ST_DelaunayTriangles(ST_Collect("'||geome1||'"),'||tolerancia||','||inti||' ))).geom as geom from "'||esch||'"."'||tbl_entrada||'")a;'; END; T  '`delaunytriangles_vw` 4Bfvu esch<tbl_entrada8tbl_salida8tolerancia inti declare geome1 text; srid1 text; BEGIN EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create view "'||esch||'"."'||tbl_salida||'" as select row_number() OVER () AS id'|| tbl_salida ||',st_transform(st_setsrid(geom, '||srid1||'),4326)::geometry(Geometry, 4326) as geom from ( select (st_dump(ST_DelaunayTriangles(ST_Collect("'||geome1||'"),'||tolerancia||','||inti||' ))).geom as geom from "'||esch||'"."'||tbl_entrada||'")a;'; END; T  '`delaunytriangles_mv` 4Bfvu esch<tbl_entrada8tbl_salida8tolerancia inti declare geome1 text; srid1 text; BEGIN EXECUTE 'create table __cespaci1 as select * from "'|| esch ||'"."'|| tbl_entrada ||'"'; SELECT f_geometry_column into geome1 FROM geometry_columns WHERE f_table_name = '__cespaci1'; EXECUTE 'drop table __cespaci1'; EXECUTE 'select ST_SRID("'||geome1||'") from "'|| esch ||'"."'|| tbl_entrada ||'" group by ST_SRID;' into srid1; EXECUTE 'create materialized view "'||esch||'"."'||tbl_salida||'" as select row_number() OVER () AS id'|| tbl_salida ||',st_transform(st_setsrid(geom, '||srid1||'),4326)::geometry(Geometry, 4326) as geom from ( select (st_dump(ST_DelaunayTriangles(ST_Collect("'||geome1||'"),'||tolerancia||','||inti||' ))).geom as geom from "'||esch||'"."'||tbl_entrada||'")a;'; END; T  '`ia_limpieza` 4Bfvu esch4vw_salidaDtabla_entrada0area_minpk2g DECLARE geome1 character varying; begin EXECUTE 'create table __nmtab1 as select * from "'|| esch `||'".4a_entrada'; SELE CT f_try_column@ into FROM !s WHERE f__name = 'e1';drop  !if exists areas_grandes; _6 +(6 pk4Qid,ROUND(st_C (!||'::Geography)::numeric,3),entity_index,scpore, :)a where g > ''1!_minD''CREATE INDEX "  n" ON : USING GIST ( 4) ppequ>e4*st_coidW a,1<= o%'_Did"_idK a.id,b.T+a, bjontains l(a]da+`iNdcf>nof#nofa54idz Ya left join b onintersecta)6id is nu$ll#nono?A/&:?F8touche=?$p?tia_finF1j0 as_id Qunion[n 5id_, N alle=;!V)a group by , 9?)2ia_agujerou  /9"E(ST_DumpRings(Kdump)D35_1 )a )a 3sround <F  :?u92?u2?u>%?3?3,2?32t-?8st_makeval/?F2?F3?F3?FD2?Fe?E3?E ?F s~6g%(* t&a,5yhuecos3$=JOn I O%O4?G O/!K/y/:siW/ :8DFˌE?H a z b r8x kCoB fLg@kB_%vw_s1aO:xia.*a b,-wa_entrab%a!pk. =b.|Calter(columnf ,e1.T(r enameto? o N?'x?&---borramosWs 2medias# 819&@3'?aus_grpande{>%no?+,?-~"sB!4 BE2D end; T  ?`text_geo` 4BzDfvup;/itS,containar DECLARE pa record; am text; BEGIN select content FROM http_get (contain) into am; execute 'create table borrar_geo as select json_object_keys(properties) as column_name from (select gid,geom,properties from (WITH data AS (select '''||am||'''::json AS fc) SELECT row_number() OVER () AS gid, ST_GeomFromGeoJSON(feat->>''geometry'') AS geom, feat->''properties'' AS properties FROM ( SELECT json_array_elements(fc->''features'') AS feat FROM data ) AS f)a)a'; FOR pa IN SELECT column_name FROM borrar_geo LOOP ar:= 'properties ->> '''||pa.column_name||''' as '||pa.column_name||','; RETURN NEXT; END LOOP; execute 'drop table if exists borrar_geo'; raise notice 'Value: % %', pa,contain; END; T  ?`post_http_vw` 4BzDfvuS5iiiit eschvwurl,containte DECLARE te text; am text; begin select STRING_AGG(ar,' ') from (select funciones.post_http_text (url,contain) as ar) a into te; select content FROM http_post (url,contain,'application/x-www-form-urlencoded') into am; execute 'drop view if exists "'||esch||'"."'||vw||'"'; execute 'create view "'||esch||'"."'||vw||'" as select '||te||' geom from (select gid,geom,properties from (WITH data AS (select (select content FROM http_post ('''||url||''','''||contain||''',''application/x-www-form-urlencoded''))::json AS fc) SELECT row_number() OVER () AS gid, ST_GeomFromGeoJSON(feat->>''geometry'') AS geom, feat->''properties'' AS properties FROM ( SELECT json_array_elements(fc->''features'') AS feat FROM data ) AS f)a)a' ; end; زC4H  XL 8 0HDT  '`tipo_json_pg` 4BfiupC0tipojsonX DECLARE sTipoPg text; BEGIN CASE tipojson WHEN 'DateTime' THEN sTipoPg:='timestamp'; WHEN 'Float' THEN sTipoPg:='double precision'; WHEN 'Integer' THEN sTipoPg:='integer'; WHEN 'Number' THEN sTipoPg:='numeric'; WHEN 'Text' THEN sTipoPg:='text'; WHEN 'String' THEN sTipoPg:='text'; WHEN 'geo:json' THEN sTipoPg:='json'; WHEN 'boolean' THEN sTipoPg:='boolean'; ELSE sTipoPg:=''; END CASE; RETURN sTipoPg; END; T  `apagar_clientes_geoserver` 4Bfvu`p BEGIN -- función por terminar cuando se cree el servicio de reinicio de geoserver en python solo habría que elegir el get y post y mandar la url SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid() AND application_name = 'PostgreSQL JDBC Driver'; select http_get ('url'); select content FROM http_post (url,contain,'application/x-www-form-urlencoded'); END; T '`h3_agrupacion` 4Bfvuschtbl8tbl_salida,h3_zoomB>` T  `log_ddl` 4Bfvu` DECLARE audit_query@ TEXT;r RECORD; ow recordtabla textconteo_nuevo bigin antigu nombre?8_  BEGIN /* función que tiene como bas e unasemilla ycopia8s5unican entre sí para saber&uced e en Q y poder replicarlo a las demás,]miendan@ hacer!variacion esU en momentos `donde#d edano sufra cambios*/ lanzarU 2e 2de catalogo_usuarios CREATE EVENT TRIGGER log_ddl_in@fo ON  command_end EXECUTE PROCEDURE.<(); r := pg_event_trigger^Rs(); select SPLIT_PART(r.object_identity,'.',2) into0!9count (*) a s num$tfrom (SELECT a.attname$column_ FROMattribute a JOINclass t onArelid = t.oid 'Ispace s+ t.rel= s/ WHEREum > 0 @AND NOisdroppedE = 'layerserv!"'' (s.nsp( OR@DER BYp)a=9|CD5F2G.&A IF tg_tagEALTER TABLE' and[>] "C Q{THEN Bcat('"',Pnew_,' ',1a_type4eva$gT\Ta.7o4ldYb ub.nQ ( &[5&Aermation_schem"sOwheQable2e)a right join t')b3R= bL)aj ill groupp by" exec1'alXteref.+ ad!i'||#||';'; FORrINC,B-A5 $x7s2^Bt <> 'pu0blic g_ t ' "tige6r'KopologyN6BLOOPugBG "'||rowH||'". f eNDv IFO $ and:Ait n0ull ?b;E-- siguienHtesSs  for i in 2..100 loop_oxZ5'||i||'_ ;_?\ _ѠOp)+P/;}&T4Z5 5!ull)a?$O= 0 u 5?o}?sx ZenNdbr Zr s3erdida/G1fgmakexUz7 3-'} []K:sali/$0 = 'row_number() OVER () AS|Bump~R"Wo ] allG"a f u/)/F`69U1; D$  .ؓ ؑT '`__wrapper_fiware` 4BfvuP0 esch4vw_salidaDversion_token4url_token(url_cbHapplication_idXapplication_secret<fiware_userLfiware_password,service8subservice<entity_name@georref_type@georref_attr@materializedE` T  '`fiware_json` 4Bfvu r  Dversion_token4url_token(url_cbHapplication_idXapplication_secret<fiware_userLfiware_password,service8subservice<entity_name DECLARE sParamType text; access_token text; sContentType text =''; sSql text; jJson text; BEGIN access_token:= funciones.fiware_token ( version_token, url_token, application_id, application_secret, fiware_user, fiware_password, service, subservice ); sParamType:='?type='||entity_name; --sSql:= 'SELECT json_array_elements(content::json) as content sSql:= 'SELECT content as content FROM http ( ( ''GET'', '''||url_cb||sParamType||''', ARRAY [ http_header(''Fiware-Service'','''||service||'''), http_header(''Fiware-ServicePath'','''||subservice||'''), http_header(''X-Auth-Token'','''||access_token||''')' ||sContentType||' ], NULL, NULL )::http_request )'; EXECUTE sSql INTO jJson; RETURN jJson; END; T  '`fiware_token` 4BfvuDversion_token4url_tokenHapplication_idXapplication_secret<fiware_userLfiware_password,service8subservice DECLARE application text; urlTokenIp varcharencoded_auth_t sHe`aders9 ContentTypeDataj3jsonb@Result[]accessCsSql BEGIN /* PASO 1. Obtención del >''I',FROM)v (  ''!''I,N||*1 :EB %.)::"request)aELSE"|-'NULL*'{"A": {q"id@entity "methodsH": % ""]B "  "domain  "!$": "'b!e||'c }K ++R"%) \} j`"scoph project   )ub,a }9WITHDCcs as (4;(un nest(")).*"70=294?6?8?: ?<?> ?@ @value  -WHERE field=''XP-Sub-n''3u! gemvp7PER FORM set_curlopt('CURLOPT_SSL_VERIFYbS,q<Xrj`I"c END;