diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 8a7253dae53d088ad0aa3e5df8cac3167e6fcc61..2738caf6a98e8e53c09dd03e063b2f757efc0b69 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -643,3 +643,8 @@ Fri Sep 17 18:16:34 CEST 1999
 	- Made sure sqlca is initialized everytime.
 	- Set library version to 3.0.3
 
+Mon Sep 27 07:40:20 CEST 1999
+
+	- Synced preproc.y with gram.y.
+	- Synced keyword.c.
+	- Set ecpg version to 2.6.5
diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile
index 117e2527afe833c28d9077d92447b143fb8031aa..d639ae7ca9a323207e03cf30f4a4f76d0cabe57b 100644
--- a/src/interfaces/ecpg/preproc/Makefile
+++ b/src/interfaces/ecpg/preproc/Makefile
@@ -3,7 +3,7 @@ include $(SRCDIR)/Makefile.global
 
 MAJOR_VERSION=2
 MINOR_VERSION=6
-PATCHLEVEL=4
+PATCHLEVEL=5
 
 CFLAGS+=-I../include -DMAJOR_VERSION=$(MAJOR_VERSION) \
 	-DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \
diff --git a/src/interfaces/ecpg/preproc/keywords.c b/src/interfaces/ecpg/preproc/keywords.c
index fe72134a98ac3bbfdc24a5a4d37c4e0a6419b529..d8e8c658b4baae5f107f2c195f7a1e2c0fe47f45 100644
--- a/src/interfaces/ecpg/preproc/keywords.c
+++ b/src/interfaces/ecpg/preproc/keywords.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.16 1999/07/17 20:18:39 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.17 1999/09/27 10:41:02 meskes Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -30,6 +30,7 @@ static ScanKeyword ScanKeywords[] = {
 	/* name, value */
 	{"abort", ABORT_TRANS},
 	{"absolute", ABSOLUTE},
+	{"access", ACCESS},
 	{"action", ACTION},
 	{"add", ADD},
 	{"after", AFTER},
@@ -61,6 +62,7 @@ static ScanKeyword ScanKeywords[] = {
 	{"collate", COLLATE},
 	{"column", COLUMN},
 	{"commit", COMMIT},
+	{"committed", COMMITTED},
 	{"constraint", CONSTRAINT},
 	{"copy", COPY},
 	{"create", CREATE},
@@ -90,7 +92,7 @@ static ScanKeyword ScanKeywords[] = {
 	{"encoding", ENCODING},
 	{"end", END_TRANS},
 	{"except", EXCEPT},
-
+	{"exclusive", EXCLUSIVE},
 	{"execute", EXECUTE},
 	{"exists", EXISTS},
 	{"explain", EXPLAIN},
@@ -105,6 +107,7 @@ static ScanKeyword ScanKeywords[] = {
 	{"from", FROM},
 	{"full", FULL},
 	{"function", FUNCTION},
+	{"global", GLOBAL},
 	{"grant", GRANT},
 	{"group", GROUP},
 	{"handler", HANDLER},
@@ -119,7 +122,6 @@ static ScanKeyword ScanKeywords[] = {
 	{"insert", INSERT},
 	{"instead", INSTEAD},
 	{"intersect", INTERSECT},
-
 	{"interval", INTERVAL},
 	{"into", INTO},
 	{"is", IS},
@@ -143,6 +145,7 @@ static ScanKeyword ScanKeywords[] = {
 	{"maxvalue", MAXVALUE},
 	{"minute", MINUTE_P},
 	{"minvalue", MINVALUE},
+	{"mode", MODE},
 	{"month", MONTH_P},
 	{"move", MOVE},
 	{"names", NAMES},
@@ -199,8 +202,10 @@ static ScanKeyword ScanKeywords[] = {
 	{"select", SELECT},
 	{"sequence", SEQUENCE},
 	{"serial", SERIAL},
+	{"serializable", SERIALIZABLE},
 	{"set", SET},
 	{"setof", SETOF},
+	{"share", SHARE},
 	{"show", SHOW},
 	{"start", START},
 	{"statement", STATEMENT},
@@ -221,6 +226,7 @@ static ScanKeyword ScanKeywords[] = {
 	{"trigger", TRIGGER},
 	{"trim", TRIM},
 	{"true", TRUE_P},
+	{"truncate", TRUNCATE},
 	{"trusted", TRUSTED},
 	{"type", TYPE_P},
 	{"union", UNION},
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index 64270e86b2f1b9ec966a83c5cfbe4c3b6032274f..6151a6328d848eb70532a786800ad7051841df70 100644
--- a/src/interfaces/ecpg/preproc/preproc.y
+++ b/src/interfaces/ecpg/preproc/preproc.y
@@ -727,7 +727,7 @@ adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dim
 		OFFSET, OIDS, OPERATOR, PASSWORD, PROCEDURAL,
                 RENAME, RESET, RETURNS, ROW, RULE,
                 SERIAL, SEQUENCE, SETOF, SHARE, SHOW, START, STATEMENT, STDIN, STDOUT,
-		TRUSTED,
+		TRUNCATE, TRUSTED,
                 UNLISTEN, UNTIL, VACUUM, VALID, VERBOSE, VERSION
 
 /* Special keywords, not in the query language - see the "lex" file */
@@ -777,7 +777,7 @@ adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dim
 %type  <str>    update_target_el opt_id relation_name database_name
 %type  <str>    access_method attr_name class index_name name func_name
 %type  <str>    file_name AexprConst ParamNo TypeId
-%type  <str>	in_expr_nodes a_expr b_expr
+%type  <str>	in_expr_nodes a_expr b_expr TruncateStmt
 %type  <str> 	opt_indirection expr_list extract_list extract_arg
 %type  <str>	position_list substr_list substr_from
 %type  <str>	trim_list in_expr substr_for attr attrs
@@ -881,6 +881,7 @@ stmt:  AddAttrStmt			{ output_statement($1, 0); }
   		| ClusterStmt		{ output_statement($1, 0); }
 		| DefineStmt 		{ output_statement($1, 0); }
 		| DestroyStmt		{ output_statement($1, 0); }
+		| TruncateStmt		{ output_statement($1, 0); }
 		| DropPLangStmt		{ output_statement($1, 0); }
 		| DropTrigStmt		{ output_statement($1, 0); }
 		| DropUserStmt		{ output_statement($1, 0); }
@@ -1948,7 +1949,17 @@ DestroyStmt:  DROP TABLE relation_name_list
 				}
 		;
 
-
+/*****************************************************************************
+ *
+ *             QUERY:
+ *                             truncate table relname
+ *
+ *****************************************************************************/
+TruncateStmt:  TRUNCATE TABLE relation_name
+                               {
+					$$ = cat2_str(make1_str("drop table"), $3);
+                               }
+                       ;
 
 /*****************************************************************************
  *
@@ -4283,9 +4294,11 @@ ColId:  ident					{ $$ = $1; }
 		| INSENSITIVE			{ $$ = make1_str("insensitive"); }
 		| INSTEAD			{ $$ = make1_str("instead"); }
 		| ISNULL			{ $$ = make1_str("isnull"); }
+		| ISOLATION			{ $$ = make1_str("isolation"); }
 		| KEY				{ $$ = make1_str("key"); }
 		| LANGUAGE			{ $$ = make1_str("language"); }
 		| LANCOMPILER			{ $$ = make1_str("lancompiler"); }
+		| LEVEL				{ $$ = make1_str("level"); }
 		| LOCATION			{ $$ = make1_str("location"); }
 		| MATCH				{ $$ = make1_str("match"); }
 		| MAXVALUE			{ $$ = make1_str("maxvalue"); }