This page has been superceded by the content of the latest RegRep 4 specifications.

This page defines the proposed semantics of update vs. create in RepRep 4.

Issues in RegRep 3

Proposal for RegRep 4

In RegRep 4 the proposed changes in this area are:

Create-Only Mode Rules:

Update-Only Mode Rules:

Create-and-Update Mode Rules:

The table below articulates behavior for all identified cases for each mode of the Submit protocol

Submit Semantics

Case #

ID Specified

LID Specified

Specified ID Already Exists

Specified LID Already Exists

Create-Only Mode Semantcis

Update-Only Mode Semantics

Create-and-Update Mode Semantics

0

0

0

N/A

N/A

InvalidRequestException

InvalidRequestException

InvalidRequestException

1

0

0

N/A

N/A

InvalidRequestException

InvalidRequestException

InvalidRequestException

2

0

0

N/A

N/A

InvalidRequestException

InvalidRequestException

InvalidRequestException

3

0

0

N/A

N/A

InvalidRequestException

InvalidRequestException

InvalidRequestException

4

0

1

N/A

0

generate id, create object

InvalidRequestException

InvalidRequestException

5

0

1

N/A

1

ObjectExistsException (lid exists)

InvalidRequestException

InvalidRequestException

6

0

1

N/A

0

generate id, create object

InvalidRequestException

InvalidRequestException

7

0

1

N/A

1

ObjectExistsException(lid exists)

InvalidRequestException

InvalidRequestException

8

1

0

0

N/A

InvalidRequestException (lid not specified)

InvalidRequestException (id for update does not exist)

InvalidRequestException

9

1

0

0

N/A

InvalidRequestException (lid not specified)

InvalidRequestException (id for update does not exist)

InvalidRequestException

10

1

0

1

N/A

InvalidRequestException (lid not specified)

Set lid from previous version. Update object (version or not during update is discussed in versioning page)

InvalidRequestException

11

1

0

1

N/A

InvalidRequestException (lid not specified)

Set lid from previous version. Update object

InvalidRequestException

12

1

1

0

0

create object

InvalidRequestException (id for update does not exist)

create object

13

1

1

0

1

ObjectExistsException(lid exists)

InvalidRequestException (id for update does not exist)

InvalidRequestException (id for update does not exist)

14

1

1

1

0

ObjectExistsException(id exists)

InvalidRequestException (lid does not match lid of existing object with specified id)

InvalidRequestException (lid does not match lid of existing object with specified id)

15

1

1

1

1

ObjectExistsException(lid exists)

Update object

Update object

documents/plan/regrep4/createUpdateSemantics (last edited 2009-08-12 18:05:09 by localhost)