Testcases_Copy_Processed.txt

text/plain

Filename: Testcases_Copy_Processed.txt
Type: text/plain
Part: 0
Message: Re: ToDo: allow to get a number of processed rows by COPY statement [Review of Patch]
--1) Normal SQL command COPY FROM and TO functionalities.
CREATE TABLE tbl (a int);
INSERT INTO tbl VALUES(generate_series(1,1000));
COPY tbl TO '/home/kiran/tbl.txt';
CREATE TABLE tbl1 (a int);
COPY tbl1 FROM '/home/kiran/tbl.txt';
DELETE FROM tbl1;
DROP TABLE tbl;
DROP TABLE tbl1;


--2) In side SPI [plpgsql function], SQL command COPY FROM and TO functionalities.
CREATE TABLE tbl (a int);
INSERT INTO tbl VALUES(generate_series(1,1000));
CREATE OR REPLACE FUNCTION public.copy_to_tbl() RETURNS integer
LANGUAGE plpgsql
AS $function$
DECLARE r int;
BEGIN
COPY tbl TO '/home/kiran/tbl.txt';
get diagnostics r = row_count;
RETURN r;
end;
$function$;

SELECT copy_to_tbl();
CREATE TABLE tbl1 (a int);
CREATE OR REPLACE FUNCTION public.copy_from_tbl() RETURNS integer
LANGUAGE plpgsql
AS $function$
DECLARE r int;
BEGIN
COPY tbl1 FROM '/home/kiran/tbl.txt';
get diagnostics r = row_count;
RETURN r;
end;
$function$;
SELECT copy_from_tbl();
DELETE FROM tbl1;

DROP FUNCTION public.copy_from_tbl();
DROP FUNCTION public.copy_to_tbl();
DROP TABLE tbl;
DROP TABLE tbl1;