I see, The reason for this is that you aliased your nested select (jobTaskCount) to "BlaBlaBla", but didn't actually select it in the outer query. In other words "BlaBlaBla" doesn't actually exist. You'd have to either
- Select jobTaskCount in the outer query, in order to formally declare "BlaBlaBla" - Keep jobTaskCount an anonymous nested select I'll have to review a couple of query rendering steps though. jOOQ shouldn't create a mismatch between bind variables and bound values. Instead, the (bad) SQL should be rendered to MySQL and MySQL should tell you about the illegal syntax. I'll check up on this: https://sourceforge.net/apps/trac/jooq/ticket/493 Thanks for reporting this. 2011/5/7 FractalizeR <[email protected]>: > The problem arises when I add name to a field. Log is: > > Server application started. > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > DEBUG org.jooq.impl.AbstractQuery - Executing query : select > distribucalc.job.id, distribucalc.job.jobtype_id from distribucalc.job where > (distribucalc.job.status = 'EXECUTING' and BlaBlaBla = 0) limit 0, 1 for > update > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > SelectQueryImpl [ select distribucalc.job.id, distribucalc.job.jobtype_id > from distribucalc.job where (distribucalc.job.status = 'EXECUTING' and > BlaBlaBla = 0) limit 0, 1 for update ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > SelectFieldList [ distribucalc.job.id, distribucalc.job.jobtype_id ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.job.id ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.job.jobtype_id ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : TableList [ > distribucalc.job ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : Job [ > distribucalc.job ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : Distribucalc > [ distribucalc ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.job.id ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.job.jobtype_id ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.job.user_id ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.job.status ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.job.position ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.job.data_in ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.job.data_out ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.job.comment ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.job.active ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : JoinList [ > ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > ConditionProviderImpl [ (distribucalc.job.status = 'EXECUTING' and BlaBlaBla > = 0) ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > CombinedCondition [ (distribucalc.job.status = 'EXECUTING' and BlaBlaBla = > 0) ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > CompareCondition [ distribucalc.job.status = 'EXECUTING' ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.job.status ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : Constant [ > 'EXECUTING' ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > CompareCondition [ BlaBlaBla = 0 ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : FieldAlias [ > BlaBlaBla ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > AliasProviderImpl [ BlaBlaBla ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > SelectQueryAsField [ (select count(distribucalc.task.id) from > distribucalc.task where (distribucalc.task.job_id = distribucalc.job.id and > not(distribucalc.task.status in ('EXECUTING', 'QUEUED')))) ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > SelectQueryImpl [ select count(distribucalc.task.id) from distribucalc.task > where (distribucalc.task.job_id = distribucalc.job.id and > not(distribucalc.task.status in ('EXECUTING', 'QUEUED'))) ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > SelectFieldList [ count(distribucalc.task.id) ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : Count [ > count(distribucalc.task.id) ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.task.id ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : TableList [ > distribucalc.task ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : Task [ > distribucalc.task ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : Distribucalc > [ distribucalc ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.task.id ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.task.job_id ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.task.status ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.task.user_id ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.task.last_updated ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.task.data_in ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.task.data_out ] > 01:51:24 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.task.has_data_out ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.task.active ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : JoinList [ > ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > ConditionProviderImpl [ (distribucalc.task.job_id = distribucalc.job.id and > not(distribucalc.task.status in ('EXECUTING', 'QUEUED'))) ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > CombinedCondition [ (distribucalc.task.job_id = distribucalc.job.id and > not(distribucalc.task.status in ('EXECUTING', 'QUEUED'))) ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > CompareCondition [ distribucalc.task.job_id = distribucalc.job.id ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.task.job_id ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.job.id ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : NotCondition > [ not(distribucalc.task.status in ('EXECUTING', 'QUEUED')) ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : InCondition > [ distribucalc.task.status in ('EXECUTING', 'QUEUED') ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > TableFieldImpl [ distribucalc.task.status ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : Constant [ > 'EXECUTING' ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : Constant [ > 'QUEUED' ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : FieldList [ > ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > ConditionProviderImpl [ 1 = 1 ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > SortFieldList [ ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : Constant [ 0 > ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : FieldList [ > ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > ConditionProviderImpl [ 1 = 1 ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : > SortFieldList [ ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.AttachableImpl - Attaching : Limit [ > limit 0, 1 ] > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.StopWatch - Parts attached : Total: 679.489ms > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.StopWatch - SQL rendered : Total: 680.529ms, > +1.039ms > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.StopWatch - Statement prepared : Total: 681.179ms, > +0.65ms > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.JooqUtil - Binding variable 1 : EXECUTING (class > ru.fractalizer.distribucalc.server.db.structure.enums.JobStatus) > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.JooqUtil - Binding variable 2 : EXECUTING (class > ru.fractalizer.distribucalc.server.db.structure.enums.TaskStatus) > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > TRACE org.jooq.impl.JooqUtil - Binding variable 3 : QUEUED (class > ru.fractalizer.distribucalc.server.db.structure.enums.TaskStatus) > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > DEBUG org.jooq.impl.StopWatch - Statement executed : Total: 683.308ms, > +2.128ms > 01:51:25 [ru.fractalizer.distribucalc.server.runtime.TaskRequeuerThread] > ERROR r.f.d.s.runtime.JobSummarizerThread - Cannot select EXECUTING jobs, > that have no active tasks > ru.fractalizer.distribucalc.server.core.OperationFailedException: Cannot > select EXECUTING jobs, that have no active tasks > at > ru.fractalizer.distribucalc.server.db.managers.JobManager.lockAndGetNextExecutingThatFinished(JobManager.java:112) > ~[classes/:na] > at > ru.fractalizer.distribucalc.server.runtime.JobSummarizerThread.run(JobSummarizerThread.java:44) > ~[classes/:na] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > [na:1.6.0_25] > at > java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) > [na:1.6.0_25] > at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) > [na:1.6.0_25] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) > [na:1.6.0_25] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) > [na:1.6.0_25] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) > [na:1.6.0_25] > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > [na:1.6.0_25] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > [na:1.6.0_25] > at java.lang.Thread.run(Thread.java:662) [na:1.6.0_25] > Caused by: java.sql.SQLException: Parameter index out of range (3 > number > of parameters, which is 2). > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) > ~[mysql-connector-java-5.1.16.jar:na] > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) > ~[mysql-connector-java-5.1.16.jar:na] > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) > ~[mysql-connector-java-5.1.16.jar:na] > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) > ~[mysql-connector-java-5.1.16.jar:na] > at > com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3717) > ~[mysql-connector-java-5.1.16.jar:na] > at > com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3701) > ~[mysql-connector-java-5.1.16.jar:na] > at > com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4541) > ~[mysql-connector-java-5.1.16.jar:na] > at > com.jolbox.bonecp.PreparedStatementHandle.setString(PreparedStatementHandle.java:1029) > ~[bonecp-0.7.1-rc5.jar:0.7.1-rc5] > at org.jooq.impl.JooqUtil.bind(JooqUtil.java:273) ~[jooq-1.5.8.jar:na] > at org.jooq.impl.JooqUtil.bind(JooqUtil.java:289) ~[jooq-1.5.8.jar:na] > at org.jooq.impl.Constant.bind(Constant.java:96) ~[jooq-1.5.8.jar:na] > at org.jooq.impl.InCondition.bind(InCondition.java:83) > ~[jooq-1.5.8.jar:na] > at org.jooq.impl.NotCondition.bind(NotCondition.java:76) > ~[jooq-1.5.8.jar:na] > at org.jooq.impl.CombinedCondition.bind(CombinedCondition.java:108) > ~[jooq-1.5.8.jar:na] > at > org.jooq.impl.ConditionProviderImpl.bind(ConditionProviderImpl.java:169) > ~[jooq-1.5.8.jar:na] > at > org.jooq.impl.AbstractResultProviderSelectQuery.bind(AbstractResultProviderSelectQuery.java:130) > ~[jooq-1.5.8.jar:na] > at org.jooq.impl.SelectQueryAsField.bind(SelectQueryAsField.java:76) > ~[jooq-1.5.8.jar:na] > at org.jooq.impl.AliasProviderImpl.bind(AliasProviderImpl.java:116) > ~[jooq-1.5.8.jar:na] > at org.jooq.impl.FieldAlias.bind(FieldAlias.java:79) > ~[jooq-1.5.8.jar:na] > at org.jooq.impl.CompareCondition.bind(CompareCondition.java:76) > ~[jooq-1.5.8.jar:na] > at org.jooq.impl.CombinedCondition.bind(CombinedCondition.java:108) > ~[jooq-1.5.8.jar:na] > at > org.jooq.impl.ConditionProviderImpl.bind(ConditionProviderImpl.java:169) > ~[jooq-1.5.8.jar:na] > at > org.jooq.impl.AbstractResultProviderSelectQuery.bind(AbstractResultProviderSelectQuery.java:130) > ~[jooq-1.5.8.jar:na] > at org.jooq.impl.AbstractQueryPart.bind(AbstractQueryPart.java:164) > ~[jooq-1.5.8.jar:na] > at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:87) > ~[jooq-1.5.8.jar:na] > at > org.jooq.impl.AbstractResultProviderQuery.fetch(AbstractResultProviderQuery.java:87) > ~[jooq-1.5.8.jar:na] > at > org.jooq.impl.AbstractResultProviderQuery.fetchOne(AbstractResultProviderQuery.java:158) > ~[jooq-1.5.8.jar:na] > at > org.jooq.impl.AbstractDelegatingResultProviderQuery.fetchOne(AbstractDelegatingResultProviderQuery.java:145) > ~[jooq-1.5.8.jar:na] > at > ru.fractalizer.distribucalc.server.db.managers.JobManager.lockAndGetNextExecutingThatFinished(JobManager.java:108) > ~[classes/:na] > ... 10 common frames omitted > > Process finished with exit code 1 > >
