Patchers,

Here is a patch related to NLS that

- adds .y files to gettext-files in backend/nls.mk.  gram.y contains
  several translatable messages that are not catched by update-po unless
  the gram.c file is generated.  I don't know if this is desirable but I
  think it's better to have to gram.y file processed.
  Maybe this part of the patch could be left out (it's the first,
  trivial chunk).

- makes more translator-friendly the messages in gram.y, because a lot
  of them are only a keyword away of being equal.  This avoids having
  the translator process the same thing several times.

- adds a couple of comments for the translator (I had to peek at the
  source code to see what the %s was about, so I guess this is needed).


Also, I've noted that psql's \h messages are not translatable.  Is there
a way to make them so?

I have the backend messages almost done:

$ LANG= msgfmt -c -v es.po
1757 translated messages, 29 untranslated messages.

I'll submit after I resolve a couple of translations that are not clear.

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"La victoria es para quien se atreve a estar solo"
Index: nls.mk
===================================================================
RCS file: /home/alvherre/cvs/pgsql-server/src/backend/nls.mk,v
retrieving revision 1.6
diff -c -r1.6 nls.mk
*** nls.mk      28 Jul 2003 00:25:21 -0000      1.6
--- nls.mk      13 Sep 2003 03:52:55 -0000
***************
*** 7,13 ****
  GETTEXT_TRIGGERS:= errmsg errdetail errhint errcontext postmaster_error yyerror
  
  gettext-files:
!       find $(srcdir)/ -name '*.c' -print >$@
  
  my-maintainer-clean:
        rm -f gettext-files
--- 7,13 ----
  GETTEXT_TRIGGERS:= errmsg errdetail errhint errcontext postmaster_error yyerror
  
  gettext-files:
!       find $(srcdir)/ -name '*.[cy]' -print >$@
  
  my-maintainer-clean:
        rm -f gettext-files
Index: parser/gram.y
===================================================================
RCS file: /home/alvherre/cvs/pgsql-server/src/backend/parser/gram.y,v
retrieving revision 2.432
diff -c -r2.432 gram.y
*** parser/gram.y       9 Sep 2003 23:22:20 -0000       2.432
--- parser/gram.y       14 Sep 2003 05:57:58 -0000
***************
*** 969,982 ****
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("INTERVAL(%d) 
precision must not be negative",
!                                                                               $3)));
                                        if ($3 > MAX_INTERVAL_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("INTERVAL(%d) 
precision reduced to maximum allowed, %d",
!                                                                               $3, 
MAX_INTERVAL_PRECISION)));
                                                $3 = MAX_INTERVAL_PRECISION;
                                        }
  
--- 969,984 ----
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name (INTERVAL, TIMESTAMP, etc) */
!                                                                errmsg("%s(%d) 
precision must not be negative",
!                                                                               
"INTERVAL", $3)));
                                        if ($3 > MAX_INTERVAL_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name (INTERVAL, TIMESTAMP, etc) */
!                                                                errmsg("%s(%d) 
precision reduced to maximum allowed, %d",
!                                                                               
"INTERVAL", $3, MAX_INTERVAL_PRECISION)));
                                                $3 = MAX_INTERVAL_PRECISION;
                                        }
  
***************
*** 5086,5099 ****
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("INTERVAL(%d) 
precision must not be negative",
!                                                                               $3)));
                                        if ($3 > MAX_INTERVAL_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("INTERVAL(%d) 
precision reduced to maximum allowed, %d",
!                                                                               $3, 
MAX_INTERVAL_PRECISION)));
                                                $3 = MAX_INTERVAL_PRECISION;
                                        }
                                        $$->typmod = INTERVAL_TYPMOD($3, $5);
--- 5088,5103 ----
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name (INTERVAL, TIMESTAMP, etc) */
!                                                                errmsg("%s(%d) 
precision must not be negative",
!                                                                               
"INTERVAL", $3)));
                                        if ($3 > MAX_INTERVAL_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name (INTERVAL, TIMESTAMP, etc) */
!                                                                errmsg("%s(%d) 
precision reduced to maximum allowed, %d",
!                                                                               
"INTERVAL", $3, MAX_INTERVAL_PRECISION)));
                                                $3 = MAX_INTERVAL_PRECISION;
                                        }
                                        $$->typmod = INTERVAL_TYPMOD($3, $5);
