summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2010-06-07 07:18:21 -0700
committerShawn O. Pearce <sop@google.com>2010-06-07 07:18:21 -0700
commitfb190fe5de8151f0633016167f09fc805bc62286 (patch)
tree156c9969b8812407aa55e698bef84093ece6d8b8
parentb43316bac33b5ef1301c32bd83d7c942c0e6ad74 (diff)
downloadgwtorm-fb190fe5de8151f0633016167f09fc805bc62286.tar.gz
Honor a sequence's startValue in NoSQL
Use the startValue from the schema when starting a new counter pool. This way Gerrit Code Review's account_id field will be starting from a different value range than its account_group_id. Signed-off-by: Shawn O. Pearce <sop@google.com>
-rw-r--r--src/main/java/com/google/gwtorm/nosql/NoSqlDatabase.java2
-rw-r--r--src/main/java/com/google/gwtorm/nosql/generic/GenericSchema.java10
2 files changed, 10 insertions, 2 deletions
diff --git a/src/main/java/com/google/gwtorm/nosql/NoSqlDatabase.java b/src/main/java/com/google/gwtorm/nosql/NoSqlDatabase.java
index c426806..86f88a5 100644
--- a/src/main/java/com/google/gwtorm/nosql/NoSqlDatabase.java
+++ b/src/main/java/com/google/gwtorm/nosql/NoSqlDatabase.java
@@ -84,7 +84,7 @@ public abstract class NoSqlDatabase<T extends Schema, S extends NoSqlSchema, A e
}
/** @return the derived model of the application's schema. */
- protected SchemaModel getSchemaModel() {
+ public SchemaModel getSchemaModel() {
return schemaModel;
}
diff --git a/src/main/java/com/google/gwtorm/nosql/generic/GenericSchema.java b/src/main/java/com/google/gwtorm/nosql/generic/GenericSchema.java
index 9792235..79e65bd 100644
--- a/src/main/java/com/google/gwtorm/nosql/generic/GenericSchema.java
+++ b/src/main/java/com/google/gwtorm/nosql/generic/GenericSchema.java
@@ -51,7 +51,15 @@ public abstract class GenericSchema extends NoSqlSchema {
if (val != null) {
ctr = CounterShard.CODEC.decode(val);
} else {
- ctr = new CounterShard(1, Long.MAX_VALUE);
+ long start = 1;
+ for (SequenceModel s : getDatabase().getSchemaModel()
+ .getSequences()) {
+ if (poolName.equals(s.getSequenceName())) {
+ start = s.getSequence().startWith();
+ break;
+ }
+ }
+ ctr = new CounterShard(start, Long.MAX_VALUE);
}
if (ctr.isEmpty()) {