Skip site navigation (1) Skip section navigation (2)

Re: pgAdmin III commit: Add the support for per-column collation feature

From: Timon <timosha(at)gmail(dot)com>
To: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: pgAdmin III commit: Add the support for per-column collation feature
Date: 2011-04-26 14:57:29
Message-ID: BANLkTi=WDB9Pq2G5RzsGs_N3VPngtM-3dQ@mail.gmail.com (view raw or flat)
Thread:
Lists: pgadmin-hackers
this commit broke index properties dialog. pgadmin simply crashes.
steps to reproduce:
1. create index or use existing index
2. open index properties dialog
3. catch a crash

stacktrace:

#0  wxStringBase::operator= (this=0x7fffffffc0d8, stringSrc=...) at
src/common/string.cpp:778
No locals.
#1  0x00007ffff6e6e246 in operator= (this=0x7fffffffc0d8) at
include/wx/string.h:659
No locals.
#2  wxGenericListCtrl::SetItem (this=0x18fa1d0, index=0, col=4,
label=<optimized out>, imageId=-1)
    at src/generic/listctrl.cpp:5237
        info = warning: can't find linker symbol for virtual table for
`wxListItem' value
{<wxObject> = {_vptr.wxObject = 0xce07d0, static ms_classInfo =
{m_className = 0x0, m_objectSize = 0,
              m_objectConstructor = 0, m_baseInfo1 = 0x0, m_baseInfo2
= 0x0, static sm_first = 0x0, m_next = 0x0,
              static sm_classTable = 0xd2b010}, m_refData = 0x0},
m_mask = 0, m_itemId = 0, m_col = 0, m_state = 0,
          m_stateMask = 0, m_text = {<wxStringBase> = {static npos =
18446744073709551615, m_pchData =
    0x3e87d07cd8 L""}, <No data fields>}, m_image = -1, m_data = 0,
m_format = 2, m_width = 0, m_attr = 0x0,
          static ms_classInfo = {m_className = 0x7ffff6f691d8
L"wxListItem", m_objectSize = 96, m_objectConstructor =
    0x7ffff6e60c40 <wxListItem::wxCreateObject()>, m_baseInfo1 =
0xce5de0, m_baseInfo2 = 0x0, static sm_first = 0x0,
            m_next = 0x7ffff7245ae0, static sm_classTable = 0xd2b010}}
#3  0x000000000051741a in dlgIndex::Go(bool) ()
No symbol table info available.
#4  0x00000000005315ef in dlgProperty::EditObjectDialog(frmMain*,
ctlSQLBox*, pgObject*) ()
No symbol table info available.
#5  0x00000000005317e3 in propertyFactory::StartDialog(frmMain*, pgObject*) ()
No symbol table info available.
#6  0x0000000000597550 in frmMain::OnAction(wxCommandEvent&) ()
No symbol table info available.
#7  0x0000003e87ce6b15 in wxEvtHandler::ProcessEventIfMatches
(entry=<optimized out>, handler=<optimized out>, event=
    ...) at src/common/event.cpp:1239
        tableId1 = <optimized out>
        tableId2 = <optimized out>
#8  0x0000003e87ce6edf in wxEvtHandler::SearchDynamicEventTable
(this=0x1733000, event=...)
        handler = <optimized out>
        entry = <optimized out>
        node = {m_ptr = 0x18812d0}
#9  0x0000003e87ce6f92 in ProcessEvent (event=..., this=0x1733000) at
src/common/event.cpp:1297
No locals.
#10 wxEvtHandler::ProcessEvent (this=0x1733000, event=...) at
src/common/event.cpp:1272
No locals.
#11 0x0000003e87ce6f50 in ProcessEvent (event=..., this=0x17333b0) at
src/common/event.cpp:1308
No locals.
#12 wxEvtHandler::ProcessEvent (this=0x17333b0, event=...) at
src/common/event.cpp:1272
No locals.
#13 0x00007ffff6f22b49 in wxWindowBase::TryParent (this=<optimized
out>, event=...) at src/common/wincmn.cpp:2661
        propagateOnce = {m_event = @0x7fffffffc580}
        parent = <optimized out>
#14 0x0000003e87ce6f50 in ProcessEvent (event=..., this=0x17f2530) at
src/common/event.cpp:1308
No locals.
#15 wxEvtHandler::ProcessEvent (this=0x17f2530, event=...) at
src/common/event.cpp:1272
No locals.
#16 0x00007ffff6f4c6b5 in wxScrollHelperEvtHandler::ProcessEvent
(this=0x17f2530, event=<optimized out>)
    at src/generic/scrlwing.cpp:208
        evType = 10010
        processed = <optimized out>
#17 0x00007ffff6f0334d in wxMenuBase::SendEvent (this=<optimized out>,
id=<optimized out>, checked=<optimized out>)
    at src/common/menucmn.cpp:792
        win = <optimized out>
        menu = <optimized out>
        event = warning: can't find linker symbol for virtual table
for `wxCommandEvent' value
{<wxEvent> = {<wxObject> = {_vptr.wxObject = 0xceadf0, static
ms_classInfo = {m_className = 0x0,
                m_objectSize = 0, m_objectConstructor = 0, m_baseInfo1
= 0x0, m_baseInfo2 = 0x0, static sm_first =
     0x0, m_next = 0x0, static sm_classTable = 0xd2b010}, m_refData =
0x0}, m_eventObject = 0x1a1b890, m_eventType =
    10010, m_timeStamp = 0, m_id = 1278, m_callbackUserData = 0x0,
m_propagationLevel = 2147483646, m_skipped =
    false, m_isCommandEvent = true, static ms_classInfo = {m_className
= 0x3e87d0caa8 L"wxEvent", m_objectSize = 64,
              m_objectConstructor = 0, m_baseInfo1 = 0xce5de0,
m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
    0x3e87f57580, static sm_classTable = 0xd2b010}}, m_commandString =
{m_evt = 0x7fffffffc580}, m_cmdString =
    {<wxStringBase> = {static npos = 18446744073709551615, m_pchData =
0x3e87d07cd8 L""}, <No data fields>},
          m_commandInt = -1, m_extraLong = 0, m_clientData = 0x0,
m_clientObject = 0x0, static ms_classInfo = {
            m_className = 0x7ffff6f63a70 L"wxCommandEvent",
m_objectSize = 112, m_objectConstructor =
    0x7ffff6e1e9b0 <wxCommandEvent::wxCreateObject()>, m_baseInfo1 =
0x3e87f57540, m_baseInfo2 = 0x0,
            static sm_first = 0x0, m_next = 0x7ffff72446a0, static
sm_classTable = 0xd2b010}}
        processed = <optimized out>
