New branch 'features/base-preview' available with the following commits: commit e834a95359738961037b7f747f55ac60a0b9e922 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jun 18 16:28:14 2012 +0200
fdo#43967 legacy report designer wizard formats dates improperly 1) Set FormatsSupplier property only if underlying object has one. Else, exception is thrown and the format is not set 2) getTyperelatedFieldData uses the format keys, so initialize them before call, not after. Change-Id: I68c4c96a9da9a6afdc3ab8964e973588f53ee814 commit 56a6ac54c5b657f0625a9e6640a35d3148b332e1 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 262f4bdf977badd1c6a898adbf4ee63b351f438f 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 88a941120c33ec085082e7554c5d5513d902522a 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 a1d9f7037831b00c3f0325b89a97ab608e78704e 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 cd86bca6b855f32abb5267997c3f6fe704efa2fe Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jun 6 14:23:50 2012 +0200 cleanup Change-Id: I1ce4279d434ffa58328e17863b2e68af1e813a99 commit 065dc0e21a5e37a7b9ddfd2dcf110f9eaf1222e7 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jun 6 14:23:30 2012 +0200 untabify Change-Id: I984c84534cb4c6cda8bd73a43d79ec8e49afcdeb commit 93f3a2ec2a9d1bf909559d06cf69a70fb2542e44 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 21f48cc32b9e5edbb4fefdcd6a0601adb5fddf43 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 fcd084bf65bf9cfa82bcb6427bf7e1e0bfceb7db 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 18731f67ee63df6c231de9379508f0b3150f7a9d Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jun 4 17:35:52 2012 +0200 typos in comments Change-Id: I1dbb1990033602d7909ecdee72b8b699cce44cab commit 8436b050997327d694d60c5d84a6d26e5a95cbbd 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 741037fbb9b74f49db841c93df82f59ca3c9e739 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 5fb01b8e80ccbb88b2479179fe78847f71dc4df7 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 1076fdae6b0dc225f868a57b87e96b8a9371a647 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Fri Jun 1 14:49:02 2012 +0200 Update comments Change-Id: I7e3f09d61cb35165000a35c8d3c3f2d284cf164e commit 3b3f7a50104adad5e24b2be11077e4e6e595023c 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 a807d33c072bcc78ecc91b0bc5eb5186044c3f39 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 dac1f6845ac4f6bb009f96188a27c157ea42af7a Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Feb 27 13:47:24 2012 +0100 fdo#46675: fixup commit 5e1a27d3189321c3a0a080ace06eca291d973cb2 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 546e539de795d2b90bbd06f651dfcaed916217f7 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 16 09:29:54 2012 +0100 correct indentation commit e323470d1c2a591e29f7e0cf4bf9dc6763449f10 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 16 09:11:08 2012 +0100 typo & copy/paste error in error message commit 66772488bd22f514679ffa6e310017f24809cdd2 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 4385f327245a8b729e760574710bc1b29ac1e6ad 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 8b192bf4c8c4f4acd1e1bb0db327599e7def0dc1 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Feb 14 19:39:01 2012 +0100 comphelper: add getINT64 commit 969eef7dab432eb66dab661c8546986d52529001 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 25fc4ad4cf6ccd00a71ea37d19b14f2a69963a83 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 8b5404d31feed8e1ff9a7724848aa51b516e59e2 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 4aaf36200cbbc2c2b869ecff5b8c07b8ef838e5c Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Feb 13 17:53:19 2012 +0100 ResMgr::TestStack more robust commit 5f6029c1919b9948206b29578b3f4fedb7bf2da1 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 7053e2e9a5b7d6b822ff2595347be27fa53d3216 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 9 13:04:34 2012 +0100 typo in comment commit 9d0c10f6800f8144aca92bd2b3de3cd9ff55dc75 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 aff64737094d2525df038b8ffb5430b0a2d4a2ee Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Feb 8 19:08:20 2012 +0100 ORowSetCache::moveWindow fix variable inversion; fixes subsequentcheck commit c835d1136097a3773658ff1a7a4ae4f3ae1f9be8 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 88dcce5ffb8311c168ad31e3b1493d85e81ac03e Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 31 11:39:47 2012 +0100 pgsql: simpler / safer check for system column commit c9814c41c75c8d0f5d91df4ec3882ac7df057e7d Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Feb 1 18:28:59 2012 +0100 pgsql: implement getColumnPrivileges, generate statement only once commit fb0de79aa8094e8cee09f4f3316322304c937da4 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Feb 1 18:03:40 2012 +0100 pgsql: clean comments commit 58c55915609b5cbcb9ab29fc266548e221ab36f7 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 eee1a9990e6e2816766303faebc38ca44f23a531 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 a697a222bfe6b6de2de185f297bf29111434a78d 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 aa08d003a3da854b76b7c55a59c7197f5f84782b 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 0e523d6f472a55ad2eebe09e5df1c6bddb8370f7 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Jan 19 20:20:06 2012 +0100 ORowSetCache: overhaul internals commit 94582215a6743a5297362e771c9a9226800a4ad8 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 55c5059d78cda2874eeaeb3033c09bc55eeb2616 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 001a0b5d734a0c9789b1c564743c784e175b438b Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jan 18 13:51:14 2012 +0100 Oups... where is my brown paper bag? commit a279bea42b0d3856e03e37b991ad1dbf3546b500 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 420d51b060fa5e62c57a3a30e0cfb2f947cb6dd5 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jan 18 12:31:06 2012 +0100 janitorial: typo in comments commit 8595da1a8478e53fccf7c7ce55bee3d0d096d14e 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 5dc18f6363faf309d0a8ae1767bd3651ddd2718c Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 17 09:27:40 2012 +0100 janitorial: typo in private member name commit 2df6d36af051ff4080d622f9ea44e369a274d6da Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 17 09:26:41 2012 +0100 janitorial: const iterator where may be, indentation commit 128806bb5a010afcab2f0216dbf70bd79695b768 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 b9dd7b54e85148b8e5802496017d473e2f100f21 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 1d1567354c30308390694df07e14f353020c3a9b Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Sun Nov 20 17:37:39 2011 +0100 LEM TODO note commit b8db98afeeee3f7ede2516b92fb3ee19db448a0b 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