回到上乙個層面,繼續看 portalstart的處理:
void由之前的分析可以知道,滿足 case portal_one_select 的條件,下面再看portalstart(portal portal, paramlistinfo
params
,
int eflags, bool
use_active_snapshot)
}pg_catch();
pg_end_try();
...}
use_active_snapshot,回溯上層:
static可見,snapshot 還是要搞的。簡言之,snapshot 是為了mvcc控制:void
exec_******_query(
const
char *query_string)
...portalstart(portal, null,
0, snapshot_set);
}...
}
typedef structsnapshotdata
snapshotdata;
PostgreSQL在何處處理 sql查詢之二十九
接前面,繼續分析 chooseportalstrategy chooseportalstrategy select portal execution strategy given the intended statement list.the list elements can be querys,...
PostgreSQL在何處處理 sql查詢之三十
接前面,繼續分析 portalstrategy chooseportalstrategy list stmts else if isa stmt,plannedstmt else portal one returning has to allow auxiliary queries added by...
PostgreSQL在何處處理 sql查詢
如果我開乙個psql視窗,來輸入sql文,它在資料庫的何處被解析?在何處被 真正 處理?postgres.c 的 int postgresmain int argc,char ar const char username 函式中,在 postgresmain 的 for 迴圈中,呼叫 static ...