PostgreSQL对象重组工具【pg_reorg】(二)

2015-02-03 11:52:50 · 作者: · 浏览: 63
org.log_16843(pk, row) VALUES(CASE WHEN $1 IS NULL THEN NULL ELSE (ROW($1.id)::reorg.pk_16843) END, $2)') DEBUG: create_table : CREATE TABLE reorg.table_16843 WITH(oids=false) TABLESPACE pg_default AS SELECT id,name FROM ONLY t1 DEBUG: drop_columns : (skipped) DEBUG: delete_log : DELETE FROM reorg.log_16843 DEBUG: lock_table : LOCK TABLE t1 IN ACCESS EXCLUSIVE MODE DEBUG: sql_peek : SELECT * FROM reorg.log_16843 ORDER BYid LIMIT $1 DEBUG: sql_insert : INSERT INTO reorg.table_16843 VALUES($1.*) DEBUG: sql_delete : DELETE FROM reorg.table_16843 WHERE (id)= ($1.id) DEBUG: sql_update : UPDATE reorg.table_16843 SET (id, name)= ($2.id, $2.name) WHERE (id) = ($1.id) DEBUG: sql_pop : DELETE FROM reorg.log_16843 WHERE id= $1 INFO: ---- STEP1. setup ---- INFO: This needs EXCLUSIVE LOCK against thetarget table. LOG: (query) BEGIN ISOLATION LEVEL READCOMMITTED LOG: (query) SET LOCAL statement_timeout =100 LOG: (query) LOCK TABLE t1 IN ACCESSEXCLUSIVE MODE LOG: (query) RESET statement_timeout LOG: (query) SELECTreorg.conflicted_triggers($1) LOG: (param:0)= 16843 LOG: (query) CREATE TYPE reorg.pk_16843 AS(id integer) LOG: (query) CREATE TABLE reorg.log_16843(id bigserial PRIMARY KEY, pk reorg.pk_16843, row t1) LOG: (query) CREATE TRIGGER z_reorg_triggerBEFORE INSERT OR DELETE OR UPDATE ON t1 FOR EACH ROW EXECUTE PROCEDUREreorg.reorg_trigger('INSERT INTO reorg.log_16843(pk, row) VALUES( CASE WHEN $1IS NULL THEN NULL ELSE (ROW($1.id)::reorg.pk_16843) END, $2)') LOG: (query) SELECTreorg.disable_autovacuum('reorg.log_16843') LOG: (query) COMMIT INFO: ---- STEP2. copy tuples into temptable---- LOG: (query) BEGIN ISOLATION LEVELSERIALIZABLE LOG: (query) SELECT set_config('work_mem',current_setting('maintenance_work_mem'), true) LOG: (query) SET LOCAL synchronize_seqscans= off LOG: (query) SELECTreorg.array_accum(virtualtransaction) FROM pg_locks WHERE locktype ='virtualxid' AND pid <>
pg_backend_pid() AND (virtualxid, virtualtransaction)<> ('1/1', '-1/0') LOG: (query) DELETE FROM reorg.log_16843 LOG: (query) CREATE TABLE reorg.table_16843WITH (oids=false) TABLESPACE pg_default AS SELECT id,name FROM ONLY t1 LOG: (query) SELECTreorg.disable_autovacuum('reorg.table_16843') LOG: (query) COMMIT INFO: ---- STEP3. create indexes ---- LOG: (query) SELECT indexrelid,reorg.reorg_indexdef(indexrelid, indrelid), indisvalid,pg_get_indexdef(indexrelid) FROM pg_index WHERE indrelid = $1 LOG: (param:0)= 16843 DEBUG: [0] DEBUG: target_oid : 16849 DEBUG: create_index : CREATE UNIQUE INDEXindex_16849 ON reorg.table_16843 USING btree (id) LOG: (query) CREATE UNIQUE INDEXindex_16849 ON reorg.table_16843 USING btree (id) INFO: ---- STEP4. apply logs ---- LOG: (query) SELECT reorg.reorg_apply($1,$2, $3, $4, $5, $6) LOG: (param:0)= SELECT * FROM reorg.log_16843 ORDER BY id LIMIT $1 LOG: (param:1)= INSERT INTO reorg.table_16843 VALUES ($1.*) LOG: (param:2)= DELETE FROM reorg.table_16843 WHERE (id) = ($1.id) LOG: (param:3)= UPDATE reorg.table_16843 SET (id, name) = ($2.id, $2.name) WHERE (id) =($1.id) LOG: (param:4)= DELETE FROM reorg.log_16843 WHERE id = $1 LOG: (param:5)= 1000 LOG: (query) SELECT pid FROM pg_locks WHERElocktype = 'virtualxid' AND pid <> pg_backend_pid() AND virtualtransaction