diff --git a/doc/src/sgml/ref/comment.sgml b/doc/src/sgml/ref/comment.sgml
index 593df4743c02b35e6d6a7c6cee6e37e75b6cd557..f3f425121f1363dc4c2ea3d9de21ae4dbf312f3c 100644
--- a/doc/src/sgml/ref/comment.sgml
+++ b/doc/src/sgml/ref/comment.sgml
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/comment.sgml,v 1.28 2005/05/26 20:05:03 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/comment.sgml,v 1.29 2005/06/08 21:15:27 tgl Exp $
 PostgreSQL documentation
 -->
 
@@ -243,7 +243,7 @@ COMMENT ON INDEX my_index IS 'Enforces uniqueness on employee ID';
 COMMENT ON LANGUAGE plpython IS 'Python support for stored procedures';
 COMMENT ON LARGE OBJECT 346344 IS 'Planning document';
 COMMENT ON OPERATOR ^ (text, text) IS 'Performs intersection of two texts';
-COMMENT ON OPERATOR ^ (NONE, text) IS 'This is a prefix operator on text';
+COMMENT ON OPERATOR - (NONE, text) IS 'This is a prefix operator on text';
 COMMENT ON OPERATOR CLASS int4ops USING btree IS '4 byte integer operators for btrees';
 COMMENT ON RULE my_rule ON my_table IS 'Logs updates of employee records';
 COMMENT ON SCHEMA my_schema IS 'Departmental data';
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index c8ab0d3f4dff351289bf174727a2cdd8b32beab2..c54d6de890413ad839a42991bb1802d1343b6cf8 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.491 2005/05/07 02:22:46 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.492 2005/06/08 21:15:28 tgl Exp $
  *
  * HISTORY
  *	  AUTHOR			DATE			MAJOR EVENT
@@ -6099,14 +6099,6 @@ a_expr:		c_expr									{ $$ = $1; }
 				{ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, $2); }
 			| '-' a_expr					%prec UMINUS
 				{ $$ = doNegate($2); }
