--- CRIMSON --- A simple PHP framework.
--- Copyright © 2024 Freya Murphy <contact@freyacat.org>
---
--- This file is part of CRIMSON.
---
--- CRIMSON is free software; you can redistribute it and/or modify it
--- under the terms of the GNU General Public License as published by
--- the Free Software Foundation; either version 3 of the License, or (at
--- your option) any later version.
---
--- CRIMSON is distributed in the hope that it will be useful, but
--- WITHOUT ANY WARRANTY; without even the implied warranty of
--- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
--- GNU General Public License for more details.
---
--- You should have received a copy of the GNU General Public License
--- along with CRIMSON. If not, see <http://www.gnu.org/licenses/>.

-- Gets the current databse revision.

CREATE OR REPLACE FUNCTION curr_revision()
RETURNS INTEGER
LANGUAGE plpgsql VOLATILE
AS $BODY$
DECLARE
	_revision INTEGER;
BEGIN
	BEGIN
		SELECT curr_revision INTO _revision
			FROM sys.database_info
			WHERE name = current_database();
		RETURN _revision;
	EXCEPTION WHEN OTHERS THEN
		RETURN 0;
	END;
END
$BODY$;

GRANT EXECUTE ON FUNCTION curr_revision() TO POSTGRES_USER;

SELECT curr_revision();