[Libreoffice-commits] Changes to 'features/base-preview'
Lionel Elie Mamane
lmamane at kemper.freedesktop.org
Wed Jul 4 08:48:58 PDT 2012
New branch 'features/base-preview' available with the following commits:
commit 0c8d627ccdafea81624851a728afe9d4d9c5c05f
Author: Lionel Elie Mamane <lionel at 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 <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 00fe4eaa97aec7d1692cfded5736a4ca4a6057f8
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Mon Jul 2 19:33:38 2012 +0200
LEM notes
Change-Id: I16939e5d6e1f7c0a83f7f2b2dbc9a5b397b45c36
commit 279def3335a980c97d10268f21ffdc8331a202f2
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 0724e827a19c983c808c532b0192182b07b8812f
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 2920e565d7536dd69b9467b01ce137a9c43b8709
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 3224347242f9fed108074c72c505f85d6d56c86c
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 edd30501ec149cf7142ccaa69403331cbf85842e
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 2253d240ec324a120ae5177c7d2d07278a63d1cc
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Wed Jun 6 14:23:50 2012 +0200
cleanup
Change-Id: I1ce4279d434ffa58328e17863b2e68af1e813a99
commit 5e95e65f6d9a091d585f3f9d8961ee81f66ac07b
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Wed Jun 6 14:23:30 2012 +0200
untabify
Change-Id: I984c84534cb4c6cda8bd73a43d79ec8e49afcdeb
commit 9f4f8f470edaa737b4c0b33b4169770770d6d658
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 41da4365316e37b9854df58b6d24d5843b2dcc61
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 7b10d3b041d4a6c2ac10da94b431ceb9628705dc
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 3cef83e0d2abff77700b3dfb7903905b9a436f21
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Mon Jun 4 17:35:52 2012 +0200
typos in comments
Change-Id: I1dbb1990033602d7909ecdee72b8b699cce44cab
commit 012cad6b598550cfec940c7f8b2ffe3e205cbc16
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 ef2eeef35e8bfbe927d159ccfd035a91e1f1e46d
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 1cf99a7d8cdca67363ed18b1c924cd56ca49ff8e
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 702170dc746093c7ded5f2b012499c192d0bf733
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Fri Jun 1 14:49:02 2012 +0200
Update comments
Change-Id: I7e3f09d61cb35165000a35c8d3c3f2d284cf164e
commit fb3d3500d5af1a889b9cf79113853d702994af24
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 0e104348ec4d284f10681aa16b829f1b8f066e53
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 4cf02f9bfaaf43762822e782798899feded31b20
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Mon Feb 27 13:47:24 2012 +0100
fdo#46675: fixup
commit 83aa1a3fc97a4f6c5f70bf958157c2c6f8c1502f
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 a8ac9bb1bc34948cc45884bf42ef966de5a937b5
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Thu Feb 16 09:29:54 2012 +0100
correct indentation
commit 5a30b6cdb197de1e56117aacb0b9b4ad6c576727
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 490cd8d75f9802ab44caa849f3ee0642bd215abe
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 45edd53a693f411ca83f46a6a2a98bfc84b83f98
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 bdd824e08eb3055392dee0562f27babeeb269987
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Tue Feb 14 19:39:01 2012 +0100
comphelper: add getINT64
commit 1c14fc9e45e07881d0035a524a14d8e90c76ab24
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 418032b034effc00a1aa69f3a8cfd622b9aaa602
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 d7886e49298a84a7cbe31436480088c296494612
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 b6b09a937d4b3f21088b02f04b24d8e6a5e535bf
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Mon Feb 13 17:53:19 2012 +0100
ResMgr::TestStack more robust
commit 261a5174028a4a3e09dd0f928bdd784b9b16e127
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 8c6d8b74ae22abc2d03eb1dbc51fc36bbf947fd3
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Thu Feb 9 13:04:34 2012 +0100
typo in comment
commit 610cfc6c8bdea5cfe4d664f2cfd18c79ab9e68ff
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 6dd14573068bdfd9b20773099a301021641e847c
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 48a6c7497808c6cf46b020641770e76bdd7cd1c9
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 9911e889b0ce0c59a74801edade35bc8246401da
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 f4683cdab971a12b499085fbb4ff5889e1c9a44a
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 3da9cb85102fb1551a5e0b02b0f9a5331f9826ee
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Wed Feb 1 18:03:40 2012 +0100
pgsql: clean comments
commit f690fc8a1c1f2d80c476fb85c3ac44a2fb1878c7
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 22c3fb561d9ceb754d4e88e9ad70d3698c86e971
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 09f62cb5e691176a0b83fd974173fd151b4ec083
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 b28b8029a75e2a4fbb46784600ffaef61bb11a34
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 4efcba65f4fbec460701326aca621173c35d8371
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Thu Jan 19 20:20:06 2012 +0100
ORowSetCache: overhaul internals
commit 48550c82459846057e06043ab965881c08a127bb
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 408e75244edd4c628ab7c567d1efd30c6a8496a6
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 fb9b154196a6b454f9a5594b329eb52d83861e97
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 47c73d99b30cd656043bc53111515a203fde7c81
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 f2c599deeda775be008e0366b08ea09f8d7431c0
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Wed Jan 18 12:31:06 2012 +0100
janitorial: typo in comments
commit 5dbf0eac122f933f78aca9db8a26a5eb4d298349
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 1a8a6a6b4316a6fc4cf670cd2dc3e7b224dbb067
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Tue Jan 17 09:27:40 2012 +0100
janitorial: typo in private member name
commit 70aaa7c8bd6db2a97767d35b099566fb13f2feb8
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 c57b6d4dedb89911112fbd054bdbba0d92db8fff
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 361ce1d71e4594d14fb7fd674da3db128b155755
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 9f23991f9ae2d0c30e6642d852b6c1ad74c391d1
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Sun Nov 20 17:37:39 2011 +0100
LEM TODO note
commit ebabd6b0873e5dc3d159e09249e855912ea3b9e7
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