mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-05-05 07:53:16 +01:00
This reverts commit 257256f9155653bde88c2ef3ee9f832c5ee48d76.
This commit is contained in:
parent
8eb53674dc
commit
10f5a5fbfe
@ -1037,7 +1037,6 @@ export const DocumentsTabComponent: React.FunctionComponent<IDocumentsTabCompone
|
|||||||
);
|
);
|
||||||
|
|
||||||
const selectedDocumentId = documentIds[clickedRowIndex as number];
|
const selectedDocumentId = documentIds[clickedRowIndex as number];
|
||||||
const originalPartitionKeyValue = selectedDocumentId.partitionKeyValue;
|
|
||||||
selectedDocumentId.partitionKeyValue = partitionKeyValueArray;
|
selectedDocumentId.partitionKeyValue = partitionKeyValueArray;
|
||||||
|
|
||||||
onExecutionErrorChange(false);
|
onExecutionErrorChange(false);
|
||||||
@ -1073,10 +1072,6 @@ export const DocumentsTabComponent: React.FunctionComponent<IDocumentsTabCompone
|
|||||||
setColumnDefinitionsFromDocument(documentContent);
|
setColumnDefinitionsFromDocument(documentContent);
|
||||||
},
|
},
|
||||||
(error) => {
|
(error) => {
|
||||||
// in case of any kind of failures of accidently changing partition key, restore the original
|
|
||||||
// so that when user navigates away from current document and comes back,
|
|
||||||
// it doesnt fail to load due to using the invalid partition keys
|
|
||||||
selectedDocumentId.partitionKeyValue = originalPartitionKeyValue;
|
|
||||||
onExecutionErrorChange(true);
|
onExecutionErrorChange(true);
|
||||||
const errorMessage = getErrorMessage(error);
|
const errorMessage = getErrorMessage(error);
|
||||||
useDialog.getState().showOkModalDialog("Update document failed", errorMessage);
|
useDialog.getState().showOkModalDialog("Update document failed", errorMessage);
|
||||||
|
@ -35,13 +35,6 @@ describe("Query Utils", () => {
|
|||||||
version: 2,
|
version: 2,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
const generatePartitionKeysForPaths = (paths: string[]): DataModels.PartitionKey => {
|
|
||||||
return {
|
|
||||||
paths: paths,
|
|
||||||
kind: "Hash",
|
|
||||||
version: 2,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
describe("buildDocumentsQueryPartitionProjections()", () => {
|
describe("buildDocumentsQueryPartitionProjections()", () => {
|
||||||
it("should return empty string if partition key is undefined", () => {
|
it("should return empty string if partition key is undefined", () => {
|
||||||
@ -96,18 +89,6 @@ describe("Query Utils", () => {
|
|||||||
|
|
||||||
expect(query).toContain("c.id");
|
expect(query).toContain("c.id");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should always include {} for any missing partition keys", () => {
|
|
||||||
const query = QueryUtils.buildDocumentsQuery(
|
|
||||||
"",
|
|
||||||
["a", "b", "c"],
|
|
||||||
generatePartitionKeysForPaths(["/a", "/b", "/c"]),
|
|
||||||
[],
|
|
||||||
);
|
|
||||||
expect(query).toContain('IIF(IS_DEFINED(c["a"]), c["a"], {})');
|
|
||||||
expect(query).toContain('IIF(IS_DEFINED(c["b"]), c["b"], {})');
|
|
||||||
expect(query).toContain('IIF(IS_DEFINED(c["c"]), c["c"], {})');
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("queryPagesUntilContentPresent()", () => {
|
describe("queryPagesUntilContentPresent()", () => {
|
||||||
@ -220,6 +201,18 @@ describe("Query Utils", () => {
|
|||||||
expect(expectedPartitionKeyValues).toContain(documentContent["Category"]);
|
expect(expectedPartitionKeyValues).toContain(documentContent["Category"]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should extract no partition key values in the case nested partition key", () => {
|
||||||
|
const singlePartitionKeyDefinition: PartitionKeyDefinition = {
|
||||||
|
kind: PartitionKeyKind.Hash,
|
||||||
|
paths: ["/Location.type"],
|
||||||
|
};
|
||||||
|
const partitionKeyValues: PartitionKey[] = extractPartitionKeyValues(
|
||||||
|
documentContent,
|
||||||
|
singlePartitionKeyDefinition,
|
||||||
|
);
|
||||||
|
expect(partitionKeyValues.length).toBe(0);
|
||||||
|
});
|
||||||
|
|
||||||
it("should extract all partition key values for hierarchical and nested partition keys", () => {
|
it("should extract all partition key values for hierarchical and nested partition keys", () => {
|
||||||
const mixedPartitionKeyDefinition: PartitionKeyDefinition = {
|
const mixedPartitionKeyDefinition: PartitionKeyDefinition = {
|
||||||
kind: PartitionKeyKind.MultiHash,
|
kind: PartitionKeyKind.MultiHash,
|
||||||
@ -232,52 +225,5 @@ describe("Query Utils", () => {
|
|||||||
expect(partitionKeyValues.length).toBe(2);
|
expect(partitionKeyValues.length).toBe(2);
|
||||||
expect(partitionKeyValues).toEqual(["United States", "Point"]);
|
expect(partitionKeyValues).toEqual(["United States", "Point"]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("if any partition key is null or empty string, the partitionKeyValues shall match", () => {
|
|
||||||
const newDocumentContent = {
|
|
||||||
...documentContent,
|
|
||||||
...{
|
|
||||||
Country: null,
|
|
||||||
Location: {
|
|
||||||
type: "",
|
|
||||||
coordinates: [-121.49, 46.206],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const mixedPartitionKeyDefinition: PartitionKeyDefinition = {
|
|
||||||
kind: PartitionKeyKind.MultiHash,
|
|
||||||
paths: ["/Country", "/Location/type"],
|
|
||||||
};
|
|
||||||
const partitionKeyValues: PartitionKey[] = extractPartitionKeyValues(
|
|
||||||
newDocumentContent,
|
|
||||||
mixedPartitionKeyDefinition,
|
|
||||||
);
|
|
||||||
expect(partitionKeyValues.length).toBe(2);
|
|
||||||
expect(partitionKeyValues).toEqual([null, ""]);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("if any partition key doesn't exist, it should still set partitionkey value as {}", () => {
|
|
||||||
const newDocumentContent = {
|
|
||||||
...documentContent,
|
|
||||||
...{
|
|
||||||
Country: null,
|
|
||||||
Location: {
|
|
||||||
coordinates: [-121.49, 46.206],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const mixedPartitionKeyDefinition: PartitionKeyDefinition = {
|
|
||||||
kind: PartitionKeyKind.MultiHash,
|
|
||||||
paths: ["/Country", "/Location/type"],
|
|
||||||
};
|
|
||||||
const partitionKeyValues: PartitionKey[] = extractPartitionKeyValues(
|
|
||||||
newDocumentContent,
|
|
||||||
mixedPartitionKeyDefinition,
|
|
||||||
);
|
|
||||||
expect(partitionKeyValues.length).toBe(2);
|
|
||||||
expect(partitionKeyValues).toEqual([null, {}]);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -61,9 +61,8 @@ export function buildDocumentsQueryPartitionProjections(
|
|||||||
projectedProperty += `[${projection}]`;
|
projectedProperty += `[${projection}]`;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const fullAccess = `${collectionAlias}${projectedProperty}`;
|
|
||||||
const wrappedProjection = `IIF(IS_DEFINED(${fullAccess}), ${fullAccess}, {})`;
|
projections.push(`${collectionAlias}${projectedProperty}`);
|
||||||
projections.push(wrappedProjection);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return projections.join(",");
|
return projections.join(",");
|
||||||
@ -131,8 +130,6 @@ export const extractPartitionKeyValues = (
|
|||||||
|
|
||||||
if (value !== undefined) {
|
if (value !== undefined) {
|
||||||
partitionKeyValues.push(value);
|
partitionKeyValues.push(value);
|
||||||
} else {
|
|
||||||
partitionKeyValues.push({});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user