Gdal

Latest version: v3.10.2

Safety actively analyzes 714815 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 7

3.7.1

Not secure
Core

* OGRGeometryFactory::createGeometry(): take into account Z/M flags
* SQL SQLite: fix error on field of type String with GetWidth() > 0 and a
field domain

Vector drivers

CSV driver:
* do not allow CREATE_CSVT=YES with /vsistdout/ (7699), and make it possible
to use GEOMETRY_NAME with /vsistdout/ (7700)

DGN driver:
* CreateFeature(): fix crash on empty geometries (ossfuzz 56771)

DXF driver:
* show constant ATTDEFs as text

FileGDB driver:
* OGRCreateFromShapeBin(): accept empty polygon (7986)

GeoJSON driver:
* Internal libjson: use locale insensitive CPLStrtod() to parse floating point
numbers (qgis/qgis52731)

GeoPackage driver:
* ArrowArray interface: make it tolerant to Spatialite geometries
* fix handling of geometry column from a view, when it is the result of
computing, and not just simple selection from a table
* define a 'gdal_spatialite_computed_geom_column' extension when a view has
its geometry column being the result of Spatialite SQL function
* implement GeoPackage 1.4 RTree triggers, and add a VERSION=1.4 dsco (7823)

GML driver:
* fix 3.7.0 regression when reading files with several layers, whose features
have gml:boundedBy elements and the geometry element name is different
between the different layers (7925)
* add a USE_BBOX=YES open option to allow using gml:boundedBy as feature
geometry (7947) to revert back to < 3.7.0 behavior by default

GTFS driver:
* Fix date parsing

MITAB driver:
* fix reading CRS with LCC_2SP and non-metre unit (7715)

MSSQL driver:
* fix crash in ogr2ogr when BCP is enabled (7787)
* fix GEOGRAPHY clockwise vertex order (1128)
* fix cannot write binary field in BCP mode (3040)

MVT driver:
* writing: improve dealing with polygon inner rings (7890)
* writing: fix wrong winding order for polygons after MakeValid()

MySQL driver:
* add support for inserting new SRS in MySQL >= 8
INFORMATION_SCHEMA.ST_SPATIAL_REFERENCE_SYSTEMS table (7781)

netCDF driver:
* fix crash on invalid layer (ossfuzz 58469)

OpenFileGDB driver:
* allows to modify a record with a GlobalID field without regenerating it
* correctly read POINT EMPTY (7986)

Parquet driver:
* fix crash when calling SetIgnoredFields() after SetAttributeFilter()
(qgis/QGIS53301)
* do not hang on empty RecordBatch (8042)

SDTS driver:
* fix reading of polygon geometries (7680)

Shapefile driver:
* in creation, uses w+b file opening mode instead of wb followed by r+b, to
support network file systems having sequential write only and when using
CPL_VSIL_USE_TEMP_FILE_FOR_RANDOM_WRITE=YES (7801)
* SHPRestoreSHX: update SHX content length even if error occurred
* Internal Shapelib: update list of symbols to rename to avoid conflicts with
external shapelib (microsoft/vcpkg32070)

TileDB driver:
* add TILE_Z_EXTENT layer creation option (7683)
* fully apply spatial filter when using ArrowArray interface
* FillPrimitiveListArray(): fix data corruption with spatial filter

Python bindings

* take into account Int64/UInt64 in gdal.Array.Write(array(...))
* do not pass deprecated -py3 SWIG switch for SWIG >= 4.1
* GetArrowStreamAsNumPy(): fix wrong retrieval of content when
ArrowArray::offset != 0 on a field of primitive type (integer, float)
* works around issue with SWIG 4.1 related to module unloading (4907)

GDAL/OGR 3.7.0 Releases Notes

GDAL/OGR 3.7.0 is a feature release.
Those notes include changes since GDAL 3.6.0, but not already included in a
GDAL 3.6.x bugfix release.

In a nutshell...

