-- post_content_meta -- get one post_content_meta CREATE PROCEDURE get( IN post_id INT, IN namespace CHAR, IN key CHAR, OUT fetch_one, ) BEGIN SELECT value FROM post_content_meta AS _ WHERE _."key" = :key @IF !empty(:post_id) THEN AND _.post_id = :post_id END @IF @IF !empty(:namespace) THEN AND _.namespace = :namespace END @IF ; END CREATE PROCEDURE set( IN post_id INT, IN namespace CHAR, IN key CHAR, IN value CHAR, OUT insert_id ) BEGIN INSERT INTO post_content_meta (post_id, namespace, "key", value ) VALUES (:post_id, :namespace, :key, :value ) ON CONFLICT("post_id", "namespace", "key") DO UPDATE SET "value" = :each.value; END CREATE PROCEDURE getMulti( IN post_id INT, IN namespace CHAR, IN key ARRAY, OUT fetch_all ) BEGIN SELECT post_id, namespace, "key", value FROM post_content_meta AS _ WHERE 1 = 1 @IF !empty(:post_id) THEN AND _.post_id = :post_id END @IF @IF !empty(:namespace) THEN AND _.namespace = :namespace END @IF @IF !empty(:key) THEN AND _."key" IN (:key) END @IF ; END CREATE PROCEDURE setMulti( IN post_id INT, IN namespace CHAR, IN meta ARRAY ) BEGIN INSERT INTO post_content_meta (post_id, namespace, "key", value) VALUES (:post_id, :namespace, :each) ON CONFLICT("post_id", "namespace", "key") DO UPDATE SET "value" = :each.value; END CREATE PROCEDURE delete( IN post_id INT, IN namespace CHAR, IN key ARRAY ) BEGIN DELETE FROM post_content_meta WHERE 1 = 1 @IF !empty(:namespace) THEN AND namespace = :namespace END @IF @IF !empty(:key) THEN AND "key" IN (:key) END @IF @IF !empty(:post_id) THEN AND post_id = :post_id END @IF ; END