Sophie

Sophie

distrib > Mandriva > 2009.0 > x86_64 > media > contrib-testing > by-pkgid > b7275baf04bd377dbb7da23de355da28 > files > 54

postgresql8.2-contrib-8.2.12-1mdv2009.0.x86_64.rpm

$PostgreSQL: pgsql/contrib/pgrowlocks/README.pgrowlocks.euc_jp,v 1.1 2006/04/23 01:12:58 ishii Exp $

pgrowlocks README		ÀаæãÉ×

1. pgrowlocks¤È¤Ï

   pgrowlocks¤Ï¡¤»ØÄꤵ¤ì¤¿¥Æ¡¼¥Ö¥ë¤Î¹Ô¥í¥Ã¥¯¤Ë´Ø¤¹¤ë¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡¥

   pgrowlocks¤ÎÊÖ¤¹·¿¤Ï¡¤°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥

CREATE TYPE pgrowlocks_type AS (
	locked_row TID,		-- row TID
	lock_type TEXT,		-- lock type
	locker XID,		-- locking XID
	multi bool,		-- multi XID?
	xids xid[],		-- multi XIDs
	pids INTEGER[]		-- locker's process id
);

  ¼Â¹ÔÎã¤ò¼¨¤·¤Þ¤¹¡¥

test=# SELECT * FROM pgrowlocks('t1');
 locked_row | lock_type | locker | multi |   xids    |     pids      
------------+-----------+--------+-------+-----------+---------------
      (0,1) | Shared    |     19 | t     | {804,805} | {29066,29068}
      (0,2) | Shared    |     19 | t     | {804,805} | {29066,29068}
      (0,3) | Exclusive |    804 | f     | {804}     | {29066}
      (0,4) | Exclusive |    804 | f     | {804}     | {29066}
(4 rows)

  ³Æ¹àÌܤÎÀâÌÀ¤Ç¤¹¡¥

  locked_row		-- ¥í¥Ã¥¯¤µ¤ì¤¿¹Ô¤Î¥¿¥×¥ëID(TID)
  lock_type		-- ¶¦Í­¥í¥Ã¥¯¤Ê¤é"Shared"¡¤ÇÓ¾¥í¥Ã¥¯¤Ê¤é"Exclusive"
  locker		-- ¥í¥Ã¥¯¤ò¤«¤±¤Æ¤¤¤ë¥È¥é¥ó¥¶¥¯¥·¥ç¥óID[Ãí1]
  multi			-- locker¤¬¥Þ¥ë¥Á¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Ê¤ét¤½¤¦¤Ç¤Ê¤±¤ì¤Ðf
  xids			-- ¥í¥Ã¥¯¤ò¤«¤±¤Æ¤¤¤ë¥È¥é¥ó¥¶¥¯¥·¥ç¥óID[Ãí2]
  pids			-- ¥í¥Ã¥¯¤ò¤«¤±¤Æ¤¤¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID[Ãí2]

  [Ãí1: locker¤¬¥Þ¥ë¥Á¤Ê¤é¡¤¥È¥é¥ó¥¶¥¯¥·¥ç¥óID¤Ç¤Ï¤Ê¤¯¤Æ¥Þ¥ë¥ÁID¤Ë¤Ê¤ê
  ¤Þ¤¹¡¥]

  [Ãí2: locker¤¬¥Þ¥ë¥Á¤Î¾ì¹ç¡¤Ê£¿ô¤Î¥Ç¡¼¥¿¤¬É½¼¨¤µ¤ì¤Þ¤¹¡¥]

2. pgrowlocks¤Î¥¤¥ó¥¹¥È¡¼¥ë

   pgrowlocks¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ë¤Ï¡¤PostgreSQL¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤È¤­¤Î¥½¡¼
   ¥¹¥Ä¥ê¡¼¤¬É¬ÍפǤ¹¡¥º£¤Î¤È¤³¤íÂбþ¤·¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤ÏPostgreSQL
   8.0°Ê¹ß¤Ç¤¹¡¥

   ¤³¤³¤Ç¤ÏPostgreSQL¤Î¥½¡¼¥¹¤Ï/usr/local/src/postgresql-8.1/¤ËŸ³«¤µ
   ¤ì¤Æ¤¤¤ë¤â¤Î¤È¤·¤Þ¤¹¡¥

   1) pgrowlocks¤Î¥½¡¼¥¹¤òŸ³«¤·¤Þ¤¹¡¥¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ï
      /tmp/pgrowlocks-1.0.tar.gz¤ËÃÖ¤¤¤Æ¤¢¤ë¤â¤Î¤È¤·¤Þ¤¹¡¥

      $ cd /usr/local/src/postgresql-8.1/contrib
      $ tar xfz pgrowlocks-1.0.tar.gz

   2) PostgreSQL 8.0¤Î¾ì¹ç¤Ï¡¤¥½¡¼¥¹¤Î°ìÉô¤Ë½¤Àµ¤¬É¬ÍפǤ¹¡¥
      pgrowlocks.c¤Î61¹ÔÌÜÊÕ¤ê¤Ë

      #undef MAKERANGEVARFROMNAMELIST_HAS_TWO_ARGS

      ¤È¤¤¤¦¤Î¤¬¤¢¤ë¤Î¤Ç¡¤¤³¤ì¤ò

      #define MAKERANGEVARFROMNAMELIST_HAS_TWO_ARGS

      ¤Ë½ñ¤­´¹¤¨¤Þ¤¹(undef->define¤Ë¤·¤Þ¤¹)¡¥

   3) ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ´Ø¿ô¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡¥

      $ make
      $ make install

   4) ¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤òÅÐÏ¿¤·¤Þ¤¹¡¥

      $ psql -e -f /usr/local/pgsql/share/contrib/pgrowlocks.sql test

      ¤³¤ÎÎã¤Ç¤Ï"test"¤È¤¤¤¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÅÐÏ¿¤·¤Æ¤¤¤Þ¤¹¤¬¡¤¤â¤·Â¾¤Î¥Ç¡¼
      ¥¿¥Ù¡¼¥¹¤ËÅÐÏ¿¤¹¤ë¾ì¹ç¤Ï¤³¤³¤òÆɤßÂؤ¨¤Æ¤¯¤À¤µ¤¤¡¥

