Thread

  1. Problem with inet type.

    Piotr Gadek <p.gadek@bph.krakow.pl> — 1999-08-24T13:21:08Z

    ============================================================================
    
                            POSTGRESQL BUG REPORT TEMPLATE
    ============================================================================
    
    
    
    Your name  : Piotr Gadek
    Your email address : p.gadek@bph.krakow.pl
    
    
    System Configuration
    ---------------------
      Architecture (example: Intel Pentium)   : Cyrix 6x86 P166+
    
      Operating System (example: Linux 2.0.26 ELF)  : Redhat 6.0 (kernel
    2.2.5-22)
    
      PostgreSQL version (example: PostgreSQL-6.5.1): PostgreSQL-6.5.1
    
      Compiler used (example:  gcc 2.8.0)  : egcs-2.91.66
    
    
    Please enter a FULL description of your problem:
    ------------------------------------------------
    Sorting by "inet" type field gives incorrect result.
    IP addresses are sorted due to subnets order but
    within a subnet adresses are sorted in the wrong way.
    
    
    
    Please describe a way to repeat the problem.   Please try to provide a
    concise reproducible example, if at all possible:
    ----------------------------------------------------------------------
    
    Below is a simple script which creates table and
    executes query.
    
    --
    DROP TABLE HOSTS;
    CREATE TABLE HOSTS (i inet);
    
    insert into hosts (i) values ('139.0.6.0/24');
    insert into hosts (i) values ('139.0.6.205/24');
    insert into hosts (i) values ('139.0.6.3/24');
    insert into hosts (i) values ('139.0.6.5/24');
    insert into hosts (i) values ('139.0.6.6/24');
    insert into hosts (i) values ('139.0.6.10/24');
    insert into hosts (i) values ('139.0.6.32/24');
    insert into hosts (i) values ('139.0.6.33/24');
    insert into hosts (i) values ('139.0.6.35/24');
    insert into hosts (i) values ('139.0.6.36/24');
    insert into hosts (i) values ('139.0.6.37/24');
    insert into hosts (i) values ('139.0.6.102/24');
    insert into hosts (i) values ('139.0.6.101/24');
    insert into hosts (i) values ('139.0.6.190/24');
    insert into hosts (i) values ('139.0.6.11/24');
    insert into hosts (i) values ('139.0.6.192/24');
    insert into hosts (i) values ('139.0.6.191/24');
    insert into hosts (i) values ('139.0.6.200/24');
    insert into hosts (i) values ('139.0.6.2/24');
    insert into hosts (i) values ('139.0.6.206/24');
    insert into hosts (i) values ('139.0.6.209/30');
    insert into hosts (i) values ('139.0.6.213/30');
    insert into hosts (i) values ('139.0.6.210/30');
    insert into hosts (i) values ('139.0.6.214/30');
    insert into hosts (i) values ('139.0.6.39/24');
    insert into hosts (i) values ('139.0.6.38/24');
    insert into hosts (i) values ('139.0.6.195/24');
    insert into hosts (i) values ('139.0.6.194/24');
    insert into hosts (i) values ('139.0.6.196/24');
    insert into hosts (i) values ('139.1.113.17/28');
    insert into hosts (i) values ('139.1.113.1/28');
    insert into hosts (i) values ('139.1.113.33/28');
    insert into hosts (i) values ('139.1.113.2/28');
    insert into hosts (i) values ('139.1.113.18/28');
    insert into hosts (i) values ('139.0.6.243/24');
    insert into hosts (i) values ('139.0.6.222/24');
    insert into hosts (i) values ('139.0.9.39/24');
    insert into hosts (i) values ('139.0.7.10/24');
    insert into hosts (i) values ('139.0.9.10/24');
    insert into hosts (i) values ('139.0.9.1/24');
    insert into hosts (i) values ('139.0.7.2/24');
    insert into hosts (i) values ('139.1.113.34/28');
    insert into hosts (i) values ('139.1.113.5/28');
    insert into hosts (i) values ('139.1.113.24/28');
    insert into hosts (i) values ('139.1.113.7/28');
    insert into hosts (i) values ('139.1.113.15/28');
    insert into hosts (i) values ('139.1.113.4/28');
    insert into hosts (i) values ('139.1.113.8/28');
    insert into hosts (i) values ('139.1.113.25/28');
    insert into hosts (i) values ('139.1.113.22/28');
    insert into hosts (i) values ('139.1.113.13/28');
    insert into hosts (i) values ('129.0.0.33/24');
    insert into hosts (i) values ('129.0.0.30/24');
    insert into hosts (i) values ('129.0.0.20/24');
    insert into hosts (i) values ('129.0.0.1/24');
    insert into hosts (i) values ('10.0.0.7/24');
    insert into hosts (i) values ('10.0.0.1/24');
    insert into hosts (i) values ('10.0.0.10/24');
    insert into hosts (i) values ('10.0.0.231/24');
    insert into hosts (i) values ('10.0.0.27/24');
    insert into hosts (i) values ('10.2.0.27/24');
    insert into hosts (i) values ('10.3.0.27/24');
    insert into hosts (i) values ('10.2.0.2/24');
    insert into hosts (i) values ('10.3.0.10/24');
    insert into hosts (i) values ('10.2.0.200/24');
    insert into hosts (i) values ('10.2.0.0/24');
    
    --
    select i from hosts order by i;
    --
    
    Here is the result I obtained after script execution:
    
    i
    ---------------
    10.0.0.7/24
    10.0.0.1/24
    10.0.0.10/24
    10.0.0.231/24
    10.0.0.27/24
    10.2.0.27/24
    10.2.0.2/24
    10.2.0.200/24
    10.2.0.0/24
    10.3.0.27/24
    10.3.0.10/24
    129.0.0.33/24
    129.0.0.30/24
    129.0.0.20/24
    129.0.0.1/24
    139.0.6.0/24
    139.0.6.205/24
    139.0.6.3/24
    139.0.6.5/24
    139.0.6.6/24
    139.0.6.10/24
    139.0.6.32/24
    139.0.6.33/24
    139.0.6.35/24
    139.0.6.36/24
    139.0.6.37/24
    139.0.6.102/24
    139.0.6.101/24
    139.0.6.190/24
    139.0.6.11/24
    139.0.6.192/24
    139.0.6.191/24
    139.0.6.200/24
    139.0.6.2/24
    139.0.6.206/24
    139.0.6.39/24
    139.0.6.38/24
    139.0.6.195/24
    139.0.6.194/24
    139.0.6.196/24
    139.0.6.209/30
    139.0.6.210/30
    139.0.6.213/30
    139.0.6.214/30
    139.0.6.243/24
    139.0.6.222/24
    139.0.7.10/24
    139.0.7.2/24
    139.0.9.39/24
    139.0.9.10/24
    139.0.9.1/24
    139.1.113.1/28
    139.1.113.2/28
    139.1.113.5/28
    139.1.113.7/28
    139.1.113.15/28
    139.1.113.4/28
    139.1.113.8/28
    139.1.113.13/28
    139.1.113.17/28
    139.1.113.18/28
    139.1.113.24/28
    139.1.113.25/28
    139.1.113.22/28
    139.1.113.33/28
    139.1.113.34/28
    (66 rows)
    
    
    If you know how this problem might be fixed, list the solution below:
    ---------------------------------------------------------------------
    
    
    
    Regards
    Piotr