* [RFC 87](https://gdal.org/development/rfc/rfc87_signed_int8.html): Add
GDT_Int8 support
* [RFC 88](https://gdal.org/development/rfc/rfc88_googletest.html): switch
to GoogleTest framework for C++ tests (3525)
* [RFC 89](https://gdal.org/development/rfc/rfc89_sql_logging_callback.html):
SQL query logging callback (6967)
* [RFC 90](https://gdal.org/development/rfc/rfc90_read_compressed_data.html):
Direct access to compressed raster data
* [RFC 91](https://gdal.org/development/rfc/rfc91_dataset_close.html):
GDALDataset::Close() method
* [RFC 93](https://gdal.org/development/rfc/rfc93_update_feature.html):
OGRLayer::UpdateFeature() method
* [RFC 94](https://gdal.org/development/rfc/rfc94_field_precision_width_metadata.html):
Numeric fields width/precision metadata
* ogrinfo: make it accessible through a new GDALVectorInfo() C API call, and
a -json switch
* Add read-only raster driver NOAA_B to read NOAA GEOCON/NADCON5 .b grids
* Add read-only raster driver NSIDCbin for Sea Ice Concentrations (7263)
* Add read-only vector GTFS (General Transit Feed Specification) driver
* TileDB: add read/write vector side
* Add support for [SOZip](https://sozip.org) (Seek Optimized ZIP) with enhanced
/vsizip/ virtual file system and a new sozip utility
* OpenFileGDB: add read-only support for raster datasets (.gdb v10)
* PNG: 1.7-2.0x speed-up in whole image decompression with libdeflate on
Intel/AMD CPUs. Benefits GPKG, MRF drivers
* [RFC 69](https://gdal.org/development/rfc/rfc69_cplusplus_formatting.html):
C++ code reformatting
* Code linting and security fixes
* Remove any traces of Rasdaman driver, now moved to OSGeo/gdal-extra-drivers
repository (4808)

Backward compatibility issues

See [MIGRATION_GUIDE.TXT](https://github.com/OSGeo/gdal/blob/release/3.7/MIGRATION_GUIDE.TXT)

New installed files

* data/gfs.xsd: XML schema for .gfs files (6655)
* data/gml_registry.xsd: new file with XML schema of gml_registry.xml (6716)
* data/ogrinfo_output.schema.json: to validate ogrinfo -json output
* data/gdalinfo_output.schema.json: to validate gdalinfo -json output (fixes 6850)
* data/grib2_table_4_2_0_21.csv
* data/grib2_table_4_2_2_6.csv
* bin/sozip

Build

* make BUILD_JAVA/CSHARP/PYTHON_BINDINGS default value dependent on the
presence of requirements, and error out if those variables are set but
requirements are missing
* Python bindings: remove generated files and require SWIG to be present
* Fix build with -DOGR_ENABLE_DRIVER_GML=OFF (6647)
* make it possible to build on Linux if linux/fs.h is missing by explicitly
setting ACCEPT_MISSING_LINUX_FS_HEADER
* Add support for (future) libjpeg-turbo 2.2 with its 8/12 bit dual mode (6645)
* PDF driver with PDFium support must be built against PDFium from
https://github.com/rouault/pdfium_build_gdal_3_7
* No longer alias VSILFILE* to FILE* in non-DEBUG builds (6790)
* Add build option for using static Arrow/Parquet build (7082)
* Quote variables for INTERFACE_INCLUDE_DIRECTORIES / IMPORTED_LOCATION
* Enable OpenCL at build-time, but disable it at runtime by default unless
the USE_OPENCL warping option or GDAL_USE_OPENCL config option is set (7224)
* Fix MSVC x64 builds with /arch:AVX2 (7625)

New optional dependencies

* libarchive for new /vsi7z/ and /vsirar/ virtual file systems

3.7.0

Not secure
Port

* /vsizip/: add read support for Deflate64 (7013)
* Add read-only /vsi7z/ and /vsirar/ virtual file systems (depends on libarchive)
* Make it possible to specify all HTTP related configuration options as
path-specific options with VSISetPathSpecificOption()
* VSIGSFSHandler::UnlinkBatch(): avoid potential nullptr deref
* /vsiaz/: implement UnlinkBatch()
* /vsis3/: add CPL_VSIS3_CREATE_DIR_OBJECT configuration option
* /vsigs/ allow GDAL_HTTP_HEADERS config option to be used as authentication method if contains at least a line starting with "Authorization:"
* /vsihdfs/: fix ReadDir() and EOF flag (7632)
* add a robust CPLParseKeyValueJson() function (6753)
* HTTP: set default User-Agent header to GDAL/x.y.z and add a
CPLHTTPSetDefaultUserAgent() function (6376)
* HTTP: CUSTOMREQUEST option overrides POST while send form
* /vsicurl/ / CPLHTTPFetch(): add a GDAL_HTTP_NETRC_FILE config option
* /vsicurl/ / CPLHTTPFetch(): add options to support SSL client certificates
* VSICurlHandle::ReadMultiRange(): avoid potential infinite loop
* Add VSIVirtualHandle::AdviseRead() virtual method and implement it in /vsicurl
* Add VSICopyFile()
* CPLCopyFile(): remap onto VSICopyFile()
* Implement CopyFile() for VSIZipFilesystemHandler
* Implement GetFileMetadata() for /vsizip/
* CPLDefaultFindFile: Warn if file not found and GDAL_DATA not defined
* Add VSIDuplicateFileSystemHandler() (for remote stores identifcal to popular
ones, but with different settings).
* Make C type VSILFILE an alias of C++ VSIVirtualHandle (and make it a struct
for that purpose) (6643)
* Add a CPLGetErrorHandler() function
* Add VSIVirtualHandleUniquePtr type, unique pointer of VSIVirtualHandle that
calls the Close() method

Core

* ComputeRasterMinMax(), ComputeStatistics(), GetHistogram(): take into account
mask band (and not only nodata value)
* Modify GDALFlushCache() and GDALDataset::FlushCache() to return CPLErr
instead of void
* Add GDALDataset::Close() virtual method, call it from GDALClose() and make
GDALClose() return a CPLErr
* GDALDataset:: add a SetBand() method that takes a GDALRasterBand unique_ptr
* RawRasterBand: cache GDAL_ONE_BIG_READ value for RasterIO (6726)
* RawRasterBand: add IsValid() and Create() methods that return a unique_ptr
* RawDataset::RasterIO(): add optimization when reading from a BIP dataset to
a BIP buffer (6819)
* RAW: fix performance issue when reading files with very small width (1140)
* Raw drivers: check RawRasterBand validity
* LoadPythonAPI(): take into account Python 3.12
* NASAKeywordHandler: add a Parse() method and change Ingest() return type to be bool
* Add GDALMDArray::GetGridded() / GDALMDArrayGetGridded()
* Add GDALMDArray::Resize() / GDALMDArrayResize(). Implement it in MEM, netCDF
and Zarr drivers
* Support blocks > 2GB in GDALAllValidMaskBand and GDALNoDataValuesMaskBand
* GDALVersionInfo("BUILD_INFO"): report CURL_ENABLED=YES and CURL_VERSION=x.y.z
* Add CPLSubscribeToSetConfigOption() to subscribe to config option settings
* GoogleMapsCompatible tiling scheme: Increase max zoom level from 24 to 30
* JP2 structure dump: fix interpretation of METH field in COLR JP2 box
* Enable SSE2/AVX2 optims on 32bit MSVC builds if /arch:AVX2 is defined (7625)

Algorithms

* Polygonizer: switch implementation to Two-Arm Chains EdgeTracing Algorithm,
which is much faster in some cases (7344)
* Prefix ParseAlgorithmAndOptions() public symbol with GDALGrid for proper
namespacing, and add define alias for API compat (but ABI breakage)
* Pansharpening: require geotransform on panchromatic and multispectral bands.
Remove undocumented and somewhat broken MSShiftX and MSShiftY options
* Warper: fix issue with insufficiently large source window, visible with RPC
DEM warping (7491)

Utilities

* gdalwarp: add -srcband (aliased to -b) and -dstband options
* gdalwarp: preserve source resolution by default when no reprojection is
involved (behavior change), and add '-tr square' to use previous behavior
* gdalwarp: better error message when not providing enough values after a switch
(7086)
* gdal_rasterize: support filename for -sql option (7232)
* gdal_rasterize: add -oo switch for open options (7329)
* gdal_grid: add -oo switch for open options (7329)
* gdal_polygonize.py: use transactions to speed-up writing
* gdal_polygonize.py: add a -lco option, and fix -o (7374)
* gdalbuildvrt: implement numerically stable averaging of resolution (7502)
* gdal2tiles: use logging module instead of print() for verbose output (4894)
* gdal2tiles: update doctype to html format (7631)
* gdal2tiles: uses GDALTermProgress() for progress bar
* gdal_calc: uses GDALTermProgress() for progress bar (7549)
* gdal_fillnodata: fix parsing of -co option
* validate_gpkg.py: make it work better on examples from ngageoint repositories
* gdal_cp.py: use gdal.CopyFile()
* C/C++ command line utilities: take into account GDALClose() error code

Raster drivers

ARG driver:
* add support for int64/uint64

COG driver:
* relax a bit the tolerance when computing tile number
* propagate NUM_THREADS to warping (7479)
* add NBITS creation option (7361)

ERS driver:
* support GDA2020

GeoPackage driver:
* load/save band statistics in GPKG metadata tables or PAM .aux.xml

GRIB driver:
* update tables to wmo-im/GRIB2v30
* g2clib: allow negative longitudes in grid templates Lon/Lat, Rotated,
Stretched, Stretched & Rotated, LAEA (7456) and Mercator
* fix GetNoDataValue() on band > 1 when there's a bitmap section (7649)

GTiff driver:
* add a JXL_ALPHA_DISTANCE creation option, e.g. to have lossless alpha and
lossy RGB.
* call VSIVirtualHandle::AdviseRead() in multithreaded read implementation
* implement GetCompressionFormats() and ReadCompressedData()
* add minimum support for reading CRS from ESRI's .xml side car file (7187)
* use libtiff >= 4.5 reentrant error handlers (when available) (6659)
* make sure that band description in PAM overrides the one coming from
GDAL_METADATA tag
* Internal libtiff: resync with upstream

HFA driver:
* add a DISABLEPESTRING=YES creation option to disable use of ArcGIS PE String
(1003)

HDF5 driver:
* add generic support for HDF-EOS5 grids and swaths (7117)

JP2OpenJPEG driver:
* add workaround for dop10 orthophotos wrong colorspace

JPEG driver:
* add a APPLY_ORIENTATION=YES open option to take into account EXIF_Orientation
* advertise JPEG_QUALITY metadata item in IMAGE_STRUCTURE domain
* use ReadCompressedData(), implement lossless copy from JPEGXL that has
JPEG reconstruction box
* add a LOSSLESS_COPY creation option
* add support for reading lossless 8-bit JPEG if using libjpeg-turbo >= 2.2
* change behavior to return an error and not just a warning with reading a
truncated file
* Internal libjpeg: decompressor: initialize Huffman tables to avoid issues
with some FileGDB raster

JPEGXL driver:
* add a ALPHA_DISTANCE creation option, e.g. to have lossless alpha and
lossy RGB.
* add a APPLY_ORIENTATION=YES open option to take into account EXIF_Orientation
* advertise COMPRESSION_REVERSIBILITY=LOSSY when there is a JPEG reconstruction
box
* add a LOSSLESS_COPY creation option
* implement creation from JPEGXL content
* fix lossless copy of JPEG with zlib compressed mask band
* implement GetCompressionFormats() and ReadCompressedData()

MEM driver:
* implement GetCoordinateVariables() from coordinates attribute
* Adds 'SPATIALREFERENCE' element to the DSN format (7272)

MRF driver:
* make it use PNG driver for decompression of 8-bit images

netCDF driver:
* add a ASSUME_LONGLAT open option (6195)
* add heuristics to detect invalid validity range when scale_factor is
present (7167)
* report geolocation array for NASA L2 ocean colour products (7605)

NITF driver:
* nitf_spec.xml: add definition for subheader of CSATTB, CEEPHB and CSSFAB DES
of GLAS/GFM
* add capability of decoding DES data part as XML fields and add descriptors
for CSATTB, CEEPHB and CSSFAB DES
* add VALIDATE and FAIL_IF_VALIDATION_ERROR open options
* fix bug that prevents adding subsequent TREs after a HEX TRE (6827)

OGCAPI driver:
* define raster/vector scope of open options
* Passed uri to TileMatrixSet::parse
* Updated uris of well-known tile matrix sets

PCIDSK driver:
* support Web Mercator projection (7647)

PDF driver:
* skip JP2ECW driver if ECW_ENCODE_KEY required but not found

PNG driver:
* 1.7-2.0x speed-up in whole image decompression with libdeflate on Intel/AMD CPUs

RMF driver:
* Add scale, name, frame support.
* Add vert CS write support.
* Implement GetSuggestedBlockAccessPattern

VRT driver:
* add 'a_offset', 'a_scale', 'a_srs', 'a_ullr', 'expand', 'exponent', 'gcp',
'if', 'ot', 'outsize', 'ovr', 'scale' options for vrt:// connection string
* add BLOCKXSIZE and BLOCKYSIZE creation options
* Fix excessive RAM usage when reading a VRT made of single-tiled JPEG2000
files read with the JP2OpenJPEG driver
* implement GetCompressionFormats() and ReadCompressedData()
* derived band: add a <SkipNonContributingSources>true optional element
to discard non contributing sources (7223)
* VRTPansharpened: avoid issue when querying overviews when PAN and MS bands
have significant different spatial extent
* serialize NODATA/NoDataValue elements with double precision (7486)
* fix warning regarding with OpenShared with vrt://http://example.com/test.jp2
with the JP2OpenJPEG driver

WEBP driver:
* implement GetCompressionFormats() and ReadCompressedData()

OGR 3.7.0 - Overview of Changes

Core

* Add OGRLayer::UpdateFeature() and OGR_L_UpdateFeature() (RFC 93).
Implement it in Memory, GPKG, MongoDBv3, PG
* OGRFeatureDefn: add GetFields() and GetGeomFields() for easier C++ iteration
* OGRFieldDefn: add GetComment() / SetComment() methods
* OGRFeature/OGRGeometry: add a DumpReadable method that outputs to a string
* Add GDAL_DMD_ILLEGAL_FIELD_NAMES, and feel it for OpenFileGDB, FileGDB,
PostgreSQL
* Add GDAL_DMD_RELATIONSHIP_RELATED_TABLE_TYPES: list of standard related table
types recognized by the driver, and feel it for OpenFileGDB, FileGDB and GPKG
* Add GDAL_DMD_CREATION_FIELD_DEFN_FLAGS metadata
* Add DCAP_FEATURE_STYLES_READ and DCAP_FEATURE_STYLES_WRITE capabilities
* Add ALTER_ALTERNATIVE_NAME_FLAG for use changing a field's alternative name
when calling OGR_L_AlterFieldDefn
* Add ALTER_COMMENT_FLAG for altering field comments via OGR_L_AlterFieldDefn
* Add OGRLayer::GetSupportedSRSList() and SetActiveSRS()
* OGRToOGCGeomType(): add options to control output
* GenSQL: fix SetAttributeFilter() when dialect=OGRSQL and not forwarding the
initial where clause to the source layer (7087)
* OGR SQL: do not emit error message when comparing a NULL datetime
* OGRFeature::SetField(string argument): for bool, recognize 0/false/off/no as
false and 1/true/on/yes as true
* Add OGRFeature::GetFieldAsISO8601DateTime() (7555)
* Geometry WKT import: accept nan as a value, for parity with PostGIS and GEOS
* GDALDataset::CopyLayer(): copy source layer metadata, unless the COPY_MD=NO
option is specified
* Add OGRGeometry::UnaryUnion() / OGR_G_UnaryUnion()
* SQL SQLite parser: correctly take into account statements like
'SELECT ... FROM json_each(...)' (7464)
* Make OGRGeometry::getSpatialReference() return a const OGRSpatialReference*
* Make OGRGeomFieldDefn::GetSpatialRef() return a const OGRSpatialReference*

OGRSpatialReference

* importFromWkt(): take into account COORDINATEMETADATA[] (PROJ >= 9.2)
* update hard-coded definition of OGC:CRS84 to include the ID
* OSR_Panorama: Add some spatial references (GSK 2011, etc.)
* OSR_Panorama: Fix TM zone for projections with negative central meridian
* OSR_Panorama: Fix import from invalid data
* SetFromUserInput(): skip leading white space (7170)
* Make OGRCoordinateTransformation::GetSourceCS() and GetTargetCS() return a
const OGRSpatialReference* (7377)
* OSRImportFromEPSG(): emit warning message about deprecated CRS substitution
(7524)
* Allow CPLSetConfigOption('PROJ_DATA', ...) to work by making it call
OSRSetPROJSearchPaths()

Utilities

* ogrinfo: make it accessible through a new GDALVectorInfo() C API call
* ogrinfo: add a -json switch
* ogrinfo: output CRS supported list
* ogrinfo: output relationships
* ogr2ogr: use SetActiveSRS() when possible when -t_srs is used
* ogr2ogr: make conversion from GML2 to GPKG work without explicit -lco
FID=some_name_different_than_fid
* ogr2ogr: add a -dateTimeTo option to convert datetime between timezones (5256)
* ogr2ogr: Improve performance of -clipsrc and -clipdst (7197)
* ogr2ogr: LoadGeometry(): use UnaryUnion()
* ogrmerge.py: add optimization for GPKG -> GPKG non-single layer case (up to
10x faster)

Vector drivers

Arrow driver:
* add support for getting/setting field alternative name and comment in
gdal:schema extension

CSV driver:
* recognize pipe separator and .psv extension for read (6811)
* fix GetFeatureCount() to work correctly with spatial and attribute filters
* allow reading single column file (7595)

CSW driver:
* Add 'title' as query-able property

FileGDB driver:
* do not set Length/Precision from OGR width/precision for floating-point data
types (7283)
* correct ObjectID field to have a Length of 4.

FlatGeobuf driver:
* decrease memory usage when inserting lots of features
* speed-up writing of DateTime/Date values
* avoid crash when writing huge geometry
* Support reading/writing field comments in field description metadata (7598)

GML driver:
* Use geometry in boundedBy element if there are no geometry properties
* use srsDimension on top gml:Envelope as the default one (6986)
* GML geometry parsing: don't promote to 3D a 2D <gml:Box>
* deal with only <gml:null> in boundedBy element
* fix reading CityGML Lod2 with xlink:href in gml:Solid as found in German
datasets (qgis/QGIS51647)
* add support for getting/setting field comment

GMLAS driver:
* add BoundingShapeType as a known geometry type

GPKG driver:
* Implement relationship creation, deletion and update support
* add direct read and create support for .gpkg.zip files
* SQLite/GPKG: move PRELUDE_STATEMENTS evaluation just after database opening
* add a gdal_get_pixel_value() SQL function.
* add a SetSRID() SQL function
* speed-up writing of DateTime/Date values
* allow opening filenames >= 512 characters
* do not register non-spatial layers on creation if there are already
unregistered non-spatial layers (qgis/qgis51721)
* avoid potential int overflows / crash on huge geometries
* make SQL function ogr_layer_Extent() available (7443)
* Map field alternative name with "name" attribute from gpkg_data_columns table
* Map field comment with "description" attribute from gpkg_data_columns table
* hide implicit relationships from NGA GeoInt and Spatialite system tables
* add ST_EnvIntersects() for faster spatial filtering when there is no
spatial index
* minimum (read) support for non-standard multiple geometry columns per table

GPX driver:
* add capability to read & write content of <metadata> element (7190)

LVBAG driver:
* fix std::find() test

MITAB driver:
* add support for LargeInt (Integer64) data type (7162)

NAS driver:
* make it trigger only if NAS_GFS_TEMPLATE config option is set (7529)

MongoDBv3 driver:
* avoid get_utf8() deprecatation warning with mongocxx 3.7.0

netCDF driver:
* add support for getting/setting alternative name and comment

OAPIF driver:
* Add support for OGC API Features - Part 2 CRS extension (ie ability to work
with non WGS 84 CRS)
* Add CRS/PREFERRED_CRS open options to control the active CRS
* Add a SERVER_FEATURE_AXIS_ORDER open option
* Implement GetSupportedSRSList() and SetActiveSRS()

OCI driver:
* improve round-tripping of EPSG CRS (7551)

OpenFileGDB driver:
* Optimise writing of large geometries
* allow CreateField() with OBJECTID as the column name (51435)
* make Delete() method to remove the directory (7216)
* remove traces of dealing with field precision (7283)
* correct ObjectID field to have a Length of 4.
* take into account SpatialReference.VCSWKID/LatestVCSWKID for compound CRS
* relax test to detect broken .spx

OGR_VRT:
* add support for reading alternative name and comment from VRT XML

OSM driver:
* add a tags_format=json osmconf.ini setting and TAGS_FORMAT=JSON open option,
as an alternative for HSTORE for other_tags/all_tags fields (7533)

Parquet driver:
* add support for getting/setting field alternative name and comment in
gdal:schema extension

PG driver:
* Add WKBFromEWKB() for a slightly faster OGRGeometryFromEWKB()
* fix TEMPORARY layer creation option
* Add SKIP_VIEWS open option to replace PG_SKIP_VIEWS config option
* Remove PG_USE_TEXT config option
* use standard_conforming_strings=ON
* add support for getting/setting/altering field comments (7587)
* truncate table names larger than 63 characters (7628)

PGDump driver:
* fix TEMPORARY layer creation option
* add GEOM_COLUMN_POSITION layer creation option and allow empty FID= (7482)
* fix escaping of schema and table name (7497)
* add support for setting field comments
* truncate table names larger than 63 characters (7628)

Shapefile driver:
* writer: do no use SHPRewindObject() for [Multi]Polygon layers, but use the
input OGRGeometry structure to deduce the winding order (5315)
* writer: prevent potential overflows on 64-bit platforms on huge geometries
* writer: optimize MultiLineString writing

SQLite driver:
* Implement AddRelationship support
* add a gdal_get_pixel_value() SQL function
* allow opening filenames >= 512 characters
* make SQL function ogr_layer_Extent() available (7443)
* Spatialite: remove support for libspatialite < 4.1.2

WFS driver:
* implement GetSupportedSRSList() and SetActiveSRS()

SWIG Language Bindings

All bindings:
* add gdal.VectorInfo()
* fix GDT_TypeCount value (affects C and Java bindings)
* add gdal.GetNumCPUs() and gdal.GetUsablePhysicalRAM()
* add gdal.CopyFile()
* fix syntax error that fail with SWIG 4.1

CSHARP bindings:
* add SkiaSharp (6957)
* Add missing wrappers for BuildVRT and MultiDimTranslate (7517)

Python bindings:
* Emit FutureWarning when exceptions are not explicitly enabled or disabled.
Turning on exceptions by default is planned for GDAL 4.0
* Make UseExceptions() on one of gdal/ogr/osr module affect all of them
* add gdal/ogr/osr.ExceptionMgr() Context Manager for handling Python exception
state (6637)
* add gdal.config_option() and gdal.config_options() context manager
* add gdal.quiet_errors() context manage
* make ogr.Open() and ogr.OpenShared() work with verbose error when exceptions
are enabled
* gdal.VectorTranslate: add missing extra options (6486)
* Adapt various utilities for exceptions enabled: gdal_merge.py,
ogr_layer_algebra.py, ogr_merge, gdalinfo.py, ogr2ogr.py
* __init__.py: more robust handling of PATH (cf rasterio/rasterio2713)
* do not make gdal.PushErrorHandler()/PopErrorHandler() sensitive to the GDAL
error context
* Make GetArrowStreamAsNumPy() handle large lists, strings and binaries
* make Dataset.ExecuteSQL() usable as a context manager to automatically
release the layer (7459)
* GetArrowStreamAsNumPy(): optimization to save memory on string fields with
huge strings compared to the average size

GDAL/OGR 3.6.4 Release Notes

GDAL 3.6.4 is a bugfix release.

3.6.4

Not secure
Core

* OGRSQL: fix 'SELECT ... WHERE ... AND ... AND ... AND ... UNION ALL ...'
(3395)
* OGRUnionLayer::GetExtent(): do not emit error on no-geometry layer
* OGREditableLayer::IUpsertFeature(): fix memleak

OGRSpatialReference

* Fix OGRSpatialReference::SetProjCS() on an existing BoundCRS;
affects GeoTIFF SRS reader (fixes gdal-dev/2023-March/057011.html)

Utilities

* ogr2ogr: fix and automate conversion from list types to String(JSON) when the
output driver doesn't support list types but String(JSON) (7397)

Vector drivers

CSV driver:
* CSVSplitLine(): do not treat in a special way double quotes that appear in
the middle of a field

FlatGeobuf driver:
* improve handling of null geoms (7483)

GeoPackage driver:
* Update definition of gpkg_data_columns to remove unique constraint on "name"

OpenFileGDB driver:
* fix write corruption when re-using freespace slots in some editing scenarios
(7504)
* relax test to detect broken .spx
* CreateField(): in approxOK mode, do not error out if default value of a
DateTime field is CURRENT_TIMESTAMP, just ignore it with a warning (7589)

OSM driver:
* Fix handling of closed_ways_are_polygons setting in osmconf.ini (7488)

S57 driver:
* s57objectclasses.csv: apply S-57 Edition 3.1 Supplement No. 2

SQLite driver:
* GDAL as a SQLite3 loadable extension: avoid crash on Linux

GDAL/OGR 3.6.3 Release Notes

GDAL 3.6.3 is a bugfix release.

Build

* CMake: Fix integration of find_package2()
* CMake: avoid HDF4 CMake error with Windows paths with spaces
* CMake: quote variables for INTERFACE_INCLUDE_DIRECTORIES / IMPORTED_LOCATION
* CMake: fix wrong test when GDAL_SET_INSTALL_RELATIVE_RPATH is set
* CMake: issue an error when the user explicitly asks for a condition-dependent
driver and the condition is not met
* CMake: add include to FindSQLite3.cmake
* fix uclibc build without NPTL
* zlib: Add ZLIB_IS_STATIC build option
* FindCryptoPP.cmake: properly take into account _LIBRARY_RELEASE/_DEBUG (7338)
* FindPoppler.cmake: check that Poppler private headers are available (7352)

3.6.3

Not secure
Core

* OGRSQL: fix crash when comparing integer array fields (6714)
* OGRSQL: fix SetAttributeFilter() when dialect=OGRSQL and not forwarding the
initial where clause to the source layer (7087)

Utilities

* ogr2ogr: fix -clipsrc/-clipdst when clip dataset has SRS != features's
geometry (7126)

Vector drivers

GeoJSON driver:
* avoid duplication of FID in streaming parser (7258)
* declare GDAL_DCAP_MEASURED_GEOMETRIES and ODsCMeasuredGeometries
* fix mixed type field not flagged as JSON if first is a string (7313)
* writer: take into account COORDINATE_PRECISION for top bbox (7319)
* writer: fix json mixed types roundtrip (7368)

GeoJSONSeq driver:
* fix writing to /vsigzip/ (7130)

GeoPackage driver:
* avoid issue with duplicated column names in some cases (6976)
* GetNextArrowArray(): fix retrieving only the geometry (geopandas/pyogrio212)
* restore async RTree building for 1st layer (broken by GDAL 3.6.2)

GML driver:
* fix CurvePolygon export of CompoundCurve and CircularString child elements
(7294)

HANA driver:
* fix DSN open option

MITAB driver:
* handle projection methods 34 (extended transverse mercator) and 35 (Hotine
Oblique Mercator) (7161)
* Fix possible crash on NULL feature text (7341)
* Fix a typo at MITABGetCustomDatum

NAS driver:
* fix file descriptor leak in error code path

OpenFileGDB driver:
* fix performance issue when identifying a CRS
* detect broken .spx file with wrong index depth (qgis/qgis32534)
* index reading: avoid integer overflow on index larger than 2 GB
* allow CreateField() with OBJECTID as the column name (qgis/qgis51435)
* make Delete() method to remove the directory (fixes 7216)

Shapefile driver:
* fix adding features in a .dbf without columns (qgis/qgis51247)
* make sure eAccess = GA_Update is set on creation (7311)

SWIG bindings

* add missing OLCUpsertFeature constant

Python bindings

* fix setup.py dir-list issue on macOS

GDAL/OGR 3.6.2 Release Notes

GDAL 3.6.2 is a bugfix release.

General

[RFC69](https://gdal.org/development/rfc/rfc69_cplusplus_formatting.html):
Whole code base C/C++ reformatting

Build

* Avoid warning with curl >= 7.55 about CURLINFO_CONTENT_LENGTH_DOWNLOAD being
deprecated
* Avoid warning with curl >= 7.87 about CURLOPT_PROGRESSFUNCTION being
deprecated
* fix nitfdump build against external libtiff (6968)
* fix compilation with gcc 4.8.5 of Centos 7.9 (6991)

Data files

* tms_MapML_CBMTILE.json: fix wrong matrixWidth value (6922)

3.6.2

Not secure
Core

* OGRGenSQLResultsLayer::GetFeatureCount(): fix it to return -1 when base layer
also returns -1 (6925)
* OGRXercesInstrumentedMemoryManager::deallocate(): avoid (likely harmless)
unsigned integer overflow in error code path.
* GPKG/SQLite dialect: fix issues when SQL statement provided to ExecuteSQL()
starts with space/tabulation/newline (6976)
* ArrowArray generic: FillBoolArray(): avoid out-of-bounds write access

Utilities

* ogr2ogr: make -nln flag with GeoJSON output even if a name exists in input
GeoJSON (6920)
* ogr2ogr: silent reprojection errors related to IsPolarToWGS84() in
OGRGeometryFactory::transformWithOptions()

Drivers

GML driver:
* fix recognizing WFS GetFeature response with a very long initial XML element
(6940)
* default srsDimension to 3 for CityGML files (6989)
* fix incorrect behavior when using GFS_TEMPLATE open option with a .gfs that
refers to FeatureProperty/FeaturePropertyList fields (6932)

GeoPackage driver:
* fix threaded RTree building when creating several layers (3.6.0 regression),
by disabling async RTree building
* avoid SQLite3 locking in CreateLayer() due to RemoveOGREmptyTable()

NGW driver:
* remove DCAP_ items set to NO (6994)

Parquet driver:
* update to read and write GeoParquet 1.0.0-beta.1 specification (6646)

Selafin driver:
* Fix DCAP_VECTOR metadata

GDAL/OGR 3.6.1 Release Notes

3.6.1

Not secure
Core

* OGRArrowArrayHelper::SetDate(): simplify implementation
* OGRSpatialReference::importFromWkt(): fix compatibility with PROJ master
9.2.0dev for DerivedProjectedCRS
* OGR layer algebra: make sure result layer has no duplicated field names
(6851)

Utilities

* ogr2ogr: densify points of spatial filter specified with -spat_srs to
avoid reprojection artifacts
* ogr2ogr: discard features whose intersection with -clipsrc/-clipdst
result in a lower dimensionality geometry than the target layer geometry
type (6836)
* ogr2ogr: add warning when -t_srs is ignored by drivers that
automatically reproject to WGS 84 (6859)
* ogr2ogr: make sure an error in GDALClose() of the output dataset result
in a non-zero return code (https://github.com/Toblerity/Fiona/issues/1169)

Vector drivers

CSV driver:
* accept comma as decimal separator in X_POSSIBLE_NAMES, Y_POSSIBLE_NAMES
and Z_POSSIBLE_NAMES fields

FileGDB driver:
* avoid crash in the SDK if passing incompatible geometry type (6836)

FlatGeoBuf driver:
* speed-up writing of DateTime/Date values

GPKG driver:
* fix corruption of spatial index on layers with >= 100 000 features,
with the default background RTree building mechanism introduced in
3.6.0 (https://github.com/qgis/QGIS/issues/51188, #6911) when flushing
transactions while adding features (triggered by ogr2ogr). See announcement
at top of release notes of this version.
* avoid nullptr dereference on corrupted databases
* add support for reading tables with generated columns (6638)
* fix bad performance of ST_Transform() by caching the
OGRCoordinateTransformation object
* improve multi-threaded implementation of GetNextArrowArray() on tables
with FID without holes and when no filters are applied (full bulk
loading)
* FixupWrongRTreeTrigger(): make it work with table names that need to be
quoted (https://github.com/georust/gdal/issues/235)
* Fix opening /vsizip//path/to/my.zip/my.gpkg with NOLOCK=YES open option
* speed-up writing of DateTime/Date values, and fix writing DateTime with
milliseconds with a locale where the decimal point is not dot, and when
spatialite is not loaded

MITAB driver:
* add support for 'Philippine Reference System 1992' datum

MSSQLSPATIAL driver:
* Get UID and PWD from configuration options (6818)

OpenFileGDB driver:
* do not use buggy .spx spatial index found in some datasets
(geopandas/geopandas2253)

Parquet driver:
* make sure that ArrowLayer destructor is available (for plugin building)

PCIDSK driver:
* advertise missing capabilities

PGDump driver:
* Fix support for the TEMPORARY layer creation option

PostgreSQL driver:
* avoid error when inserting single feature of FID 0 (6728)
* Fix support for the TEMPORARY layer creation option

SOSI driver:
* do not advertise GDAL_DCAP_CREATE_FIELD as it is not implemented

SQLite driver:
* Fix relationships determined through foreign keys have tables reversed
* Use 'features' as related table type instead of 'feature' to match
gpkg/filegdb

VDV driver:
* make creation of temporary .gpkg files more robust on some platforms

WFS driver:
* do not remove single or double quote character in a LIKE filter (also
applies to CSW driver)

SWIG bindings:
* add gdal.GetNumCPUs() and gdal.GetUsablePhysicalRAM()

CSharp bindings

* Default to dotnet 6 (6843)

Python bindings

* make Geometry.__str__() use ExportToIsoWkt() (6842)
* setup.py: improve numpy fixing (6700)
* add a 'python_generated_files' target that facilitate generation of bindings without building the lib

GDAL/OGR 3.5.0 Release Notes

In a nutshell...

* [RFC 84](https://gdal.org/development/rfc/rfc84_cmake.html):
Addition of a CMake build system, which deprecates the existing
autoconf/automake and nmake build systems, that will be removed
in GDAL 3.6.0. Users are encouraged to adopt the new CMake build system.
Documentation of the CMake build system is at
https://gdal.org/build_hints.html.
* Add GDT_Int64 and GDT_UInt64 data types and handle them in MEM, GTiff, netCDF and Zarr drivers
* Add read/write OGR Parquet (Apache Parquet) and 'Arrow' (Apache Arrow IPC File/Feather or stream) drivers. Only in CMake builds
* Add OGR HANA database driver. Only in autoconf & cmake builds
* Removed drivers: RDA, JPEG2000 (Jasper-based), CharLS, MG4 LIDAR, FujiBAS, IDA, INGR, ARCGEN, ArcObjects, CouchDB, Cloudant, DB2, FME, Geomedia, MDB (Java Jackess based), GTM, Ingres, MongoDB (old one. MongoDBv3 is the one to use now), REC, Walk, GMT raster, DODS raster and vector
* GDAL and OGR GRASS drivers moved to https://github.com/OSGeo/gdal-grass repository
* Tiger: remove deprecated write side of the driver (4216)
* Remove deprecated SWIG Perl bindings
* Code linting and security fixes
* Bump of shared lib major version

New optional dependencies

* odbc-cpp-wrapper (https://github.com/SAP/odbc-cpp-wrapper): for SAP Hana driver
* Apache arrow-cpp (https://github.com/apache/arrow/tree/master/cpp) libraries: for Parquet and Arrow drivers

New installed files

* lib/gdalplugins/drivers.ini: list of (known) drivers in the order they must be registered, for deterministic behavior with plugins
* shared/gdal/grib2_*.csv: resource files for GRIB driver

Removed files

* Remove deprecated testepsg utility (3993)

Backward compatibility issues

See [MIGRATION_GUIDE.TXT](https://github.com/OSGeo/gdal/blob/release/3.5/MIGRATION_GUIDE.TXT)

Build changes

Build(all):
* Drop support for non-reentrant external libqhull
* support libhdf5 1.13.0 (5061)
* Support latest Poppler versions (requires C++17)
* Support tiledb >= 2.7 (requires C++17)
* Updates for IJG libjpeg-9e
* Require using https://github.com/rouault/pdfium_build_gdal_3_5 for PDF PDFium support
* cpl_config.h: remove lots of unused defines, and severely restrict what we export in non-GDAL compilation mode

Build(autoconf/automake):
* fix detection of OpenEXR >= 3 (4766)
* Add support for PCRE2 (to replace deprecated PCRE) (4822)
* Add support for external libqhull_r (4040)
* add a --with-qhull-pkgname=qhull_r/qhullstatic_r option to select with qhull package to use
* generate test_ogrsf by default (but not installed)
* change default of RENAME_INTERNAL_LIBTIFF/LIBGEOTIFF/SHAPELIB_SYMBOLS to yes
* when building against internal libjpeg, prefix by default libjpeg symbols with gdal_ (4948)
* when building against internal libpng, prefix internal libpng symbols with gdal_ (5303)
* m4/acinclude.m4: fix detection of fseeko/ftello on netBSD
* detect xlocale.h to use LC_NUMERIC_MASK on Mac (5022)
* move generated headers to a generated_headers subdirectory to allow in a same git checkout, to continue to do autoconf in-source-tree builds as well as cmake out-of-source-tree build

Build(nmake):
* nmake.opt: fix wrong variable name in example MSODBCSQL_LIB
* nmake.opt: add a HAVE_ATLBASE_H variable that can be set to NO

Internal libraries

* Internal zlib: update to 1.2.12 (5587)
* Internal libtiff: resync with upstream
* Internal libgeotiff: resync with upstream
* Internal libpng: fix memleak on corrupted file (ossfuzz 44486)
* Internal libjson: update to 0.15.0
* Internal libLerc: Prevent LERC out of bounds access (5598)
* Internal libqhull: update to qhull_r 2020.2 (8.0.2)

Page 5 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.