protected override IEnumerable <Command> OnAlter(IMetadata sourceMetadata, IMetadata targetMetadata, IComparerContext context)
        {
            var otherGenerator = FindOtherChecked(targetMetadata.MetadataGenerators.GeneratorsByName, GeneratorName, "role");

            if (EquatableHelper.PropertiesEqual(this, otherGenerator, EquatableProperties, nameof(GeneratorIncrement)))
            {
                yield return(new Command()
                             .Append($"ALTER SEQUENCE {GeneratorName.AsSqlIndentifier()} INCREMENT BY {GeneratorIncrement}"));
            }
            else
            {
                throw new NotSupportedOnFirebirdException($"Altering sequence is not supported ({GeneratorName}).");
            }
        }
        protected override IEnumerable <Command> OnCreate(IMetadata sourceMetadata, IMetadata targetMetadata, IComparerContext context)
        {
            var command = new Command();

            command.Append($"CREATE SEQUENCE {GeneratorName.AsSqlIndentifier()}");
            if (context.Settings.TargetVersion.AtLeast30())
            {
                if (InitialValue != 0)
                {
                    command.Append($" START WITH {InitialValue}");
                }
            }
            yield return(command);
        }
 protected override IEnumerable <Command> OnDrop(IMetadata sourceMetadata, IMetadata targetMetadata, IComparerContext context)
 {
     yield return(new Command()
                  .Append($"DROP SEQUENCE {GeneratorName.AsSqlIndentifier()}"));
 }