#18 0x00007ffff6e9f2e4 in gtk_menu_clicked_callback (widget=<optimized
out>, menu=0x1a1b890) at src/gtk/menu.cpp:658
        id = 1278
        item = 0x1b5da10
        frame = <optimized out>
#19 0x00000035ef40e2ee in g_closure_invoke (closure=0x1a3f4a0,
return_value=0x0, n_param_values=1, param_values=
    0x17dca20, invocation_hint=0x7fffffffc7e0) at gclosure.c:767
        marshal = <optimized out>
        marshal_data = <optimized out>
        in_marshal = <optimized out>
        __PRETTY_FUNCTION__ = "g_closure_invoke"
#20 0x00000035ef41f1a0 in signal_emit_unlocked_R (node=<optimized
out>, detail=0, instance=0x1a8b0d0, emission_return=
    0x0, instance_and_params=0x17dca20) at gsignal.c:3252
        tmp = <optimized out>
        handler = 0x1a50030
        accumulator = 0x0
        emission = {next = 0x7fffffffccd0, instance = 0x1a8b0d0, ihint
= {signal_id = 118, detail = 0, run_type =
    G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4}
        class_closure = 0x1738570
        hlist = 0x3ede60ae10
        handler_list = 0x1a50030
        return_accu = 0x0
        accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long =
0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
              v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0,
v_uint = 0, v_long = 0, v_ulong = 0, v_int64 =
    0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        signal_id = 118
        max_sequential_handler_number = 2202
        return_value_altered = 1
#21 0x00000035ef428972 in g_signal_emit_valist (instance=<optimized
out>, signal_id=<optimized out>,
    detail=<optimized out>, var_args=<optimized out>) at gsignal.c:2983
        instance_and_params = 0x17dca20
        signal_return_type = 4
        param_values = 0x17dca38
        node = <optimized out>
        i = <optimized out>
        n_params = 0
        __PRETTY_FUNCTION__ = "g_signal_emit_valist"
#22 0x00000035ef428b12 in g_signal_emit (instance=<optimized out>,
signal_id=<optimized out>, detail=<optimized out>)
    at gsignal.c:3040
        var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area
= 0x7fffffffcac0, reg_save_area =
    0x7fffffffca00}}
#23 0x00007ffff685241e in IA__gtk_widget_activate (widget=0x1a8b0d0
[GtkMenuItem]) at gtkwidget.c:5026
        __PRETTY_FUNCTION__ = "IA__gtk_widget_activate"
#24 0x00007ffff673538d in IA__gtk_menu_shell_activate_item
(menu_shell=0x1765830 [GtkMenu], menu_item=
    0x1a8b0d0 [GtkMenuItem], force_deactivate=<optimized out>) at
gtkmenushell.c:1283
        slist = <optimized out>
        shells = 0x1ba2d80 = {0x1765830}
        deactivate = <optimized out>
        __PRETTY_FUNCTION__ = "IA__gtk_menu_shell_activate_item"
#25 0x00007ffff6735772 in gtk_menu_shell_button_release
(widget=0x1765830 [GtkMenu], event=<optimized out>)
    at gtkmenushell.c:710
        submenu = 0x0
        menu_item = 0x1a8b0d0 [GtkMenuItem]
        deactivate = 1
        menu_shell = 0x1765830 [GtkMenu]
        priv = 0x1765960
#26 0x00007ffff671e103 in _gtk_marshal_BOOLEAN__BOXED
(closure=0xe9a6f0, return_value=0x7fffffffcd20,
    n_param_values=<optimized out>, param_values=0x1a7a380,
invocation_hint=<optimized out>,
    marshal_data=<optimized out>) at gtkmarshalers.c:86
        callback = 0x7ffff6728790 <gtk_menu_button_release>
        cc = 0xe9a6f0
        data1 = 0x1765830
        data2 = 0xe994c0
        v_return = <optimized out>
        __PRETTY_FUNCTION__ = "_gtk_marshal_BOOLEAN__BOXED"
#27 0x00000035ef40e2ee in g_closure_invoke (closure=0xe9a6f0,
return_value=0x7fffffffcd20, n_param_values=2,
    param_values=0x1a7a380, invocation_hint=0x7fffffffcce0) at gclosure.c:767
        marshal = <optimized out>
        marshal_data = <optimized out>
        in_marshal = <optimized out>
        __PRETTY_FUNCTION__ = "g_closure_invoke"
