Difference between revisions of "MagnetoDB/QA/Test statistics"
Line 1: | Line 1: | ||
− | =Test | + | =KVSaaS Test Cases and Ideas= |
+ | |||
+ | '''Notes:''' | ||
+ | |||
+ | * Test Case ''status'': | ||
+ | ** R - ready (test scenario exists and works fine - passes) | ||
+ | ** P - in progress (test scenario exists but fails due to not-ready functionality) | ||
+ | ** N - not implemented (test scenario is incomplete) | ||
+ | ** <empty> - TC has not been analysed yet | ||
+ | |||
+ | |||
+ | |||
+ | =DDL and DML statements= | ||
+ | |||
+ | ==BatchGetItem== | ||
+ | |||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 9: | Line 23: | ||
| | | | ||
− | <center>''' | + | <center>'''Description'''</center> |
+ | |||
+ | | | ||
+ | <center>'''Results'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''T'''</center> | ||
| | | | ||
Line 19: | Line 39: | ||
|- | |- | ||
| | | | ||
− | <center> | + | <center></center> |
| | | | ||
− | ''' | + | '''General''' |
+ | |||
+ | | | ||
+ | |||
| | | | ||
Line 29: | Line 52: | ||
| | | | ||
<center></center> | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
|- | |- | ||
| | | | ||
− | <center></center> | + | <center>BGI-1</center> |
| | | | ||
− | + | BatchGetItem contains all the correct mandatory parameters | |
| | | | ||
− | + | ||
| | | | ||
− | <center></center> | + | <center>P</center> |
− | |||
| | | | ||
<center></center> | <center></center> | ||
| | | | ||
− | |||
+ | |||
+ | |- | ||
| | | | ||
− | <center></center> | + | <center>BGI-2</center> |
| | | | ||
− | + | BatchGetItem contains all the correct parameters | |
− | |||
| | | | ||
− | + | ||
| | | | ||
− | + | <center>P</center> | |
| | | | ||
Line 67: | Line 92: | ||
| | | | ||
− | + | ||
|- | |- | ||
Line 74: | Line 99: | ||
| | | | ||
− | + | '''TableName''' | |
| | | | ||
− | + | ||
| | | | ||
<center></center> | <center></center> | ||
− | |||
| | | | ||
<center></center> | <center></center> | ||
| | | | ||
− | |||
+ | |||
+ | |- | ||
| | | | ||
− | <center></center> | + | <center>BGI-</center> |
| | | | ||
− | + | The only table name (existing) specified | |
− | |||
| | | | ||
− | + | ||
| | | | ||
− | + | <center>P</center> | |
| | | | ||
Line 106: | Line 130: | ||
| | | | ||
− | + | ||
|- | |- | ||
| | | | ||
− | <center></center> | + | <center>BGI-</center> |
| | | | ||
− | + | Several existing table names specified | |
| | | | ||
− | + | ||
| | | | ||
− | <center></center> | + | <center>P</center> |
− | |||
| | | | ||
<center></center> | <center></center> | ||
| | | | ||
− | |||
+ | |||
+ | |- | ||
| | | | ||
− | <center> | + | <center>BGI-</center> |
| | | | ||
− | + | 3 symbols long | |
− | |||
| | | | ||
− | + | ||
| | | | ||
− | + | <center>P</center> | |
| | | | ||
Line 145: | Line 168: | ||
| | | | ||
− | + | ||
|- | |- | ||
| | | | ||
− | <center></center> | + | <center>BGI-</center> |
| | | | ||
− | + | 255 symbols long | |
| | | | ||
− | + | ||
| | | | ||
− | <center></center> | + | <center>P</center> |
− | |||
| | | | ||
<center></center> | <center></center> | ||
| | | | ||
− | |||
+ | |||
+ | |- | ||
| | | | ||
− | <center></center> | + | <center>BGI-</center> |
| | | | ||
− | + | Less than 3 symbols long | |
− | |||
| | | | ||
− | + | ||
| | | | ||
− | + | <center>N</center> | |
| | | | ||
Line 184: | Line 206: | ||
| | | | ||
− | + | ||
|- | |- | ||
| | | | ||
− | <center></center> | + | <center>BGI-</center> |
− | |||
− | |||
− | |||
| | | | ||
− | + | More than 255 symbols long | |
| | | | ||
− | |||
− | |||
− | |||
− | |||
| | | | ||
− | + | <center>N</center> | |
| | | | ||
Line 210: | Line 225: | ||
| | | | ||
− | + | ||
|- | |- | ||
| | | | ||
− | <center></center> | + | <center>BGI-</center> |
| | | | ||
− | + | Non-existent name | |
| | | | ||
− | + | ||
| | | | ||
− | <center></center> | + | <center>N</center> |
− | |||
| | | | ||
<center></center> | <center></center> | ||
| | | | ||
− | |||
+ | |||
+ | |- | ||
| | | | ||
− | <center></center> | + | <center>BGI-</center> |
| | | | ||
− | + | Empty (like =) | |
− | |||
| | | | ||
− | + | ||
| | | | ||
− | + | <center>N</center> | |
| | | | ||
Line 249: | Line 263: | ||
| | | | ||
− | + | ||
|- | |- | ||
| | | | ||
− | <center></center> | + | <center>BGI-</center> |
| | | | ||
− | + | <nowiki>= ""</nowiki> | |
| | | | ||
− | + | ||
| | | | ||
− | <center></center> | + | <center>N</center> |
− | |||
| | | | ||
<center></center> | <center></center> | ||
| | | | ||
− | |||
+ | |||
+ | |- | ||
| | | | ||
− | <center> | + | <center>BGI-</center> |
| | | | ||
− | + | Mixed case letters in the name | |
− | |||
| | | | ||
− | + | ||
| | | | ||
− | + | <center>N</center> | |
| | | | ||
− | <center> | + | <center></center> |
| | | | ||
Line 295: | Line 308: | ||
| | | | ||
− | + | '''RequestItems''' | |
| | | | ||
− | <center> | + | |
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
| | | | ||
Line 308: | Line 327: | ||
| | | | ||
− | ( | + | '''(AttributesToGet)''' |
| | | | ||
− | + | ||
| | | | ||
+ | <center></center> | ||
− | |||
− | |||
| | | | ||
<center></center> | <center></center> | ||
| | | | ||
− | |||
+ | |||
+ | |- | ||
| | | | ||
− | <center> | + | <center>BGI-</center> |
| | | | ||
+ | Option not specified (by default) | ||
− | |||
− | |||
| | | | ||
− | + | All attrs are returned | |
| | | | ||
− | + | <center>P</center> | |
| | | | ||
− | <center> | + | <center></center> |
| | | | ||
Line 344: | Line 362: | ||
|- | |- | ||
| | | | ||
− | <center></center> | + | <center>BGI-</center> |
+ | |||
+ | | | ||
+ | All existing attrs | ||
| | | | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
| | | | ||
Line 355: | Line 379: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| | | | ||
− | <center> | + | <center>BGI-</center> |
| | | | ||
− | + | Some existing attrs | |
| | | | ||
− | |||
− | |||
| | | | ||
− | <center> | + | <center>P</center> |
− | + | | | |
+ | <center></center> | ||
− | + | | | |
− | |||
− | |||
+ | |- | ||
| | | | ||
− | <center> | + | <center>BGI-</center> |
− | |||
| | | | ||
− | + | Only non-existing attributes | |
| | | | ||
− | |||
− | |||
| | | | ||
− | <center></center> | + | <center>N</center> |
| | | | ||
Line 402: | Line 415: | ||
| | | | ||
− | |||
− | |||
− | |||
|- | |- | ||
| | | | ||
− | <center> | + | <center>BGI-</center> |
| | | | ||
− | + | No attrs specified (whereas the Option exists) | |
| | | | ||
− | + | ||
| | | | ||
− | <center></center> | + | <center>N</center> |
| | | | ||
Line 424: | Line 434: | ||
| | | | ||
− | + | ||
|- | |- | ||
| | | | ||
− | <center> | + | <center>BGI-</center> |
+ | |||
+ | | | ||
+ | Some existing and some non-existent attrs specified | ||
| | | | ||
Line 434: | Line 447: | ||
| | | | ||
− | <center></center> | + | <center>N</center> |
| | | | ||
Line 440: | Line 453: | ||
| | | | ||
− | <center></center> | + | |
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Attrs list looks strange like "" or "//', 123, abc##, etc | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
| | | | ||
<center></center> | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(Keys)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Single "B" key specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | "B" and "N" keys specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Single "SS" key specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | "SS" and "NS" keys specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | "B", "S", "SS" and "NS" keys specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Incorrect key name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Incorrect key type | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Key type omitted | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Key name omitted | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Empty key name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Empty key type | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(ConsistentRead)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | By default (if not specified) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= TRUE</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= FALSE</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= ""</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Just = symbol | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= "Another_value"</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ReturnConsumedCapasity''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | By default (if not specified) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= "INDEXES"</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= "TOTAL"</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= "NONE"</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= ""</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Just "=" | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= "Another_value"</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Exceptions''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | InternalServerError | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | ProvisionedThroughputExceededException | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | ResourceNotFoundException | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Limitations''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(Data volume)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Specify BatchGet to retrieve less than 1MB of data | ||
+ | |||
+ | | | ||
+ | "UnprocessedKeys" contains no items | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Specify BatchGet to retrieve exactly 1MB of data | ||
+ | |||
+ | | | ||
+ | "UnprocessedKeys" contains no items | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Specify BatchGet to retrieve more than 1MB (and < 2MB) of data | ||
+ | |||
+ | | | ||
+ | "UnprocessedKeys" contains items exceeding 1MB limit | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Specify BatchGet to retrieve more than 2MB of data | ||
+ | |||
+ | | | ||
+ | "UnprocessedKeys" contains items exceeding first 1MB limit AND | ||
+ | |||
+ | (after the next Request, in the next Response) "UnprocessedKeys" contains items exceeding the 2MB limit | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(Items number)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Specify less than 100 items in the Request | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Specify exactly 100 items in the Request | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Specify more than 100 items in the Request | ||
+ | |||
+ | | | ||
+ | error? | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Response''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Contains "GlobalSecondaryIndexes" section if there is (are) such for the table | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Contains "LocalSecondaryIndexes" section if there is (are) such for the table | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Contains both GSI and LSI sections if there are such for the table | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | Result contains: | ||
+ | |||
+ | * "ConsumedCapacity": | ||
+ | ** CapacityUnits | ||
+ | ** GSI | ||
+ | ** LSI | ||
+ | ** Table | ||
+ | ** TableName | ||
+ | * "Responses" | ||
+ | * "UnprocessedKeys" | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BGI-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | ==BatchWriteItem== | ||
+ | |||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | | ||
+ | <center>'''<nowiki>#</nowiki>'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Description'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Results'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''T'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Imp'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Notes'''</center> | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''General''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-1</center> | ||
+ | |||
+ | | | ||
+ | Complete set of correct mandatory options | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-2</center> | ||
+ | |||
+ | | | ||
+ | Complete set of correct all options | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''PutRequest''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-10</center> | ||
+ | |||
+ | | | ||
+ | Correct Item string AND | ||
+ | |||
+ | "N" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-11</center> | ||
+ | |||
+ | | | ||
+ | Non-existent Item string AND | ||
+ | |||
+ | "N" : "string" value | ||
+ | |||
+ | | | ||
+ | Error + UnprocessedItems contains unprocessed PutRequest Items | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-12</center> | ||
+ | |||
+ | | | ||
+ | EMPTY Item string AND | ||
+ | |||
+ | "N" : "string" | ||
+ | |||
+ | | | ||
+ | Error + UnprocessedItems contains unprocessed PutRequest Items | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-13</center> | ||
+ | |||
+ | | | ||
+ | Correct Item string and | ||
+ | |||
+ | <nowiki>"NS" : ["string"] values</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-14</center> | ||
+ | |||
+ | | | ||
+ | Correct Item string and | ||
+ | |||
+ | "B" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-15</center> | ||
+ | |||
+ | | | ||
+ | Correct Item string and | ||
+ | |||
+ | "<nowiki>BS" : ["string"] values</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-16</center> | ||
+ | |||
+ | | | ||
+ | Correct Item string and | ||
+ | |||
+ | "S" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-17</center> | ||
+ | |||
+ | | | ||
+ | Correct Item string and | ||
+ | |||
+ | "N" : EMPTY value | ||
+ | |||
+ | | | ||
+ | ValidationException + UnprocessedItems contains unprocessed PutRequest Items | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-18</center> | ||
+ | |||
+ | | | ||
+ | Correct Item string and | ||
+ | |||
+ | "<SOME_STRANGE_OR_EMPTY_VALUE>" : "string" value | ||
+ | |||
+ | | | ||
+ | ValidationException + UnprocessedItems contains unprocessed PutRequest Items | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-19</center> | ||
+ | |||
+ | | | ||
+ | Correct Item string and | ||
+ | |||
+ | "NS" : "non-existent_string" value | ||
+ | |||
+ | | | ||
+ | ValidationException + UnprocessedItems contains unprocessed PutRequest Items | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-20</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''DeleteRequest''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-30</center> | ||
+ | |||
+ | | | ||
+ | Correct Key string and | ||
+ | |||
+ | "N" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-31</center> | ||
+ | |||
+ | | | ||
+ | Non-existent Key string and | ||
+ | |||
+ | "N" : "string" value | ||
+ | |||
+ | | | ||
+ | Error + UnprocessedItems contains unprocessed DeleteRequest Items | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-32</center> | ||
+ | |||
+ | | | ||
+ | EMPTY Key string and | ||
+ | |||
+ | "N" : "string" value | ||
+ | |||
+ | | | ||
+ | Error + UnprocessedItems contains unprocessed DeleteRequest Items | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-33</center> | ||
+ | |||
+ | | | ||
+ | correct Key string and | ||
+ | |||
+ | <nowiki>"NS" : ["string"] values</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-34</center> | ||
+ | |||
+ | | | ||
+ | correct Key string and | ||
+ | |||
+ | "B" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-35</center> | ||
+ | |||
+ | | | ||
+ | correct Key string and | ||
+ | |||
+ | <nowiki>"BS" : ["string"] values</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-36</center> | ||
+ | |||
+ | | | ||
+ | correct Key string and | ||
+ | |||
+ | "S" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-37</center> | ||
+ | |||
+ | | | ||
+ | Correct Key string and | ||
+ | |||
+ | <nowiki>"SS" : ["string"] values</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''CombinedRequest''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-40</center> | ||
+ | |||
+ | | | ||
+ | Specify in one statement: | ||
+ | |||
+ | correct Key string for | ||
+ | |||
+ | DeleteRequest "N" : "string" value AND | ||
+ | |||
+ | correct Item string for | ||
+ | |||
+ | PutRequest "N" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-41</center> | ||
+ | |||
+ | | | ||
+ | Specify in one statement: | ||
+ | |||
+ | correct Key string for | ||
+ | |||
+ | DeleteRequest "B" : "string" value AND | ||
+ | |||
+ | correct Key string for | ||
+ | |||
+ | DeleteRequest "SS" : "string" values AND | ||
+ | |||
+ | correct Item string for | ||
+ | |||
+ | PutRequest "NS" : "string" values AND | ||
+ | |||
+ | (!!!) INcorrect Item string for | ||
+ | |||
+ | PutRequest "S" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-42</center> | ||
+ | |||
+ | | | ||
+ | Specify in one statement: | ||
+ | |||
+ | correct Item string for | ||
+ | |||
+ | PutRequest "N" : "string_A" value | ||
+ | |||
+ | correct Key string for | ||
+ | |||
+ | DeleteRequest "N" : "string_A" value | ||
+ | |||
+ | | | ||
+ | An error: you can't put and delete the same item in the same BatchWriteItem request | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''RequestItems (TableName)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-50</center> | ||
+ | |||
+ | | | ||
+ | correct table name and | ||
+ | |||
+ | correct PutRequest parameters for the Item | ||
+ | |||
+ | | | ||
+ | Line(s) added correctly | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-51</center> | ||
+ | |||
+ | | | ||
+ | Specify 25 correct table names and | ||
+ | |||
+ | correct PutRequest parameters for the Items | ||
+ | |||
+ | | | ||
+ | Line(s) added correctly into all 25 tables | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-52</center> | ||
+ | |||
+ | | | ||
+ | Specify 26 correct table names and | ||
+ | |||
+ | correct PutRequest parameters for the Items | ||
+ | |||
+ | | | ||
+ | error/exception (?) | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-53</center> | ||
+ | |||
+ | | | ||
+ | correct table name and | ||
+ | |||
+ | correct DeleteRequest parameters for the Key | ||
+ | |||
+ | | | ||
+ | Line(s) deleted correctly | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-54</center> | ||
+ | |||
+ | | | ||
+ | INcorrect table name | ||
+ | |||
+ | correct PutRequest parameters for an Item | ||
+ | |||
+ | Check that ''UnprocessedItems'' contains unprocessed PutRequest Items: | ||
+ | |||
+ | * TableName < 3 symbols | ||
+ | * TableName > 255 symbols | ||
+ | * Non-existent table name | ||
+ | |||
+ | | | ||
+ | Exception | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-55</center> | ||
+ | |||
+ | | | ||
+ | Correct table name and | ||
+ | |||
+ | correct PutRequest parameters for the Item | ||
+ | |||
+ | Make total request size more than 1 MB (how to?) | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-56</center> | ||
+ | |||
+ | | | ||
+ | correct table name and | ||
+ | |||
+ | correct PutRequest parameters for the Item | ||
+ | |||
+ | Any individual item in a batch exceeds 64 KB (how to?) | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ReturnItemCollectionMetrics''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-60</center> | ||
+ | |||
+ | | | ||
+ | is NONE (by default) | ||
+ | |||
+ | | | ||
+ | no statistics returned | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-61</center> | ||
+ | |||
+ | | | ||
+ | is SIZE | ||
+ | |||
+ | | | ||
+ | statistics about item collections, if any, that were modified during the operation are returned in the response | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-62</center> | ||
+ | |||
+ | | | ||
+ | is <Something_else> | ||
+ | |||
+ | | | ||
+ | error/exception | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ReturnConsumedCapacity''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-63</center> | ||
+ | |||
+ | | | ||
+ | is NONE (by default) | ||
+ | |||
+ | |||
+ | |||
+ | | | ||
+ | ConsumedCapacity is not included in the response | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-64</center> | ||
+ | |||
+ | | | ||
+ | is TOTAL | ||
+ | |||
+ | | | ||
+ | the response includes ConsumedCapacity data for tables and indexes | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-65</center> | ||
+ | |||
+ | | | ||
+ | is INDEXES | ||
+ | |||
+ | | | ||
+ | the response includes ConsumedCapacity for indexes only | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-66</center> | ||
+ | |||
+ | | | ||
+ | is <Something_else> (and empty) | ||
+ | |||
+ | | | ||
+ | error/exception | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Exceptions''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-70</center> | ||
+ | |||
+ | | | ||
+ | Simulate InternalServerError | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-71</center> | ||
+ | |||
+ | | | ||
+ | Simulate ItemCollectionSizeLimitExceededException | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-72</center> | ||
+ | |||
+ | | | ||
+ | Simulate ProvisionedThroughputExceededException | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-73</center> | ||
+ | |||
+ | | | ||
+ | Simulate ResourceNotFoundException | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>BWI-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | ==CreateTable== | ||
+ | |||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | | ||
+ | <center>'''<nowiki>#</nowiki>'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Description'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Results'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''T'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Imp'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Notes'''</center> | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''General''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-1</center> | ||
+ | |||
+ | | | ||
+ | Create table without any optional attributes, only all mandatory | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-2</center> | ||
+ | |||
+ | | | ||
+ | Create a table specifying ALL (including mandatory) the correct parameters | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-3</center> | ||
+ | |||
+ | | | ||
+ | Try to create two tables with the same name in the same region | ||
+ | |||
+ | | | ||
+ | ResourceInUseException expected. | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try to create two tables with the same name in two different regions. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Verify first status is CREATING, then ACTIVE | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | What happens if read/write to/from table in CREATING state? Possible to reproduce? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create one table with sec. indexes and then try to create one more table while the first one is in CREATING state. | ||
+ | |||
+ | - Possible to reproduce? | ||
+ | |||
+ | - How much time the table should be in CREATING state? | ||
+ | |||
+ | - Can I manage this time anyhow? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try to create table w/o some mandatory attribute: AttributeDefinitions, KeySchema, ProvisionedThroughput, TableName. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''AttributeDefinitions''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''''Number of attributes''''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | create table with 1 attr | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | What is upper limit? Try max and max+1 | ||
+ | |||
+ | "Individual items in an DynamoDB table can have any number of attributes, although there is a limit of 64 KB on the item size. An item size is the sum of lengths of its attribute names and values (binary and UTF-8 lengths)." | ||
+ | |||
+ | So, number of attr is limited only by item size. Can be tested only via PutItem? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create a table with key and non-key (and non-index also) attributes. It should fail. Non-key attrs are unacceptable. | ||
+ | |||
+ | '''Note:''' | ||
+ | |||
+ | '''''Test for PutItem:''' PutItem not containing values for non-key/non-indexed attributes of the table to ensure these attrs are not required. '' | ||
+ | |||
+ | | | ||
+ | Error/exception ? | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''''AttrName''''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try length of 1 symbol, 255 (upper limit) - these limits are applicable only for key attrs and index projections. Other attrs can have longer names, without explicit limits (just size of the whole item). | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try lengh 255+1 for key and indexes attr. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Check size of non-key / non-index-projected attr names | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try to send attr names without attr types. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create table with attrs of each type: S, N, B. Ensure the data types are applied on put/get operations (it could be covered in Put/Get tests). | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | AWS says regarding local indexes creation: “You can project attributes of any data type, including scalar data types and multi-valued sets.” But how to define projection of Set types if they cannot be assigned to the attributes on table creation stage? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try to create a table with attribute of some SET type. It should not be allowed. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''KeySchema''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create table with a key of HASH type. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create table with a key of HASH and RANGE type. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try to enumerate key attrs in wrong order: RANGE and then HASH attrs in the KeySchema list | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try to create a table only with RANGE key | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try to leave the list empty | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try to add more than one HASH and/or RANGE attr. In general, add more than 2 attrs to the list. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try keytype different from HASH and RANGE. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try not to mention key attr in Definitions but only in KeySchema. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try to mention attr names not defined in AttrDefinitions. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ProvisionedThroughput | ||
+ | |||
+ | '''''(for now, MagnetoDB ignores these values.)'' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Set positive values. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try to mention not all mandatory attrs | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try to pass non-number, negative number | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''TableName''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Name length is 3 | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Name length is 255 | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Name length < 3 | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Name length > 255 | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | What are the limitations regarding lower and upper case, hyphen and other symbols? Do they correspond to DynamoDB rules? | ||
+ | |||
+ | AWS says: “For table and secondary index names, allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot). Names can be between 3 and 255 characters long.” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Provide an empty table name. | ||
+ | |||
+ | | | ||
+ | exception ? | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''LocalSecondaryIndexes''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create index without some of mandatory attributes. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''''Number of indexes''''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create 1 index for a table | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create 5 indexes for the table | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create 6 indexes for the table | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Set LSI attribute as an empty list | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | “There is a 10 GB size limit per hash key” - how to evaluate it? Generate so many items that size of all hash key value is about 10 GB? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''''IndexName''''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create an index having 3 characters long name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create an index having 255 characters long name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create an index having 2 characters long name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create an index having 256 characters long name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | TO BE CLARIFIED: Is it case-sensitive? non-letters? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create 2 tables with similar index names. | ||
+ | |||
+ | | | ||
+ | successful | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Try to create 2 indexes with the same name in one table | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''KeySchema''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create LSI with Hash different from table hash key (table should have H+R key). | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create LSI for table with HASH w/o RANGE. Should fail. But will work for global indexes. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create similar indexes with different names (the same keys, etc) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | create an index just with HASH key, w/o RANGE | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | ‘Repeat’ key schema of the table. “For a local secondary index, the hash key must be the same as the table's hash key, and the range key must be a non-key table attribute.” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | '''''Test for PutItem:''' Ensure range key of LSI is not a mandatory attribute.'' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Projection''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Check usage of all projection types: KEYS_ONLY, INCLUDE, ALL. Query tests verify that it works as expected. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Use NonKeyAttributes but skip ProjectionType | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Use NonKeyAttributes list with one attribute in it | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Use key attrs in the NonKeyAttributes list | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Make NonKeyAttributes list empty | ||
+ | |||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Insert some non-key attrs in NonKeyAttributes list when Pr.Type is KEYS_ONLY. Then - similar but with ALL case. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create a table with 20 non-key attrs in one LSI. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create a table with 21 non-key attrs in one LSI. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create a table with 20 non-key attrs in multiple LSIs. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create a table with 21 non-key attrs in diff. LSIs, without repetitions of attr names. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create a table with 21 non-key attrs in diff. LSIs, with repetitions of attr names between LSI’s. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''GlobalSecondaryIndexes''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | (out of scope now) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Response''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Most of key-values in TableDescription are equal to data from Request | ||
+ | |||
+ | | | ||
+ | Check and verify: | ||
+ | |||
+ | * AttributeDefinitions | ||
+ | * KeySchema | ||
+ | * LocalSecondaryIndexes (also new attrs appear: IndexSizeBytes, IndexStatus, ItemCount) | ||
+ | * ProvisionedThroughput (also new attrs appear: LastDecreaseDateTime, LastIncreaseDateTime - these two should be absent on creation, NumberOfDecreasesToday - should be 0 on creation) | ||
+ | * TableName | ||
+ | |||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Attrs not present in Request but should be present in Response | ||
+ | |||
+ | | | ||
+ | * CreationDateTime | ||
+ | * ItemCount (should be 0 just after table creation) | ||
+ | * TableSizeBytes (should be 0 on creation) | ||
+ | * TableStatus (should be CREATING, then ACTIVE) | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | If LSI are not created, should this attr be present in response as empty list? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Think how to check TableSizeBytes value. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | CreationDateTime verification: Find a way to get current time from the target system | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Exceptions''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | LimitExceededException: | ||
+ | |||
+ | Is related to in-progress states. Not possible to reproduce for now. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | ResourceInUseException: | ||
+ | |||
+ | Recreate existing table ''(the case was mentioned above)'' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | InternalServerError: | ||
+ | |||
+ | <nowiki>When this error [500] is expected and when some other error should appear?</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Additional''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | Create more than 255 tables | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>CreT-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | ==DeleteItem== | ||
+ | |||
+ | ==DeleteTable== | ||
+ | |||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | | ||
+ | <center>'''<nowiki>#</nowiki>'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Description'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Results'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''T'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Imp'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Notes'''</center> | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''General''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-1</center> | ||
+ | |||
+ | | | ||
+ | Delete an existing table. Check if all the Response’s fields (see Table Description object) are equal to the appropriate table parameters | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | Delete a non-existent table | ||
+ | |||
+ | | | ||
+ | ''ResourceNotFoundException'' | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | Delete a table specifying “” as a name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | Delete a table specifying ''NULL'' as a name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | Delete a table w/o specifying any parameters | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | Delete a table having a name that contains only 2 or 1 symbol | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | Delete a table specifying a name that contains more than 255 symbols | ||
+ | |||
+ | | | ||
+ | ''ResourceNotFoundException ?'' | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | Delete an existing table and, while the status is ''DELETING'', run DeleteTable operation for the same table once again | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Results Verification''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Exceptions''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | Simulate ''InternalServerError'' exception. Ideas? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | Simulate ''LimitExceededException'' exception. Ideas? | ||
+ | |||
+ | Delete more than 10 tables in the same time | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | Simulate ''ResourceInUseException'' exception. Ideas? | ||
+ | |||
+ | Delete a table while it is in use by some other operation | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | Simulate ''ResourceNotFoundException'' exception. Other ideas? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DelT-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==DescribeTable== | ||
+ | |||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | | ||
+ | <center>'''<nowiki>#</nowiki>'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Description'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Results'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''T'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Imp'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Notes'''</center> | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''General''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DesT-1</center> | ||
+ | |||
+ | | | ||
+ | Run ''DescribeTable'' against the existing table. Check that all the required params are described correctly (see “Response Syntax” for DescribeTable statement) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DesT-</center> | ||
+ | |||
+ | | | ||
+ | Run ''DescribeTable'' against the non-existent table (''ResourceNotFoundException'' exception) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DesT-</center> | ||
+ | |||
+ | | | ||
+ | Run ''DescribeTable'' specifying “” as a table name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DesT-</center> | ||
+ | |||
+ | | | ||
+ | Run ''DescribeTable'' specifying ''NULL'' as a name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DesT-</center> | ||
+ | |||
+ | | | ||
+ | Run ''DescribeTable'' w/o specifying any parameters | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DesT-</center> | ||
+ | |||
+ | | | ||
+ | Run ''DescribeTable'' specifying a name that contains only 2 or 1 symbol (causes an exception?) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DesT-</center> | ||
+ | |||
+ | | | ||
+ | Run ''DescribeTable'' specifying a name that contains more than 255 symbols | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DesT-</center> | ||
+ | |||
+ | | | ||
+ | Simulate ''InternalServerError'' exception | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DesT-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DesT-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>DesT-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | ==GetItem== | ||
+ | |||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | | ||
+ | <center>'''<nowiki>#</nowiki>'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Description'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Results'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''T'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Imp'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Notes'''</center> | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''General''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-1</center> | ||
+ | |||
+ | | | ||
+ | Get an item specifying correct mandatory attributes | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Get an item specifying all the correct mandatory and optional ttributes | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''TableName''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Valid (existing) table name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Existing table name of 3 symbols | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Existing table name of 255 symbols | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | From non-existent table name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Empty name (“”) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Less than 3 symbols long | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | More than 255 symbols long | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''AttributesToGet:''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Specified, correct items in the list | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Section not specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | “AttributesToGet” term not specified, but there is a list of items in the section | ||
+ | |||
+ | | | ||
+ | Exception/error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Section AttributesToGet is specified, but there is just an empty list (no items) | ||
+ | |||
+ | | | ||
+ | Exception/error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Specified more attributes than exist in the table | ||
+ | |||
+ | | | ||
+ | Exception/error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Incorrect attributes: Wrong names | ||
+ | |||
+ | | | ||
+ | Exception/error | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Incorrect attributes: Empty values like "" | ||
+ | |||
+ | | | ||
+ | Exception/error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Key''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | One Key specified: “B” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | One Key specified: “N” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | One Key specified: “S” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | One key: “BS” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | One key: “NS” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | One key: “SS” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Combination of "B", "N", "S" types | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Combination of "B", "N", "S", "BS", "NS", "SS" types | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Combination of “B”, “B”, "N", "N", “S”, “S”, “BS”, “BS”, "NS", "NS", “SS”, “SS” types | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | The whole section “Key” not specified | ||
+ | |||
+ | | | ||
+ | Exception/error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Section “Key” specified, but the section content is empty | ||
+ | |||
+ | | | ||
+ | Exception/error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS") | ||
+ | |||
+ | | | ||
+ | Exception/error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | In section “Key” there is a key of type “N” but a non-existent value specified for it | ||
+ | |||
+ | | | ||
+ | No items returned in Response | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ConsistentRead''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= True</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= False</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Not specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= <Something_else></nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ReturnConsumedCapacity''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= INDEXES</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= TOTAL</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= NONE</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= <Something_else></nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Exceptions''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Simulate ConditionalCheckFailedException | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Simulate InternalServerError | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Simulate ItemCollectionSizeLimitExceededException | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Simulate ProvisionedThroughputExceededException | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | Simulate ResourceNotFoundException | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>GI-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | ==ListTables== | ||
+ | |||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | | ||
+ | <center>'''<nowiki>#</nowiki>'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Description'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Results'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''T'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Imp'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Notes'''</center> | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''General''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-1</center> | ||
+ | |||
+ | | | ||
+ | Neither ''Limit'' nor ''ExclusiveStartTableName'' specified: | ||
+ | |||
+ | Empty result (if there are no tables in this Tenant and Datacenter were created) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-2</center> | ||
+ | |||
+ | | | ||
+ | Neither ''Limit'' nor ''ExclusiveStartTableName'' specified: | ||
+ | |||
+ | A list of existing tables in this Tenant and Datacenter (if there are some in this Tenant and Datacenter tables) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-3</center> | ||
+ | |||
+ | | | ||
+ | Neither ''Limit'' nor ''ExclusiveStartTableName'' specified: | ||
+ | |||
+ | The List does not contain the tables having “CREATING” status | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-4</center> | ||
+ | |||
+ | | | ||
+ | Incorrect spelling of ListTables specified like: LisTables or Listables or ListTable, etc | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | There is no “{” or “}” in the statement | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Limit''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | The limit option is not specified and | ||
+ | |||
+ | The number of existing tables is 5 | ||
+ | |||
+ | | | ||
+ | 1 page containing all 5 tables | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | The limit option is not specified and | ||
+ | |||
+ | The number of tables is 100 | ||
+ | |||
+ | | | ||
+ | 1 page containing all 100 tables | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | Limit = 3 and | ||
+ | |||
+ | number of existing tables is 100 | ||
+ | |||
+ | | | ||
+ | The number of tables on the page is 3 and | ||
+ | |||
+ | "LastEvaluatedTableName" parameter in Response contains the 3rd (last displayed on the 1st page) table name and | ||
+ | |||
+ | There are 34 result pages in total | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | Limit = 3 and | ||
+ | |||
+ | "LastEvaluatedTableName" = <3d_table_name_in_the_table_list_of_the_previous_TC> and | ||
+ | |||
+ | number of existing tables is 100 | ||
+ | |||
+ | | | ||
+ | The number of tables on the second page is 3 and | ||
+ | |||
+ | "LastEvaluatedTableName" parameter in Response contains the 3d (last on the second page) table name and | ||
+ | |||
+ | There are 32 yet other pages able to be displayed | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | Limit = 0 | ||
+ | |||
+ | | | ||
+ | Error/exception | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | Limit = -2 | ||
+ | |||
+ | | | ||
+ | Error/exception | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | Limit = "Some_strange_string" | ||
+ | |||
+ | | | ||
+ | Error/exception | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | Limit = "" | ||
+ | |||
+ | | | ||
+ | Error/exception | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | Limit = <nothing> | ||
+ | |||
+ | | | ||
+ | Error/exception | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | Case sensitivity (?) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ExclusiveStartTableName''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | The "ExclusiveStartTableName" option not specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | An existing "ExclusiveStartTableName" specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | An existing "ExclusiveStartTableName" specified when: | ||
+ | |||
+ | There were no previous runs of ListTables statement | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | An existing "ExclusiveStartTableName" specified when: | ||
+ | |||
+ | Previous run of ListTables statement returned just one page | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | "ExclusiveStartTableName" is 3 symbols long | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | Table name is 255 symbols long | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | Table name is 1 or 2 symbols long | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | Table name is 256 or more symbols long | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | A non-existent table name specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | No table names specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | An empty (like "ExclusiveStartTableName" :) table name specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Tenant''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | Switch to another tenant and | ||
+ | |||
+ | Perform ListTables operations: | ||
+ | |||
+ | The "ExclusiveStartTableName" option not specified | ||
+ | |||
+ | | | ||
+ | A unique (pertinent to this specific Tenant) list of tables returned | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | Switch to another tenant and | ||
+ | |||
+ | Perform ListTables operations: | ||
+ | |||
+ | An existing table name specified in "ExclusiveStartTableName" | ||
+ | |||
+ | | | ||
+ | A unique (pertinent to this specific Tenant) list of tables returned starting from the specified table name | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''DataCenter (endpoint)''' | ||
+ | |||
+ | Switch to another Datacenter and | ||
+ | |||
+ | Perform ListTables operations: | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | The "ExclusiveStartTableName" option not specified | ||
+ | |||
+ | | | ||
+ | A unique (pertinent to this specific Datacenter) list of tables returned | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | An existing table name specified in "ExclusiveStartTableName" | ||
+ | |||
+ | | | ||
+ | A unique (pertinent to this specific Datacenter) list of tables returned starting from the specified table name | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>LisT-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | ==PutItem== | ||
+ | |||
+ | '''Note:''' For each test, check the ''ResponseValue'' for required options and values | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | | ||
+ | <center>'''<nowiki>#</nowiki>'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Description'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Results'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''T'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Imp'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Notes'''</center> | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''General''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(Correct names of required fields)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-1</center> | ||
+ | |||
+ | | | ||
+ | put item to '''''INSERT 1''''' '''''attribute''''' (an existing table, 1 correct attribute “S”) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | put item to '''''INSERT N attributes''''' (an existing table, 1 correct attribute “S”) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | put item to '''''UPDATE 1''''' '''''attribute''''' (an existing table, 1 correct attribute “S”), ''Exists = true'' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | put item to '''''UPDATE N''''' '''''attributes''''' (an existing table, 1 correct attribute “S”), ''Exists = true'' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | put item to '''''UPDATE N''''' '''''attributes''''' (an existing table, '''''N''''' correct attributes “S”), no “''Exists''” option specified (should be ''True'' by default) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(Put item to ''UPDATE N'' ''attributes)''''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | an existing table, '''''N''''' correct attributes of type “B” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | an existing table, '''''N''''' correct attributes of type “BS” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | an existing table, '''''N''''' correct attributes of type “N” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | an existing table, '''''N''''' correct attributes of type “NS” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | an existing table, '''''N''''' correct attributes of type “SS” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | an existing table, '''''N''''' correct attributes of types “B”, “BS”, “N”, “NS”, “S”, “SS” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | Put item to '''''UPDATE N''''' '''''attributes''''' (an existing table, '''''N''''' correct attributes “SS”) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | '''(''Expected'' conditions (all combinations))''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | CORRECT field name and "N" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | NON-EXISTENT field name and "N" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | EMPTY field name and "N" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>CORRECT field name and "NS" : ["string"] values</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | CORRECT field name and "B" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>CORRECT field name and "BS" : ["string"] values</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | CORRECT field name and "S" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>CORRECT field name and "SS" : ["string"] values</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | CORRECT field name and "N" : EMPTY value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | CORRECT field name and "<SOME_STRANGE_OR_EMPTY_VALUE>" : "string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | CORRECT field name and "NS" : "NON-EXISTENT_string" value | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(''Exists'' value)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Option omitted (by default) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= True</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= False</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “”</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “something else”</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= <something_else></nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ReturnConsumedCapacity''': | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= INDEXES </nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= TOTAL </nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= NONE</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “something_else”</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “”</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <no_value> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | incorrect spelling of RCC | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ReturnItemCollectionMetrics''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= SIZE</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= NONE</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “something_else”</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “”</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <no_value> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | incorrect spelling of RCM | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ReturnValues''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= NONE</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= ALL_OLD </nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= UPDATED_OLD </nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= ALL_NEW </nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>=s UPDATED_NEW</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “”</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “something_else”</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= empty</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | <empty> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | incorrect spelling of “ReturnValues” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Others''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Update an existing line while the key-value to be updated is in UPDATING status | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Update a non-existent table | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Update a table titled as “” | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Update a table by specifying only 2 letters of its title | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Update a table by specifying more than 256 letters of its title | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Update a table having no name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(Insert an item)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Specifying PrimaryKey as equal to the already existing line (this scenario update existing line) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Specifying strange data type (not in B, BS, S, SS, N, NS) for a Value to be inserted | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Specifying two equal Key values in one operation (if we specified two attributes with equal names - in table put only value of the last attribute) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Specifying no values for a Key | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Specifying non-existent Keys in “Expected” option | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Exceptions''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Simulate: ''ConditionalCheckFailedException'' exception | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Simulate: ''ItemCollectionSizeLimitExceededException'' exception | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Simulate: ''ProvisionedThroughputExceededException'' exception | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | Simulate: ''ResourceNotFoundException'' exception (implements in "Update a non-existent table") | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''TTL parameter tests''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>PI-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | ==Query== | ||
+ | |||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | | ||
+ | <center>'''<nowiki>#</nowiki>'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Description'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Results'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''T'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Imp'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Notes'''</center> | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''General''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-1</center> | ||
+ | |||
+ | | | ||
+ | Query statement contains the correct mandatory parameters only | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Query statement contains ALL the correct parameters | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''TableName''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Valid name specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Non-existent name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Empty name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Less than 3 symbols long | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | More than 255 symbols long | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Exactly 3 and 255 symbols long | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Upper and lower cases | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''AttributesToGet''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Specified correct attributes | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Not specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Specified more attributes than exist in the table | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | It’s positive | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Specified incorrect attributes: wrong names | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | It’s positive | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Specified incorrect attributes: empty values like "" | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Exact correct list: | ||
+ | |||
+ | Select = SPECIFIC_ATTRIBUTES | ||
+ | |||
+ | | | ||
+ | Correct result | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Exact correct list: | ||
+ | |||
+ | Select = ALL_ATTRIBUTES | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Exact correct list: | ||
+ | |||
+ | Select = ALL_PROJECTED_ATTRIBUTES | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Exact correct list: | ||
+ | |||
+ | Select = COUNT | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Exact correct list: | ||
+ | |||
+ | Select = “” | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Exact correct list: | ||
+ | |||
+ | Select = “something_else” | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | The option is not specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Completely incorrect list | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | It’s positive | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Some correct and some incorrect names in the list | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | It’s positive | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Empty list | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Not specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''KeyConditions''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Key "B" specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Key "N" specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Key "S" specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Key "BS" specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Key "NS" specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Key "SS" specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Combination of "B" + "N" + "S" | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Combination of all 6 types ("B" + "N" + "S" + "BS" + "NS" + "SS") | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Not specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS") | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ConsistentRead''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= True</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Option not specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “Something else”</nowiki> | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ReturnConsumedCapacity''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= "</nowiki>INDEXES" | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= "TOTAL"</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= "NONE"</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “Something_else”</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “”</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= <Empty value></nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ExclusiveStartKey''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | is String | ||
+ | |||
+ | | | ||
+ | Records are taken starting by LastKeyValue of the previous operation | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | is Number | ||
+ | |||
+ | | | ||
+ | Records are taken starting by LastKeyValue of the previous operation | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | is Binary | ||
+ | |||
+ | | | ||
+ | Records are taken starting by LastKeyValue of the previous operation | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | is S or N or B, but there was no previous operations | ||
+ | |||
+ | | | ||
+ | What’s the content of ExclusiveStartKey? | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | is Set of S or N or B | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Not specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Incorrect ExclusiveStartKey | ||
+ | |||
+ | | | ||
+ | Error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''IndexName''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | correct Local SI (Secondary Index) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | correct Global SI | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | non-existent LSI | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | non-existent GSI | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Not specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Name length < 3 symbols | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Name length > 255 symbols | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Empty index name | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Upper case index name | ||
+ | |||
+ | | | ||
+ | ? | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Lower case index name | ||
+ | |||
+ | | | ||
+ | ? | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Mix of Upper/lower case letters in index name | ||
+ | |||
+ | | | ||
+ | ? | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Limit''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Valid statement that returns > 10 lines, | ||
+ | |||
+ | Limit = 5 | ||
+ | |||
+ | | | ||
+ | 5 lines returned and LastEvaluatedKey points to the last returned line | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Valid statement that returns N lines | ||
+ | |||
+ | Limit = N*2 | ||
+ | |||
+ | | | ||
+ | N lines returned and LastEvaluatedKey points to the last returned line | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Valid statement that returns N (< 5) lines | ||
+ | |||
+ | Limit = 5 | ||
+ | |||
+ | | | ||
+ | N lines returned and LastEvaluatedKey points to the last returned line | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Valid statement that returns N (< 5) lines | ||
+ | |||
+ | Limit = 0 | ||
+ | |||
+ | | | ||
+ | ? | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | Valid statement that returns data size > 1 MB | ||
+ | |||
+ | Limit = 100 000 (that is more than 1 MB data size) | ||
+ | |||
+ | | | ||
+ | Check that obtained data size is not more than 1 MB and LastEvaluatedKey points to the last returned line that does not exceed 1 MB | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ScanIndexForward''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= TRUE (by default)</nowiki> | ||
+ | |||
+ | | | ||
+ | data are sorted by ascending of the index key | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= FALSE</nowiki> | ||
+ | |||
+ | | | ||
+ | data are sorted by descending of the index key | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “Another value”</nowiki> | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= <empty value></nowiki> | ||
+ | |||
+ | | | ||
+ | ? | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Select''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= ALL_ATTRIBUTES</nowiki> | ||
+ | |||
+ | | | ||
+ | Returns all of the item attributes from the specified table or index | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= ALL_PROJECTED_ATTRIBUTES</nowiki> | ||
+ | |||
+ | | | ||
+ | Retrieves all attributes which have been projected into the index | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= COUNT </nowiki> | ||
+ | |||
+ | | | ||
+ | Returns the number of matching items, rather than the matching items themselves | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= SPECIFIC_ATTRIBUTES</nowiki> | ||
+ | |||
+ | | | ||
+ | Returns only the attributes listed in AttributesToGet | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= <empty value></nowiki> | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “”</nowiki> | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= “Something else”</nowiki> | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''KeyConditions''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "EQ" | ||
+ | |||
+ | | | ||
+ | Existing record should be returned (STRING, NUMBER, BOOLEAN) | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "EQ" | ||
+ | |||
+ | AttributeValue is SET of Number or String or Boolean | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "EQ" | ||
+ | |||
+ | Two AttributeValues specified (NUMBER and STRING) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name (BINARY) | ||
+ | |||
+ | ComparisonOperator = "EQ" | ||
+ | |||
+ | AttributeValue is of type NUMBER or STRING | ||
+ | |||
+ | | | ||
+ | error? | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One INcorrect field name | ||
+ | |||
+ | ComparisonOperator = "EQ" | ||
+ | |||
+ | Valid comparison value | ||
+ | |||
+ | | | ||
+ | error ? | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "EQ" | ||
+ | |||
+ | Comparison expression represents a combination that does not exist in the actual table | ||
+ | |||
+ | | | ||
+ | No records returned | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | INVALID ComparisonOperator | ||
+ | |||
+ | Valid comparison value | ||
+ | |||
+ | | | ||
+ | error? | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name (Number or String or Boolean) | ||
+ | |||
+ | ComparisonOperator = "LE" | ||
+ | |||
+ | Valid comparison value (STRING or NUMBER or BOOLEAN) | ||
+ | |||
+ | | | ||
+ | ok | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "LE" | ||
+ | |||
+ | Two AttributeValues specified | ||
+ | |||
+ | | | ||
+ | error? | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "LE" | ||
+ | |||
+ | AttributeValue is SET of Number or String or Boolean | ||
+ | |||
+ | | | ||
+ | error? | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name (Number or String or Boolean) | ||
+ | |||
+ | ComparisonOperator = "LT" | ||
+ | |||
+ | Valid comparison value (STRING or NUMBER or BOOLEAN) | ||
+ | |||
+ | | | ||
+ | ok | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "LT" | ||
+ | |||
+ | Two AttributeValues specified | ||
+ | |||
+ | | | ||
+ | error? | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name (a set) | ||
+ | |||
+ | ComparisonOperator = "LT" | ||
+ | |||
+ | AttributeValue is SET of the same type | ||
+ | |||
+ | | | ||
+ | error? | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "GE" | ||
+ | |||
+ | Valid comparison value (STRING or NUMBER or BOOLEAN) | ||
+ | |||
+ | | | ||
+ | ok | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name (N type) | ||
+ | |||
+ | ComparisonOperator = "GE" | ||
+ | |||
+ | Two (N and S) AttributeValues specified | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "GE" | ||
+ | |||
+ | AttributeValue is SET of Number or String or Boolean | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name (Number or String or Boolean) | ||
+ | |||
+ | ComparisonOperator = "GT" | ||
+ | |||
+ | Valid comparison value (STRING or NUMBER or BOOLEAN) | ||
+ | |||
+ | | | ||
+ | ok | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "GT" | ||
+ | |||
+ | Two AttributeValues specified | ||
+ | |||
+ | | | ||
+ | error? | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name (Number or String or Boolean) | ||
+ | |||
+ | ComparisonOperator = "GT" | ||
+ | |||
+ | AttributeValue is SET of Number or String or Boolean | ||
+ | |||
+ | | | ||
+ | ok | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "BEGINS_WITH" | ||
+ | |||
+ | Valid comparison value (STRING, BOOLEAN) | ||
+ | |||
+ | | | ||
+ | ok | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One non-existent field name | ||
+ | |||
+ | ComparisonOperator = "BEGINS_WITH" | ||
+ | |||
+ | Valid comparison value (STRING, BOOLEAN) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "BEGINS_WITH" | ||
+ | |||
+ | Two AttributeValues specified | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "BEGINS_WITH" | ||
+ | |||
+ | AttributeValue is SET of Number or String or Boolean | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "BETWEEN" | ||
+ | |||
+ | Two valid comparison values | ||
+ | |||
+ | | | ||
+ | ok | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center>R</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One non-existent field name | ||
+ | |||
+ | ComparisonOperator = "BETWEEN" | ||
+ | |||
+ | Two valid comparison values | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "BETWEEN" | ||
+ | |||
+ | Only one AttributeValue specified | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "BETWEEN" | ||
+ | |||
+ | AttributeValue is SET of Number or String or Boolean | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = "" | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = <empty_value> | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | One correct field name | ||
+ | |||
+ | ComparisonOperator = “something_else” | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Q-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | ==Scan== | ||
+ | |||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | | ||
+ | <center>'''<nowiki>#</nowiki>'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Description'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Results'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''T'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Imp'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Notes'''</center> | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''General''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-1</center> | ||
+ | |||
+ | | | ||
+ | scan stops and returns results if processed data size exceeds 1 MB | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Reproduce: Scan result is empty | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Parallel scan topic - '''out of scope for now''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''TableName''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | scan with only required parameter (table name) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | scan if name length is 3 | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | scan if name length is 255 | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | scan with name length < 3 | ||
+ | |||
+ | | | ||
+ | error? | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | scan with name length is > 255 | ||
+ | |||
+ | | | ||
+ | error? | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | upper-lower case in <nowiki>t.name</nowiki> | ||
+ | |||
+ | | | ||
+ | ? | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | non-existent table name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | diff. symbols in t. name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | scan request without required parameter - table name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''AttributesToGet''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Skip it: all attrs should be returned | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | include all params | ||
+ | |||
+ | | | ||
+ | ? | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | empty list of attrs | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | the only attr in the list is non-key attr | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | the only attr in the list is attr that does not participate in a filter | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | try nonexistent attrs | ||
+ | |||
+ | | | ||
+ | should not be displayed in results? | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Filter can find items, but selected attrs are not present in those items: | ||
+ | |||
+ | selected attrs are present in some other items | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Filter can find items, but selected attrs are not present in those items: | ||
+ | |||
+ | selected attrs are not present in any items | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>Repeat the same attr[s] in this list</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''[http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html ExclusiveStartKey'''] | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Use LastEvaluatedKey from the previous scan. '''How to ensure that the scan really starts from this item?''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | What if assign some existing key but scan operation was not executed before? No difference I think. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Assign nonexistent value of key attr. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Assign non-key attributes and their values. Try attrs of SET type? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Limit''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Verify just the Limit number of items was scanned and LastEvaluatedKey is present in response | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Set Limit value so that scan processes more than 1 Mb of data before Limit value exceeds. Ensure it stops due to 1 Mb but not continue till Limit items processed | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Try empty, negative value, zero. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ReturnConsumedCapacity''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Ensure response does not contain ConsumedCapacity (neither for table nor index(es)) if ReturnConsumedCapacity not present or equal to None in request | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Ensure response contains Capacity for table and indexes if TOTAL in request | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Ensure response contains Capacity for indexes only (not table) if INDEXES in request | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Try empty, invalid values. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''ScanFilter''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Ensure ScanFilter really filters? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Ensure multiple conditions are treated as "AND" operations | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Try nonexistent attribute name (let’s assume it will be added with some item later) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Try empty line instead of attribute name | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Assign empty line, None to ScanFilter | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(AttributeValueList)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Use single value for appropriate comparison | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Use 2-element list for BETWEEN and IN | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Try to use 2+ element for IN | ||
+ | |||
+ | | | ||
+ | ? | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Try to use 2-element-list for operation like EQ | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Try empty list | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Try to skip this parameter at all | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Try data type different from attribute data type. For example, | ||
+ | |||
+ | {"S":"6"} vs {"N":"6"}. | ||
+ | |||
+ | | | ||
+ | does-not-match expected. | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | About SETs: most of operators do not support SET types: | ||
+ | |||
+ | Try to insert SET value for operator that does not support SET | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | About SETs: most of operators do not support SET types: | ||
+ | |||
+ | Ensure appropriate operators really support SETs. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(ComparisonOperator)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | For every comparison operator, verify it correctly compares values of each type it supports (in most cases string, number, binary). ''Rewrite here tests enumerated above, for AttributeValueList.'' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Verify each comparison operator is supported and compares correctly. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Try invalid value for comp. operator (like EQINVALID) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Select''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Ensure ALL_ATTRIBUTES return all attributes, especially if different items have different attributes. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Ensure COUNT return just count, not items themselves. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Ensure ALL_PROJECTED_ATTRIBUTES returns all attrs projected to the index. Should I request table or index? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Set Select=SPECIFIC_ATTRIBUTES and enumerate attributes in AttributesToGet. Ensure it returns only the attributes listed in AttributesToGet (i.e. the same as without Select at all). | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Try to set Select=SPECIFIC_ATTRIBUTES if AttributesToGet was not set. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | How ALL_PROJECTED_ATTRIBUTES should work? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Set Select to empty line or other invalid value. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Use AttributesToGet together with Select equal to ALL_ATTRIBUTES or COUNT. What about ALL_PROJECTED_ATTRIBUTES? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Segment ''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | '''parallel scan is out of scope for now. Should be ignored by MagnetoDB?''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''TotalSegments''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | '''parallel scan is out of scope for now. Should be ignored by MagnetoDB?''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Response''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | ConsumedCapacity: is returned only if requested and corresponds to requested data | ||
+ | |||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | ConsumedCapacity: is empty if provisioned throughput is ignored now? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Count: Ensure the value is correct | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Items: its length correspond to Count | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Items: should it be present if Select=COUNT? | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Items: ensure the items are correct | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | LastEvaluatedKey: | ||
+ | |||
+ | Ensure it’s present if limit was used and/or reached | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | LastEvaluatedKey: | ||
+ | |||
+ | Ensure this item is present in the current results and will not be present in the next results (if it passes filter, of course) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | ScannedCount: Ensure the value is correct. | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Exceptions''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | Simulate ProvisionedThroughputExceededException | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | ProvisionedThroughputExceededException: unable to reproduce w/o ProvisionedThroughput | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | ResourceNotFoundException: request nonexistent table | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | ResourceNotFoundException: | ||
+ | |||
+ | request nonexistent index | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | ResourceNotFoundException: | ||
+ | |||
+ | request table in non Active state | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>Sc-</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | ==UpdateItem== | ||
+ | |||
+ | ==UpdateTable== | ||
+ | |||
+ | == | ||
+ | |||
+ | =Indexing= | ||
+ | |||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | | ||
+ | <center>'''<nowiki>#</nowiki>'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Description'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Results'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''T'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Status'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Notes'''</center> | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''CreateTable''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(LocalSecondaryIndexes)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-1</center> | ||
+ | |||
+ | | | ||
+ | No LSIs specified for a table | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-2</center> | ||
+ | |||
+ | | | ||
+ | 5 LSI specified for a table | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-3</center> | ||
+ | |||
+ | | | ||
+ | 6 LSIs specified for a table | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(IndexName)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-10</center> | ||
+ | |||
+ | | | ||
+ | Some correct name specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-11</center> | ||
+ | |||
+ | | | ||
+ | Name is 3 symbols long | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-12</center> | ||
+ | |||
+ | | | ||
+ | Name is 255 symbols long | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-13</center> | ||
+ | |||
+ | | | ||
+ | Empty name | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-14</center> | ||
+ | |||
+ | | | ||
+ | Option not specified | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-15</center> | ||
+ | |||
+ | | | ||
+ | Name is 2 symbols long | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-16</center> | ||
+ | |||
+ | | | ||
+ | Name is 256 symbols long | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(KeySchema)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-20</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (just 1 HASH key) | ||
+ | |||
+ | - No projection | ||
+ | |||
+ | | | ||
+ | error (REGION key not specified) | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-21</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (just 1 REGION key) | ||
+ | |||
+ | - No projection | ||
+ | |||
+ | | | ||
+ | error (HASH key not specified) | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-22</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (neither HASH nor REGION keys specified) | ||
+ | |||
+ | - No projection | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-23</center> | ||
+ | |||
+ | | | ||
+ | Non-existent (in the table declaration) attribute specified as a HASH key | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-24</center> | ||
+ | |||
+ | | | ||
+ | Non-existant (in the table declaration) attribute specified as REGION key | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-25</center> | ||
+ | |||
+ | | | ||
+ | The same attribute specified as both HASH and REGION keys | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-26</center> | ||
+ | |||
+ | | | ||
+ | Option not specified | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-27</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (1 HASH key, 1 REGION key) | ||
+ | |||
+ | - No projection | ||
+ | |||
+ | | | ||
+ | DescribeTable reports the same 1 LSI structure | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-28</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (1 HASH key, 1 REGION key) | ||
+ | |||
+ | - Projection: 1 non-key attribute mentioned | ||
+ | |||
+ | | | ||
+ | DescribeTable reports the same 1 LSI structure | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-29</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (1 HASH key, 1 REGION key) | ||
+ | |||
+ | - Projection: several non-key attributes mentioned | ||
+ | |||
+ | | | ||
+ | DescribeTable reports the same 1 LSI structure | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-30</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (1 HASH key, 1 REGION key) | ||
+ | |||
+ | - Projection: one KEY (HASH) attribute mentioned | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-31</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (1 HASH key, 1 REGION key) | ||
+ | |||
+ | - Projection: several KEY (HASH, REGION) and non-key attributes mentioned | ||
+ | |||
+ | | | ||
+ | DescribeTable reports the same 1 LSI structure | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-32</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (1 HASH key, 1 REGION key) | ||
+ | |||
+ | - Projection: one KEY (REGION) attribute mentioned | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-33</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (1 HASH key, 1 REGION key) | ||
+ | |||
+ | - Projection: several non-key attributes mentioned | ||
+ | |||
+ | | | ||
+ | DescribeTable reports the same 1 LSI structure | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-34</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (1 HASH key, 1 REGION key) | ||
+ | |||
+ | - Projection: 20 non-key attributes mentioned | ||
+ | |||
+ | | | ||
+ | DescribeTable reports the same 1 LSI structure | ||
+ | |||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-35</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (1 HASH key, 1 REGION key) | ||
+ | |||
+ | - Projection: 21 non-key attributes mentioned | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-36</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (1 HASH key, 1 REGION key) | ||
+ | |||
+ | - Projection: 1 NON-EXISTENT non-key attribute mentioned | ||
+ | |||
+ | | | ||
+ | error (?) | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-37</center> | ||
+ | |||
+ | | | ||
+ | Create 1 LSI for a table: | ||
+ | |||
+ | - KeySchema (1 HASH key, 1 REGION key) | ||
+ | |||
+ | - Projection: several NON-EXISTENT non-key attributes mentioned | ||
+ | |||
+ | | | ||
+ | error (?) | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''(ProjectionType)''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-40</center> | ||
+ | |||
+ | | | ||
+ | Option not specified (omitted) | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-41</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= KEYS_ONLY</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-42</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= INCLUDE</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-43</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= ALL</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-44</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= <</nowiki>empty value> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-45</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= ""</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-46</center> | ||
+ | |||
+ | | | ||
+ | <nowiki>= "Something else"</nowiki> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Query''' | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-47</center> | ||
+ | |||
+ | | | ||
+ | No indexes specified (option "IndexName" omitted) | ||
+ | |||
+ | | | ||
+ | Result data are not ordered | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-48</center> | ||
+ | |||
+ | | | ||
+ | Existing index (LSI) specified | ||
+ | |||
+ | | | ||
+ | Result data are in the order described by the index | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-49</center> | ||
+ | |||
+ | | | ||
+ | More than one existing index (LSI) specified | ||
+ | |||
+ | | | ||
+ | ? | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-50</center> | ||
+ | |||
+ | | | ||
+ | Non-existent index (LSI) specified | ||
+ | |||
+ | | | ||
+ | ? | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-51</center> | ||
+ | |||
+ | | | ||
+ | Empty index name specified | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-52</center> | ||
+ | |||
+ | | | ||
+ | Specified index does not contain the attribute that is used in KeyConditions | ||
+ | |||
+ | | | ||
+ | ? | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>I-53</center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | =Asynchronous Operations= | ||
+ | |||
+ | '''Preconditions:''' while the just created table is in CREATING status… | ||
+ | |||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | | ||
+ | <center>'''<nowiki>#</nowiki>'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Description'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Results'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''T'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Status'''</center> | ||
+ | |||
+ | | | ||
+ | <center>'''Notes'''</center> | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>AsO-1</center> | ||
+ | |||
+ | | | ||
+ | Create table | ||
+ | |||
+ | | | ||
+ | While the table is being created, its status is “CREATING” | ||
+ | |||
+ | | | ||
+ | <center>P</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | '''Precondition:''' while the just created table is in CREATING status… | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>AsO-10</center> | ||
+ | |||
+ | | | ||
+ | Try reading data from this table | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>AsO-11</center> | ||
+ | |||
+ | | | ||
+ | Create table with the same name | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>AsO-12</center> | ||
+ | |||
+ | | | ||
+ | Delete the table | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>AsO-13</center> | ||
+ | |||
+ | | | ||
+ | Run DescribeTable for this table | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center>AsO-14</center> | ||
+ | |||
+ | | | ||
+ | Read/Update/Remove items from the table | ||
+ | |||
+ | | | ||
+ | error | ||
+ | |||
+ | | | ||
+ | <center>N</center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | |- | ||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | |||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | <center></center> | ||
+ | |||
+ | | | ||
+ | |||
|} | |} |
Revision as of 15:00, 2 April 2014
Contents
KVSaaS Test Cases and Ideas
Notes:
- Test Case status:
- R - ready (test scenario exists and works fine - passes)
- P - in progress (test scenario exists but fails due to not-ready functionality)
- N - not implemented (test scenario is incomplete)
- <empty> - TC has not been analysed yet
DDL and DML statements
BatchGetItem
|
|
|
|
|
|
|
General |
|
|
|
|
|
BatchGetItem contains all the correct mandatory parameters |
|
|
|
|
|
BatchGetItem contains all the correct parameters |
|
|
|
|
|
TableName |
|
|
|
|
|
The only table name (existing) specified |
|
|
|
|
|
Several existing table names specified |
|
|
|
|
|
3 symbols long |
|
|
|
|
|
255 symbols long |
|
|
|
|
|
Less than 3 symbols long |
|
|
|
|
|
More than 255 symbols long |
|
|
|
|
|
Non-existent name |
|
|
|
|
|
Empty (like =) |
|
|
|
|
|
= "" |
|
|
|
|
|
Mixed case letters in the name |
|
|
|
|
|
RequestItems |
|
|
|
|
|
(AttributesToGet) |
|
|
|
|
|
Option not specified (by default) |
All attrs are returned |
|
|
|
|
All existing attrs |
|
|
|
|
|
Some existing attrs |
|
|
|
|
|
Only non-existing attributes |
|
|
|
|
|
No attrs specified (whereas the Option exists) |
|
|
|
|
|
Some existing and some non-existent attrs specified |
|
|
|
|
|
Attrs list looks strange like "" or "//', 123, abc##, etc |
|
|
|
|
|
(Keys) |
|
|
|
|
|
Single "B" key specified |
|
|
|
|
|
"B" and "N" keys specified |
|
|
|
|
|
Single "SS" key specified |
|
|
|
|
|
"SS" and "NS" keys specified |
|
|
|
|
|
"B", "S", "SS" and "NS" keys specified |
|
|
|
|
|
Incorrect key name |
|
|
|
|
|
Incorrect key type |
|
|
|
|
|
Key type omitted |
|
|
|
|
|
Key name omitted |
|
|
|
|
|
Empty key name |
|
|
|
|
|
Empty key type |
|
|
|
|
|
(ConsistentRead) |
|
|
|
|
|
By default (if not specified) |
|
|
|
|
|
= TRUE |
|
|
|
|
|
= FALSE |
|
|
|
|
|
= "" |
|
|
|
|
|
Just = symbol |
|
|
|
|
|
= "Another_value" |
|
|
|
|
|
ReturnConsumedCapasity |
|
|
|
|
|
By default (if not specified) |
|
|
|
|
|
= "INDEXES" |
|
|
|
|
|
= "TOTAL" |
|
|
|
|
|
= "NONE" |
|
|
|
|
|
= "" |
|
|
|
|
|
Just "=" |
|
|
|
|
|
= "Another_value" |
|
|
|
|
|
Exceptions |
|
|
|
|
|
InternalServerError |
|
|
|
|
|
ProvisionedThroughputExceededException |
|
|
|
|
|
ResourceNotFoundException |
|
|
|
|
|
Limitations |
|
|
|
|
|
(Data volume) |
|
|
|
|
|
Specify BatchGet to retrieve less than 1MB of data |
"UnprocessedKeys" contains no items |
|
|
|
|
Specify BatchGet to retrieve exactly 1MB of data |
"UnprocessedKeys" contains no items |
|
|
|
|
Specify BatchGet to retrieve more than 1MB (and < 2MB) of data |
"UnprocessedKeys" contains items exceeding 1MB limit |
|
|
|
|
Specify BatchGet to retrieve more than 2MB of data |
"UnprocessedKeys" contains items exceeding first 1MB limit AND (after the next Request, in the next Response) "UnprocessedKeys" contains items exceeding the 2MB limit |
|
|
|
|
(Items number) |
|
|
|
|
|
Specify less than 100 items in the Request |
|
|
|
|
|
Specify exactly 100 items in the Request |
|
|
|
|
|
Specify more than 100 items in the Request |
error? |
|
|
|
|
Response |
|
|
|
|
|
Contains "GlobalSecondaryIndexes" section if there is (are) such for the table |
|
|
|
|
|
Contains "LocalSecondaryIndexes" section if there is (are) such for the table |
|
|
|
|
|
Contains both GSI and LSI sections if there are such for the table |
|
|
|
|
|
Result contains:
|
|
|
|
|
|
|
|
|
|
|
BatchWriteItem
|
|
|
|
|
|
|
General |
|
|
|
|
|
Complete set of correct mandatory options |
|
|
|
|
|
Complete set of correct all options |
|
|
|
|
|
PutRequest |
|
|
|
|
|
Correct Item string AND "N" : "string" value |
|
|
|
|
|
Non-existent Item string AND "N" : "string" value |
Error + UnprocessedItems contains unprocessed PutRequest Items |
|
|
|
|
EMPTY Item string AND "N" : "string" |
Error + UnprocessedItems contains unprocessed PutRequest Items |
|
|
|
|
Correct Item string and "NS" : ["string"] values |
|
|
|
|
|
Correct Item string and "B" : "string" value |
|
|
|
|
|
Correct Item string and "BS" : ["string"] values |
|
|
|
|
|
Correct Item string and "S" : "string" value |
|
|
|
|
|
Correct Item string and "N" : EMPTY value |
ValidationException + UnprocessedItems contains unprocessed PutRequest Items |
|
|
|
|
Correct Item string and "<SOME_STRANGE_OR_EMPTY_VALUE>" : "string" value |
ValidationException + UnprocessedItems contains unprocessed PutRequest Items |
|
|
|
|
Correct Item string and "NS" : "non-existent_string" value |
ValidationException + UnprocessedItems contains unprocessed PutRequest Items |
|
|
|
|
|
|
|
|
|
|
DeleteRequest |
|
|
|
|
|
Correct Key string and "N" : "string" value |
|
|
|
|
|
Non-existent Key string and "N" : "string" value |
Error + UnprocessedItems contains unprocessed DeleteRequest Items |
|
|
|
|
EMPTY Key string and "N" : "string" value |
Error + UnprocessedItems contains unprocessed DeleteRequest Items |
|
|
|
|
correct Key string and "NS" : ["string"] values |
|
|
|
|
|
correct Key string and "B" : "string" value |
|
|
|
|
|
correct Key string and "BS" : ["string"] values |
|
|
|
|
|
correct Key string and "S" : "string" value |
|
|
|
|
|
Correct Key string and "SS" : ["string"] values |
|
|
|
|
|
CombinedRequest |
|
|
|
|
|
Specify in one statement: correct Key string for DeleteRequest "N" : "string" value AND correct Item string for PutRequest "N" : "string" value |
|
|
|
|
|
Specify in one statement: correct Key string for DeleteRequest "B" : "string" value AND correct Key string for DeleteRequest "SS" : "string" values AND correct Item string for PutRequest "NS" : "string" values AND (!!!) INcorrect Item string for PutRequest "S" : "string" value |
|
|
|
|
|
Specify in one statement: correct Item string for PutRequest "N" : "string_A" value correct Key string for DeleteRequest "N" : "string_A" value |
An error: you can't put and delete the same item in the same BatchWriteItem request |
|
|
|
|
RequestItems (TableName) |
|
|
|
|
|
correct table name and correct PutRequest parameters for the Item |
Line(s) added correctly |
|
|
|
|
Specify 25 correct table names and correct PutRequest parameters for the Items |
Line(s) added correctly into all 25 tables |
|
|
|
|
Specify 26 correct table names and correct PutRequest parameters for the Items |
error/exception (?) |
|
|
|
|
correct table name and correct DeleteRequest parameters for the Key |
Line(s) deleted correctly |
|
|
|
|
INcorrect table name correct PutRequest parameters for an Item Check that UnprocessedItems contains unprocessed PutRequest Items:
|
Exception |
|
|
|
|
Correct table name and correct PutRequest parameters for the Item Make total request size more than 1 MB (how to?) |
error |
|
|
|
|
correct table name and correct PutRequest parameters for the Item Any individual item in a batch exceeds 64 KB (how to?) |
error |
|
|
|
|
ReturnItemCollectionMetrics |
|
|
|
|
|
is NONE (by default) |
no statistics returned |
|
|
|
|
is SIZE |
statistics about item collections, if any, that were modified during the operation are returned in the response |
|
|
|
|
is <Something_else> |
error/exception |
|
|
|
|
ReturnConsumedCapacity |
|
|
|
|
|
is NONE (by default)
|
ConsumedCapacity is not included in the response |
|
|
|
|
is TOTAL |
the response includes ConsumedCapacity data for tables and indexes |
|
|
|
|
is INDEXES |
the response includes ConsumedCapacity for indexes only |
|
|
|
|
is <Something_else> (and empty) |
error/exception |
|
|
|
|
Exceptions |
|
|
|
|
|
Simulate InternalServerError |
|
|
|
|
|
Simulate ItemCollectionSizeLimitExceededException |
|
|
|
|
|
Simulate ProvisionedThroughputExceededException |
|
|
|
|
|
Simulate ResourceNotFoundException |
|
|
|
|
|
|
|
|
|
|
CreateTable
|
|
|
|
|
|
|
General |
|
|
|
|
|
Create table without any optional attributes, only all mandatory |
|
|
|
|
|
Create a table specifying ALL (including mandatory) the correct parameters |
|
|
|
|
|
Try to create two tables with the same name in the same region |
ResourceInUseException expected. |
|
|
|
|
Try to create two tables with the same name in two different regions. |
|
|
|
|
|
Verify first status is CREATING, then ACTIVE |
|
|
|
|
|
What happens if read/write to/from table in CREATING state? Possible to reproduce? |
|
|
|
|
|
Create one table with sec. indexes and then try to create one more table while the first one is in CREATING state. - Possible to reproduce? - How much time the table should be in CREATING state? - Can I manage this time anyhow? |
|
|
|
|
|
Try to create table w/o some mandatory attribute: AttributeDefinitions, KeySchema, ProvisionedThroughput, TableName. |
|
|
|
|
|
AttributeDefinitions |
|
|
|
|
|
Number of attributes |
|
|
|
|
|
create table with 1 attr |
|
|
|
|
|
What is upper limit? Try max and max+1 "Individual items in an DynamoDB table can have any number of attributes, although there is a limit of 64 KB on the item size. An item size is the sum of lengths of its attribute names and values (binary and UTF-8 lengths)." So, number of attr is limited only by item size. Can be tested only via PutItem? |
|
|
|
|
|
Create a table with key and non-key (and non-index also) attributes. It should fail. Non-key attrs are unacceptable. Note: Test for PutItem: PutItem not containing values for non-key/non-indexed attributes of the table to ensure these attrs are not required. |
Error/exception ? |
|
|
|
|
AttrName |
|
|
|
|
|
Try length of 1 symbol, 255 (upper limit) - these limits are applicable only for key attrs and index projections. Other attrs can have longer names, without explicit limits (just size of the whole item). |
|
|
|
|
|
Try lengh 255+1 for key and indexes attr. |
|
|
|
|
|
Check size of non-key / non-index-projected attr names |
|
|
|
|
|
Try to send attr names without attr types. |
|
|
|
|
|
Create table with attrs of each type: S, N, B. Ensure the data types are applied on put/get operations (it could be covered in Put/Get tests). |
|
|
|
|
|
AWS says regarding local indexes creation: “You can project attributes of any data type, including scalar data types and multi-valued sets.” But how to define projection of Set types if they cannot be assigned to the attributes on table creation stage? |
|
|
|
|
|
Try to create a table with attribute of some SET type. It should not be allowed. |
|
|
|
|
|
KeySchema |
|
|
|
|
|
Create table with a key of HASH type. |
|
|
|
|
|
Create table with a key of HASH and RANGE type. |
|
|
|
|
|
Try to enumerate key attrs in wrong order: RANGE and then HASH attrs in the KeySchema list |
|
|
|
|
|
Try to create a table only with RANGE key |
|
|
|
|
|
Try to leave the list empty |
|
|
|
|
|
Try to add more than one HASH and/or RANGE attr. In general, add more than 2 attrs to the list. |
|
|
|
|
|
Try keytype different from HASH and RANGE. |
|
|
|
|
|
Try not to mention key attr in Definitions but only in KeySchema. |
|
|
|
|
|
Try to mention attr names not defined in AttrDefinitions. |
|
|
|
|
|
ProvisionedThroughput (for now, MagnetoDB ignores these values.) |
|
|
|
|
|
Set positive values. |
|
|
|
|
|
Try to mention not all mandatory attrs |
|
|
|
|
|
Try to pass non-number, negative number |
|
|
|
|
|
TableName |
|
|
|
|
|
Name length is 3 |
|
|
|
|
|
Name length is 255 |
|
|
|
|
|
Name length < 3 |
|
|
|
|
|
Name length > 255 |
|
|
|
|
|
What are the limitations regarding lower and upper case, hyphen and other symbols? Do they correspond to DynamoDB rules? AWS says: “For table and secondary index names, allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot). Names can be between 3 and 255 characters long.” |
|
|
|
|
|
Provide an empty table name. |
exception ? |
|
|
|
|
LocalSecondaryIndexes |
|
|
|
|
|
Create index without some of mandatory attributes. |
|
|
|
|
|
Number of indexes |
|
|
|
|
|
Create 1 index for a table |
|
|
|
|
|
Create 5 indexes for the table |
|
|
|
|
|
Create 6 indexes for the table |
|
|
|
|
|
Set LSI attribute as an empty list |
|
|
|
|
|
“There is a 10 GB size limit per hash key” - how to evaluate it? Generate so many items that size of all hash key value is about 10 GB? |
|
|
|
|
|
IndexName |
|
|
|
|
|
Create an index having 3 characters long name |
|
|
|
|
|
Create an index having 255 characters long name |
|
|
|
|
|
Create an index having 2 characters long name |
|
|
|
|
|
Create an index having 256 characters long name |
|
|
|
|
|
TO BE CLARIFIED: Is it case-sensitive? non-letters? |
|
|
|
|
|
Create 2 tables with similar index names. |
successful |
|
|
|
|
Try to create 2 indexes with the same name in one table |
error |
|
|
|
|
KeySchema |
|
|
|
|
|
Create LSI with Hash different from table hash key (table should have H+R key). |
|
|
|
|
|
Create LSI for table with HASH w/o RANGE. Should fail. But will work for global indexes. |
|
|
|
|
|
Create similar indexes with different names (the same keys, etc) |
|
|
|
|
|
create an index just with HASH key, w/o RANGE |
|
|
|
|
|
‘Repeat’ key schema of the table. “For a local secondary index, the hash key must be the same as the table's hash key, and the range key must be a non-key table attribute.” |
|
|
|
|
|
Test for PutItem: Ensure range key of LSI is not a mandatory attribute. |
|
|
|
|
|
Projection |
|
|
|
|
|
Check usage of all projection types: KEYS_ONLY, INCLUDE, ALL. Query tests verify that it works as expected. |
|
|
|
|
|
Use NonKeyAttributes but skip ProjectionType |
|
|
|
|
|
Use NonKeyAttributes list with one attribute in it |
|
|
|
|
|
Use key attrs in the NonKeyAttributes list |
|
|
|
|
|
Make NonKeyAttributes list empty
|
|
|
|
|
|
Insert some non-key attrs in NonKeyAttributes list when Pr.Type is KEYS_ONLY. Then - similar but with ALL case. |
|
|
|
|
|
Create a table with 20 non-key attrs in one LSI. |
|
|
|
|
|
Create a table with 21 non-key attrs in one LSI. |
|
|
|
|
|
Create a table with 20 non-key attrs in multiple LSIs. |
|
|
|
|
|
Create a table with 21 non-key attrs in diff. LSIs, without repetitions of attr names. |
|
|
|
|
|
Create a table with 21 non-key attrs in diff. LSIs, with repetitions of attr names between LSI’s. |
|
|
|
|
|
GlobalSecondaryIndexes |
|
|
|
|
|
(out of scope now) |
|
|
|
|
|
Response |
|
|
|
|
|
Most of key-values in TableDescription are equal to data from Request |
Check and verify:
|
|
|
|
|
Attrs not present in Request but should be present in Response |
|
|
|
|
|
If LSI are not created, should this attr be present in response as empty list? |
|
|
|
|
|
Think how to check TableSizeBytes value. |
|
|
|
|
|
CreationDateTime verification: Find a way to get current time from the target system |
|
|
|
|
|
Exceptions |
|
|
|
|
|
LimitExceededException: Is related to in-progress states. Not possible to reproduce for now. |
|
|
|
|
|
ResourceInUseException: Recreate existing table (the case was mentioned above) |
|
|
|
|
|
InternalServerError: When this error [500] is expected and when some other error should appear? |
|
|
|
|
|
Additional |
|
|
|
|
|
Create more than 255 tables |
|
|
|
|
|
|
|
|
|
|
DeleteItem
DeleteTable
|
|
|
|
|
|
|
General |
|
|
|
|
|
Delete an existing table. Check if all the Response’s fields (see Table Description object) are equal to the appropriate table parameters |
|
|
|
|
|
Delete a non-existent table |
ResourceNotFoundException |
|
|
|
|
Delete a table specifying “” as a name |
|
|
|
|
|
Delete a table specifying NULL as a name |
|
|
|
|
|
Delete a table w/o specifying any parameters |
|
|
|
|
|
Delete a table having a name that contains only 2 or 1 symbol |
|
|
|
|
|
Delete a table specifying a name that contains more than 255 symbols |
ResourceNotFoundException ? |
|
|
|
|
Delete an existing table and, while the status is DELETING, run DeleteTable operation for the same table once again |
|
|
|
|
|
Results Verification |
|
|
|
|
|
|
|
|
|
|
|
Exceptions |
|
|
|
|
|
Simulate InternalServerError exception. Ideas? |
|
|
|
|
|
Simulate LimitExceededException exception. Ideas? Delete more than 10 tables in the same time |
|
|
|
|
|
Simulate ResourceInUseException exception. Ideas? Delete a table while it is in use by some other operation |
|
|
|
|
|
Simulate ResourceNotFoundException exception. Other ideas? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DescribeTable
|
|
|
|
|
|
|
General |
|
|
|
|
|
Run DescribeTable against the existing table. Check that all the required params are described correctly (see “Response Syntax” for DescribeTable statement) |
|
|
|
|
|
Run DescribeTable against the non-existent table (ResourceNotFoundException exception) |
|
|
|
|
|
Run DescribeTable specifying “” as a table name |
|
|
|
|
|
Run DescribeTable specifying NULL as a name |
|
|
|
|
|
Run DescribeTable w/o specifying any parameters |
|
|
|
|
|
Run DescribeTable specifying a name that contains only 2 or 1 symbol (causes an exception?) |
|
|
|
|
|
Run DescribeTable specifying a name that contains more than 255 symbols |
|
|
|
|
|
Simulate InternalServerError exception |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GetItem
|
|
|
|
|
|
|
General |
|
|
|
|
|
Get an item specifying correct mandatory attributes |
|
|
|
|
|
Get an item specifying all the correct mandatory and optional ttributes |
|
|
|
|
|
TableName |
|
|
|
|
|
Valid (existing) table name |
|
|
|
|
|
Existing table name of 3 symbols |
|
|
|
|
|
Existing table name of 255 symbols |
|
|
|
|
|
From non-existent table name |
|
|
|
|
|
Empty name (“”) |
|
|
|
|
|
Less than 3 symbols long |
|
|
|
|
|
More than 255 symbols long |
|
|
|
|
|
AttributesToGet: |
|
|
|
|
|
Specified, correct items in the list |
|
|
|
|
|
Section not specified |
|
|
|
|
|
“AttributesToGet” term not specified, but there is a list of items in the section |
Exception/error |
|
|
|
|
Section AttributesToGet is specified, but there is just an empty list (no items) |
Exception/error |
|
|
|
|
Specified more attributes than exist in the table |
Exception/error |
|
|
|
|
Incorrect attributes: Wrong names |
Exception/error |
|
|
|
|
Incorrect attributes: Empty values like "" |
Exception/error |
|
|
|
|
Key |
|
|
|
|
|
One Key specified: “B” |
|
|
|
|
|
One Key specified: “N” |
|
|
|
|
|
One Key specified: “S” |
|
|
|
|
|
One key: “BS” |
|
|
|
|
|
One key: “NS” |
|
|
|
|
|
One key: “SS” |
|
|
|
|
|
Combination of "B", "N", "S" types |
|
|
|
|
|
Combination of "B", "N", "S", "BS", "NS", "SS" types |
|
|
|
|
|
Combination of “B”, “B”, "N", "N", “S”, “S”, “BS”, “BS”, "NS", "NS", “SS”, “SS” types |
|
|
|
|
|
The whole section “Key” not specified |
Exception/error |
|
|
|
|
Section “Key” specified, but the section content is empty |
Exception/error |
|
|
|
|
One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS") |
Exception/error |
|
|
|
|
In section “Key” there is a key of type “N” but a non-existent value specified for it |
No items returned in Response |
|
|
|
|
ConsistentRead |
|
|
|
|
|
= True |
|
|
|
|
|
= False |
|
|
|
|
|
Not specified |
|
|
|
|
|
= <Something_else> |
|
|
|
|
|
ReturnConsumedCapacity |
|
|
|
|
|
= INDEXES |
|
|
|
|
|
= TOTAL |
|
|
|
|
|
= NONE |
|
|
|
|
|
= <Something_else> |
|
|
|
|
|
Exceptions |
|
|
|
|
|
Simulate ConditionalCheckFailedException |
|
|
|
|
|
Simulate InternalServerError |
|
|
|
|
|
Simulate ItemCollectionSizeLimitExceededException |
|
|
|
|
|
Simulate ProvisionedThroughputExceededException |
|
|
|
|
|
Simulate ResourceNotFoundException |
|
|
|
|
|
|
|
|
|
|
ListTables
|
|
|
|
|
|
|
General |
|
|
|
|
|
Neither Limit nor ExclusiveStartTableName specified: Empty result (if there are no tables in this Tenant and Datacenter were created) |
|
|
|
|
|
Neither Limit nor ExclusiveStartTableName specified: A list of existing tables in this Tenant and Datacenter (if there are some in this Tenant and Datacenter tables) |
|
|
|
|
|
Neither Limit nor ExclusiveStartTableName specified: The List does not contain the tables having “CREATING” status |
|
|
|
|
|
Incorrect spelling of ListTables specified like: LisTables or Listables or ListTable, etc |
|
|
|
|
|
There is no “{” or “}” in the statement |
|
|
|
|
|
Limit |
|
|
|
|
|
The limit option is not specified and The number of existing tables is 5 |
1 page containing all 5 tables |
|
|
|
|
The limit option is not specified and The number of tables is 100 |
1 page containing all 100 tables |
|
|
|
|
Limit = 3 and number of existing tables is 100 |
The number of tables on the page is 3 and "LastEvaluatedTableName" parameter in Response contains the 3rd (last displayed on the 1st page) table name and There are 34 result pages in total |
|
|
|
|
Limit = 3 and "LastEvaluatedTableName" = <3d_table_name_in_the_table_list_of_the_previous_TC> and number of existing tables is 100 |
The number of tables on the second page is 3 and "LastEvaluatedTableName" parameter in Response contains the 3d (last on the second page) table name and There are 32 yet other pages able to be displayed |
|
|
|
|
Limit = 0 |
Error/exception |
|
|
|
|
Limit = -2 |
Error/exception |
|
|
|
|
Limit = "Some_strange_string" |
Error/exception |
|
|
|
|
Limit = "" |
Error/exception |
|
|
|
|
Limit = <nothing> |
Error/exception |
|
|
|
|
Case sensitivity (?) |
|
|
|
|
|
ExclusiveStartTableName |
|
|
|
|
|
The "ExclusiveStartTableName" option not specified |
|
|
|
|
|
An existing "ExclusiveStartTableName" specified |
|
|
|
|
|
An existing "ExclusiveStartTableName" specified when: There were no previous runs of ListTables statement |
|
|
|
|
|
An existing "ExclusiveStartTableName" specified when: Previous run of ListTables statement returned just one page |
|
|
|
|
|
"ExclusiveStartTableName" is 3 symbols long |
|
|
|
|
|
Table name is 255 symbols long |
|
|
|
|
|
Table name is 1 or 2 symbols long |
|
|
|
|
|
Table name is 256 or more symbols long |
|
|
|
|
|
A non-existent table name specified |
|
|
|
|
|
No table names specified |
|
|
|
|
|
An empty (like "ExclusiveStartTableName" :) table name specified |
|
|
|
|
|
Tenant |
|
|
|
|
|
Switch to another tenant and Perform ListTables operations: The "ExclusiveStartTableName" option not specified |
A unique (pertinent to this specific Tenant) list of tables returned |
|
|
|
|
Switch to another tenant and Perform ListTables operations: An existing table name specified in "ExclusiveStartTableName" |
A unique (pertinent to this specific Tenant) list of tables returned starting from the specified table name |
|
|
|
|
DataCenter (endpoint) Switch to another Datacenter and Perform ListTables operations: |
|
|
|
|
|
The "ExclusiveStartTableName" option not specified |
A unique (pertinent to this specific Datacenter) list of tables returned |
|
|
|
|
An existing table name specified in "ExclusiveStartTableName" |
A unique (pertinent to this specific Datacenter) list of tables returned starting from the specified table name |
|
|
|
|
|
|
|
|
|
PutItem
Note: For each test, check the ResponseValue for required options and values
|
|
|
|
|
|
|
General |
|
|
|
|
|
(Correct names of required fields) |
|
|
|
|
|
put item to INSERT 1 attribute (an existing table, 1 correct attribute “S”) |
|
|
|
|
|
put item to INSERT N attributes (an existing table, 1 correct attribute “S”) |
|
|
|
|
|
put item to UPDATE 1 attribute (an existing table, 1 correct attribute “S”), Exists = true |
|
|
|
|
|
put item to UPDATE N attributes (an existing table, 1 correct attribute “S”), Exists = true |
|
|
|
|
|
put item to UPDATE N attributes (an existing table, N correct attributes “S”), no “Exists” option specified (should be True by default) |
|
|
|
|
|
(Put item to UPDATE N attributes) |
|
|
|
|
|
an existing table, N correct attributes of type “B” |
|
|
|
|
|
an existing table, N correct attributes of type “BS” |
|
|
|
|
|
an existing table, N correct attributes of type “N” |
|
|
|
|
|
an existing table, N correct attributes of type “NS” |
|
|
|
|
|
an existing table, N correct attributes of type “SS” |
|
|
|
|
|
an existing table, N correct attributes of types “B”, “BS”, “N”, “NS”, “S”, “SS” |
|
|
|
|
|
Put item to UPDATE N attributes (an existing table, N correct attributes “SS”) |
|
|
|
|
|
(Expected conditions (all combinations)) |
|
|
|
|
|
CORRECT field name and "N" : "string" value |
|
|
|
|
|
NON-EXISTENT field name and "N" : "string" value |
|
|
|
|
|
EMPTY field name and "N" : "string" value |
|
|
|
|
|
CORRECT field name and "NS" : ["string"] values |
|
|
|
|
|
CORRECT field name and "B" : "string" value |
|
|
|
|
|
CORRECT field name and "BS" : ["string"] values |
|
|
|
|
|
CORRECT field name and "S" : "string" value |
|
|
|
|
|
CORRECT field name and "SS" : ["string"] values |
|
|
|
|
|
CORRECT field name and "N" : EMPTY value |
|
|
|
|
|
CORRECT field name and "<SOME_STRANGE_OR_EMPTY_VALUE>" : "string" value |
|
|
|
|
|
CORRECT field name and "NS" : "NON-EXISTENT_string" value |
|
|
|
|
|
(Exists value) |
|
|
|
|
|
Option omitted (by default) |
|
|
|
|
|
= True |
|
|
|
|
|
= False |
|
|
|
|
|
= “” |
|
|
|
|
|
= “something else” |
|
|
|
|
|
= <something_else> |
|
|
|
|
|
ReturnConsumedCapacity: |
|
|
|
|
|
= INDEXES |
|
|
|
|
|
= TOTAL |
|
|
|
|
|
= NONE |
|
|
|
|
|
= “something_else” |
|
|
|
|
|
= “” |
|
|
|
|
|
<no_value> |
|
|
|
|
|
incorrect spelling of RCC |
|
|
|
|
|
ReturnItemCollectionMetrics |
|
|
|
|
|
= SIZE |
|
|
|
|
|
= NONE |
|
|
|
|
|
= “something_else” |
|
|
|
|
|
= “” |
|
|
|
|
|
<no_value> |
|
|
|
|
|
incorrect spelling of RCM |
|
|
|
|
|
ReturnValues |
|
|
|
|
|
= NONE |
|
|
|
|
|
= ALL_OLD |
|
|
|
|
|
= UPDATED_OLD |
|
|
|
|
|
= ALL_NEW |
|
|
|
|
|
=s UPDATED_NEW |
|
|
|
|
|
= “” |
|
|
|
|
|
= “something_else” |
|
|
|
|
|
= empty |
|
|
|
|
|
<empty> |
|
|
|
|
|
incorrect spelling of “ReturnValues” |
|
|
|
|
|
Others |
|
|
|
|
|
Update an existing line while the key-value to be updated is in UPDATING status |
|
|
|
|
|
Update a non-existent table |
|
|
|
|
|
Update a table titled as “” |
|
|
|
|
|
Update a table by specifying only 2 letters of its title |
|
|
|
|
|
Update a table by specifying more than 256 letters of its title |
|
|
|
|
|
Update a table having no name |
|
|
|
|
|
(Insert an item) |
|
|
|
|
|
Specifying PrimaryKey as equal to the already existing line (this scenario update existing line) |
|
|
|
|
|
Specifying strange data type (not in B, BS, S, SS, N, NS) for a Value to be inserted |
|
|
|
|
|
Specifying two equal Key values in one operation (if we specified two attributes with equal names - in table put only value of the last attribute) |
|
|
|
|
|
Specifying no values for a Key |
|
|
|
|
|
Specifying non-existent Keys in “Expected” option |
|
|
|
|
|
Exceptions |
|
|
|
|
|
Simulate: ConditionalCheckFailedException exception |
|
|
|
|
|
Simulate: ItemCollectionSizeLimitExceededException exception |
|
|
|
|
|
Simulate: ProvisionedThroughputExceededException exception |
|
|
|
|
|
Simulate: ResourceNotFoundException exception (implements in "Update a non-existent table") |
|
|
|
|
|
TTL parameter tests |
|
|
|
|
|
|
|
|
|
|
Query
|
|
|
|
|
|
|
General |
|
|
|
|
|
Query statement contains the correct mandatory parameters only |
|
|
|
|
|
Query statement contains ALL the correct parameters |
|
|
|
|
|
TableName |
|
|
|
|
|
Valid name specified |
|
|
|
|
|
Non-existent name |
|
|
|
|
|
Empty name |
|
|
|
|
|
Less than 3 symbols long |
|
|
|
|
|
More than 255 symbols long |
|
|
|
|
|
Exactly 3 and 255 symbols long |
|
|
|
|
|
Upper and lower cases |
|
|
|
|
|
AttributesToGet |
|
|
|
|
|
Specified correct attributes |
|
|
|
|
|
Not specified |
|
|
|
|
|
Specified more attributes than exist in the table |
|
|
|
It’s positive |
|
Specified incorrect attributes: wrong names |
|
|
|
It’s positive |
|
Specified incorrect attributes: empty values like "" |
|
|
|
|
|
Exact correct list: Select = SPECIFIC_ATTRIBUTES |
Correct result |
|
|
|
|
Exact correct list: Select = ALL_ATTRIBUTES |
error |
|
|
|
|
Exact correct list: Select = ALL_PROJECTED_ATTRIBUTES |
error |
|
|
|
|
Exact correct list: Select = COUNT |
error |
|
|
|
|
Exact correct list: Select = “” |
error |
|
|
|
|
Exact correct list: Select = “something_else” |
error |
|
|
|
|
The option is not specified |
|
|
|
|
|
Completely incorrect list |
|
|
|
It’s positive |
|
Some correct and some incorrect names in the list |
|
|
|
It’s positive |
|
Empty list |
|
|
|
|
|
Not specified |
|
|
|
|
|
KeyConditions |
|
|
|
|
|
Key "B" specified |
|
|
|
|
|
Key "N" specified |
|
|
|
|
|
Key "S" specified |
|
|
|
|
|
Key "BS" specified |
|
|
|
|
|
Key "NS" specified |
|
|
|
|
|
Key "SS" specified |
|
|
|
|
|
Combination of "B" + "N" + "S" |
|
|
|
|
|
Combination of all 6 types ("B" + "N" + "S" + "BS" + "NS" + "SS") |
|
|
|
|
|
Not specified |
|
|
|
|
|
One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS") |
|
|
|
|
|
ConsistentRead |
|
|
|
|
|
= True |
|
|
|
|
|
Option not specified |
|
|
|
|
|
= “Something else” |
error |
|
|
|
|
ReturnConsumedCapacity |
|
|
|
|
|
= "INDEXES" |
|
|
|
|
|
= "TOTAL" |
|
|
|
|
|
= "NONE" |
|
|
|
|
|
= “Something_else” |
|
|
|
|
|
= “” |
|
|
|
|
|
= <Empty value> |
|
|
|
|
|
ExclusiveStartKey |
|
|
|
|
|
is String |
Records are taken starting by LastKeyValue of the previous operation |
|
|
|
|
is Number |
Records are taken starting by LastKeyValue of the previous operation |
|
|
|
|
is Binary |
Records are taken starting by LastKeyValue of the previous operation |
|
|
|
|
is S or N or B, but there was no previous operations |
What’s the content of ExclusiveStartKey? |
|
|
|
|
is Set of S or N or B |
error |
|
|
|
|
Not specified |
|
|
|
|
|
Incorrect ExclusiveStartKey |
Error |
|
|
|
|
IndexName |
|
|
|
|
|
correct Local SI (Secondary Index) |
|
|
|
|
|
correct Global SI |
|
|
|
|
|
non-existent LSI |
|
|
|
|
|
non-existent GSI |
|
|
|
|
|
Not specified |
|
|
|
|
|
Name length < 3 symbols |
error |
|
|
|
|
Name length > 255 symbols |
error |
|
|
|
|
Empty index name |
error |
|
|
|
|
Upper case index name |
? |
|
|
|
|
Lower case index name |
? |
|
|
|
|
Mix of Upper/lower case letters in index name |
? |
|
|
|
|
Limit |
|
|
|
|
|
Valid statement that returns > 10 lines, Limit = 5 |
5 lines returned and LastEvaluatedKey points to the last returned line |
|
|
|
|
Valid statement that returns N lines Limit = N*2 |
N lines returned and LastEvaluatedKey points to the last returned line |
|
|
|
|
Valid statement that returns N (< 5) lines Limit = 5 |
N lines returned and LastEvaluatedKey points to the last returned line |
|
|
|
|
Valid statement that returns N (< 5) lines Limit = 0 |
? |
|
|
|
|
Valid statement that returns data size > 1 MB Limit = 100 000 (that is more than 1 MB data size) |
Check that obtained data size is not more than 1 MB and LastEvaluatedKey points to the last returned line that does not exceed 1 MB |
|
|
|
|
ScanIndexForward |
|
|
|
|
|
= TRUE (by default) |
data are sorted by ascending of the index key |
|
|
|
|
= FALSE |
data are sorted by descending of the index key |
|
|
|
|
= “Another value” |
error |
|
|
|
|
= <empty value> |
? |
|
|
|
|
Select |
|
|
|
|
|
= ALL_ATTRIBUTES |
Returns all of the item attributes from the specified table or index |
|
|
|
|
= ALL_PROJECTED_ATTRIBUTES |
Retrieves all attributes which have been projected into the index |
|
|
|
|
= COUNT |
Returns the number of matching items, rather than the matching items themselves |
|
|
|
|
= SPECIFIC_ATTRIBUTES |
Returns only the attributes listed in AttributesToGet |
|
|
|
|
= <empty value> |
error |
|
|
|
|
= “” |
error |
|
|
|
|
= “Something else” |
error |
|
|
|
|
KeyConditions |
|
|
|
|
|
One correct field name ComparisonOperator = "EQ" |
Existing record should be returned (STRING, NUMBER, BOOLEAN) |
|
|
|
|
One correct field name ComparisonOperator = "EQ" AttributeValue is SET of Number or String or Boolean |
|
|
|
|
|
One correct field name ComparisonOperator = "EQ" Two AttributeValues specified (NUMBER and STRING) |
|
|
|
|
|
One correct field name (BINARY) ComparisonOperator = "EQ" AttributeValue is of type NUMBER or STRING |
error? |
|
|
|
|
One INcorrect field name ComparisonOperator = "EQ" Valid comparison value |
error ? |
|
|
|
|
One correct field name ComparisonOperator = "EQ" Comparison expression represents a combination that does not exist in the actual table |
No records returned |
|
|
|
|
One correct field name INVALID ComparisonOperator Valid comparison value |
error? |
|
|
|
|
One correct field name (Number or String or Boolean) ComparisonOperator = "LE" Valid comparison value (STRING or NUMBER or BOOLEAN) |
ok |
|
|
|
|
One correct field name ComparisonOperator = "LE" Two AttributeValues specified |
error? |
|
|
|
|
One correct field name ComparisonOperator = "LE" AttributeValue is SET of Number or String or Boolean |
error? |
|
|
|
|
One correct field name (Number or String or Boolean) ComparisonOperator = "LT" Valid comparison value (STRING or NUMBER or BOOLEAN) |
ok |
|
|
|
|
One correct field name ComparisonOperator = "LT" Two AttributeValues specified |
error? |
|
|
|
|
One correct field name (a set) ComparisonOperator = "LT" AttributeValue is SET of the same type |
error? |
|
|
|
|
One correct field name ComparisonOperator = "GE" Valid comparison value (STRING or NUMBER or BOOLEAN) |
ok |
|
|
|
|
One correct field name (N type) ComparisonOperator = "GE" Two (N and S) AttributeValues specified |
error |
|
|
|
|
One correct field name ComparisonOperator = "GE" AttributeValue is SET of Number or String or Boolean |
error |
|
|
|
|
One correct field name (Number or String or Boolean) ComparisonOperator = "GT" Valid comparison value (STRING or NUMBER or BOOLEAN) |
ok |
|
|
|
|
One correct field name ComparisonOperator = "GT" Two AttributeValues specified |
error? |
|
|
|
|
One correct field name (Number or String or Boolean) ComparisonOperator = "GT" AttributeValue is SET of Number or String or Boolean |
ok |
|
|
|
|
One correct field name ComparisonOperator = "BEGINS_WITH" Valid comparison value (STRING, BOOLEAN) |
ok |
|
|
|
|
One non-existent field name ComparisonOperator = "BEGINS_WITH" Valid comparison value (STRING, BOOLEAN) |
|
|
|
|
|
One correct field name ComparisonOperator = "BEGINS_WITH" Two AttributeValues specified |
error |
|
|
|
|
One correct field name ComparisonOperator = "BEGINS_WITH" AttributeValue is SET of Number or String or Boolean |
error |
|
|
|
|
One correct field name ComparisonOperator = "BETWEEN" Two valid comparison values |
ok |
|
|
|
|
One non-existent field name ComparisonOperator = "BETWEEN" Two valid comparison values |
error |
|
|
|
|
One correct field name ComparisonOperator = "BETWEEN" Only one AttributeValue specified |
error |
|
|
|
|
One correct field name ComparisonOperator = "BETWEEN" AttributeValue is SET of Number or String or Boolean |
error |
|
|
|
|
One correct field name ComparisonOperator = "" |
error |
|
|
|
|
One correct field name ComparisonOperator = <empty_value> |
error |
|
|
|
|
One correct field name ComparisonOperator = “something_else” |
error |
|
|
|
|
|
|
|
|
|
Scan
|
|
|
|
|
|
|
General |
|
|
|
|
|
scan stops and returns results if processed data size exceeds 1 MB |
|
|
|
|
|
Reproduce: Scan result is empty |
|
|
|
|
|
Parallel scan topic - out of scope for now |
|
|
|
|
|
TableName |
|
|
|
|
|
scan with only required parameter (table name) |
|
|
|
|
|
scan if name length is 3 |
|
|
|
|
|
scan if name length is 255 |
|
|
|
|
|
scan with name length < 3 |
error? |
|
|
|
|
scan with name length is > 255 |
error? |
|
|
|
|
upper-lower case in t.name |
? |
|
|
|
|
non-existent table name |
|
|
|
|
|
diff. symbols in t. name |
|
|
|
|
|
scan request without required parameter - table name |
|
|
|
|
|
AttributesToGet |
|
|
|
|
|
Skip it: all attrs should be returned |
|
|
|
|
|
include all params |
? |
|
|
|
|
empty list of attrs |
|
|
|
|
|
the only attr in the list is non-key attr |
|
|
|
|
|
the only attr in the list is attr that does not participate in a filter |
|
|
|
|
|
try nonexistent attrs |
should not be displayed in results? |
|
|
|
|
Filter can find items, but selected attrs are not present in those items: selected attrs are present in some other items |
|
|
|
|
|
Filter can find items, but selected attrs are not present in those items: selected attrs are not present in any items |
|
|
|
|
|
Repeat the same attr[s] in this list |
|
|
|
|
|
|
|
|
| |
|
Use LastEvaluatedKey from the previous scan. How to ensure that the scan really starts from this item? |
|
|
|
|
|
What if assign some existing key but scan operation was not executed before? No difference I think. |
|
|
|
|
|
Assign nonexistent value of key attr. |
|
|
|
|
|
Assign non-key attributes and their values. Try attrs of SET type? |
|
|
|
|
|
Limit |
|
|
|
|
|
Verify just the Limit number of items was scanned and LastEvaluatedKey is present in response |
|
|
|
|
|
Set Limit value so that scan processes more than 1 Mb of data before Limit value exceeds. Ensure it stops due to 1 Mb but not continue till Limit items processed |
|
|
|
|
|
Try empty, negative value, zero. |
|
|
|
|
|
ReturnConsumedCapacity |
|
|
|
|
|
Ensure response does not contain ConsumedCapacity (neither for table nor index(es)) if ReturnConsumedCapacity not present or equal to None in request |
|
|
|
|
|
Ensure response contains Capacity for table and indexes if TOTAL in request |
|
|
|
|
|
Ensure response contains Capacity for indexes only (not table) if INDEXES in request |
|
|
|
|
|
Try empty, invalid values. |
|
|
|
|
|
ScanFilter |
|
|
|
|
|
Ensure ScanFilter really filters? |
|
|
|
|
|
Ensure multiple conditions are treated as "AND" operations |
|
|
|
|
|
Try nonexistent attribute name (let’s assume it will be added with some item later) |
|
|
|
|
|
Try empty line instead of attribute name |
|
|
|
|
|
Assign empty line, None to ScanFilter |
|
|
|
|
|
(AttributeValueList) |
|
|
|
|
|
Use single value for appropriate comparison |
|
|
|
|
|
Use 2-element list for BETWEEN and IN |
|
|
|
|
|
Try to use 2+ element for IN |
? |
|
|
|
|
Try to use 2-element-list for operation like EQ |
|
|
|
|
|
Try empty list |
|
|
|
|
|
Try to skip this parameter at all |
|
|
|
|
|
Try data type different from attribute data type. For example, {"S":"6"} vs {"N":"6"}. |
does-not-match expected. |
|
|
|
|
About SETs: most of operators do not support SET types: Try to insert SET value for operator that does not support SET |
|
|
|
|
|
About SETs: most of operators do not support SET types: Ensure appropriate operators really support SETs. |
|
|
|
|
|
(ComparisonOperator) |
|
|
|
|
|
For every comparison operator, verify it correctly compares values of each type it supports (in most cases string, number, binary). Rewrite here tests enumerated above, for AttributeValueList. |
|
|
|
|
|
Verify each comparison operator is supported and compares correctly. |
|
|
|
|
|
Try invalid value for comp. operator (like EQINVALID) |
|
|
|
|
|
Select |
|
|
|
|
|
Ensure ALL_ATTRIBUTES return all attributes, especially if different items have different attributes. |
|
|
|
|
|
Ensure COUNT return just count, not items themselves. |
|
|
|
|
|
Ensure ALL_PROJECTED_ATTRIBUTES returns all attrs projected to the index. Should I request table or index? |
|
|
|
|
|
Set Select=SPECIFIC_ATTRIBUTES and enumerate attributes in AttributesToGet. Ensure it returns only the attributes listed in AttributesToGet (i.e. the same as without Select at all). |
|
|
|
|
|
Try to set Select=SPECIFIC_ATTRIBUTES if AttributesToGet was not set. |
|
|
|
|
|
How ALL_PROJECTED_ATTRIBUTES should work? |
|
|
|
|
|
Set Select to empty line or other invalid value. |
|
|
|
|
|
Use AttributesToGet together with Select equal to ALL_ATTRIBUTES or COUNT. What about ALL_PROJECTED_ATTRIBUTES? |
|
|
|
|
|
Segment |
|
|
|
|
|
parallel scan is out of scope for now. Should be ignored by MagnetoDB? |
|
|
|
|
|
TotalSegments |
|
|
|
|
|
parallel scan is out of scope for now. Should be ignored by MagnetoDB? |
|
|
|
|
|
Response |
|
|
|
|
|
ConsumedCapacity: is returned only if requested and corresponds to requested data
|
|
|
|
|
|
ConsumedCapacity: is empty if provisioned throughput is ignored now? |
|
|
|
|
|
Count: Ensure the value is correct |
|
|
|
|
|
Items: its length correspond to Count |
|
|
|
|
|
Items: should it be present if Select=COUNT? |
|
|
|
|
|
Items: ensure the items are correct |
|
|
|
|
|
LastEvaluatedKey: Ensure it’s present if limit was used and/or reached |
|
|
|
|
|
LastEvaluatedKey: Ensure this item is present in the current results and will not be present in the next results (if it passes filter, of course) |
|
|
|
|
|
ScannedCount: Ensure the value is correct. |
|
|
|
|
|
Exceptions |
|
|
|
|
|
Simulate ProvisionedThroughputExceededException |
|
|
|
|
|
ProvisionedThroughputExceededException: unable to reproduce w/o ProvisionedThroughput |
|
|
|
|
|
ResourceNotFoundException: request nonexistent table |
|
|
|
|
|
ResourceNotFoundException: request nonexistent index |
|
|
|
|
|
ResourceNotFoundException: request table in non Active state |
|
|
|
|
|
|
|
|
|
|
UpdateItem
UpdateTable
==
Indexing
|
|
|
|
|
|
|
CreateTable |
|
|
|
|
|
(LocalSecondaryIndexes) |
|
|
|
|
|
No LSIs specified for a table |
|
|
|
|
|
5 LSI specified for a table |
|
|
|
|
|
6 LSIs specified for a table |
error |
|
|
|
|
(IndexName) |
|
|
|
|
|
Some correct name specified |
|
|
|
|
|
Name is 3 symbols long |
|
|
|
|
|
Name is 255 symbols long |
|
|
|
|
|
Empty name |
error |
|
|
|
|
Option not specified |
error |
|
|
|
|
Name is 2 symbols long |
error |
|
|
|
|
Name is 256 symbols long |
error |
|
|
|
|
(KeySchema) |
|
|
|
|
|
Create 1 LSI for a table: - KeySchema (just 1 HASH key) - No projection |
error (REGION key not specified) |
|
|
|
|
Create 1 LSI for a table: - KeySchema (just 1 REGION key) - No projection |
error (HASH key not specified) |
|
|
|
|
Create 1 LSI for a table: - KeySchema (neither HASH nor REGION keys specified) - No projection |
error |
|
|
|
|
Non-existent (in the table declaration) attribute specified as a HASH key |
error |
|
|
|
|
Non-existant (in the table declaration) attribute specified as REGION key |
error |
|
|
|
|
The same attribute specified as both HASH and REGION keys |
error |
|
|
|
|
Option not specified |
error |
|
|
|
|
Create 1 LSI for a table: - KeySchema (1 HASH key, 1 REGION key) - No projection |
DescribeTable reports the same 1 LSI structure |
|
|
|
|
Create 1 LSI for a table: - KeySchema (1 HASH key, 1 REGION key) - Projection: 1 non-key attribute mentioned |
DescribeTable reports the same 1 LSI structure |
|
|
|
|
Create 1 LSI for a table: - KeySchema (1 HASH key, 1 REGION key) - Projection: several non-key attributes mentioned |
DescribeTable reports the same 1 LSI structure |
|
|
|
|
Create 1 LSI for a table: - KeySchema (1 HASH key, 1 REGION key) - Projection: one KEY (HASH) attribute mentioned |
error |
|
|
|
|
Create 1 LSI for a table: - KeySchema (1 HASH key, 1 REGION key) - Projection: several KEY (HASH, REGION) and non-key attributes mentioned |
DescribeTable reports the same 1 LSI structure |
|
|
|
|
Create 1 LSI for a table: - KeySchema (1 HASH key, 1 REGION key) - Projection: one KEY (REGION) attribute mentioned |
error |
|
|
|
|
Create 1 LSI for a table: - KeySchema (1 HASH key, 1 REGION key) - Projection: several non-key attributes mentioned |
DescribeTable reports the same 1 LSI structure |
|
|
|
|
Create 1 LSI for a table: - KeySchema (1 HASH key, 1 REGION key) - Projection: 20 non-key attributes mentioned |
DescribeTable reports the same 1 LSI structure
|
|
|
|
|
Create 1 LSI for a table: - KeySchema (1 HASH key, 1 REGION key) - Projection: 21 non-key attributes mentioned |
error |
|
|
|
|
Create 1 LSI for a table: - KeySchema (1 HASH key, 1 REGION key) - Projection: 1 NON-EXISTENT non-key attribute mentioned |
error (?) |
|
|
|
|
Create 1 LSI for a table: - KeySchema (1 HASH key, 1 REGION key) - Projection: several NON-EXISTENT non-key attributes mentioned |
error (?) |
|
|
|
|
(ProjectionType) |
|
|
|
|
|
Option not specified (omitted) |
|
|
|
|
|
= KEYS_ONLY |
|
|
|
|
|
= INCLUDE |
|
|
|
|
|
= ALL |
|
|
|
|
|
= <empty value> |
|
|
|
|
|
= "" |
|
|
|
|
|
= "Something else" |
|
|
|
|
|
Query |
|
|
|
|
|
No indexes specified (option "IndexName" omitted) |
Result data are not ordered |
|
|
|
|
Existing index (LSI) specified |
Result data are in the order described by the index |
|
|
|
|
More than one existing index (LSI) specified |
? |
|
|
|
|
Non-existent index (LSI) specified |
? |
|
|
|
|
Empty index name specified |
|
|
|
|
|
Specified index does not contain the attribute that is used in KeyConditions |
? |
|
|
|
|
|
|
|
|
|
Asynchronous Operations
Preconditions: while the just created table is in CREATING status…
|
|
|
|
|
|
|
Create table |
While the table is being created, its status is “CREATING” |
|
|
|
|
Precondition: while the just created table is in CREATING status… |
|
|
|
|
|
Try reading data from this table |
error |
|
|
|
|
Create table with the same name |
error |
|
|
|
|
Delete the table |
error |
|
|
|
|
Run DescribeTable for this table |
error |
|
|
|
|
Read/Update/Remove items from the table |
error |
|
|
|
|
|
|
|
|
|