Please find below my response,
You post some SQL but don't say how that was executed ... an SQL query? - Yes, it executes as a SQL query.
It is a JDOQL query, we create a query object and set filter using below code,
final Query query = persistenceManager.newQuery
(
persistenceManager.getExtent( JDO, subclasses)
);
final StringBuilder buffer = StringX.value( null, filters);
if( null != buffer )
query.setFilter
(
buffer.toString()
);
In query object we get -
"SELECT FROM ConfigurationManagement WHERE lastModifiedTime_ > 1608360447673 && version_ == 0 && deleted_ == false RANGE 0,1000"
Class is ConfigurationManagement
Then we have following value of FetchGroups,
[FetchGroup : 200 for ConfigurationManagement members=guid_, pk_, masterNode_, locationTag_, nodes_, modifiable=true, postLoad=false, FetchGroup : 201 for ComputerSystem members=ipInterfaces_, signature_, pk_, modifiable=true, postLoad=false, FetchGroup : 202 for ConfigurationManagementNode members=realizedOS_, guid_, pk_, parentConfigurationManagementNode_, locationTag_, name_, modifiable=true, postLoad=false, FetchGroup : 115 for IpInterface members=ipAddress_, pk_, modifiable=true, postLoad=false, FetchGroup : 203 for OperatingSystem members=pk_, parentOperatingSystem_, modifiable=true, postLoad=false, FetchGroup : 64 for IpAddress members=pk_, stringNotation_, modifiable=true, postLoad=false]
Query in error:
SELECT subq.GUID_X,subq.LOCATIONTAG_X,subq.PK_X,subq.GUID_X,subq.LOCATIONTAG_X,subq.NAME_X,subq.PK_X,subq.PK__PARENTCONFIGNODE_7C872E69X,subq.PK__REALIZEDOS_X,subq.JDOLOCKX,subq.JDOCLASSX,subq.JDOLOCKX,subq.JDOCLASSX FROM (SELECT A0.GUID_X,A0.LOCATIONTAG_X,A0.PK_X,B1.GUID_X,B1.LOCATIONTAG_X,B1.NAME_X,B0.PK_X,B0.PK__PARENTCONFIGNODE_7C872E69X,B0.PK__REALIZEDOS_X,B1.JDOLOCKX,B1.JDOCLASSX,A0.JDOLOCKX,A0.JDOCLASSX,row_number()over() rn FROM DB2INST1."COLLECTION" A0 LEFT OUTER JOIN DB2INST1.CMNODE B0 ON A0.PK__MASTERNODE_X = B0.PK_X LEFT OUTER JOIN DB2INST1."FUNCTION" B1 ON B0.PK_X = B1.PK_X WHERE A0.JDOCLASSX = 'ConfigurationManagement' AND A0.LASTMODIFIEDTIME_X > 1606811235834 AND A0.VERSION_X = 0 AND A0.DELETED_X = 0) subq WHERE subq.rn<=1000
StackTrace:
com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-203, SQLSTATE=42702, SQLERRMC=SUBQ.GUID_X, DRIVER=3.64.106
at com.ibm.db2.jcc.am.bd.a(bd.java:679)
at com.ibm.db2.jcc.am.bd.a(bd.java:60)
at com.ibm.db2.jcc.am.bd.a(bd.java:127)
at com.ibm.db2.jcc.am.io.c(io.java:2706)
at com.ibm.db2.jcc.am.io.d(io.java:2694)
at com.ibm.db2.jcc.am.io.a(io.java:2143)
at com.ibm.db2.jcc.am.jo.a(jo.java:7353)
at com.ibm.db2.jcc.t4.ab.h(ab.java:141)
at com.ibm.db2.jcc.t4.ab.b(ab.java:41)
at com.ibm.db2.jcc.t4.p.a(p.java:32)
at com.ibm.db2.jcc.t4.qb.i(qb.java:135)
at com.ibm.db2.jcc.am.io.gb(io.java:2112)
at com.ibm.db2.jcc.am.jo.rc(jo.java:3526)
at com.ibm.db2.jcc.am.jo.xc(jo.java:3658)
at com.ibm.db2.jcc.am.jo.a(jo.java:588)
at com.ibm.db2.jcc.am.Connection.prepareStatementX(Connection.java:2355)
at com.ibm.db2.jcc.am.Connection.prepareStatementX(Connection.java:2301)
at com.ibm.db2.jcc.am.Connection.prepareStatement(Connection.java:1848)
at org.apache.commons.dbcp2.DelegatingConnection.prepareStatement(DelegatingConnection.java:318)
at org.apache.commons.dbcp2.DelegatingConnection.prepareStatement(DelegatingConnection.java:318)
at org.datanucleus.store.rdbms.SQLController.getStatementForQuery(SQLController.java:349)
at org.datanucleus.store.rdbms.query.RDBMSQueryUtils.getPreparedStatementForQuery(RDBMSQueryUtils.java:224)
at org.datanucleus.store.rdbms.query.JDOQLQuery.performExecute(JDOQLQuery.java:629)
at org.datanucleus.store.query.Query.executeQuery(Query.java:1973)
at org.datanucleus.store.query.Query.executeWithArray(Query.java:1862)
at org.datanucleus.store.query.Query.execute(Query.java:1844)
at org.datanucleus.api.jdo.JDOQuery.executeInternal(JDOQuery.java:439)
at org.datanucleus.api.jdo.JDOQuery.execute(JDOQuery.java:263)
at xxx.CloseAll.execute
We are using DB2 database. Please let me know if any further info is required.
Thanks.