From 1d1f425f8d4331ecf09512386880af0827cd6091 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Mon, 25 Jan 2010 18:23:10 +0000 Subject: [PATCH] Add note that PREPARE TRANSACTION is for transaction managers, not regular applications. Also add a comment pointing out that tab-complition for PREPARE TRANSACTION is missing on purpose. --- doc/src/sgml/ref/prepare_transaction.sgml | 11 ++++++++++- src/bin/psql/tab-complete.c | 7 ++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/doc/src/sgml/ref/prepare_transaction.sgml b/doc/src/sgml/ref/prepare_transaction.sgml index b8b8d8aca8..da304c7255 100644 --- a/doc/src/sgml/ref/prepare_transaction.sgml +++ b/doc/src/sgml/ref/prepare_transaction.sgml @@ -1,5 +1,5 @@ @@ -82,6 +82,15 @@ PREPARE TRANSACTION transaction_id Notes + + PREPARE TRANSACTION is not intended for use in applications + or interactive sessions. It's purpose is to allow an external + transaction manager to perform atomic global transactions across multiple + databases or other transactional resources. Unless you're writing a + transaction manager, you probably shouldn't be using PREPARE + TRANSACTION. + + This command must be used inside a transaction block. Use to start one. diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index da2011074b..cecd88d522 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2010, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.191 2010/01/22 16:40:19 rhaas Exp $ + * $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.192 2010/01/25 18:23:09 heikki Exp $ */ /*---------------------------------------------------------------------- @@ -1882,6 +1882,11 @@ psql_completion(char *text, int start, int end) COMPLETE_WITH_LIST(list_PREPARE); } +/* + * PREPARE TRANSACTION is missing on purpose. It's intended for transaction + * managers, not for manual use in interactive sessions. + */ + /* REASSIGN OWNED BY xxx TO yyy */ else if (pg_strcasecmp(prev_wd, "REASSIGN") == 0) COMPLETE_WITH_CONST("OWNED");