fix issues #30

Это была непонятная реализация самих разработчиков.
Там есть и другие не понятные для меня решения, к примеру
нет явного указания ENABLE [ REPLICA | ALWAYS ].
This commit is contained in:
lsv 2022-10-15 14:20:33 +05:00
parent 1078cb4d8e
commit cb11507b4f
3 changed files with 9 additions and 5 deletions

View file

@ -68,11 +68,13 @@ wxString dlgEventTrigger::GetSql()
else if (!chkEnable->GetValue())
sql += wxT("ALTER EVENT TRIGGER ") + qtIdent(name) + wxT(" DISABLE ;\n\n");
}
wxString tmp = eventTrigger->GetEventName().Lower();
tmp.Replace("_", " ");
if (!eventTrigger ||
(
cbFunction->GetValue() != (eventTrigger->GetFunction()) ||
rdbEvents->GetStringSelection().Lower() != (eventTrigger->GetEventName().Lower()) ||
rdbEvents->GetStringSelection().Lower() != (tmp) ||
txtWhen->GetValue() != (eventTrigger->GetWhen())
)
)
@ -144,9 +146,9 @@ int dlgEventTrigger::Go(bool modal)
else
rdbEnableStatus->Disable();
if(eventTrigger->GetEventName().Lower() == wxT("ddl command start"))
if(eventTrigger->GetEventName().Lower() == wxT("ddl_command_start"))
rdbEvents->SetSelection(0);
else if(eventTrigger->GetEventName().Lower() == wxT("ddl command end"))
else if(eventTrigger->GetEventName().Lower() == wxT("ddl_command_end"))
rdbEvents->SetSelection(1);
else
rdbEvents->SetSelection(2);
@ -210,12 +212,14 @@ void dlgEventTrigger::CheckChange()
if (eventTrigger)
{
wxString tmp= eventTrigger->GetEventName().Lower();
tmp.Replace("_", " ");
EnableOK(enable &&
(txtComment->GetValue() != eventTrigger->GetComment() ||
txtName->GetValue() != eventTrigger->GetName() ||
txtWhen->GetValue() != eventTrigger->GetWhen() ||
chkEnable->GetValue() != eventTrigger->GetEnabled() ||
rdbEvents->GetStringSelection().Lower() != eventTrigger->GetEventName().Lower() ||
rdbEvents->GetStringSelection().Lower() != tmp ||
rdbEnableStatus->GetStringSelection().Lower() != eventTrigger->GetEnableStatus().Lower() ||
!function.IsEmpty() ||
!owner.IsEmpty()

View file

@ -48,7 +48,7 @@ pgObject *pgEventTriggerFactory::CreateObjects(pgCollection *collection, ctlTree
wxString sql;
pgEventTrigger *eventTrigger = 0;
sql = wxT("SELECT e.oid, e.xmin, e.evtname AS name, REPLACE(e.evtevent, '_', ' ') AS eventname, pg_catalog.pg_get_userbyid(e.evtowner) AS eventowner, ")
sql = wxT("SELECT e.oid, e.xmin, e.evtname AS name, e.evtevent AS eventname, pg_catalog.pg_get_userbyid(e.evtowner) AS eventowner, ")
wxT(" CASE e.evtenabled WHEN 'O' THEN 'enabled' WHEN 'R' THEN 'replica' WHEN 'A' THEN 'always' WHEN 'D' THEN 'disabled' END AS enabled, ")
wxT(" e.evtfoid AS eventfuncoid, e.evtfoid::regproc AS eventfunname, array_to_string(array(select quote_literal(x) from unnest(evttags) as t(x)), ', ') AS when, ")
wxT(" pg_catalog.obj_description(e.oid, 'pg_event_trigger') AS comment, ")

Binary file not shown.