[Libreoffice-bugs] [Bug 52027] New: ODBC, opening one table calls SQLTables for many tables

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Jul 13 03:42:37 CEST 2012


https://bugs.freedesktop.org/show_bug.cgi?id=52027

             Bug #: 52027
           Summary: ODBC, opening one table calls SQLTables for many
                    tables
    Classification: Unclassified
           Product: LibreOffice
           Version: unspecified
          Platform: Other
        OS/Version: Linux (All)
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: Database
        AssignedTo: libreoffice-bugs at lists.freedesktop.org
        ReportedBy: lo_bugs at iseries-guru.com


Created attachment 64149
  --> https://bugs.freedesktop.org/attachment.cgi?id=64149
ODBC log file

When I open an ODBC connection, expand the list of tables in the schema, and
double-click on a table name, Base calls SQLTables for each base table in the
schema.  I would guess that all but one of these calls is unnecessary at this
point.  Can an expert confirm the necessity or otherwise of these calls?


I choose a connection to PostgreSQL for the ODBC log file and backtrace
because the driver source is available.  Note for comparison ...

(*) A connection to DB2/i shows similar calls to SQLTables except that ...
      - DB2/i does one more call SQLTables, this final call naming the table
        that I actually double-clicked.
      - Referencing a server with more base tables in the schema and which is,
        moreover, on the other side of the Atlantic Ocean makes the delay
        conspicuous.

(*) With a direct connection to PostgreSQL (using the SDBC driver), Base does
    not execute the source line appearing in frame 2 of the backtrace.


Looking into the backtrace, I suspect that the iteration through tables is
happening in frame 7 (dbaccess/source/ui/browser/unodatbr.cxx:2187).  The code
at line 2180 reads ...

        Sequence< ::rtl::OUString > aNames = _xNameAccess->getElementNames();
        const ::rtl::OUString* pIter    = aNames.getConstArray();
        const ::rtl::OUString* pEnd     = pIter + aNames.getLength();
        for (; pIter != pEnd; ++pIter)
        {
            if( !m_pTreeView->getListBox().GetEntryPosByName(*pIter,_pParent))
            {


I have master commit id a3a0b81, pulled around 2012-10-10 17:45 UTC and built
with options

    --enable-symbols
    --enable-dbgutil
    --enable-crashdump
    --disable-build-mozilla
    --without-system-postgresql
    --enable-debug
    --enable-werror

The platform for build and execution is

    $ uname -a
    Linux cougar-natty 2.6.38-15-generic #60-Ubuntu SMP Tue May 22 11:30:47 UTC
2012 i686 athlon i386 GNU/Linux
    $ gcc --version
    gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Libreoffice-bugs mailing list