<HTML><BODY>Смысл в том, что мы при произвольном запросе будем знать из какой таблицы эта колонка и можем, используя метаинформацию, заданную в схеме, конструировать свои типы данных, а не дефолтные Пгшные. Например у нас есть таблица UserId,(BIGINT) ACL(JSON), делая что-то типа: $db->query("SELECT * FROM users WHERE userid = ?", $userid)->ACL->check_rights_for("MyACLKey"). Или если у нас там id со связанной таблицей, то мы можем при обращении к этому полю прозрачно выполнить SQL запрос на выборку информации по этому полю. Вариантов море. И это довольно хороший сахар.<br><br><br>Fri, 16 Jan 2015 21:08:01 +0100 от PEF Secure <pef-secure@yandex.ru>:<br>
<blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">
        <div id="">
        



    









        
        


        
        
        

        

        
        

        
        

        
        



<div class="js-helper js-readmsg-msg">
        <style type="text/css"></style>
        <div>
                <base target="_self" href="https://e.mail.ru/">
                
                        <div id="style_14214390380000000836_BODY">On Friday, January 16, 2015 22:27:05 <a href="/compose?To=Warstone@list.ru">Warstone@list.ru</a> wrote:<br>
> Раз уж тут пошла такая пьянка... Давайте сделаем ORM для PostgreSQL с<br>
> поддержкой асинхронности и возможностью прямого SQL запроса и<br>
> конвертирования результатов в спец типы.<br>
> <br>
> Идея основана на том, что EXPLAIN VERBOSE всегда расскажет какие поля и<br>
> откуда взяты (даже в случае с WITH), вот допустим:<br>
> <br>
>  EXPLAIN VERBOSE WITH foo AS (SELECT * FROM test) SELECT * FROM foo;<br>
>                                  QUERY PLAN<br>
> ----------------------------------------------------------------------------<br>
> - CTE Scan on foo  (cost=21.60..44.80 rows=1160 width=40)<br>
>    Output: foo.id, foo.data<br>
>    CTE foo<br>
>      ->  Seq Scan on pg_temp_111.test  (cost=0.00..21.60 rows=1160 width=40)<br>
> Output: test.id, test.data<br>
> <br>
> Смысл в том, что на каждый raw запрос (с кешированием, понятно) запрашивать<br>
> EXPLAIN этого запроса и по результатам строить аксессоры. Или не строить ))<br>
<br>
Не совсем понятен смысл именно EXPLAIN. Для аксессоров достаточно сделать <br>
execute и ещё до фетча уже будет всё выдано в %fields = %{$sth->{NAME_hash}};<br>
-- <br>
PEF Developer<br>
-- <br>
Moscow.pm mailing list<br>
<a href="/compose?To=moscow%2dpm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</div>
                        
                
                <base target="_self" href="https://e.mail.ru/">
        </div>

        
</div>


</div>
</blockquote>
<br></BODY></HTML>