3. pgrowlocks¤Î»È¤¤Êý

   pgrowlocks¤Î¸Æ¤Ó½Ð¤··Á¼°¤Ï°Ê²¼¤Ç¤¹¡¥

   CREATE OR REPLACE FUNCTION pgrowlocks(text) RETURNS pgrowlocks_type
     AS 'MODULE_PATHNAME', 'pgrowlocks'
     LANGUAGE 'c' WITH (isstrict);

   Âè°ì°ú¿ô: ¥Æ¡¼¥Ö¥ë̾

   ´Ø¿ô¤ÎÌá¤ê¤Ïpgrowlocks_type·¿¤Ç¤¹¡¥

   pgrowlocks¤Ï¥Æ¡¼¥Ö¥ë¤ËAccessShareLock¥í¥Ã¥¯¤ò¤«¤±¡¤1¹Ô¤º¤ÄÆɤ߽Ф·
   ¤Æ¤Ï¹Ô¥í¥Ã¥¯¤¬¤«¤«¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤·¤Þ¤¹¡¥°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤·
   ¤Æ¤¯¤À¤µ¤¤¡¥

   1) ³ºÅö¥Æ¡¼¥Ö¥ë¤ËÇÓ¾¥í¥Ã¥¯¤¬¤«¤«¤Ã¤Æ¤¤¤ë¤È¡¤pgrowlocks¤Î¼Â¹Ô¤Ï¥Ö¥í¥Ã
      ¥¯¤µ¤ì¤Þ¤¹¡¥

   2) pgrowlocks¤Î¼Â¹ÔÃæ¤Ë¿·¤¿¤Ë¤«¤«¤Ã¤¿¤ê¡¤²ò½ü¤µ¤ì¤¿¹Ô¥í¥Ã¥¯¤Ë´Ø¤¹¤ë
      ¾ðÊó¤Ïpgrowlocks¤Î¼Â¹Ô·ë²Ì¤ËÈ¿±Ç¤µ¤ì¤Æ¤¤¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡¥


   pgrowlocks¤Ï¥í¥Ã¥¯¤µ¤ì¤¿¹Ô¤ÎÆâÍƤÏɽ¼¨¤·¤Þ¤»¤ó¡¥¹ÔÆâÍƤò¸«¤¿¤¤¾ì¹ç
   ¤Ï¡¤¥Æ¡¼¥Ö¥ë¤òpgrowlocks¤Îlocked_rowsÎó¤Ç·ë¹ç¤·¤Þ¤¹¡¥Îã¤ò¼¨¤·¤Þ¤¹¡¥

   SELECT * FROM accounts AS a, pgrowlocks('accounts') AS p WHERE p.locked_ row = a.ctid;


4. pgrowlocks¤Î¥é¥¤¥»¥ó¥¹¾ò·ï¤Ë¤Ä¤¤¤Æ

   pgrowlocks.c¤ÎËÁƬ¤Ë½ñ¤¤¤Æ¤¢¤ëÄ̤ê¤Ç¤¹(½¤ÀµBSD¥é¥¤¥»¥ó¥¹¤Ë½à¤¸¤Æ¤¤
   ¤Þ¤¹)¡¥¤Þ¤¿¡¤pgrowlocks ¤Ï´°Á´¤Ë̵ÊݾڤǤ¹¡¥pgrowlocks ¤ò»ÈÍѤ·¤¿¤³
   ¤È¤Ë¤è¤Ã¤ÆÀ¸¤¸¤ë¤¤¤«¤Ê¤ë·ë²Ì¤Ë´Ø¤·¤Æ¤âÀÕǤ¤òÉ餤¤Þ¤»¤ó¡¥

5. ²þÄûÍúÎò

   2006/03/21 pgrowlocks ¥Ð¡¼¥¸¥ç¥ó 1.1¥ê¥ê¡¼¥¹(8.2 current¤Ç¥Æ¥¹¥È)
   2005/08/22 pgrowlocks ¥Ð¡¼¥¸¥ç¥ó 1.0¥ê¥ê¡¼¥¹