Leszek Trenkner a écrit :
Using recent SVN head (6301M) I've encoutered annoying bug - regression -
that wasn't there a few days back.
When I try to create constraint in the gui - in any way possible (right-
clicking on browser tree node, from the main menu, in table ctration
dialog on constraints tab) - pgadmin just core dumps ("Segmentation fault
(core dumped)"). It seems like the very dialog window that allows one to
input constraint definition is the culprit - but it does mater which type
of the constraint I want to create (primary key and unique do not work)-
so it might be a common piece of code just before displaying that window
between the two.
Everything else seems to work fine, as far as dialog windows are
concerned.
I've tried to debug this issue more closely, bus as far as I've got is
getting debug version of pgAdmin3 build (Ubuntu Fiesty 7.04, Ubuntu
supplied wx-2.8.1-dbg libraries), which unfortunately dies ("core dumped")
just as release build would in any constraint creation attempt. BTW,
where is the dumped core expected to appear?
I've tried to attach debugger to pgadmin3, and if I try to create a
constraint pgadmin stops on line 105 in pgadmin/dlg/dlgIndex.cpp:
105 txtFillFactor->SetValidator(numericValidator);
106 if (connection->BackendMinimumVersion(8, 2))
107 txtFillFactor->Enable();
108 else
109 txtFillFactor->Disable();
110
You're right about this. I didn't know constraint dialog used
dlgIndex.cpp. You'll find a patch attached fixing this issue.
Sorry about this, but thanks for your report.
Regards.
--
Guillaume.
<!-- http://abs.traduc.org/
http://lfs.traduc.org/
http://docs.postgresqlfr.org/ -->
Index: pgadmin/dlg/dlgIndex.cpp
===================================================================
--- pgadmin/dlg/dlgIndex.cpp (révision 6301)
+++ pgadmin/dlg/dlgIndex.cpp (copie de travail)
@@ -102,11 +102,14 @@
// create mode
}
- txtFillFactor->SetValidator(numericValidator);
- if (connection->BackendMinimumVersion(8, 2))
- txtFillFactor->Enable();
- else
- txtFillFactor->Disable();
+ if (txtFillFactor)
+ {
+ txtFillFactor->SetValidator(numericValidator);
+ if (connection->BackendMinimumVersion(8, 2))
+ txtFillFactor->Enable();
+ else
+ txtFillFactor->Disable();
+ }
btnAddCol->Disable();
btnRemoveCol->Disable();
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match