auto completion in from clause

70 views
Skip to first unread message

bdon...@gmail.com

unread,
Oct 27, 2020, 11:44:20 AM10/27/20
to SQL Workbench/J - DBMS independent SQL tool

Hello,

I'm about to change from build 125.2 to build 127. Unfortunately I encountered a problem with Build 127 and Informix. Every time I use auto completion after the "from" keyword SQL Workbench forces me to select at first the schema name and in a second step the table name.

Is it possible to circumvent this behavior?

Regards,
Bernhard

Thomas Kellerer

unread,
Oct 28, 2020, 4:09:38 AM10/28/20
to sql-wo...@googlegroups.com
Hmm,

I don't test on Informix, so I don't know what causes this.

Does Informix have the notion of a "current schema"? Or even a schema search path (e.g. like Postgres)?

Can you please set the log level to DEBUG (Tools -> Options -> General -> Log level) then invoke code completion with and without a schema in the from clause and then send me the (complete) logfile. Maybe I can see something.

You can send it to the support email address if you want to keep it private.

Regards
Thomas

bdon...@gmail.com

unread,
Oct 28, 2020, 11:54:25 AM10/28/20
to SQL Workbench/J - DBMS independent SQL tool
I entered a tiny query and triggered auto completion in the from clause.


Here with the old build 125.2:
  1
  2 2020-10-28 15:49:14 DEBUG CompletionHandler.updateSelectionList() Completion invoked for statement:
  3 SELECT *
  4 FROM kund^|^
  5 WHERE 1=1
  6 --group by 1
  7 --order by 1
  8
  9 2020-10-28 15:49:14 DEBUG ObjectCache.getTables() Getting tables using schema: null, filter: null, search path: [null]
 10 2020-10-28 15:49:14 DEBUG DbMetadata.getObjects() WbWin-1 TAB-4: Retrieving table list took: 20ms
 11 2020-10-28 15:49:14 DEBUG DbMetadata.getObjects() WbWin-1 TAB-4: Processing 434 tables took: 1ms
 12 2020-10-28 15:49:14 DEBUG ObjectCache.getTables() Namespace "null" not found in cache. Retrieved 434 objects
 13 2020-10-28 15:49:14 DEBUG CompletionHandler.updateSelectionList() Auto-completion invoked for SELECT, analyzer: SelectAnalyzer, context: CONTEXT_TABLE_LIST, currentSchema: null, element count: 434 (32ms)


Here with build 127:
  1
  2 2020-10-28 16:44:14 DEBUG CompletionHandler.updateSelectionList() Completion invoked for statement:
  3 SELECT *
  4 FROM kund^|^
  5 WHERE 1=1
  6 --group by 1
  7 --order by 1
  8
  9 2020-10-28 16:44:14 DEBUG DbMetadata.getCatalogInformation() WbWin-1 TAB-4: Retrieving 38 catalogs using getCatalogs() took: 1ms
 10 2020-10-28 16:44:14 DEBUG DbMetadata.getSchemas() WbWin-1 TAB-4: Retrieving 3 schemas using getSchemas() took 3ms
 11 2020-10-28 16:44:14 DEBUG CompletionHandler.updateSelectionList() Auto-completion invoked for SELECT, analyzer: SelectAnalyzer, context: 11, currentSchema: yucatan_test1, element count: 3 (14ms)
 12 2020-10-28 16:44:20 DEBUG DbObjectCacheFactory.getCache() Creating new cache for: WbWin-1 TAB-4, bdonauba@jdbc:informix-sqli://tux:1526/yucatan_test1:INFORMIXSERVER=onltuxtcp
 13 2020-10-28 16:44:20 ERROR ObjectCachePersistence.loadFromLocalFile() Could not read local storage entry
 14 java.lang.NullPointerException: entry
 15   at java.base/java.util.Objects.requireNonNull(Objects.java:246)
 16   at java.base/java.util.zip.ZipFile.getInputStream(ZipFile.java:372)
 17   at workbench.db.objectcache.ObjectCachePersistence.loadFromLocalFile(ObjectCachePersistence.java:109)
 18   at workbench.db.objectcache.DbObjectCacheFactory.loadCache(DbObjectCacheFactory.java:85)
 19   at workbench.db.objectcache.DbObjectCacheFactory.getCache(DbObjectCacheFactory.java:157)
 20   at workbench.db.WbConnection.getObjectCache(WbConnection.java:459)
 21   at workbench.gui.completion.CompletionPopup.doPaste(CompletionPopup.java:615)
 22   at workbench.gui.completion.CompletionPopup.closePopup(CompletionPopup.java:412)
 23   at workbench.gui.completion.CompletionPopup.quickSearchValueSelected(CompletionPopup.java:294)
 24   at workbench.gui.completion.CompletionSearchField.keyPressed(CompletionSearchField.java:66)
 25   at java.desktop/java.awt.Component.processKeyEvent(Component.java:6590)
 26   at java.desktop/javax.swing.JComponent.processKeyEvent(JComponent.java:2849)
 27   at java.desktop/java.awt.Component.processEvent(Component.java:6409)
 28   at java.desktop/java.awt.Container.processEvent(Container.java:2263)
 29   at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
 30   at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
 31   at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
 32   at java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1950)
 33   at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:870)
 34   at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1139)
 35   at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:1009)
 36   at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:835)
 37   at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4889)
 38   at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
 39   at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
 40   at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
 41   at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
 42   at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
 43   at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
 44   at java.base/java.security.AccessController.doPrivileged(Native Method)
 45   at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
 46   at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
 47   at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
 48   at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
 49   at java.base/java.security.AccessController.doPrivileged(Native Method)
 50   at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
 51   at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
 52   at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
 53   at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
 54   at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
 55   at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
 56   at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
 57   at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
 58
 59 2020-10-28 16:44:24 DEBUG CompletionHandler.updateSelectionList() Completion invoked for statement:
 60 SELECT *
 61 FROM yucatan.^|^
 62 WHERE 1=1
 63 --group by 1
 64 --order by 1
 65
 66 2020-10-28 16:44:24 DEBUG DbMetadata.getCatalogInformation() WbWin-1 TAB-4: Retrieving 38 catalogs using getCatalogs() took: 1ms
 67 2020-10-28 16:44:24 DEBUG ObjectCache.getTables() Getting tables using schema: yucatan, filter: null, search path: [yucatan_test1.yucatan]
 68 2020-10-28 16:44:24 DEBUG DbMetadata.getObjects() WbWin-1 TAB-4: Retrieving table list took: 34ms

Thomas Kellerer

unread,
Oct 28, 2020, 12:21:46 PM10/28/20
to sql-wo...@googlegroups.com
Please send me the complete logfile, not just the part you think is important ;)
> --
> You received this message because you are subscribed to the Google Groups "SQL Workbench/J - DBMS independent SQL tool" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to sql-workbenc...@googlegroups.com <mailto:sql-workbenc...@googlegroups.com>.
> To view this discussion on the web visit https://groups.google.com/d/msgid/sql-workbench/644b47ee-e3be-4e12-82f8-0af0cef927cdn%40googlegroups.com <https://groups.google.com/d/msgid/sql-workbench/644b47ee-e3be-4e12-82f8-0af0cef927cdn%40googlegroups.com?utm_medium=email&utm_source=footer>.

