This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch past-M2
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit ee8ae15498ee84fdba96e8bfa3e179c3da697b07
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sat May 30 21:56:06 2026 -0400

    Row postprocessing seems like dead code, removing
    
    presumably "Map<ObjAttribute, ColumnDescriptor> attributeOverrides" in 
TranslatedSelect is always empty,
    so we can unwind a bunch  of code
---
 .../reader/CryptoRowReaderFactoryDecorator.java    |  16 +--
 .../java/org/apache/cayenne/access/DataNode.java   |  14 +--
 .../apache/cayenne/access/jdbc/BatchAction.java    |   3 +-
 .../apache/cayenne/access/jdbc/SelectAction.java   |   2 +-
 .../cayenne/access/jdbc/reader/BaseRowReader.java  |   4 +-
 .../access/jdbc/reader/DataRowPostProcessor.java   |  93 ---------------
 .../jdbc/reader/DefaultRowReaderFactory.java       | 129 +++------------------
 .../access/jdbc/reader/EntityRowReader.java        |  10 +-
 .../cayenne/access/jdbc/reader/FullRowReader.java  |   8 +-
 .../cayenne/access/jdbc/reader/IdRowReader.java    |  11 +-
 .../reader/InheritanceAwareEntityRowReader.java    |  11 +-
 .../jdbc/reader/InheritanceAwareRowReader.java     |   8 +-
 .../access/jdbc/reader/RowReaderFactory.java       |   9 +-
 .../access/translator/select/TranslatedSelect.java |   4 -
 .../translator/select/TranslatorContext.java       |   2 -
 .../access/jdbc/JDBCResultIteratorTest.java        |   4 +-
 16 files changed, 36 insertions(+), 292 deletions(-)

diff --git 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/reader/CryptoRowReaderFactoryDecorator.java
 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/reader/CryptoRowReaderFactoryDecorator.java
index 35d8aa9d4..549f693a7 100644
--- 
a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/reader/CryptoRowReaderFactoryDecorator.java
+++ 
b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/reader/CryptoRowReaderFactoryDecorator.java
@@ -38,7 +38,6 @@ import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.TypesMapping;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.query.EntityResultSegment;
 import org.apache.cayenne.query.QueryMetadata;
 import org.apache.cayenne.query.ScalarResultSegment;
@@ -61,10 +60,9 @@ public class CryptoRowReaderFactoryDecorator extends 
DefaultRowReaderFactory {
     }
 
     @Override
