PostgreSQL对象重组工具【pg_reorg】(二)
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