Bug 314765 - Complex WHERE conditions such as (x=a AND y=b) not supported in Query Designer
Summary: Complex WHERE conditions such as (x=a AND y=b) not supported in Query Designer
Status: ASSIGNED
Alias: None
Product: KEXI
Classification: Applications
Component: Queries (show other bugs)
Version: 2.5.3
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Jarosław Staniek
URL:
Keywords: efficiency-and-performance
Depends on:
Blocks:
 
Reported: 2013-02-09 15:21 UTC by robert leleu
Modified: 2021-08-23 13:23 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
data base required to check my comment (1.35 MB, application/octet-stream)
2013-02-11 14:50 UTC, robert leleu
Details

Note You need to log in before you can comment on or make changes to this bug.
Description robert leleu 2013-02-09 15:21:38 UTC
Application: kexi (2.5.3 (Calligra 2.5.3))
KDE Platform Version: 4.9.4
Qt Version: 4.8.3
Operating System: Linux 3.5.0-17-generic x86_64
Distribution: Linux Mint 14 Nadia

-- Information about the crash:
I edited a query under SQL to obtain
…… where (id=1029 or id=1028)

and the result was OK

Click to go back to visual editing the links between the tables have disappeared and the «where (id=1029 or id=1028)» in the SQL formula also
Click to close crashes

However opening again Kexi the concerned query, first displays the correct result, then if going back to edit (without editing action) then back to data it hangs, and click to close crash

The crash can be reproduced every time.

-- Backtrace:
Application: Kexi (kexi), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fb754606780 (LWP 9550))]

Thread 3 (Thread 0x7fb71f7a6700 (LWP 9556)):
#0  0x00007fb7525428bd in read () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007fb74f16f15f in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fb74f132914 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fb74f132d22 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fb74f1331e2 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fb7418924a6 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#6  0x00007fb74f156645 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007fb74f602e9a in start_thread (arg=0x7fb71f7a6700) at pthread_create.c:308
#8  0x00007fb75254fcbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fb71e24a700 (LWP 9567)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb735618cd7 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#2  0x00007fb735618d09 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#3  0x00007fb74f602e9a in start_thread (arg=0x7fb71e24a700) at pthread_create.c:308
#4  0x00007fb75254fcbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fb754606780 (LWP 9550)):
[KCrash Handler]
#6  KexiTableViewData::preloadAllRows (this=0x1cbe7f0) at /build/buildd/calligra-2.5.3/kexi/widget/dataviewcommon/kexitableviewdata.cpp:812
#7  0x00007fb728a75c97 in KexiDataTableView::setData (this=0x1cb4ab0, cursor=<optimized out>) at /build/buildd/calligra-2.5.3/kexi/widget/tableview/kexidatatableview.cpp:115
#8  0x00007fb728f14cf0 in KexiQueryView::executeQuery (this=this@entry=0x20600a0, query=0x1ec9fd0) at /build/buildd/calligra-2.5.3/kexi/plugins/queries/kexiqueryview.cpp:93
#9  0x00007fb728f14eb1 in KexiQueryView::afterSwitchFrom (this=0x20600a0, mode=<optimized out>) at /build/buildd/calligra-2.5.3/kexi/plugins/queries/kexiqueryview.cpp:126
#10 0x00007fb753e8d3ea in KexiWindow::switchToViewMode (this=0x1802000, newViewMode=Kexi::DataViewMode, staticObjectArgs=staticObjectArgs@entry=0x0, proposeOpeningInTextViewModeBecauseOfProblems=@0x7fff20d103df: false) at /build/buildd/calligra-2.5.3/kexi/core/KexiWindow.cpp:664
#11 0x00007fb753e8e268 in KexiWindow::switchToViewMode (this=<optimized out>, newViewMode=<optimized out>) at /build/buildd/calligra-2.5.3/kexi/core/KexiWindow.cpp:740
#12 0x00007fb75413fbfd in KexiMainWindow::switchToViewMode (this=0x14450f0, window=..., viewMode=Kexi::DataViewMode) at /build/buildd/calligra-2.5.3/kexi/main/KexiMainWindow.cpp:2886
#13 0x00007fb753e8cec6 in KexiWindow::switchToViewModeInternal (this=0x1802000, newViewMode=Kexi::DataViewMode) at /build/buildd/calligra-2.5.3/kexi/core/KexiWindow.cpp:730
#14 0x00007fb753e91d29 in KexiView::slotSwitchToViewModeInternal (this=0x22a9f00, mode=Kexi::DataViewMode) at /build/buildd/calligra-2.5.3/kexi/core/KexiView.cpp:643
#15 0x00007fb7529a8f5f in QMetaObject::activate (sender=0x2061720, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff20d10610) at kernel/qobject.cpp:3547
#16 0x00007fb7539df462 in QAbstractButton::toggled (this=<optimized out>, _t1=true) at .moc/release-shared/moc_qabstractbutton.cpp:227
#17 0x00007fb75373387e in QAbstractButton::setChecked (this=0x2061720, checked=<optimized out>) at widgets/qabstractbutton.cpp:768
#18 0x00007fb75373351f in QAbstractButtonPrivate::click (this=this@entry=0x17ea910) at widgets/qabstractbutton.cpp:530
#19 0x00007fb7537337cc in QAbstractButton::mouseReleaseEvent (this=0x2061720, e=0x7fff20d10ec0) at widgets/qabstractbutton.cpp:1123
#20 0x00007fb7537ed99a in QToolButton::mouseReleaseEvent (this=<optimized out>, e=<optimized out>) at widgets/qtoolbutton.cpp:718
#21 0x00007fb7533c4850 in QWidget::event (this=0x2061720, event=0x7fff20d10ec0) at kernel/qwidget.cpp:8371
#22 0x00007fb753374e9c in QApplicationPrivate::notify_helper (this=this@entry=0x1153db0, receiver=receiver@entry=0x2061720, e=e@entry=0x7fff20d10ec0) at kernel/qapplication.cpp:4562
#23 0x00007fb753379b6b in QApplication::notify (this=<optimized out>, receiver=0x2061720, e=0x7fff20d10ec0) at kernel/qapplication.cpp:4105
#24 0x00007fb7504901d6 in KApplication::notify (this=0x113f790, receiver=0x2061720, event=0x7fff20d10ec0) at ../../kdeui/kernel/kapplication.cpp:311
#25 0x00007fb75299356e in QCoreApplication::notifyInternal (this=0x113f790, receiver=0x2061720, event=0x7fff20d10ec0) at kernel/qcoreapplication.cpp:915
#26 0x00007fb753375cd3 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#27 QApplicationPrivate::sendMouseEvent (receiver=0x2061720, event=0x7fff20d10ec0, alienWidget=0x2061720, nativeWidget=0x1b1d500, buttonDown=0x7fb753e51308 <qt_button_down>, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3173
#28 0x00007fb7533f3554 in QETWidget::translateMouseEvent (this=this@entry=0x1b1d500, event=event@entry=0x7fff20d11640) at kernel/qapplication_x11.cpp:4622
#29 0x00007fb7533f244f in QApplication::x11ProcessEvent (this=0x113f790, event=0x7fff20d11640) at kernel/qapplication_x11.cpp:3737
#30 0x00007fb753419fa2 in x11EventSourceDispatch (s=0x11545f0, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#31 0x00007fb74f132ab5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fb74f132de8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007fb74f132ea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007fb7529c1bf6 in QEventDispatcherGlib::processEvents (this=0x10d4ad0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#35 0x00007fb753419c1e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#36 0x00007fb7529922bf in QEventLoop::processEvents (this=this@entry=0x7fff20d11a10, flags=...) at kernel/qeventloop.cpp:149
#37 0x00007fb752992548 in QEventLoop::exec (this=0x7fff20d11a10, flags=...) at kernel/qeventloop.cpp:204
#38 0x00007fb752997708 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#39 0x0000000000400891 in main (argc=<optimized out>, argv=0x7fff20d11b48) at /build/buildd/calligra-2.5.3/kexi/main.cpp:36

