Merge lp:~mmcm/akiban-client-tools/generated-always into lp:~akiban-technologies/akiban-client-tools/trunk

Proposed by Mike McMahon
Status: Merged
Approved by: Nathan Williams
Approved revision: 23
Merged at revision: 23
Proposed branch: lp:~mmcm/akiban-client-tools/generated-always
Merge into: lp:~akiban-technologies/akiban-client-tools/trunk
Diff against target: 49 lines (+22/-3)
1 file modified
src/main/java/com/akiban/client/dump/DumpClient.java (+22/-3)
To merge this branch: bzr merge lp:~mmcm/akiban-client-tools/generated-always
Reviewer Review Type Date Requested Status
Nathan Williams Approve
Review via email: mp+158462@code.launchpad.net

Description of the change

Change how GENERATED ALWAYS gets dumped with data.

GENERATED BY DEFAULT is reasonable: it just puts the current sequence state (presumably after all the data) into the initial definition.

GENERATED ALWAYS needs to arrange for the actual values to get loaded and only then so something similar, via ALTER TABLE ALTER COLUMN.

A test can be added once the server stops ignoring the auto-increment clause in the alter.

To post a comment you must log in.
Revision history for this message
Nathan Williams (nwilliams) wrote :

Looks good.

Will add a story for test.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/main/java/com/akiban/client/dump/DumpClient.java'
--- src/main/java/com/akiban/client/dump/DumpClient.java 2013-02-19 01:29:11 +0000
+++ src/main/java/com/akiban/client/dump/DumpClient.java 2013-04-11 19:46:30 +0000
@@ -37,6 +37,7 @@
37 private Map<String,Map<String,Table>> schemas = new TreeMap<String,Map<String,Table>>();37 private Map<String,Map<String,Table>> schemas = new TreeMap<String,Map<String,Table>>();
38 private Map<String, Map<String,Sequence>> sequences = new TreeMap<String,Map<String, Sequence>>();38 private Map<String, Map<String,Sequence>> sequences = new TreeMap<String,Map<String, Sequence>>();
39 private Map<String,Map<String,View>> views = new TreeMap<String,Map<String, View>>();39 private Map<String,Map<String,View>> views = new TreeMap<String,Map<String, View>>();
40 private Queue<String> afterDataStatements = new ArrayDeque<String>();
40 private int insertMaxRowCount = DEFAULT_INSERT_MAX_ROW_COUNT;41 private int insertMaxRowCount = DEFAULT_INSERT_MAX_ROW_COUNT;
41 private String defaultSchema = null;42 private String defaultSchema = null;
42 private Writer output;43 private Writer output;
@@ -464,6 +465,13 @@
464 }465 }
465 if (dumpData) {466 if (dumpData) {
466 dumpData(table);467 dumpData(table);
468 if (!afterDataStatements.isEmpty()) {
469 String stmt;
470 while ((stmt = afterDataStatements.poll()) != null) {
471 output.write(stmt);
472 }
473 output.write(NL);
474 }
467 }475 }
468 }476 }
469477
@@ -557,9 +565,20 @@
557 String sequenceSchema = rs.getString(9);565 String sequenceSchema = rs.getString(9);
558 String sequenceName = rs.getString(10);566 String sequenceName = rs.getString(10);
559 Sequence seq = sequences.get(sequenceSchema).get(sequenceName);567 Sequence seq = sequences.get(sequenceSchema).get(sequenceName);
560 sql.append(" GENERATED ").append(identityGenerate);568 String generated = " GENERATED " + identityGenerate +
561 sql.append(" AS IDENTITY (START WITH ").append(seq.startWith);569 " AS IDENTITY (START WITH " + seq.startWith +
562 sql.append(", INCREMENT BY ").append(seq.incrementBy).append (")");570 ", INCREMENT BY " + seq.incrementBy + ")";
571 if (dumpData && "ALWAYS".equals(identityGenerate)) {
572 StringBuilder sql2 = new StringBuilder("ALTER TABLE ");
573 qualifiedName(table, sql2);
574 sql2.append(" ALTER COLUMN ");
575 identifier(column, sql2, false);
576 sql2.append(" SET").append(generated).append(";").append(NL);
577 afterDataStatements.add(sql2.toString());
578 }
579 else {
580 sql.append(generated);
581 }
563 }582 }
564 583
565 if (pkey != null) {584 if (pkey != null) {

Subscribers

People subscribed via source and target branches