日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

create tablespace 与 heap_insert 函数

發布時間:2024/9/5 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 create tablespace 与 heap_insert 函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先說 heap_insert 函數:

/** heap_insert - insert tuple into a heap** The new tuple is stamped with current transaction ID and the specified* command ID.** If the HEAP_INSERT_SKIP_WAL option is specified, the new tuple is not* logged in WAL, even for a non-temp relation. Safe usage of this behavior* requires that we arrange that all new tuples go into new pages not* containing any tuples from other transactions, and that the relation gets* fsync'd before commit. (See also heap_sync() comments)** The HEAP_INSERT_SKIP_FSM option is passed directly to* RelationGetBufferForTuple, which see for more info.** Note that these options will be applied when inserting into the heap's* TOAST table, too, if the tuple requires any out-of-line data.** The BulkInsertState object (if any; bistate can be NULL for default* behavior) is also just passed through to RelationGetBufferForTuple.** The return value is the OID assigned to the tuple (either here or by the* caller), or InvalidOid if no OID. The header fields of *tup are updated* to match the stored tuple; in particular tup->t_self receives the actual* TID where the tuple was stored. But note that any toasting of fields* within the tuple data is NOT reflected into *tup.*/ Oid heap_insert(Relation relation, HeapTuple tup, CommandId cid,int options, BulkInsertState bistate) { /**Form_pg_class tmprel = relation->rd_rel;NameData tmprelname = tmprel->relname;fprintf(stderr,"Insert into: %s\n", tmprelname.data);fprintf(stderr,"In heap_insert,going to insert into table:%d \n\n",relation->rd_node.relNode );*/
TransactionId xid = GetCurrentTransactionId();HeapTuple heaptup;Buffer buffer;bool all_visible_cleared = false;if (relation->rd_rel->relhasoids){ #ifdef NOT_USED/* this is redundant with an Assert in HeapTupleSetOid */Assert(tup->t_data->t_infomask & HEAP_HASOID); #endif/** If the object id of this tuple has already been assigned, trust the* caller. There are a couple of ways this can happen. At initial db* creation, the backend program sets oids for tuples. When we define* an index, we set the oid. Finally, in the future, we may allow* users to set their own object ids in order to support a persistent* object store (objects need to contain pointers to one another).*/if (!OidIsValid(HeapTupleGetOid(tup)))HeapTupleSetOid(tup, GetNewOid(relation));}else{/* check there is not space for an OID */Assert(!(tup->t_data->t_infomask & HEAP_HASOID));}tup->t_data->t_infomask &= ~(HEAP_XACT_MASK);tup->t_data->t_infomask2 &= ~(HEAP2_XACT_MASK);tup->t_data->t_infomask |= HEAP_XMAX_INVALID;HeapTupleHeaderSetXmin(tup->t_data, xid); HeapTupleHeaderSetCmin(tup->t_data, cid);HeapTupleHeaderSetXmax(tup->t_data, 0); /* for cleanliness */tup->t_tableOid = RelationGetRelid(relation);/** If the new tuple is too big for storage or contains already toasted* out-of-line attributes from some other relation, invoke the toaster.** Note: below this point, heaptup is the data we actually intend to store* into the relation; tup is the caller's original untoasted data.*/if (relation->rd_rel->relkind != RELKIND_RELATION){/* toast table entries should never be recursively toasted */Assert(!HeapTupleHasExternal(tup));heaptup = tup;}else if (HeapTupleHasExternal(tup) || tup->t_len > TOAST_TUPLE_THRESHOLD)heaptup = toast_insert_or_update(relation, tup, NULL, options);elseheaptup = tup;/** We're about to do the actual insert -- but check for conflict first,* to avoid possibly having to roll back work we've just done.** For a heap insert, we only need to check for table-level SSI locks.* Our new tuple can't possibly conflict with existing tuple locks, and* heap page locks are only consolidated versions of tuple locks; they do* not lock "gaps" as index page locks do. So we don't need to identify* a buffer before making the call.*/CheckForSerializableConflictIn(relation, NULL, InvalidBuffer);/* Find buffer to insert this tuple into */buffer = RelationGetBufferForTuple(relation, heaptup->t_len,InvalidBuffer, options, bistate);/* NO EREPORT(ERROR) from here till changes are logged */START_CRIT_SECTION();RelationPutHeapTuple(relation, buffer, heaptup);if (PageIsAllVisible(BufferGetPage(buffer))){all_visible_cleared = true;PageClearAllVisible(BufferGetPage(buffer));}/** XXX Should we set PageSetPrunable on this page ?** The inserting transaction may eventually abort thus making this tuple* DEAD and hence available for pruning. Though we don't want to optimize* for aborts, if no other tuple in this page is UPDATEd/DELETEd, the* aborted tuple will never be pruned until next vacuum is triggered.** If you do add PageSetPrunable here, add it in heap_xlog_insert too.*/MarkBufferDirty(buffer);/* XLOG stuff */if (!(options & HEAP_INSERT_SKIP_WAL) && RelationNeedsWAL(relation)){xl_heap_insert xlrec;xl_heap_header xlhdr;XLogRecPtr recptr;XLogRecData rdata[3];Page page = BufferGetPage(buffer);uint8 info = XLOG_HEAP_INSERT;xlrec.all_visible_cleared = all_visible_cleared;xlrec.target.node = relation->rd_node;xlrec.target.tid = heaptup->t_self;rdata[0].data = (char *) &xlrec;rdata[0].len = SizeOfHeapInsert;rdata[0].buffer = InvalidBuffer;rdata[0].next = &(rdata[1]);xlhdr.t_infomask2 = heaptup->t_data->t_infomask2;xlhdr.t_infomask = heaptup->t_data->t_infomask;xlhdr.t_hoff = heaptup->t_data->t_hoff;/** note we mark rdata[1] as belonging to buffer; if XLogInsert decides* to write the whole page to the xlog, we don't need to store* xl_heap_header in the xlog.*/rdata[1].data = (char *) &xlhdr;rdata[1].len = SizeOfHeapHeader;rdata[1].buffer = buffer;rdata[1].buffer_std = true;rdata[1].next = &(rdata[2]);/* PG73FORMAT: write bitmap [+ padding] [+ oid] + data */rdata[2].data = (char *) heaptup->t_data + offsetof(HeapTupleHeaderData, t_bits);rdata[2].len = heaptup->t_len - offsetof(HeapTupleHeaderData, t_bits);rdata[2].buffer = buffer;rdata[2].buffer_std = true;rdata[2].next = NULL;/** If this is the single and first tuple on page, we can reinit the* page instead of restoring the whole thing. Set flag, and hide* buffer references from XLogInsert.*/if (ItemPointerGetOffsetNumber(&(heaptup->t_self)) == FirstOffsetNumber &&PageGetMaxOffsetNumber(page) == FirstOffsetNumber){info |= XLOG_HEAP_INIT_PAGE;rdata[1].buffer = rdata[2].buffer = InvalidBuffer;}recptr = XLogInsert(RM_HEAP_ID, info, rdata);PageSetLSN(page, recptr);PageSetTLI(page, ThisTimeLineID);}END_CRIT_SECTION();UnlockReleaseBuffer(buffer);/* Clear the bit in the visibility map if necessary */if (all_visible_cleared)visibilitymap_clear(relation,ItemPointerGetBlockNumber(&(heaptup->t_self)));/** If tuple is cachable, mark it for invalidation from the caches in case* we abort. Note it is OK to do this after releasing the buffer, because* the heaptup data structure is all in local memory, not in the shared* buffer.*/CacheInvalidateHeapTuple(relation, heaptup);pgstat_count_heap_insert(relation);/** If heaptup is a private copy, release it. Don't forget to copy t_self* back to the caller's image, too.*/if (heaptup != tup){tup->t_self = heaptup->t_self;heap_freetuple(heaptup);} return HeapTupleGetOid(tup); }

我如果執行一個普通的sql文,則可以加入這樣的調試代碼,來看看我是否確實向我想要的表中插入數據:

/**Form_pg_class tmprel = relation->rd_rel;NameData tmprelname = tmprel->relname;fprintf(stderr,"Insert into: %s\n", tmprelname.data);fprintf(stderr,"In heap_insert,going to insert into table:%d \n\n",relation->rd_node.relNode );*/

當我執行 create tablespace的時候,我想它是要寫入數據字典的。

但是上述代碼反應出來的relNode是不正確的,而 relname也是空的值。

然后我從更高測調用層面來觀察:

當我執行 create tablespace的時候,調用關系如下:

PostgresMain-->exec_simple_query-->PortalRun-->PortalRunMulti-->PortalRunUtility-->Createtablespace

-->simple_heap_insert-->heap_insert

再看 Createtablespace函數:

/** Create a table space** Only superusers can create a tablespace. This seems a reasonable restriction* since we're determining the system layout and, anyway, we probably have* root if we're doing this kind of activity*/ void CreateTableSpace(CreateTableSpaceStmt *stmt) { #ifdef HAVE_SYMLINKRelation rel;Datum values[Natts_pg_tablespace];bool nulls[Natts_pg_tablespace];HeapTuple tuple;Oid tablespaceoid;char *location;Oid ownerId;/* Must be super user */if (!superuser())ereport(ERROR,(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),errmsg("permission denied to create tablespace \"%s\"",stmt->tablespacename),errhint("Must be superuser to create a tablespace.")));/* However, the eventual owner of the tablespace need not be */if (stmt->owner)ownerId = get_role_oid(stmt->owner, false);elseownerId = GetUserId();/* Unix-ify the offered path, and strip any trailing slashes */location = pstrdup(stmt->location);canonicalize_path(location);/* disallow quotes, else CREATE DATABASE would be at risk */if (strchr(location, '\''))ereport(ERROR,(errcode(ERRCODE_INVALID_NAME),errmsg("tablespace location cannot contain single quotes")));/** Allowing relative paths seems risky** this also helps us ensure that location is not empty or whitespace*/if (!is_absolute_path(location))ereport(ERROR,(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),errmsg("tablespace location must be an absolute path")));/** Check that location isn't too long. Remember that we're going to append* 'PG_XXX/<dboid>/<relid>.<nnn>'. FYI, we never actually reference the* whole path, but mkdir() uses the first two parts.*/if (strlen(location) + 1 + strlen(TABLESPACE_VERSION_DIRECTORY) + 1 +OIDCHARS + 1 + OIDCHARS + 1 + OIDCHARS > MAXPGPATH)ereport(ERROR,(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),errmsg("tablespace location \"%s\" is too long",location)));/** Disallow creation of tablespaces named "pg_xxx"; we reserve this* namespace for system purposes.*/if (!allowSystemTableMods && IsReservedName(stmt->tablespacename))ereport(ERROR,(errcode(ERRCODE_RESERVED_NAME),errmsg("unacceptable tablespace name \"%s\"",stmt->tablespacename),errdetail("The prefix \"pg_\" is reserved for system tablespaces.")));/** Check that there is no other tablespace by this name. (The unique* index would catch this anyway, but might as well give a friendlier* message.)*/if (OidIsValid(get_tablespace_oid(stmt->tablespacename, true)))ereport(ERROR,(errcode(ERRCODE_DUPLICATE_OBJECT),errmsg("tablespace \"%s\" already exists",stmt->tablespacename)));/** Insert tuple into pg_tablespace. The purpose of doing this first is to* lock the proposed tablename against other would-be creators. The* insertion will roll back if we find problems below.*/rel = heap_open(TableSpaceRelationId, RowExclusiveLock);MemSet(nulls, false, sizeof(nulls));values[Anum_pg_tablespace_spcname - 1] =DirectFunctionCall1(namein, CStringGetDatum(stmt->tablespacename));values[Anum_pg_tablespace_spcowner - 1] =ObjectIdGetDatum(ownerId);values[Anum_pg_tablespace_spclocation - 1] =CStringGetTextDatum(location);nulls[Anum_pg_tablespace_spcacl - 1] = true;nulls[Anum_pg_tablespace_spcoptions - 1] = true;tuple = heap_form_tuple(rel->rd_att, values, nulls);tablespaceoid = simple_heap_insert(rel, tuple);CatalogUpdateIndexes(rel, tuple);heap_freetuple(tuple);/* Record dependency on owner */recordDependencyOnOwner(TableSpaceRelationId, tablespaceoid, ownerId);/* Post creation hook for new tablespace */InvokeObjectAccessHook(OAT_POST_CREATE,TableSpaceRelationId, tablespaceoid, 0);create_tablespace_directories(location, tablespaceoid);/* Record the filesystem change in XLOG */{xl_tblspc_create_rec xlrec;XLogRecData rdata[2];xlrec.ts_id = tablespaceoid;rdata[0].data = (char *) &xlrec;rdata[0].len = offsetof(xl_tblspc_create_rec, ts_path);rdata[0].buffer = InvalidBuffer;rdata[0].next = &(rdata[1]);rdata[1].data = (char *) location;rdata[1].len = strlen(location) + 1;rdata[1].buffer = InvalidBuffer;rdata[1].next = NULL;(void) XLogInsert(RM_TBLSPC_ID, XLOG_TBLSPC_CREATE, rdata);}/** Force synchronous commit, to minimize the window between creating the* symlink on-disk and marking the transaction committed. It's not great* that there is any window at all, but definitely we don't want to make* it larger than necessary.*/ForceSyncCommit();pfree(location);/* We keep the lock on pg_tablespace until commit */heap_close(rel, NoLock); #else /* !HAVE_SYMLINK */ereport(ERROR,(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),errmsg("tablespaces are not supported on this platform"))); #endif /* HAVE_SYMLINK */ } /** simple_heap_insert - insert a tuple** Currently, this routine differs from heap_insert only in supplying* a default command ID and not allowing access to the speedup options.** This should be used rather than using heap_insert directly in most places* where we are modifying system catalogs.*/ Oid simple_heap_insert(Relation relation, HeapTuple tup) {return heap_insert(relation, tup, GetCurrentCommandId(true), 0, NULL); }

我把它簡練化,看看它都干了什么:

/** Create a table space** Only superusers can create a tablespace. This seems a reasonable restriction* since we're determining the system layout and, anyway, we probably have* root if we're doing this kind of activity*/ void CreateTableSpace(CreateTableSpaceStmt *stmt) { ....../** Insert tuple into pg_tablespace. The purpose of doing this first is to* lock the proposed tablename against other would-be creators. The* insertion will roll back if we find problems below.*/rel = heap_open(TableSpaceRelationId, RowExclusiveLock); ......tablespaceoid = simple_heap_insert(rel, tuple); ...... }

而?heap_open(TableSpaceRelationId, RowExclusiveLock) 這一句,
里面的 TableSpaceRelationId其實是宏:

/* ----------------* pg_tablespace definition. cpp turns this into* typedef struct FormData_pg_tablespace* ----------------*/ #define TableSpaceRelationId 1213

而如果想要看到值,可以運行下面的語句,恰好 1213 對應的就是 pg_tablespace 表。

[pgsql@localhost bin]$ ./psql psql (9.1.2) Type "help" for help.pgsql=# select 1213::regclass;regclass ---------------pg_tablespace (1 row)pgsql=#

但是,實際上,pg_tablespace是數據字典,而數據庫的目錄中,并不存在一個單獨的1213文件與之對應。

如果我用上述的:

/**Form_pg_class tmprel = relation->rd_rel;NameData tmprelname = tmprel->relname;fprintf(stderr,"Insert into: %s\n", tmprelname.data);fprintf(stderr,"In heap_insert,going to insert into table:%d \n\n",relation->rd_node.relNode );*/

來看,就會知道 relNode是 12587。

我可以在 global目錄下,找到這個 12587文件。

1213 對應著 12587文件。這是一個比較怪異的事情。

轉載于:https://www.cnblogs.com/gaojian/p/3167337.html

總結

以上是生活随笔為你收集整理的create tablespace 与 heap_insert 函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

色丁香色婷婷 | 午夜电影中文字幕 | 久久成人综合 | 免费看国产视频 | 日韩av一区在线观看 | 日韩成人免费在线观看 | av在线进入| 婷婷六月天综合 | 久草在线视频首页 | 日本在线h | 国产精品第52页 | 成人av中文字幕 | 91麻豆精品国产91久久久无限制版 | 日韩国产欧美在线播放 | 射久久 | 欧美精品久久久久久 | 伊人天堂av | 免费在线黄色av | 亚洲 精品在线视频 | 成 人 黄 色 免费播放 | 久久久久久久久久电影 | 久久伊人精品一区二区三区 | 国产精品久久久久久久久搜平片 | 久久综合桃花 | 成人免费一区二区三区在线观看 | 国产小视频国产精品 | 国产午夜在线观看 | 91视频国产高清 | 成人免费观看网站 | 91在线看免费| 高清不卡毛片 | 麻豆影视在线播放 | 欧美日韩精品在线免费观看 | 国产精品国产亚洲精品看不卡 | 91夫妻视频| 免费av成人在线 | 激情五月婷婷综合网 | 亚洲视频一 | 成人资源网 | 右手影院亚洲欧美 | 中文在线免费观看 | 精品亚洲va在线va天堂资源站 | 国产群p| 91视频午夜 | 国产精品igao视频网网址 | 成人免费网视频 | 午夜.dj高清免费观看视频 | 欧美精品三级在线观看 | 国产精品毛片久久久久久久久久99999999 | 国产精品6999成人免费视频 | 精品国产123 | 亚洲1区 在线 | 激情丁香婷婷 | 国产日产精品一区二区三区四区 | 久久九九免费视频 | 国产91在线 | 美洲 | 免费看黄在线网站 | 免费日韩电影 | 91av视频在线免费观看 | 午夜国产一区二区三区四区 | 视频在线观看亚洲 | 亚洲色图 校园春色 | 69精品久久| 欧美国产精品久久久久久免费 | 免费看国产曰批40分钟 | 麻花传媒mv免费观看 | 久久小视频 | 欧美一区在线看 | 久久精品视频国产 | 久久伦理 | 91手机电视 | 日韩视频免费 | 亚洲视频,欧洲视频 | 97热在线观看 | 麻豆传媒电影在线观看 | 亚洲成人精品av | 97免费在线观看 | 免费中文字幕在线观看 | 成年人黄色免费看 | 久久久久久久久久久免费视频 | 日韩美在线观看 | 天天色天天操综合 | 色操插| 亚洲综合涩 | 欧美一进一出抽搐大尺度视频 | 久久久污 | 午夜精品一区二区三区视频免费看 | 国产一区二区观看 | 久久爽久久爽久久av东京爽 | 成人国产精品电影 | 久久成人午夜视频 | 这里只有精品视频在线 | 久久这里只有精品9 | 精品视频中文字幕 | 天堂av影院 | 97视频在线免费观看 | 国产精品午夜久久久久久99热 | 伊人国产在线播放 | 亚洲一区精品人人爽人人躁 | 中文字幕av一区二区三区四区 | 99在线免费观看视频 | 久久久久久久久毛片 | 日韩成人免费在线观看 | 久久久www成人免费精品张筱雨 | 在线黄频 | 又色又爽的网站 | 91传媒在线播放 | 久久婷五月 | 日韩三级在线 | 欧美国产一区二区 | 成 人 黄 色 视频播放1 | 不卡视频在线 | 欧美日韩视频一区二区 | 国产精品成人在线观看 | 麻豆视频在线观看免费 | 国产小视频免费在线观看 | 亚洲国产精品500在线观看 | 91在线播放综合 | 97香蕉久久超级碰碰高清版 | 精品视频在线视频 | 亚洲精品91天天久久人人 | 91禁在线看 | 亚洲少妇影院 | 99久久一区 | 国产高清免费观看 | 亚洲天天在线日亚洲洲精 | 久久国产精品视频免费看 | 国产精品视频永久免费播放 | av天天干 | 日日草av | 婷婷色视频 | 天天曰 | 欧美日韩一区二区三区在线观看视频 | 免费看片黄色 | 91精品国产入口 | 女人18毛片90分钟 | 日韩精品欧美专区 | av中文在线| 91精品国产三级a在线观看 | 国产精品男女 | 欧美日韩国产一区二区在线观看 | 日韩美在线观看 | 亚洲国产精品电影在线观看 | 在线导航福利 | 97电影院在线观看 | 天天天天射 | 亚洲一级片 | 激情综合亚洲精品 | 天天草天天草 | 超碰在线1 | 国产免费大片 | 国产精品99久久久久久宅男 | 婷婷精品在线 | 国产精品久久久久久久久久新婚 | 天堂av在线免费观看 | 国产视频资源在线观看 | 亚洲婷婷综合色高清在线 | 五月天视频网站 | 人人插人人射 | 国产第一福利网 | 99视频免费看 | av不卡免费看 | 69av在线播放 | 深夜免费网站 | 制服丝袜成人在线 | 97天天干| 91亚洲国产成人 | 蜜臀久久99精品久久久无需会员 | 国产色综合| 国产精久久| 97碰碰碰 | 欧美日韩天堂 | 国产一区黄色 | 国产成人精品一区二区三区在线观看 | 亚洲干| 精品国产乱码久久久久久三级人 | 亚洲精品国产第一综合99久久 | 欧美一区二区三区四区夜夜大片 | 一区二区电影在线观看 | 97视频免费观看 | 国产99免费视频 | 色欲综合视频天天天 | 亚洲精品在线播放视频 | 国产成人一区二区三区免费看 | 亚洲精品久久久蜜臀下载官网 | 国产欧美最新羞羞视频在线观看 | 成人久久久电影 | 丁香av在线 | 黄色成人av | 国产视频每日更新 | 久久免费国产电影 | 国产精品美女999 | 黄色三几片 | 丁香婷婷综合五月 | 日韩欧美视频免费看 | 国产伦理精品一区二区 | 91av福利视频 | 亚洲精品色婷婷 | 成人在线免费看 | 黄色av网站在线观看免费 | 久久免费国产精品 | 五月婷婷在线视频观看 | 免费看搞黄视频网站 | 干干操操 | av在线之家电影网站 | 日本不卡视频 | 麻豆视频在线观看免费 | 麻豆91视频 | 天天插视频 | 国产精品一区二区免费 | 久久久黄视频 | 九九99视频| 久久伊人五月天 | 久久久男人的天堂 | 蜜桃麻豆www久久囤产精品 | 91在线看黄 | 国产资源站 | 午夜av一区二区三区 | 91精品爽啪蜜夜国产在线播放 | 精品三级av | 91精品国| 91精品久久香蕉国产线看观看 | 日韩激情片在线观看 | 国色天香在线 | av网站大全免费 | 国产99久久精品一区二区300 | 欧美 激情 国产 91 在线 | 亚洲成av片人久久久 | 人人澡超碰碰97碰碰碰软件 | 日韩激情综合 | 日日夜夜精品视频天天综合网 | 国产精品久久久久久久久免费 | 免费成人在线电影 | av网站地址| 黄色av电影在线观看 | 奇米网网址 | 中文字幕一区二区在线播放 | 一本一道波多野毛片中文在线 | 亚洲成年人在线播放 | 天天艹天天 | 8090yy亚洲精品久久 | 91精品久久香蕉国产线看观看 | 久草资源免费 | 天天天天射| 18av在线视频 | 麻豆免费在线视频 | 日韩在线在线 | 国产粉嫩在线观看 | 国产破处在线播放 | 99超碰在线播放 | 黄色av一区二区 | 成人欧美一区二区三区黑人麻豆 | 日韩中字在线 | 亚洲一级特黄 | 久久久久久黄色 | 97视频久久久| 婷婷色综 | 日韩综合视频在线观看 | 18女毛片 | 射射色 | 福利一区二区三区四区 | 午夜美女wwww | 99久久婷婷国产一区二区三区 | 日韩欧美一区二区在线 | 91爱爱网址| 久久综合久久综合这里只有精品 | 蜜臀av夜夜澡人人爽人人 | 丁香av在线 | 精品毛片一区二区免费看 | 狠狠的干| 大荫蒂欧美视频另类xxxx | 在线免费观看黄 | 精品人人人人 | 婷婷中文字幕在线观看 | 日韩午夜在线观看 | 91精品免费在线观看 | 丁香激情综合 | 久久一级电影 | 天天草天天 | 奇米777777 | .精品久久久麻豆国产精品 亚洲va欧美 | 午夜久久久影院 | 五月婷婷丁香激情 | 日韩网 | 精品久久久久久综合日本 | 91网免费观看 | 久久伊99综合婷婷久久伊 | 中文字幕在线观看免费高清电影 | www.激情五月.com| 亚洲综合视频在线播放 | 亚洲欧美日韩精品一区二区 | 在线中文字幕播放 | 99精品色 | 九九热在线精品视频 | 日韩www在线 | 美女视频免费一区二区 | 97超碰人人模人人人爽人人爱 | 91中文字幕视频 | 欧美精品久久久久久久久久 | 亚洲无人区小视频 | 久久首页 | 亚洲午夜电影网 | 麻豆传媒视频观看 | 久久久精品成人 | 国产精品久久久久久久久久三级 | 视色网站 | 欧美激情第八页 | 久久成人精品电影 | 丰满少妇麻豆av | 国产五月婷 | 国产成人黄色片 | 国产美女精品视频 | 嫩草av影院 | 国产成人精品综合久久久久99 | 特级毛片在线观看 | 亚洲理论电影网 | 国产美女免费观看 | 国产美女精品视频免费观看 | 亚洲国产影院av久久久久 | 国产中文字幕视频在线观看 | av成人在线观看 | 中文字幕精品久久 | 国产玖玖在线 | 日韩精品久久中文字幕 | 欧美午夜剧场 | 三级黄色欧美 | 日韩国产欧美在线视频 | 国产精品久久久久婷婷 | 中文字幕在线观看完整版电影 | 亚洲免费永久精品国产 | 亚洲女人av | 奇米影视8888在线观看大全免费 | 又黄又爽又色无遮挡免费 | 国产一区二区不卡在线 | 国产又黄又硬又爽 | 国产在线一区二区三区播放 | 中文字幕在线观看第二页 | 天天干,天天插 | 免费在线黄 | 99激情网 | 三级午夜片 | 国产91学生粉嫩喷水 | 日本精品久久久久中文字幕5 | 91在线播放视频 | 免费看一级特黄a大片 | 91麻豆精品国产自产在线游戏 | 91精品啪| 超碰97公开 | 九九涩涩av台湾日本热热 | 日韩有色 | 日韩黄色av网站 | 国产美女搞久久 | 国产999精品久久久 免费a网站 | 射射色| 亚洲a网 | 久久看视频 | 免费视频一区 | 成人9ⅰ免费影视网站 | 亚洲区另类春色综合小说校园片 | 99r在线精品 | 亚洲美女精品 | 日韩高清三区 | 欧美精品xxx| 久草在线网址 | 国产免费高清视频 | 六月久久婷婷 | 欧美激情精品久久久久久免费印度 | 久久久久久久毛片 | 九月婷婷色 | 欧美一区二区三区免费看 | 精品国产一区二区三区免费 | av高清影院| 手机成人在线电影 | 久久欧美综合 | 中文字幕在线电影 | 国产精品久久久久一区二区 | 人人爱爱人人 | 国产97免费 | 69夜色精品国产69乱 | 欧美日韩精品综合 | 国产99久久精品 | 日本黄色免费在线观看 | 夜夜澡人模人人添人人看 | 久久伊人五月天 | www.日本色 | 亚洲狠狠干 | 久久高清毛片 | 午夜久久影视 | 99久久婷婷 | 国产三级国产精品国产专区50 | 狠狠操狠狠干2017 | 亚洲天堂网视频在线观看 | 精品美女久久久久 | 日本黄色一级电影 | 午夜久久久久久久久久久 | 五月天伊人 | 精品免费国产一区二区三区四区 | 成人av一区二区兰花在线播放 | 麻豆视频免费看 | 手机av资源| 国模一区二区三区四区 | av片免费播放 | 国产97碰免费视频 | 日韩视频免费看 | 在线观看午夜 | 久久久久久久久久久影院 | www.97视频| 九七视频在线观看 | 日批网站免费观看 | 久久综合九色99 | 97人人添人澡人人爽超碰动图 | 黄色av成人在线 | 亚洲黄色小说网 | 色在线视频网 | 黄色高清视频在线观看 | 丁香在线视频 | 国内精品久久久久久久久久久久 | 人人艹人人 | 日韩网站一区二区 | 亚洲综合色视频在线观看 | 高清av网 | 免费精品视频在线 | 九九交易行官网 | 国产精品孕妇 | 欧美久草视频 | 99久免费精品视频在线观看 | 久草在线综合网 | 天天干天天拍 | 欧美色图88 | 久久精品老司机 | 久久婷婷视频 | 97超碰在 | 日韩在线观看av | 伊人国产女 | 久久免费播放 | 色视频在线免费观看 | 人人爽人人爽人人 | 国产精品99久久免费黑人 | 在线国产日本 | 岛国大片免费视频 | 国产精品理论片在线观看 | 久久er99热精品一区二区三区 | 婷婷激情小说网 | 久久精品1区 | 黄色毛片视频免费观看中文 | 一区二区三区在线视频观看58 | 在线观看日韩精品视频 | 中文字幕av网站 | 玖玖在线视频观看 | 97免费在线观看视频 | 美女视频久久久 | 亚洲综合视频在线观看 | 成人av一区二区兰花在线播放 | 午夜久久久久久久久 | 97成人精品 | 亚洲欧洲av | 国产码电影 | 久日视频 | 特级西西444www高清大视频 | 狠狠操狠狠干天天操 | 日本精品一区二区在线观看 | 黄色动态图xx | 久久激五月天综合精品 | 91麻豆精品国产91久久久使用方法 | 国产精品久久久久久一区二区 | www.玖玖玖| 在线观看亚洲国产 | 午夜12点| 欧美大片在线观看一区 | 操操操综合 | 久久综合成人网 | 欧美aⅴ在线观看 | 日韩欧美在线视频一区二区三区 | av一区二区三区在线播放 | 亚洲国产精品一区二区久久,亚洲午夜 | 在线观看亚洲电影 | 日韩经典一区二区三区 | 欧美在线视频一区二区三区 | 成年人看片网站 | 免费观看十分钟 | 欧美xxxxx在线视频 | 少妇搡bbbb搡bbb搡aa | 欧美日韩在线观看一区二区三区 | 亚洲国产日韩在线 | 日韩av成人免费看 | 国产精品1000 | 一区二区三区韩国免费中文网站 | 国产在线一区二区三区播放 | 粉嫩av一区二区三区四区五区 | 超碰在线日韩 | 激情综合色综合久久 | 美女精品在线 | 六月丁香激情综合 | 最近中文字幕国语免费高清6 | 国产又粗又硬又爽的视频 | 日韩精品视频在线观看免费 | 国产精品尤物视频 | 国内精品在线看 | 色网站国产精品 | 一区二区三区在线免费观看 | 成人福利av| 欧美激情第八页 | 在线观看国产 | 国产高清免费av | 日韩免费电影在线观看 | 天天综合在线观看 | 国产精品刺激对白麻豆99 | 麻豆传媒视频观看 | 亚洲无人区小视频 | 国内精品久久久 | 欧美精品一区二区在线播放 | 午夜电影 电影 | 伊人久久在线观看 | 免费看黄色毛片 | 国产成人在线免费观看 | 欧美色888 | 麻豆精品传媒视频 | 九九九在线观看视频 | 91在线一区 | 手机看片久久 | 欧美日韩在线第一页 | 精品亚洲欧美一区 | av久久久 | 狂野欧美激情性xxxx欧美 | 国产精品毛片一区二区在线 | 91av短视频 | 国产精品久久久久久一区二区 | 午夜久久网站 | 中国一级特黄毛片大片久久 | 精品在线亚洲视频 | 日本精品视频免费观看 | 日韩精品一区二区在线视频 | 亚洲高清在线观看视频 | 亚洲激情视频 | 91视频在线播放视频 | 中文在线最新版天堂 | 成人av一级片 | 99视频精品| 狠狠色伊人亚洲综合网站色 | 激情伊人五月天久久综合 | 亚洲综合婷婷 | 亚一亚二国产专区 | 色91av | 天天爽天天做 | 日韩成人一级大片 | 久精品视频在线 | 在线a视频免费观看 | 丰满少妇高潮在线观看 | 国产一区二区三区免费在线观看 | 最新国产精品久久精品 | 国产精品精品国产婷婷这里av | 免费中文字幕 | 亚洲精品美女视频 | 亚洲免费av在线播放 | 五月开心激情网 | 91成人免费看片 | 免费观看午夜视频 | 久久久久成人精品 | 天天艹天天 | 中文字幕在线色 | 成年人在线免费看视频 | 国产资源精品 | 亚洲理论在线 | 成年人免费在线观看网站 | 久久精品亚洲精品国产欧美 | 日本性动态图 | 欧美日韩观看 | 国产91精品一区二区绿帽 | 国产精品电影一区二区 | 免费在线观看成人av | 久草视频中文 | 在线观看免费成人av | 黄色一级片视频 | 91麻豆精品国产自产在线 | 国产99久久精品 | 久久免费在线 | 日韩激情综合 | 亚洲日本欧美 | 99精品在线视频观看 | 综合网久久 | 手机看国产毛片 | 欧美日韩国产一区二 | 99久国产| 青青河边草观看完整版高清 | 久久国产一区二区 | 日本在线中文在线 | 日日插日日干 | av免费电影在线 | 国产伦理久久精品久久久久_ | 六月天综合网 | 欧美亚洲成人免费 | 18国产精品福利片久久婷 | 超碰在线94 | 国产视频在线免费观看 | 成人精品一区二区三区中文字幕 | 99热 精品在线 | 一本一本久久a久久精品综合 | av电影在线播放 | 久草影视在线 | 日韩中文在线视频 | 久久国产精品免费观看 | 亚洲精品国产精品国自 | 99精品免费 | 国产高清视频在线免费观看 | 99久久精品久久久久久动态片 | 久久国产午夜精品理论片最新版本 | 国产精品久久久久久久久久久久午 | 久久五月精品 | 91精品国产综合久久福利不卡 | 91精品国产91久久久久福利 | 久久久久免费精品国产 | 最新黄色av网址 | 九草视频在线 | 综合色狠狠 | 日韩一二三 | 永久免费毛片在线观看 | 久久中文字幕视频 | 欧美性生活免费看 | 99久免费精品视频在线观看 | 成人国产精品免费 | 中文字幕一区二区三区在线播放 | 天天插天天干天天操 | 国产精品久久久久永久免费 | 在线视频日韩精品 | 天天干夜夜夜操天 | 中文字幕在线视频精品 | 久久久久免费精品国产 | 日本久久影视 | 午夜av一区二区三区 | 久久成年人 | 免费a一级 | 国产主播大尺度精品福利免费 | 九九热免费在线观看 | 国产精品18久久久久久久久久久久 | 欧美日韩中文字幕视频 | 午夜久久福利影院 | 日韩精品一区二区三区中文字幕 | 91在线视频免费观看 | 中文网丁香综合网 | 伊人黄色网 | 中文字幕在线看片 | 九色porny真实丨国产18 | 日韩精品中文字幕在线观看 | 四虎成人免费观看 | 成人免费在线播放视频 | 久久黄色成人 | 美女福利视频网 | 91人人干 | av超碰在线 | 成人av电影在线播放 | 四虎影视成人永久免费观看视频 | 国产福利在线免费观看 | 国产日韩在线播放 | 久久不卡av | 精品国产一区二区三区四区在线观看 | 超碰在线98 | 特片网久久 | 国产精品视频专区 | 天天综合网久久综合网 | 在线 欧美 日韩 | 99国产情侣在线播放 | 中文字幕乱码在线播放 | 超碰97人人爱 | 久久黄色成人 | 久久久久99999 | 91av在线免费视频 | 日日干日日色 | 国产亚洲精品久久久久久电影 | 一二三区高清 | 六月天色婷婷 | 成人av片免费观看app下载 | 亚洲蜜桃在线 | 国产二区精品 | 91免费看黄色| 一区二区精品久久 | 国产美女无遮挡永久免费 | 精品超碰 | 午夜av影院 | 91桃色免费视频 | 精品国产乱码久久久久久三级人 | 久草视频一区 | а中文在线天堂 | av免费网站观看 | 亚洲九九九在线观看 | 69视频在线 | 国产一区免费在线 | 亚洲在线视频免费 | 五月婷婷在线视频观看 | 色久综合 | 一区二区精品视频 | 麻豆91精品 | 国产精品久久在线 | 亚洲成av人片在线观看无 | 国产一级片免费观看 | 成人午夜精品福利免费 | 欧美久久综合 | 亚洲黄网址 | 免费在线观看91 | 国产精品美女久久久久久久久久久 | 西西4444www大胆视频 | 欧洲亚洲精品 | 亚洲成人av在线播放 | 久久精品欧美日韩精品 | 久久免费在线观看视频 | 久久久久成人精品 | 999久久国产| 日本精品视频网站 | 青青草久草在线 | 五月天网页 | 久久久久久久久毛片 | 亚洲高清免费在线 | 亚洲狠狠丁香婷婷综合久久久 | 欧美尹人 | 国产精品久久久久久久免费大片 | 国产一级二级三级在线观看 | 久久99九九99精品 | 欧美日韩精品影院 | 麻豆精品国产传媒 | 亚洲国产美女精品久久久久∴ | 成人黄色小说视频 | 国产成人av网址 | 欧美专区国产专区 | 国产精品女教师 | 色综合激情网 | 综合天天色 | 亚洲精选在线观看 | 最近最新mv字幕免费观看 | 激情婷婷av | 婷婷国产精品 | 国产精品久久久久久久免费 | 天天操一操| 黄色av成人在线观看 | 在线免费观看黄 | a色网站| www.天天成人国产电影 | 欧美日韩一级久久久久久免费看 | 精品国产乱码一区二 | 国产精品久久久久久久免费大片 | 午夜精品久久久久久久久久 | 午夜久操 | 91九色在线视频观看 | 五月综合久久 | 日韩精品黄 | 中文字幕日韩电影 | 国产精品三级视频 | 中文字幕在线观看你懂的 | 国产免费观看久久 | 成人久久18免费网站图片 | 久久精品国产成人 | 四川妇女搡bbbb搡bbbb搡 | 中文字幕视频网站 | 婷五月天激情 | 91精品在线播放 | 日韩精品视频第一页 | 国产成人av电影在线观看 | 草久在线播放 | 久久久精品在线观看 | 亚洲国产福利视频 | 国产伦精品一区二区三区无广告 | 欧美激情视频免费看 | 少妇自拍av | 黄色成年片| 在线观看亚洲精品视频 | 99精品国产福利在线观看免费 | 黄色在线观看免费网站 | 久久九九久久九九 | 激情综合狠狠 | 日韩欧美视频二区 | 亚洲国内精品在线 | 日本中文字幕系列 | 久久伊99综合婷婷久久伊 | 天天天色| 日韩视频专区 | av免费观看在线 | 日韩电影久久 | 国产又黄又爽无遮挡 | 日韩在线观看视频一区二区三区 | 久久综合五月 | 成人福利av | 九九日韩 | 国产精品 国内视频 | a午夜电影| 亚洲精品中文字幕视频 | 日本中文字幕系列 | 99r国产精品 | 国产黄色免费在线观看 | av在线免费在线观看 | 免费在线91 | 亚洲高清在线视频 | 久久免费视频在线 | 久久视频国产精品免费视频在线 | 亚洲欧洲精品在线 | 亚洲黄色免费网站 | 国产色妞影院wwwxxx | 日韩精品在线观看视频 | 国产精品第一 | 91综合久久一区二区 | 国产裸体无遮挡 | 亚洲欧美一区二区三区孕妇写真 | 久久一本综合 | 日韩三级不卡 | 五月开心网| 国产一区二区日本 | 又黄又爽又色无遮挡免费 | 三日本三级少妇三级99 | 在线观看黄色免费视频 | 伊人天天操| 国产青春久久久国产毛片 | 九九精品视频在线观看 | 欧美亚洲国产精品久久高清浪潮 | 99麻豆视频| 国产一区二区三区高清播放 | 九热精品| 婷婷色5月| 久久av在线播放 | 欧美日韩国产成人 | 97视频免费在线观看 | 九九热精品国产 | 2019天天干天天色 | 性色大片在线观看 | 国产精品福利无圣光在线一区 | 97在线观看| 欧美日产在线观看 | 丝袜+亚洲+另类+欧美+变态 | 欧美色操 | 中文字幕久久精品亚洲乱码 | 亚洲精品美女 | av再线观看| 91九色国产 | 精品欧美日韩 | 国产精品国产三级国产专区53 | 日韩欧美99 | 国产精品丝袜 | 六月激情婷婷 | 免费黄av| www.色com| 色偷偷97 | 亚州国产视频 | 伊人国产女 | 久久永久免费 | 婷婷精品国产欧美精品亚洲人人爽 | 国产一区 在线播放 | 免费在线观看av的网站 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 99午夜| 黄色的视频网站 | 四虎影视精品永久在线观看 | 97超碰在线久草超碰在线观看 | 免费观看一级一片 | 天天操天天操 | 日韩特级黄色片 | 在线观看av小说 | 国产伦精品一区二区三区… | 日韩久久影院 | 色91在线 | 日本久草电影 | 成年人看片网站 | 91人人澡| 欧美日韩一区二区在线 | 91秒拍国产福利一区 | 日本在线观看中文字幕无线观看 | 色欧美日韩 | 国产69精品久久99不卡的观看体验 | 黄色国产在线 | 亚洲午夜av电影 | 国产精品久久久久一区二区三区共 | 日韩欧美高清 | 奇米网444 | 国产美女在线免费观看 | 欧美日韩亚洲精品在线 | 亚洲一区二区三区精品在线观看 | 久久久久久视频 | 五月天激情综合网 | 少妇视频一区 | 日韩在线观看免费 | 日韩精品免费一区二区 | 亚洲免费精彩视频 | av一区在线 | 亚洲精品裸体 | 在线观看免费视频 | 在线国产专区 | 在线有码中文 | 精品国产_亚洲人成在线 | 国产视频网站在线观看 | 日狠狠 | 又黄又爽又刺激的视频 | 在线国产小视频 | 免费激情网 | 国产精品毛片一区二区在线 | 亚洲欧洲精品一区二区精品久久久 | 国产区在线看 | 欧美色噜噜 | 国产精品高潮呻吟久久av无 | 亚洲国产视频在线 | 欧美日韩视频一区二区 | 精品国产aⅴ一区二区三区 在线直播av | 缴情综合网五月天 | 久久 一区 | 香蕉精品在线观看 | 亚洲无吗天堂 | 亚洲成人黄色在线观看 | 亚洲视频在线免费看 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 在线观看精品黄av片免费 | 日韩精品视频在线免费观看 | 亚洲一级片免费观看 | 成人av影视在线 | 精品中文字幕在线播放 | 天天综合天天做天天综合 | 久久99亚洲热视 | 正在播放日韩 | 麻豆国产在线播放 | 亚洲国产精品一区二区尤物区 | 91成人蝌蚪 | 在线亚洲成人 | 丰满少妇在线观看资源站 | 日韩天堂在线观看 | 国产精品国产毛片 | 日本少妇视频 | 丝袜av一区 | 人人澡人人爽欧一区 | 人人干在线 | 欧美日韩精品二区第二页 | 福利一区二区 | 久久国产精品99久久久久久老狼 | 久草国产在线观看 | 久久精品国产免费看久久精品 | 国产午夜视频在线观看 | 国产 日韩 中文字幕 | 色婷婷激情四射 | 婷婷综合电影 | 日韩丝袜在线 | 亚洲 欧美 精品 | 色视频网站免费观看 | 在线免费观看黄色 | 91成人在线视频 | 精品免费久久久久久 | 三级在线播放视频 | 久久久久久久久久久成人 | 国产精品v a免费视频 | 久久人人爽| 成人小视频在线观看免费 | 成人a大片| 欧美日韩高清一区二区 国产亚洲免费看 | 国产999久久久 | 三级av网站 | 国产精品99久久久久久大便 | 国产精品ssss在线亚洲 | 国产在线精品播放 | av性在线| 91女神的呻吟细腰翘臀美女 | 福利视频一区二区 | 五月天亚洲综合小说网 | 久久久精品影视 | 成人av高清在线观看 | 国产精品久久久久永久免费观看 | 中文字幕中文中文字幕 | 在线免费观看黄 | 超碰97中文 | 色婷婷www| 久久蜜臀一区二区三区av | 天堂网在线视频 | 久久99精品热在线观看 | 青青网视频 | 久久免费福利 | 色中色亚洲 | 中文字幕在线观看不卡 | 东方av免费在线观看 | 国内精品久久久久久久久久 | 免费a v在线| 成人av中文字幕在线观看 | 日韩午夜视频在线观看 | 久久天天躁狠狠躁亚洲综合公司 | 久久一区二区三区日韩 | 欧美综合在线观看 | 在线看岛国av | 精品亚洲视频在线观看 | 亚洲免费av电影 | 不卡的av | 精品国偷自产国产一区 | 在线看毛片网站 | 亚洲电影图片小说 | 91最新在线视频 | 午夜精品一区二区三区在线观看 | 精品国产免费一区二区三区五区 | 久久久免费看视频 | 午夜精品久久久久久久99婷婷 | 97超碰国产在线 | 免费看的黄网站 | 麻豆国产精品视频 | 日本精品久久久久久 | 久久久精品影视 | av 在线观看 | 超碰在线公开免费 | 中文字幕在线观看三区 | 亚洲精品字幕在线观看 | 免费视频一区 | 九九在线视频免费观看 |