***************
*** 5211,5223 ****
                                        if ($2 < 1 || $2 > NUMERIC_MAX_PRECISION)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("NUMERIC 
precision %d must be between 1 and %d",
!                                                                               $2, 
NUMERIC_MAX_PRECISION)));
                                        if ($4 < 0 || $4 > $2)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("NUMERIC scale 
%d must be between 0 and precision %d",
!                                                                               $4, 
$2)));
  
                                        $$ = (($2 << 16) | $4) + VARHDRSZ;
                                }
--- 5215,5229 ----
                                        if ($2 < 1 || $2 > NUMERIC_MAX_PRECISION)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name, NUMERIC or DECIMAL */
!                                                                errmsg("%s precision 
%d must be between 1 and %d",
!                                                                               
"NUMERIC", $2, NUMERIC_MAX_PRECISION)));
                                        if ($4 < 0 || $4 > $2)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name, NUMERIC or DECIMAL */
!                                                                errmsg("%s scale %d 
must be between 0 and precision %d",
!                                                                               
"NUMERIC", $4, $2)));
  
                                        $$ = (($2 << 16) | $4) + VARHDRSZ;
                                }
***************
*** 5226,5233 ****
                                        if ($2 < 1 || $2 > NUMERIC_MAX_PRECISION)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("NUMERIC 
precision %d must be between 1 and %d",
!                                                                               $2, 
NUMERIC_MAX_PRECISION)));
  
                                        $$ = ($2 << 16) + VARHDRSZ;
                                }
--- 5232,5240 ----
                                        if ($2 < 1 || $2 > NUMERIC_MAX_PRECISION)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name, NUMERIC or DECIMAL */
!                                                                errmsg("%s precision 
%d must be between 1 and %d",
!                                                                               
"NUMERIC", $2, NUMERIC_MAX_PRECISION)));
  
                                        $$ = ($2 << 16) + VARHDRSZ;
                                }
***************
*** 5244,5256 ****
                                        if ($2 < 1 || $2 > NUMERIC_MAX_PRECISION)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("DECIMAL 
precision %d must be between 1 and %d",
!                                                                               $2, 
NUMERIC_MAX_PRECISION)));
                                        if ($4 < 0 || $4 > $2)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("DECIMAL scale 
%d must be between 0 and precision %d",
!                                                                               $4, 
$2)));
  
                                        $$ = (($2 << 16) | $4) + VARHDRSZ;
                                }
--- 5251,5265 ----
                                        if ($2 < 1 || $2 > NUMERIC_MAX_PRECISION)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name, NUMERIC or DECIMAL */
!                                                                errmsg("%s precision 
%d must be between 1 and %d",
!                                                                               
"DECIMAL", $2, NUMERIC_MAX_PRECISION)));
                                        if ($4 < 0 || $4 > $2)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name, NUMERIC or DECIMAL */
!                                                                errmsg("%s scale %d 
must be between 0 and precision %d",
!                                                                               
"DECIMAL", $4, $2)));
  
                                        $$ = (($2 << 16) | $4) + VARHDRSZ;
                                }
***************
*** 5259,5266 ****
                                        if ($2 < 1 || $2 > NUMERIC_MAX_PRECISION)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("DECIMAL 
precision %d must be between 1 and %d",
!                                                                               $2, 
NUMERIC_MAX_PRECISION)));
  
                                        $$ = ($2 << 16) + VARHDRSZ;
                                }
--- 5268,5276 ----
                                        if ($2 < 1 || $2 > NUMERIC_MAX_PRECISION)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name, NUMERIC or DECIMAL */
!                                                                errmsg("%s precision 
%d must be between 1 and %d",
!                                                                               
"DECIMAL", $2, NUMERIC_MAX_PRECISION)));
  
                                        $$ = ($2 << 16) + VARHDRSZ;
                                }
***************
*** 5465,5478 ****
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                
errmsg("TIMESTAMP(%d)%s precision must not be negative",
!                                                                               $3, 
($5 ? " WITH TIME ZONE": ""))));
                                        if ($3 > MAX_TIMESTAMP_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                
errmsg("TIMESTAMP(%d)%s precision reduced to maximum allowed, %d",
!                                                                               $3, 
($5 ? " WITH TIME ZONE": ""),
                                                                                
MAX_TIMESTAMP_PRECISION)));
                                                $3 = MAX_TIMESTAMP_PRECISION;
                                        }
