You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu> on 2021/03/04 22:41:17 UTC
Change in asterixdb[cheshire-cat]: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
From Michael Blow <mb...@apache.org>:
Michael Blow has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365 )
Change subject: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
......................................................................
[ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
---
M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
4 files changed, 21 insertions(+), 5 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/65/10365/1
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
index 946d116..eed9ae1 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
@@ -27,6 +27,7 @@
import org.apache.asterix.common.config.GlobalConfig;
import org.apache.asterix.common.exceptions.ErrorCode;
import org.apache.asterix.common.metadata.DataverseName;
+import org.apache.asterix.common.utils.StoragePathUtil;
import org.apache.asterix.metadata.utils.MetadataConstants;
import org.apache.asterix.test.common.TestExecutor;
import org.apache.asterix.testframework.context.TestCaseContext;
@@ -100,7 +101,14 @@
StringUtils.repeat(euml, MetadataConstants.METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8 / 2),
StringUtils.repeat(auml, MetadataConstants.METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8 / 2),
StringUtils.repeat(euml,
- MetadataConstants.METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8 / 2))));
+ MetadataConstants.METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8 / 2))),
+ // #4. single-part name containing continuation char
+ DataverseName
+ .createSinglePartName("abc" + StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "def"),
+ // #5. multi-part name containing continuation chars
+ DataverseName
+ .create(Arrays.asList("abc" + StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "def",
+ StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "def")));
for (DataverseName dvNameOk : dvNameOkList) {
String sql = String.format("create dataverse %s;", dvNameOk);
@@ -172,8 +180,13 @@
DataverseName.createSinglePartName("abc\u0000def"),
// #2. leading whitespace
DataverseName.createSinglePartName(" abcdef"),
- // #2. file separator
- DataverseName.createSinglePartName("abc" + File.separatorChar + "def"));
+ // #3. file separator
+ DataverseName.createSinglePartName("abc" + File.separatorChar + "def"),
+ // #4. single-part starting with ^
+ DataverseName.createSinglePartName(StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "abcdef"),
+ // #5. multi-part w/ first part starting with ^
+ DataverseName
+ .create(Arrays.asList(StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "abcdef", "abcdef")));
ErrorCode invalidNameErrCode = ErrorCode.INVALID_DATABASE_OBJECT_NAME;
for (DataverseName dvNameOk : dvNameBadCharsList) {
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
index 0e78152..94a5f2a 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
@@ -60,7 +60,7 @@
dataset = tokens[--offset];
List<String> dvParts = new ArrayList<>();
String dvPart = tokens[--offset];
- while (dvPart.charAt(0) == StoragePathUtil.DATAVERSE_CONTINUATION_MARKER) {
+ while (dvPart.codePointAt(0) == StoragePathUtil.DATAVERSE_CONTINUATION_MARKER) {
dvParts.add(dvPart.substring(1));
dvPart = tokens[--offset];
}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
index 7f3d911..0a91ae8 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
@@ -89,7 +89,7 @@
String relPathFile = StoragePathUtil.prepareDataverseComponentName(dataverseName, feedName);
String storagePartitionPath = StoragePathUtil.prepareStoragePartitionPath(partition.getPartitionId());
// Note: feed adapter instances in a single node share the feed logger
- // format: 'storage dir name'/partition_#/dataverse_part1[/ dataverse_part2[...]]/feed/node
+ // format: 'storage dir name'/partition_#/dataverse_part1[^dataverse_part2[...]]/feed/node
File f = new File(storagePartitionPath + File.separator + relPathFile + File.separator + nodeName);
return StoragePathUtil.getFileSplitForClusterPartition(partition, f.getPath());
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
index a534954..de22cd6 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
@@ -1750,6 +1750,9 @@
throws AlgebricksException {
int totalLengthUTF8 = 0;
for (String dvNamePart : dataverseName.getParts()) {
+ if (totalLengthUTF8 == 0 && StoragePathUtil.DATAVERSE_CONTINUATION_MARKER == dvNamePart.codePointAt(0)) {
+ throw new AsterixException(ErrorCode.INVALID_DATABASE_OBJECT_NAME, sourceLoc, dvNamePart);
+ }
validateDatabaseObjectNameImpl(dvNamePart, sourceLoc);
totalLengthUTF8 += dvNamePart.getBytes(StandardCharsets.UTF_8).length;
}
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: cheshire-cat
Gerrit-Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
Gerrit-Change-Number: 10365
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-MessageType: newchange
Change in asterixdb[cheshire-cat]: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Michael Blow <mb...@apache.org>:
Hello Jenkins, Ian Maxon,
I'd like you to reexamine a change. Please visit
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365
to look at the new patch set (#2).
Change subject: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
......................................................................
[ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
---
M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
4 files changed, 21 insertions(+), 5 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/65/10365/2
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: cheshire-cat
Gerrit-Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
Gerrit-Change-Number: 10365
Gerrit-PatchSet: 2
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Ian Maxon <im...@uci.edu>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-CC: Anon. E. Moose #1000171
Gerrit-MessageType: newpatchset
Change in asterixdb[cheshire-cat]: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Michael Blow <mb...@apache.org>:
Michael Blow has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365 )
Change subject: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
......................................................................
[ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
---
M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
4 files changed, 21 insertions(+), 5 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/65/10365/1
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
index 946d116..eed9ae1 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
@@ -27,6 +27,7 @@
import org.apache.asterix.common.config.GlobalConfig;
import org.apache.asterix.common.exceptions.ErrorCode;
import org.apache.asterix.common.metadata.DataverseName;
+import org.apache.asterix.common.utils.StoragePathUtil;
import org.apache.asterix.metadata.utils.MetadataConstants;
import org.apache.asterix.test.common.TestExecutor;
import org.apache.asterix.testframework.context.TestCaseContext;
@@ -100,7 +101,14 @@
StringUtils.repeat(euml, MetadataConstants.METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8 / 2),
StringUtils.repeat(auml, MetadataConstants.METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8 / 2),
StringUtils.repeat(euml,
- MetadataConstants.METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8 / 2))));
+ MetadataConstants.METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8 / 2))),
+ // #4. single-part name containing continuation char
+ DataverseName
+ .createSinglePartName("abc" + StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "def"),
+ // #5. multi-part name containing continuation chars
+ DataverseName
+ .create(Arrays.asList("abc" + StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "def",
+ StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "def")));
for (DataverseName dvNameOk : dvNameOkList) {
String sql = String.format("create dataverse %s;", dvNameOk);
@@ -172,8 +180,13 @@
DataverseName.createSinglePartName("abc\u0000def"),
// #2. leading whitespace
DataverseName.createSinglePartName(" abcdef"),
- // #2. file separator
- DataverseName.createSinglePartName("abc" + File.separatorChar + "def"));
+ // #3. file separator
+ DataverseName.createSinglePartName("abc" + File.separatorChar + "def"),
+ // #4. single-part starting with ^
+ DataverseName.createSinglePartName(StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "abcdef"),
+ // #5. multi-part w/ first part starting with ^
+ DataverseName
+ .create(Arrays.asList(StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "abcdef", "abcdef")));
ErrorCode invalidNameErrCode = ErrorCode.INVALID_DATABASE_OBJECT_NAME;
for (DataverseName dvNameOk : dvNameBadCharsList) {
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
index 0e78152..94a5f2a 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
@@ -60,7 +60,7 @@
dataset = tokens[--offset];
List<String> dvParts = new ArrayList<>();
String dvPart = tokens[--offset];
- while (dvPart.charAt(0) == StoragePathUtil.DATAVERSE_CONTINUATION_MARKER) {
+ while (dvPart.codePointAt(0) == StoragePathUtil.DATAVERSE_CONTINUATION_MARKER) {
dvParts.add(dvPart.substring(1));
dvPart = tokens[--offset];
}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
index 7f3d911..0a91ae8 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
@@ -89,7 +89,7 @@
String relPathFile = StoragePathUtil.prepareDataverseComponentName(dataverseName, feedName);
String storagePartitionPath = StoragePathUtil.prepareStoragePartitionPath(partition.getPartitionId());
// Note: feed adapter instances in a single node share the feed logger
- // format: 'storage dir name'/partition_#/dataverse_part1[/ dataverse_part2[...]]/feed/node
+ // format: 'storage dir name'/partition_#/dataverse_part1[^dataverse_part2[...]]/feed/node
File f = new File(storagePartitionPath + File.separator + relPathFile + File.separator + nodeName);
return StoragePathUtil.getFileSplitForClusterPartition(partition, f.getPath());
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
index a534954..de22cd6 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
@@ -1750,6 +1750,9 @@
throws AlgebricksException {
int totalLengthUTF8 = 0;
for (String dvNamePart : dataverseName.getParts()) {
+ if (totalLengthUTF8 == 0 && StoragePathUtil.DATAVERSE_CONTINUATION_MARKER == dvNamePart.codePointAt(0)) {
+ throw new AsterixException(ErrorCode.INVALID_DATABASE_OBJECT_NAME, sourceLoc, dvNamePart);
+ }
validateDatabaseObjectNameImpl(dvNamePart, sourceLoc);
totalLengthUTF8 += dvNamePart.getBytes(StandardCharsets.UTF_8).length;
}
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: cheshire-cat
Gerrit-Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
Gerrit-Change-Number: 10365
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-MessageType: newchange
Change in asterixdb[cheshire-cat]: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Jenkins <je...@fulliautomatix.ics.uci.edu>:
Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365 )
Change subject: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
......................................................................
Patch Set 1: Integration-Tests-1
Integration Tests Failed
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/11575/ : UNSTABLE
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: cheshire-cat
Gerrit-Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
Gerrit-Change-Number: 10365
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Ian Maxon <im...@uci.edu>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-CC: Anon. E. Moose #1000171
Gerrit-Comment-Date: Thu, 04 Mar 2021 23:39:04 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
Change in asterixdb[cheshire-cat]: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Michael Blow <mb...@apache.org>:
Michael Blow has removed a vote from this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365 )
Change subject: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
......................................................................
Removed Integration-Tests-1 by Jenkins <je...@fulliautomatix.ics.uci.edu>
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: cheshire-cat
Gerrit-Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
Gerrit-Change-Number: 10365
Gerrit-PatchSet: 2
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Ian Maxon <im...@uci.edu>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-MessageType: deleteVote
Change in asterixdb[cheshire-cat]: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
Anon. E. Moose #1000171 has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365 )
Change subject: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
......................................................................
Patch Set 1:
Analytics Compatibility Compilation Successful
https://cbjenkins.page.link/4rawvpoJjuW4Pd9p7 : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: cheshire-cat
Gerrit-Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
Gerrit-Change-Number: 10365
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-CC: Anon. E. Moose #1000171
Gerrit-CC: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 04 Mar 2021 22:47:56 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
Change in asterixdb[cheshire-cat]: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
Anon. E. Moose #1000171 has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365 )
Change subject: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
......................................................................
Patch Set 2:
Analytics Compatibility Compilation Successful
https://cbjenkins.page.link/nEPXAGxEvCXemQzTA : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: cheshire-cat
Gerrit-Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
Gerrit-Change-Number: 10365
Gerrit-PatchSet: 2
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Ian Maxon <im...@uci.edu>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-CC: Anon. E. Moose #1000171
Gerrit-Comment-Date: Fri, 05 Mar 2021 00:04:27 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
Change in asterixdb[cheshire-cat]: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Michael Blow <mb...@apache.org>:
Michael Blow has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365 )
Change subject: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
......................................................................
[ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365
Reviewed-by: Ian Maxon <im...@uci.edu>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
---
M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
4 files changed, 21 insertions(+), 5 deletions(-)
Approvals:
Ian Maxon: Looks good to me, approved
Jenkins: Verified
Anon. E. Moose #1000171:
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
index 946d116..eed9ae1 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataManagerTest.java
@@ -27,6 +27,7 @@
import org.apache.asterix.common.config.GlobalConfig;
import org.apache.asterix.common.exceptions.ErrorCode;
import org.apache.asterix.common.metadata.DataverseName;
+import org.apache.asterix.common.utils.StoragePathUtil;
import org.apache.asterix.metadata.utils.MetadataConstants;
import org.apache.asterix.test.common.TestExecutor;
import org.apache.asterix.testframework.context.TestCaseContext;
@@ -100,7 +101,14 @@
StringUtils.repeat(euml, MetadataConstants.METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8 / 2),
StringUtils.repeat(auml, MetadataConstants.METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8 / 2),
StringUtils.repeat(euml,
- MetadataConstants.METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8 / 2))));
+ MetadataConstants.METADATA_OBJECT_NAME_LENGTH_LIMIT_UTF8 / 2))),
+ // #4. single-part name containing continuation char
+ DataverseName
+ .createSinglePartName("abc" + StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "def"),
+ // #5. multi-part name containing continuation chars
+ DataverseName
+ .create(Arrays.asList("abc" + StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "def",
+ StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "def")));
for (DataverseName dvNameOk : dvNameOkList) {
String sql = String.format("create dataverse %s;", dvNameOk);
@@ -172,8 +180,13 @@
DataverseName.createSinglePartName("abc\u0000def"),
// #2. leading whitespace
DataverseName.createSinglePartName(" abcdef"),
- // #2. file separator
- DataverseName.createSinglePartName("abc" + File.separatorChar + "def"));
+ // #3. file separator
+ DataverseName.createSinglePartName("abc" + File.separatorChar + "def"),
+ // #4. single-part starting with ^
+ DataverseName.createSinglePartName(StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "abcdef"),
+ // #5. multi-part w/ first part starting with ^
+ DataverseName
+ .create(Arrays.asList(StoragePathUtil.DATAVERSE_CONTINUATION_MARKER + "abcdef", "abcdef")));
ErrorCode invalidNameErrCode = ErrorCode.INVALID_DATABASE_OBJECT_NAME;
for (DataverseName dvNameOk : dvNameBadCharsList) {
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
index 0e78152..94a5f2a 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
@@ -60,7 +60,7 @@
dataset = tokens[--offset];
List<String> dvParts = new ArrayList<>();
String dvPart = tokens[--offset];
- while (dvPart.charAt(0) == StoragePathUtil.DATAVERSE_CONTINUATION_MARKER) {
+ while (dvPart.codePointAt(0) == StoragePathUtil.DATAVERSE_CONTINUATION_MARKER) {
dvParts.add(dvPart.substring(1));
dvPart = tokens[--offset];
}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
index 7f3d911..0a91ae8 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
@@ -89,7 +89,7 @@
String relPathFile = StoragePathUtil.prepareDataverseComponentName(dataverseName, feedName);
String storagePartitionPath = StoragePathUtil.prepareStoragePartitionPath(partition.getPartitionId());
// Note: feed adapter instances in a single node share the feed logger
- // format: 'storage dir name'/partition_#/dataverse_part1[/ dataverse_part2[...]]/feed/node
+ // format: 'storage dir name'/partition_#/dataverse_part1[^dataverse_part2[...]]/feed/node
File f = new File(storagePartitionPath + File.separator + relPathFile + File.separator + nodeName);
return StoragePathUtil.getFileSplitForClusterPartition(partition, f.getPath());
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
index a534954..5f7fdea 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
@@ -1751,6 +1751,9 @@
int totalLengthUTF8 = 0;
for (String dvNamePart : dataverseName.getParts()) {
validateDatabaseObjectNameImpl(dvNamePart, sourceLoc);
+ if (totalLengthUTF8 == 0 && StoragePathUtil.DATAVERSE_CONTINUATION_MARKER == dvNamePart.codePointAt(0)) {
+ throw new AsterixException(ErrorCode.INVALID_DATABASE_OBJECT_NAME, sourceLoc, dvNamePart);
+ }
totalLengthUTF8 += dvNamePart.getBytes(StandardCharsets.UTF_8).length;
}
if (totalLengthUTF8 > MetadataConstants.DATAVERSE_NAME_TOTAL_LENGTH_LIMIT_UTF8) {
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: cheshire-cat
Gerrit-Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
Gerrit-Change-Number: 10365
Gerrit-PatchSet: 3
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Ian Maxon <im...@uci.edu>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-MessageType: merged
Change in asterixdb[cheshire-cat]: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Ian Maxon <im...@uci.edu>:
Ian Maxon has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365 )
Change subject: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
......................................................................
Patch Set 1: Code-Review+2
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: cheshire-cat
Gerrit-Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
Gerrit-Change-Number: 10365
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Ian Maxon <im...@uci.edu>
Gerrit-CC: Anon. E. Moose #1000171
Gerrit-CC: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Thu, 04 Mar 2021 22:57:35 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
Change in asterixdb[cheshire-cat]: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
Anon. E. Moose #1000171 has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365 )
Change subject: [ASTERIXDB-2841][*DB][STO] Prevent ^ as first character in dv first part
......................................................................
Patch Set 2: Contrib+1
Analytics Compatibility Tests Successful
https://cbjenkins.page.link/CmV21KgtszyX2XrSA : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10365
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: cheshire-cat
Gerrit-Change-Id: I5e5aeea9ec38320f7f14877b1ee3bf904519ee66
Gerrit-Change-Number: 10365
Gerrit-PatchSet: 2
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Ian Maxon <im...@uci.edu>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Fri, 05 Mar 2021 01:56:36 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment