Hi,

> Any progress to report on this?

Yes and no. I found a workaround: disable the optimization for
IN(SELECT...) queries. To do that, set the system property
h2.optimizeInJoin to false (or using version 1.0.79). However I
couldn't solve the problem yet.

Regards,
Thomas


>
> On Feb 5, 1:46 pm, Wes Clark <[email protected]> wrote:
>> Great. We'd like to move to the new version.
>>
>> On Feb 5, 1:42 pm, Thomas Mueller <[email protected]>
>> wrote:
>>
>> > Hi,
>>
>> > I will have a look what the problem is. The query seems to be correct.
>> > Here is a simpler test case:
>>
>> > select 1 from dual a where 1 in(select 1 from dual b where 1 in(select
>> > 1 from dual c where a.x=1));
>>
>> > Regards,
>> > Thomas
>>
>> > On Mon, Feb 2, 2009 at 7:23 PM, Wes Clark <[email protected]> wrote:
>>
>> > > Here are the create table and create index statements that will
>> > > reproduce the problem:
>> > > create table cc_check (Status integer NOT NULL, CheckInstructions
>> > > integer NULL, UpdateTime datetime NOT NULL, MailToAddress varchar(255)
>> > > NULL, PendEscalationForBulk bit NULL, InvoiceNumber varchar(255) NULL,
>> > > CreateTime datetime NOT NULL, DeliveryMethod integer NULL,
>> > > CheckBatching integer NULL, BeanVersion integer NULL, CheckSetID
>> > > integer NOT NULL, GroupID integer NULL, Retired integer NOT NULL,
>> > > LoadCommandID integer NULL, extractready integer NULL, IssueDate
>> > > datetime NULL, CheckNumber varchar(255) NULL, CreateUserID integer
>> > > NULL, ScheduledSendDate datetime NULL, EnteredTime datetime NULL,
>> > > DateOfService datetime NULL, PayToDenorm varchar(255) NULL,
>> > > ClaimContactID integer NULL, PublicID varchar(20) NOT NULL,
>> > > ServicePdEnd datetime NULL, ClaimID integer NOT NULL, BankAccount
>> > > integer NULL, PaymentMethod integer NULL, Memo varchar(255) NULL,
>> > > PortionID integer NULL, DeductionType integer NULL,
>> > > BulkInvoiceItemInfoID integer NULL, CheckType integer NOT NULL, PayTo
>> > > varchar(255) NULL, MailTo varchar(255) NULL, Comments varchar(255)
>> > > NULL, ReportableAmount decimal(18,2) NULL, RecurringCheckID integer
>> > > NULL, UpdateUserID integer NULL, Reportability integer NULL,
>> > > ServicePdStart datetime NULL, ID integer NOT NULL);
>> > > ALTER TABLE cc_check ADD PRIMARY KEY (ID);
>> > > CREATE INDEX cc000000h9N0 ON cc_check (ScheduledSendDate);
>> > > CREATE INDEX cc000000h9N1 ON cc_check (extractready);
>> > > CREATE UNIQUE INDEX cc000000h9U2 ON cc_check (Status, Retired, ID,
>> > > ScheduledSendDate);
>> > > CREATE UNIQUE INDEX cc000000h9U3 ON cc_check (Status, Retired,
>> > > EnteredTime, ID);
>> > > CREATE UNIQUE INDEX cc000000h9U4 ON cc_check (CheckNumber, Retired,
>> > > ClaimID, ID);
>> > > CREATE UNIQUE INDEX cc000000h9U5 ON cc_check (InvoiceNumber, Retired,
>> > > ClaimID, ID);
>> > > CREATE UNIQUE INDEX cc000000h9U6 ON cc_check (CreateUserID,
>> > > EnteredTime, Retired, ClaimID, PayToDenorm, Status, ID);
>> > > CREATE UNIQUE INDEX cc000000h9U7 ON cc_check (GroupID, Retired, ID);
>> > > CREATE UNIQUE INDEX cc000000h9U8 ON cc_check (ID, Retired,
>> > > EnteredTime, ClaimID);
>> > > CREATE UNIQUE INDEX cc000000h9U9 ON cc_check (PublicID, Retired);
>> > > CREATE INDEX cc000000h9N10 ON cc_check (CheckSetID, Retired);
>> > > CREATE INDEX cc000000h9N11 ON cc_check (ClaimContactID, Retired);
>> > > CREATE INDEX cc000000h9N12 ON cc_check (ClaimID, Retired);
>> > > CREATE INDEX cc000000h9N13 ON cc_check (PortionID, Retired);
>> > > CREATE INDEX cc000000h9N14 ON cc_check (BulkInvoiceItemInfoID,
>> > > Retired);
>> > > CREATE INDEX cc000000h9N15 ON cc_check (RecurringCheckID, Retired);
>> > > CREATE UNIQUE INDEX cc000000h9U16 ON cc_check (ID, extractready);
>>
>> > > create table cc_transaction (Status integer NOT NULL, PaymentType
>> > > integer NULL, CheckID integer NULL, UpdateTime datetime NOT NULL,
>> > > CreateTime datetime NOT NULL, Matter integer NULL, BeanVersion integer
>> > > NULL, TransToClaimExchangeRate integer NULL, Currency integer NOT
>> > > NULL, LoadCommandID integer NULL, Retired integer NOT NULL,
>> > > extractready integer NULL, CostCategory integer NOT NULL,
>> > > DoesNotErodeReserves bit NULL, TransactionSetID integer NOT NULL,
>> > > CreateUserID integer NULL, ClaimContactID integer NULL, CostType
>> > > integer NOT NULL, ClaimID integer NOT NULL, PublicID varchar(20) NOT
>> > > NULL, ClaimToReportingExchangeRate integer NULL, ExposureID integer
>> > > NULL, RecoveryCategory integer NULL, LifeCycleState integer NOT NULL,
>> > > Subtype integer NOT NULL, ReserveLineID integer NOT NULL, SubmitDate
>> > > datetime NULL, PayerDenormID integer NULL, CloseClaim bit NULL,
>> > > Comments varchar(255) NULL, CloseExposure bit NULL, UpdateUserID
>> > > integer NULL, ID integer NOT NULL);
>> > > ALTER TABLE cc_transaction ADD PRIMARY KEY (ID);
>> > > CREATE INDEX cc000000hvN0 ON cc_transaction (extractready);
>> > > CREATE INDEX cc000000hvN1 ON cc_transaction (TransactionSetID,
>> > > ClaimID);
>> > > CREATE INDEX cc000000hvN2 ON cc_transaction (ExposureID, ClaimID);
>> > > CREATE INDEX cc000000hvN3 ON cc_transaction (ExposureID, Subtype,
>> > > Status);
>> > > CREATE INDEX cc000000hvN4 ON cc_transaction (ClaimID, Retired,
>> > > UpdateTime);
>> > > CREATE UNIQUE INDEX cc000000hvU5 ON cc_transaction (CreateUserID,
>> > > Retired, Subtype, ClaimID, ID);
>> > > CREATE INDEX cc000000hvN6 ON cc_transaction (Subtype, CreateUserID,
>> > > Retired, CreateTime, ClaimID);
>> > > CREATE UNIQUE INDEX cc000000hvU7 ON cc_transaction (LifeCycleState,
>> > > Subtype, Retired, ID);
>> > > CREATE UNIQUE INDEX cc000000hvU8 ON cc_transaction (PublicID,
>> > > Retired);
>> > > CREATE UNIQUE INDEX cc000000hvU9 ON cc_transaction (PayerDenormID,
>> > > Retired, Subtype, CreateTime, ClaimID, ID);
>> > > CREATE INDEX cc000000hvN10 ON cc_transaction (CheckID, Retired);
>> > > CREATE INDEX cc000000hvN11 ON cc_transaction (Matter, Retired);
>> > > CREATE INDEX cc000000hvN12 ON cc_transaction
>> > > (TransToClaimExchangeRate, Retired);
>> > > CREATE INDEX cc000000hvN13 ON cc_transaction (TransactionSetID,
>> > > Retired);
>> > > CREATE INDEX cc000000hvN14 ON cc_transaction (ClaimContactID,
>> > > Retired);
>> > > CREATE INDEX cc000000hvN15 ON cc_transaction
>> > > (ClaimToReportingExchangeRate, Retired);
>> > > CREATE INDEX cc000000hvN16 ON cc_transaction (ExposureID, Retired);
>> > > CREATE INDEX cc000000hvN17 ON cc_transaction (ReserveLineID, Retired);
>> > > CREATE UNIQUE INDEX cc000000hvU18 ON cc_transaction (ID,
>> > > extractready);
>>
>> > > create table cc_transactionoffsetonset (extractready integer NULL,
>> > > OnsetID integer NULL, OffsetID integer NOT NULL, PublicID varchar(20)
>> > > NOT NULL, BeanVersion integer NULL, TransactionID integer NOT NULL, ID
>> > > integer NOT NULL, LoadCommandID integer NULL);
>> > > ALTER TABLE cc_transactionoffsetonset ADD PRIMARY KEY (ID);
>> > > CREATE UNIQUE INDEX cc000000j0U0 ON cc_transactionoffsetonset
>> > > (OffsetID);
>> > > CREATE UNIQUE INDEX cc000000j0U1 ON cc_transactionoffsetonset
>> > > (PublicID);
>> > > CREATE INDEX cc000000j0N2 ON cc_transactionoffsetonset (OnsetID);
>> > > CREATE INDEX cc000000j0N3 ON cc_transactionoffsetonset (extractready);
>> > > CREATE UNIQUE INDEX cc000000j0U4 ON cc_transactionoffsetonset
>> > > (TransactionID);
>> > > CREATE UNIQUE INDEX cc000000j0U5 ON cc_transactionoffsetonset
>> > > (TransactionID, OffsetID, OnsetID);
>> > > CREATE UNIQUE INDEX cc000000j0U6 ON cc_transactionoffsetonset
>> > > (OffsetID, OnsetID);
>> > > CREATE UNIQUE INDEX cc000000j0U7 ON cc_transactionoffsetonset (ID,
>> > > extractready);
>>
>> > > On Jan 28, 11:02 pm, Thomas Mueller <[email protected]>
>> > > wrote:
>> > >> Hi,
>>
>> > >> Could you post your CREATE TABLE and CREATE INDEX statements as well 
>> > >> please?
>>
>> > >> Regards,
>> > >> Thomas
>>
>> > >> On Tue, Jan 27, 2009 at 7:40 AM, Wes Clark <[email protected]> wrote:
>>
>> > >> > Could this be another manifestation of the problem with nested outer
>> > >> > joins reported in
>> > >> >http://groups.google.com/group/h2-database/browse_thread/thread/af436...
>>
>>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to