--- 5475,5492 ----
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: first 
%s is a type name (TIMESTAMP, TIME) and second
!                                                                 %s is WITH TIME ZONE 
or empty */
!                                                                errmsg("%s(%d)%s 
precision must not be negative",
!                                                                               
"TIMESTAMP", $3, ($5 ? " WITH TIME ZONE": ""))));
                                        if ($3 > MAX_TIMESTAMP_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: first 
%s is a type name (TIMESTAMP, TIME) and second
!                                                                 %s is WITH TIME ZONE 
or empty */
!                                                                errmsg("%s(%d)%s 
precision reduced to maximum allowed, %d",
!                                                                               
"TIMESTAMP", $3, ($5 ? " WITH TIME ZONE": ""),
                                                                                
MAX_TIMESTAMP_PRECISION)));
                                                $3 = MAX_TIMESTAMP_PRECISION;
                                        }
***************
*** 5506,5519 ****
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("TIME(%d)%s 
precision must not be negative",
!                                                                               $3, 
($5 ? " WITH TIME ZONE": ""))));
                                        if ($3 > MAX_TIME_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("TIME(%d)%s 
precision reduced to maximum allowed, %d",
!                                                                               $3, 
($5 ? " WITH TIME ZONE": ""),
                                                                                
MAX_TIME_PRECISION)));
                                                $3 = MAX_TIME_PRECISION;
                                        }
--- 5520,5533 ----
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("%s(%d)%s 
precision must not be negative",
!                                                                               
"TIME", $3, ($5 ? " WITH TIME ZONE": ""))));
                                        if ($3 > MAX_TIME_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("%s(%d)%s 
precision reduced to maximum allowed, %d",
!                                                                               
"TIME", $3, ($5 ? " WITH TIME ZONE": ""),
                                                                                
MAX_TIME_PRECISION)));
                                                $3 = MAX_TIME_PRECISION;
                                        }
***************
*** 6313,6326 ****
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                
errmsg("CURRENT_TIME(%d) precision must not be negative",
!                                                                               $3)));
                                        if ($3 > MAX_TIME_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                
errmsg("CURRENT_TIME(%d) precision reduced to maximum allowed, %d",
!                                                                               $3, 
MAX_TIME_PRECISION)));
                                                $3 = MAX_TIME_PRECISION;
                                        }
                                        d->typmod = $3;
--- 6327,6342 ----
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name or SQL keyword (INTERVAL, CURRENT_TIME) */
!                                                                errmsg("%s(%d) 
precision must not be negative",
!                                                                               
"CURRENT_TIME", $3)));
                                        if ($3 > MAX_TIME_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name or SQL keyword (INTERVAL, CURRENT_TIME) */
!                                                                errmsg("%s(%d) 
precision reduced to maximum allowed, %d",
!                                                                               
"CURRENT_TIME", $3, MAX_TIME_PRECISION)));
                                                $3 = MAX_TIME_PRECISION;
                                        }
                                        d->typmod = $3;
***************
*** 6367,6379 ****
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                
errmsg("CURRENT_TIMESTAMP(%d) precision must not be negative",
!                                                                               $3)));
                                        if ($3 > MAX_TIMESTAMP_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                
errmsg("CURRENT_TIMESTAMP(%d) precision reduced to maximum allowed, %d",
                                                                                $3, 
MAX_TIMESTAMP_PRECISION)));
                                                $3 = MAX_TIMESTAMP_PRECISION;
                                        }
--- 6383,6397 ----
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name or SQL keyword (INTERVAL, CURRENT_TIME) */
!                                                                errmsg("%s(%d) 
precision must not be negative",
!                                                                               
"CURRENT_TIMESTAMP", $3)));
                                        if ($3 > MAX_TIMESTAMP_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name or SQL keyword (INTERVAL, CURRENT_TIME) */
!                                                                errmsg("%s(%d) 
precision reduced to maximum allowed, %d",
                                                                                $3, 
MAX_TIMESTAMP_PRECISION)));
                                                $3 = MAX_TIMESTAMP_PRECISION;
                                        }
***************
*** 6420,6433 ****
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("LOCALTIME(%d) 
precision must not be negative",
!                                                                               $3)));
                                        if ($3 > MAX_TIME_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("LOCALTIME(%d) 
precision reduced to maximum allowed, %d",
!                                                                               $3, 
MAX_TIME_PRECISION)));
                                                $3 = MAX_TIME_PRECISION;
                                        }
                                        d->typmod = $3;
