mirror of
https://abf.rosa.ru/djam/postgresql93.git
synced 2025-02-23 17:22:47 +00:00
107 lines
3.8 KiB
Diff
107 lines
3.8 KiB
Diff
--- ../postgresql-9.2.0.orig/src/backend/parser/gram.y 2011-09-09 01:13:28.000000000 +0400
|
|
+++ ./src/backend/parser/gram.y 2011-09-14 21:38:48.694882400 +0400
|
|
@@ -488,7 +488,7 @@
|
|
|
|
/* ordinary key words in alphabetical order */
|
|
%token <keyword> ABORT_P ABSOLUTE_P ACCESS ACTION ADD_P ADMIN AFTER
|
|
- AGGREGATE ALL ALSO ALTER ALWAYS ANALYSE ANALYZE AND ANY ARRAY AS ASC
|
|
+ AGGREGATE ALL ALSO ALTER ALWAYS ANALYSE ANALYZE AND ANY APPLICATION ARRAY AS ASC
|
|
ASSERTION ASSIGNMENT ASYMMETRIC AT ATTRIBUTE AUTHORIZATION
|
|
|
|
BACKWARD BEFORE BEGIN_P BETWEEN BIGINT BINARY BIT
|
|
@@ -8139,6 +8139,8 @@
|
|
lock_type: ACCESS SHARE { $$ = AccessShareLock; }
|
|
| ROW SHARE { $$ = RowShareLock; }
|
|
| ROW EXCLUSIVE { $$ = RowExclusiveLock; }
|
|
+ | APPLICATION SHARE { $$ = ApplicationShareLock; }
|
|
+ | APPLICATION EXCLUSIVE { $$ = ApplicationExclusiveLock; }
|
|
| SHARE UPDATE EXCLUSIVE { $$ = ShareUpdateExclusiveLock; }
|
|
| SHARE { $$ = ShareLock; }
|
|
| SHARE ROW EXCLUSIVE { $$ = ShareRowExclusiveLock; }
|
|
@@ -11828,6 +11830,7 @@
|
|
| ALSO
|
|
| ALTER
|
|
| ALWAYS
|
|
+ | APPLICATION
|
|
| ASSERTION
|
|
| ASSIGNMENT
|
|
| AT
|
|
--- --- ../postgresql-9.2.0.orig/src/backend/storage/lmgr/lock.c Thu Aug 23 22:06:50 2012 UTC
|
|
+++ ./src/backend/storage/lmgr/lock.c Mon Sep 10 07:35:10 2012 UTC
|
|
@@ -96,8 +96,14 @@
|
|
(1 << AccessShareLock) | (1 << RowShareLock) |
|
|
(1 << RowExclusiveLock) | (1 << ShareUpdateExclusiveLock) |
|
|
(1 << ShareLock) | (1 << ShareRowExclusiveLock) |
|
|
- (1 << ExclusiveLock) | (1 << AccessExclusiveLock)
|
|
+ (1 << ExclusiveLock) | (1 << AccessExclusiveLock),
|
|
+
|
|
+ /* ApplicationShareLock*/
|
|
+ (1 << ApplicationExclusiveLock),
|
|
+
|
|
|
|
+ /* ApplicationExclusiveLock*/
|
|
+ (1 << ApplicationExclusiveLock | 1 << ApplicationShareLock)
|
|
};
|
|
|
|
/* Names of lock modes, for debug printouts */
|
|
@@ -111,7 +117,9 @@
|
|
"ShareLock",
|
|
"ShareRowExclusiveLock",
|
|
"ExclusiveLock",
|
|
- "AccessExclusiveLock"
|
|
+ "AccessExclusiveLock",
|
|
+ "ApplicationShareLock",
|
|
+ "ApplicationExclusiveLock"
|
|
};
|
|
|
|
#ifndef LOCK_DEBUG
|
|
@@ -119,7 +127,7 @@
|
|
#endif
|
|
|
|
static const LockMethodData default_lockmethod = {
|
|
- AccessExclusiveLock, /* highest valid lock mode number */
|
|
+ ApplicationExclusiveLock, /* highest valid lock mode number */
|
|
LockConflicts,
|
|
lock_mode_names,
|
|
#ifdef LOCK_DEBUG
|
|
@@ -130,7 +138,7 @@
|
|
};
|
|
|
|
static const LockMethodData user_lockmethod = {
|
|
- AccessExclusiveLock, /* highest valid lock mode number */
|
|
+ ApplicationExclusiveLock, /* highest valid lock mode number */
|
|
LockConflicts,
|
|
lock_mode_names,
|
|
#ifdef LOCK_DEBUG
|
|
--- ../postgresql-9.2.0.orig/src/include/parser/kwlist.h 2011-09-09 01:13:28.000000000 +0400
|
|
+++ ./src/include/parser/kwlist.h 2011-09-14 19:40:30.858423500 +0400
|
|
@@ -42,6 +42,7 @@
|
|
PG_KEYWORD("analyze", ANALYZE, RESERVED_KEYWORD)
|
|
PG_KEYWORD("and", AND, RESERVED_KEYWORD)
|
|
PG_KEYWORD("any", ANY, RESERVED_KEYWORD)
|
|
+PG_KEYWORD("application", APPLICATION, UNRESERVED_KEYWORD)
|
|
PG_KEYWORD("array", ARRAY, RESERVED_KEYWORD)
|
|
PG_KEYWORD("as", AS, RESERVED_KEYWORD)
|
|
PG_KEYWORD("asc", ASC, RESERVED_KEYWORD)
|
|
|
|
--- ../postgresql-9.2.0_orig/src/include/storage/lock.h 2011-09-09 01:13:28.000000000 +0400
|
|
+++ ./src/include/storage/lock.h 2011-09-14 19:40:30.905223600 +0400
|
|
@@ -87,7 +87,7 @@
|
|
typedef int LOCKMODE;
|
|
|
|
/* MAX_LOCKMODES cannot be larger than the # of bits in LOCKMASK */
|
|
-#define MAX_LOCKMODES 10
|
|
+#define MAX_LOCKMODES 12
|
|
|
|
#define LOCKBIT_ON(lockmode) (1 << (lockmode))
|
|
#define LOCKBIT_OFF(lockmode) (~(1 << (lockmode)))
|
|
@@ -156,6 +156,9 @@
|
|
#define AccessExclusiveLock 8 /* ALTER TABLE, DROP TABLE, VACUUM
|
|
* FULL, and unqualified LOCK TABLE */
|
|
|
|
+#define ApplicationShareLock 9 /* requested explicitly */
|
|
+#define ApplicationExclusiveLock 10 /* requested explicitly */
|
|
+
|
|
|
|
/*
|
|
* LOCKTAG is the key information needed to look up a LOCK item in the
|