From: Nando D. <na...@us...> - 2005-07-04 11:36:21
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21106/Core Modified Files: InstantDBEvolution.pas Log Message: refactored to support TInstantDBBuilder Index: InstantDBEvolution.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantDBEvolution.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** InstantDBEvolution.pas 28 Jun 2005 10:12:27 -0000 1.2 --- InstantDBEvolution.pas 4 Jul 2005 11:36:11 -0000 1.3 *************** *** 47,56 **** // evolve the database. procedure InternalBuildCommandSequence; override; - published - property AfterCommandSequenceExecute; - property AfterCommandExecute; - property BeforeCommandSequenceExecute; - property BeforeCommandExecute; - property OnCommandExecuteError; end; --- 47,50 ---- *************** *** 97,183 **** SourceFieldMetadata, TargetFieldMetadata: TInstantFieldMetadata; SourceIndexMetadata, TargetIndexMetadata: TInstantIndexMetadata; - - procedure AppendAddFieldCommand(const FieldMetadata: TInstantFieldMetadata); - var - Command: TInstantDBBuildCommand; - begin - Command := Connector.Broker.CreateDBBuildCommand(ctAddField); - Command.NewMetadata := FieldMetadata; - CommandSequence.Append(Command); - end; - - procedure AppendAlterFieldCommand(const SourceFieldMetadata, - TargetFieldMetadata: TInstantFieldMetadata); - var - Command: TInstantDBBuildCommand; - begin - Command := Connector.Broker.CreateDBBuildCommand(ctAlterField); - Command.OldMetadata := SourceFieldMetadata; - Command.NewMetadata := TargetFieldMetadata; - CommandSequence.Append(Command); - end; - - procedure AppendDropFieldCommand(const FieldMetadata: TInstantFieldMetadata); - var - Command: TInstantDBBuildCommand; - begin - Command := Connector.Broker.CreateDBBuildCommand(ctDropField); - Command.OldMetadata := FieldMetadata; - CommandSequence.Append(Command); - end; - - procedure AppendAddIndexCommand(const IndexMetadata: TInstantIndexMetadata); - var - Command: TInstantDBBuildCommand; - begin - Command := Connector.Broker.CreateDBBuildCommand(ctAddIndex); - Command.NewMetadata := IndexMetadata; - CommandSequence.Append(Command); - end; - - procedure AppendAlterIndexCommand(const SourceIndexMetadata, - TargetIndexMetadata: TInstantIndexMetadata); - var - Command: TInstantDBBuildCommand; - begin - Command := Connector.Broker.CreateDBBuildCommand(ctDropIndex); - Command.OldMetadata := SourceIndexMetadata; - // Enabled normally defaults to False for drop operations, but in this - // particular case it is more convenient to have it set to True, since the - // index is not really being dropped - it is being altered by recreating it. - Command.Enabled := True; - CommandSequence.Append(Command); - Command := Connector.Broker.CreateDBBuildCommand(ctAddIndex); - Command.NewMetadata := TargetIndexMetadata; - CommandSequence.Append(Command); - end; - - procedure AppendDropIndexCommand(const IndexMetadata: TInstantIndexMetadata); - var - Command: TInstantDBBuildCommand; - begin - Command := Connector.Broker.CreateDBBuildCommand(ctDropIndex); - Command.OldMetadata := IndexMetadata; - CommandSequence.Append(Command); - end; - - procedure AppendAddTableCommand(const TableMetadata: TInstantTableMetadata); - var - Command: TInstantDBBuildCommand; - begin - Command := Connector.Broker.CreateDBBuildCommand(ctAddTable); - Command.NewMetadata := TableMetadata; - CommandSequence.Append(Command); - end; - - procedure AppendDropTableCommand(const TableMetadata: TInstantTableMetadata); - var - Command: TInstantDBBuildCommand; - begin - Command := Connector.Broker.CreateDBBuildCommand(ctDropTable); - Command.OldMetadata := TableMetadata; - CommandSequence.Append(Command); - end; - begin // Upgrade tables. --- 91,94 ---- *************** *** 200,207 **** if (TargetFieldMetadata.DataType <> SourceFieldMetadata.DataType) or (TargetFieldMetadata.Size > SourceFieldMetadata.Size) then ! AppendAlterFieldCommand(SourceFieldMetadata, TargetFieldMetadata); end else ! AppendAddFieldCommand(TargetFieldMetadata); end; // Add missing indexes and recreate modified indexes --- 111,119 ---- if (TargetFieldMetadata.DataType <> SourceFieldMetadata.DataType) or (TargetFieldMetadata.Size > SourceFieldMetadata.Size) then ! AppendAlterFieldCommand(CommandSequence, SourceFieldMetadata, ! TargetFieldMetadata); end else ! AppendAddFieldCommand(CommandSequence, TargetFieldMetadata); end; // Add missing indexes and recreate modified indexes *************** *** 216,223 **** begin if not SourceIndexMetadata.Equals(TargetIndexMetadata) then ! AppendAlterIndexCommand(SourceIndexMetadata, TargetIndexMetadata); end else ! AppendAddIndexCommand(TargetIndexMetadata); end; end; --- 128,136 ---- begin if not SourceIndexMetadata.Equals(TargetIndexMetadata) then ! AppendAlterIndexCommand(CommandSequence, SourceIndexMetadata, ! TargetIndexMetadata); end else ! AppendAddIndexCommand(CommandSequence, TargetIndexMetadata); end; end; *************** *** 231,235 **** TargetIndexMetadata := TargetTableMetadata.FindIndexMetadata(AnsiUpperCase(SourceIndexMetadata.Name)); if not Assigned(TargetIndexMetadata) then ! AppendDropIndexCommand(SourceIndexMetadata); end; end; --- 144,148 ---- TargetIndexMetadata := TargetTableMetadata.FindIndexMetadata(AnsiUpperCase(SourceIndexMetadata.Name)); if not Assigned(TargetIndexMetadata) then ! AppendDropIndexCommand(CommandSequence, SourceIndexMetadata); end; end; *************** *** 241,249 **** TargetFieldMetadata := TargetTableMetadata.FindFieldMetadata(AnsiUpperCase(SourceFieldMetadata.Name)); if not Assigned(TargetFieldMetadata) then ! AppendDropFieldCommand(SourceFieldMetadata); end; end else ! AppendAddTableCommand(TargetTableMetadata); end; // Drop deleted tables. --- 154,162 ---- TargetFieldMetadata := TargetTableMetadata.FindFieldMetadata(AnsiUpperCase(SourceFieldMetadata.Name)); if not Assigned(TargetFieldMetadata) then ! AppendDropFieldCommand(CommandSequence, SourceFieldMetadata); end; end else ! AppendAddTableCommand(CommandSequence, TargetTableMetadata); end; // Drop deleted tables. *************** *** 254,258 **** CommandSequence.TargetScheme.FindTableMetadata(SourceTableMetadata.Name); if not Assigned(TargetTableMetadata) then ! AppendDropTableCommand(SourceTableMetadata); end; end; --- 167,171 ---- CommandSequence.TargetScheme.FindTableMetadata(SourceTableMetadata.Name); if not Assigned(TargetTableMetadata) then ! AppendDropTableCommand(CommandSequence, SourceTableMetadata); end; end; |