Permalink
Fetching contributors…
Cannot retrieve contributors at this time
118 lines (88 sloc) 3.83 KB
SHORT TERM
==========
- Allow non-static inner classes ?
- Auto-generate "_parent" reference field with DeleteAction.DELETE
- Add method <T> T JTransaction.create(JObject parent, Class<T> childType);
- Allow @JCompositeIndex uniqueExclude to specify "wildcards"
- Option to override collection setters (if they exist) with clear() + addAll()/putAll() implementation ?
- Parser enhancements
- "this" -> current session ?
- compound statements
- SQLView.adjustCounter() ?
- ByteBuffer cleanup for ArrayKVStore ?
https://github.com/dain/leveldb/blob/master/leveldb/src/main/java/org/iq80/leveldb/util/ByteBufferSupport.java
- Support @OnVersionChange without version number parameters
- Only do extra DB sanity checks during the first transaction
- Connection pooling in SQL k/v implementations
- CLI:
- New CLI flags:
- `--console-port': accept console telnet connections on port
- `--background': disable console on stdin/stdout, daemonize
- Requires native code
- LevelDB & RocksDB: ensure removeRange() doesn't sync() on each k/v pair
- New RocksDB transaction support
- New KVDatabase implementations
- Amazon DynamoDB ?
- Sophia
- http://sophia.systems/
- key/value layer transaction improvements
- Add Spring transaction manager
- Add setRollbackOnly()
- Invoke from EvalCommand.getAction()
- Invoke from Transaction.setRollbackOnly()
- JSimpleDBTransactionManager
- Add support for a new @TransactionOptions annotation for passing options
- Vaadin GUI editor generator
- Implement editors for collection fields
- Add range support - if query result is Navigable{Set,Map}
- Min field
- Max field
- "Chunk Size" pulldown
- "Next Chunk" button
- Add arbitrary query support
- Try to build JObjectContainer+table first
- If that fails, build ObjectContainer+table instead
- Make more modular/pluggable
- Auto-garbage collect old schemas ?
- Keep track of highest and lowest version index entries for each schema version
- After object delete/upgrade, update if deleted object has highest/lowest entry
- On last object delete/upgrade for a schema version, GC that version
- Can start doing this "on demand" only after the first object is deleted
- Ability to programmatically add FieldChangeListeners at the JTransaction level
- Listener via @Functional interface
- Pass through to Transaction
LONG TERM
=========
- Non-annotation configuration
- Supports use with legacy code that can't easily be modified
- https://github.com/archiecobbs/jsimpledb/issues/16
- Add a network accessible API for KVDatabase
- New "over the network" KVDatabase client
- Includes server-side classes as well for embeddability
- Reference path extensions:
- Add expression predicates
E.g.: "friend[this.name.length() > 3].name"
- More JLS-correct expression parsing, method resolution, etc.
- Carry "compile time" type information along with each Node?
- Fix varargs methods when last param passed with a cast
- Support (still optional) generics
- CLI
- New console "expr" input mode
- Command "expr -i" enters this mode
- Identifer "exit" exits this mode
- All input is evaluated; if result != Value.NO_VALUE, assigned to $N (like gdb)
- Unless expression is of the form "$foo = ..."
- Optional flag "-n" disables assignment to $N
- Different prompt "Expr>"
- More built-in field types:
- SimpleDateFormat
- {Gregorian}Calendar?
- {Simple}TimeZone?
- java.util.Currency
- java.util.Locale
- Add support for XA transactions
- But only if KVStore supports them
- Reimplement LockManager
- Using KeyRanges?
- Using Guava ranges?
- https://code.google.com/p/guava-libraries/wiki/RangesExplained