--- 6438,6453 ----
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name or SQL keyword (INTERVAL, CURRENT_TIME) */
!                                                                errmsg("%s(%d) 
precision must not be negative",
!                                                                               
"LOCALTIME", $3)));
                                        if ($3 > MAX_TIME_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name or SQL keyword (INTERVAL, CURRENT_TIME) */
!                                                                errmsg("%s(%d) 
precision reduced to maximum allowed, %d",
!                                                                               
"LOCALTIME", $3, MAX_TIME_PRECISION)));
                                                $3 = MAX_TIME_PRECISION;
                                        }
                                        d->typmod = $3;
***************
*** 6474,6487 ****
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                
errmsg("LOCALTIMESTAMP(%d) precision must not be negative",
!                                                                               $3)));
                                        if ($3 > MAX_TIMESTAMP_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                
errmsg("LOCALTIMESTAMP(%d) precision reduced to maximum allowed, %d",
!                                                                               $3, 
MAX_TIMESTAMP_PRECISION)));
                                                $3 = MAX_TIMESTAMP_PRECISION;
                                        }
                                        d->typmod = $3;
--- 6494,6509 ----
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name or SQL keyword (INTERVAL, CURRENT_TIME) */
!                                                                errmsg("%s(%d) 
precision must not be negative",
!                                                                               
"LOCALTIMESTAMP", $3)));
                                        if ($3 > MAX_TIMESTAMP_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name or SQL keyword (INTERVAL, CURRENT_TIME) */
!                                                                errmsg("%s(%d) 
precision reduced to maximum allowed, %d",
!                                                                               
"LOCALTIMESTAMP", $3, MAX_TIMESTAMP_PRECISION)));
                                                $3 = MAX_TIMESTAMP_PRECISION;
                                        }
                                        d->typmod = $3;
***************
*** 7184,7197 ****
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("INTERVAL(%d) 
precision must not be negative",
!                                                                               $3)));
                                        if ($3 > MAX_INTERVAL_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                errmsg("INTERVAL(%d) 
precision reduced to maximum allowed, %d",
!                                                                               $3, 
MAX_INTERVAL_PRECISION)));
                                                $3 = MAX_INTERVAL_PRECISION;
                                        }
                                        n->typename->typmod = INTERVAL_TYPMOD($3, $6);
--- 7206,7221 ----
                                        if ($3 < 0)
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name or SQL keyword (INTERVAL, CURRENT_TIME) */
!                                                                errmsg("%s(%d) 
precision must not be negative",
!                                                                               
"INTERVAL", $3)));
                                        if ($3 > MAX_INTERVAL_PRECISION)
                                        {
                                                ereport(NOTICE,
                                                                
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
!                                                                /* translator: %s is 
a type name or SQL keyword (INTERVAL, CURRENT_TIME) */
!                                                                errmsg("%s(%d) 
precision reduced to maximum allowed, %d",
!                                                                               
"INTERVAL", $3, MAX_INTERVAL_PRECISION)));
                                                $3 = MAX_INTERVAL_PRECISION;
                                        }
                                        n->typename->typmod = INTERVAL_TYPMOD($3, $6);
***************
*** 7631,7637 ****
                                        else
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_SYNTAX_ERROR),
!                                                                errmsg("OLD used in 
non-rule query")));
                                }
                        | NEW
                                {
--- 7655,7662 ----
                                        else
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_SYNTAX_ERROR),
!                                                               /* translator: %s is 
"NEW" or "OLD" */
!                                                                errmsg("%s used in 
non-rule query", "OLD")));
                                }
                        | NEW
                                {
***************
*** 7640,7646 ****
                                        else
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_SYNTAX_ERROR),
!                                                                errmsg("NEW used in 
non-rule query")));
                                }
                ;
  