#28 0x00000035ef41efba in signal_emit_unlocked_R (node=<optimized
out>, detail=0, instance=0x1765830, emission_return=
    0x7fffffffce80, instance_and_params=0x1a7a380) at gsignal.c:3290
        accumulator = 0xe9a980
        emission = {next = 0x7fffffffdb40, instance = 0x1765830, ihint
= {signal_id = 34, detail = 0, run_type =
    G_SIGNAL_RUN_LAST}, state = EMISSION_RUN, chain_type = 16533632}
        class_closure = 0xe9a6f0
        hlist = 0x1a3f448
        handler_list = 0x0
        return_accu = 0x7fffffffcd20
        accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long =
0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
              v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0,
v_uint = 0, v_long = 0, v_ulong = 0, v_int64 =
    0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        signal_id = 34
        max_sequential_handler_number = 2202
        return_value_altered = 0
#29 0x00000035ef42872b in g_signal_emit_valist (instance=<optimized
out>, signal_id=<optimized out>,
    detail=<optimized out>, var_args=<optimized out>) at gsignal.c:2993
        return_value = {g_type = 20, data = {{v_int = 0, v_uint = 0,
v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 =
    0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint
= 0, v_long = 0, v_ulong = 0, v_int64 = 0,
              v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        error = 0x0
        rtype = 20
        static_scope = 0
        instance_and_params = 0x1a7a380
        signal_return_type = 20
        param_values = 0x1a7a398
        node = <optimized out>
        i = <optimized out>
        n_params = 1
        __PRETTY_FUNCTION__ = "g_signal_emit_valist"
#30 0x00000035ef428b12 in g_signal_emit (instance=<optimized out>,
signal_id=<optimized out>, detail=<optimized out>)
    at gsignal.c:3040
        var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area
= 0x7fffffffcfc0, reg_save_area =
    0x7fffffffcf00}}
#31 0x00007ffff68533e1 in gtk_widget_event_internal (widget=0x1765830
[GtkMenu], event=0x18bb020) at gtkwidget.c:4995
        signal_num = <optimized out>
        return_val = 0
#32 0x00007ffff671bc63 in IA__gtk_propagate_event (widget=0x1765830
[GtkMenu], event=0x18bb020) at gtkmain.c:2489
        tmp = <optimized out>
        handled_event = <optimized out>
        __PRETTY_FUNCTION__ = "IA__gtk_propagate_event"
#33 0x00007ffff671bfcb in IA__gtk_main_do_event (event=0x18bb020) at
gtkmain.c:1684
        event_widget = <optimized out>
        grab_widget = 0x1a8b0d0 [GtkMenuItem]
        window_group = <optimized out>
        rewritten_event = <optimized out>
        tmp_list = <optimized out>
        __PRETTY_FUNCTION__ = "IA__gtk_main_do_event"
#34 0x00007ffff63720cc in gdk_event_dispatch (source=<optimized out>,
callback=<optimized out>,
    user_data=<optimized out>) at gdkevents-x11.c:2377
        display = <optimized out>
        event = 0x18bb020
#35 0x00000035eec42b6d in g_main_dispatch (context=0xdd34a0) at gmain.c:2440
        dispatch = 0x7ffff6372080 <gdk_event_dispatch>
        was_in_call = 2
        user_data = 0x0
        callback = 0
        cb_funcs = 0x0
        cb_data = 0x0
        current_source_link = {data = 0xe15f60, next = 0x7fffffffdf30
= {0xe15f60}}
        need_destroy = <optimized out>
        source = 0xe15f60
        current = 0x1028bb0
        i = <optimized out>
#36 g_main_context_dispatch (context=0xdd34a0) at gmain.c:3013
No locals.
#37 0x00000035eec43348 in g_main_context_iterate (context=0xdd34a0,
block=<optimized out>, dispatch=1,
    self=<optimized out>) at gmain.c:3091
        max_priority = 2147483647
        timeout = -1
        some_ready = 1
        nfds = 2
        allocated_nfds = <optimized out>
        fds = <optimized out>
        __PRETTY_FUNCTION__ = "g_main_context_iterate"
#38 0x00000035eec435dc in g_main_context_iteration (context=0xdd34a0,
may_block=1) at gmain.c:3154
        retval = <optimized out>
#39 0x00007ffff671b201 in IA__gtk_main_iteration () at gtkmain.c:1344
No locals.
#40 0x00007ffff6e9f775 in wxWindow::DoPopupMenu (this=<optimized out>,
menu=0x1a1b890, x=237, y=<optimized out>)
    at src/gtk/menu.cpp:1730
        is_waiting = false
        eventClose = {<wxEvent> = {<wxObject> = {_vptr.wxObject = 0x0,
static ms_classInfo = {m_className = 0x0,
                m_objectSize = 0, m_objectConstructor = 0, m_baseInfo1
= 0x0, m_baseInfo2 = 0x0, static sm_first =
    0x0, m_next = 0x0, static sm_classTable = 0xd2b010}, m_refData =
0x3edda0ded4}, m_eventObject = 0x1,
            m_eventType = 0, m_timeStamp = 27375760, m_id =
-154631464, m_callbackUserData = 0x1b5d9b8,
            m_propagationLevel = 27375760, m_skipped = false,
m_isCommandEvent = false, static ms_classInfo = {
              m_className = 0x3e87d0caa8 L"wxEvent", m_objectSize =
64, m_objectConstructor = 0, m_baseInfo1 =
    0xce5de0, m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
0x3e87f57580, static sm_classTable = 0xd2b010}},
          m_menuId = 24326144, m_menu = 0x0, static ms_classInfo =
{m_className = 0x7ffff6f63e48 L"wxMenuEvent",
            m_objectSize = 80, m_objectConstructor = 0x7ffff6e1e100
<wxMenuEvent::wxCreateObject()>, m_baseInfo1 =
    0x3e87f57540, m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
0x7ffff7244260, static sm_classTable = 0xd2b010}}
        handler = 2199
        pos = {x = 318, y = 502}
        userdata = 0x7fffffffd290
        posfunc = 0x7ffff6e9c3a0
