Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Temporal: adapted to latest working draft #118

Merged
merged 84 commits into from Jul 22, 2021
Merged
Show file tree
Hide file tree
Changes from 60 commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
45a5b4a
Adapted to latest working draft
ralfhandl Mar 25, 2021
8470594
Nullable
ralfhandl Mar 25, 2021
4f01a08
TODOs as comments
ralfhandl Apr 14, 2021
17caaef
Merge remote-tracking branch 'origin/master' into temporal
HeikoTheissen Apr 16, 2021
f39e6e3
Merge branch 'master' into temporal
ralfhandl Apr 23, 2021
2a2fbae
Update vocabularies/Org.OData.Temporal.V1.xml
ralfhandl Apr 23, 2021
90af9f7
Refreshed
ralfhandl Apr 23, 2021
56c315d
Added example 9 - annotation for containment navigation property
ralfhandl May 7, 2021
a289741
Merge branch 'master' into temporal
ralfhandl May 7, 2021
947d46f
Aligned with specification
ralfhandl May 7, 2021
d8d33ae
Moved time slice boundaries to TimeDImensionType
ralfhandl May 10, 2021
2e74d96
Merge branch 'master' into temporal
ralfhandl May 10, 2021
cb2d1c4
Corrected enum member names
ralfhandl May 10, 2021
58ff7ab
Removed left-over properties
ralfhandl May 10, 2021
4c18871
Removed another leftover property
ralfhandl May 10, 2021
80af54c
Navigation property bindings, corrected annotation structure
ralfhandl May 21, 2021
75ba0dc
Updated description
ralfhandl May 25, 2021
f57c098
Move "ApplicationTime" to term name
ralfhandl May 25, 2021
8a24f30
Refreshed
ralfhandl May 25, 2021
6c54765
Replace enum types with inheritance
ralfhandl May 25, 2021
45133e4
Apply suggestions from code review
ralfhandl May 25, 2021
8b1103f
Adapted after review
ralfhandl May 25, 2021
7884729
Merge branch 'master' into temporal
ralfhandl May 27, 2021
3ddf072
Removed "granularity" and "dimension"
ralfhandl Jun 11, 2021
e6f7b53
Removed Granularity
ralfhandl Jun 11, 2021
b50fca9
Apply suggestions from code review
ralfhandl Jun 15, 2021
4350bba
LongDescription for CollectionKindSnapshot
ralfhandl Jun 15, 2021
cdead51
Moved ObjectKey, refreshed
ralfhandl Jun 15, 2021
b7ce81e
Renaming
ralfhandl Jun 15, 2021
563dd60
Apply suggestions from code review
ralfhandl Jun 15, 2021
ecb3fb5
Refreshed
ralfhandl Jun 15, 2021
e658706
Update vocabularies/Org.OData.Temporal.V1.xml
ralfhandl Jun 15, 2021
0be52c1
Refreshed
ralfhandl Jun 15, 2021
f39ac35
Moved SupporteActions to DataHistoryVisible
ralfhandl Jun 16, 2021
d213fd9
Update vocabularies/Org.OData.Temporal.V1.xml
ralfhandl Jun 16, 2021
b5a344c
Update vocabularies/Org.OData.Temporal.V1.xml
ralfhandl Jun 16, 2021
a2de66b
Refreshed
ralfhandl Jun 16, 2021
cf8b09b
Renamed examples, reordered term properties and their types
ralfhandl Jun 17, 2021
0b0363a
TC homework 2021-06-10 (#128)
HeikoTheissen Jun 17, 2021
d8d6cc1
Tried to define `Upsert` with reference to `Update`
HeikoTheissen Jun 17, 2021
f1825e4
Temporal.QualifiedActionName -> Core.QualifiedActionName
HeikoTheissen Jun 18, 2021
bb02d5d
Temporal.QualifiedActionName -> Core.QualifiedActionName
HeikoTheissen Jun 18, 2021
9490806
Homework for more actions
HeikoTheissen Jun 18, 2021
5d3507a
typo
HeikoTheissen Jun 18, 2021
1c8dc58
Explain the term "shortening"
HeikoTheissen Jun 18, 2021
65c3c8d
Aligned with other actions
ralfhandl Jun 18, 2021
9816d3c
Update vocabularies/Org.OData.Temporal.V1.xml
ralfhandl Jun 18, 2021
a8e1be2
Refreshed
ralfhandl Jun 18, 2021
69395be
1st attempt at Synchronize
HeikoTheissen Jun 18, 2021
6d49b2a
Update vocabularies/Org.OData.Temporal.V1.xml
ralfhandl Jun 18, 2021
5487a0d
Update Org.OData.Temporal.V1.json
ralfhandl Jun 18, 2021
6b35e60
Merge branch 'temporal' of
HeikoTheissen Jun 18, 2021
f2ad90f
Merge branch 'temporal' of git@github.com:oasis-tcs/odata-vocabularie…
HeikoTheissen Jun 18, 2021
42df2e7
Spell out "semantically equivalent"
HeikoTheissen Jun 18, 2021
fb166a4
Merge branch 'master' into temporal
HeikoTheissen Jun 24, 2021
3cd2a34
Align wording with spec text
HeikoTheissen Jun 25, 2021
8c5c46e
4.2.1 -> 4.2.2
HeikoTheissen Jun 25, 2021
abfc548
Undo side-effects of #128
HeikoTheissen Jul 8, 2021
538b0a2
Temporal actions on snapshot collections
HeikoTheissen Jul 9, 2021
9e4dc6a
Merge remote-tracking branch 'origin/master' into temporal
HeikoTheissen Jul 9, 2021
68643a4
Merge remote-tracking branch 'origin/master' into temporal
HeikoTheissen Jul 9, 2021
57b9ecd
Intervals -> Periods
HeikoTheissen Jul 9, 2021
1b91c72
rephrase definition of DataHistorySnapshot
HeikoTheissen Jul 9, 2021
9fc64ca
rephrase definition of Period
HeikoTheissen Jul 9, 2021
2c7092b
Merge branch 'main' into temporal
HeikoTheissen Jul 9, 2021
40a8509
Added Heiko as editor
ralfhandl Jul 12, 2021
d536a5d
Update Org.OData.Temporal.V1.md
ralfhandl Jul 12, 2021
f6ab7ad
ralfhandl's suggestions
HeikoTheissen Jul 12, 2021
b54b870
@ralfhandl's suggestions
HeikoTheissen Jul 12, 2021
e54990b
+if
HeikoTheissen Jul 12, 2021
9726f0e
typo
HeikoTheissen Jul 13, 2021
8e9d0a9
Apply suggestions from code review
ralfhandl Jul 13, 2021
7148a59
Refreshed
ralfhandl Jul 13, 2021
e34e4b8
minor rephrasing
HeikoTheissen Jul 13, 2021
6991e58
rephrase definition of DataHistorySnapshot
HeikoTheissen Jul 14, 2021
f81b627
Apply suggestions from code review
ralfhandl Jul 14, 2021
54739f8
Refreshed
ralfhandl Jul 14, 2021
559c728
regeneration
HeikoTheissen Jul 14, 2021
bf22dfd
Merge branch 'temporal' of https://github.com/oasis-tcs/odata-vocabul…
ralfhandl Jul 14, 2021
c17f743
+SQL reference for Delete action
HeikoTheissen Jul 14, 2021
7980738
Merge branch 'temporal' of git@github.com:oasis-tcs/odata-vocabularie…
HeikoTheissen Jul 14, 2021
142928c
Merge remote-tracking branch 'origin/main' into temporal
HeikoTheissen Jul 15, 2021
fe9f00c
TC discussion 2021-07-15 (#138)
HeikoTheissen Jul 16, 2021
330a7c6
Minor changes
ralfhandl Jul 16, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
140 changes: 140 additions & 0 deletions examples/Org.OData.Temporal.V1.history-sample.json
@@ -0,0 +1,140 @@
{
"$Version": "4.0",
"$Reference": {
"https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.json": {
"$Include": [
{
"$Namespace": "Org.OData.Core.V1",
"$Alias": "Core"
}
]
},
"https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Temporal.V1.json": {
"$Include": [
{
"$Namespace": "Org.OData.Temporal.V1",
"$Alias": "Temporal"
}
]
}
},
"org.example.odata.orgservice": {
"$Alias": "OrgModel",
"Employee": {
"$Kind": "EntityType",
"$Key": [
"ID"
],
"ID": {},
"history": {
"$Kind": "NavigationProperty",
"$Collection": true,
"$Type": "OrgModel.Employee_history",
"$ContainsTarget": true
}
},
"Employee_history": {
"$Kind": "EntityType",
"$Key": [
"From"
],
"From": {
"$Type": "Edm.Date"
},
"To": {
"$Type": "Edm.Date"
},
"Name": {},
"Jobtitle": {
"$Nullable": true
},
"Department": {
"$Kind": "NavigationProperty",
"$Type": "OrgModel.Department",
"$Nullable": true
}
},
"Department": {
"$Kind": "EntityType",
"$Key": [
"ID"
],
"ID": {},
"history": {
"$Kind": "NavigationProperty",
"$Collection": true,
"$Type": "OrgModel.Department_history",
"$ContainsTarget": true
}
},
"Department_history": {
"$Kind": "EntityType",
"$Key": [
"From"
],
"From": {
"$Type": "Edm.Date"
},
"To": {
"$Type": "Edm.Date"
},
"Name": {},
"Budget": {
"$Type": "Edm.Decimal",
"$Nullable": true,
"$Scale": 0
}
},
"Default": {
"$Kind": "EntityContainer",
"Employees": {
"$Collection": true,
"$Type": "OrgModel.Employee",
"$NavigationPropertyBinding": {
"history/Department": "Departments"
}
},
"Departments": {
"$Collection": true,
"$Type": "OrgModel.Department"
}
},
"$Annotations": {
"OrgModel.Default/Employees/history": {
"@Temporal.ApplicationTimeSupport": {
"UnitOfTime": {
"@odata.type": "https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Temporal.V1.xml#Temporal.UnitOfTimeDate"
},
"DataHistory": {
"@odata.type": "https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Temporal.V1.xml#Temporal.DataHistoryTimeSlice",
"TimeSliceStart": "history/From",
"TimeSliceEnd": "history/To",
"SupportedActions": [
"Temporal.Update",
"Temporal.Upsert",
"Temporal.Delete"
]
}
}
},
"OrgModel.Default/Departments/history": {
"@Temporal.ApplicationTimeSupport": {
"UnitOfTime": {
"@odata.type": "https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Temporal.V1.xml#Temporal.UnitOfTimeDate"
},
"DataHistory": {
"@odata.type": "https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Temporal.V1.xml#Temporal.DataHistoryTimeSlice",
"TimeSliceStart": "history/From",
"TimeSliceEnd": "history/To",
"SupportedActions": [
"Temporal.Update",
"Temporal.Upsert",
"Temporal.Delete"
]
}
}
}
}
},
"$EntityContainer": "org.example.odata.orgservice.Default"
}
104 changes: 104 additions & 0 deletions examples/Org.OData.Temporal.V1.history-sample.xml
@@ -0,0 +1,104 @@
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<edmx:Reference Uri="https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.xml">
<edmx:Include Namespace="Org.OData.Core.V1" Alias="Core" />
</edmx:Reference>
<edmx:Reference Uri="https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Temporal.V1.xml">
<edmx:Include Alias="Temporal" Namespace="Org.OData.Temporal.V1" />
</edmx:Reference>
<edmx:DataServices>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Alias="OrgModel" Namespace="org.example.odata.orgservice">

<EntityType Name="Employee">
<Key>
<PropertyRef Name="ID" />
</Key>
<Property Name="ID" Type="Edm.String" Nullable="false" />
<NavigationProperty Name="history" Type="Collection(OrgModel.Employee_history)" ContainsTarget="true" />
</EntityType>

<EntityType Name="Employee_history">
<Key>
<PropertyRef Name="From" />
</Key>
<Property Name="From" Type="Edm.Date" Nullable="false" />
<Property Name="To" Type="Edm.Date" Nullable="false" />
<Property Name="Name" Type="Edm.String" Nullable="false" />
<Property Name="Jobtitle" Type="Edm.String" />
<NavigationProperty Name="Department" Type="OrgModel.Department" />
</EntityType>

<EntityType Name="Department">
<Key>
<PropertyRef Name="ID" />
</Key>
<Property Name="ID" Type="Edm.String" Nullable="false" />
<NavigationProperty Name="history" Type="Collection(OrgModel.Department_history)" ContainsTarget="true" />
</EntityType>

<EntityType Name="Department_history">
<Key>
<PropertyRef Name="From" />
</Key>
<Property Name="From" Type="Edm.Date" Nullable="false" />
<Property Name="To" Type="Edm.Date" Nullable="false" />
<Property Name="Name" Type="Edm.String" Nullable="false" />
<Property Name="Budget" Type="Edm.Decimal" />
</EntityType>

<EntityContainer Name="Default">
<EntitySet Name="Employees" EntityType="OrgModel.Employee">
<NavigationPropertyBinding Path="history/Department" Target="Departments" />
</EntitySet>
<EntitySet Name="Departments" EntityType="OrgModel.Department" />
</EntityContainer>

<Annotations Target="OrgModel.Default/Employees/history">
<Annotation Term="Temporal.ApplicationTimeSupport">
<Record>
<PropertyValue Property="UnitOfTime">
<Record Type="Temporal.UnitOfTimeDate" />
</PropertyValue>
<PropertyValue Property="DataHistory">
<Record Type="Temporal.DataHistoryTimeSlice">
<PropertyValue Property="TimeSliceStart" PropertyPath="history/From" />
<PropertyValue Property="TimeSliceEnd" PropertyPath="history/To" />
<PropertyValue Property="SupportedActions">
<Collection>
<String>Temporal.Update</String>
<String>Temporal.Upsert</String>
<String>Temporal.Delete</String>
</Collection>
</PropertyValue>
</Record>
</PropertyValue>
</Record>
</Annotation>
</Annotations>

<Annotations Target="OrgModel.Default/Departments/history">
<Annotation Term="Temporal.ApplicationTimeSupport">
<Record>
<PropertyValue Property="UnitOfTime">
<Record Type="Temporal.UnitOfTimeDate" />
</PropertyValue>
<PropertyValue Property="DataHistory">
<Record Type="Temporal.DataHistoryTimeSlice">
<PropertyValue Property="TimeSliceStart" PropertyPath="history/From" />
<PropertyValue Property="TimeSliceEnd" PropertyPath="history/To" />
<PropertyValue Property="SupportedActions">
<Collection>
<String>Temporal.Update</String>
<String>Temporal.Upsert</String>
<String>Temporal.Delete</String>
</Collection>
</PropertyValue>
</Record>
</PropertyValue>
</Record>
</Annotation>
</Annotations>

</Schema>
</edmx:DataServices>
</edmx:Edmx>
87 changes: 87 additions & 0 deletions examples/Org.OData.Temporal.V1.snapshot-sample.json
@@ -0,0 +1,87 @@
{
"$Version": "4.0",
"$Reference": {
"https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.json": {
"$Include": [
{
"$Namespace": "Org.OData.Core.V1",
"$Alias": "Core"
}
]
},
"https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Temporal.V1.json": {
"$Include": [
{
"$Namespace": "Org.OData.Temporal.V1",
"$Alias": "Temporal"
}
]
}
},
"org.example.odata.orgservice": {
"$Alias": "OrgModel",
"Employee": {
"$Kind": "EntityType",
"$Key": [
"ID"
],
"ID": {},
"Name": {},
"Jobtitle": {
"$Nullable": true
},
"Department": {
"$Kind": "NavigationProperty",
"$Type": "OrgModel.Department",
"$Nullable": true
}
},
"Department": {
"$Kind": "EntityType",
"$Key": [
"ID"
],
"ID": {},
"Name": {},
"Employees": {
"$Kind": "NavigationProperty",
"$Collection": true,
"$Type": "OrgModel.Employee"
}
},
"Default": {
"$Kind": "EntityContainer",
"Employees": {
"$Collection": true,
"$Type": "OrgModel.Employee",
"$NavigationPropertyBinding": {
"Department": "Departments"
},
"@Temporal.ApplicationTimeSupport": {
"UnitOfTime": {
"@odata.type": "https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Temporal.V1.xml#Temporal.UnitOfTimeDate"
},
"DataHistory": {
"@odata.type": "https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Temporal.V1.xml#Temporal.DataHistorySnapshot"
}
}
},
"Departments": {
"$Collection": true,
"$Type": "OrgModel.Department",
"$NavigationPropertyBinding": {
"Employees": "Employees"
},
"@Temporal.ApplicationTimeSupport": {
"UnitOfTime": {
"@odata.type": "https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Temporal.V1.xml#Temporal.UnitOfTimeDate"
},
"DataHistory": {
"@odata.type": "https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Temporal.V1.xml#Temporal.DataHistorySnapshot"
}
}
}
}
},
"$EntityContainer": "org.example.odata.orgservice.Default"
}