Esempio n. 1
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (FrameId != 0L)
            {
                hash ^= FrameId.GetHashCode();
            }
            if (PayloadType != 0)
            {
                hash ^= PayloadType.GetHashCode();
            }
            if (EngineName.Length != 0)
            {
                hash ^= EngineName.GetHashCode();
            }
            if (Payload.Length != 0)
            {
                hash ^= Payload.GetHashCode();
            }
            if (engineFields_ != null)
            {
                hash ^= EngineFields.GetHashCode();
            }
            return(hash);
        }
Esempio n. 2
0
    protected override IEnumerable <Command> OnCreate(IMetadata sourceMetadata, IMetadata targetMetadata, IComparerContext context)
    {
        var command = SqlHelper.IsValidExternalEngine(this) ? new Command() : new PSqlCommand();

        command
        .Append($"CREATE OR ALTER TRIGGER {TriggerName.AsSqlIndentifier()}")
        .AppendLine()
        .Append($"{(Inactive ? "INACTIVE" : "ACTIVE")} ");
        switch (TriggerClass)
        {
        case TriggerClassType.DML:
        case TriggerClassType.DDL:
            command.Append($"{TriggerBeforeAfter.ToDescription()} {TriggerEvents[0].ToDescription()} ");
            foreach (var item in TriggerEvents.Skip(1))
            {
                command.Append($"OR {item.ToDescription()} ");
            }
            break;

        case TriggerClassType.DB:
            command.Append($"ON {TriggerEvents[0].ToDescription()} ");
            break;
        }
        command
        .Append($"POSITION {TriggerSequence}")
        .AppendLine();
        if (TriggerClass == TriggerClassType.DML)
        {
            command
            .Append($"ON {RelationName.AsSqlIndentifier()}")
            .AppendLine();
        }
        if (SqlHelper.IsValidExternalEngine(this))
        {
            command.Append($"EXTERNAL NAME '{SqlHelper.DoubleSingleQuotes(EntryPoint)}'");
            command.AppendLine();
            command.Append($"ENGINE {EngineName.AsSqlIndentifier()}");
        }
        else
        {
            if (SqlSecurity != null)
            {
                command.Append($"SQL SECURITY {SqlHelper.SqlSecurityString(SqlSecurity)}");
                command.AppendLine();
            }
            command.Append(TriggerSource);
        }
        yield return(command);
    }
Esempio n. 3
0
                public override int GetHashCode()
                {
                    int hash = 1;

                    if (PayloadType != 0)
                    {
                        hash ^= PayloadType.GetHashCode();
                    }
                    if (EngineName.Length != 0)
                    {
                        hash ^= EngineName.GetHashCode();
                    }
                    if (Payload.Length != 0)
                    {
                        hash ^= Payload.GetHashCode();
                    }
                    return(hash);
                }
Esempio n. 4
0
        protected override IEnumerable <Command> OnCreate(IMetadata sourceMetadata, IMetadata targetMetadata, IComparerContext context)
        {
            if (ProcedureType == ProcedureProcedureType.Legacy)
            {
                throw new NotSupportedException("Legacy type stored procedures are not supported.");
            }

            var command = SqlHelper.IsValidExternalEngine(this) ? new Command() : new PSqlCommand();

            command.Append($"CREATE OR ALTER PROCEDURE {ProcedureName.AsSqlIndentifier()}");
            if (ProcedureInputs > 0)
            {
                var inputs = ProcedureParameters
                             .Where(o => o.ParameterType == ProcedureParameterType.In)
                             .OrderBy(o => o.ParameterNumber);
                command.Append(" (");
                command.AppendLine();
                command.Append(CreateParametersDefinitions(inputs, sourceMetadata, targetMetadata, context));
                command.Append(")");
            }
            command.AppendLine();
            if (ProcedureOutputs > 0)
            {
                var outputs = ProcedureParameters
                              .Where(o => o.ParameterType == ProcedureParameterType.Out)
                              .OrderBy(o => o.ParameterNumber);
                command.Append("RETURNS (");
                command.AppendLine();
                command.Append(CreateParametersDefinitions(outputs, sourceMetadata, targetMetadata, context));
                command.Append(")");
                command.AppendLine();
            }
            if (SqlHelper.IsValidExternalEngine(this))
            {
                if (context.EmptyBodiesEnabled)
                {
                    yield break;
                }
                command.Append($"EXTERNAL NAME '{SqlHelper.DoubleSingleQuotes(EntryPoint)}'");
                command.AppendLine();
                command.Append($"ENGINE {EngineName.AsSqlIndentifier()}");
            }
            else
            {
                command.Append("AS");
                command.AppendLine();
                if (context.EmptyBodiesEnabled)
                {
                    command.Append("BEGIN");
                    command.AppendLine();
                    if (ProcedureType == ProcedureProcedureType.Selectable)
                    {
                        command.Append($"  SUSPEND{SqlHelper.Terminator}");
                        command.AppendLine();
                    }
                    command.Append("END");
                }
                else
                {
                    command.Append(ProcedureSource);
                }
            }
            yield return(command);
        }
