New branch 'feature/base-preview' available with the following commits: commit beb9623bc6d27415c68901ba0b46c3be068fbbfc Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jul 23 16:05:25 2012 +0200
TODO fdo#TODO Change-Id: I3144087cfe60b15a38853460f15a39ec730f0bf4 commit 3271eef49c7686069291531232fcec2e865f54ad Author: Terrence Enger <ten...@iseries-guru.com> Date: Wed Jul 18 14:46:11 2012 -0400 stop some leaked statement handles Change-Id: I06764e0569ea615e66de6cd5946614c7c538e60e Signed-off-by: Lionel Elie Mamane <lio...@mamane.lu> commit 9de2c5a7107360a05853bfadb32989897690c3c8 Author: Terrence Enger <ten...@iseries-guru.com> Date: Wed Jul 18 14:46:11 2012 -0400 ODBMetaDataRS ctor: abort if statement handle allocation failed Change-Id: Ieac069565bbc14c909eeecf3e67588191191992f Signed-off-by: Lionel Elie Mamane <lio...@mamane.lu> commit 362e423b08721b5908a29d68d98eeee99ce87da2 Author: Terrence Enger <ten...@iseries-guru.com> Date: Wed Jul 18 14:46:11 2012 -0400 avoid freeing the NULL handle Change-Id: Id3f22bacfbf5e582656cc8ac38d60b781a25b4c3 Signed-off-by: Lionel Elie Mamane <lio...@mamane.lu> commit ca28fd45995ca051a0a8bf7cb3eb9d0bbb959653 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jul 18 19:34:19 2012 +0200 why the hell does this need to paint? Problematic for Base because when moving, it causes: 1) Fetch new data 2)Fetch old data 3)Fetch new data Obviously, 2) and 3) are completely pointless Change-Id: Ie3cc4f13b0b033965e51ced0eb3700bd2aad8028 commit a07ebb18fa904bf0b0b56ed4139c9189ce9b03f5 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jul 16 23:58:18 2012 +0200 fdo#51239 refresh row lazily (when data is requested) This avoids fetching data that will not be requested when the "cursor" is only moved and no data requested. That is typically what RowSetCache does when its own cursor is moved within its window. This basically makes the whole {next,previous,absolute,...}_checked story obsolete, by basically always being as fast as the i_bFetchRow==false case, but in a safer way. Change-Id: I89eaf277069736b3077bde8b45325929db290f2d commit b280519ed8f059e44625ca59689fb7d4026c3194 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Jul 12 23:28:10 2012 +0200 errors to stderr Change-Id: I01756622dd7700d3918d156f118cd69c8a15879a commit 00aa439708f92e639e6d0f5bf645b111170bb53f Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Jul 12 18:10:14 2012 +0200 debug unexpected exception Change-Id: I404072caf6ddab0ed833586066507c7d332fcea4 commit 874159195233acb07a8817658735784e0a36b0cd Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Jul 12 13:07:03 2012 +0200 fix hsqldb java version detection 1) The values were not properly exclusive. E.g. when compiling under OpenJDK 1.6, iscjava12 was set (!) 2) On Java 1.6, should not enable the parts that are (only) for Java7! 3) When non-JAVA7, need to preprocess the files that have JAVA7-only code, so that it gets removed Change-Id: I99b6bd9e781fee1007a04a4dc3d3f952c1b2eb00 commit 677c403068d8274821e508b5c35a14ecafc55c23 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 5ed9ae4933650e169eec6f23ce3f9322986076ca Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jul 2 19:33:38 2012 +0200 LEM notes Change-Id: I16939e5d6e1f7c0a83f7f2b2dbc9a5b397b45c36 commit ab1b641c394f63d418eba2cb13748a9a93285168 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 84ed380543b17dcd9def1d69e3a0c7836ff7894b 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 fec7c41fe6af8cbba40c8c532635da65f5e00430 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 600856b94c2d9474242b7bd61ead2e36ab7b838d 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 1034265bdf0b7fe8f3f14ad654dc730a601cb847 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 98ee7c7ba907996a5ab938aab39ea391e2dc2440 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jun 6 14:23:50 2012 +0200 cleanup Change-Id: I1ce4279d434ffa58328e17863b2e68af1e813a99 commit 26e3ce90b4a3a8cfd21de3c8058eb38ee6dc3c71 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jun 6 14:23:30 2012 +0200 untabify Change-Id: I984c84534cb4c6cda8bd73a43d79ec8e49afcdeb commit 4c17c64cfe6ed066bff022879a05de2b50e59f23 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 728e100ab2d030c21cf0e150984fd933cc7d722a 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 0c071071634e9d045a018ee245768607693696c5 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 9970c0296f922a3011c7ac94695d482195294530 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jun 4 17:35:52 2012 +0200 typos in comments Change-Id: I1dbb1990033602d7909ecdee72b8b699cce44cab commit 657857ac6bcc1a3cdea384888c0a418e9f39563c 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 ecc6127588bfe53170df423bfa8bfdab7edf00ec 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 e8e0ac5c4f715dad0ab0ae13b2384cc6a578bec4 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 8baf117ea4d820c8e978a2682bf9e3caa57b0028 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Fri Jun 1 14:49:02 2012 +0200 Update comments Change-Id: I7e3f09d61cb35165000a35c8d3c3f2d284cf164e commit d6922e69fc240eb6be4b87285669cd3fd1cd57a5 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 df94659d60df82dd86d45205706bae319a57f154 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 23a2a22763c3e8e4defbe44a3d0a9d0fc703102d Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Feb 27 13:47:24 2012 +0100 fdo#46675: fixup commit bb2cc0d596fdc4b5e7c729bca09ac67a85cd8832 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 b63d51364f8adc173d1bbadabca6f4f58969c231 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 16 09:29:54 2012 +0100 correct indentation commit 5bca0d85a3edc9e70507ae7f7c52c69d3c3ce560 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 16 09:11:08 2012 +0100 typo & copy/paste error in error message commit b2578854dfb0710d5146b95d67787912faec82ec 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 01578eb25a83eadc53fed3fdf98c801485e6d223 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 144e8886fca3e5e7b9b648f2365e267da3c58dd9 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Feb 14 19:39:01 2012 +0100 comphelper: add getINT64 commit c33b91de589b8158897348b1c879edaa135ba881 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 6ab8da2158acb045feb3b2140372229ac473a84f 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 9c081a93b8690dc339737f96ace69456b5e3f005 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 a029c12b8da47cb24d1f7747cd99cc4d57a30614 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Feb 13 17:53:19 2012 +0100 ResMgr::TestStack more robust commit 271db6f22ff750f46b224580916e1f8acc538394 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 e2b41dc0c0f7803428dcb4893bde4efe549249c9 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 9 13:04:34 2012 +0100 typo in comment commit 88f2d5652b529147a3534ff4428b58b450cc53cc 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 ef1d7bfca3dcc4832b2894c9b55b2d907e5e406d Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Feb 8 19:08:20 2012 +0100 ORowSetCache::moveWindow fix variable inversion; fixes subsequentcheck commit 7e2163763836cc739dc28c940830b06506885c95 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 2a3d221f7106e9bc274df44c1eac59cfafbf0d82 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 31 11:39:47 2012 +0100 pgsql: simpler / safer check for system column commit 144bb57d5a7febf1c152581c527566b4e83eaed6 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Feb 1 18:28:59 2012 +0100 pgsql: implement getColumnPrivileges, generate statement only once commit 5d81a3a08d08dc07154431d0b1055feadaef7da5 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Feb 1 18:03:40 2012 +0100 pgsql: clean comments commit e2c489ec109fa1e212337ca164641a09ba9ac25a 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 2370610a2b7ab628c35c12adacb19ba00d1b1a5d 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 f0bb23312420a00ca21985c2344aa0b946c7eb1f 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 97f448bde8b939451f83c842f0b9aa0d27a62e69 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 f627bd87a98ebbe4486f5ceaed526f2fdf432383 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Jan 19 20:20:06 2012 +0100 ORowSetCache: overhaul internals commit 0b0634a4b5576b913dc7d0eda0b6c3c739c9b7a3 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 d57d04f0df1c2a54d7ffd6d65f265928a5c73744 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 ebf6e1dd06436f12567d12f0833eb6758f450bf7 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jan 18 13:51:14 2012 +0100 Oups... where is my brown paper bag? commit 0d6acee7c1635a99b5258fe474f8c0ecd66f7d77 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 c040383290a278a710083b33424f807fe19383dd Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jan 18 12:31:06 2012 +0100 janitorial: typo in comments commit c568610866edfba176e9ff57c68943716ba405ab 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 36705ca1286a855557a003624cdf702a76d5019a Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 17 09:27:40 2012 +0100 janitorial: typo in private member name commit 327aa55788538853296874c569e4c7d668f8078c Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 17 09:26:41 2012 +0100 janitorial: const iterator where may be, indentation commit 3f37e928e7c3051e2fa7c25e9e233f5bc2ef6827 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 95a50bfdfc84ef7d7d58391d1ee8b07df46d8947 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 9e4c92e26297ea5f3790221ac42777cf9c43159b Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Sun Nov 20 17:37:39 2011 +0100 LEM TODO note commit 05512331514874bfb746ff429d6b867d60fc2dfd 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