asterixdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steven Jacobs <sjaco...@ucr.edu>
Subject insert returning records
Date Fri, 09 Sep 2016 19:15:04 GMT
As one of my needs for the bad project, I have extended the language
slightly for the insert statement. Here I am describing the change that I
have made to see if there are any concerns or changes to be made. At this
point it is only the insert that is changed (upsert didn't exist when I
made this change originally). I think it would be easy to add it to upsert
as well if desired.

I Added "return records" and "returning [fieldName]"
"return records" returns to the user all records that were inserted
"returning [fieldName]" returns only the valuse inserted for a single
[fieldName]


examples:

*query:*

create type TweetMessageTypeuuid as closed {

  tweetid: uuid,

  message-text: string

}


create dataset TweetMessageuuids(TweetMessageTypeuuid)

primary key tweetid autogenerated;


insert into dataset TweetMessageuuids(

[{ "message-text":"hello"}]

)  return records;


*top of the plan (only the part after the commit becomes changed):*


distribute result [%0->$$6]
-- DISTRIBUTE_RESULT  |PARTITIONED|
  exchange
  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
    project ([$$6])
    -- STREAM_PROJECT  |PARTITIONED|
      commit
      -- COMMIT  |PARTITIONED|
        exchange
        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
          insert into test:TweetMessageuuids from record: %0->$$6
partitioned by [%0->$$4]
          -- INSERT_DELETE  |PARTITIONED|

*result:*

{ "tweetid": uuid("b2c8b24c-2b35-affd-ebcf-6a40f302c780"),
"message-text": "hello" }


query:

create type TweetMessageTypeuuid as closed {

  tweetid: uuid,

  message-text: string

}


create dataset TweetMessageuuids(TweetMessageTypeuuid)

primary key tweetid autogenerated;


insert into dataset TweetMessageuuids(

[{ "message-text":"hello"}]

)  returning tweetid;

top of the plan (only the part after the commit becomes changed):

distribute result [%0->$$4]
-- DISTRIBUTE_RESULT  |PARTITIONED|
  exchange
  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
    commit
    -- COMMIT  |PARTITIONED|
      project ([$$4])
      -- STREAM_PROJECT  |PARTITIONED|
        exchange
        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
          insert into test:TweetMessageuuids from record: %0->$$7
partitioned by [%0->$$4]
          -- INSERT_DELETE  |PARTITIONED|


result:

uuid("b2c8b24c-b535-affd-ed4f-0dc961d27b6a")

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message