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

View file

@ -48,7 +48,7 @@ pgObject *pgEventTriggerFactory::CreateObjects(pgCollection *collection, ctlTree
wxString sql; wxString sql;
pgEventTrigger *eventTrigger = 0; 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(" 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(" 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, ") wxT(" pg_catalog.obj_description(e.oid, 'pg_event_trigger') AS comment, ")

Binary file not shown.