亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lobj.sgml

?? 關系型數據庫 Postgresql 6.5.2
?? SGML
?? 第 1 頁 / 共 2 頁
字號:
 <chapter id="largeObjects">  <title id="largeObjects-title">Large Objects</title>  <para>   In <productname>Postgres</productname>,   data values are stored in tuples and    individual tuples cannot span data pages. Since the size of   a data page is 8192 bytes, the upper limit on the  size   of a data value is relatively low. To support the storage    of larger atomic values,    <productname>Postgres</productname> provides a  large   object   interface.    This  interface  provides  file   oriented access to user data that has been declared  to   be a large type.   This  section describes the implementation and the    programmatic and query  language  interfaces  to    <productname>Postgres</productname>   large object data.  </para><sect1><title>Historical Note</title><para>     Originally, <productname>Postgres 4.2</productname> supported three standard      implementations of large objects: as files external      to <productname>Postgres</productname>,  as <acronym>ym>U</acronym>ym>  files managed by <productname>Postgres</productname>, and as data     stored within the <productname>Postgres</productname> database. It causes       considerable confusion among users. As a result, we only      support large objects as data stored within  the  <productname>Postgres</productname>     database  in  <productname>PostgreSQL</productname>.  Even  though it is slower to     access, it provides stricter data  integrity.     For historical reasons, this storage scheme is referred to as      Inversion large objects. (We will use  Inversion  and  large     objects  interchangeably to mean the same thing in this     section.)</para></sect1><sect1><title>Inversion Large Objects</title><para>     The Inversion large object implementation breaks  large     objects  up  into  "chunks"  and  stores  the chunks in     tuples in the database.  A B-tree index guarantees fast     searches for the correct chunk number when doing random     access reads and writes.</para></sect1><sect1><title>Large Object Interfaces</title><para>     The  facilities  <productname>Postgres</productname>  provides  to  access   large     objects,  both  in  the backend as part of user-defined     functions or the front end as part  of  an  application     using  the   interface, are described below. (For users     familiar with <productname>Postgres 4.2</productname>,    <productname>PostgreSQL</productname> has a new set of     functions  providing  a  more  coherent  interface. The     interface is the same for  dynamically-loaded  C       functions as well as for XXX LOST TEXT? WHAT SHOULD GO HERE??.     The  <productname>Postgres</productname>  large  object interface is modeled after     the <acronym>UNIX</acronym>  file  system  interface,  with  analogues  of     <function>open(2)</function>,  <function>read(2)</function>,<function>write(2)</function>, <function>lseek(2)</function>, etc.  User      functions call these routines to retrieve only the data  of     interest  from a large object.  For example, if a large     object type called mugshot  existed  that  stored       photographs  of  faces, then a function called beard could     be declared on mugshot data.  Beard could look  at  the     lower third of a photograph, and determine the color of     the beard that appeared  there,  if  any.   The  entire     large  object value need not be buffered, or even      examined, by the beard function.     Large objects may be accessed from dynamically-loaded <acronym>C</acronym>     functions  or  database  client  programs that link the     library.  <productname>Postgres</productname> provides a set of routines that      support opening, reading, writing, closing, and seeking on     large objects.</para><sect2><title>Creating a Large Object</title><para>     The routine<programlisting>Oid lo_creat(PGconn *conn, int mode)</programlisting>     creates a new large  object.  The  mode  is  a  bitmask     describing  several  different  attributes  of  the new     object.  The symbolic constants listed here are defined     in<filename>PGROOT/src/backend/libpq/libpq-fs.h</filename>     The access type (read, write, or both) is controlled by     OR ing together the bits <acronym>INV_READ</acronym>  and<acronym>INV_WRITE</acronym>.   If     the large object should be archived -- that is, if      historical versions of it should be moved periodically  to     a  special archive relation -- then the <acronym>INV_ARCHIVE</acronym> bit     should be set.  The low-order sixteen bits of mask  are     the  storage  manager  number on which the large object     should reside.  For sites other  than  Berkeley,  these     bits should always be zero.     The commands below create an (Inversion) large object:<programlisting>inv_oid = lo_creat(INV_READ|INV_WRITE|INV_ARCHIVE);</programlisting></para></sect2><sect2><title>Importing a Large Object</title><para>To import a <acronym>UNIX</acronym> file as     a large object, call<programlisting>Oid lo_import(PGconn *conn, text *filename)</programlisting>     The filename argument specifies the  <acronym>UNIX</acronym>  pathname  of     the file to be imported as a large object.</para></sect2><sect2><title>Exporting a Large Object</title><para>To export a large object     into <acronym>UNIX</acronym> file, call<programlisting>int lo_export(PGconn *conn, Oid lobjId, text *filename)</programlisting>     The lobjId argument specifies  the  Oid  of  the  large     object  to  export  and the filename argument specifies     the <acronym>UNIX</acronym> pathname of the file.</para></sect2><sect2><title>Opening an Existing Large Object</title><para>     To open an existing large object, call<programlisting>int lo_open(PGconn *conn, Oid lobjId, int mode, ...)</programlisting>     The lobjId argument specifies  the  Oid  of  the  large     object  to  open.   The  mode  bits control whether the     object is opened  for  reading  INV_READ),  writing  or     both.     A  large  object cannot be opened before it is created.     lo_open returns a large object descriptor for later use     in  lo_read, lo_write, lo_lseek, lo_tell, and lo_close.</para></sect2><sect2><title>Writing Data to a Large Object</title><para>     The routine<programlisting>int lo_write(PGconn *conn, int fd, char *buf, int len)</programlisting>     writes len bytes from buf to large object fd.   The  fd     argument must have been returned by a previous lo_open.     The number of bytes actually written is  returned.   In     the event of an error, the return value is negative.</para></sect2><sect2><title>Seeking on a Large Object</title><para>     To change the current read or write location on a large     object, call<programlisting>int lo_lseek(PGconn *conn, int fd, int offset, int whence)</programlisting>     This routine moves the current location pointer for the     large object described by fd to the new location specified      by offset.  The valid values  for  .i  whence  are     SEEK_SET SEEK_CUR and SEEK_END.</para></sect2><sect2><title>Closing a Large Object Descriptor</title><para>     A large object may be closed by calling<programlisting>int lo_close(PGconn *conn, int fd)</programlisting>     where  fd  is  a  large  object  descriptor returned by     lo_open.  On success, <acronym>lo_close</acronym> returns zero.  On error,     the return value is negative.</para></sect2></sect1><sect1><title>Built in registered functions</title><para>     There  are two built-in registered functions, <acronym>lo_import</acronym>     and <acronym>lo_export</acronym> which  are  convenient  for  use    in  <acronym>SQL</acronym>     queries.     Here is an example of their use<programlisting>CREATE TABLE image (    name            text,    raster          oid);INSERT INTO image (name, raster)    VALUES ('beautiful image', lo_import('/etc/motd'));SELECT lo_export(image.raster, "/tmp/motd") from image    WHERE name = 'beautiful image';</programlisting></para></sect1><sect1><title>Accessing Large Objects from LIBPQ</title><para>     Below is a sample program which shows how the large object       interface     in  LIBPQ  can  be used.  Parts of the program are      commented out but are left in the source for  the  readers     benefit.  This program can be found in<filename>../src/test/examples</filename>     Frontend applications which use the large object interface       in  LIBPQ  should   include   the   header   file     libpq/libpq-fs.h and link with the libpq library.</para></sect1><sect1><title>Sample Program</title>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日本亚洲高清| 一区二区三区精品在线观看| 中文字幕亚洲电影| 免费观看久久久4p| 91免费视频网址| 26uuu亚洲综合色欧美| 亚洲一区二区四区蜜桃| 国产成人精品aa毛片| 欧美精选午夜久久久乱码6080| 中文字幕电影一区| 国产一区在线观看麻豆| 欧美高清你懂得| 亚洲卡通欧美制服中文| 成人久久视频在线观看| 久久亚洲影视婷婷| 久久国产欧美日韩精品| 正在播放亚洲一区| 午夜精品久久久久久久99水蜜桃 | 欧美日韩精品一区视频| 国产精品美女久久久久久 | 91亚洲精品久久久蜜桃| 国产精品欧美极品| 东方aⅴ免费观看久久av| 久久综合九色综合97_久久久| 美女视频黄久久| 日韩小视频在线观看专区| 日韩精品成人一区二区三区| 欧美日韩一区三区四区| 亚洲五月六月丁香激情| 欧美日精品一区视频| 亚洲综合在线观看视频| 欧洲一区二区三区免费视频| 亚洲欧洲综合另类在线| 一本到不卡免费一区二区| 亚洲精品免费电影| 欧美亚洲丝袜传媒另类| 天堂一区二区在线| 日韩欧美亚洲一区二区| 国产白丝精品91爽爽久久| 欧美激情综合五月色丁香 | 一区二区三区资源| 欧美天天综合网| 日韩电影在线观看电影| 日韩欧美一级在线播放| 国产成人精品亚洲777人妖| 国产欧美精品一区二区三区四区| 成人午夜激情视频| 亚洲三级电影网站| 欧美日韩第一区日日骚| 精品亚洲成a人| 国产精品每日更新在线播放网址| 色一区在线观看| 日韩国产一二三区| 国产欧美日本一区二区三区| 色94色欧美sute亚洲线路一ni | 国产尤物一区二区在线| 国产精品乱子久久久久| 在线视频观看一区| 久久国产精品一区二区| 自拍偷拍亚洲综合| 欧美日韩国产首页| 激情综合网最新| 自拍偷拍国产亚洲| 欧美一区二区三区在线电影| 粉嫩蜜臀av国产精品网站| 国产精品传媒视频| 日韩一区二区三区免费看| 成人午夜在线播放| 天天综合网 天天综合色| 国产日韩欧美精品一区| 91麻豆精品国产无毒不卡在线观看 | 91色在线porny| 六月丁香综合在线视频| 亚洲精品网站在线观看| 精品捆绑美女sm三区| 色哟哟日韩精品| 国产成人精品免费在线| 亚洲.国产.中文慕字在线| 国产日产精品一区| 日韩一区二区精品在线观看| 99免费精品在线观看| 日本欧美一区二区在线观看| 亚洲丝袜美腿综合| 国产亚洲欧美激情| 欧美一区二区黄| 在线精品视频一区二区三四| 成人免费毛片片v| 久久精品72免费观看| 亚洲电影第三页| 日韩理论在线观看| 欧美—级在线免费片| 26uuu成人网一区二区三区| 欧美精品视频www在线观看| 色综合久久中文综合久久97| 国产99久久久国产精品潘金| 国产原创一区二区| 精品一区二区三区香蕉蜜桃| 亚洲第一福利一区| 亚洲大片免费看| 亚洲一区在线视频观看| 亚洲欧美一区二区不卡| 亚洲国产经典视频| 国产性色一区二区| 国产午夜精品一区二区| 久久这里只有精品视频网| 日韩欧美国产精品一区| 欧美变态凌虐bdsm| 日韩亚洲欧美高清| 精品国产三级电影在线观看| 欧美一级日韩免费不卡| 91 com成人网| 欧美一级日韩免费不卡| 精品少妇一区二区三区视频免付费 | 国产大片一区二区| 国内精品久久久久影院色| 国模少妇一区二区三区| 国内成+人亚洲+欧美+综合在线| 国产美女一区二区| 波多野洁衣一区| 9人人澡人人爽人人精品| 99精品热视频| 91国在线观看| 欧美一区二区免费视频| 欧美一级精品大片| 26uuu欧美日本| 国产欧美精品国产国产专区| 亚洲国产精品99久久久久久久久| 综合激情成人伊人| 亚洲一区二区三区小说| 奇米亚洲午夜久久精品| 国产精品影视在线观看| av亚洲精华国产精华精华| 在线免费观看成人短视频| 欧美一区二区三区四区在线观看| 精品不卡在线视频| 亚洲人成7777| 日韩av一区二| 国产不卡视频在线观看| 91国偷自产一区二区使用方法| 精品视频1区2区| 精品免费99久久| 亚洲欧洲成人精品av97| 无码av免费一区二区三区试看 | 国产欧美精品一区二区色综合朱莉| 国产精品国产自产拍在线| 亚洲国产一区在线观看| 精品一区二区三区免费视频| 北岛玲一区二区三区四区| 欧美亚洲一区二区三区四区| 精品久久国产97色综合| 中文字幕一区av| 久久成人羞羞网站| 色哦色哦哦色天天综合| 精品国产不卡一区二区三区| 一区精品在线播放| 麻豆精品一二三| 色妞www精品视频| 精品成人私密视频| 亚洲午夜日本在线观看| 岛国一区二区三区| 7777精品伊人久久久大香线蕉完整版| 国产欧美一区在线| 日韩高清不卡在线| 97久久精品人人做人人爽50路| 日韩三级av在线播放| 亚洲永久免费av| 成人免费毛片a| 欧美一区二区三区视频在线观看| 中文字幕一区二区三区不卡在线| 精品一区免费av| 欧美专区在线观看一区| 欧美国产丝袜视频| 国产一区二区三区电影在线观看| 欧美无砖专区一中文字| 亚洲品质自拍视频网站| 国产福利一区在线| 精品国内二区三区| 日本欧美大码aⅴ在线播放| 欧美羞羞免费网站| 国产精品国产三级国产aⅴ原创 | 久久久午夜电影| 麻豆91精品91久久久的内涵| 欧美亚洲丝袜传媒另类| 18成人在线观看| www.亚洲在线| 国产精品青草综合久久久久99| 国产麻豆日韩欧美久久| 精品精品欲导航| 精品在线免费视频| 日韩你懂的电影在线观看| 天天操天天干天天综合网| 欧洲精品中文字幕| 亚洲国产精品一区二区久久恐怖片 | 极品美女销魂一区二区三区| 日韩三级在线观看| 久久狠狠亚洲综合| 日韩精品一区二| 国内精品免费**视频| 国产亚洲精品7777| 成人黄页毛片网站|