PostgreSQL在何處處理 sql查詢之三十一

2021-09-22 11:01:04 字數 642 閱讀 2177

回到上乙個層面,繼續看 portalstart的處理:

void

portalstart(portal portal, paramlistinfo

params

,

int eflags, bool

use_active_snapshot)

}pg_catch();

pg_end_try();

...}

由之前的分析可以知道,滿足  case portal_one_select 的條件,下面再看

use_active_snapshot,回溯上層:

static

void

exec_******_query(

const

char *query_string)

...portalstart(portal, null,

0, snapshot_set);

}...

}

可見,snapshot 還是要搞的。簡言之,snapshot 是為了mvcc控制:

typedef struct

snapshotdata

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 ...