Reported using DrKonqi
Comment 1 Jarosław Staniek 2013-02-10 00:00:06 UTC
Dear Robert, thanks for reporting. Should you be able to create a small database exposing the problem, please attach it to this bug to help me fix the bug faster.
Comment 2 robert leleu 2013-02-10 15:03:30 UTC
I did create from scratch a small base, and could not reproduce.

Should I try to prepare the small base from my actual base by 
1/ suppressing tables not involved
2/ having only a few lines in each table

?
thanks
Comment 3 Jarosław Staniek 2013-02-11 00:01:37 UTC
Robert, yes please if you can, thanks.
Comment 4 robert leleu 2013-02-11 14:50:14 UTC
Created attachment 77137 [details]
data base required to check my comment

the attached file is a kexi database, a type not in the list
Comment 5 robert leleu 2013-02-11 14:52:28 UTC
and here is the associated comment

take a copy of the attached file «adressesreduit.kexi» before trial
edit query liensidentite you see :(links between same name fields ; criteria 1029 into field liens.licleunik)
switch to data liensidentite it's OK (12 rows)
edit SQL to AND (liens.licleunik = 1029 or liens.licleunik = 1028)
save
switch to data, it's OK (17 rows)
switch to edit
there is no links between the tables
open SQL edit 
«AND (liens.licleunik = 1029 or liens.licleunik = 1028)» is no longer present
switch to data
hangs
close query (while hanging), crashes
Comment 6 Jarosław Staniek 2013-02-11 23:40:04 UTC
Thanks for the quality feedback Robert, this really helps. I'll get back to you ASAP.
Comment 7 Jarosław Staniek 2016-01-23 20:14:03 UTC
Updated title to a real reason:

Complex WHERE conditions such as (x=a AND y=b) not supported in Query Designer

Fixing this is not too easy for the minor version 2.9.x. Rather in 3.x. Current workaround is to use the SQL view for this kind of queries.
Comment 8 Jarosław Staniek 2016-01-23 20:15:56 UTC
However, for 2.9.11 there's no crash, so changing severity to Normal.
Comment 9 Justin Zobel 2021-03-09 23:43:46 UTC
Thank you for the bug report.

As this report hasn't seen any changes in 5 years or more, we ask if you can please confirm that the issue still persists.

If this bug is no longer persisting or relevant please change the status to resolved.
Comment 10 Jarosław Staniek 2021-04-01 23:58:40 UTC
@Justin

This bug was confirmed and even assigned. I'd like to be sure we do not click Resolved and loosing all the investigations documented here.