<wxPopupMenuPositionCallback(GtkMenu*, gint*, gint*, gboolean*,
gpointer)>
        eventOpen = {<wxEvent> = {<wxObject> = {_vptr.wxObject =
0x7ffff71ef390, static ms_classInfo = {m_className =
    0x0, m_objectSize = 0, m_objectConstructor = 0, m_baseInfo1 = 0x0,
m_baseInfo2 = 0x0, static sm_first = 0x0,
                m_next = 0x0, static sm_classTable = 0xd2b010},
m_refData = 0x0}, m_eventObject = 0x1a1b890,
            m_eventType = 10094, m_timeStamp = 0, m_id = -1,
m_callbackUserData = 0x0, m_propagationLevel = 0,
            m_skipped = false, m_isCommandEvent = false, static
ms_classInfo = {m_className =
    0x3e87d0caa8 L"wxEvent", m_objectSize = 64, m_objectConstructor =
0, m_baseInfo1 = 0xce5de0, m_baseInfo2 = 0x0,
              static sm_first = 0x0, m_next = 0x3e87f57580, static
sm_classTable = 0xd2b010}}, m_menuId = -1,
          m_menu = 0x1a1b890, static ms_classInfo = {m_className =
0x7ffff6f63e48 L"wxMenuEvent", m_objectSize = 80,
            m_objectConstructor = 0x7ffff6e1e100
<wxMenuEvent::wxCreateObject()>, m_baseInfo1 = 0x3e87f57540,
            m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
0x7ffff7244260, static sm_classTable = 0xd2b010}}
#41 0x0000000000599b4d in frmMain::doPopup(wxWindow*, wxPoint, pgObject*) ()
No symbol table info available.
#42 0x0000000000599d36 in frmMain::OnSelRightClick(wxTreeEvent&) ()
No symbol table info available.
#43 0x0000003e87ce6b15 in wxEvtHandler::ProcessEventIfMatches
(entry=<optimized out>, handler=<optimized out>, event=
    ...) at src/common/event.cpp:1239
        tableId1 = <optimized out>
        tableId2 = <optimized out>
#44 0x0000003e87ce6c7c in wxEventHashTable::HandleEvent
(this=<optimized out>, event=..., self=0x1733000)
    at src/common/event.cpp:906
        n = <optimized out>
        eventEntryTable = @0x1022418
        count = 1
        eventType = <optimized out>
        eTTnode = 0x1022410
#45 0x0000003e87ce6fb4 in ProcessEvent (event=..., this=0x1733000) at
src/common/event.cpp:1301
No locals.
#46 wxEvtHandler::ProcessEvent (this=0x1733000, event=...) at
src/common/event.cpp:1272
No locals.
#47 0x0000003e87ce6f50 in ProcessEvent (event=..., this=0x17333b0) at
src/common/event.cpp:1308
No locals.
#48 wxEvtHandler::ProcessEvent (this=0x17333b0, event=...) at
src/common/event.cpp:1272
No locals.
#49 0x00007ffff6f22b49 in wxWindowBase::TryParent (this=<optimized
out>, event=...) at src/common/wincmn.cpp:2661
        propagateOnce = {m_event = @0x7fffffffd4b0}
        parent = <optimized out>
#50 0x0000003e87ce6f50 in ProcessEvent (event=..., this=0x17f2530) at
src/common/event.cpp:1308
No locals.
#51 wxEvtHandler::ProcessEvent (this=0x17f2530, event=...) at
src/common/event.cpp:1272
No locals.
#52 0x00007ffff6f4c6b5 in wxScrollHelperEvtHandler::ProcessEvent
(this=0x17f2530, event=<optimized out>)
    at src/generic/scrlwing.cpp:208
        evType = 10182
        processed = <optimized out>
