New branch 'features/base-preview' available with the following commits: commit 0c8d627ccdafea81624851a728afe9d4d9c5c05f Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jul 4 17:46:44 2012 +0200
fdo#43556 round pos&dim of report controls & sections to nearest 10^-4m Change-Id: I3fa331d246160935f4feed21de69f9ec0c2e9994 commit 1ba9360a901277edd95b13e9d82cf0865d5f5a66 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jul 3 20:17:01 2012 +0200 embedded HSQLDB: reclaim space occupied by deleted rows Disadvantage is that saving/closing the file may take a significantly longer time Change-Id: I1cc35c34b49e60d73e8d341549c5a3c5ef314b6d commit 00fe4eaa97aec7d1692cfded5736a4ca4a6057f8 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jul 2 19:33:38 2012 +0200 LEM notes Change-Id: I16939e5d6e1f7c0a83f7f2b2dbc9a5b397b45c36 commit 279def3335a980c97d10268f21ffdc8331a202f2 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jul 2 14:48:03 2012 +0200 janitorial: remove unused xParamsAsNames variable Change-Id: Ic4fe24faf75d38a8123a8f0e8304c054760bad85 commit 0724e827a19c983c808c532b0192182b07b8812f Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jun 6 14:28:50 2012 +0200 legacy reports: unify treatment of query and table In *both* cases, the value of hidden control "Sorting" (if non-empty) decides the columns being sorted on. Change-Id: I7f4b50c3af8c12e48e5dedd36b5877ad7a9e1b66 commit 2920e565d7536dd69b9467b01ce137a9c43b8709 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jun 6 14:26:58 2012 +0200 legacy report wizard: when source is table, save name in QueryName Change-Id: Ie0bdbed9578b95f7fccc3d9ff6d9c8b5b91ac0ab commit 3224347242f9fed108074c72c505f85d6d56c86c Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jun 6 14:25:51 2012 +0200 SQLQueryComposer allow setQueryCommand with prependSorting instead of append Change-Id: Ia06794537ea4d0f6f069c83709792ebbcc084804 commit edd30501ec149cf7142ccaa69403331cbf85842e Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jun 6 14:24:54 2012 +0200 db.SQLQueryComposer allow prependSortingCriteria call with addAliasFieldNames Change-Id: I05889ccac213743a55c302bd7249b30f817c0428 commit 2253d240ec324a120ae5177c7d2d07278a63d1cc Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jun 6 14:23:50 2012 +0200 cleanup Change-Id: I1ce4279d434ffa58328e17863b2e68af1e813a99 commit 5e95e65f6d9a091d585f3f9d8961ee81f66ac07b Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jun 6 14:23:30 2012 +0200 untabify Change-Id: I984c84534cb4c6cda8bd73a43d79ec8e49afcdeb commit 9f4f8f470edaa737b4c0b33b4169770770d6d658 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jun 4 17:54:30 2012 +0200 i#102625 avoid fetching same row twice in different queries We do a "SELECT * FROM table" just to fetch the primary key columns; so reuse the same XResultSet to fetch all columns. Else, we immediately issue a "SELECT * FROM table WHERE primary_key=current_value" to read the other columns, which is wasteful and particularly silly. Commit 1ae17f5b03cc14844fb600ca3573a96deb37ab3b already tried to do that, but was essentially reverted piecewise because it caused fdo#47520, fdo#48345, fdo#50372. Commit c08067d6da94743d53217cbc26cffae00a22dc3a thought it did that, but actually reverted commit 1ae17f5b03cc14844fb600ca3573a96deb37ab3b. This implementation fetches the whole current row and caches it in memory; only one row is cached: when the current row changes, the cache contains the new current row. This could be problematic (wrt to memory consumption) if the current row is big (e.g. with BLOBs) and nobody is interested in the data anyway (as would often be the case with BLOBs). Note that because of our "SELECT *", the driver most probably has it in memory already anyway, so we don't make the situation that much worse. This could be incrementally improved with a heuristic of not preemptively caching binary data (and also not LONGVARCHAR / TEXT / MEMO / ...); a getFOO on these columns would issue a specific "SELECT column FROM table WHERE primary_key=current_value" each time. The *real* complete fix to all these issues would be to not do "SELECT *" at all. Use "SELECT pkey_col1, pkey_col2, ..." when we are only interested in the key columns. As to data, somehow figure out which columns were ar interested in and "SELECT" only these (and maybe only those with "small datatype"?). Interesting columns could be determined by our caller (creator) as an argument to our constructor, or some heuristic (no binary data, no "big" unbound data). Also be extra smart and use *(m_aKeyIter) when getFOO is called on a column included in it (and don't include it in any subsequent SELECT). However, there are several pitfalls. One is buggy drivers that give use column names of columns that we cannot fetch :-| Using "SELECT *" works around that because the driver there *obviously* gives us only fetchable columns in the result. Another one is the very restrictive nature of some database access technologies. Take for example ODBC: - Data can be fetched only *once* (with the SQLGetData interface; bound columns offer a way around that, but that's viable only for constant-length data, not variable-length data). This could be addressed by an intelligent & lazy cache. - Data must be fetched in increasing order of column number (again, this is about SQLGetData). This is a harder issue. The current solution has the nice advantage of completely isolating the rest of LibO from these restrictions. I don't currently see how to cleanly avoid (potentially unnecessarily) caching column 4 if we are asked for column 3 then column 5, just in case we are asked for column 4 later on, unless we issue a specific "SELECT column4" later. But the latter would be quite expensive in terms of app-to-database roudtripe times :-( and thus creates another performance issue. Change-Id: I999b3f8f0b8a215acb390ffefc839235346e8353 commit 41da4365316e37b9854df58b6d24d5843b2dcc61 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jun 4 17:41:33 2012 +0200 Need to refresh row after moving to bookmark! Change-Id: Ia8d12d02829087309e248506a7d3b0f94b5a425e commit 7b10d3b041d4a6c2ac10da94b431ceb9628705dc Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jun 4 17:40:30 2012 +0200 Cleanup m_xSet in destructor Change-Id: I3d7023fcb1857da1ef107a8af0d373b9ca464f03 commit 3cef83e0d2abff77700b3dfb7903905b9a436f21 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jun 4 17:35:52 2012 +0200 typos in comments Change-Id: I1dbb1990033602d7909ecdee72b8b699cce44cab commit 012cad6b598550cfec940c7f8b2ffe3e205cbc16 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jun 4 17:31:25 2012 +0200 Remove wrong optimisation fixup of d4ae29a37873843c20fe7d5f5f071f8fb201fed9 after the call to m_pCacheSet->absolute_checked, the data *is* used, so we cannot anymore exempt m_pCacheSet from giving correct data. Change-Id: I7d3644ca08ce43cb030a80984605a1f8a8a64211 commit ef2eeef35e8bfbe927d159ccfd035a91e1f1e46d Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Fri Jun 1 15:42:27 2012 +0200 OKeySet::refreshRow: Invalidate m_xRow/m_xSet when BeforeFirst or AfterLast Change-Id: I0f48c099eddc077b2a89e3b7fab66b5da55b57c8 commit 1cf99a7d8cdca67363ed18b1c924cd56ca49ff8e Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Fri Jun 1 14:52:46 2012 +0200 organise & comment code better Continuation of commits to fix fdo#48345 Change-Id: Ie28f6a55cd8715a7180f5d88fe23c5b310440744 commit 702170dc746093c7ded5f2b012499c192d0bf733 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Fri Jun 1 14:49:02 2012 +0200 Update comments Change-Id: I7e3f09d61cb35165000a35c8d3c3f2d284cf164e commit fb3d3500d5af1a889b9cf79113853d702994af24 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Fri Jun 1 11:38:59 2012 +0200 dbaccess::OKeySet::wasNull(): OSL_ENSURE we have a m_xRow Change-Id: I087d2893d853f431d27c592ba26bdc16e0a9cb84 commit 0e104348ec4d284f10681aa16b829f1b8f066e53 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Apr 4 16:00:52 2012 +0200 ORowSetCache::moveWindow m_nEndPos == m_nStartPos == 0 is OK commit 4cf02f9bfaaf43762822e782798899feded31b20 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Feb 27 13:47:24 2012 +0100 fdo#46675: fixup commit 83aa1a3fc97a4f6c5f70bf958157c2c6f8c1502f Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Feb 27 13:10:40 2012 +0100 fdo#46675: expand group memberships in get*Privileges commit a8ac9bb1bc34948cc45884bf42ef966de5a937b5 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 16 09:29:54 2012 +0100 correct indentation commit 5a30b6cdb197de1e56117aacb0b9b4ad6c576727 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 16 09:11:08 2012 +0100 typo & copy/paste error in error message commit 490cd8d75f9802ab44caa849f3ee0642bd215abe Author: Kate Goss <katherine.g...@gmail.com> Date: Mon Feb 13 21:53:08 2012 +0000 Remove unused code from connectivity::odbc::OPreparedStatement Remove methods getDataBuf(int), getParamLength(int), getPrecision(int). commit 45edd53a693f411ca83f46a6a2a98bfc84b83f98 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Feb 14 19:41:08 2012 +0100 ODBC: align *all* the handling of SQLULEN properties with maximal ODBC size commit bdd824e08eb3055392dee0562f27babeeb269987 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Feb 14 19:39:01 2012 +0100 comphelper: add getINT64 commit 1c14fc9e45e07881d0035a524a14d8e90c76ab24 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Feb 14 18:34:52 2012 +0100 improve OTools::binParameter/bindData interaction Don't duplicate the decision point for "data at execution or copied data" commit 418032b034effc00a1aa69f3a8cfd622b9aaa602 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Feb 14 09:49:19 2012 +0100 new[] already allocates each element of the array And calls the default constructor, naturally. commit d7886e49298a84a7cbe31436480088c296494612 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Feb 14 06:27:51 2012 +0100 odbc getTableTypes: ask the driver instead of guessing commit b6b09a937d4b3f21088b02f04b24d8e6a5e535bf Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Feb 13 17:53:19 2012 +0100 ResMgr::TestStack more robust commit 261a5174028a4a3e09dd0f928bdd784b9b16e127 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 9 13:06:27 2012 +0100 reorganise code for better readability No behaviour change intended. However, if behaviour changed, probably the *old* behaviour is buggy, not new one. commit 8c6d8b74ae22abc2d03eb1dbc51fc36bbf947fd3 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 9 13:04:34 2012 +0100 typo in comment commit 610cfc6c8bdea5cfe4d664f2cfd18c79ab9e68ff Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 9 13:03:24 2012 +0100 ORowSetCache::moveWindow: yet another off-by-one error commit 6dd14573068bdfd9b20773099a301021641e847c Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Feb 8 19:08:20 2012 +0100 ORowSetCache::moveWindow fix variable inversion; fixes subsequentcheck commit 48a6c7497808c6cf46b020641770e76bdd7cd1c9 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Feb 8 12:41:54 2012 +0100 ORowSetCache: handle case total data < m_nFetchSize As a drive-by: fillMatrix update m_nEndSize commit 9911e889b0ce0c59a74801edade35bc8246401da Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 31 11:39:47 2012 +0100 pgsql: simpler / safer check for system column commit f4683cdab971a12b499085fbb4ff5889e1c9a44a Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Feb 1 18:28:59 2012 +0100 pgsql: implement getColumnPrivileges, generate statement only once commit 3da9cb85102fb1551a5e0b02b0f9a5331f9826ee Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Feb 1 18:03:40 2012 +0100 pgsql: clean comments commit f690fc8a1c1f2d80c476fb85c3ac44a2fb1878c7 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 31 22:53:31 2012 +0100 ORowSetCache: keep m_nEndPos better up-to-date commit 22c3fb561d9ceb754d4e88e9ad70d3698c86e971 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 24 22:20:31 2012 +0100 make OTools::getValue insanely safe, factorise get{Int,Long,Byte,...} commit 09f62cb5e691176a0b83fd974173fd151b4ec083 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jan 23 10:19:55 2012 +0100 ORowSetCache::fillMatrix(): fix case m_nFetchsize > table size When lowering m_nStartPos, do not duplicate rows above its old value commit b28b8029a75e2a4fbb46784600ffaef61bb11a34 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Sun Jan 22 01:35:58 2012 +0100 ORowSetCache::fillMatrix(): correct off-by-one error Symptom: segfault. Thanks to Julien Nabet for precise pointer to problematic code. commit 4efcba65f4fbec460701326aca621173c35d8371 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Jan 19 20:20:06 2012 +0100 ORowSetCache: overhaul internals commit 48550c82459846057e06043ab965881c08a127bb Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Jan 19 17:54:10 2012 +0100 janitorial: don't rely on detail of current OSL_ENSURE implementation As in: that the compiler won't see the variables in the condition when OSL_DEBUG_LEVEL==0 commit 408e75244edd4c628ab7c567d1efd30c6a8496a6 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Jan 19 17:49:32 2012 +0100 column position 0 is perfectly valid On the other hand, column position 1 is not guaranteed to exist. nCurPos will be BROWSER_INVALID_ID, not 0, in case of error in setting it commit fb9b154196a6b454f9a5594b329eb52d83861e97 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jan 18 13:51:14 2012 +0100 Oups... where is my brown paper bag? commit 47c73d99b30cd656043bc53111515a203fde7c81 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jan 18 13:10:12 2012 +0100 OKeySet: tryRefetch and refreshRow share most of their code commit f2c599deeda775be008e0366b08ea09f8d7431c0 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jan 18 12:31:06 2012 +0100 janitorial: typo in comments commit 5dbf0eac122f933f78aca9db8a26a5eb4d298349 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 17 13:34:04 2012 +0100 DbGridControl::SeekCursor: show exception when seek fails (and debug build) commit 1a8a6a6b4316a6fc4cf670cd2dc3e7b224dbb067 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 17 09:27:40 2012 +0100 janitorial: typo in private member name commit 70aaa7c8bd6db2a97767d35b099566fb13f2feb8 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 17 09:26:41 2012 +0100 janitorial: const iterator where may be, indentation commit c57b6d4dedb89911112fbd054bdbba0d92db8fff Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 17 15:21:41 2012 +0100 Also teach "foo IS [NOT] bar" to our SQL parser (when bar is not NULL) Syntax supported by at least SQLite. commit 361ce1d71e4594d14fb7fd674da3db128b155755 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 17 09:03:17 2012 +0100 fdo#44813: teach "IS (NOT) DISTINCT FROM" to our SQL parser commit 9f23991f9ae2d0c30e6642d852b6c1ad74c391d1 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Sun Nov 20 17:37:39 2011 +0100 LEM TODO note commit ebabd6b0873e5dc3d159e09249e855912ea3b9e7 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Nov 23 21:34:18 2011 +0100 maximal debugging information _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits