Пример #1
0
        private string CreateProcedureCommandScriptText(Func <Tuple <NpgsqlCommand, string> > buildCommand,
                                                        string procName)
        {
            var alreadyOpened = _connection.State == ConnectionState.Open;

            try
            {
                if (!alreadyOpened)
                {
                    _connection.Open();
                }

                var str1 = $"Command {procName} for table {_tableName.QuotedString}";
                var cmd  = buildCommand();
                var str  = CreateProcedureCommandText(cmd.Item1, cmd.Item2, procName);
                return(PostgreSqlBuilder.WrapScriptTextWithComments(str, str1));
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"Error during CreateProcedureCommand : {ex}");
                throw;
            }
            finally
            {
                if (!alreadyOpened && _connection.State != ConnectionState.Closed)
                {
                    _connection.Close();
                }
            }
        }
Пример #2
0
        public PostgreSqlObjectNames(DmTable tableDescription)
        {
            TableDescription = tableDescription;
            (_tableName, _)  = PostgreSqlBuilder.GetParsers(TableDescription);

            SetDefaultNames();
        }
        public string CreatePopulateFromBaseTableScriptText()
        {
            var str = string.Concat("Populate tracking table ", _trackingName.QuotedString,
                                    " for existing data in table ", _tableName.QuotedString);

            return(PostgreSqlBuilder.WrapScriptTextWithComments(CreatePopulateFromBaseTableCommandText(), str));
        }
        public string DropTableScriptText()
        {
            var commandText = $"drop table if exists {_tableName.QuotedString}";

            var str1 = $"Drop table {_tableName.QuotedString}";

            return(PostgreSqlBuilder.WrapScriptTextWithComments(commandText, str1));
        }
 public PostgreSqlBuilderTable(DmTable tableDescription, DbConnection connection,
                               DbTransaction transaction = null)
 {
     _connection       = connection as NpgsqlConnection;
     _transaction      = transaction as NpgsqlTransaction;
     _tableDescription = tableDescription;
     (_tableName, _)   = PostgreSqlBuilder.GetParsers(_tableDescription);
     _mySqlDbMetadata  = new PostgreSqlDbMetadata();
 }
        public string ScriptAddFilterColumn(DmColumn filterColumn)
        {
            var quotedColumnName = new ObjectNameParser(filterColumn.ColumnName, "\"", "\"");

            var str = string.Concat("Add new filter column, ", quotedColumnName.UnquotedString, ", to Tracking Table ",
                                    _trackingName.QuotedString);

            return(PostgreSqlBuilder.WrapScriptTextWithComments(AddFilterColumnCommandText(filterColumn), str));
        }
Пример #7
0
        private string DropTriggerText(DbCommandType triggerType)
        {
            var commandName = _postgreSqlObjectNames.GetCommandName(triggerType);
            var commandText = $"drop trigger if exists {commandName}";

            var str1 = $"Drop trigger {commandName} for table {_tableName.QuotedString}";

            return(PostgreSqlBuilder.WrapScriptTextWithComments(commandText, str1));
        }
Пример #8
0
        private string DropProcedureText(DbCommandType procType)
        {
            var commandName = _sqlObjectNames.GetCommandName(procType);
            var commandText = $"drop procedure if exists {commandName}";

            var str1 = $"Drop procedure {commandName} for table {_tableName.QuotedString}";

            return(PostgreSqlBuilder.WrapScriptTextWithComments(commandText, str1));
        }
        public string CreateTableScriptText()
        {
            var stringBuilder   = new StringBuilder();
            var tableNameScript = $"Create Table {_tableName.QuotedString}";
            var tableScript     = BuildTableCommand().CommandText;

            stringBuilder.Append(PostgreSqlBuilder.WrapScriptTextWithComments(tableScript, tableNameScript));
            stringBuilder.AppendLine();
            return(stringBuilder.ToString());
        }
Пример #10
0
 public PostgreSqlBuilderTrigger(DmTable tableDescription, DbConnection connection,
                                 DbTransaction transaction = null)
 {
     _connection                 = connection as NpgsqlConnection;
     _transaction                = transaction as NpgsqlTransaction;
     _tableDescription           = tableDescription;
     (_tableName, _trackingName) = PostgreSqlBuilder.GetParsers(_tableDescription);
     _postgreSqlObjectNames      = new PostgreSqlObjectNames(_tableDescription);
     _schemaName                 = new NpgsqlConnectionStringBuilder(connection.ConnectionString).SearchPath ?? "public";
 }
Пример #11
0
        public string CreateForeignKeyConstraintsScriptText(DmRelation constraint)
        {
            var stringBuilder = new StringBuilder();

            var constraintName =
                $"Create Constraint {constraint.RelationName} between parent {constraint.ParentTable.TableName.ToLowerInvariant()} and child {constraint.ChildTable.TableName.ToLowerInvariant()}";
            var constraintScript = BuildForeignKeyConstraintsCommand(constraint).CommandText;

            stringBuilder.Append(PostgreSqlBuilder.WrapScriptTextWithComments(constraintScript, constraintName));
            stringBuilder.AppendLine();

            return(stringBuilder.ToString());
        }
Пример #12
0
        public string CreateDeleteTriggerScriptText()
        {
            var delTriggerName = string.Format(_postgreSqlObjectNames.GetCommandName(DbCommandType.DeleteTrigger),
                                               _tableName.UnquotedStringWithUnderScore);
            var createTrigger = new StringBuilder();

            createTrigger.AppendLine(
                $"CREATE TRIGGER {delTriggerName} AFTER DELETE ON {_tableName.QuotedString} FOR EACH ROW ");
            createTrigger.AppendLine();
            createTrigger.AppendLine(DeleteTriggerBodyText());

            var str = $"Delete Trigger for table {_tableName.QuotedString}";

            return(PostgreSqlBuilder.WrapScriptTextWithComments(createTrigger.ToString(), str));
        }
        public string CreateTableScriptText()
        {
            var str = string.Concat("Create Tracking Table ", _trackingName.QuotedString);

            return(PostgreSqlBuilder.WrapScriptTextWithComments(CreateTableCommandText(), str));
        }