#53 0x00007ffff6f5e7a0 in wxGenericTreeCtrl::OnMouse (this=0x17f2060,
event=...) at src/generic/treectlg.cpp:3430
        nevent = {<wxNotifyEvent> = {<wxCommandEvent> = {<wxEvent> =
{<wxObject> = {_vptr.wxObject = 0x7ffff7223730,
                  static ms_classInfo = {m_className = 0x0,
m_objectSize = 0, m_objectConstructor = 0, m_baseInfo1 =
    0x0, m_baseInfo2 = 0x0, static sm_first = 0x0, m_next = 0x0,
static sm_classTable = 0xd2b010}, m_refData = 0x0},
                m_eventObject = 0x17f2060, m_eventType = 10182,
m_timeStamp = 0, m_id = 301, m_callbackUserData =
    0x0, m_propagationLevel = 2147483646, m_skipped = false,
m_isCommandEvent = true, static ms_classInfo = {
                  m_className = 0x3e87d0caa8 L"wxEvent", m_objectSize
= 64, m_objectConstructor = 0, m_baseInfo1 =
    0xce5de0, m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
0x3e87f57580, static sm_classTable = 0xd2b010}},
              m_commandString = {m_evt = 0x7fffffffd4b0}, m_cmdString
= {<wxStringBase> = {static npos =
    18446744073709551615, m_pchData = 0x3e87d07cd8 L""}, <No data
fields>}, m_commandInt = 0, m_extraLong = 0,
              m_clientData = 0x0, m_clientObject = 0x1a89d50, static
ms_classInfo = {m_className =
    0x7ffff6f63a70 L"wxCommandEvent", m_objectSize = 112, m_objectConstructor =
    0x7ffff6e1e9b0 <wxCommandEvent::wxCreateObject()>, m_baseInfo1 =
0x3e87f57540, m_baseInfo2 = 0x0,
                static sm_first = 0x0, m_next = 0x7ffff72446a0, static
sm_classTable = 0xd2b010}}, m_bAllow = true,
            static ms_classInfo = {m_className = 0x7ffff6f63ab0
L"wxNotifyEvent", m_objectSize = 120,
              m_objectConstructor = 0x7ffff6e1e950
<wxNotifyEvent::wxCreateObject()>, m_baseInfo1 = 0x7ffff7244660,
              m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
0x7ffff7244660, static sm_classTable = 0xd2b010}},
          m_evtKey = {<wxEvent> = {<wxObject> = {_vptr.wxObject =
0x7ffff71ef090, static ms_classInfo = {
                  m_className = 0x0, m_objectSize = 0,
m_objectConstructor = 0, m_baseInfo1 = 0x0, m_baseInfo2 = 0x0,
                  static sm_first = 0x0, m_next = 0x0, static
sm_classTable = 0xd2b010}, m_refData = 0x0},
              m_eventObject = 0x0, m_eventType = 10001, m_timeStamp =
0, m_id = 0, m_callbackUserData = 0x0,
              m_propagationLevel = 0, m_skipped = false,
m_isCommandEvent = false, static ms_classInfo = {
                m_className = 0x3e87d0caa8 L"wxEvent", m_objectSize =
64, m_objectConstructor = 0, m_baseInfo1 =
    0xce5de0, m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
0x3e87f57580, static sm_classTable = 0xd2b010}},
            m_x = 0, m_y = 0, m_keyCode = 0, m_controlDown = false,
m_shiftDown = false, m_altDown = false,
            m_metaDown = false, m_scanCode = false, m_uniChar = 0
L'\000', m_rawCode = 0, m_rawFlags = 0,
            static ms_classInfo = {m_className = 0x7ffff6f63ba0
L"wxKeyEvent", m_objectSize = 104,
              m_objectConstructor = 0x7ffff6e1f210
<wxKeyEvent::wxCreateObject()>, m_baseInfo1 = 0x3e87f57540,
              m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
0x7ffff7244560, static sm_classTable = 0xd2b010}},
          m_item = {m_pItem = 0x1a2aa40}, m_itemOld = {m_pItem = 0x0},
m_pointDrag = {x = 237, y = 302}, m_label =
    {<wxStringBase> = {static npos = 18446744073709551615, m_pchData =
0x3e87d07cd8 L""}, <No data fields>},
          m_editCancelled = false, static ms_classInfo = {m_className
= 0x7ffff6f83708 L"wxTreeEvent", m_objectSize =
    264, m_objectConstructor = 0, m_baseInfo1 = 0x7ffff7244620,
m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
    0x7ffff724ca00, static sm_classTable = 0xd2b010}}
        nevent2 = {<wxNotifyEvent> = {<wxCommandEvent> = {<wxEvent> =
{<wxObject> = {_vptr.wxObject = 0xe00000,
                  static ms_classInfo = {m_className = 0x0,
m_objectSize = 0, m_objectConstructor = 0, m_baseInfo1 =
    0x0, m_baseInfo2 = 0x0, static sm_first = 0x0, m_next = 0x0,
static sm_classTable = 0xd2b010}, m_refData =
    0x7fffffffd658}, m_eventObject = 0x1b6dfd0, m_eventType =
14684424, m_timeStamp = 140737488344640, m_id =
    -509568252, m_callbackUserData = 0x1000100000009,
m_propagationLevel = 78607, m_skipped = false,
                m_isCommandEvent = false, static ms_classInfo =
{m_className = 0x3e87d0caa8 L"wxEvent",
                  m_objectSize = 64, m_objectConstructor = 0,
m_baseInfo1 = 0xce5de0, m_baseInfo2 = 0x0,
                  static sm_first = 0x0, m_next = 0x3e87f57580, static
sm_classTable = 0xd2b010}}, m_commandString = {
                m_evt = 0xe00050}, m_cmdString = {<wxStringBase> =
{static npos = 18446744073709551615, m_pchData =
    0x7fffffffd660 L"\001"}, <No data fields>}, m_commandInt = -10488,
m_extraLong = 270073372497, m_clientData =
    0x7fffffffd640, m_clientObject = 0x3ee1a0a9b5, static ms_classInfo
= {m_className =
    0x7ffff6f63a70 L"wxCommandEvent", m_objectSize = 112, m_objectConstructor =
    0x7ffff6e1e9b0 <wxCommandEvent::wxCreateObject()>, m_baseInfo1 =
0x3e87f57540, m_baseInfo2 = 0x0,
                static sm_first = 0x0, m_next = 0x7ffff72446a0, static
sm_classTable = 0xd2b010}}, m_bAllow = false,
            static ms_classInfo = {m_className = 0x7ffff6f63ab0
L"wxNotifyEvent", m_objectSize = 120,
              m_objectConstructor = 0x7ffff6e1e950
<wxNotifyEvent::wxCreateObject()>, m_baseInfo1 = 0x7ffff7244660,
              m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
0x7ffff7244660, static sm_classTable = 0xd2b010}},
          m_evtKey = {<wxEvent> = {<wxObject> = {_vptr.wxObject =
0xffffffff00e00068, static ms_classInfo = {
                  m_className = 0x0, m_objectSize = 0,
m_objectConstructor = 0, m_baseInfo1 = 0x0, m_baseInfo2 = 0x0,
                  static sm_first = 0x0, m_next = 0x0, static
sm_classTable = 0xd2b010}, m_refData = 0xe010e0},
              m_eventObject = 0xe00090, m_eventType = 0, m_timeStamp =
28978288, m_id = 1, m_callbackUserData =
    0xe00050, m_propagationLevel = 0, m_skipped = false,
m_isCommandEvent = false, static ms_classInfo = {
                m_className = 0x3e87d0caa8 L"wxEvent", m_objectSize =
64, m_objectConstructor = 0, m_baseInfo1 =
    0xce5de0, m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
0x3e87f57580, static sm_classTable = 0xd2b010}},
            m_x = 0, m_y = 0, m_keyCode = 30314304, m_controlDown =
64, m_shiftDown = 143, m_altDown = 206,
            m_metaDown = true, m_scanCode = false, m_uniChar =
14680144 L'\xe00050', m_rawCode = 0, m_rawFlags =
    14675456, static ms_classInfo = {m_className = 0x7ffff6f63ba0
L"wxKeyEvent", m_objectSize = 104,
              m_objectConstructor = 0x7ffff6e1f210
<wxKeyEvent::wxCreateObject()>, m_baseInfo1 = 0x3e87f57540,
              m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
0x7ffff7244560, static sm_classTable = 0xd2b010}},
          m_item = {m_pItem = 0x7fffffffd750}, m_itemOld = {m_pItem =
0x20}, m_pointDrag = {x = 30314304, y = 0},
          m_label = {<wxStringBase> = {static npos =
18446744073709551615, m_pchData =
    0x1ce8f40 L"\003\001"}, <No data fields>}, m_editCancelled = 112,
static ms_classInfo = {m_className =
    0x7ffff6f83708 L"wxTreeEvent", m_objectSize = 264,
m_objectConstructor = 0, m_baseInfo1 = 0x7ffff7244620,
            m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
0x7ffff724ca00, static sm_classTable = 0xd2b010}}
        pt = {x = 237, y = 4012}
        flags = 2112
        underMouseChanged = <optimized out>
        hoverItem = {m_pItem = 0x1a2aa40}
        thisItem = <optimized out>
        underMouse = <optimized out>
        item = 0x1a2aa40
