https://bugs.documentfoundation.org/show_bug.cgi?id=88601
Lionel Elie Mamane <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- URL|https://mariadb.atlassian.n | |et/browse/CONJ-133 | See Also| |https://mariadb.atlassian.n | |et/browse/CONJ-133 Whiteboard| |summaryInComment9 EasyHack | |DifficultyInteresting | |SkillJava SkillSQL SkillCpp --- Comment #9 from Lionel Elie Mamane <[email protected]> --- Now that I look again at it, it requires some reworking of LibreOffice internals. Definitely not an introductory EasyHack, but can be done with time and good way to discover LibreOffice internals. I take patches. The callchain is: #0 dbtools::setObjectWithInfo (_xParams=uno::Reference to (dbaccess::OPreparedStatement *) 0x3a1ab20, parameterIndex=parameterIndex@entry=1, _rValue=..., sqlType=sqlType@entry=-6, scale=scale@entry=0) at connectivity/source/commontools/dbtools.cxx:1900 #1 0x00007f41123b4e71 in dbaccess::OCacheSet::setParameter (nPos=nPos@entry=1, _xParameter=uno::Reference to (dbaccess::OPreparedStatement *) 0x3a1ab20, _rValue=..., _nType=_nType@entry=-6, _nScale=_nScale@entry=0) at dbaccess/source/core/api/CacheSet.cxx:382 #2 0x00007f41123f41cf in dbaccess::OKeySet::executeUpdate (this=this@entry=0x3616220, _rInsertRow=rtl::Reference to 0x3a170c0, _rOriginalRow=rtl::Reference to 0x3a5a910, i_sSQL="UPDATE `fdo85190`.`action_type` SET `action_type_id` = ? WHERE `action_type_id` = ?", i_sTableName="", _aIndexColumnPositions=std::__debug::vector of length 0, capacity 0) at dbaccess/source/core/api/KeySet.cxx:682 #3 0x00007f41123f3a29 in dbaccess::OKeySet::updateRow (this=0x3616220, _rInsertRow=rtl::Reference to 0x3a170c0, _rOriginalRow=rtl::Reference to 0x3a5a910, _xTable=uno::Reference to (dbaccess::ODBTableDecorator *) 0x321d760) at dbaccess/source/core/api/KeySet.cxx:653 #4 0x00007f411249688f in dbaccess::ORowSetCache::updateRow (this=0x3971ce0, _rUpdateRow=rtl::Reference to 0x3a170c0, o_aBookmarks=std::__debug::vector of length 0, capacity 0) at dbaccess/source/core/api/RowSetCache.cxx:1358 #5 0x00007f411245b0fa in dbaccess::ORowSet::updateRow (this=0x3ae3210) at dbaccess/source/core/api/RowSet.cxx:952 Taking it bottom-up, here's what needs to happen: 1) dbtools::setObjectWithInfo needs an extra boolean parameter "isSigned". (file connectivity/source/commontools/dbtools.cxx) it uses that parameter (and not only _rValue.isSigned()) to decide what to call on _xParams 2) the same for dbaccess::OCacheSet::setParameter (file dbaccess/source/core/api/CacheSet.cxx) 3) the class/struct dbaccess::SelectColumnDescription needs an extra field "bSigned", which needs to be populated in dbaccess::getColumnPositions (file dbaccess/source/core/api/KeySet.cxx) and possibly other places This may need to add a new property "isSigned" to table and query columns, and actually change the service com::sun::star::sdbcx::Column to include that new property. This part makes this work *completely* not introductory. Contact me if you are interested in doing it. 4) dbaccess::OKeySet::executeUpdate (and possibly other places) use that new field to provide the isSigned parameter of dbaccess::OCacheSet::setParameter -- You are receiving this mail because: You are the assignee for the bug.
_______________________________________________ Libreoffice-bugs mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