-			| '%' a_expr
-				{ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", NULL, $2); }
-			| '^' a_expr
-				{ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", NULL, $2); }
-			| a_expr '%'
-				{ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", $1, NULL); }
-			| a_expr '^'
-				{ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", $1, NULL); }
 			| a_expr '+' a_expr
 				{ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", $1, $3); }
 			| a_expr '-' a_expr
@@ -6468,14 +6460,6 @@ b_expr:		c_expr
 				{ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, $2); }
 			| '-' b_expr					%prec UMINUS
 				{ $$ = doNegate($2); }
-			| '%' b_expr
-				{ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", NULL, $2); }
-			| '^' b_expr
-				{ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", NULL, $2); }
-			| b_expr '%'
-				{ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", $1, NULL); }
-			| b_expr '^'
-				{ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", $1, NULL); }
 			| b_expr '+' b_expr
 				{ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", $1, $3); }
 			| b_expr '-' b_expr
diff --git a/src/include/catalog/pg_operator.h b/src/include/catalog/pg_operator.h
index d7da19c4faaec9b00405d88e01e4eb891abbab49..ac098366ed3d1b2d3a94d7924be35a97cb17d05a 100644
--- a/src/include/catalog/pg_operator.h
+++ b/src/include/catalog/pg_operator.h
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/catalog/pg_operator.h,v 1.132 2005/05/30 20:59:17 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_operator.h,v 1.133 2005/06/08 21:15:28 tgl Exp $
  *
  * NOTES
  *	  the genbki.sh script reads this file and generates .bki
@@ -259,8 +259,6 @@ DATA(insert OID = 594 (  "*"	   PGNSP PGUID b f 701 701 701 594	 0	 0	 0	 0	 0 f
 DATA(insert OID = 595 (  "@"	   PGNSP PGUID l f	 0 701 701	 0	 0	 0	 0	 0	 0 float8abs - - ));
 DATA(insert OID = 596 (  "|/"	   PGNSP PGUID l f	 0 701 701	 0	 0	 0	 0	 0	 0 dsqrt - - ));
 DATA(insert OID = 597 (  "||/"	   PGNSP PGUID l f	 0 701 701	 0	 0	 0	 0	 0	 0 dcbrt - - ));
-DATA(insert OID = 598 (  "%"	   PGNSP PGUID l f	 0 701 701	 0	 0	 0	 0	 0	 0 dtrunc - - ));
-DATA(insert OID = 599 (  "%"	   PGNSP PGUID r f 701	 0 701	 0	 0	 0	 0	 0	 0 dround - - ));
 DATA(insert OID = 1284 (  "|"	   PGNSP PGUID l f	 0 704 702	0  0   0   0   0   0 tintervalstart - - ));
 DATA(insert OID = 606 (  "<#>"	   PGNSP PGUID b f 702 702 704	0  0   0   0   0   0 mktinterval - - ));
 DATA(insert OID = 607 (  "="	   PGNSP PGUID b t	26	26	16 607 608 609 609 609 610 oideq eqsel eqjoinsel ));
diff --git a/src/test/regress/expected/float8-exp-three-digits-win32.out b/src/test/regress/expected/float8-exp-three-digits-win32.out
index 63d5e33c936bec8876475389c711c03bf2e1fd2b..2bafa4b86c84d8a215f5ee6930dd26256ac72254 100644
--- a/src/test/regress/expected/float8-exp-three-digits-win32.out
+++ b/src/test/regress/expected/float8-exp-three-digits-win32.out
@@ -204,7 +204,7 @@ SELECT '' AS five, f.f1, @f.f1 AS abs_f1
 (5 rows)
 
 -- truncate 
-SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
+SELECT '' AS five, f.f1, trunc(f.f1) AS trunc_f1
    FROM FLOAT8_TBL f;
  five |          f1          |       trunc_f1       
 ------+----------------------+----------------------
@@ -216,7 +216,7 @@ SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
 (5 rows)
 
 -- round 
-SELECT '' AS five, f.f1, f.f1 % AS round_f1
+SELECT '' AS five, f.f1, round(f.f1) AS round_f1
    FROM FLOAT8_TBL f;
  five |          f1          |       round_f1       
 ------+----------------------+----------------------
diff --git a/src/test/regress/expected/float8-exp-three-digits.out b/src/test/regress/expected/float8-exp-three-digits.out
index 7f345c4b37e1ff27a5b104029a939e0f20551007..116c6d12d061de8127f4ca6c58594601e5954650 100644
--- a/src/test/regress/expected/float8-exp-three-digits.out
+++ b/src/test/regress/expected/float8-exp-three-digits.out
@@ -203,7 +203,7 @@ SELECT '' AS five, f.f1, @f.f1 AS abs_f1
 (5 rows)
 
 -- truncate 
-SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
+SELECT '' AS five, f.f1, trunc(f.f1) AS trunc_f1
    FROM FLOAT8_TBL f;
  five |          f1          |       trunc_f1       
 ------+----------------------+----------------------
@@ -215,7 +215,7 @@ SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
 (5 rows)
 
 -- round 
-SELECT '' AS five, f.f1, f.f1 % AS round_f1
+SELECT '' AS five, f.f1, round(f.f1) AS round_f1
    FROM FLOAT8_TBL f;
  five |          f1          |       round_f1       
 ------+----------------------+----------------------
diff --git a/src/test/regress/expected/float8-small-is-zero.out b/src/test/regress/expected/float8-small-is-zero.out
index a22ca55e2288fb31a090248eed8874aa0fd4474e..71d9168950a91005219e1bbb12ce3e121ea90f84 100644
--- a/src/test/regress/expected/float8-small-is-zero.out
+++ b/src/test/regress/expected/float8-small-is-zero.out
@@ -212,7 +212,7 @@ SELECT '' AS five, f.f1, @f.f1 AS abs_f1
 (5 rows)
 
 -- truncate 
-SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
+SELECT '' AS five, f.f1, trunc(f.f1) AS trunc_f1
    FROM FLOAT8_TBL f;
  five |          f1          |       trunc_f1       
 ------+----------------------+----------------------
@@ -224,7 +224,7 @@ SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
 (5 rows)
 
 -- round 
-SELECT '' AS five, f.f1, f.f1 % AS round_f1
+SELECT '' AS five, f.f1, round(f.f1) AS round_f1
    FROM FLOAT8_TBL f;
  five |          f1          |       round_f1       
 ------+----------------------+----------------------
diff --git a/src/test/regress/expected/float8-small-is-zero_1.out b/src/test/regress/expected/float8-small-is-zero_1.out
index dbb0b1a69d5a070dbb9e5a6c524c900cf4ded5ad..87db7d3d590babaa10422a6f6c203f279129786d 100644
--- a/src/test/regress/expected/float8-small-is-zero_1.out
+++ b/src/test/regress/expected/float8-small-is-zero_1.out
@@ -212,7 +212,7 @@ SELECT '' AS five, f.f1, @f.f1 AS abs_f1
 (5 rows)
 
 -- truncate 
-SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
+SELECT '' AS five, f.f1, trunc(f.f1) AS trunc_f1
    FROM FLOAT8_TBL f;
  five |          f1          |       trunc_f1       
 ------+----------------------+----------------------
@@ -224,7 +224,7 @@ SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
 (5 rows)
 
 -- round 
-SELECT '' AS five, f.f1, f.f1 % AS round_f1
+SELECT '' AS five, f.f1, round(f.f1) AS round_f1
    FROM FLOAT8_TBL f;
  five |          f1          |       round_f1       
 ------+----------------------+----------------------
diff --git a/src/test/regress/expected/float8.out b/src/test/regress/expected/float8.out
index fbf8c721768942519dfaa814dec8312e0c9ed297..8f5b32eac05820cdaaa155ef562b1a8c2ff7d8e0 100644
--- a/src/test/regress/expected/float8.out
+++ b/src/test/regress/expected/float8.out
@@ -204,7 +204,7 @@ SELECT '' AS five, f.f1, @f.f1 AS abs_f1
 (5 rows)
 
 -- truncate 
-SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
+SELECT '' AS five, f.f1, trunc(f.f1) AS trunc_f1
    FROM FLOAT8_TBL f;
  five |          f1          |       trunc_f1       
 ------+----------------------+----------------------
@@ -216,7 +216,7 @@ SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
 (5 rows)
 
 -- round 
-SELECT '' AS five, f.f1, f.f1 % AS round_f1
+SELECT '' AS five, f.f1, round(f.f1) AS round_f1
    FROM FLOAT8_TBL f;
  five |          f1          |       round_f1       
 ------+----------------------+----------------------
diff --git a/src/test/regress/sql/float8.sql b/src/test/regress/sql/float8.sql
index fc38e372d523ba22770e82c38484d4458711e3fd..b4dd7be4b3fe6510823e68a3aacf464643aae6bb 100644
--- a/src/test/regress/sql/float8.sql
+++ b/src/test/regress/sql/float8.sql
@@ -79,11 +79,11 @@ SELECT '' AS five, f.f1, @f.f1 AS abs_f1
    FROM FLOAT8_TBL f;
 
 -- truncate 
-SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
+SELECT '' AS five, f.f1, trunc(f.f1) AS trunc_f1
    FROM FLOAT8_TBL f;
 
 -- round 
-SELECT '' AS five, f.f1, f.f1 % AS round_f1
+SELECT '' AS five, f.f1, round(f.f1) AS round_f1
    FROM FLOAT8_TBL f;
 
 -- ceil / ceiling