New branch 'features/base-preview' available with the following commits: commit d4b1048b87430a6f8cdfe944e0f02328f1d41327 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jul 10 17:18:56 2012 +0200
fdo#50849 work around psqlodbc segfault Change-Id: Ib7e484f778d97b3f18845cef12718618324c859f commit 7dede4ccdab4228df5bfd9b6fe359ee8d09b073c 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 7df4c891b33c14cdd7aaae8bc7949b5723d48763 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jul 2 19:33:38 2012 +0200 LEM notes Change-Id: I16939e5d6e1f7c0a83f7f2b2dbc9a5b397b45c36 commit 0db2ff66a67ed012ae5c3a7aba4e0520ce95159e 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 519d6d8df6e05798ee781a83d03ce9a648a8eeca 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 e484237a92bb3f291dc8507cb268ddbd0b88dc3c 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 ba76d450b45aa3d3526de6ee984d65de66b48629 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 f488bf5c397c85d98018622f485da654256d2259 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 298f64dca956c66126cc3774ac81a759bd143a59 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jun 6 14:23:50 2012 +0200 cleanup Change-Id: I1ce4279d434ffa58328e17863b2e68af1e813a99 commit 0f20b5eb5245ac5f938b62f2007dfad6efcc5068 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jun 6 14:23:30 2012 +0200 untabify Change-Id: I984c84534cb4c6cda8bd73a43d79ec8e49afcdeb commit 80ca13f619f62ff6a34c06272aacad8bc0ab3acf 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 896bd4b7b587fade54443f25b5776290549bc8e1 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 c59f5557a668c11b82fa2d35608c6a641c78b4ff 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 df843df3d6ce4af5862fd7667f6e67109b9939f1 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Jun 4 17:35:52 2012 +0200 typos in comments Change-Id: I1dbb1990033602d7909ecdee72b8b699cce44cab commit 5f92ad54f4b9f2e60fba9bb5cb048d7cf2ba9dcc 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 a6ea040a31dfc25c65f1fb5676105024a1784e88 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 f0e477cafcdfb73c74d8dc88ff4cc317c56460ba 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 bea78060811921588e918fee73cba0e454aab32c Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Fri Jun 1 14:49:02 2012 +0200 Update comments Change-Id: I7e3f09d61cb35165000a35c8d3c3f2d284cf164e commit df561aab87d1fa359ef14ced6a9bb0576e385635 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 1c147e146efd33484aaa39cfacda07fae77e8263 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 ec87dd70d01e57f7ad0e7aaed834bbb40a6bcb20 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Feb 27 13:47:24 2012 +0100 fdo#46675: fixup commit e4b453e2e66e3d3e7583fc0a7bf83ef3c2be983f 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 6824e1c70dd6f40ededef398405ceab6b944543f Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 16 09:29:54 2012 +0100 correct indentation commit 2efca4da7c8efd86b552bf5c648c665be6cadeb9 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 16 09:11:08 2012 +0100 typo & copy/paste error in error message commit 574a6fc7a1b5ad3086f54675e7c2c0e6c42ded24 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 dfd71888b0142335e03a2ad2716489e118fb3c9c 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 6514c56aee489ea6cdc84a5d1db49ca2b1ca0d3c Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Feb 14 19:39:01 2012 +0100 comphelper: add getINT64 commit 2e71f31bd69846d0e171d4fab2c40fca19d4f835 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 78ad72b8a4ca551e9e4b05172bc7e8db9381b439 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 ecfeb135d907e35d4918acb99cb46b3de1f67138 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 b22bd3eb5764804f275d503ba05de681955f7707 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Mon Feb 13 17:53:19 2012 +0100 ResMgr::TestStack more robust commit acd6fdc2c81c6380056576f97df9bedbc21029b4 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 ff187ec894c73220f5180a5ef7e4a3cf778f7b53 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Feb 9 13:04:34 2012 +0100 typo in comment commit 9f694f28aca61500709f2232ac1d14991a8aaa11 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 38517dce0bd58e98c6ee6ec2190530bb3ce4d001 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Feb 8 19:08:20 2012 +0100 ORowSetCache::moveWindow fix variable inversion; fixes subsequentcheck commit 78900abae06f9de0a6398c8f2e001d9c26d0f551 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 23d301d912536effd31c8f6687783d7ea6c36274 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 31 11:39:47 2012 +0100 pgsql: simpler / safer check for system column commit f99e45d74d11122343a639cd956a7f47eb868693 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Feb 1 18:28:59 2012 +0100 pgsql: implement getColumnPrivileges, generate statement only once commit 991cc900589be7d6a69db67b4a45611d241fc5ce Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Feb 1 18:03:40 2012 +0100 pgsql: clean comments commit c0f90b85263f2c5af5208d57a28549d22a332a90 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 3336eb762888a135fa60d32829014423923acebd 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 b10a5f13b3538ed046ad93f513c939c72ffe2ac5 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 9fb72e0ab77c670947f2145a1676366a07675e38 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 66f950cd3345d4015ae7701c3d55069d5d299a8b Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Thu Jan 19 20:20:06 2012 +0100 ORowSetCache: overhaul internals commit cb652840880bd46e04f72148b623f5462b4091de 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 5538b2d9a8c442b0c3af594319993f05220d50e0 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 9bb2a6a1d2f05ad0c1d4ae04fae53d4c2044229c Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jan 18 13:51:14 2012 +0100 Oups... where is my brown paper bag? commit 65b6deddb2a13eacfe1d756347f092dd8d0d1df9 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 dd9c2d84f79f0913f99145717ecaf58346662b9a Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Jan 18 12:31:06 2012 +0100 janitorial: typo in comments commit d62bc746242bb70abbb06684665ea2a4802fe547 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 57dba4110c08915e112597b1b5ca12784a264a3f Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 17 09:27:40 2012 +0100 janitorial: typo in private member name commit 369c61ba5cda331abab96ba841cb1d8f69289266 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jan 17 09:26:41 2012 +0100 janitorial: const iterator where may be, indentation commit 7ba8333c20c0071a1747a763fef7fe4d24b2b748 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 846ce8431194d67f5fcd8463f74a34ec81b85827 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 5470d2f4f558d3be113470cab50d58e2e67a2101 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Sun Nov 20 17:37:39 2011 +0100 LEM TODO note commit 118e150ae08af2d0ccb9c189f76b814b3e526ca6 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