#54 0x0000003e87ce6b15 in wxEvtHandler::ProcessEventIfMatches
(entry=<optimized out>, handler=<optimized out>, event=
    ...) at src/common/event.cpp:1239
        tableId1 = <optimized out>
        tableId2 = <optimized out>
#55 0x0000003e87ce6c7c in wxEventHashTable::HandleEvent
(this=<optimized out>, event=..., self=0x17f2060)
    at src/common/event.cpp:906
        n = <optimized out>
        eventEntryTable = @0x1888708
        count = 1
        eventType = <optimized out>
        eTTnode = 0x1888700
#56 0x0000003e87ce6fb4 in ProcessEvent (event=..., this=0x17f2060) at
src/common/event.cpp:1301
No locals.
#57 wxEvtHandler::ProcessEvent (this=0x17f2060, event=...) at
src/common/event.cpp:1272
No locals.
#58 0x0000003e87ce6f50 in ProcessEvent (event=..., this=0x17f2530) at
src/common/event.cpp:1308
No locals.
#59 wxEvtHandler::ProcessEvent (this=0x17f2530, event=...) at
src/common/event.cpp:1272
No locals.
#60 0x00007ffff6f4c6b5 in wxScrollHelperEvtHandler::ProcessEvent
(this=0x17f2530, event=<optimized out>)
    at src/generic/scrlwing.cpp:208
        evType = 10025
        processed = <optimized out>
