Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Spam:Re: range partition issue

Spam:Re: range partition issue

From: Harvinder Singh <Harvinder.Singh_at_MetraTech.com>
Date: Thu, 15 Nov 2007 11:54:25 -0500
Message-ID: <D6424CD4C8A3C044BBC49877ED51C51804E02AFE@ex2003.metratech.com>


Thanks for the reply, I expected the same result and with same reasoning but somehow the results are different.
It may be OS specific issue, We are testing on 10.2.0.3 on RHAT4. Can you post your OS version and also it will be great if can test this on RHAT4. -----Original Message-----
From: Bob Carlin [mailto:smeghead.rimmer_at_gmail.com] Sent: Thursday, November 15, 2007 11:21 AM To: ric.van.dyke_at_hotsos.com
Cc: Harvinder Singh; oracle-l_at_webthere.com; oracle-l_at_freelists.org Subject: Spam:Spam:Re: Spam:range partition issue

Ric,
Actually is works by comparing until is does *not* have a match. I tested Harvinder's example, and it behaves as expected; I think Harvinder must have had an error in his own test.

Quoting from the manual:

"When a table or index is partitioned by range on multiple columns, each

partition bound and partitioning key is a list (or vector) of values. The partition bounds and keys are ordered according to ANSI SQL2 vector comparison rules. This is also the way Oracle orders multicolumn index keys.

To compare a partitioning key with a partition bound, you compare the values of their corresponding columns until you find an unequal pair and

then that pair determines which vector is greater. The values of any remaining columns have no effect on the comparison."

Ric Van Dyke wrote:
>
> Oracle compares from left to right and stops when it has a match:
>
> First row: 897515520,1200000 The first value is less then or equal to
> the first key of the partition, so it goes in that partition.
>
> Second row: 897515520,1600000 The first value is less then or equal to

> the first key of the partition, so it goes in that partition.
>
> In both cases it never even looks at the second value. I forget the
> name of this mechanism but it's the way it works.
>
> -----------------------
>
> Ric Van Dyke
>
> Hotsos Enterprises
>
> -----------------------
>
>



>
> *From:* oracle-l-bounce_at_freelists.org
> [mailto:oracle-l-bounce_at_freelists.org] *On Behalf Of *Harvinder Singh
> *Sent:* Wednesday, November 14, 2007 3:37 PM
> *To:* oracle-l_at_webthere.com; oracle-l_at_freelists.org
> *Subject:* Spam:range partition issue
>
> Hi,
>
> I am creating range partitioning on 2 columns as following:
>
> CREATE TABLE test_part
>
> (
>
> Col1 NUMBER(10) NOT NULL,
>
> Col2 NUMBER(10) NOT NULL
>
> )
>
> TABLESPACE tab_1
>
> PARTITION BY RANGE (ID_USAGE_INTERVAL, ID_ACC)
>
> (
>
> PARTITION USAGE_1 VALUES LESS THAN (897515520, 1500000)
>
> TABLESPACE tab_2,
>
> PARTITION USAGE_2 VALUES LESS THAN (897515520, 3500000)
>
> TABLESPACE tab_3
>
> )
>
> insert into test_part values(897515520,1200000)
>
> insert into test_part values(897515520,1600000)
>
> commit
>
> select count(*) from test_part partition(usage_1)
>
> select count(*) from test_part partition(usage_2)
>
> I expect both the partitions usage1 and usage2 to have 1 row each but
> both the rows are going to usage1, What can be the possible issue?
>
> Thanks
>
> --Harvinder
>
--
http://www.freelists.org/webpage/oracle-l
Received on Thu Nov 15 2007 - 10:54:25 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US