This is an automated email from the ASF dual-hosted git repository. dlych pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 758f94df1986566371e605dffe4423df531b5a87 Author: Ali Alsuliman <[email protected]> AuthorDate: Mon Apr 4 15:24:04 2022 +0300 [NO ISSUE][OTH] Redact field name - user model changes: no - storage format changes: no - interface changes: no Change-Id: Iad7cb5ba2f49088fd30cf8dce6f002191fc808c2 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/16003 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> Reviewed-by: Michael Blow <[email protected]> --- .../apache/asterix/optimizer/rules/ConstantFoldingRule.java | 3 ++- .../asterix/optimizer/rules/RemoveDuplicateFieldsRule.java | 3 ++- .../asterix/translator/SqlppExpressionToPlanTranslator.java | 4 +++- .../java/org/apache/asterix/translator/TypeTranslator.java | 4 +++- .../java/org/apache/asterix/translator/util/ValidateUtil.java | 2 +- .../org/apache/asterix/app/translator/QueryTranslator.java | 11 +++++++---- .../apache/asterix/external/library/java/base/JRecord.java | 4 +++- .../org/apache/asterix/external/parser/ADMDataParser.java | 5 +++-- .../asterix/external/parser/AbstractJsonDataParser.java | 6 ++++-- .../asterix/external/parser/AbstractNestedDataParser.java | 3 ++- .../apache/asterix/external/parser/DelimitedDataParser.java | 4 +++- .../java/org/apache/asterix/external/parser/TweetParser.java | 3 ++- .../org/apache/asterix/metadata/utils/KeyFieldTypeUtil.java | 3 ++- .../asterix/metadata/utils/RTreeResourceFactoryProvider.java | 5 +++-- .../typecomputer/impl/ClosedRecordConstructorResultType.java | 4 +++- .../om/typecomputer/impl/OpenRecordConstructorResultType.java | 4 +++- .../asterix/om/typecomputer/impl/RecordMergeTypeComputer.java | 6 ++++-- .../asterix/om/types/runtime/RuntimeRecordTypeInfo.java | 4 +++- 18 files changed, 53 insertions(+), 25 deletions(-) diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ConstantFoldingRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ConstantFoldingRule.java index 03d112df31..10aedc766a 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ConstantFoldingRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ConstantFoldingRule.java @@ -99,6 +99,7 @@ import org.apache.hyracks.api.exceptions.Warning; import org.apache.hyracks.data.std.api.IPointable; import org.apache.hyracks.data.std.primitive.VoidPointable; import org.apache.hyracks.dataflow.common.comm.util.ByteBufferInputStream; +import org.apache.hyracks.util.LogRedactionUtil; import com.google.common.collect.ImmutableMap; @@ -339,7 +340,7 @@ public class ConstantFoldingRule implements IAlgebraicRewriteRule { IWarningCollector warningCollector = optContext.getWarningCollector(); if (warningCollector.shouldWarn()) { warningCollector.warn(Warning.of(fieldNameExpr.second.getSourceLocation(), - ErrorCode.COMPILATION_DUPLICATE_FIELD_NAME, fieldName)); + ErrorCode.COMPILATION_DUPLICATE_FIELD_NAME, LogRedactionUtil.userData(fieldName))); } iterator.remove(); iterator.next(); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/RemoveDuplicateFieldsRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/RemoveDuplicateFieldsRule.java index 6c4f8c6a59..e924a4cef8 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/RemoveDuplicateFieldsRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/RemoveDuplicateFieldsRule.java @@ -41,6 +41,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogi import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule; import org.apache.hyracks.api.exceptions.IWarningCollector; import org.apache.hyracks.api.exceptions.Warning; +import org.apache.hyracks.util.LogRedactionUtil; /** * <pre> @@ -116,7 +117,7 @@ public class RemoveDuplicateFieldsRule implements IAlgebraicRewriteRule { IWarningCollector warningCollector = context.getWarningCollector(); if (warningCollector.shouldWarn()) { warningCollector.warn(Warning.of(fieldNameExpr.getSourceLocation(), - ErrorCode.COMPILATION_DUPLICATE_FIELD_NAME, fieldName)); + ErrorCode.COMPILATION_DUPLICATE_FIELD_NAME, LogRedactionUtil.userData(fieldName))); } iterator.remove(); iterator.next(); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java index ea80ea67e4..3c4537f98d 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java @@ -136,6 +136,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperat import org.apache.hyracks.algebricks.core.algebra.plan.ALogicalPlanImpl; import org.apache.hyracks.algebricks.core.algebra.util.OperatorManipulationUtil; import org.apache.hyracks.api.exceptions.SourceLocation; +import org.apache.hyracks.util.LogRedactionUtil; /** * Each visit returns a pair of an operator and a variable. The variable @@ -1009,7 +1010,8 @@ public class SqlppExpressionToPlanTranslator extends LangExpressionToPlanTransla private FieldBinding generateFieldBinding(String fieldName, Expression fieldValueExpr, Set<String> outFieldNames, SourceLocation sourceLoc) throws CompilationException { if (!outFieldNames.add(fieldName)) { - throw new CompilationException(ErrorCode.DUPLICATE_FIELD_NAME, sourceLoc, fieldName); + throw new CompilationException(ErrorCode.DUPLICATE_FIELD_NAME, sourceLoc, + LogRedactionUtil.userData(fieldName)); } return new FieldBinding(new LiteralExpr(new StringLiteral(fieldName)), fieldValueExpr); } diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TypeTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TypeTranslator.java index c482269f53..c54cdc1ce1 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TypeTranslator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TypeTranslator.java @@ -55,6 +55,7 @@ import org.apache.asterix.om.types.TypeSignature; import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; import org.apache.hyracks.algebricks.common.utils.Pair; import org.apache.hyracks.api.exceptions.SourceLocation; +import org.apache.hyracks.util.LogRedactionUtil; public class TypeTranslator { @@ -314,7 +315,8 @@ public class TypeTranslator { int i = 0; for (String s : names) { if (names.indexOf(s) < i) { - throw new CompilationException(ErrorCode.DUPLICATE_FIELD_NAME, rtd.getSourceLocation(), s); + throw new CompilationException(ErrorCode.DUPLICATE_FIELD_NAME, rtd.getSourceLocation(), + LogRedactionUtil.userData(s)); } fldNames[i++] = s; } diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java index 248e6d03fe..e51a539e32 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java @@ -242,7 +242,7 @@ public class ValidateUtil { throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc, "The field '" + LogRedactionUtil.userData(RecordUtil.toFullyQualifiedName(displayFieldName)) - + "' which is " + "of type " + fieldType.getTypeTag() + + "' which is of type " + fieldType.getTypeTag() + " cannot be indexed using the BTree index."); } break; diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java index 5e4b7306b9..ebc809720c 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java @@ -1235,13 +1235,15 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen if (stmtCreateIndex.isEnforced()) { if (!projectTypeExpr.isUnknownable()) { throw new CompilationException(ErrorCode.INDEX_ILLEGAL_ENFORCED_NON_OPTIONAL, - indexedElement.getSourceLocation(), String.valueOf(projectPath)); + indexedElement.getSourceLocation(), + LogRedactionUtil.userData(String.valueOf(projectPath))); } // don't allow creating an enforced index on a closed-type field, fields that // are part of schema get the field type, if it's not null, then the field is closed-type if (isFieldFromSchema) { throw new CompilationException(ErrorCode.INDEX_ILLEGAL_ENFORCED_ON_CLOSED_FIELD, - indexedElement.getSourceLocation(), String.valueOf(projectPath)); + indexedElement.getSourceLocation(), + LogRedactionUtil.userData(String.valueOf(projectPath))); } } else { if (indexType != IndexType.BTREE && indexType != IndexType.ARRAY) { @@ -1272,7 +1274,7 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen if (fieldTypePrime == null) { throw new CompilationException(ErrorCode.UNKNOWN_TYPE, indexedElement.getSourceLocation(), - String.valueOf(projectPath)); + LogRedactionUtil.userData(String.valueOf(projectPath))); } validateIndexFieldType(indexType, fieldTypePrime, projectPath, indexedElement.getSourceLocation()); @@ -1284,7 +1286,8 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen // Try to add the key & its source to the set of keys for duplicate detection. if (!indexKeysSet.add(indexedElement.toIdentifier())) { throw new AsterixException(ErrorCode.INDEX_ILLEGAL_REPETITIVE_FIELD, - indexedElement.getSourceLocation(), indexedElement.getProjectListDisplayForm()); + indexedElement.getSourceLocation(), + LogRedactionUtil.userData(indexedElement.getProjectListDisplayForm())); } indexFieldTypes.add(fieldTypes); diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/base/JRecord.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/base/JRecord.java index 9bd6461cb7..622533b5a9 100644 --- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/base/JRecord.java +++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/base/JRecord.java @@ -40,6 +40,7 @@ import org.apache.asterix.om.types.ATypeTag; import org.apache.asterix.om.types.IAType; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.data.std.util.ArrayBackedValueStorage; +import org.apache.hyracks.util.LogRedactionUtil; public final class JRecord extends JComplexObject<Map<String, Object>> { @@ -89,7 +90,8 @@ public final class JRecord extends JComplexObject<Map<String, Object>> { // check open part IJObject fieldValue = openFields.get(fieldName); if (fieldValue == null) { - throw new RuntimeDataException(ErrorCode.LIBRARY_JAVA_JOBJECTS_UNKNOWN_FIELD, fieldName); + throw new RuntimeDataException(ErrorCode.LIBRARY_JAVA_JOBJECTS_UNKNOWN_FIELD, + LogRedactionUtil.userData(fieldName)); } return fieldValue; } diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/ADMDataParser.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/ADMDataParser.java index 4a46717588..d75b84df5d 100644 --- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/ADMDataParser.java +++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/ADMDataParser.java @@ -55,6 +55,7 @@ import org.apache.asterix.runtime.operators.file.adm.AdmLexer.TokenImage; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.data.std.api.IMutableValueStorage; import org.apache.hyracks.data.std.util.ArrayBackedValueStorage; +import org.apache.hyracks.util.LogRedactionUtil; /** * Parser for ADM formatted data. @@ -472,7 +473,7 @@ public class ADMDataParser extends AbstractDataParser implements IStreamDataPars fieldId = recBuilder.getFieldId(fldName); if ((fieldId < 0) && !recType.isOpen()) { throw new ParseException(ErrorCode.PARSER_ADM_DATA_PARSER_EXTRA_FIELD_IN_CLOSED_RECORD, - fldName); + LogRedactionUtil.userData(fldName)); } else if ((fieldId < 0) && recType.isOpen()) { parseString(tmpTokenImage.getBuffer(), tmpTokenImage.getBegin() + 1, tmpTokenImage.getLength() - 2, fieldNameBuffer.getDataOutput()); @@ -527,7 +528,7 @@ public class ADMDataParser extends AbstractDataParser implements IStreamDataPars final int nullableFieldId = checkOptionalConstraints(recType, nulls); if (nullableFieldId != -1) { throw new ParseException(ErrorCode.PARSER_ADM_DATA_PARSER_FIELD_NOT_NULL, - recType.getFieldNames()[nullableFieldId]); + LogRedactionUtil.userData(recType.getFieldNames()[nullableFieldId])); } } recBuilder.write(out, true); diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/AbstractJsonDataParser.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/AbstractJsonDataParser.java index 9a602de628..4f8b628e00 100644 --- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/AbstractJsonDataParser.java +++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/AbstractJsonDataParser.java @@ -48,6 +48,7 @@ import org.apache.asterix.runtime.exceptions.UnsupportedTypeException; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.util.ExceptionUtils; import org.apache.hyracks.data.std.api.IMutableValueStorage; +import org.apache.hyracks.util.LogRedactionUtil; import org.apache.hyracks.util.ParseUtil; import com.fasterxml.jackson.core.JsonFactory; @@ -198,7 +199,7 @@ public abstract class AbstractJsonDataParser extends AbstractNestedDataParser<AD if (!recordType.isOpen() && fieldIndex < 0) { throw new RuntimeDataException(ErrorCode.PARSER_ADM_DATA_PARSER_EXTRA_FIELD_IN_CLOSED_RECORD, - fieldName); + LogRedactionUtil.userData(fieldName)); } valueBuffer.reset(); nextToken(); @@ -213,7 +214,8 @@ public abstract class AbstractJsonDataParser extends AbstractNestedDataParser<AD //fail fast if the current field is not nullable if (currentToken() == ADMToken.NULL && !isNullableType(fieldType)) { - throw new RuntimeDataException(ErrorCode.PARSER_EXT_DATA_PARSER_CLOSED_FIELD_NULL, fieldName); + throw new RuntimeDataException(ErrorCode.PARSER_EXT_DATA_PARSER_CLOSED_FIELD_NULL, + LogRedactionUtil.userData(fieldName)); } nullBitMap.set(fieldIndex); diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/AbstractNestedDataParser.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/AbstractNestedDataParser.java index bc15f1ee9a..b8a74d968b 100644 --- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/AbstractNestedDataParser.java +++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/AbstractNestedDataParser.java @@ -35,6 +35,7 @@ import org.apache.asterix.om.types.IAType; import org.apache.asterix.om.types.hierachy.ATypeHierarchy; import org.apache.asterix.om.utils.RecordUtil; import org.apache.hyracks.api.exceptions.HyracksDataException; +import org.apache.hyracks.util.LogRedactionUtil; /** * Abstract class for nested formats (ADM, JSON, XML ... etc) @@ -117,7 +118,7 @@ public abstract class AbstractNestedDataParser<T> extends AbstractDataParser { for (int i = 0; i < recordType.getFieldTypes().length; i++) { if (!nullBitmap.get(i) && !isMissableType(recordType.getFieldTypes()[i])) { throw new RuntimeDataException(ErrorCode.PARSER_EXT_DATA_PARSER_CLOSED_FIELD_NULL, - recordType.getFieldNames()[i]); + LogRedactionUtil.userData(recordType.getFieldNames()[i])); } } } diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/DelimitedDataParser.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/DelimitedDataParser.java index 590f51d781..2936d11b80 100644 --- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/DelimitedDataParser.java +++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/DelimitedDataParser.java @@ -51,6 +51,7 @@ import org.apache.hyracks.data.std.util.ArrayBackedValueStorage; import org.apache.hyracks.dataflow.common.data.parsers.IValueParser; import org.apache.hyracks.dataflow.common.data.parsers.IValueParserFactory; import org.apache.hyracks.dataflow.std.file.FieldCursorForDelimitedDataParser; +import org.apache.hyracks.util.LogRedactionUtil; import org.apache.hyracks.util.ParseUtil; public class DelimitedDataParser extends AbstractDataParser implements IStreamDataParser, IRecordDataParser<char[]> { @@ -108,7 +109,8 @@ public class DelimitedDataParser extends AbstractDataParser implements IStreamDa fldIds[i] = recBuilder.getFieldId(name); if (fldIds[i] < 0) { if (!recordType.isOpen()) { - throw new RuntimeDataException(ErrorCode.PARSER_DELIMITED_ILLEGAL_FIELD, name, recordType); + throw new RuntimeDataException(ErrorCode.PARSER_DELIMITED_ILLEGAL_FIELD, + LogRedactionUtil.userData(name), recordType); } else { nameBuffers[i] = new ArrayBackedValueStorage(); str.setValue(name); diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/TweetParser.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/TweetParser.java index b970b04f62..99d3a5bab5 100644 --- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/TweetParser.java +++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/TweetParser.java @@ -43,6 +43,7 @@ import org.apache.asterix.om.util.container.ListObjectPool; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.data.std.api.IMutableValueStorage; import org.apache.hyracks.data.std.util.ArrayBackedValueStorage; +import org.apache.hyracks.util.LogRedactionUtil; import org.apache.hyracks.util.string.UTF8StringWriter; import com.fasterxml.jackson.databind.JsonNode; @@ -200,7 +201,7 @@ public class TweetParser extends AbstractDataParser implements IRecordDataParser if (obj.get(curFNames[iter1]).isNull() && !(curTypes[iter1] instanceof AUnionType)) { if (curRecType.isClosedField(curFNames[iter1])) { throw new RuntimeDataException(ErrorCode.PARSER_EXT_DATA_PARSER_CLOSED_FIELD_NULL, - curFNames[iter1]); + LogRedactionUtil.userData(curFNames[iter1])); } else { continue; } diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/KeyFieldTypeUtil.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/KeyFieldTypeUtil.java index 61effa8b15..c4cc1de05c 100644 --- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/KeyFieldTypeUtil.java +++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/KeyFieldTypeUtil.java @@ -40,6 +40,7 @@ import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; import org.apache.hyracks.algebricks.common.utils.Pair; import org.apache.hyracks.algebricks.common.utils.Triple; import org.apache.hyracks.api.exceptions.SourceLocation; +import org.apache.hyracks.util.LogRedactionUtil; public class KeyFieldTypeUtil { @@ -323,7 +324,7 @@ public class KeyFieldTypeUtil { } else { // closed record type and we couldn't find the field -> error. throw new CompilationException(ErrorCode.COMPILATION_FIELD_NOT_FOUND, sourceLoc, - RecordUtil.toFullyQualifiedName(path)); + LogRedactionUtil.userData(RecordUtil.toFullyQualifiedName(path))); } } if (fieldType.getTypeTag() == ATypeTag.UNION) { diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/RTreeResourceFactoryProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/RTreeResourceFactoryProvider.java index 463cffb65e..aa37ebbe41 100644 --- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/RTreeResourceFactoryProvider.java +++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/RTreeResourceFactoryProvider.java @@ -39,7 +39,7 @@ import org.apache.asterix.om.types.ATypeTag; import org.apache.asterix.om.types.BuiltinType; import org.apache.asterix.om.types.IAType; import org.apache.asterix.om.utils.NonTaggedFormatUtil; -import org.apache.commons.lang3.StringUtils; +import org.apache.asterix.om.utils.RecordUtil; import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; import org.apache.hyracks.algebricks.common.utils.Pair; import org.apache.hyracks.algebricks.data.IBinaryComparatorFactoryProvider; @@ -59,6 +59,7 @@ import org.apache.hyracks.storage.am.lsm.rtree.dataflow.LSMRTreeWithAntiMatterLo import org.apache.hyracks.storage.am.rtree.frames.RTreePolicyType; import org.apache.hyracks.storage.common.IResourceFactory; import org.apache.hyracks.storage.common.IStorageManager; +import org.apache.hyracks.util.LogRedactionUtil; public class RTreeResourceFactoryProvider implements IResourceFactoryProvider { @@ -82,7 +83,7 @@ public class RTreeResourceFactoryProvider implements IResourceFactoryProvider { indexDetails.getKeyFieldNames().get(0), recordType).first; if (spatialType == null) { throw new CompilationException(ErrorCode.COMPILATION_FIELD_NOT_FOUND, - StringUtils.join(indexDetails.getKeyFieldNames().get(0), '.')); + LogRedactionUtil.userData(RecordUtil.toFullyQualifiedName(indexDetails.getKeyFieldNames().get(0)))); } List<List<String>> primaryKeyFields = dataset.getPrimaryKeys(); int numPrimaryKeys = primaryKeyFields.size(); diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/ClosedRecordConstructorResultType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/ClosedRecordConstructorResultType.java index 077e9b34dd..d3cb2d7151 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/ClosedRecordConstructorResultType.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/ClosedRecordConstructorResultType.java @@ -38,6 +38,7 @@ import org.apache.hyracks.algebricks.core.algebra.base.LogicalExpressionTag; import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression; import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment; import org.apache.hyracks.algebricks.core.algebra.metadata.IMetadataProvider; +import org.apache.hyracks.util.LogRedactionUtil; public class ClosedRecordConstructorResultType implements IResultTypeComputer { @@ -76,7 +77,8 @@ public class ClosedRecordConstructorResultType implements IResultTypeComputer { } for (int j = 0; j < i; j++) { if (fieldName.equals(fieldNames[j])) { - throw new CompilationException(ErrorCode.DUPLICATE_FIELD_NAME, f.getSourceLocation(), fieldName); + throw new CompilationException(ErrorCode.DUPLICATE_FIELD_NAME, f.getSourceLocation(), + LogRedactionUtil.userData(fieldName)); } } fieldTypes[i] = e2Type; diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/OpenRecordConstructorResultType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/OpenRecordConstructorResultType.java index 6b082300a8..838f6f8e19 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/OpenRecordConstructorResultType.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/OpenRecordConstructorResultType.java @@ -43,6 +43,7 @@ import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression; import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression; import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment; import org.apache.hyracks.algebricks.core.algebra.metadata.IMetadataProvider; +import org.apache.hyracks.util.LogRedactionUtil; public class OpenRecordConstructorResultType implements IResultTypeComputer { @@ -78,7 +79,8 @@ public class OpenRecordConstructorResultType implements IResultTypeComputer { String fieldName = ConstantExpressionUtil.getStringConstant(e1); if (fieldName != null && t2 != null && TypeHelper.isClosed(t2)) { if (namesList.contains(fieldName)) { - throw new CompilationException(ErrorCode.DUPLICATE_FIELD_NAME, f.getSourceLocation(), fieldName); + throw new CompilationException(ErrorCode.DUPLICATE_FIELD_NAME, f.getSourceLocation(), + LogRedactionUtil.userData(fieldName)); } namesList.add(fieldName); if (t2.getTypeTag() == ATypeTag.UNION) { diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java index b1e4021ca3..9985a4cd90 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/RecordMergeTypeComputer.java @@ -40,6 +40,7 @@ import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvir import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier; import org.apache.hyracks.algebricks.core.algebra.metadata.IMetadataProvider; import org.apache.hyracks.api.exceptions.SourceLocation; +import org.apache.hyracks.util.LogRedactionUtil; public class RecordMergeTypeComputer implements IResultTypeComputer { @@ -111,7 +112,7 @@ public class RecordMergeTypeComputer implements IResultTypeComputer { // If the ignore duplicates flag is not set, we throw a duplicate field exception else { throw new CompilationException(ErrorCode.COMPILATION_DUPLICATE_FIELD_NAME, - f.getSourceLocation(), fieldNames[i]); + f.getSourceLocation(), LogRedactionUtil.userData(fieldNames[i])); } } @@ -144,7 +145,8 @@ public class RecordMergeTypeComputer implements IResultTypeComputer { private IAType mergedNestedType(String fieldName, IAType fieldType1, IAType fieldType0, SourceLocation sourceLoc) throws AlgebricksException { if (fieldType1.getTypeTag() != ATypeTag.OBJECT || fieldType0.getTypeTag() != ATypeTag.OBJECT) { - throw new CompilationException(ErrorCode.COMPILATION_DUPLICATE_FIELD_NAME, sourceLoc, fieldName); + throw new CompilationException(ErrorCode.COMPILATION_DUPLICATE_FIELD_NAME, sourceLoc, + LogRedactionUtil.userData(fieldName)); } ARecordType resultType = (ARecordType) fieldType0; diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/runtime/RuntimeRecordTypeInfo.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/runtime/RuntimeRecordTypeInfo.java index ccdfa0ed38..9d53ab3b96 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/runtime/RuntimeRecordTypeInfo.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/runtime/RuntimeRecordTypeInfo.java @@ -32,6 +32,7 @@ import org.apache.hyracks.data.std.accessors.PointableBinaryHashFunctionFactory; import org.apache.hyracks.data.std.accessors.UTF8StringBinaryComparatorFactory; import org.apache.hyracks.data.std.primitive.UTF8StringPointable; import org.apache.hyracks.data.std.util.ByteArrayAccessibleOutputStream; +import org.apache.hyracks.util.LogRedactionUtil; import org.apache.hyracks.util.string.UTF8StringUtil; import org.apache.hyracks.util.string.UTF8StringWriter; @@ -100,7 +101,8 @@ public class RuntimeRecordTypeInfo { int j = getFieldIndex(baaos.getByteArray(), serializedFieldNameOffsets[i], UTF8StringUtil.getStringLength(baaos.getByteArray(), serializedFieldNameOffsets[i])); if (j != i) { - throw new RuntimeDataException(ErrorCode.DUPLICATE_FIELD_NAME, fieldNames[i]); + throw new RuntimeDataException(ErrorCode.DUPLICATE_FIELD_NAME, + LogRedactionUtil.userData(fieldNames[i])); } } } catch (IOException e) {