#61 0x00007ffff6e513cf in gtk_window_button_press_callback
(widget=0x178fd60 [GtkPizza], gdk_event=0xfbe4a0, win=
    0x17f2060) at src/gtk/window.cpp:1634
        ret = <optimized out>
        rc = <optimized out>
        event_type = 10025
        event = {<wxEvent> = {<wxObject> = {_vptr.wxObject =
0x7ffff71ef050, static ms_classInfo = {m_className =
    0x0, m_objectSize = 0, m_objectConstructor = 0, m_baseInfo1 = 0x0,
m_baseInfo2 = 0x0, static sm_first = 0x0,
                m_next = 0x0, static sm_classTable = 0xd2b010},
m_refData = 0x0}, m_eventObject = 0x17f2060,
            m_eventType = 10025, m_timeStamp = 18668337, m_id = 301,
m_callbackUserData = 0x0, m_propagationLevel =
    0, m_skipped = false, m_isCommandEvent = false, static
ms_classInfo = {m_className = 0x3e87d0caa8 L"wxEvent",
              m_objectSize = 64, m_objectConstructor = 0, m_baseInfo1
= 0xce5de0, m_baseInfo2 = 0x0,
              static sm_first = 0x0, m_next = 0x3e87f57580, static
sm_classTable = 0xd2b010}}, m_x = 237, m_y = 302,
          m_leftDown = false, m_middleDown = false, m_rightDown =
true, m_controlDown = false, m_shiftDown = false,
          m_altDown = false, m_metaDown = false, m_wheelRotation = 0,
m_wheelDelta = 0, m_linesPerAction = 0,
          static ms_classInfo = {m_className = 0x7ffff6f63b68
L"wxMouseEvent", m_objectSize = 96,
            m_objectConstructor = 0x7ffff6e1ed50
<wxMouseEvent::wxCreateObject()>, m_baseInfo1 = 0x3e87f57540,
            m_baseInfo2 = 0x0, static sm_first = 0x0, m_next =
0x7ffff72445a0, static sm_classTable = 0xd2b010}}
#62 0x00007ffff671e103 in _gtk_marshal_BOOLEAN__BOXED
(closure=0x17f4030, return_value=0x7fffffffdb90,
    n_param_values=<optimized out>, param_values=0x1a3fad0,
invocation_hint=<optimized out>,
    marshal_data=<optimized out>) at gtkmarshalers.c:86
        callback = 0x7ffff6e51250
<gtk_window_button_press_callback(GtkWidget*, GdkEventButton*,
wxWindow*)>
        cc = 0x17f4030
        data1 = 0x178fd60
        data2 = 0x17f2060
        v_return = <optimized out>
        __PRETTY_FUNCTION__ = "_gtk_marshal_BOOLEAN__BOXED"
#63 0x00000035ef40e2ee in g_closure_invoke (closure=0x17f4030,
return_value=0x7fffffffdb90, n_param_values=2,
    param_values=0x1a3fad0, invocation_hint=0x7fffffffdb50) at gclosure.c:767
        marshal = <optimized out>
        marshal_data = <optimized out>
        in_marshal = <optimized out>
        __PRETTY_FUNCTION__ = "g_closure_invoke"
#64 0x00000035ef41f1a0 in signal_emit_unlocked_R (node=<optimized
out>, detail=0, instance=0x178fd60, emission_return=
    0x7fffffffdcf0, instance_and_params=0x1a3fad0) at gsignal.c:3252
        tmp = <optimized out>
        handler = 0x17f38a0
        accumulator = 0xe9a6b0
        emission = {next = 0x0, instance = 0x178fd60, ihint =
{signal_id = 33, detail = 0, run_type =
    G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4}
        class_closure = 0xe9a480
        hlist = 0x3ede60ae10
        handler_list = 0x17f38a0
        return_accu = 0x7fffffffdb90
        accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long =
0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
              v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0,
v_uint = 0, v_long = 0, v_ulong = 0, v_int64 =
    0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        signal_id = 33
        max_sequential_handler_number = 2085
        return_value_altered = 0
#65 0x00000035ef42872b in g_signal_emit_valist (instance=<optimized
out>, signal_id=<optimized out>,
    detail=<optimized out>, var_args=<optimized out>) at gsignal.c:2993
        return_value = {g_type = 20, data = {{v_int = 0, v_uint = 0,
v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 =
    0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint
= 0, v_long = 0, v_ulong = 0, v_int64 = 0,
              v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        error = 0x0
        rtype = 20
        static_scope = 0
        instance_and_params = 0x1a3fad0
        signal_return_type = 20
        param_values = 0x1a3fae8
        node = <optimized out>
        i = <optimized out>
        n_params = 1
        __PRETTY_FUNCTION__ = "g_signal_emit_valist"
#66 0x00000035ef428b12 in g_signal_emit (instance=<optimized out>,
signal_id=<optimized out>, detail=<optimized out>)
    at gsignal.c:3040
        var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area
= 0x7fffffffde30, reg_save_area =
    0x7fffffffdd70}}
#67 0x00007ffff68533e1 in gtk_widget_event_internal (widget=0x178fd60
[GtkPizza], event=0xfbe4a0) at gtkwidget.c:4995
        signal_num = <optimized out>
        return_val = 0
#68 0x00007ffff671bc63 in IA__gtk_propagate_event (widget=0x178fd60
[GtkPizza], event=0xfbe4a0) at gtkmain.c:2489
        tmp = <optimized out>
        handled_event = <optimized out>
        __PRETTY_FUNCTION__ = "IA__gtk_propagate_event"
#69 0x00007ffff671bfcb in IA__gtk_main_do_event (event=0xfbe4a0) at
gtkmain.c:1684
        event_widget = <optimized out>
        grab_widget = 0x178fd60 [GtkPizza]
        window_group = <optimized out>
        rewritten_event = <optimized out>
        tmp_list = <optimized out>
        __PRETTY_FUNCTION__ = "IA__gtk_main_do_event"
#70 0x00007ffff63720cc in gdk_event_dispatch (source=<optimized out>,
callback=<optimized out>,
    user_data=<optimized out>) at gdkevents-x11.c:2377
        display = <optimized out>
        event = 0xfbe4a0
