E.99. Postgres95 ¸±¸®Áî 0.03

¸±¸®Áî ³¯Â¥: 1995-07-21

E.99.1. ¹Ù²ïÁ¡

ȣȯ¼º ¾ø´Â ¹Ù²ïÁ¡:
 * BETA-0.3¹öÀü¿¡¼­´Â ÀÌÀü ¹öÀüÀ¸·Î ¸¸µé¾îÁø µ¥ÀÌÅͺ£À̽º¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù.
   (½Ã½ºÅÛ Ä«Å»·Î±×¿Í, À妽º ±¸Á¶°¡ ¹Ù²î¾ú´Ù)
 * ¹®ÀÚ¿­À» Ç¥½ÃÇÏ´Â ¹®ÀÚ°¡ Å« µû¿ÈÇ¥(")¿¡¼­ ÀÛÀº µû¿ÈÇ¥(')·Î ¹Ù²î¾ú´Ù.
 * Áý°èÇÔ¼ö À̸§ÀÌ SQL Ç¥ÁØ À̸§À¸·Î ¹Ù²î¾ú´Ù (¿¹. int4sum -> sum)
 * CHANGE ACL ±¸¹®ÀÌ GRANT/REVOKE ±¸¹®À¸·Î ¹Ù²î¾ú´Ù.
 * ºÎµ¿¼Ò¼öÇü (¿¹. 3.14)ÀÌ  float4 ÇüÀ¸·Î »ç¿ëµÊ (ÀÌÀü¿¡´Â float8 ÇüÀ»
   »ç¿ëÇßÀ½); ÀÚ·áÇü º¯È¯À» »ç¿ëÇÏ°í ÀÖ´Â ºÎºÐÀÌ ÀÖ´Ù¸é, ¼öÁ¤µÇ¾î¾ßÇÔ.
   ÀÌ Çüº¯È­ ¹®Á¦¸¦ ¹«½ÃÇÑ´Ù¸é, ¾û¶×ÇÑ °ªÀÌ ÀúÀåµÉ ¼öµµ ÀÖÀ½.
 * LIBPQ Äڵ尡 Àü¸é ¼öÁ¤µÇ¾î ¿©·¯°³ÀÇ ¼­¹ö¸¦ µ¿½Ã¿¡ Á¢¼ÓÇÒ ¼ö ÀÖÀ½.
 * pg_user Å×À̺íÀÇ usesysid ÇʵåÀÇ ÀÚ·áÇüÀÌ int2¿¡¼­ int4·Î ¹Ù²ñ
 * netbsd/freebsd/bsd OS°¡ BSD44_derived À̸§À¸·Î ÅëÇÕµÇ¾î ¼³Ä¡ÇÔ
   (Alistair Crooks ÀÛ¾÷)

SQL Ç¥ÁØ Áؼö (´ÙÀ½ »çÇ×µéÀº SQL-92 Ç¥ÁØÀ» µû¸¥´Ù):
 * SQL ³»Àå ÀÚ·áÇü: smallint, int(eger), float, real, char(N), varchar(N),
   date and time.

   ´ÙÀ½°ú °°ÀÌ ¾Æ·¡ ÀÚ·áÇüµéÀº postgres ÀÚü ÀÚ·áÇüÀÇ º°ÄªÀ¸·Î »ç¿ëµÈ´Ù:
                smallint -> int2
                integer, int -> int4
                float, real  -> float4
   char(N), varchar(N) ÇüÀº text ÇüÀ¸·Î ±¸ÇöµÇ¾úÀ¸¸é, chan(N) ÇüÀº 
   °ø¹é ä¿ò ÇüÅ·Π±¸ÇöµÇ¾ú´Ù.
 * ÀÛÀº µû¿ÈÇ¥(')´Â '' ÇüÅ·ΠÀÔ·ÂÇϸç, (\' Çüŵµ Çã¿ëÇÔ)
 * MAX, MIN, AVG, SUM, COUNT °°Àº Áý°èÇÔ¼öµéÀÌ SQL Ç¥ÁØ À̸§À¸·Î »ç¿ëµÊ
   »ç¿ëÀÚ´Â ÀÌ°ÍÀº »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö·Î À̸§À» ¹Ù²Ù¾î »ç¿ëÇÒ ¼ö ÀÖÀ½.
 * CHANGE ACL ¾ø¾Ö°í, GRANT/REVOKE ±¸¹®À» »ç¿ëÇÔ
   - ±ÇÇÑ ¼³Á¤¿¡¼­ "GROUP" ¿¹¾à¾î¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ½
        ¿¹:
                GRANT SELECT ON foobar TO GROUP my_group;
        ¸ðµç »ç¿ëÀÚ¸¦ ÀǹÌÇÏ´Â 'PUBLIC' ¿¹¾à¾î Ãß°¡

        ±ÇÇÑ ¼³Á¤Àº »ç¿ëÀÚ¿Í ±×·ìÀ» µ¿½Ã¿¡ ó¸®ÇÒ ¼ö´Â ¾øÀ½.

        "WITH GRANT OPTION" ±¸¹® Áö¿ø ¾ÈÇÔ.  °´Ã¼ÀÇ ¼ÒÀ¯ÁÖ¸¸ Á¢±Ù ±ÇÇÑÀ» 
        ÁöÁ¤ÇÒ ¼ö ÀÖÀ½
   - ±âº» Á¢±Ù ±ÇÇÑÀº Àбâ Àü¿ëÀ¸·Î ÁöÁ¤µÇ¾îÀÖ´Ù.
     ÀÌ°ÍÀ» ¹Ù²Ù·Á¸é, src/backend/utils/acl.h ÆÄÀÏ¿¡¼­
     ACL_WORLD_DEFAULT °ªÀ» ¹Ù²Ù¸é µÈ´Ù.

¹ö±× ¼öÁ¤:
 * ºñ¾îÀÖ´Â Å×ÀÌºí¿¡¼­ Áý°èÇÔ¼ö¸¦ »ç¿ëÇÒ ¶§ÀÇ ±× °á°ú¸¦
   ÇØ´ç ÇÔ¼ö ÃʱⰪÀ¸·Î »ç¿ëÇÔ. COUNT °æ¿ì´Â 0, MAX, MIN °æ¿ì´Â NULLÀ» ¸®ÅÏÇÔ
 * monitor ¿¡¼­ \; »ç¿ëÇÒ ¼ö ÀÖÀ½
 * LISTEN/NOTIFY ºñµ¿±â ¸ÞÄ«´ÏÁò »ç¿ë
 * ·ê ¾×¼Ç º»¹®¿¡ ÀÖ´Â NOTIFY »ç¿ë °¡´É
 * hash À妽º »ç¿ë°¡´É, ÀÚ·á·®ÀÌ ¸¹À» ¶§, btree º¸´Ù ³ªÀº ¼º´ÉÀ» ¹ßÈÖÇÔ
   (ÀÛ¾÷ÀÚ Paul Aoki)

±âŸ º¯°æ»çÇ×°ú È®ÀåµÈ °Íµé:
 * Äõ¸® ½ÇÇà °èȹÀ» »ìÆ캸´Â EXPLAIN ¸í·ÉÀÌ Ãß°¡ µÇ¾úÀ½
   (¿¹. "EXPLAIN SELECT * FROM EMP")
 * WARN, NOTICE ·Î±×¿¡¼­ ½Ã°£ Ç¥½Ã¸¦ ¾ø¾ÝÀ½.
   ÇÊ¿äÇÏ´Ù¸é, src/backend/utils/elog.h ¼Ò½º¿¡ ÀÖ´Â ¾Æ·¡ ÁÖ¼®À» Ç®¾î¾ßÇÔ.
        /* define ELOG_TIMESTAMPS */
 * Á¢±Ù ±ÇÇÑ¿¡ °ü·ÃµÇ¾î ´ÙÀ½ ¿À·ù ¸Þ½ÃÁö¸¦ º¼ ¼ö ÀÖÀ½.
        "Either no such class or insufficient privilege"
   ÀÌ °æ¿ì´Â ÇØ´ç °´Ã¼°¡ ¾ø´Â °æ¿ì¿¡ ¹ß»ýÇÑ´Ù.
   Á¤¸» ÇØ´ç °´Ã¼°¡ ¾ø´Â °æ¿ì¿Í, Á¢±Ù ±ÇÇÑÀÌ ¾ø´Â °æ¿ì¸¦
   Á¤Ã¥»ó ÇÕÃÆ´Ù.
 * ¸î ¸î ½Ã½ºÅÛ Ä«Å»·Î±×´Â ÀϹݻç¿ëÀÚ°¡ º¼ ¼ö ¾øµµ·Ï º¯°æµÊ

libpgtcl changes:
 * The -oid option has been added to the "pg_result" tcl command.
   pg_result -oid returns oid of the last row inserted.   If the
   last command was not an INSERT, then pg_result -oid returns "".
 * the large object interface is available as pg_lo* tcl commands:
   pg_lo_open, pg_lo_close, pg_lo_creat, etc.

»õ ½Ã½ºÅÛ Æ÷ÆÃ:
 * flex/lex ¹®Á¦ ¼öÁ¤µÊ. ¾î¶°ÇÑ Ç÷§Æû¿¡¼­µµ lex ´ë½Å flex ¸í·ÉÀ» »ç¿ëÇÒ 
   ¼ö ÀÖµµ·Ï Çß´Ù. ±¸¹® ºÐ¼®±â »ç¿ëÇÒ ¶§, Ç÷§Æû ºñÀÇÁ¸ÀûÀÎ ÀÛ¾÷À¸·Î 
   ÁøÇàÇÑ´Ù.
 * Linux-ELF Ç÷§ÆûÀ» ÀÌÁ¦ Áö¿øÇÑ´Ù. ´ÙÀ½ ȯ°æ¿¡¼­ Å×½ºÆõǾú´Ù.
        kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24

»õ µµ±¸:
 * ipccleanÀÌ Ãß°¡ µÇ¾úÀ½
   ipccleanÀº º¸Åë ¶§´Â »ç¿ëµÉ ÇÊ¿ä°¡ ¾øÀ¸³ª, ¼­¹ö°¡ ºñÁ¤»óÀûÀ¸·Î Á¾·áµÇ¾úÀ» ¶§
   ½Ã½ºÅÛ¿¡ ³²¾Æ´Â ÀÖ´Â À߸øµÈ °øÀ¯ ¸Þ¸ð¸®¸¦ Á¤¸®ÇÏ´Â ÀÛ¾÷À» ÇÑ´Ù.

»õ ¹®¼­:
 * »ç¿ëÀÚ ¼³¸í¼­ ºÎºÐÀÌ ¼öÁ¤µÇ¾úÀ¸¸ç, libpq °ü·Ã ¹®¼­°¡ Ãß°¡ µÇ¾úÀ½.