| 1 package com.quadcap.sql; 2 3 40 41 import java.io.BufferedInputStream ; 42 import java.io.BufferedOutputStream ; 43 import java.io.Externalizable ; 44 import java.io.IOException ; 45 import java.io.ObjectInput ; 46 import java.io.ObjectOutput ; 47 48 import java.sql.SQLException ; 49 50 import com.quadcap.sql.file.BlockFile; 51 import com.quadcap.sql.file.PageManager; 52 import com.quadcap.sql.file.RandomAccess; 53 import com.quadcap.sql.file.RandomAccessInputStream; 54 import com.quadcap.sql.file.RandomAccessOutputStream; 55 56 import com.quadcap.sql.io.ObjectInputStream; 57 import com.quadcap.sql.io.ObjectOutputStream; 58 import com.quadcap.sql.io.Extern; 59 60 import com.quadcap.sql.types.Value; 61 import com.quadcap.sql.types.ValueNull; 62 63 import com.quadcap.io.CountedInputStream; 64 65 import com.quadcap.util.Debug; 66 67 72 public class AutoNumberStep extends LogStep implements Externalizable { 73 String tableName = null; 74 long num = 0; 75 76 79 public AutoNumberStep() {} 80 81 84 public AutoNumberStep(Session session, Table table, long num) { 85 super(session); 86 this.tableName = table.getName(); 87 this.num = num; 88 } 89 90 93 public void undo(Session session) throws IOException , SQLException {} 94 95 100 public void redo(Session session) throws IOException , SQLException { 101 Database db = session.getDatabase(); 102 db.updateTableIdentity(tableName, num); 103 } 104 105 106 public void prepare(Session session) throws IOException , SQLException { 107 } 108 109 public void readExternal(ObjectInput in) 110 throws IOException , ClassNotFoundException  111 { 112 super.readExternal(in); 113 this.tableName = (String )in.readObject(); 114 this.num = in.readLong(); 115 } 116 117 public void writeExternal(ObjectOutput out) throws IOException { 118 super.writeExternal(out); 119 out.writeObject(tableName); 120 out.writeLong(num); 121 } 122 123 public String toString() { 125 StringBuffer sb = new StringBuffer (super.toString()); 126 sb.append(" AutoNumberStep("); 127 sb.append(tableName); 128 sb.append(','); 129 sb.append(num); 130 return sb.toString(); 131 } 132 134 137 public void setCurrentId(long x) { this.num = x; } 138 139 static Extern extern; 140 public void setExtern(Extern extern) { AutoNumberStep.extern = extern; } 141 public Extern getExtern() { return extern; } 142 } 143 | Popular Tags |