# Simple update

UPDATE person

==>

SurrealQL(UpdateStatement(Keyword,Ident))

# Update ONLY

UPDATE ONLY person:tobie

==>

SurrealQL(UpdateStatement(Keyword,Keyword,RecordId(RecordTbIdent,Colon,RecordIdIdent)))

# Update with SET

UPDATE person SET age = 31

==>

SurrealQL(UpdateStatement(Keyword,Ident,SetClause(Keyword,FieldAssignment(Ident,Operator,Number(Int)))))

# Update with CONTENT

UPDATE person CONTENT {name: "Tobie"}

==>

SurrealQL(UpdateStatement(Keyword,Ident,ContentClause(Keyword,Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,String)),BraceClose))))

# Update with MERGE

UPDATE person MERGE {age: 31}

==>

SurrealQL(UpdateStatement(Keyword,Ident,MergeClause(Keyword,Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,Number(Int))),BraceClose))))

# Update with REPLACE

UPDATE person REPLACE {name: "Tobie"}

==>

SurrealQL(UpdateStatement(Keyword,Ident,ReplaceClause(Keyword,Object(BraceOpen,ObjectContent(ObjectProperty(ObjectKey(KeyName),Colon,String)),BraceClose))))

# Update with UNSET

UPDATE person UNSET temp = 0

==>

SurrealQL(UpdateStatement(Keyword,Ident,UnsetClause(Keyword,FieldAssignment(Ident,Operator,Number(Int)))))

# Update with WHERE

UPDATE person SET age = 31 WHERE name = "Tobie"

==>

SurrealQL(UpdateStatement(Keyword,Ident,SetClause(Keyword,FieldAssignment(Ident,Operator,Number(Int))),WhereClause(Keyword,BinaryExpression(Ident,Operator,String))))

# Update with RETURN

UPDATE person SET age = 31 RETURN AFTER

==>

SurrealQL(UpdateStatement(Keyword,Ident,SetClause(Keyword,FieldAssignment(Ident,Operator,Number(Int))),ReturnClause(Keyword,Literal)))

# Update with TIMEOUT

UPDATE person SET age = 31 TIMEOUT 5s

==>

SurrealQL(UpdateStatement(Keyword,Ident,SetClause(Keyword,FieldAssignment(Ident,Operator,Number(Int))),TimeoutClause(Keyword,Duration(DurationPart))))

# Update with PARALLEL

UPDATE person SET age = 31 PARALLEL

==>

SurrealQL(UpdateStatement(Keyword,Ident,SetClause(Keyword,FieldAssignment(Ident,Operator,Number(Int))),ParallelClause(Keyword)))
