| 1 | = GDAL/OGR 2.0.3 Release Notes = |
| 2 | |
| 3 | The 2.0.3 release is a bug fix release. |
| 4 | |
| 5 | == Build == |
| 6 | * Windows: update mrsid driver build to find MrSID 9.5 dll |
| 7 | * Unix: add support for ODBC autodetection with mingw64 (#6000) |
| 8 | * Unix: When using external libjson, explictly link GDAL utilities (particularly gdalinfo that directly uses libjson) against it (#6440) |
| 9 | * Compilation fix for gdalserver.c on OpenBSD (#6376) |
| 10 | |
| 11 | == Port == |
| 12 | * Export VSICreateCachedFile() as CPL_DLL so as to enable building JP2KAK as a plugin (https://github.com/OSGeo/gdal/pull/126) |
| 13 | * /vsizip/: use CP437 on Windows when ICONV support is available (#6410) |
| 14 | * Fix CPLsscanf() to be conformant regarding how space/tab/... separators are handled, so as to fix OGR GMT to be able to read coordinates separated by tabulations (#6453) |
| 15 | |
| 16 | == GDAL algorithms == |
| 17 | * GDALWarpOperation::CreateKernelMask(): fix potential 32 bit integer overflow when using warp memory value > 2GB (#6448) |
| 18 | * thinplatespline.cpp: avoid using optimized version of VizGeorefSpline2DBase_func4() with ICC versions that fail on it (#6350) |
| 19 | |
| 20 | == GDAL Core == |
| 21 | * GDALLoadRPCFile(): load .rpc files from Ikonos products that have extra end-of-line character (#6341) |
| 22 | * Avoid ComputeStatistics(), GetHistogram() and ComputeRasterMinMax() to use only the first column of blocks in approximation mode for a raster whose shape of blocks is a square (#6378) |
| 23 | * Fix GDALOverviewDataset::GetGeoTransform() to work properly with non north-up gt and different x and y rescaling factors (#6398) |
| 24 | * DIMAP/Pleiades metadata reader: take into tiling to properly shift RPC (#6293) |
| 25 | |
| 26 | == Utilities == |
| 27 | * gdal_translate: fix random behaviour when -scale is used without source bounds (#6455) |
| 28 | * gdalbuildvrt: accept nan as value for -srcnodata and -vrtnodata (#6495) |
| 29 | * gdal_calc.py: Add * from gdalnumeric to gdal_calc.py eval namespace again, now in a clean way, to fix 2.0 regression that made for examle 'log10(A)' to no longer work (https://github.com/OSGeo/gdal/pull/121) |
| 30 | * gdal_rasterize: accept NaN as a valid value for -init / -burn (#6467) |
| 31 | * gdal_polygonize.py: explicitly set output layer geometry type to be polygon (#6530) |
| 32 | |
| 33 | == GDAL drivers == |
| 34 | |
| 35 | ECW driver: |
| 36 | * fix reading of ECW in /vsi file systems (with SDK >= 4) (#6482) |
| 37 | * Add configuration option ECW_ALWAYS_UPWARD=TRUE/FALSE to work around issues with "Downward" oriented images (#6516) |
| 38 | |
| 39 | GeoRaster driver: |
| 40 | * Fix compression=deflate read error depending on endianness (#6252) |
| 41 | |
| 42 | GPKG driver: |
| 43 | * write support: fix potential crash in scenarios when block cache is full (#6365) |
| 44 | * write support: fix inversion of row/column in one of the SQL request involved in partial tiles management (#6339) |
| 45 | * write support: fix generation of files with 1-band paletted input dataset (#6450). Also fix -co RESAMPLING=NEAREST that resulted to BILINEAR previously |
| 46 | |
| 47 | GTiff driver: |
| 48 | * fix RasterIO() reported when downsampling a RGBA JPEG compressed TIFF file (#6943) |
| 49 | * Internal libtiff: fix 1.11 regression that prevents from reading one-strip files that have no StripByteCounts tag (#6490) |
| 50 | |
| 51 | JPEGLS driver: |
| 52 | * fix build error (#6430) |
| 53 | |
| 54 | MBTiles driver: |
| 55 | * be robust to invalid 'bounds' at dataset opening (#6458) |
| 56 | |
| 57 | netCDF driver: |
| 58 | * do not crash on NC4 unsigned short attributes (#6337) |
| 59 | |
| 60 | PostgisRaster driver: |
| 61 | * fix potential crash when one tile has a lower number of bands than the max of the table (fixes #6267) |
| 62 | |
| 63 | VICAR driver: |
| 64 | * fix regression regarding end-of-file labels (#6399) |
| 65 | |
| 66 | VRT driver: |
| 67 | * VRTWarpedDataset::SetMetadataItem(): fix crash when calling with name=SrcOvrLevel and value=NULL (#6397) |
| 68 | * Warped VRT: fix deadlock in situation where warped VRT datasets are read in multiple threads and the block cache reaches saturation. Also add a GDAL_ENABLE_READ_WRITE_MUTEX config option that can be set to NO to disable the read/write mutex mechanism in cases where it would deadlock (#6400) |
| 69 | |
| 70 | XYZ driver: |
| 71 | * be more robust to not exactly equal X and Y spacing (#6461) |
| 72 | |
| 73 | == OGR core == |
| 74 | * OGRParseDate(): more strict validation to reject invalide dates (#6452) |
| 75 | * OGR SQL: fix CAST(x AS bigint) to return an evaluated int64 node, and not int32 (#6479) |
| 76 | * OGR SQL: handle 'fid' as Integer64 in where clause, and allow CAST(fid AS bigint) in selected columns (#6484) |
| 77 | * SQLite dialect: fix insertion in geometry_columns of table names that are not in upper-case (#6483) |
| 78 | * Fix assertion in OGRGeometryFactory::GetCurveParmeters() on degnerated CIRCULARSTRING (#6553) |
| 79 | |
| 80 | == OGRSpatialReference == |
| 81 | * importFromESRI(): fix import of multi line MERCATOR SRS (#6523) |
| 82 | |
| 83 | == OGR utilities == |
| 84 | * ogr2ogr: fix -append with a source dataset with a mix of existing and non existing layers in the target datasource (#6345) |
| 85 | |
| 86 | == OGR drivers == |
| 87 | |
| 88 | Driver removed: |
| 89 | * Google Maps Engine (GME) (#6261) |
| 90 | |
| 91 | ElasticSearch driver: |
| 92 | * get /_stats instead of /_status for ElasticSearch 2.0 compatibility (#6346) |
| 93 | |
| 94 | GeoJSON driver: |
| 95 | * do not 'promote' a null field to OFTString type if it had another type before (#6351) |
| 96 | * ESRI Json reader: do not set field width of 2147483647 (#6529) |
| 97 | * Writer: export POINT EMPTY as having a null geometry, instead as of being POINT(0 0) (#6349) |
| 98 | |
| 99 | GPKG driver: |
| 100 | * correct scope of gpkg_geom_XXXXX extensions to be read-write; avoid trying to insert a gpkg_geom_XXXX extension if already done (#6402) |
| 101 | |
| 102 | JML driver: |
| 103 | * remove arbitrary limitation preventing from reading geometries with <gml:coordinates> larger than 10 MB (#6338) |
| 104 | |
| 105 | KML driver: |
| 106 | * fix crash on KML files without content but with nested folders (#6486) |
| 107 | * put structures of kmlutility.h inside OGRKML namespace to avoid linking conflict with Poppler on Windows that has a Attribute structure too (#6354) |
| 108 | |
| 109 | LIBKML driver: |
| 110 | * fix crash when reading <gx:TimeStamp> or <gx:TimeSpan> elements (#6518) |
| 111 | |
| 112 | MITAB driver: |
| 113 | * limit (width, precision) of numeric fields on creation to (20,16) for compatibility with MapInfo (#6392) |
| 114 | |
| 115 | ODBC driver: |
| 116 | * CPLODBCStatement::GetColumns(): support up to 1024 columns (#6394) |
| 117 | |
| 118 | OpenFileGDB driver: |
| 119 | * transcode UTF-16 strings found in column names, alias, etc... to UTF-8 (instead of using only their ASCII byte) (#6544) |
| 120 | * add support for reading SHPT_GENERALPOINT (#6478) |
| 121 | |
| 122 | OSM driver: |
| 123 | * do not override 'our' osm_id (the node, way or relation id) with a tag named 'osm_id' (#6347) |
| 124 | * properly deal with polygons in other_relations geometrycollection (#6475) |
| 125 | |
| 126 | PG driver: |
| 127 | * fix append of several layers in PG_USE_COPY mode and within transaction (ogr2ogr -append use case) (#6411) |
| 128 | * fix insertion of binary/bytea content in non-copy mode (#6566) |
| 129 | |
| 130 | PG/PGDump drivers: |
| 131 | * in copy mode (the default on layer creation), do not truncate the concatenated string list to the field width (#6356) |
| 132 | * make such that GEOMETRY_NAME layer creation option is honoured in ogr2ogr when the source geometry field has a not-null constraint (#6366) |
| 133 | |
| 134 | SQLite driver: |
| 135 | * fix crash on Unix systems with SQLite >= 3.10.0 when xCurrentTimeInt function is called (#6360) |
| 136 | |
| 137 | VFK driver: |
| 138 | * recreate DB automatically when it's outdated (#6511) |
| 139 | |
| 140 | VRT driver: |
| 141 | * implement CloseDependantDataset() so that exiting with proper closing of datasource doesn't crash (#6408) |
| 142 | * add the mapping of wkbMultiCurve that was missing due to a copy&paste error (related to #6469) |
| 143 | * do not enable passthrough filtering if redefining <FID> (#6480) |
| 144 | |
| 145 | WFS driver: |
| 146 | * invalidate underlying layer when SetIgnoredFields() is called (QGIS #15112) |
| 147 | |
| 148 | XLSX driver: |
| 149 | * fix reading sheets with more than > 26 columns and 'holes' (#6363) |
| 150 | |
| 151 | == Java bindings == |
| 152 | * fix typemap for input parameter of type GIntBig (fixes GetFeature(long), DeleteFeature(long), etc...) (#6464) |
| 153 | |
| 154 | == Python bindings == |
| 155 | * Disable the warning about using deprecated wkb25DBit constant as it uses a trick that prevents the bindings from being used by py2exe / pyinstaller (#6364) |