Add a more useful error message for the case where someone tries to pass
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 24 Mar 2004 23:38:49 +0000 (23:38 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 24 Mar 2004 23:38:49 +0000 (23:38 +0000)
a whole row or record variable into a SQL function.  Eventually this case
should be made to actually work, but for now this is better than what it
did before.

src/pl/plpgsql/src/gram.y

index b6526ce47bcaa72cfc858ca12410a8d24f63c5f3..c116d5fb4dab4d00cbdd10c4817908d95b888343 100644 (file)
@@ -4,7 +4,7 @@
  *                       procedural language
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/pl/plpgsql/src/gram.y,v 1.51 2004/02/25 18:10:51 tgl Exp $
+ *   $PostgreSQL: pgsql/src/pl/plpgsql/src/gram.y,v 1.52 2004/03/24 23:38:49 tgl Exp $
  *
  *   This software is copyrighted by Jan Wieck - Hamburg.
  *
@@ -1660,6 +1660,20 @@ read_sql_construct(int until,
                plpgsql_dstring_append(&ds, buf);
                break;
 
+           case T_ROW:
+               /* XXX make this work someday */
+               ereport(ERROR,
+                       (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                        errmsg("passing a whole row variable into a SQL command is not implemented")));
+               break;
+
+           case T_RECORD:
+               /* XXX make this work someday */
+               ereport(ERROR,
+                       (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                        errmsg("passing a whole record variable into a SQL command is not implemented")));
+               break;
+
            default:
                plpgsql_dstring_append(&ds, yytext);
                break;
@@ -1867,6 +1881,20 @@ make_select_stmt(void)
                plpgsql_dstring_append(&ds, buf);
                break;
 
+           case T_ROW:
+               /* XXX make this work someday */
+               ereport(ERROR,
+                       (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                        errmsg("passing a whole row variable into a SQL command is not implemented")));
+               break;
+
+           case T_RECORD:
+               /* XXX make this work someday */
+               ereport(ERROR,
+                       (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                        errmsg("passing a whole record variable into a SQL command is not implemented")));
+               break;
+
            default:
                plpgsql_dstring_append(&ds, yytext);
                break;