bdon...@gmail.com

unread,
Nov 2, 2020, 2:46:08 AM11/2/20
to SQL Workbench/J - DBMS independent SQL tool
Sorry for the delay, here are the complete logs for both versions:




Build 125.2 (here it work, workbench offers me a list of table)


2020-11-02 08:35:08 INFO   =================== Log started ===================
2020-11-02 08:35:08 INFO  Settings.initialize() Using configdir: /home/username/.sqlworkbench
2020-11-02 08:35:08 DEBUG Settings.initialize() Using default xstlDir: /opt/sqlworkbench-2019-10-04-build125.2/xslt
2020-11-02 08:35:08 DEBUG Settings.initialize() Last modification time of loaded config file: 1604302431555
2020-11-02 08:35:08 INFO  ResourceMgr.getResources() Setting default locale to: en
2020-11-02 08:35:08 INFO  WbManager.readParameters() Starting SQL Workbench/J, Build 125.2 (2019-10-03 14:02)
2020-11-02 08:35:08 INFO  WbManager.readParameters() Java version=11.0.6, java.home=/usr/local/sdkman/candidates/java/11.0.6-open, vendor=Oracle Corporation, name=OpenJDK 64-Bit Server VM
2020-11-02 08:35:08 INFO  WbManager.readParameters() Operating System=Linux, version=3.10.0-514.10.2.el7.x86_64, platform=amd64
2020-11-02 08:35:08 INFO  WbManager.readParameters() Available memory: 1934MB
2020-11-02 08:35:08 INFO  WbManager.readParameters() Classpath: /opt/sqlworkbench-2019-10-04-build125.2/sqlworkbench.jar:/opt/sqlworkbench-2019-10-04-build125.2/ext/*
2020-11-02 08:35:08 INFO  CommandRegistry.scanForExtensions() Found 0 commands in 2ms
2020-11-02 08:35:09 DEBUG MacroManager.init<> Loading default macros took 63ms
2020-11-02 08:35:09 INFO  IconMgr.<init> Using sizes: toolbar: 16, menu: 16
2020-11-02 08:35:09 DEBUG Settings.restoreWindowPosition() Restoring window position for 'workbench.gui.MainWindow', current screen size: [x: 0, y: 0, w:2560,h:1440], requested position: [x: 756, y: 107, w:1675,h:1175]
2020-11-02 08:35:09 DEBUG DbUnitHelper.isDbUnitAvailable() DbUnit not available
2020-11-02 08:35:09 DEBUG PoiHelper.isPoiAvailable() Error loading POI classes org.apache.poi.ss.usermodel.Workbook
java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:315)
    at workbench.db.exporter.PoiHelper.isPoiAvailable(PoiHelper.java:56)
    at workbench.sql.wbcommands.WbImport.getSupportedSpreadSheetTypes(WbImport.java:196)
    at workbench.sql.wbcommands.WbImport.<init>(WbImport.java:139)
    at workbench.sql.CommandMapper.<init>(CommandMapper.java:167)
    at workbench.sql.StatementRunner.<init>(StatementRunner.java:122)
    at workbench.gui.sql.SqlPanel.<init>(SqlPanel.java:465)
    at workbench.gui.MainWindow.addTabAtIndex(MainWindow.java:3607)
    at workbench.gui.MainWindow.addTab(MainWindow.java:3577)
    at workbench.gui.MainWindow.addTab(MainWindow.java:3541)
    at workbench.gui.MainWindow.display(MainWindow.java:378)
    at workbench.WbManager.openNewWindow(WbManager.java:629)
    at workbench.WbManager.runGui(WbManager.java:1014)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

2020-11-02 08:35:09 DEBUG BookmarkManager.updateInBackground() Panel 'Statement' was updated in PT0.003823S (0 bookmarks)
2020-11-02 08:35:09 DEBUG ClasspathUtil.checkLibsToMove() Checking directory: /opt/sqlworkbench-2019-10-04-build125.2 for additional libraries
2020-11-02 08:35:09 INFO  ClasspathUtil.checkLibsToMove() Checking for ext libs took: 2ms
2020-11-02 08:35:10 INFO  XmlProfileStorage.readProfiles() Loading connection profiles from /home/username/.sqlworkbench/WbProfiles.xml
2020-11-02 08:35:10 DEBUG ProfileManager.readFile() 30 profiles loaded from /home/username/.sqlworkbench/WbProfiles.xml in 25ms
2020-11-02 08:35:10 DEBUG ProfileManager.readProfiles() 30 profiles loaded in 27ms from 1 files
2020-11-02 08:35:10 DEBUG WbDesCipher.getInstance() WbDesCipher created
2020-11-02 08:35:13 DEBUG MacroManager.loadMacros() Loaded 21 macros from file /home/username/.sqlworkbench/WbMacros.xml for clientId:  1
2020-11-02 08:35:13 DEBUG BookmarkManager.clearBookmarksForWindow() Removed all bookmarks for window: 1
2020-11-02 08:35:14 DEBUG SqlPanel.readFromWorkspace() Restoring panel 1 from workspace /home/username/.sqlworkbench/Yucatan.wksp took 36ms
2020-11-02 08:35:14 DEBUG SqlPanel.readFromWorkspace() Restoring panel 2 from workspace /home/username/.sqlworkbench/Yucatan.wksp took 11ms
2020-11-02 08:35:14 DEBUG SqlPanel.readFromWorkspace() Restoring panel 3 from workspace /home/username/.sqlworkbench/Yucatan.wksp took 2ms
2020-11-02 08:35:14 DEBUG SqlPanel.readFromWorkspace() Restoring panel 4 from workspace /home/username/.sqlworkbench/Yucatan.wksp took 2ms
2020-11-02 08:35:14 DEBUG MainWindow.loadWorkspace() Loading workspace /home/username/.sqlworkbench/Yucatan.wksp took 244ms
2020-11-02 08:35:14 DEBUG BookmarkManager.updateInBackground() Panel 'use_conturex.sql' was updated in PT0.069519S (0 bookmarks)
2020-11-02 08:35:14 DEBUG BookmarkManager.updateBookmarks() Parsing bookmarks for 4 tabs took: 59ms
2020-11-02 08:35:14 DEBUG TreeLoader.setSelectedTypes() Selected object types: [SEQUENCE, SYNONYM, SYSTEM TABLE, TABLE, VIEW]
2020-11-02 08:35:14 INFO  ConnectionMgr.getConnection() Creating new connection for [{Yucatan}/yucatan_v06@onlcelsiustcp] for driver=com.informix.jdbc.IfxDriver and URL=[jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp]
2020-11-02 08:35:14 INFO  DbDriver.loadDriverClass() Adding ClassLoader URL=file:/global/common/java/versionen/ixjdbc-4.10.12/lib/ifxjdbc.jar
2020-11-02 08:35:14 DEBUG DbMetadata.<init> WbWin-1 TAB-4: Schema term: user
2020-11-02 08:35:14 DEBUG DbMetadata.<init> WbWin-1 TAB-4: Catalog term: database
2020-11-02 08:35:14 DEBUG DbMetadata.<init> WbWin-1 TAB-4: Identifier quote character obtained from driver:  
2020-11-02 08:35:14 INFO  DbMetadata.<init> WbWin-1 TAB-4: Using DBID=informix_dynamic_server
2020-11-02 08:35:14 INFO  DbMetadata.<init> WbWin-1 TAB-4: Using identifier quote character: "
2020-11-02 08:35:14 INFO  DbMetadata.<init> WbWin-1 TAB-4: Using search string escape character: \
2020-11-02 08:35:14 INFO  DbMetadata.retrieveObjectTypes() WbWin-1 TAB-4: Table types returned by the JDBC driver: [SYSTEM TABLE, TABLE, VIEW]
2020-11-02 08:35:14 INFO  DbMetadata.<init> WbWin-1 TAB-4: Using catalog separator: :
2020-11-02 08:35:14 DEBUG GenericSchemaInfoReader.logSettings() WbWin-1 TAB-4: Re-Use statement: false, cache current schema: false, SQL: null
2020-11-02 08:35:14 DEBUG GenericCatalogInformationReader.<init> WbWin-1 TAB-4: Cache current schema: false
2020-11-02 08:35:14 INFO  WbConnection.runConnectScript() Executing connect script for connection [informix_dynamic_server]: User=username, Database=yucatan_v06, URL=jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp ...
2020-11-02 08:35:14 INFO  StatementRunner.logStatement() Executed: (username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp)
EXECUTE PROCEDURE IFX_ALLOW_NEWLINE('t')
(5ms)
2020-11-02 08:35:14 DEBUG WbConnection.runConnectScript()   (WbWin-1 TAB-4) Executed statement: EXECUTE PROCEDURE IFX_ALLOW_NEWLINE('t')
2020-11-02 08:35:14 INFO  StatementRunner.logStatement() Executed: (username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp)
WbVarDef -variable=dbname -query="SELECT trim(dbinfo('dbname')) from sysmaster:sysdual"
(5ms)
2020-11-02 08:35:14 DEBUG WbConnection.runConnectScript()   (WbWin-1 TAB-4) Executed statement: WbVarDef -variable=dbname -query="SELECT trim(dbinfo('dbname')) from sysmaster:sysdual"
2020-11-02 08:35:14 INFO  StatementRunner.logStatement() Executed: (username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp)
WbVarDef -variable=connecttime -query="SELECT   TO_CHAR(current, '%Y-%m-%d-%H-%M-%S')  from sysmaster:sysdual"
(5ms)
2020-11-02 08:35:14 DEBUG WbConnection.runConnectScript()   (WbWin-1 TAB-4) Executed statement: WbVarDef -variable=connecttime -query="SELECT   TO_CHAR(current, '%Y-%m-%d-%H-%M-%S')  from sysmaster:sysdual"
2020-11-02 08:35:14 INFO  ConnectionMgr.getConnection() Connected to: [Informix Dynamic Server], Database version info: [12.10.FC11WE], Database version number: [12.10], Driver version: [4.10.JC12], JDBC version: [4.0], ID: [WbWin-1 TAB-4]
2020-11-02 08:35:14 DEBUG DbTreePanel.setConnectionToUse() Using connection WbWin-1 TAB-4, username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp for DbTree
2020-11-02 08:35:14 DEBUG TreeLoader.setConnection() Using object types: [SEQUENCE, SYNONYM, SYSTEM TABLE, TABLE, VIEW]
2020-11-02 08:35:14 DEBUG DbTreePanel.loadTypes() Using the following object types for the type filter: [SEQUENCE, SYNONYM, SYSTEM TABLE, TABLE, VIEW]
2020-11-02 08:35:14 DEBUG DbMetadata.getCatalogInformation() WbWin-1 TAB-4: Retrieving 38 catalogs using getCatalogs() took: 3ms
2020-11-02 08:35:14 DEBUG TreeLoader.loadSchemas() Loading schemas for catalog: yucatan_v06
2020-11-02 08:35:14 WARN  DbMetadata.getSchemas() WbWin-1 TAB-4: getSchemas() called with catalog parameter, but current connection is not configured to support that Backtrace
java.lang.Exception: Backtrace
    at workbench.db.DbMetadata.getSchemas(DbMetadata.java:2789)
    at workbench.gui.dbobjects.objecttree.TreeLoader.loadSchemas(TreeLoader.java:412)
    at workbench.gui.dbobjects.objecttree.TreeLoader.loadChildren(TreeLoader.java:1127)
    at workbench.gui.dbobjects.objecttree.DbObjectsTree.doLoad(DbObjectsTree.java:600)
    at workbench.gui.dbobjects.objecttree.DbObjectsTree.access$000(DbObjectsTree.java:63)
    at workbench.gui.dbobjects.objecttree.DbObjectsTree$7.run(DbObjectsTree.java:586)

2020-11-02 08:35:14 DEBUG DbMetadata.getSchemas() WbWin-1 TAB-4: Retrieving 3 schemas using getSchemas() took 5ms
2020-11-02 08:35:14 DEBUG TreeLoader.loadSchemas() Loaded 3 schemas. Currently selected types: [SEQUENCE, SYNONYM, SYSTEM TABLE, TABLE, VIEW]
2020-11-02 08:35:19 DEBUG CompletionHandler.updateSelectionList() Completion invoked for statement:
SELECT *
FROM kund^|^
WHERE 1=1
--group by 1
--order by 1
 
2020-11-02 08:35:19 DEBUG DbObjectCacheFactory.getCache() Creating new cache for: username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp
2020-11-02 08:35:19 ERROR ObjectCachePersistence.loadFromCache() Could not read local storage entry
java.lang.NullPointerException: entry
    at java.base/java.util.Objects.requireNonNull(Objects.java:246)
    at java.base/java.util.zip.ZipFile.getInputStream(ZipFile.java:372)
    at workbench.db.objectcache.ObjectCachePersistence.loadFromLocalFile(ObjectCachePersistence.java:107)
    at workbench.db.objectcache.DbObjectCacheFactory.loadCache(DbObjectCacheFactory.java:84)
    at workbench.db.objectcache.DbObjectCacheFactory.getCache(DbObjectCacheFactory.java:154)
    at workbench.db.WbConnection.getObjectCache(WbConnection.java:442)
    at workbench.gui.completion.BaseAnalyzer.retrieveTables(BaseAnalyzer.java:583)
    at workbench.gui.completion.BaseAnalyzer.buildResult(BaseAnalyzer.java:438)
    at workbench.gui.completion.BaseAnalyzer.retrieveObjects(BaseAnalyzer.java:352)
    at workbench.gui.completion.StatementContext.<init>(StatementContext.java:84)
    at workbench.gui.completion.StatementContext.<init>(StatementContext.java:58)
    at workbench.gui.completion.CompletionHandler.updateSelectionList(CompletionHandler.java:174)
    at workbench.gui.completion.CompletionHandler.showPopup(CompletionHandler.java:101)
    at workbench.gui.completion.CompletionHandler$1.run(CompletionHandler.java:132)

2020-11-02 08:35:19 DEBUG ObjectCache.getTables() Getting tables using schema: null, filter: null, search path: [null]
2020-11-02 08:35:19 DEBUG DbMetadata.getObjects() WbWin-1 TAB-4: Retrieving table list took: 44ms
2020-11-02 08:35:19 DEBUG DbMetadata.getObjects() WbWin-1 TAB-4: Processing 434 tables took: 7ms
2020-11-02 08:35:19 DEBUG ObjectCache.getTables() Namespace "null" not found in cache. Retrieved 434 objects
2020-11-02 08:35:19 DEBUG CompletionHandler.updateSelectionList() Auto-completion invoked for SELECT, analyzer: SelectAnalyzer, context: CONTEXT_TABLE_LIST, currentSchema: null, element count: 434 (104ms)
2020-11-02 08:37:54 DEBUG FileVersioner.createBackup() Created backup file: /home/username/.sqlworkbench/Yucatan.wksp.5
2020-11-02 08:37:54 DEBUG MainWindow.saveWorkspace() Workspace /home/username/.sqlworkbench/Yucatan.wksp saved
2020-11-02 08:37:54 DEBUG FileVersioner.createBackup() Created backup file: /home/username/.sqlworkbench/WbMacros.xml.5
2020-11-02 08:37:54 DEBUG MacroStorage.saveMacros() Saved 20 macros to /home/username/.sqlworkbench/WbMacros.xml
2020-11-02 08:37:54 DEBUG DbObjectCacheFactory.saveCache() Saving cache for key: username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp
2020-11-02 08:37:54 DEBUG ObjectCachePersistence.saveCache() Current object cache written to: /home/username/.sqlworkbench/.cache/username@informix_sqli_celsius_1526_yucatan_v06_informixserver_onlcelsiustcp.wbcache
2020-11-02 08:37:54 DEBUG ConnectionMgr.disconnect() Trying to physically close the connection with id=WbWin-1 TAB-4
2020-11-02 08:37:54 INFO  ConnectionMgr.disconnect() Disconnecting: [yucatan_v06@onlcelsiustcp], ID=WbWin-1 TAB-4
2020-11-02 08:37:54 DEBUG WbConnection.shutdown() Connection WbWin-1 TAB-4 closed.
2020-11-02 08:37:54 DEBUG DbObjectCacheFactory.propertyChange() Connection with key=username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp was closed. Reference count for this cache is: 0
2020-11-02 08:37:54 DEBUG ObjectCachePersistence.saveCache() Current object cache written to: /home/username/.sqlworkbench/.cache/username@informix_sqli_celsius_1526_yucatan_v06_informixserver_onlcelsiustcp.wbcache
2020-11-02 08:37:54 DEBUG ObjectCache.clear() Removed all entries from the cache
2020-11-02 08:37:54 DEBUG DbObjectCacheFactory.propertyChange() Removed cache for key=username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp
2020-11-02 08:37:54 DEBUG BookmarkManager.clearBookmarksForWindow() Removed all bookmarks for window: 1
2020-11-02 08:37:54 DEBUG BookmarkManager.updateInBackground() Panel 'Statement' was updated in PT0.000049S (0 bookmarks)
2020-11-02 08:37:54 DEBUG BookmarkManager.updateInBackground() Panel 'Statement' was updated in PT0.000076S (0 bookmarks)
2020-11-02 08:37:55 DEBUG WbManager.closeAllWindows() Closing all open windows
2020-11-02 08:37:55 DEBUG Settings.saveSettings() Saving global settings to: /home/username/.sqlworkbench/workbench.settings
2020-11-02 08:37:55 INFO  WbManager.doShutdown() Stopping SQL Workbench/J, Build 125.2
2020-11-02 08:37:55 INFO   =================== Log stopped ===================


Build 127 (here it does not work, workbench offers me a list of schema names)

2020-11-02 08:32:22 INFO   =================== Log started ===================
2020-11-02 08:32:22 INFO  Settings.initialize() Using configdir: /home/username/.sqlworkbench
2020-11-02 08:32:22 DEBUG Settings.initialize() Using default xstlDir: /opt/sqlworkbench-2020-09-22-build127/xslt
2020-11-02 08:32:22 DEBUG Settings.initialize() Last modification time of loaded config file: 1604302318753
2020-11-02 08:32:22 INFO  ResourceMgr.getResources() Setting default locale to: en
2020-11-02 08:32:22 INFO  WbManager.readParameters() Starting SQL Workbench/J, Build 127 (2020-08-22 22:34)
2020-11-02 08:32:22 INFO  WbManager.readParameters() Java version=11.0.6, java.home=/usr/local/sdkman/candidates/java/11.0.6-open, vendor=Oracle Corporation, name=OpenJDK 64-Bit Server VM
2020-11-02 08:32:22 INFO  WbManager.readParameters() Operating System=Linux, version=3.10.0-514.10.2.el7.x86_64, platform=amd64
2020-11-02 08:32:22 INFO  WbManager.readParameters() Available memory: 1934MB
2020-11-02 08:32:22 INFO  WbManager.readParameters() Classpath: /opt/sqlworkbench-2020-09-22-build127/sqlworkbench.jar:/opt/sqlworkbench-2020-09-22-build127/ext/flatlaf.jar
2020-11-02 08:32:22 INFO  CommandRegistry.scanForExtensions() Found 0 commands in 6ms
2020-11-02 08:32:22 DEBUG LnFManager.getLnFList() Added FlatLaf Light, class: com.formdev.flatlaf.FlatLightLaf, type: ext
2020-11-02 08:32:22 DEBUG LnFManager.getLnFList() Added FlatLaf Dark, class: com.formdev.flatlaf.FlatDarkLaf, type: ext
2020-11-02 08:32:22 DEBUG LnFManager.getLnFList() Checking look & feels took: 48ms
2020-11-02 08:32:22 DEBUG MacroManager.<init> Loading default macros took 53ms
2020-11-02 08:32:22 INFO  IconMgr.<init> Using sizes: toolbar: 16, menu: 16
2020-11-02 08:32:22 DEBUG Settings.restoreWindowPosition() Restoring window position for 'workbench.gui.MainWindow', current screen size: [x: 0, y: 0, w:2560,h:1440], requested position: [x: 756, y: 107, w:1675,h:1175]
2020-11-02 08:32:22 INFO  PoiHelper.isPoiAvailable() Apache POI not available
2020-11-02 08:32:23 DEBUG DbUnitHelper.isDbUnitAvailable() DbUnit not available
2020-11-02 08:32:23 DEBUG BookmarkManager.lambda$updateInBackground$4() Panel 'Statement' was updated in 1ms (0 bookmarks)
2020-11-02 08:32:23 DEBUG ClasspathUtil.checkLibsToMove() Checking directory: /opt/sqlworkbench-2020-09-22-build127 for additional libraries
2020-11-02 08:32:23 INFO  ClasspathUtil.checkLibsToMove() Checking for ext libs took: 1ms
2020-11-02 08:32:23 INFO  ConnectionMgr.fixOracleSampleURL() Changed invalid sample URL in driver "Oracle" from: jdbc:oracle:thin://@hostname:port/service_name to: jdbc:oracle:thin:@//hostname:port/service_name
2020-11-02 08:32:23 INFO  ConnectionMgr.fixOracleSampleURL() Changed invalid sample URL in driver "Oracle/XML" from: jdbc:oracle:thin://@hostname:port/service_name to: jdbc:oracle:thin:@//hostname:port/service_name
2020-11-02 08:32:23 DEBUG XmlProfileStorage.readProfiles() Loading connection profiles from /home/username/.sqlworkbench/WbProfiles.xml
2020-11-02 08:32:23 DEBUG WbDesCipher.getInstance() WbDesCipher created
2020-11-02 08:32:23 INFO  XmlProfileStorage.readProfiles() Loaded 30 connection profiles from /home/username/.sqlworkbench/WbProfiles.xml
2020-11-02 08:32:23 DEBUG ProfileManager.readFile() 30 profiles loaded from /home/username/.sqlworkbench/WbProfiles.xml in 57ms
2020-11-02 08:32:23 INFO  ProfileManager.readProfiles() 30 profiles loaded in 58ms from 1 files
2020-11-02 08:32:25 DEBUG MacroManager.loadMacros() Loaded 21 macros from file /home/username/.sqlworkbench/WbMacros.xml for clientId:  1
2020-11-02 08:32:25 DEBUG BookmarkManager.clearBookmarksForWindow() Removed all bookmarks for window: 1
2020-11-02 08:32:26 DEBUG SqlPanel.readFromWorkspace() Restoring panel 1 from workspace /home/username/.sqlworkbench/Yucatan.wksp took 20ms
2020-11-02 08:32:26 DEBUG SqlPanel.readFromWorkspace() Restoring panel 2 from workspace /home/username/.sqlworkbench/Yucatan.wksp took 8ms
2020-11-02 08:32:26 DEBUG SqlPanel.readFromWorkspace() Restoring panel 3 from workspace /home/username/.sqlworkbench/Yucatan.wksp took 3ms
2020-11-02 08:32:26 DEBUG SqlPanel.readFromWorkspace() Restoring panel 4 from workspace /home/username/.sqlworkbench/Yucatan.wksp took 1ms
2020-11-02 08:32:26 DEBUG BookmarkManager.lambda$updateInBackground$4() Panel 'use_conturex.sql' was updated in 12ms (0 bookmarks)
2020-11-02 08:32:26 DEBUG MainWindow.loadWorkspace() Loading workspace /home/username/.sqlworkbench/Yucatan.wksp took 264ms
2020-11-02 08:32:26 DEBUG BookmarkManager.updateBookmarks() Parsing bookmarks for 4 tabs took: 2ms
2020-11-02 08:32:26 DEBUG TreeLoader.setSelectedTypes() Selected object types: [SEQUENCE, SYNONYM, SYSTEM TABLE, TABLE, VIEW]
2020-11-02 08:32:26 INFO  ConnectionMgr.getConnection() Creating new connection for "{Yucatan}/yucatan_v06@onlcelsiustcp": [user=username, url=jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp, driverClass=com.informix.jdbc.IfxDriver, driverName=Informix]
2020-11-02 08:32:26 INFO  DbDriver.loadDriverClass() Adding ClassLoader URL=file:/global/common/java/versionen/ixjdbc-4.10.12/lib/ifxjdbc.jar
2020-11-02 08:32:26 DEBUG DbMetadata.<init> WbWin-1 TAB-4: Schema term: user
2020-11-02 08:32:26 DEBUG DbMetadata.<init> WbWin-1 TAB-4: Catalog term: database
2020-11-02 08:32:26 DEBUG DbMetadata.<init> WbWin-1 TAB-4: Identifier quote character obtained from driver:  
2020-11-02 08:32:26 INFO  DbMetadata.<init> WbWin-1 TAB-4: Using DBID=informix_dynamic_server
2020-11-02 08:32:26 INFO  DbMetadata.<init> WbWin-1 TAB-4: Using identifier quote character: "
2020-11-02 08:32:26 INFO  DbMetadata.<init> WbWin-1 TAB-4: Using search string escape character: \
2020-11-02 08:32:26 INFO  DbMetadata.retrieveObjectTypes() WbWin-1 TAB-4: Table types returned by the JDBC driver: [SYSTEM TABLE, TABLE, VIEW]
2020-11-02 08:32:26 INFO  DbMetadata.<init> WbWin-1 TAB-4: Using catalog separator: :
2020-11-02 08:32:26 DEBUG GenericSchemaInfoReader.logSettings() WbWin-1 TAB-4: Re-Use statement: false, cache current schema: false, SQL: null
2020-11-02 08:32:26 DEBUG GenericCatalogInformationReader.<init> WbWin-1 TAB-4: Cache current schema: false
2020-11-02 08:32:26 INFO  WbConnection.runConnectScript() Executing connect script for connection [informix_dynamic_server]: User=username, Database=yucatan_v06, URL=jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp ...
2020-11-02 08:32:26 INFO  StatementRunner.logStatement() Executed: (WbWin-1 TAB-4, username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp)
EXECUTE PROCEDURE IFX_ALLOW_NEWLINE('t')
(4ms)
2020-11-02 08:32:26 DEBUG WbConnection.runConnectScript()   (WbWin-1 TAB-4) Executed statement: EXECUTE PROCEDURE IFX_ALLOW_NEWLINE('t')
2020-11-02 08:32:26 INFO  StatementRunner.logStatement() Executed: (WbWin-1 TAB-4, username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp)
WbVarDef -variable=dbname -query="SELECT trim(dbinfo('dbname')) from sysmaster:sysdual"
(4ms)
2020-11-02 08:32:26 DEBUG WbConnection.runConnectScript()   (WbWin-1 TAB-4) Executed statement: WbVarDef -variable=dbname -query="SELECT trim(dbinfo('dbname')) from sysmaster:sysdual"
2020-11-02 08:32:26 INFO  StatementRunner.logStatement() Executed: (WbWin-1 TAB-4, username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp)
WbVarDef -variable=connecttime -query="SELECT   TO_CHAR(current, '%Y-%m-%d-%H-%M-%S')  from sysmaster:sysdual"
(3ms)
2020-11-02 08:32:26 DEBUG WbConnection.runConnectScript()   (WbWin-1 TAB-4) Executed statement: WbVarDef -variable=connecttime -query="SELECT   TO_CHAR(current, '%Y-%m-%d-%H-%M-%S')  from sysmaster:sysdual"
2020-11-02 08:32:26 INFO  ConnectionMgr.getConnection() Connected to: [Informix Dynamic Server], Database version info: [12.10.FC11WE], Database version number: [12.10], Driver version: [4.10.JC12], JDBC version: [4.0], ID: [WbWin-1 TAB-4]
2020-11-02 08:32:26 DEBUG ConnectionInfo.updateDBSwitcher() Removing DB switcher for: WbWin-1 TAB-4, username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp
2020-11-02 08:32:26 DEBUG DbTreePanel.setConnectionToUse() Using connection WbWin-1 TAB-4, username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp for DbTree
2020-11-02 08:32:26 DEBUG TreeLoader.setConnection() Using object types: [SEQUENCE, SYNONYM, SYSTEM TABLE, TABLE, VIEW]
2020-11-02 08:32:26 DEBUG DbTreePanel.loadTypes() Using the following object types for the type filter: [SEQUENCE, SYNONYM, SYSTEM TABLE, TABLE, VIEW]
2020-11-02 08:32:26 DEBUG DbMetadata.getCatalogInformation() WbWin-1 TAB-4: Retrieving 38 catalogs using getCatalogs() took: 3ms
2020-11-02 08:32:26 DEBUG TreeLoader.loadSchemas() Loading schemas for catalog: yucatan_v06
2020-11-02 08:32:26 WARN  DbMetadata.getSchemas() WbWin-1 TAB-4: getSchemas() called with catalog parameter, but current connection is not configured to support that Backtrace
java.lang.Exception: Backtrace
    at workbench.db.DbMetadata.getSchemas(DbMetadata.java:2624)
    at workbench.gui.dbobjects.objecttree.TreeLoader.loadSchemas(TreeLoader.java:433)
    at workbench.gui.dbobjects.objecttree.TreeLoader.loadChildren(TreeLoader.java:1227)
    at workbench.gui.dbobjects.objecttree.DbObjectsTree.doLoad(DbObjectsTree.java:612)
    at workbench.gui.dbobjects.objecttree.DbObjectsTree.access$000(DbObjectsTree.java:64)
    at workbench.gui.dbobjects.objecttree.DbObjectsTree$9.run(DbObjectsTree.java:598)

2020-11-02 08:32:26 DEBUG DbMetadata.getSchemas() WbWin-1 TAB-4: Retrieving 3 schemas using getSchemas() took 13ms
2020-11-02 08:32:26 DEBUG TreeLoader.loadSchemas() Loaded 3 schemas. Currently selected types: [SEQUENCE, SYNONYM, SYSTEM TABLE, TABLE, VIEW]
2020-11-02 08:32:29 DEBUG CompletionHandler.updateSelectionList() Completion invoked for statement:
SELECT *
FROM kund^|^
WHERE 1=1
--group by 1
--order by 1
 
2020-11-02 08:32:29 DEBUG DbMetadata.getCatalogInformation() WbWin-1 TAB-4: Retrieving 38 catalogs using getCatalogs() took: 2ms
2020-11-02 08:32:29 DEBUG DbMetadata.getSchemas() WbWin-1 TAB-4: Retrieving 3 schemas using getSchemas() took 5ms
2020-11-02 08:32:29 DEBUG CompletionHandler.updateSelectionList() Auto-completion invoked for SELECT, analyzer: SelectAnalyzer, context: 11, currentSchema: yucatan_v06, element count: 3 (32ms)
2020-11-02 08:32:37 DEBUG DbObjectCacheFactory.getCache() Creating new cache for: WbWin-1 TAB-4, username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp
2020-11-02 08:32:37 ERROR ObjectCachePersistence.loadFromLocalFile() Could not read local storage entry
java.lang.NullPointerException: entry
    at java.base/java.util.Objects.requireNonNull(Objects.java:246)
    at java.base/java.util.zip.ZipFile.getInputStream(ZipFile.java:372)
    at workbench.db.objectcache.ObjectCachePersistence.loadFromLocalFile(ObjectCachePersistence.java:109)
    at workbench.db.objectcache.DbObjectCacheFactory.loadCache(DbObjectCacheFactory.java:85)
    at workbench.db.objectcache.DbObjectCacheFactory.getCache(DbObjectCacheFactory.java:157)
    at workbench.db.WbConnection.getObjectCache(WbConnection.java:459)
    at workbench.gui.completion.CompletionPopup.doPaste(CompletionPopup.java:615)
    at workbench.gui.completion.CompletionPopup.closePopup(CompletionPopup.java:412)
    at workbench.gui.completion.CompletionPopup.quickSearchValueSelected(CompletionPopup.java:294)
    at workbench.gui.completion.CompletionSearchField.keyPressed(CompletionSearchField.java:66)
    at java.desktop/java.awt.Component.processKeyEvent(Component.java:6590)
    at java.desktop/javax.swing.JComponent.processKeyEvent(JComponent.java:2849)
    at java.desktop/java.awt.Component.processEvent(Component.java:6409)
    at java.desktop/java.awt.Container.processEvent(Container.java:2263)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
    at java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1950)
    at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:870)
    at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1139)
    at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:1009)
    at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:835)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

2020-11-02 08:32:41 DEBUG CompletionHandler.updateSelectionList() Completion invoked for statement:
SELECT *
FROM informix.kund^|^
WHERE 1=1
--group by 1
--order by 1
 
2020-11-02 08:32:41 DEBUG DbMetadata.getCatalogInformation() WbWin-1 TAB-4: Retrieving 38 catalogs using getCatalogs() took: 3ms
2020-11-02 08:32:41 DEBUG DbMetadata.getSchemas() WbWin-1 TAB-4: Retrieving 3 schemas using getSchemas() took 6ms
2020-11-02 08:32:41 DEBUG CompletionHandler.updateSelectionList() Auto-completion invoked for SELECT, analyzer: SelectAnalyzer, context: 11, currentSchema: yucatan_v06, element count: 3 (18ms)
2020-11-02 08:33:51 DEBUG MainWindow.windowClosing() Main window closing
2020-11-02 08:33:51 DEBUG FileVersioner.slideVersions() Adjusting backup versions for "/home/username/.sqlworkbench/Yucatan.wksp" took 4ms
2020-11-02 08:33:51 DEBUG FileVersioner.createBackup() Created file "/home/username/.sqlworkbench/Yucatan.wksp.5" as a backup of "/home/username/.sqlworkbench/Yucatan.wksp" in 13ms
2020-11-02 08:33:51 DEBUG MainWindow._doSaveWorkspace() Workspace /home/username/.sqlworkbench/Yucatan.wksp saved in 35ms
2020-11-02 08:33:51 DEBUG FileVersioner.slideVersions() Adjusting backup versions for "/home/username/.sqlworkbench/WbMacros.xml" took 10ms
2020-11-02 08:33:51 DEBUG FileVersioner.createBackup() Created file "/home/username/.sqlworkbench/WbMacros.xml.5" as a backup of "/home/username/.sqlworkbench/WbMacros.xml" in 17ms
2020-11-02 08:33:51 DEBUG MacroStorage.saveMacros() Saved 20 macros to /home/username/.sqlworkbench/WbMacros.xml in 67ms
2020-11-02 08:33:51 DEBUG ObjectCachePersistence.saveToLocalFile() Current object cache written to: /home/username/.sqlworkbench/.cache/username@informix_sqli_celsius_1526_yucatan_v06_informixserver_onlcelsiustcp.wbcache
2020-11-02 08:33:51 DEBUG DbObjectCacheFactory.saveCache() Saving cache for WbWin-1 TAB-4, username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp took 13ms
2020-11-02 08:33:51 DEBUG ConnectionMgr.disconnect() Trying to physically close the connection with id=WbWin-1 TAB-4
2020-11-02 08:33:51 INFO  ConnectionMgr.closeConnection() Disconnecting: [yucatan_v06@onlcelsiustcp], ID=WbWin-1 TAB-4
2020-11-02 08:33:51 DEBUG WbConnection.shutdown() Connection WbWin-1 TAB-4 closed.
2020-11-02 08:33:51 DEBUG ConnectionMgr.closeConnection() Disconnecting connection with ID=WbWin-1 TAB-4, username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp took 3ms
2020-11-02 08:33:51 DEBUG DbObjectCacheFactory.propertyChange() Connection WbWin-1 TAB-4, username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp was closed. Reference count for this cache is: 0
2020-11-02 08:33:51 DEBUG ObjectCachePersistence.saveToLocalFile() Current object cache written to: /home/username/.sqlworkbench/.cache/username@informix_sqli_celsius_1526_yucatan_v06_informixserver_onlcelsiustcp.wbcache
2020-11-02 08:33:51 DEBUG DbObjectCacheFactory.saveCache() Saving cache for WbWin-1 TAB-4, username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp took 6ms
2020-11-02 08:33:51 DEBUG ObjectCache.clear() Removed all entries from the cache
2020-11-02 08:33:51 DEBUG DbObjectCacheFactory.propertyChange() Removed cache for WbWin-1 TAB-4, username@jdbc:informix-sqli://celsius:1526/yucatan_v06:INFORMIXSERVER=onlcelsiustcp
2020-11-02 08:33:51 DEBUG BookmarkManager.clearBookmarksForWindow() Removed all bookmarks for window: 1
2020-11-02 08:33:51 DEBUG BookmarkManager.lambda$updateInBackground$4() Panel 'Statement' was updated in 0ms (0 bookmarks)
2020-11-02 08:33:51 DEBUG BookmarkManager.lambda$updateInBackground$4() Panel 'Statement' was updated in 0ms (0 bookmarks)
2020-11-02 08:33:51 DEBUG WbManager.closeAllWindows() Closing all open windows
2020-11-02 08:33:51 DEBUG Settings.saveSettings() Saving global settings to: /home/username/.sqlworkbench/workbench.settings
2020-11-02 08:33:51 INFO  WbManager.doShutdown() Stopping SQL Workbench/J, Build 127
2020-11-02 08:33:51 INFO   =================== Log stopped ===================

Thomas Kellerer

unread,
Nov 8, 2020, 5:55:34 AM11/8/20
to sql-wo...@googlegroups.com
As far as I can tell, the driver version you are using doesn't support DatabaseMetadata.getSchemas() function which is used to determine the current schema for the auto-completion (I am unsure why this worked in 125 though - but I did change some things around schema handling since then).

You can solve this in two ways:

1. Configure SQL Workbench to use a SQL query, rather then the JDBC driver's method:

To do that, please edit workbench.settings (the exact location is shown in the options and help dialogs) with a text editor (after closing SQL Workbench) and add the lines:

workbench.db.informix_dynamic_server.currentschema.query=select current_user from systables where tabid = 1
workbench.db.informix_dynamic_server.schema.retrieve.change.catalog=true

If you know of a better SQL statement to get the "current schema" (which is the same as the current user if I understand things correctly) then feel free to use that.

2. Upgrade the driver to 4.50 - I tested it with that one and things seem to be working correctly

If you do that, you should add the line

workbench.db.informix_dynamic_server.schema.retrieve.change.catalog=true

to workbench.settings as the newer driver also supports getting the schemas for a specific database/catalog rather than only for the curren.t

Regards
Thomas

bdon...@gmail.com schrieb am 27.10.2020 um 16:44:
>

bdon...@gmail.com

unread,
Nov 18, 2020, 3:03:27 PM11/18/20
to SQL Workbench/J - DBMS independent SQL tool
Tested it today with JDBC driver version 4.5 and can confirm the exceptions in the log disappeared, but the solution has one enormous disadvantage - you can see only tables created on your own in auto completion. Normally the vendor of a software solution has its own schema i. e. "yucatan" in my case. At the moment I can't see those tables in auto completion. Think of MSSQL that uses normally "dbo" as schema/owner of a table but you can access it in auto completion though.

Thomas Kellerer

unread,
Nov 19, 2020, 4:21:11 AM11/19/20
to sql-wo...@googlegroups.com
Well, if no schema prefix is given (when auto-completion is invoked), then how should SQL Workbench know for which schema the tables should be displayed?
There could be potentially hundreds of schemas in the database.

I don't really know Informix, but my understanding is, that there is (exactly) one default schema for the current user. So if the query doesn't reference a different schema, that seems the only choice for the auto-completion.

That's the same on MS SQL. The "dbo" schema is typically the default schema for a user, so if you invoke auto-completion without a prefix, the default schema is used to show the list of tables. If you want to access a different schema, you have to explicitly mention it in the query (and thus it's available to auto-completion).

Does Informix have something similar like Postgres' "search path"?
There you can specify a _list_ of schemas along which unqualified tables are searched? As far as I could tell, it doesn't.

Or does Informix have some way of switching the current schema? e.g. like Postgres' "set schema" or Oracle's "alter session set current_schema"?
If that is the case, then you could use that (e.g. as a "Post connect" script). You would most likely need to adjust the query that detects the "current" schema then.

Thomas
> --
> You received this message because you are subscribed to the Google Groups "SQL Workbench/J - DBMS independent SQL tool" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to sql-workbenc...@googlegroups.com <mailto:sql-workbenc...@googlegroups.com>.
> To view this discussion on the web visit https://groups.google.com/d/msgid/sql-workbench/9f022da5-0b42-4ffe-8b8d-d786cf8717cdn%40googlegroups.com <https://groups.google.com/d/msgid/sql-workbench/9f022da5-0b42-4ffe-8b8d-d786cf8717cdn%40googlegroups.com?utm_medium=email&utm_source=footer>.

bdon...@gmail.com

unread,
Nov 26, 2020, 4:23:48 PM11/26/20
to SQL Workbench/J - DBMS independent SQL tool
Informix is here quite different. In Informix the schema is the username. There is no way to explicitly create a schema or change it. At least I don't know one and I am working with Informix for a long time. As a result the auto-completion for table names in current versions of SqlWorkbench is of no use because there a no tables in my own schema.

Thomas Kellerer

unread,
Nov 26, 2020, 4:44:19 PM11/26/20
to sql-wo...@googlegroups.com
> Informix is here quite different. In Informix the schema is the username.
That's exactly how Oracle works as well.

There, it's possible to run "alter session set current schema = ..." to change to a different schema (without changing the current logged-in user).
And the code-completion will check that "current schema" to populate the auto-completion.

But as long as there is no SQL query that I can use to determine the schema for which the tables should be displayed there is not much I can do.

Or would you prefer to see a list of all tables in all schemas?
That could potentially be thousands of tables, not sure if that would make sense.

Thomas
> To view this discussion on the web visit https://groups.google.com/d/msgid/sql-workbench/3c21cf1c-5afd-4d4f-8ad8-dfb2c72b6cd4n%40googlegroups.com <https://groups.google.com/d/msgid/sql-workbench/3c21cf1c-5afd-4d4f-8ad8-dfb2c72b6cd4n%40googlegroups.com?utm_medium=email&utm_source=footer>.

bdon...@gmail.com

unread,
Nov 27, 2020, 1:50:35 AM11/27/20
to SQL Workbench/J - DBMS independent SQL tool
> There, it's possible to run "alter session set current schema = ..." to change to a different schema (without changing the current logged-in user).
> And the code-completion will check that "current schema" to populate the auto-completion.

There is no "set current schema" command in Informix.


> Or would you prefer to see a list of all tables in all schemas?
> That could potentially be thousands of tables, not sure if that would make sense.

That would be the solution for me . By the way this is exactly how the old versions of sqlworkbench worked.

Thomas Kellerer

unread,
Nov 27, 2020, 4:32:30 AM11/27/20
to sql-wo...@googlegroups.com
I am a bit surprised that 125 worked differently, but in any case: you can disable the use of the "current schema" for Informix by running:

WbSetDbConfig completion.current.namespace=false;

This only needs to be done once, the setting is persisted in workbench.settings.

If you want to disable this for all databases, use:

WbSetConfig workbench.editor.autocompletion.current.schema=false;

(Note the missing "Db" in the above command in contrast to the first one)

If you want, you can also add a list of schemas that should always be excluded in the completion window.
Maybe that makes sense for some Informix internal schemas that you never use:

WbSetDbConfig completion.ignore.schema=schema_one,schema_two;

Regards
Thomas
> To view this discussion on the web visit https://groups.google.com/d/msgid/sql-workbench/45fc5dd5-1eaa-476f-8ae6-ce2c964cec91n%40googlegroups.com <https://groups.google.com/d/msgid/sql-workbench/45fc5dd5-1eaa-476f-8ae6-ce2c964cec91n%40googlegroups.com?utm_medium=email&utm_source=footer>.

bdon...@gmail.com

unread,
Dec 1, 2020, 3:59:02 PM12/1/20
to SQL Workbench/J - DBMS independent SQL tool
Than you that was exactly what I was looking for.

BTW: Is there a configuration option to prevent the insertion of the schema name by auto completion?

Thomas Kellerer

unread,
Dec 2, 2020, 1:57:35 PM12/2/20
to sql-wo...@googlegroups.com
Currently there is no option to achieve that, but it probably makes sense to support that for cases like this.

Regards
Thomas
> To view this discussion on the web visit https://groups.google.com/d/msgid/sql-workbench/be4ab8ac-6f56-44a3-8449-ac86acd207f6n%40googlegroups.com <https://groups.google.com/d/msgid/sql-workbench/be4ab8ac-6f56-44a3-8449-ac86acd207f6n%40googlegroups.com?utm_medium=email&utm_source=footer>.

bdon...@gmail.com

unread,
Feb 5, 2023, 12:56:04 PM2/5/23
to SQL Workbench/J - DBMS independent SQL tool

Hello,

I have again problems with the auto completion in from closes along with INFORMIX.

My current version is 128.4 but I can reproduce this behavior with current sources.

I think I should mention my special settings for INFORMIX you advised  me further up this thread:
workbench.db.informix_dynamic_server.completion.current.namespace=false


The starting point is again a simple query:
> select *
> from k|

The pipe sign symbols the place i press ctrl enter for auto completion. If I do so the routines end up in a NPE.

I try to explain how it happens. I start in the retrieveTables() method.

Method: workbench.gui.completion.BaseAnalyzer.retrieveTables()

  calls Method workbench.db.objectcache.ObjectCache.getTableFunctions(WbConnection dbConnection, Namespace requestedNsp)
    parameter requestedNsp is null

    calls method workbench.db.objectcache.ObjectCache.getTableFunctions(WbConnection dbConnection, Namespace requestedNsp)
      parameter requestedNsp is still null

      calls method workbench.db.objectcache.ObjectCache.getSearchPath(WbConnection dbConn, Namespace requestedNamespace)
        parameter requestedNamespace is still null

        the method checks whether completion.current.namespace is set
        because it is not set it checks if informix supports schemas the answer is true
        a list with a null Namespace is produced
        the list is returned
            |if (!dbConn.getDbSettings().useCurrentNamespaceForCompletion())
            |{
            |  if (supportsSchemas)
            |  {
            |    return CollectionUtil.arrayList((Namespace)null); <------ root of NPE
            |  }

      back in getTableFunctions() the program references the schema attribute of the first element of the list
      =========> BANG NPE <=======
        |else if (path.size() > 0)
        |{
        |  currentSchema = path.get(0).getSchema(); <-----NPE
        |  currentCatalog = dbConnection.getMetadata().getCurrentCatalog();
        |} 

Futher down in getTableFunctions() there is a loop through all paths.
So this call would result in NPE too:

dbConnection.getMetadata().getProcedureReader().getTableFunctions(nsp.getCatalog(), nsp.getSchema(), "%");


Regards
Bernhard Donaubauer

Thomas Kellerer

unread,
Feb 5, 2023, 3:43:19 PM2/5/23
to sql-wo...@googlegroups.com
Thanks for the detailed analysis. I will fix this.

For the time being you can disable the retrieval of table functions for code completion completely:

workbench.db.informix.completion.tables.include.functions=false

Regards
Thomas
> To view this discussion on the web visit https://groups.google.com/d/msgid/sql-workbench/485ad57f-0d47-447d-b337-27b5762abab6n%40googlegroups.com <https://groups.google.com/d/msgid/sql-workbench/485ad57f-0d47-447d-b337-27b5762abab6n%40googlegroups.com?utm_medium=email&utm_source=footer>.
Reply all
Reply to author
Forward
0 new messages