* Added command line history to the command, query and filter prompts.
* Added query planning debugging to the log.
* Fixed bug in query expression which was not treating true and false as boolean literals.
* Fixed a bug in the query planning logic which was incorrectly determine that an expression of the form sort_key ^= "string", with no partition key, could be executed as a query instead of a scan.
* paging: added controller for paging through results
* paging: added command and key binding for going to the next page
* paging: added the ability to specify the table in the query script method
* paging: have got exclusive start key written to backstack
* scripting: added service and controller for scripting
* scripting: have got prompts working
Scripts are now running in a separate go-routine. When a prompt is encountered, the
script is paused and the user is prompted for input. This means that the script no
longer needs to worry about synchronisation issues.
* scripting: started working on the session methods
* scripting: added methods to get items and attributes
* scripting: have got loading of scripts working
These act more like plugins and allow defining new commands.
* scripting: have got script scheduling working
Scripts are now executed on a dedicated goroutine and only one script can run at any one time.
* scripting: added session.set_result_set(rs)
* scripting: upgraded tamarin to 0.14
* scripting: started working on set_value
* tamarin: replaced ad-hoc path with query expressions
* scripting: changed value() and set_value() to attr() and set_attr()
Also added 'delete_attr()'
* scripting: added os.exec()
This method is controlled by permissions which govern whether shellouts are allowed
Also fixed a resizing bug with the status window which was not properly handling status messages with newlines
* scripting: added the session.current_item() method
* scripting: added placeholders to query expressions
* scripting: added support for setting and deleteing items with placeholders
Also refactored the dot AST type so that it support placeholders. Placeholders are not yet supported
for subrefs yet, they need to be identifiers.
* scripting: made setting the result-set push the current result-set to the backstack
* scripting: started working on byte encoding of attribute values
* scripting: finished attrcodec
* scripting: integrated codec into expression
* scripting: added equals and hashcode to queryexpr
This finally finishes the work required to store queries in the backstack
* scripting: fixed some bugs with the back-stack
* scripting: upgraded Tamarin
* scripting: removed some commented out code
- Most aspects of scans and queries can now be represented using the expression language
- All constructs of the expression language can be used to evaluate items
- Enabled CGO for release builds so that copy to clipboard does not panic.
- Added a prompt to confirm quitting when pressing Esc or Ctrl+C
- Fixed the table prompt to not quit app on Esc when invoked with the table command.
- Fixed a seg fault bug when cancelling a scan or query when no results are available yet
- Reduce the size of each page to return so that progress indicators work
- Fixed the gaps in conjunctions, disjunctions, and equality operator for expression value evaluation.
- Fixed the issue in which '^=' was treated as two separate tokens, it's now a single token.
- Wrapped all table operations in a new foreground job context, which mediates foreground tasks.
- Added cancellation support and partial results for table read operations.
- Added the "mark" command, which can mark, unmark & toggle marked items
- Added support for alias arguments.
- Removed the "unmark" command, and replaced it as an alias to the "marked" command
- Fixed seg faults raised when there is no table shown in the result set.
Added a new popup to modify the columns of the table. With this new popup, the user can:
- Show and hide columns
- Move columns around
- Add new columns which are derived from the value of an expression
- Delete columns
Also got the overlay mechanisms working.
- Fixed a bug which was not properly detecting whether MacOS was in light mode.
- Fixed a bug which was breaking filtering with the table-selection mode.
- Upgraded bubble-tea.
- Added settings to workspace, and added the read-only mode
- Added the `-ro` field which will launch Dynamo-Browse in read-only mode
- Added the `set ro` to enable read-only mode, and `set rw` to enable read-write mode
Augmented expressions so that queries that can be executed as queries on DynamoDB can be done so.
Also added an IR tree which is a simplified representation of the AST and will be used to plan the query.
Have now got rebinding keys working with the "rebind" command.
Still need to make sure key names are correct and implement rebinding
as part of an RC file and add bindings for the table.