Added quote escaping for partition key extraction (#2403)

This commit is contained in:
sunghyunkang1111
2026-02-27 14:58:14 -06:00
committed by GitHub
parent 2e5c355479
commit 204444b878
5 changed files with 147 additions and 5 deletions
+23
View File
@@ -249,4 +249,27 @@ export const documentTestCases: DocumentTestCase[] = [
},
],
},
{
name: "Single Double-Quoted Partition Key",
databaseId: "e2etests-sql-readonly",
containerId: "doubleQuotedPartitionKey",
documents: [
{
documentId: "doubleQuotedPartitionKey",
partitionKeys: [{ key: "/partition-key", value: "doubleQuotedValue" }],
},
{
documentId: "doubleQuotedPartitionKey_empty_string",
partitionKeys: [{ key: "/partition-key", value: "" }],
},
{
documentId: "doubleQuotedPartitionKey_null",
partitionKeys: [{ key: "/partition-key", value: null }],
},
{
documentId: "doubleQuotedPartitionKey_missing",
partitionKeys: [],
},
],
},
];
+8 -1
View File
@@ -251,7 +251,14 @@ export const setPartitionKeys = (partitionKeys: PartitionKey[]) => {
partitionKeys.forEach((partitionKey) => {
const { key: keyPath, value: keyValue } = partitionKey;
const cleanPath = keyPath.startsWith("/") ? keyPath.slice(1) : keyPath;
const keys = cleanPath.split("/");
const keys = cleanPath.split("/").map((segment) => {
// Strip enclosing double quotes from partition key path segments
// e.g., '"partition-key"' -> 'partition-key'
if (segment.length >= 2 && segment.charAt(0) === '"' && segment.charAt(segment.length - 1) === '"') {
return segment.slice(1, -1);
}
return segment;
});
let current = result;
keys.forEach((key, index) => {