--- 7665,7672 ----
                                        else
                                                ereport(ERROR,
                                                                
(errcode(ERRCODE_SYNTAX_ERROR),
!                                                               /* translator: %s is 
"NEW" or "OLD" */
!                                                                errmsg("%s used in 
non-rule query", "NEW")));
                                }
                ;
  
***************
*** 7919,7925 ****
                if (stmt->sortClause)
                        ereport(ERROR,
                                        (errcode(ERRCODE_SYNTAX_ERROR),
!                                        errmsg("multiple ORDER BY clauses not 
allowed")));
                stmt->sortClause = sortClause;
        }
        if (forUpdate)
--- 7945,7952 ----
                if (stmt->sortClause)
                        ereport(ERROR,
                                        (errcode(ERRCODE_SYNTAX_ERROR),
!                                       /* translator: %s is an SQL clause like ORDER 
BY, LIMIT, etc */
!                                        errmsg("multiple %s clauses not allowed", 
"ORDER BY")));
                stmt->sortClause = sortClause;
        }
        if (forUpdate)
***************
*** 7927,7933 ****
                if (stmt->forUpdate)
                        ereport(ERROR,
                                        (errcode(ERRCODE_SYNTAX_ERROR),
!                                        errmsg("multiple FOR UPDATE clauses not 
allowed")));
                stmt->forUpdate = forUpdate;
        }
        if (limitOffset)
--- 7954,7961 ----
                if (stmt->forUpdate)
                        ereport(ERROR,
                                        (errcode(ERRCODE_SYNTAX_ERROR),
!                                       /* translator: %s is an SQL clause like ORDER 
BY, LIMIT, etc */
!                                        errmsg("multiple %s clauses not allowed", 
"FOR UPDATE")));
                stmt->forUpdate = forUpdate;
        }
        if (limitOffset)
***************
*** 7935,7941 ****
                if (stmt->limitOffset)
                        ereport(ERROR,
                                        (errcode(ERRCODE_SYNTAX_ERROR),
!                                        errmsg("multiple OFFSET clauses not 
allowed")));
                stmt->limitOffset = limitOffset;
        }
        if (limitCount)
--- 7963,7970 ----
                if (stmt->limitOffset)
                        ereport(ERROR,
                                        (errcode(ERRCODE_SYNTAX_ERROR),
!                                       /* translator: %s is an SQL clause like ORDER 
BY, LIMIT, etc */
!                                        errmsg("multiple %s clauses not allowed", 
"OFFSET")));
                stmt->limitOffset = limitOffset;
        }
        if (limitCount)
***************
*** 7943,7949 ****
                if (stmt->limitCount)
                        ereport(ERROR,
                                        (errcode(ERRCODE_SYNTAX_ERROR),
!                                        errmsg("multiple LIMIT clauses not 
allowed")));
                stmt->limitCount = limitCount;
        }
  }
--- 7972,7979 ----
                if (stmt->limitCount)
                        ereport(ERROR,
                                        (errcode(ERRCODE_SYNTAX_ERROR),
!                                       /* translator: %s is an SQL clause like ORDER 
BY, LIMIT, etc */
!                                        errmsg("multiple %s clauses not allowed", 
"LIMIT")));
                stmt->limitCount = limitCount;
        }
  }
Index: parser/parse_oper.c
===================================================================
RCS file: /home/alvherre/cvs/pgsql-server/src/backend/parser/parse_oper.c,v
retrieving revision 1.74
diff -c -r1.74 parse_oper.c
*** parser/parse_oper.c 17 Aug 2003 19:58:05 -0000      1.74
--- parser/parse_oper.c 14 Sep 2003 05:30:07 -0000
***************
*** 557,562 ****
--- 557,563 ----
        if (!noError)
                ereport(ERROR,
                                (errcode(ERRCODE_UNDEFINED_FUNCTION),
+                                /* translator: %s is something like "integer + 
integer" */
                                 errmsg("operator requires run-time type coercion: %s",
                                                op_signature_string(op, 'b', arg1, 
arg2))));
  
***************
*** 751,756 ****
--- 752,758 ----
        if (fdresult == FUNCDETAIL_MULTIPLE)
                ereport(ERROR,
                                (errcode(ERRCODE_AMBIGUOUS_FUNCTION),
+                                /* translator: %s is something like "integer + 
integer" */
                                 errmsg("operator is not unique: %s",
                                                op_signature_string(op, oprkind, arg1, 
arg2)),
                                 errhint("Could not choose a best candidate operator. "
***************
*** 758,763 ****
--- 760,766 ----
        else
                ereport(ERROR,
                                (errcode(ERRCODE_UNDEFINED_FUNCTION),
+                                /* translator: %s is something like "integer + 
integer" */
                                 errmsg("operator does not exist: %s",
                                                op_signature_string(op, oprkind, arg1, 
arg2)),
                                 errhint("No operator matches the given name and 
argument type(s). "
---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Reply via email to