[Libreoffice-commits] Changes to 'feature/base-preview'

Lionel Elie Mamane lmamane at kemper.freedesktop.org
Tue Jul 24 08:29:13 PDT 2012


New branch 'feature/base-preview' available with the following commits:
commit 818520eac34401410529f1e884953bd9f75a4c7f
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Mon Jul 23 16:05:25 2012 +0200

    TODO fdo#52179
    
    Change-Id: I3144087cfe60b15a38853460f15a39ec730f0bf4

commit 085ee861c5c4ea44b99ef5aafe1e618ae0ba8db0
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 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