#71 0x00000035eec42b6d in g_main_dispatch (context=0xdd34a0) at gmain.c:2440
        dispatch = 0x7ffff6372080 <gdk_event_dispatch>
        was_in_call = 0
        user_data = 0x0
        callback = 0
        cb_funcs = 0x0
        cb_data = 0x0
        current_source_link = {data = 0xe15f60, next = 0x0}
        need_destroy = <optimized out>
        source = 0xe15f60
        current = 0x1028bb0
        i = <optimized out>
#72 g_main_context_dispatch (context=0xdd34a0) at gmain.c:3013
No locals.
#73 0x00000035eec43348 in g_main_context_iterate (context=0xdd34a0,
block=<optimized out>, dispatch=1,
    self=<optimized out>) at gmain.c:3091
        max_priority = 2147483647
        timeout = 500
        some_ready = 1
        nfds = 2
        allocated_nfds = <optimized out>
        fds = <optimized out>
        __PRETTY_FUNCTION__ = "g_main_context_iterate"
#74 0x00000035eec4398d in g_main_loop_run (loop=0xfe2810) at gmain.c:3299
        self = 0xda8e90
        __PRETTY_FUNCTION__ = "g_main_loop_run"
#75 0x00007ffff671aff7 in IA__gtk_main () at gtkmain.c:1256
        tmp_list = <optimized out>
        functions = 0x0
        init = <optimized out>
        loop = 0xfe2810
#76 0x00007ffff6e3e128 in wxEventLoop::Run (this=0xfb37e0) at
src/gtk/evtloop.cpp:76
        activate = {m_evtLoopOld = 0x0}
        exitcode = <optimized out>
#77 0x00007ffff6eb559b in wxAppBase::MainLoop (this=0xdd0cd0) at
src/common/appcmn.cpp:312
        mainLoop = {<wxEventLoopPtr> = {m_ptr = 0xfb37e0}, m_pp =
0xdd0d48, m_pOld = 0x0}
#78 0x0000003e87c96b1b in wxEntry (argc=<optimized out>,
argv=<optimized out>) at src/common/init.cpp:448
        initializer = <optimized out>
#79 0x000000000043dd02 in main ()
No symbol table info available.


2011/4/11 Guillaume Lelarge <guillaume(at)lelarge(dot)info>:
> Add the support for per-column collation feature
>
> of PostgreSQL 9.1.
>
> Branch
> ------
> master
>
> Details
> -------
> http://git.postgresql.org/gitweb?p=pgadmin3.git;a=commitdiff;h=2d798ddf2ce22b5e4ac20096d81f8cb902310bd4
>
> Modified Files
> --------------
> CHANGELOG                               |    2 +
> pgadmin/dlg/dlgCollation.cpp            |  183 ++++++++++++++++++++++++
> pgadmin/dlg/dlgColumn.cpp               |   41 +++++-
> pgadmin/dlg/dlgDomain.cpp               |   30 ++++
> pgadmin/dlg/dlgIndex.cpp                |   41 +++++-
> pgadmin/dlg/dlgType.cpp                 |   89 ++++++++++--
> pgadmin/dlg/module.mk                   |    1 +
> pgadmin/frm/frmOptions.cpp              |    1 +
> pgadmin/include/dlg/dlgCollation.h      |   42 ++++++
> pgadmin/include/dlg/dlgType.h           |    2 +-
> pgadmin/include/dlg/module.mk           |    1 +
> pgadmin/include/images/collation-sm.png |  Bin 0 -> 233 bytes
> pgadmin/include/images/collation.png    |  Bin 0 -> 233 bytes
> pgadmin/include/images/collations.png   |  Bin 0 -> 303 bytes
> pgadmin/include/images/module.mk        |    3 +
> pgadmin/include/schema/module.mk        |    1 +
> pgadmin/include/schema/pgCollation.h    |   87 +++++++++++
> pgadmin/include/schema/pgColumn.h       |   10 ++-
> pgadmin/include/schema/pgDomain.h       |   28 ++++-
> pgadmin/include/schema/pgIndex.h        |    7 +-
> pgadmin/include/schema/pgType.h         |   16 ++-
> pgadmin/schema/module.mk                |    1 +
> pgadmin/schema/pgCollation.cpp          |  238 +++++++++++++++++++++++++++++++
> pgadmin/schema/pgColumn.cpp             |   34 ++++-
> pgadmin/schema/pgDomain.cpp             |   42 ++++--
> pgadmin/schema/pgIndex.cpp              |   37 ++++--
> pgadmin/schema/pgObject.cpp             |    5 +
> pgadmin/schema/pgSchema.cpp             |    5 +
> pgadmin/schema/pgType.cpp               |   47 +++++--
> pgadmin/ui/dlgCollation.xrc             |  207 +++++++++++++++++++++++++++
> pgadmin/ui/dlgColumn.xrc                |   15 ++
> pgadmin/ui/dlgDomain.xrc                |   19 +++-
> pgadmin/ui/dlgIndex.xrc                 |   15 ++
> pgadmin/ui/dlgType.xrc                  |   31 ++++-
> pgadmin/ui/module.mk                    |    1 +
> 35 files changed, 1215 insertions(+), 67 deletions(-)
>
>
> --
> Sent via pgadmin-hackers mailing list (pgadmin-hackers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgadmin-hackers
>



-- 
All bugs reserved

In response to

Responses

pgadmin-hackers by date

Next:From: Guillaume LelargeDate: 2011-04-26 20:06:24
Subject: Re: pgAdmin III commit: Add the support for per-column collation feature
Previous:From: Guillaume LelargeDate: 2011-04-26 09:48:39
Subject: Re: Reconnection problem.

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group