doc-exports/docs/dws/dev/dws_06_0054.html
Lu, Huayi e6fa411af0 DWS DEV 830.201 version
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com>
Co-authored-by: Lu, Huayi <luhuayi@huawei.com>
Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
2024-05-16 07:24:04 +00:00

174 lines
18 KiB
HTML

<a name="EN-US_TOPIC_0000001188429084"></a><a name="EN-US_TOPIC_0000001188429084"></a>
<h1 class="topictitle1">Universal File Access Functions</h1>
<div id="body1553151203303"><p id="EN-US_TOPIC_0000001188429084__afa2707e79aa64b99a7034266c7c7c767">Universal file access functions provide local access interfaces for files on a database server. Only files in the database cluster directory and the <strong id="EN-US_TOPIC_0000001188429084__b197068484536">log_directory</strong> directory can be accessed. Use a relative path for files in the cluster directory, and a path matching the <strong id="EN-US_TOPIC_0000001188429084__b8423527069539">log_directory</strong> configuration setting for log files. Only database system administrators can use these functions.</p>
<div class="section" id="EN-US_TOPIC_0000001188429084__section15462193610572"><h4 class="sectiontitle">pg_ls_dir(dirname text)</h4><p id="EN-US_TOPIC_0000001188429084__p1930513401477">Description: Lists files in a directory.</p>
<p id="EN-US_TOPIC_0000001188429084__p93061040676">Return type: setof text</p>
<p id="EN-US_TOPIC_0000001188429084__p12307040674">Note: <strong id="EN-US_TOPIC_0000001188429084__en-us_topic_0058965547_b8423527069118">pg_ls_dir</strong> returns all the names in the specified directory, except the special entries "." and "..".</p>
<p id="EN-US_TOPIC_0000001188429084__p13091040371">Examples:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188429084__screen123101740070"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span>
<span class="normal">35</span>
<span class="normal">36</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">pg_ls_dir</span><span class="p">(</span><span class="s1">'./'</span><span class="p">);</span>
<span class="w"> </span><span class="n">pg_ls_dir</span><span class="w"> </span>
<span class="c1">----------------------</span>
<span class="w"> </span><span class="p">.</span><span class="n">postgresql</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">swp</span>
<span class="w"> </span><span class="n">postgresql</span><span class="p">.</span><span class="n">conf</span>
<span class="w"> </span><span class="n">pg_tblspc</span>
<span class="w"> </span><span class="n">PG_VERSION</span>
<span class="w"> </span><span class="n">pg_ident</span><span class="p">.</span><span class="n">conf</span>
<span class="w"> </span><span class="n">core</span>
<span class="w"> </span><span class="n">server</span><span class="p">.</span><span class="n">crt</span>
<span class="w"> </span><span class="n">pg_serial</span>
<span class="w"> </span><span class="n">pg_twophase</span>
<span class="w"> </span><span class="n">postgresql</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="k">lock</span>
<span class="w"> </span><span class="n">pg_stat_tmp</span>
<span class="w"> </span><span class="n">pg_notify</span>
<span class="w"> </span><span class="n">pg_subtrans</span>
<span class="w"> </span><span class="n">pg_ctl</span><span class="p">.</span><span class="k">lock</span>
<span class="w"> </span><span class="n">pg_xlog</span>
<span class="w"> </span><span class="n">pg_clog</span>
<span class="w"> </span><span class="n">base</span>
<span class="w"> </span><span class="n">pg_snapshots</span>
<span class="w"> </span><span class="n">postmaster</span><span class="p">.</span><span class="n">opts</span>
<span class="w"> </span><span class="n">postmaster</span><span class="p">.</span><span class="n">pid</span>
<span class="w"> </span><span class="n">server</span><span class="p">.</span><span class="k">key</span><span class="p">.</span><span class="n">rand</span>
<span class="w"> </span><span class="n">server</span><span class="p">.</span><span class="k">key</span><span class="p">.</span><span class="n">cipher</span>
<span class="w"> </span><span class="n">pg_multixact</span>
<span class="w"> </span><span class="n">pg_errorinfo</span>
<span class="w"> </span><span class="n">server</span><span class="p">.</span><span class="k">key</span>
<span class="w"> </span><span class="n">pg_hba</span><span class="p">.</span><span class="n">conf</span>
<span class="w"> </span><span class="n">pg_replslot</span>
<span class="w"> </span><span class="p">.</span><span class="n">pg_hba</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">swp</span>
<span class="w"> </span><span class="n">cacert</span><span class="p">.</span><span class="n">pem</span>
<span class="w"> </span><span class="n">pg_hba</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="k">lock</span>
<span class="w"> </span><span class="k">global</span>
<span class="w"> </span><span class="n">gaussdb</span><span class="p">.</span><span class="k">state</span>
<span class="p">(</span><span class="mi">32</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001188429084__section1551844825720"><h4 class="sectiontitle">pg_read_file(filename text, offset bigint, length bigint)</h4><p id="EN-US_TOPIC_0000001188429084__p33701540878">Description: Returns the content of a text file.</p>
<p id="EN-US_TOPIC_0000001188429084__p11371134013712">Return type: text</p>
<p id="EN-US_TOPIC_0000001188429084__p33721040676">Note: <strong id="EN-US_TOPIC_0000001188429084__b13486104112349">pg_read_file</strong> returns part of a text file. It can return a maximum of <em id="EN-US_TOPIC_0000001188429084__i842352697193723">length</em> bytes from <em id="EN-US_TOPIC_0000001188429084__i842352697193738">offset</em>. The actual size of fetched data is less than <em id="EN-US_TOPIC_0000001188429084__i1367712584193834">length</em> if the end of the file is reached first. If <strong id="EN-US_TOPIC_0000001188429084__b1472816124361">offset</strong> is negative, it is the length rolled back from the file end. If <strong id="EN-US_TOPIC_0000001188429084__b84235270691618">offset</strong> and <strong id="EN-US_TOPIC_0000001188429084__b84235270691622">length</strong> are omitted, the entire file is returned.</p>
<p id="EN-US_TOPIC_0000001188429084__p193749400713">Examples:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188429084__screen437684020716"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">pg_read_file</span><span class="p">(</span><span class="s1">'postmaster.pid'</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">100</span><span class="p">);</span>
<span class="w"> </span><span class="n">pg_read_file</span><span class="w"> </span>
<span class="c1">---------------------------------------</span>
<span class="w"> </span><span class="mi">53078</span><span class="w"> </span><span class="o">+</span>
<span class="w"> </span><span class="o">/</span><span class="n">srv</span><span class="o">/</span><span class="n">BigData</span><span class="o">/</span><span class="n">hadoop</span><span class="o">/</span><span class="n">data1</span><span class="o">/</span><span class="n">coordinator</span><span class="o">+</span>
<span class="w"> </span><span class="mi">1500022474</span><span class="w"> </span><span class="o">+</span>
<span class="w"> </span><span class="mi">8000</span><span class="w"> </span><span class="o">+</span>
<span class="w"> </span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">dws</span><span class="w"> </span><span class="o">+</span>
<span class="w"> </span><span class="n">localhost</span><span class="w"> </span><span class="o">+</span>
<span class="w"> </span><span class="mi">2</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001188429084__section28071028185"><h4 class="sectiontitle">pg_read_binary_file(filename text [, offset bigint, length bigint,missing_ok boolean])</h4><p id="EN-US_TOPIC_0000001188429084__p780020281186">Description: Returns the content of a binary file.</p>
<p id="EN-US_TOPIC_0000001188429084__p380114281386">Return type: bytea</p>
<p id="EN-US_TOPIC_0000001188429084__p17801172811810">Note: <strong id="EN-US_TOPIC_0000001188429084__b842352706113651">pg_read_binary_file</strong> is similar to <strong id="EN-US_TOPIC_0000001188429084__b842352706113655">pg_read_file</strong>, except that the result is a <strong id="EN-US_TOPIC_0000001188429084__b84235270611374">bytea</strong> value; accordingly, no encoding checks are performed. In combination with the <strong id="EN-US_TOPIC_0000001188429084__en-us_topic_0058965547_b8423527069218">convert_from</strong> function, this function can be used to read a file in a specified encoding:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188429084__screen4801112814815"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">convert_from</span><span class="p">(</span><span class="n">pg_read_binary_file</span><span class="p">(</span><span class="s1">'filename'</span><span class="p">),</span><span class="w"> </span><span class="s1">'UTF8'</span><span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001188429084__section10496114018811"><h4 class="sectiontitle">pg_stat_file(filename text)</h4><p id="EN-US_TOPIC_0000001188429084__p5492840187">Description: Returns status information about a file.</p>
<p id="EN-US_TOPIC_0000001188429084__p24925402815">Return type: record</p>
<p id="EN-US_TOPIC_0000001188429084__p164921940182">Note: <strong id="EN-US_TOPIC_0000001188429084__b84235270692256">pg_stat_file</strong> returns a record containing the file size, last access timestamp, last modification timestamp, last file status change timestamp, and a <strong id="EN-US_TOPIC_0000001188429084__b84235270692331"><span id="EN-US_TOPIC_0000001188429084__text1687253615221">boolean</span></strong> value indicating if it is a directory. Typical use cases are as follows:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188429084__screen44931340384"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_stat_file</span><span class="p">(</span><span class="s1">'filename'</span><span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188429084__screen34931140684"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="p">(</span><span class="n">pg_stat_file</span><span class="p">(</span><span class="s1">'filename'</span><span class="p">)).</span><span class="n">modification</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001188429084__p1049384016819">Examples:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188429084__screen1549517402085"></div>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188429084__screen44953401288"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span>
<span class="normal">7</span>
<span class="normal">8</span>
<span class="normal">9</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_stat_file</span><span class="p">(</span><span class="s1">'postmaster.pid'</span><span class="p">);</span>
<span class="w"> </span>
<span class="w"> </span><span class="k">size</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">access</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">modification</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">change</span><span class="w"> </span>
<span class="o">|</span><span class="w"> </span><span class="n">creation</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">isdir</span><span class="w"> </span>
<span class="c1">------+------------------------+------------------------+------------------------</span>
<span class="o">+</span><span class="c1">----------+-------</span>
<span class="w"> </span><span class="mi">117</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2017</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">05</span><span class="w"> </span><span class="mi">11</span><span class="p">:</span><span class="mi">06</span><span class="p">:</span><span class="mi">34</span><span class="o">+</span><span class="mi">08</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2017</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">17</span><span class="p">:</span><span class="mi">18</span><span class="p">:</span><span class="mi">08</span><span class="o">+</span><span class="mi">08</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2017</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">17</span><span class="p">:</span><span class="mi">18</span><span class="p">:</span><span class="mi">08</span><span class="o">+</span><span class="mi">08</span><span class="w"> </span>
<span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188429084__screen849619401285"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="p">(</span><span class="n">pg_stat_file</span><span class="p">(</span><span class="s1">'postmaster.pid'</span><span class="p">)).</span><span class="n">modification</span><span class="p">;</span>
<span class="w"> </span><span class="n">modification</span><span class="w"> </span>
<span class="c1">------------------------</span>
<span class="w"> </span><span class="mi">2017</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">17</span><span class="p">:</span><span class="mi">18</span><span class="p">:</span><span class="mi">08</span><span class="o">+</span><span class="mi">08</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0052.html">System Administration Functions</a></div>
</div>
</div>