Re: stupid patch of pg_dumplo - Mailing list pgsql-patches

From andrea gelmini
Subject Re: stupid patch of pg_dumplo
Date
Msg-id 20011112104637.A24974@gelma.lugbs.linux.it
Whole thread Raw
In response to Re: stupid patch of pg_dumplo  (Karel Zak <zakkr@zf.jcu.cz>)
Responses Re: stupid patch of pg_dumplo  (Karel Zak <zakkr@zf.jcu.cz>)
Re: stupid patch of pg_dumplo  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-patches
On gio, nov 08, 2001 at 02:32:27 +0100, Karel Zak wrote:
>  It's good idea, maybe you can try add other values usable in
>  PQsetdbLogin.

yes, maybe in the future... now two problems: a) relation 'option' ->
'letter' is a little mess (but i don't see solution), b) i'm a son of shell
programming... and so... read the "how to lost one day on a stupid
problem" in the bottom...
also, now i don't figure out what other useful PQsetdbLogin values can be
good for this util (give me the light!)

>  Please use other code in pg_dumplo/main.c as inspiration.
it was my first try... but i failed...
so i tried with the ugly way (i've seen it also in other *.c file in contrib,
maybe i'll fix them)...
ehm... now i retry...

>  Please correct your patch and I mean will no problem add it to
>  official code.
ok, tell me if this is good.

thanks for your time,
andrea

-----
how to lost one day on a stupid problem

i try to change my fully functional patch in the way suggested...
but it core dumps...
thinking, thinking, thinking...
everything is same but the line:

pgLO->port = strdup(optarg);

makes a core dump...
gdb says 'that line is evil'...
and i go crazy...
ask to one friend,
ask to two friends...
nothing...
core dump...
core dump...
and...
the light...

getopt_long(argc, argv, "?aehou:p:qd:l:t:irs:w"

i put 'o' without ':'

argh!

-----

Common subdirectories: pg_dumplo.orig/CVS and pg_dumplo/CVS
diff -c pg_dumplo.orig/main.c pg_dumplo/main.c
*** pg_dumplo.orig/main.c    Thu Oct 25 16:23:33 2001
--- pg_dumplo/main.c    Mon Nov 12 16:25:56 2001
***************
*** 56,61 ****
--- 56,62 ----
      pgLO->user = NULL;
      pgLO->db = NULL;
      pgLO->host = NULL;
+     pgLO->port = NULL;
      pgLO->space = NULL;
      pgLO->index = NULL;
      pgLO->remove = FALSE;
***************
*** 81,86 ****
--- 82,88 ----
              {"pwd", required_argument, 0, 'p'},
              {"db", required_argument, 0, 'd'},
              {"host", required_argument, 0, 'h'},
+             {"port", required_argument, 0, 'o'},
              {"space", required_argument, 0, 's'},
              {"import", no_argument, 0, 'i'},
              {"export", no_argument, 0, 'e'},
***************
*** 91,100 ****
              {NULL, 0, 0, 0}
          };

!         while ((arg = getopt_long(argc, argv, "?aehu:p:qd:l:t:irs:w", l_opt, &l_index)) != -1)
          {
  #else
!         while ((arg = getopt(argc, argv, "?aehu:p:qd:l:t:irs:w")) != -1)
          {
  #endif
              switch (arg)
--- 93,102 ----
              {NULL, 0, 0, 0}
          };

!         while ((arg = getopt_long(argc, argv, "?aeho:u:p:qd:l:t:irs:w", l_opt, &l_index)) != -1)
          {
  #else
!         while ((arg = getopt(argc, argv, "?aeho:u:p:qd:l:t:irs:w")) != -1)
          {
  #endif
              switch (arg)
***************
*** 109,114 ****
--- 111,119 ----
                  case 't':
                      pgLO->host = strdup(optarg);
                      break;
+                 case 'o':
+                     pgLO->port = strdup(optarg);
+                     break;
                  case 'p':
                      pwd = strdup(optarg);
                      break;
***************
*** 173,179 ****
      /*
       * Make connection
       */
!     pgLO->conn = PQsetdbLogin(pgLO->host, NULL, NULL, NULL, pgLO->db,
                                pgLO->user, pwd);

      if (PQstatus(pgLO->conn) == CONNECTION_BAD)
--- 178,184 ----
      /*
       * Make connection
       */
!     pgLO->conn = PQsetdbLogin(pgLO->host, pgLO->port, NULL, NULL, pgLO->db,
                                pgLO->user, pwd);

      if (PQstatus(pgLO->conn) == CONNECTION_BAD)
***************
*** 279,284 ****
--- 284,290 ----
         "-p --password=<password>     password for connection to server\n"
           "-d --db=<database>           database name\n"
           "-t --host=<hostname>         server hostname\n"
+          "-o --port=<port>             database server port (default: 5432)\n"
           "-s --space=<dir>             directory with dump tree (for export/import)\n"
           "-i --import                  import large obj dump tree to DB\n"
      "-e --export                  export (dump) large obj to dump tree\n"
***************
*** 295,300 ****
--- 301,307 ----
         "-p <password>                password for connection to server\n"
           "-d <database>                database name\n"
           "-t <hostname>                server hostname\n"
+          "-o <port>                    database server port (default: 5432)\n"
           "-s <dir>                     directory with dump tree (for export/import)\n"
           "-i                           import large obj dump tree to DB\n"
      "-e                           export (dump) large obj to dump tree\n"
diff -c pg_dumplo.orig/pg_dumplo.h pg_dumplo/pg_dumplo.h
*** pg_dumplo.orig/pg_dumplo.h    Tue Nov  6 13:17:39 2001
--- pg_dumplo/pg_dumplo.h    Mon Nov 12 14:04:48 2001
***************
*** 51,56 ****
--- 51,57 ----
                 *user,
                 *db,
                 *host,
+                *port,
                 *space;
      FILE       *index;
      int            counter,

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Small FK patch to deal with tables without oids
Next
From: Karel Zak
Date:
Subject: Re: stupid patch of pg_dumplo