Re: make createlang match docs - Mailing list pgsql-patches
| From | Bruce Momjian |
|---|---|
| Subject | Re: make createlang match docs |
| Date | |
| Msg-id | 200201030529.g035TRs09996@candle.pha.pa.us Whole thread Raw |
| In response to | Re: make createlang match docs (Marko Kreen <marko@l-t.ee>) |
| Responses |
Re: make createlang match docs
Re: make createlang match docs |
| List | pgsql-patches |
Marko Kreen wrote:
> On Thu, Dec 13, 2001 at 05:47:37AM +0000, Thomas Lockhart wrote:
> > > > > * make createlang match docs: "createlang dbname" did not work.
> > > > What is the meaning of that command?
> > > You give a database to act on, like to other scripts, then it
> > > asks what language to install.
> >
> > But since it respects PGHOST and should use a database name the same as
> > your user name, that usage is degenerate with "createlang newlanguage".
> > Isn't it? Or shouldn't it be?
>
> Well, it does not respect PGDATABASE nor uses username as
> default - and making it do so changes the current behaviour...
>
> Although I think too 'createlang langname' would be saner.
I was going to add this to TODO:
Change 'createlang [langname] dbname' to 'createlang langname [dbname]'
However, when I started to look at the createlang script, I saw:
if [ "$list" != "t" ]
then langname="$1"
if [ "$2" ]
then
shift
dbname="$1"
fi
else dbname="$1"
fi
which said that dbname was already behaving as optional, even though
there was code to handle a missing langname.
Rather than change the script to make langname optional, I have fixed
the script to work the way everyone wants it to work, namely dbname is
now optional. I grabbed the dbname default code from createdb.
Applied to CVS with doc updates. Patch attached.
Also, can someone explain why we have a createlang.sh? Makefile shows:
createlang: createlang.sh
cp $< $@
chmod a+x $@
Not much doing there.
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
Index: doc/src/sgml/ref/createlang.sgml
===================================================================
RCS file: /cvsroot/pgsql/doc/src/sgml/ref/createlang.sgml,v
retrieving revision 1.21
diff -c -r1.21 createlang.sgml
*** doc/src/sgml/ref/createlang.sgml 2001/12/08 03:24:35 1.21
--- doc/src/sgml/ref/createlang.sgml 2002/01/03 05:27:34
***************
*** 23,30 ****
<cmdsynopsis>
<command>createlang</command>
<arg rep="repeat"><replaceable>connection-options</replaceable></arg>
! <arg><replaceable>langname</replaceable></arg>
! <arg choice="plain"><replaceable>dbname</replaceable></arg>
<sbr>
<command>createlang</command>
<arg rep="repeat"><replaceable>connection-options</replaceable></arg>
--- 23,30 ----
<cmdsynopsis>
<command>createlang</command>
<arg rep="repeat"><replaceable>connection-options</replaceable></arg>
! <arg choice="plain"><replaceable>langname</replaceable></arg>
! <arg><replaceable>dbname</replaceable></arg>
<sbr>
<command>createlang</command>
<arg rep="repeat"><replaceable>connection-options</replaceable></arg>
***************
*** 46,54 ****
<para>
Specifies the name of the procedural programming language to be
defined.
- <application>createlang</application> will prompt for
- <replaceable class="parameter">langname</replaceable>
- if it is not specified on the command line.
</para>
</listitem>
</varlistentry>
--- 46,51 ----
***************
*** 58,63 ****
--- 55,62 ----
<listitem>
<para>
Specifies to which database the language should be added.
+ The default is to create a database with the same name as the
+ current system user.
</para>
</listitem>
</varlistentry>
Index: src/bin/scripts/createlang.sh
===================================================================
RCS file: /cvsroot/pgsql/src/bin/scripts/createlang.sh,v
retrieving revision 1.31
diff -c -r1.31 createlang.sh
*** src/bin/scripts/createlang.sh 2001/09/30 22:17:51 1.31
--- src/bin/scripts/createlang.sh 2002/01/03 05:27:35
***************
*** 125,131 ****
echo "$CMDNAME installs a procedural language into a PostgreSQL database."
echo
echo "Usage:"
! echo " $CMDNAME [options] [langname] dbname"
echo
echo "Options:"
echo " -h, --host=HOSTNAME Database server host"
--- 125,131 ----
echo "$CMDNAME installs a procedural language into a PostgreSQL database."
echo
echo "Usage:"
! echo " $CMDNAME [options] langname [dbname]"
echo
echo "Options:"
echo " -h, --host=HOSTNAME Database server host"
***************
*** 136,161 ****
echo " -L, --pglib=DIRECTORY Find language interpreter file in DIRECTORY"
echo " -l, --list Show a list of currently installed languages"
echo
- echo "If 'langname' is not specified, you will be prompted interactively."
- echo "A database name must be specified."
- echo
echo "Report bugs to <pgsql-bugs@postgresql.org>."
exit 0
fi
- # ----------
- # Check that we have a database
- # ----------
if [ -z "$dbname" ]; then
! echo "$CMDNAME: missing required argument database name" 1>&2
! echo "Try '$CMDNAME --help' for help." 1>&2
! exit 1
fi
# ----------
! # List option
# ----------
if [ "$list" ]; then
sqlcmd="SELECT lanname as \"Name\", lanpltrusted as \"Trusted?\" FROM pg_language WHERE lanispl = TRUE;"
--- 136,158 ----
echo " -L, --pglib=DIRECTORY Find language interpreter file in DIRECTORY"
echo " -l, --list Show a list of currently installed languages"
echo
echo "Report bugs to <pgsql-bugs@postgresql.org>."
exit 0
fi
if [ -z "$dbname" ]; then
! if [ "$PGUSER" ]; then
! dbname="$PGUSER"
! else
! dbname=`${PATHNAME}pg_id -u -n`
! fi
! [ "$?" -ne 0 ] && exit 1
fi
# ----------
! # List option, doesn't need langname
# ----------
if [ "$list" ]; then
sqlcmd="SELECT lanname as \"Name\", lanpltrusted as \"Trusted?\" FROM pg_language WHERE lanispl = TRUE;"
***************
*** 168,185 ****
# ----------
! # Check that we have PGLIB
# ----------
! if [ -z "$PGLIB" ]; then
! PGLIB='$libdir'
fi
# ----------
! # If not given on the command line, ask for the language
# ----------
! if [ -z "$langname" ]; then
! $ECHO_N "Language to install in database $dbname: "$ECHO_C
! read langname
fi
# ----------
--- 165,183 ----
# ----------
! # We can't go any farther without a langname
# ----------
! if [ -z "$langname" ]; then
! echo "$CMDNAME: missing required argument language name" 1>&2
! echo "Try '$CMDNAME --help' for help." 1>&2
! exit 1
fi
# ----------
! # Check that we have PGLIB
# ----------
! if [ -z "$PGLIB" ]; then
! PGLIB='$libdir'
fi
# ----------
pgsql-patches by date: