Skip to content

Commit 9706306

Browse files
committed
Parquet: add a default value of COMPRESSION_LEVEL=-1 to please QGIS (master only)
1 parent c58e5f0 commit 9706306

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

ogr/ogrsf_frmts/parquet/ogr_parquet.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
#include "../arrow_common/ogr_arrow.h"
2525
#include "ogr_include_parquet.h"
2626

27+
constexpr int DEFAULT_COMPRESSION_LEVEL = -1;
28+
2729
/************************************************************************/
2830
/* OGRParquetLayerBase */
2931
/************************************************************************/

ogr/ogrsf_frmts/parquet/ogrparquetdriver.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -728,12 +728,16 @@ void OGRParquetDriver::InitMetadata()
728728
auto psOption = CPLCreateXMLNode(oTree.get(), CXT_Element, "Option");
729729
CPLAddXMLAttributeAndValue(psOption, "name", "COMPRESSION_LEVEL");
730730
CPLAddXMLAttributeAndValue(psOption, "type", "int");
731-
CPLAddXMLAttributeAndValue(psOption, "min",
732-
CPLSPrintf("%d", minComprLevel));
731+
CPLAddXMLAttributeAndValue(
732+
psOption, "min",
733+
CPLSPrintf("%d",
734+
std::min(DEFAULT_COMPRESSION_LEVEL, minComprLevel)));
733735
CPLAddXMLAttributeAndValue(psOption, "max",
734736
CPLSPrintf("%d", maxComprLevel));
735737
CPLAddXMLAttributeAndValue(psOption, "description",
736738
osCompressionLevelDesc.c_str());
739+
CPLAddXMLAttributeAndValue(psOption, "default",
740+
CPLSPrintf("%d", DEFAULT_COMPRESSION_LEVEL));
737741
}
738742

739743
{

ogr/ogrsf_frmts/parquet/ogrparquetwriterlayer.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,11 @@ bool OGRParquetWriterLayer::SetOptions(CSLConstList papszOptions,
456456
const char *pszCompressionLevel =
457457
CSLFetchNameValue(papszOptions, "COMPRESSION_LEVEL");
458458
if (pszCompressionLevel)
459-
m_oWriterPropertiesBuilder.compression_level(atoi(pszCompressionLevel));
459+
{
460+
const int nCompressionLevel = atoi(pszCompressionLevel);
461+
if (nCompressionLevel != DEFAULT_COMPRESSION_LEVEL)
462+
m_oWriterPropertiesBuilder.compression_level(nCompressionLevel);
463+
}
460464

461465
const std::string osCreator =
462466
CSLFetchNameValueDef(papszOptions, "CREATOR", "");

0 commit comments

Comments
 (0)