Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
C
caosdb-proto
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
caosdb
Software
caosdb-proto
Commits
6f258fae
Verified
Commit
6f258fae
authored
3 years ago
by
Timm Fitschen
Browse files
Options
Downloads
Patches
Plain Diff
WIP: insert delete
parent
4845aa8e
No related branches found
No related tags found
1 merge request
!1
ENH: Allow insertion and deletion of single entities
Pipeline
#10814
failed
3 years ago
Stage: test
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
proto/caosdb/entity/v1alpha1/main.proto
+157
-10
157 additions, 10 deletions
proto/caosdb/entity/v1alpha1/main.proto
with
157 additions
and
10 deletions
proto/caosdb/entity/v1alpha1/main.proto
+
157
−
10
View file @
6f258fae
...
@@ -137,7 +137,56 @@ message ByIdRequest {
...
@@ -137,7 +137,56 @@ message ByIdRequest {
// Response to a retrieve request
// Response to a retrieve request
message
RetrieveResponse
{
message
RetrieveResponse
{
// Payload of the retrieval
// Payload of the retrieval
Entity
entity
=
1
;
oneof
query_response
{
Entity
entity
=
1
;
SelectQueryResult
select_result
=
3
;
CountResult
=
4
;
}
}
// Response to single retrieve request
message
SingleRetrieveRequest
{
// Retrieve by query or by id
QueryOrIdRequest
retrieve_request
=
1
;
}
// CaosDB Query
message
Query
{
// The string representation of the query, e.g. "FIND Person WITH name = Aisha"
string
query
=
1
;
}
message
SelectQueryRows
{
repeated
string
cells
=
1
;
}
message
SelectQueryResult
{
SelectQueryRows
header
=
1
;
repeated
SelectQueryRows
data_rows
=
2
;
}
message
SingleRetrieveResponse
{
RetrieveResponse
retrieve_response
=
1
;
// Transaction errors.
repeated
Message
transaction_errors
=
2
;
// Transaction warnings.
repeated
Message
transaction_warnings
=
3
;
// Transaction info messages.
repeated
Message
transaction_infos
=
4
;
}
message
QueryOrIdRequest
{
oneof
wrapped_request
{
// A single id
ByIdRequest
by_id
=
1
;
// A query
QueryRequest
query
=
2
;
}
}
message
SingleDeleteResponse
{
IdResponse
delete_response
=
1
;
// Transaction errors.
// Transaction errors.
repeated
Message
errors
=
2
;
repeated
Message
errors
=
2
;
// Transaction warnings.
// Transaction warnings.
...
@@ -146,19 +195,117 @@ message RetrieveResponse {
...
@@ -146,19 +195,117 @@ message RetrieveResponse {
repeated
Message
infos
=
4
;
repeated
Message
infos
=
4
;
}
}
// Wrapper for different kinds of retrievals (currently, only by ID). We need
message
TransactionResponse
{
// this in order to make a repeated field of these different kinds of
oneof
wrapped_response
{
// retrievals.
IdResponse
delete_response
=
1
;
message
RetrieveRequest
{
IdResponse
update_response
=
2
;
// Wrapped special kind of request.
RetrieveResponse
retrieve_response
=
3
;
oneof
wrapped_request
{
IdResponse
insert_response
=
4
;
// A single retrieve
ByIdRequest
by_id
=
1
;
}
}
}
}
message
SingleTransactionResponse
{
TransactionResponse
response
=
1
;
// Transaction errors.
repeated
Message
transaction_errors
=
2
;
// Transaction warnings.
repeated
Message
transaction_warnings
=
3
;
// Transaction info messages.
repeated
Message
transaction_infos
=
4
;
}
message
MultiTransactionResponse
{
repeated
TransactionResponse
responses
=
1
;
// Transaction errors.
repeated
Message
transaction_errors
=
2
;
// Transaction warnings.
repeated
Message
transaction_warnings
=
3
;
// Transaction info messages.
repeated
Message
transaction_infos
=
4
;
}
message
IdResponse
{
string
id
=
1
;
// Entity errors.
repeated
Message
entity_errors
=
2
;
// Entity warnings.
repeated
Message
entity_warnings
=
3
;
// Entity info messages.
repeated
Message
entity_infos
=
4
;
}
message
SingleDeleteRequest
{
// Delete by query or by id
QueryOrIdRequest
retrieve_request
=
1
;
}
message
FullEntityRequest
{
// Payload of the entity request
Entity
entity
=
1
;
}
message
SingleUpdateRequest
{
FullEntityRequest
update_request
=
1
;
}
message
SingleInsertRequest
{
FullEntityRequest
insert_request
=
1
;
}
message
SingleInsertResponse
{
// Reponse contains the id of the new entity.
IdResponse
insert_response
=
1
;
// Transaction errors.
repeated
Message
transaction_errors
=
2
;
// Transaction warnings.
repeated
Message
transaction_warnings
=
3
;
// Transaction info messages.
repeated
Message
transaction_infos
=
4
;
}
message
SingleUpdateResponse
{
// Reponse contains the id of the updated entity.
IdResponse
update_response
=
1
;
// Transaction errors.
repeated
Message
transaction_errors
=
2
;
// Transaction warnings.
repeated
Message
transaction_warnings
=
3
;
// Transaction info messages.
repeated
Message
transaction_infos
=
4
;
}
message
MultiRetrieveRequest
{
// Wrapped retrieve requests
repeated
QueryOrIdRequest
requests
=
1
;
}
message
MultiRetrieveResponse
{
repeated
RetrieveResponse
response
=
1
;
// Transaction errors.
repeated
Message
transaction_errors
=
2
;
// Transaction warnings.
repeated
Message
transaction_warnings
=
3
;
// Transaction info messages.
repeated
Message
transaction_infos
=
4
;
}
// Entity Transaction Service
// Entity Transaction Service
service
EntityTransactionService
{
service
EntityTransactionService
{
// Issue a single retrieve request
// Issue a single retrieve request
rpc
Retrieve
(
RetrieveRequest
)
returns
(
RetrieveResponse
);
rpc
SingleRetrieve
(
SingleRetrieveRequest
)
returns
(
SingleRetrieveResponse
);
// Issue a single retrieve request
rpc
SingleInsert
(
SingleInsertRequest
)
returns
(
SingleInsertResponse
);
// Issue a single delete request
rpc
SingleDelete
(
SingleDeleteRequest
)
returns
(
SingleDeleteResponse
);
// Issue a single update request
rpc
SingleUpdate
(
SingleUpdateRequest
)
returns
(
SingleUpdateResponse
);
// Issue a single retrieve request
rpc
MultiRetrieve
(
MultiRetrieveRequest
)
returns
(
MultiRetrieveResponse
);
// Issue a single retrieve request
/*rpc Insert(MultiInsertRequest) returns (MultiInsertResponse);*/
/*// Issue a single delete request*/
/*rpc Delete(MultiDeleteRequest) returns (MultiDeleteResponse);*/
/*// Issue a single update request*/
/*rpc Update(MultiUpdateRequest) returns (MultiUpdateResponse);*/
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment