User-defined types

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Jonathan Daugherty

    #1

    User-defined types

    Hello,

    I'm trying to write a PL/PgSQL function whose sole parameter is an
    array whose element type is a type that I've created. For example:

    CREATE TYPE test_type AS (x bigint, y bigint);

    CREATE OR REPLACE FUNCTION array_test (test_type[]) ...

    According to the 7.4 docs,

    "Whenever a user-defined base data type is created, PostgreSQL
    automatically creates an associated array type, whose name consists
    of the base type's name prepended with an underscore. The parser
    understands this naming convention, and translates requests for
    columns of type foo[] into requests for type _foo. The
    implicitly-created array type is variable length and uses the
    built-in input and output functions array_in and array_out."

    However,

    mydb=# SELECT COUNT(*) FROM pg_type WHERE typname = '_test_type';
    count
    -------
    0
    (1 row)

    Am I missing something? Thanks for your time.

    I'm running PostgreSQL 7.4.5.

    --
    Jonathan Daugherty
    Command Prompt, Inc. - http://www.commandprompt.com/
    PostgreSQL Replication & Support Services, (503) 667-4564


    ---------------------------(end of broadcast)---------------------------
    TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddres sHere" to majordomo@postg resql.org)

  • Jonathan Daugherty

    #2
    Re: User-defined types

    # > "Whenever a user-defined base data type is created, PostgreSQL
    # > automatically creates an associated array type, whose name consists
    # > of the base type's name prepended with an underscore.
    #
    # The key word in that sentence is "base" data type --- ie, not
    # composite.

    Ah, I see -- it wasn't obvious to me.

    # We don't currently support arrays of composite types. (Nor arrays
    # of domain types, either, IIRC.)

    Ok, thanks for your time.

    --
    Jonathan Daugherty
    Command Prompt, Inc. - http://www.commandprompt.com/
    PostgreSQL Replication & Support Services, (503) 667-4564


    ---------------------------(end of broadcast)---------------------------
    TIP 4: Don't 'kill -9' the postmaster

    Comment

    • Tom Lane

      #3
      Re: User-defined types

      Jonathan Daugherty <cygnus@cprogra mmer.org> writes:[color=blue]
      > I'm trying to write a PL/PgSQL function whose sole parameter is an
      > array whose element type is a type that I've created. For example:[/color]
      [color=blue]
      > According to the 7.4 docs,[/color]
      [color=blue]
      > "Whenever a user-defined base data type is created, PostgreSQL
      > automatically creates an associated array type, whose name consists
      > of the base type's name prepended with an underscore.[/color]

      The key word in that sentence is "base" data type --- ie, not composite.
      We don't currently support arrays of composite types. (Nor arrays of
      domain types, either, IIRC.)

      regards, tom lane

      ---------------------------(end of broadcast)---------------------------
      TIP 4: Don't 'kill -9' the postmaster

      Comment

      Working...