From 5c8f20124f3867d68dee38aa51ebf04d6ee85760 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 3 Jul 2016 01:33:47 +0200 Subject: [PATCH] [OGR] Fix wrong mapping of field indexes when SQL layer is composed, e.g. with a WMS request on a Spatialite DB. --- mapogr.cpp | 2 + msautotest/wxs/expected/wms_ogr_native.png | Bin 0 -> 2697 bytes msautotest/wxs/wms_ogr_native_sql.map | 64 +++++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 msautotest/wxs/expected/wms_ogr_native.png create mode 100644 msautotest/wxs/wms_ogr_native_sql.map diff --git a/mapogr.cpp b/mapogr.cpp index 542afde9ba..3addf0dd17 100644 --- a/mapogr.cpp +++ b/mapogr.cpp @@ -1809,6 +1809,8 @@ static int msOGRFileWhichShapes(layerObj *layer, rectObj rect, msOGRFileInfo *ps } msFree(select); + // Update itemindexes / layer->iteminfo + msOGRLayerInitItemInfo(layer); } else { diff --git a/msautotest/wxs/expected/wms_ogr_native.png b/msautotest/wxs/expected/wms_ogr_native.png new file mode 100644 index 0000000000000000000000000000000000000000..131905c697ded51e44f5b673b7fd5e38e54949a9 GIT binary patch literal 2697 zcmbW3_dna)AIDSGTS98@Q9DM|E@HLBuDwzJXFVS0an9rYexKL#b<(UYjUixuFbD*Kn3^DLfzkUh0Cwb$JpON7l|>xLKrgo^qf2)`ofP+3yOa(?^m78MqfEYP&F5K-+nLa)iY)0W>G?F_j??$CJh+;_XSM=Tdo(c8-2KOygNT*=jL|475V$@ zI3w1~&CSi!)O2a2bwv^$f38iSqoa%Yz9++;#x3uR(9@0BTOgKTWNqy1IDV_j$S|%u zVUd#`^8yvpZaqWt@$qSDYU=9hx*%PmqoO)GJ15E4^_~_L6^)c?HZ%2+{MM*2clT9C zPtO!Te}AZigte82M@3=b{BwxF->fh_Jw56{xrd~bl;6XLm-sYca&jt)igh>~)frD+ z?j-A+bHE<;&NetrlLs<*%5|Uc8_g$TaJcj1U8k63S!~d1k7!FR29rY`8M$L;XNOhZ zTLt1%aPM)EHH>gf+t}O;4GrB6Zos2ZsI%i;r#ffGV`F2l)q`qMAP~sxDCu*50k*L*pz23k10weOo~UD3SPL4B&dRdf|J?0a3J*^| zCC2@jsxr>r+uL&--*;BZaF$-a7@f@EQAj1$*UReao?F>$Z%@}suMOlbuB{DZ3^v-> z*sK!cq2(lv&@Ur>NmqfzxDM0S33VlQ{Ue0hE-xz!zIN>z7z`Ak7*DLWX0K7lVzGis zsAK}+pvh-=WOS4X4DQdZ4<9K~nwy(5FMt7s5x-N}>^tuF;DLwfH9-wl_p~G6?7CBY z)ym3>=Wc^y|8D2@uK_>)`gi_Q3G4Fivk2$qa-%{XMDT`B3EZ{LGBCo>{uZ>ziypsVg5! zN=i^eZH8u*Kf`ESlb)WQ-iitA&?VO^y@Nf6fQy<24rvNHtJ)THbPX14XN2+$7M zVBkwKOjfF!pNRE3nGF3p_GWi~pXG9}-_}HBZ!%fb;Q23^@|O4X39rh_Sy+LjAQdne zOx+-fO#ZjMsR_);DC(vA5(ak?vp zgoMN#?-;`Ew6wHZioJVrt{*;TUso9HPkyC{x3+pKf^TW*r{mL#fYEg#b0u9}U5{xr z)+A;KWVPps`CsB6#Z@eem9NasrEx%0kNzd6AT8>K6BwT^wp_%M=<(XyR-EQI8P|M< z+evUG^4c2e#YUU|X)IJqN^G&Fw$}XBTH*@6cl_4z%;8n<`}av!{#V3i90>#hpr8%7 zO|%3Q>O~e47}VfH=p>t*6%JA;whj)45oJnVf4%r8`#L!-Kl5{z3qvn|?N_n8;zCyC zxk$+KWTOK>@W2sXkyWfly`Q6Vc9Aw{Jfakb`smfnAoM=HXd1T}?Ca7%{I=Lil+fRX&SKh=(F;V6zQl*q zHIo9We|Fz8aov~dMgZAo8y+e;J&g)v5)FhDWM^l;d-rg7nD_=fr;sIOQ4;p+G&pzO z`bRXl%C!3C`=hpwjy>VK+y_;M z`XXdHK}8P`bBMy**b}OBc8XeqimyTa^0Etc=hgw2uy7W*r==wy-rU?gt)XAe;=8!N z_B79uX*VdfZ%uR(faUheG@!|f3X%Bu3kt>TU2vTRiA0)+X#2se^%8Oa{{4*|_C=@u zPR-CS6?yu}2EP45U%z~LJ{Y+@g^4KfO?jCr;fyrS7B(z4@5145fNpA&Cay0mEL3Pv zckp#SzP`r$3NAfypB5I178a_xxw%aQrKF@>g}4La@sC-FshJpr!rt@b)zrd`|H+i*Bsv8%fq zpx2Rvva0H%A2a%eQ}OpKXqosgqpyw2>lh&r$#!OKZS6BPb4yE00Q@@y$_+_2_~F6= z63NEK#;|jId|Y=ni4@X}L;6WCJr^@JHnxQ)sHj2;%FE64<~&1$QPR7sYa;h~`%r#R5?($c+;4_h(;cIi0W zy*tz`N{<8*^!TQ#YD>%kc#U@=dd1ki`bBy=2_>3BbBC?5-VOi+iW>S*y [RESULT_DEMIME] + +MAP + +NAME WMS_OGR_NATIVE_SQL_TEST +STATUS ON +SIZE 400 300 +EXTENT 6 30 21 50 +UNITS METERS +IMAGECOLOR 255 255 255 + +# +# Start of web interface definition +# + +WEB + + IMAGEPATH "tmp/" + IMAGEURL "/ms_tmp/" + + METADATA + "wms_title" "Test simple wms" + "wms_onlineresource" "http://localhost/path/to/wms_simple?" + "wms_srs" "EPSG:32632" + "wms_enable_request" "*" + END +END + +PROJECTION + "+proj=latlong +datum=WGS84" +END + +# +# Start of layer definitions +# + +LAYER + NAME towns + DATA towns + CONNECTIONTYPE OGR + CONNECTION "./data/db.sqlite" + PROCESSING "NATIVE_SQL=YES" + TYPE POINT + STATUS ON + PROJECTION + "init=epsg:32632" + END + CLASS + TEXT '[peoples]' + LABEL + END + END + + TEMPLATE "foo" +END # Layer + +END # Map File