Compare commits
	
		
			2 Commits
		
	
	
		
			860b34fad8
			...
			0f698d5621
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0f698d5621 | |||
| ba93b6b84e | 
@ -9,22 +9,27 @@ BEGIN
 | 
				
			|||||||
    FOR f IN  
 | 
					    FOR f IN  
 | 
				
			||||||
        SELECT
 | 
					        SELECT
 | 
				
			||||||
            -------------------------------------------create table---------------------------------------------------------------------------------------------------------
 | 
					            -------------------------------------------create table---------------------------------------------------------------------------------------------------------
 | 
				
			||||||
            'DROP TABLE IF EXISTS fc.'||func||'; CREATE TABLE IF NOT EXISTS fc.'||func||' (' || 
 | 
					            'DROP TABLE IF EXISTS fc.'||func||' CASCADE; CREATE TABLE IF NOT EXISTS fc.'||func||' (' || 
 | 
				
			||||||
            string_agg(format('%I',cname) || ' ' || dtype,', ' ORDER BY opos ASC) || 
 | 
					            string_agg(format('%I',cname) || ' ' || dtype,', ' ORDER BY opos ASC) || 
 | 
				
			||||||
            ', PRIMARY KEY ('||string_agg(format('%I',cname),', ') FILTER (WHERE fkey = func)||'));' AS ddl,
 | 
					            ', PRIMARY KEY ('||string_agg(format('%I',cname),', ') FILTER (WHERE fkey = func)||'));' AS ddl,
 | 
				
			||||||
            -------------------------------------------populate table-------------------------------------------------------------------------------------------------------
 | 
					            -------------------------------------------populate table-------------------------------------------------------------------------------------------------------
 | 
				
			||||||
            ---need to add a clause to exclude where the key is null
 | 
					            ---need to add a clause to exclude where the key is null
 | 
				
			||||||
            'INSERT INTO fc.'||func||' SELECT DISTINCT ' || string_agg(format('%I',cname),', ' ORDER BY opos ASC) || ' FROM rlarp.osm_dev WHERE '||
 | 
					            'INSERT INTO fc.'||func||' SELECT DISTINCT ' || string_agg(format('%I',cname),', ' ORDER BY opos ASC) || ' FROM '||tname||' WHERE '||
 | 
				
			||||||
            string_agg(format('%I',cname)||' IS NOT NULL ',' AND ') FILTER (WHERE fkey = func)||' ON CONFLICT DO NOTHING' AS pop
 | 
					            string_agg(format('%I',cname)||' IS NOT NULL ',' AND ') FILTER (WHERE fkey = func)||' ON CONFLICT DO NOTHING' AS pop,
 | 
				
			||||||
 | 
					            -------------------------------------------setup foreign keys---------------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					            'ALTER TABLE fc.live ADD CONSTRAINT fk_'||func||' FOREIGN KEY ('||string_agg(format('%I',cname),', ') FILTER (WHERE fkey = func)||') REFERENCES fc.'||func||' ('||
 | 
				
			||||||
 | 
					            string_agg(format('%I',cname),', ') FILTER (WHERE fkey = func)||')' AS fk
 | 
				
			||||||
        FROM
 | 
					        FROM
 | 
				
			||||||
            fc.target_meta
 | 
					            fc.target_meta
 | 
				
			||||||
        GROUP BY
 | 
					        GROUP BY
 | 
				
			||||||
            func
 | 
					            tname
 | 
				
			||||||
 | 
					            ,func
 | 
				
			||||||
        HAVING
 | 
					        HAVING
 | 
				
			||||||
            string_agg(cname,', ') FILTER (WHERE fkey = func) <> ''
 | 
					            string_agg(cname,', ') FILTER (WHERE fkey = func) <> ''
 | 
				
			||||||
    loop 
 | 
					    loop 
 | 
				
			||||||
        EXECUTE format('%s',f.ddl);
 | 
					        EXECUTE format('%s',f.ddl);
 | 
				
			||||||
        EXECUTE format('%s',f.pop);
 | 
					        EXECUTE format('%s',f.pop);
 | 
				
			||||||
 | 
					        EXECUTE format('%s',f.fk);
 | 
				
			||||||
    END LOOP;
 | 
					    END LOOP;
 | 
				
			||||||
END;
 | 
					END;
 | 
				
			||||||
$$
 | 
					$$
 | 
				
			||||||
 | 
				
			|||||||
@ -13,8 +13,8 @@ SELECT
 | 
				
			|||||||
FROM 
 | 
					FROM 
 | 
				
			||||||
    information_schema.columns 
 | 
					    information_schema.columns 
 | 
				
			||||||
WHERE 
 | 
					WHERE 
 | 
				
			||||||
    table_name = 'osm_dev' 
 | 
					    table_name = 'live' 
 | 
				
			||||||
    AND table_schema = 'rlarp'
 | 
					    AND table_schema = 'fc'
 | 
				
			||||||
ON CONFLICT ON CONSTRAINT target_meta_pk DO UPDATE SET
 | 
					ON CONFLICT ON CONSTRAINT target_meta_pk DO UPDATE SET
 | 
				
			||||||
    opos = EXCLUDED.opos
 | 
					    opos = EXCLUDED.opos
 | 
				
			||||||
    ,dtype = EXCLUDED.dtype;
 | 
					    ,dtype = EXCLUDED.dtype;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user