Thread

  1. Arrays of composites, bug or usage?

    Chaotic Inceptions <chaoticinc@cyberus.ca> — 1999-11-14T21:03:04Z

    Hello,
    
    I have a question on array usage. I created an array with the following
    commands:
    
    CREATE TABLE file (
        path                varchar(255);
        description         varchar(255);
    );
    
    CREATE TYPE file_array (
        INPUT = array_in,
        OUTPUT = array_out
        INTERNALLENGTH = VARIABLE,
        ELEMENT = file
    );
    
    CREATE TABLE media (
        media_type          char,
        media_list          file_array
    );
    
    First of all, is the above legal and if not, is there a way to do it?
    Is this an array of composite types or is that something else?
    
    When I attempt to insert values into the array with the following command, 
    
    INSERT INTO media (media_type,media_list)
    VALUES ('C', '{""/usr/doc/list1","This is the description"",
    ""/usr/doc/list2","Another description""}');
    
    the INSERT succeeds, but a subsequent select reveals the following:
    
    SELECT * FROM media;
    
    media_type|media_list
    ----------+----------
    C         |{0,0}
    (1 row)
    
    Is this a problem with levels of indirection in that I am looking at a
    pointer or something? Have I completed the insert incorrectly or is the
    parser unable to
    handle this?
    
    I would be happy to document this for everyone once I understand it.
    
    Jason Kania
    chaoticinc@cyberus.ca