[Libreoffice-commits] Changes to 'feature/base-preview'
Lionel Elie Mamane
lmamane at kemper.freedesktop.org
Tue Jul 24 08:25:22 PDT 2012
New branch 'feature/base-preview' available with the following commits:
commit c85495ff5839da63885d1d7f90b7369747907a78
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Tue Jul 24 17:15:55 2012 +0200
forcing repaint has catastrophic performance implications; invalidate only
In Base:
1) Open a big table (hundreds of rows)
2) Only the first 40 to 100 rows are fetched into the cache and shown
(depending on screen / window size).
3) Move to last row (click on icon |>|)
4) The last 40 to 100 rows are fetched into the cache; the data of the
first 40/100 rows is pushed out of the cache.
5) The first 40 to 100 rows are fetched, just so that the call to
rWindow.Paint() can do its job, because they are not in the cache
anymore (!). The last 40/100 rows are pushed out of the cache.
6) The last 40 to 100 rows are fetched into the cache and displayed;
the first 40/100 rows are pushed out of the cache *again*.
Steps 5 and 6 are obviously *very* stupid.
Change-Id: Ic11b893ea9440c2c5a142bd3c77c95d6730aa723
commit 564aa105f27368c7af0e2199e617560f588a9d95
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Mon Jul 23 16:05:25 2012 +0200
TODO fdo#TODO
Change-Id: I3144087cfe60b15a38853460f15a39ec730f0bf4
commit 82ee17eba45644799d8ded525b05da2abfea7b46
Author: Terrence Enger <tenger at 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 <lionel at mamane.lu>
commit d36731c1f07d2b53c630577bdaa346ef0222140d
Author: Terrence Enger <tenger at 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 <lionel at mamane.lu>
commit 9c378687dcf789172d07cb404325972c1e73277d
Author: Terrence Enger <tenger at 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 <lionel at mamane.lu>
commit a07ebb18fa904bf0b0b56ed4139c9189ce9b03f5
Author: Lionel Elie Mamane <lionel at 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 <lionel at mamane.lu>
Date: Thu Jul 12 23:28:10 2012 +0200
errors to stderr
Change-Id: I01756622dd7700d3918d156f118cd69c8a15879a
commit 00aa439708f92e639e6d0f5bf645b111170bb53f
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Thu Jul 12 18:10:14 2012 +0200
debug unexpected exception
Change-Id: I404072caf6ddab0ed833586066507c7d332fcea4
commit 874159195233acb07a8817658735784e0a36b0cd
Author: Lionel Elie Mamane <lionel at 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 <lionel at 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 <lionel at mamane.lu>
Date: Mon Jul 2 19:33:38 2012 +0200
LEM notes
Change-Id: I16939e5d6e1f7c0a83f7f2b2dbc9a5b397b45c36
commit ab1b641c394f63d418eba2cb13748a9a93285168
Author: Lionel Elie Mamane <lionel at 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 <lionel at 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 <lionel at 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 <lionel at 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 <lionel at 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 <lionel at mamane.lu>
Date: Wed Jun 6 14:23:50 2012 +0200
cleanup
Change-Id: I1ce4279d434ffa58328e17863b2e68af1e813a99
commit 26e3ce90b4a3a8cfd21de3c8058eb38ee6dc3c71
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Wed Jun 6 14:23:30 2012 +0200
untabify
Change-Id: I984c84534cb4c6cda8bd73a43d79ec8e49afcdeb
commit 4c17c64cfe6ed066bff022879a05de2b50e59f23
Author: Lionel Elie Mamane <lionel at 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 <lionel at 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 <lionel at 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 <lionel at mamane.lu>
Date: Mon Jun 4 17:35:52 2012 +0200
typos in comments
Change-Id: I1dbb1990033602d7909ecdee72b8b699cce44cab
commit 657857ac6bcc1a3cdea384888c0a418e9f39563c
Author: Lionel Elie Mamane <lionel at 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 <lionel at 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 <lionel at 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 <lionel at mamane.lu>
Date: Fri Jun 1 14:49:02 2012 +0200
Update comments
Change-Id: I7e3f09d61cb35165000a35c8d3c3f2d284cf164e
commit d6922e69fc240eb6be4b87285669cd3fd1cd57a5
Author: Lionel Elie Mamane <lionel at 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 <lionel at 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 <lionel at mamane.lu>
Date: Mon Feb 27 13:47:24 2012 +0100
fdo#46675: fixup
commit bb2cc0d596fdc4b5e7c729bca09ac67a85cd8832
Author: Lionel Elie Mamane <lionel at 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 <lionel at mamane.lu>
Date: Thu Feb 16 09:29:54 2012 +0100
correct indentation
commit 5bca0d85a3edc9e70507ae7f7c52c69d3c3ce560
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Thu Feb 16 09:11:08 2012 +0100
typo & copy/paste error in error message
commit b2578854dfb0710d5146b95d67787912faec82ec
Author: Kate Goss <katherine.goss at 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 <lionel at 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 <lionel at mamane.lu>
Date: Tue Feb 14 19:39:01 2012 +0100
comphelper: add getINT64
commit c33b91de589b8158897348b1c879edaa135ba881
Author: Lionel Elie Mamane <lionel at 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 <lionel at 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 <lionel at 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 <lionel at mamane.lu>
Date: Mon Feb 13 17:53:19 2012 +0100
ResMgr::TestStack more robust
commit 271db6f22ff750f46b224580916e1f8acc538394
Author: Lionel Elie Mamane <lionel at 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 <lionel at mamane.lu>
Date: Thu Feb 9 13:04:34 2012 +0100
typo in comment
commit 88f2d5652b529147a3534ff4428b58b450cc53cc
Author: Lionel Elie Mamane <lionel at 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 <lionel at mamane.lu>
Date: Wed Feb 8 19:08:20 2012 +0100
ORowSetCache::moveWindow fix variable inversion; fixes subsequentcheck
commit 7e2163763836cc739dc28c940830b06506885c95
Author: Lionel Elie Mamane <lionel at 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 <lionel at mamane.lu>
Date: Tue Jan 31 11:39:47 2012 +0100
pgsql: simpler / safer check for system column
commit 144bb57d5a7febf1c152581c527566b4e83eaed6
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Wed Feb 1 18:28:59 2012 +0100
pgsql: implement getColumnPrivileges, generate statement only once
commit 5d81a3a08d08dc07154431d0b1055feadaef7da5
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Wed Feb 1 18:03:40 2012 +0100
pgsql: clean comments
commit e2c489ec109fa1e212337ca164641a09ba9ac25a
Author: Lionel Elie Mamane <lionel at 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 <lionel at 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 <lionel at 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 <lionel at 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 <lionel at mamane.lu>
Date: Thu Jan 19 20:20:06 2012 +0100
ORowSetCache: overhaul internals
commit 0b0634a4b5576b913dc7d0eda0b6c3c739c9b7a3
Author: Lionel Elie Mamane <lionel at 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 <lionel at 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 <lionel at mamane.lu>
Date: Wed Jan 18 13:51:14 2012 +0100
Oups... where is my brown paper bag?
commit 0d6acee7c1635a99b5258fe474f8c0ecd66f7d77
Author: Lionel Elie Mamane <lionel at 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 <lionel at mamane.lu>
Date: Wed Jan 18 12:31:06 2012 +0100
janitorial: typo in comments
commit c568610866edfba176e9ff57c68943716ba405ab
Author: Lionel Elie Mamane <lionel at 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 <lionel at mamane.lu>
Date: Tue Jan 17 09:27:40 2012 +0100
janitorial: typo in private member name
commit 327aa55788538853296874c569e4c7d668f8078c
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Tue Jan 17 09:26:41 2012 +0100
janitorial: const iterator where may be, indentation
commit 3f37e928e7c3051e2fa7c25e9e233f5bc2ef6827
Author: Lionel Elie Mamane <lionel at 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 <lionel at 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 <lionel at mamane.lu>
Date: Sun Nov 20 17:37:39 2011 +0100
LEM TODO note
commit 05512331514874bfb746ff429d6b867d60fc2dfd
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Wed Nov 23 21:34:18 2011 +0100
maximal debugging information
More information about the Libreoffice-commits
mailing list