Esempio n. 5
0
 protected override IEnumerable <Command> OnCreate(IMetadata sourceMetadata, IMetadata targetMetadata, IComparerContext context)
 {
     if (IsLegacy)
     {
         var command = new Command();
         command.Append($"DECLARE EXTERNAL FUNCTION {FunctionName.AsSqlIndentifier()}");
         var inputs =
             FunctionArguments
             .Where(x => x.ArgumentPosition != ReturnArgument)
             .OrderBy(x => x.ArgumentPosition)
             .Select(CreateLegacyArgumentDefinition);
         command.Append($" {string.Join(", ", inputs)}");
         command.AppendLine();
         var @return = FunctionArguments.First(x => x.ArgumentPosition == ReturnArgument);
         command.Append($"RETURNS{(ReturnArgument != 0 ? " PARAMETER" : string.Empty)} {CreateLegacyArgumentDefinition(@return)}");
         command.AppendLine();
         command.Append($"ENTRY_POINT '{SqlHelper.DoubleSingleQuotes(EntryPoint)}' MODULE_NAME '{SqlHelper.DoubleSingleQuotes(ModuleName)}'");
         yield return(command);
     }
     else
     {
         var command = SqlHelper.IsValidExternalEngine(this) ? new Command() : new PSqlCommand();
         command.Append("CREATE OR ALTER FUNCTION");
         if (PackageName != null)
         {
             command.Append($" {PackageName.AsSqlIndentifier()}.{FunctionName.AsSqlIndentifier()}");
         }
         else
         {
             command.Append($" {FunctionName.AsSqlIndentifier()}");
         }
         var inputs =
             FunctionArguments
             .Where(x => x.ArgumentPosition != ReturnArgument)
             .OrderBy(x => x.ArgumentPosition)
             .Select(x => CreateNewArgumentDefinition(x, sourceMetadata, targetMetadata, context));
         var @return = FunctionArguments.First(x => x.ArgumentPosition == ReturnArgument);
         var output  = CreateNewArgumentDefinition(@return, sourceMetadata, targetMetadata, context);
         command.Append($" ({string.Join(", ", inputs)}) RETURNS {output}");
         if (DeterministicFlag == DeterministicFlagType.Deterministic)
         {
             command.Append(" DETERMINISTIC");
         }
         command.AppendLine();
         if (SqlHelper.IsValidExternalEngine(this))
         {
             command.Append($"EXTERNAL NAME '{SqlHelper.DoubleSingleQuotes(EntryPoint)}'");
             command.AppendLine();
             command.Append($"ENGINE {EngineName.AsSqlIndentifier()}");
         }
         else
         {
             if (SqlSecurity != null)
             {
                 command.Append($"SQL SECURITY {SqlHelper.SqlSecurityString(SqlSecurity)}");
                 command.AppendLine();
             }
             command.Append("AS");
             command.AppendLine();
             if (context.EmptyBodiesEnabled)
             {
                 command.Append("BEGIN");
                 command.AppendLine();
                 command.Append("END");
             }
             else
             {
                 command.Append(FunctionSource);
             }
         }
         yield return(command);
     }
 }
Esempio n. 6
0
 public override int GetHashCode()
 {
     return(EngineName.GetHashCode());
 }
 private void Cleaning()
 {
     EngineName.Clear();
     EngineSerialCode.Clear();
 }