-    public RowReader<?> rowReader(RowDescriptor descriptor, QueryMetadata 
queryMetadata, DbAdapter adapter,
-                                  Map<ObjAttribute, ColumnDescriptor> 
attributeOverrides) {
+    public RowReader<?> rowReader(RowDescriptor descriptor, QueryMetadata 
queryMetadata, DbAdapter adapter) {
         RowDescriptor encryptedRowDescriptor = 
encryptedRowDescriptor(descriptor, adapter.getExtendedTypes());
-        return super.rowReader(encryptedRowDescriptor, queryMetadata, adapter, 
attributeOverrides);
+        return super.rowReader(encryptedRowDescriptor, queryMetadata, adapter);
     }
 
     @Override
@@ -77,18 +75,16 @@ public class CryptoRowReaderFactoryDecorator extends 
DefaultRowReaderFactory {
 
     @Override
     protected RowReader<?> createEntityRowReader(RowDescriptor descriptor, 
QueryMetadata queryMetadata,
-                                                 EntityResultSegment 
resultMetadata,
-                                                 PostprocessorFactory 
postProcessorFactory) {
+                                                 EntityResultSegment 
resultMetadata) {
         RowReader<?> entityRowReader = super
-                .createEntityRowReader(descriptor, queryMetadata, 
resultMetadata, postProcessorFactory);
+                .createEntityRowReader(descriptor, queryMetadata, 
resultMetadata);
         return new DecoratedEntityRowReader(descriptor, entityRowReader, 
resultMetadata);
     }
 
     @Override
-    protected RowReader<?> createFullRowReader(RowDescriptor descriptor, 
QueryMetadata queryMetadata,
-                                               PostprocessorFactory 
postProcessorFactory) {
+    protected RowReader<?> createFullRowReader(RowDescriptor descriptor, 
QueryMetadata queryMetadata) {
         RowReader<?> fullRowReader = super
-                .createFullRowReader(descriptor, queryMetadata, 
postProcessorFactory);
+                .createFullRowReader(descriptor, queryMetadata);
         return new DecoratedFullRowReader(descriptor, fullRowReader);
     }
 
diff --git a/cayenne/src/main/java/org/apache/cayenne/access/DataNode.java 
b/cayenne/src/main/java/org/apache/cayenne/access/DataNode.java
index 420706eaa..5ba5b83b3 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/DataNode.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/DataNode.java
@@ -21,7 +21,6 @@ package org.apache.cayenne.access;
 
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.access.dbsync.SchemaUpdateStrategy;
-import org.apache.cayenne.access.jdbc.ColumnDescriptor;
 import org.apache.cayenne.access.jdbc.RowDescriptor;
 import org.apache.cayenne.access.translator.sqltemplate.SQLTemplateTranslator;
 import org.apache.cayenne.access.jdbc.reader.RowReader;
@@ -36,7 +35,6 @@ import org.apache.cayenne.log.JdbcEventLogger;
 import org.apache.cayenne.log.NoopJdbcEventLogger;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.EntityResolver;
-import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.query.BatchQuery;
 import org.apache.cayenne.query.Query;
 import org.apache.cayenne.query.QueryMetadata;
@@ -323,17 +321,7 @@ public class DataNode {
         * @since 4.0
         */
        public RowReader<?> rowReader(RowDescriptor descriptor, QueryMetadata 
queryMetadata) {
-               return rowReader(descriptor, queryMetadata, 
Collections.emptyMap());
-       }
-
-       /**
-        * Creates a {@link RowReader} using internal {@link RowReaderFactory}.
-        *
-        * @since 4.0
-        */
-       public RowReader<?> rowReader(RowDescriptor descriptor, QueryMetadata 
queryMetadata,
-                       Map<ObjAttribute, ColumnDescriptor> attributeOverrides) 
{
-               return rowReaderFactory.rowReader(descriptor, queryMetadata, 
getAdapter(), attributeOverrides);
+               return rowReaderFactory.rowReader(descriptor, queryMetadata, 
getAdapter());
        }
 
        /**
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
index 58fdae47d..d1043b41f 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
@@ -289,8 +289,7 @@ public class BatchAction extends BaseSQLAction {
                        this.keyRowDescriptor = 
builder.getDescriptor(dataNode.getAdapter().getExtendedTypes());
                }
 
-               RowReader<?> rowReader = dataNode.rowReader(keyRowDescriptor, 
query.getMetaData(dataNode.getEntityResolver()),
-                               Collections.emptyMap());
+               RowReader<?> rowReader = dataNode.rowReader(keyRowDescriptor, 
query.getMetaData(dataNode.getEntityResolver()));
                ResultIterator iterator = new JDBCResultIterator(null, keysRS, 
rowReader);
 
                List<ObjectId> objectIds = new ArrayList<>(rows.size());
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
index 0d7bbc98e..5094135f5 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
@@ -115,7 +115,7 @@ public class SelectAction extends BaseSQLAction {
                 .setColumns(translated.resultColumns())
                 .getDescriptor(dataNode.getAdapter().getExtendedTypes());
 
-        RowReader<?> rowReader = dataNode.rowReader(descriptor, queryMetadata, 
translated.attributeOverrides());
+        RowReader<?> rowReader = dataNode.rowReader(descriptor, queryMetadata);
 
         ResultIterator<?> it = new JDBCResultIterator<>(statement, rs, 
rowReader);
         it = forIteratedResult(it, observer, connection, t1, translated.sql());
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/BaseRowReader.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/BaseRowReader.java
index 7337f0129..adeab6d76 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/BaseRowReader.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/BaseRowReader.java
@@ -34,16 +34,14 @@ abstract class BaseRowReader<T> implements RowReader<T> {
     ExtendedType[] converters;
     String[] labels;
     int[] types;
-    DataRowPostProcessor postProcessor;
     String entityName;
 
-    BaseRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata, 
DataRowPostProcessor postProcessor) {
+    BaseRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata) {
         ObjEntity rootObjEntity = queryMetadata.getObjEntity();
         if (rootObjEntity != null) {
             this.entityName = rootObjEntity.getName();
         }
 
-        this.postProcessor = postProcessor;
         this.converters = descriptor.getConverters();
 
         ColumnDescriptor[] columns = descriptor.getColumns();
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/DataRowPostProcessor.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/DataRowPostProcessor.java
deleted file mode 100644
index be0f0fe6f..000000000
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/DataRowPostProcessor.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*****************************************************************
- *   Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    https://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- ****************************************************************/
-
-package org.apache.cayenne.access.jdbc.reader;
-
-import java.sql.ResultSet;
-import java.util.Collection;
-import java.util.Map;
-
-import org.apache.cayenne.DataRow;
-import org.apache.cayenne.access.types.ExtendedType;
-import org.apache.cayenne.map.EntityInheritanceTree;
-import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.reflect.ClassDescriptor;
-
-/**
- * Deals with DataRow type conversion in inheritance situations.
- * 
- * @since 1.2
- */
-class DataRowPostProcessor {
-
-    private EntityInheritanceTree inheritanceTree;
-    private Map<String, Collection<ColumnOverride>> columnOverrides;
-    private Collection<ColumnOverride> defaultOverrides;
-
-    DataRowPostProcessor(ClassDescriptor classDescriptor, Map<String, 
Collection<ColumnOverride>> columnOverrides) {
-
-        if (classDescriptor != null && classDescriptor.hasSubclasses()) {
-            this.inheritanceTree = classDescriptor.getEntityInheritanceTree();
-            this.columnOverrides = columnOverrides;
-        } else {
-            if (columnOverrides.size() != 1) {
-                throw new IllegalArgumentException("No inheritance - there 
must be only one override set");
-            }
-
-            defaultOverrides = columnOverrides.values().iterator().next();
-        }
-    }
-
-    void postprocessRow(ResultSet resultSet, DataRow row) throws Exception {
-
-        Collection<ColumnOverride> overrides = getOverrides(row);
-
-        if (overrides != null) {
-            for (final ColumnOverride override : overrides) {
-
-                Object newValue = 
override.converter.materializeObject(resultSet, override.index, 
override.jdbcType);
-                row.put(override.key, newValue);
-            }
-        }
-    }
-
-    private final Collection<ColumnOverride> getOverrides(DataRow row) {
-        if (defaultOverrides != null) {
-            return defaultOverrides;
-        } else {
-            ObjEntity entity = inheritanceTree.entityMatchingRow(row);
-            return entity != null ? columnOverrides.get(entity.getName()) : 
null;
-        }
-    }
-
-    static final class ColumnOverride {
-
-        int index;
-        int jdbcType;
-        String key;
-        ExtendedType converter;
-
-        ColumnOverride(int index, String key, ExtendedType converter, int 
jdbcType) {
-            this.index = index;
-            this.key = key;
-            this.converter = converter;
-            this.jdbcType = jdbcType;
-        }
-    }
-}
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java
index 5e3a2fe15..fdca01cdb 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java
@@ -18,28 +18,15 @@
  ****************************************************************/
 package org.apache.cayenne.access.jdbc.reader;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
 
 import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.access.jdbc.ColumnDescriptor;
 import org.apache.cayenne.access.jdbc.RowDescriptor;
-import 
org.apache.cayenne.access.jdbc.reader.DataRowPostProcessor.ColumnOverride;
-import org.apache.cayenne.access.types.ExtendedType;
-import org.apache.cayenne.access.types.ExtendedTypeMap;
 import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.dba.TypesMapping;
-import org.apache.cayenne.map.ObjAttribute;
-import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.query.EmbeddableResultSegment;
 import org.apache.cayenne.query.EntityResultSegment;
 import org.apache.cayenne.query.QueryMetadata;
 import org.apache.cayenne.query.ScalarResultSegment;
-import org.apache.cayenne.reflect.ClassDescriptor;
 
 /**
  * @since 4.0
@@ -47,15 +34,11 @@ import org.apache.cayenne.reflect.ClassDescriptor;
 public class DefaultRowReaderFactory implements RowReaderFactory {
 
        @Override
-       public RowReader<?> rowReader(RowDescriptor descriptor, QueryMetadata 
queryMetadata, DbAdapter adapter,
-                       Map<ObjAttribute, ColumnDescriptor> attributeOverrides) 
{
-
-               PostprocessorFactory postProcessorFactory = new 
PostprocessorFactory(descriptor, queryMetadata,
-                               adapter.getExtendedTypes(), attributeOverrides);
+       public RowReader<?> rowReader(RowDescriptor descriptor, QueryMetadata 
queryMetadata, DbAdapter adapter) {
 
                List<Object> rsMapping = queryMetadata.getResultSetMapping();
                if (rsMapping == null) {
-                       return createFullRowReader(descriptor, queryMetadata, 
postProcessorFactory);
+                       return createFullRowReader(descriptor, queryMetadata);
                }
 
                int resultWidth = rsMapping.size();
@@ -68,8 +51,7 @@ public class DefaultRowReaderFactory implements 
RowReaderFactory {
                        Object segment = rsMapping.get(0);
 
                        if (segment instanceof EntityResultSegment) {
-                               return createEntityRowReader(descriptor, 
queryMetadata, (EntityResultSegment) segment,
-                                               postProcessorFactory);
+                               return createEntityRowReader(descriptor, 
queryMetadata, (EntityResultSegment) segment);
                        } else if (segment instanceof EmbeddableResultSegment) {
                                return createEmbeddableRowReader(descriptor, 
queryMetadata, (EmbeddableResultSegment) segment);
                        } else {
@@ -82,10 +64,8 @@ public class DefaultRowReaderFactory implements 
RowReaderFactory {
                                Object segment = rsMapping.get(i);
 
                                if (segment instanceof EntityResultSegment) {
-                                       reader.addRowReader(
-                                                       i,
-                                                       
createEntityRowReader(descriptor, queryMetadata, (EntityResultSegment) segment,
-                                                                       
postProcessorFactory));
+                                       reader.addRowReader(i,
+                                                       
createEntityRowReader(descriptor, queryMetadata, (EntityResultSegment) 
segment));
                                } else if(segment instanceof 
EmbeddableResultSegment) {
                                        reader.addRowReader(i, 
createEmbeddableRowReader(descriptor, queryMetadata, (EmbeddableResultSegment) 
segment));
                                } else {
@@ -106,108 +86,25 @@ public class DefaultRowReaderFactory implements 
RowReaderFactory {
        }
 
        protected RowReader<?> createEntityRowReader(RowDescriptor descriptor, 
QueryMetadata queryMetadata,
-                       EntityResultSegment resultMetadata, 
PostprocessorFactory postProcessorFactory) {
+                       EntityResultSegment resultMetadata) {
 
                if (queryMetadata.getPageSize() > 0) {
-                       return new IdRowReader<>(descriptor, queryMetadata, 
resultMetadata, postProcessorFactory.get());
+                       return new IdRowReader<>(descriptor, queryMetadata, 
resultMetadata);
                } else if (resultMetadata.getClassDescriptor() != null && 
resultMetadata.getClassDescriptor().hasSubclasses()) {
-                       return new InheritanceAwareEntityRowReader(descriptor, 
resultMetadata, postProcessorFactory.get());
+                       return new InheritanceAwareEntityRowReader(descriptor, 
resultMetadata);
                } else {
-                       return new EntityRowReader(descriptor, resultMetadata, 
postProcessorFactory.get());
+                       return new EntityRowReader(descriptor, resultMetadata);
                }
        }
 
-       protected RowReader<?> createFullRowReader(RowDescriptor descriptor, 
QueryMetadata queryMetadata,
-                       PostprocessorFactory postProcessorFactory) {
+       protected RowReader<?> createFullRowReader(RowDescriptor descriptor, 
QueryMetadata queryMetadata) {
 
                if (queryMetadata.getPageSize() > 0) {
-                       return new IdRowReader<>(descriptor, queryMetadata, 
null, postProcessorFactory.get());
+                       return new IdRowReader<>(descriptor, queryMetadata, 
null);
                } else if (queryMetadata.getClassDescriptor() != null && 
queryMetadata.getClassDescriptor().hasSubclasses()) {
-                       return new InheritanceAwareRowReader(descriptor, 
queryMetadata, postProcessorFactory.get());
+                       return new InheritanceAwareRowReader(descriptor, 
queryMetadata);
                } else {
-                       return new FullRowReader(descriptor, queryMetadata, 
postProcessorFactory.get());
-               }
-       }
-
-       protected static class PostprocessorFactory {
-
-               private final QueryMetadata queryMetadata;
-               private final ExtendedTypeMap extendedTypes;
-               private final Map<ObjAttribute, ColumnDescriptor> 
attributeOverrides;
-               private final RowDescriptor rowDescriptor;
-
-               private boolean created;
-               private DataRowPostProcessor postProcessor;
-
-               PostprocessorFactory(RowDescriptor rowDescriptor, QueryMetadata 
queryMetadata, ExtendedTypeMap extendedTypes,
-                               Map<ObjAttribute, ColumnDescriptor> 
attributeOverrides) {
-                       this.rowDescriptor = rowDescriptor;
-                       this.extendedTypes = extendedTypes;
-                       this.attributeOverrides = attributeOverrides;
-                       this.queryMetadata = queryMetadata;
-               }
-
-               DataRowPostProcessor get() {
-
-                       if (!created) {
-                               postProcessor = create();
-                               created = true;
-                       }
-
-                       return postProcessor;
-               }
-
-               private DataRowPostProcessor create() {
-
-                       if (attributeOverrides.isEmpty()) {
-                               return null;
-                       }
-
-                       ColumnDescriptor[] columns = rowDescriptor.getColumns();
-
-                       Map<String, Collection<ColumnOverride>> columnOverrides 
= new HashMap<>(2);
-
-                       for (Entry<ObjAttribute, ColumnDescriptor> entry : 
attributeOverrides.entrySet()) {
-
-                               ObjAttribute attribute = entry.getKey();
-                               ObjEntity entity = attribute.getEntity();
-
-                               String key = null;
-                               int jdbcType = TypesMapping.NOT_DEFINED;
-                               int index = -1;
-                               for (int i = 0; i < columns.length; i++) {
-                                       if (columns[i] == entry.getValue()) {
-
-                                               // if attribute type is the 
same as column, there is no conflict
-                                               if 
(!attribute.getType().equals(columns[i].getJavaClass())) {
-                                                       // note that JDBC index 
is "1" based
-                                                       index = i + 1;
-                                                       jdbcType = 
columns[i].getJdbcType();
-                                                       key = 
columns[i].getDataRowKey();
-                                               }
-
-                                               break;
-                                       }
-                               }
-
-                               if (index < 1) {
-                                       continue;
-                               }
-
-                               ExtendedType<?> converter = 
extendedTypes.getRegisteredType(attribute.getType());
-                               Collection<ColumnOverride> overrides = 
columnOverrides
-                                               
.computeIfAbsent(entity.getName(), k -> new ArrayList<>(3));
-                               overrides.add(new ColumnOverride(index, key, 
converter, jdbcType));
-                       }
-
-                       // inject null post-processor
-                       if (columnOverrides.isEmpty()) {
-                               return null;
-                       }
-
-                       ClassDescriptor rootDescriptor = 
queryMetadata.getClassDescriptor();
-
-                       return new DataRowPostProcessor(rootDescriptor, 
columnOverrides);
+                       return new FullRowReader(descriptor, queryMetadata);
                }
        }
 
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/EntityRowReader.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/EntityRowReader.java
index d6be56bea..63a300003 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/EntityRowReader.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/EntityRowReader.java
@@ -42,11 +42,7 @@ class EntityRowReader implements RowReader<DataRow> {
     private int mapCapacity;
     private int startIndex;
 
-    DataRowPostProcessor postProcessor;
-
-    EntityRowReader(RowDescriptor descriptor, EntityResultSegment 
segmentMetadata, DataRowPostProcessor postProcessor) {
-
-        this.postProcessor = postProcessor;
+    EntityRowReader(RowDescriptor descriptor, EntityResultSegment 
segmentMetadata) {
 
         ClassDescriptor classDescriptor = segmentMetadata.getClassDescriptor();
 
@@ -106,10 +102,6 @@ class EntityRowReader implements RowReader<DataRow> {
     }
 
     void postprocessRow(ResultSet resultSet, DataRow dataRow) throws Exception 
{
-        if (postProcessor != null) {
-            postProcessor.postprocessRow(resultSet, dataRow);
-        }
-
         dataRow.setEntityName(entityName);
     }
 }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/FullRowReader.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/FullRowReader.java
index 9fc112c8c..cafab68aa 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/FullRowReader.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/FullRowReader.java
@@ -33,8 +33,8 @@ class FullRowReader extends BaseRowReader<DataRow> {
 
     int mapCapacity;
 
-    FullRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata, 
DataRowPostProcessor postProcessor) {
-        super(descriptor, queryMetadata, postProcessor);
+    FullRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata) {
+        super(descriptor, queryMetadata);
         this.mapCapacity = (int) Math.ceil((descriptor.getWidth()) / 0.75);
     }
 
@@ -65,10 +65,6 @@ class FullRowReader extends BaseRowReader<DataRow> {
     }
 
     void postprocessRow(ResultSet resultSet, DataRow dataRow) throws Exception 
{
-        if (postProcessor != null) {
-            postProcessor.postprocessRow(resultSet, dataRow);
-        }
-
         dataRow.setEntityName(entityName);
     }
 }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/IdRowReader.java 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/IdRowReader.java
index 2b4d79a62..b48da177f 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/IdRowReader.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/IdRowReader.java
@@ -37,8 +37,8 @@ class IdRowReader<T> extends BaseRowReader<T> {
 
     protected int[] pkIndices;
 
-    public IdRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata, 
EntityResultSegment resultMetadata, DataRowPostProcessor postProcessor) {
-        super(descriptor, queryMetadata, postProcessor);
+    public IdRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata, 
EntityResultSegment resultMetadata) {
+        super(descriptor, queryMetadata);
 
         DbEntity dbEntity = resultMetadata == null
                 ? queryMetadata.getDbEntity()
@@ -95,9 +95,6 @@ class IdRowReader<T> extends BaseRowReader<T> {
         @SuppressWarnings("unchecked")
         T val = (T) converters[index].materializeObject(resultSet, index + 1, 
types[index]);
 
-        // note that postProcessor overrides are not applied. ID mapping must 
be
-        // the
-        // same across inheritance hierarchy, so overrides do not make sense.
         return val;
     }
 
@@ -114,10 +111,6 @@ class IdRowReader<T> extends BaseRowReader<T> {
             idRow.put(labels[index], val);
         }
 
-        if (postProcessor != null) {
-            postProcessor.postprocessRow(resultSet, idRow);
-        }
-
         return (T) idRow;
     }
 }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/InheritanceAwareEntityRowReader.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/InheritanceAwareEntityRowReader.java
index 0e88907e2..f51ad058e 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/InheritanceAwareEntityRowReader.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/InheritanceAwareEntityRowReader.java
@@ -33,19 +33,14 @@ class InheritanceAwareEntityRowReader extends 
EntityRowReader {
 
     private EntityInheritanceTree entityInheritanceTree;
 
-    public InheritanceAwareEntityRowReader(RowDescriptor descriptor, 
EntityResultSegment segmentMetadata,
-            DataRowPostProcessor postProcessor) {
-        
-        super(descriptor, segmentMetadata, postProcessor);
+    public InheritanceAwareEntityRowReader(RowDescriptor descriptor, 
EntityResultSegment segmentMetadata) {
+
+        super(descriptor, segmentMetadata);
         this.entityInheritanceTree = 
segmentMetadata.getClassDescriptor().getEntityInheritanceTree();
     }
 
     @Override
     void postprocessRow(ResultSet resultSet, DataRow dataRow) throws Exception 
{
-        if (postProcessor != null) {
-            postProcessor.postprocessRow(resultSet, dataRow);
-        }
-
         ObjEntity entity = entityInheritanceTree.entityMatchingRow(dataRow);
         dataRow.setEntityName(entity != null ? entity.getName() : entityName);
     }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/InheritanceAwareRowReader.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/InheritanceAwareRowReader.java
index 69fab323f..06c61a20b 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/InheritanceAwareRowReader.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/InheritanceAwareRowReader.java
@@ -33,17 +33,13 @@ class InheritanceAwareRowReader extends FullRowReader {
 
     private EntityInheritanceTree entityInheritanceTree;
 
-    InheritanceAwareRowReader(RowDescriptor descriptor, QueryMetadata 
queryMetadata, DataRowPostProcessor postProcessor) {
-        super(descriptor, queryMetadata, postProcessor);
+    InheritanceAwareRowReader(RowDescriptor descriptor, QueryMetadata 
queryMetadata) {
+        super(descriptor, queryMetadata);
         this.entityInheritanceTree = 
queryMetadata.getClassDescriptor().getEntityInheritanceTree();
     }
 
     @Override
     void postprocessRow(ResultSet resultSet, DataRow dataRow) throws Exception 
{
-        if (postProcessor != null) {
-            postProcessor.postprocessRow(resultSet, dataRow);
-        }
-
         ObjEntity entity = entityInheritanceTree.entityMatchingRow(dataRow);
         dataRow.setEntityName(entity != null ? entity.getName() : entityName);
     }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/RowReaderFactory.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/RowReaderFactory.java
index 26d46f81f..75a9b21b5 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/RowReaderFactory.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/reader/RowReaderFactory.java
@@ -18,21 +18,16 @@
  ****************************************************************/
 package org.apache.cayenne.access.jdbc.reader;
 
-import java.util.Map;
-
-import org.apache.cayenne.access.jdbc.ColumnDescriptor;
 import org.apache.cayenne.access.jdbc.RowDescriptor;
 import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.query.QueryMetadata;
 
 /**
  * Creates RowReader instances for executed queries.
- * 
+ *
  * @since 4.0
  */
 public interface RowReaderFactory {
 
-    RowReader<?> rowReader(RowDescriptor descriptor, QueryMetadata 
queryMetadata, DbAdapter adapter,
-            Map<ObjAttribute, ColumnDescriptor> attributeOverrides);
+    RowReader<?> rowReader(RowDescriptor descriptor, QueryMetadata 
queryMetadata, DbAdapter adapter);
 }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/translator/select/TranslatedSelect.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/translator/select/TranslatedSelect.java
index 0de0be378..ee1ec983f 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/translator/select/TranslatedSelect.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/translator/select/TranslatedSelect.java
@@ -19,11 +19,8 @@
 
 package org.apache.cayenne.access.translator.select;
 
-import java.util.Map;
-
 import org.apache.cayenne.access.jdbc.ColumnDescriptor;
 import org.apache.cayenne.access.translator.DbAttributeBinding;
-import org.apache.cayenne.map.ObjAttribute;
 
 /**
  * An immutable result of translating a {@link 
org.apache.cayenne.query.Select} query to SQL,
@@ -35,7 +32,6 @@ public record TranslatedSelect(
         String sql,
         ColumnDescriptor[] resultColumns,
         DbAttributeBinding[] bindings,
-        Map<ObjAttribute, ColumnDescriptor> attributeOverrides,
         boolean suppressingDistinct,
         boolean hasJoins) {
 }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/translator/select/TranslatorContext.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/translator/select/TranslatorContext.java
index 62522c9f9..0405eb55e 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/translator/select/TranslatorContext.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/translator/select/TranslatorContext.java
@@ -39,7 +39,6 @@ import org.apache.cayenne.query.QueryMetadata;
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -139,7 +138,6 @@ public class TranslatorContext implements 
SQLGenerationContext {
                 getFinalSQL(),
                 getColumnDescriptors().toArray(new ColumnDescriptor[0]),
                 getBindings().toArray(new DbAttributeBinding[0]),
-                Collections.emptyMap(),
                 isDistinctSuppression(),
                 getTableCount() > 1);
     }
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java
index f579764d7..077dffcfa 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java
@@ -24,7 +24,6 @@ import 
org.apache.cayenne.access.jdbc.reader.DefaultRowReaderFactory;
 import org.apache.cayenne.access.jdbc.reader.RowReader;
 import org.apache.cayenne.access.types.ExtendedTypeMap;
 import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.query.MockQueryMetadata;
 import org.apache.cayenne.unit.jdbc.TestConnection;
 import org.apache.cayenne.unit.jdbc.TestResultSet;
@@ -33,7 +32,6 @@ import org.junit.jupiter.api.Test;
 
 import java.sql.Connection;
 import java.sql.Statement;
-import java.util.Collections;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -52,7 +50,7 @@ public class JDBCResultIteratorTest {
 
                RowDescriptor descriptor = new 
RowDescriptorBuilder().setResultSet(rs).getDescriptor(new ExtendedTypeMap());
                RowReader<?> rowReader = new 
DefaultRowReaderFactory().rowReader(descriptor, new MockQueryMetadata(),
-                               mock(DbAdapter.class), 
Collections.<ObjAttribute, ColumnDescriptor> emptyMap());
+                               mock(DbAdapter.class));
 
                JDBCResultIterator it = new JDBCResultIterator(s, rs, 
rowReader);
 

Reply via email to