how to edit a function from psql?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Patrick Hatcher

    #1

    how to edit a function from psql?

    How can I view and edit a function in psql? I have been using PgAdmin to
    do this but wanted to try the command line
    TIA


    Patrick Hatcher

  • Thomas F.O'Connell

    #2
    Re: how to edit a function from psql?

    To the best of my knowledge, this is not possible in psql.

    You can edit individual queries with \e, but I don't think it's
    possible to edit functions.

    -tfo

    --
    Thomas F. O'Connell
    Co-Founder, Information Architect
    Sitening, LLC
    Save time, money and frustration with online marketing reports that don't get easier than this. Send client reports for SEO, Social and PPC with Raven.

    110 30th Avenue North, Suite 6
    Nashville, TN 37203-6320
    615-260-0005

    On Nov 4, 2004, at 11:11 AM, Patrick Hatcher wrote:
    [color=blue]
    > How can I view and edit a function in psql?  I have been using PgAdmin
    > to do this but wanted to try the command line
    > TIA
    >
    > Patrick Hatcher[/color]


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

    Comment

    • Alvaro Herrera

      #3
      Re: how to edit a function from psql?

      On Thu, Nov 04, 2004 at 02:22:06PM -0600, Thomas F.O'Connell wrote:[color=blue]
      > To the best of my knowledge, this is not possible in psql.
      >
      > You can edit individual queries with \e, but I don't think it's
      > possible to edit functions.[/color]

      It is of course possible get the definition using \df+ and then use
      CREATE OR REPLACE in conjuntion with \e to edit it at will.

      --
      Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
      Tulio: oh, para qué servirá este boton, Juan Carlos?
      Policarpo: No, aléjense, no toquen la consola!
      Juan Carlos: Lo apretaré una y otra vez.


      ---------------------------(end of broadcast)---------------------------
      TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

      Comment

      • Patrick Hatcher

        #4
        Re: how to edit a function from psql?

        Thanks Alvaro. That was what I was looking for.


        Patrick Hatcher




        Alvaro Herrera <alvherre@dcc.u chile.cl>
        11/04/04 03:40 PM

        To
        "Thomas F.O'Connell" <tfo@sitening.c om>
        cc
        Patrick Hatcher <PHatcher@macys .com>, pgsql-general@postgre sql.org
        Subject
        Re: [GENERAL] how to edit a function from psql?






        On Thu, Nov 04, 2004 at 02:22:06PM -0600, Thomas F.O'Connell wrote:[color=blue]
        > To the best of my knowledge, this is not possible in psql.
        >
        > You can edit individual queries with \e, but I don't think it's
        > possible to edit functions.[/color]

        It is of course possible get the definition using \df+ and then use
        CREATE OR REPLACE in conjuntion with \e to edit it at will.

        --
        Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
        Tulio: oh, para qué servirá este boton, Juan Carlos?
        Policarpo: No, aléjense, no toquen la consola!
        Juan Carlos: Lo apretaré una y otra vez.



        Comment

        • Thomas F.O'Connell

          #5
          Re: how to edit a function from psql?

          Alvaro,

          How do you get the results of \df+ into the buffer with \e? Just copy
          and paste?

          -tfo

          --
          Thomas F. O'Connell
          Co-Founder, Information Architect
          Sitening, LLC
          Save time, money and frustration with online marketing reports that don't get easier than this. Send client reports for SEO, Social and PPC with Raven.

          110 30th Avenue North, Suite 6
          Nashville, TN 37203-6320
          615-260-0005

          On Nov 4, 2004, at 3:40 PM, Alvaro Herrera wrote:
          [color=blue]
          > On Thu, Nov 04, 2004 at 02:22:06PM -0600, Thomas F.O'Connell wrote:[color=green]
          >> To the best of my knowledge, this is not possible in psql.
          >>
          >> You can edit individual queries with \e, but I don't think it's
          >> possible to edit functions.[/color]
          >
          > It is of course possible get the definition using \df+ and then use
          > CREATE OR REPLACE in conjuntion with \e to edit it at will.
          >
          > --
          > Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
          > Tulio: oh, para qué servirá este boton, Juan Carlos?
          > Policarpo: No, aléjense, no toquen la consola!
          > Juan Carlos: Lo apretaré una y otra vez.[/color]

          ---------------------------(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)

          Comment

          • Alvaro Herrera

            #6
            Re: how to edit a function from psql?

            On Thu, Nov 04, 2004 at 04:00:10PM -0600, Thomas F. O'Connell wrote:

            Thomas,
            [color=blue]
            > How do you get the results of \df+ into the buffer with \e? Just copy
            > and paste?[/color]

            Right. Single quotes tended to be an issue. Not so with 8.0. It's
            much better, of course, to have the original definition on a text file
            somewhere ...

            --
            Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
            Este mail se entrega garantizadament e 100% libre de sarcasmo.


            ---------------------------(end of broadcast)---------------------------
            TIP 1: subscribe and unsubscribe commands go to majordomo@postg resql.org

            Comment

            • Russ Brown

              #7
              Re: how to edit a function from psql?

              What would be really useful would be a command that would return the
              actual SQL needed to create a function. At present the output from
              \df+ needs to be pieced together to create a new CREATE OR REPLACE
              string. A command that returnes that string for you would allow you to
              copy and paste it in, do a minor edit and run the command very
              quickly.

              I've had to tweak functions quite a lot lately and having to construct
              the command from the output from \df+ can be a bit of a pain.

              In fact, it would be useful to have this for all entity types in the
              system: tables, views and types etc. Perhaps a new symbol to follow
              the \d command, such as * (just a random guess).

              So:

              \df* functionname

              would output the CREATE OR REPLACE line for that funtion.

              Thoughts?

              On Thu, 4 Nov 2004 19:44:53 -0300, Alvaro Herrera
              <alvherre@dcc.u chile.cl> wrote:[color=blue]
              > On Thu, Nov 04, 2004 at 04:00:10PM -0600, Thomas F. O'Connell wrote:
              >
              > Thomas,
              >[color=green]
              > > How do you get the results of \df+ into the buffer with \e? Just copy
              > > and paste?[/color]
              >
              > Right. Single quotes tended to be an issue. Not so with 8.0. It's
              > much better, of course, to have the original definition on a text file
              > somewhere ...
              >
              > --
              > Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
              > Este mail se entrega garantizadament e 100% libre de sarcasmo.
              >
              > ---------------------------(end of broadcast)---------------------------
              > TIP 1: subscribe and unsubscribe commands go to majordomo@postg resql.org
              >[/color]


              --

              Russ

              ---------------------------(end of broadcast)---------------------------
              TIP 9: the planner will ignore your desire to choose an index scan if your
              joining column's datatypes do not match

              Comment

              • Thomas F.O'Connell

                #8
                Re: how to edit a function from psql?

                What version of postgres are you using? In postgresql-7.4.6, I get an
                empty query buffer when I try what you describe here.

                -tfo

                --
                Thomas F. O'Connell
                Co-Founder, Information Architect
                Sitening, LLC
                Save time, money and frustration with online marketing reports that don't get easier than this. Send client reports for SEO, Social and PPC with Raven.

                110 30th Avenue North, Suite 6
                Nashville, TN 37203-6320
                615-260-0005

                On Nov 4, 2004, at 5:23 PM, Karim Nassar wrote:
                [color=blue]
                > Here is what I get:
                >
                > orfs=# \df+ get_datasets
                >
                > List of functions
                > Result data type | Schema | Name |
                > Argument
                > data types | Owner | Language
                > | Source
                > code
                > | Description
                > ------------------+--------------+--------------
                > +-------------------------------------------------+-------+----------
                > +----------------------------------------------------------------------
                > -----------------------------------------------------------------------
                > -----------------------------------------------------------------------
                > -----------------------------------------------------------------------
                > ------------------------------------+-------------
                > refcursor | weather_data | get_datasets | refcursor, character
                > varying, character varying | kan4 | plpgsql |
                > DECLARE
                > _person_ ALIAS FOR $2;
                > _where_ ALIAS FOR $3;
                > selectstring text;
                >
                > BEGIN
                > selectstring := get_datasets_se lstr(_person_, _where_);
                > -- RAISE NOTICE '%', selectstring;
                > OPEN $1 FOR EXECUTE selectstring;
                > RETURN $1;
                > END;
                > |
                > (1 row)
                >
                > orfs=# \e
                > CREATE FUNCTION
                >
                > When I issue \e, the editor window pops up, apparently with the
                > contents
                > of the query buffer. When I exit the editor, the function definition is
                > applied to create this function (the one in the buffer).
                >
                > orfs=# \?
                > <snip>
                > Query Buffer
                > \e [FILE] edit the query buffer (or file) with external editor
                > \g [FILE] send query buffer to server (and results to file or
                > |pipe)
                > \p show the contents of the query buffer
                > \r reset (clear) the query buffer
                > \s [FILE] display history or save it to file
                > \w [FILE] write query buffer to file
                > <snip>
                >
                > How did that function definition get in the query buffer? Seems that it
                > sure would be nice to fill it \df+...
                >
                > \<.[/color]


                ---------------------------(end of broadcast)---------------------------
                TIP 6: Have you searched our list archives?



                Comment

                Working...