40 lines
899 B
MySQL
40 lines
899 B
MySQL
|
BEGIN;
|
||
|
SELECT plan( 3 );
|
||
|
|
||
|
--
|
||
|
-- Insertion through sys.write_log()
|
||
|
--
|
||
|
CREATE OR REPLACE FUNCTION _test_this( )
|
||
|
RETURNS BIGINT
|
||
|
AS $$
|
||
|
SELECT sys.write_log( 'test' , 'WARNING'::log_level , 'test' );
|
||
|
$$ LANGUAGE SQL;
|
||
|
SELECT lives_ok( 'SELECT _test_this()' );
|
||
|
DROP FUNCTION _test_this( );
|
||
|
|
||
|
--
|
||
|
-- Direct insertion must fail
|
||
|
--
|
||
|
CREATE FUNCTION _test_this( )
|
||
|
RETURNS VOID
|
||
|
AS $$
|
||
|
INSERT INTO sys.logs( component , level , message )
|
||
|
VALUES ( 'test' , 'WARNING'::log_level , 'test' );
|
||
|
$$ LANGUAGE SQL;
|
||
|
SELECT throws_ok( 'SELECT _test_this()' , 42501 );
|
||
|
DROP FUNCTION _test_this( );
|
||
|
|
||
|
--
|
||
|
-- Updates must fail
|
||
|
--
|
||
|
CREATE OR REPLACE FUNCTION _test_this( )
|
||
|
RETURNS VOID
|
||
|
AS $$
|
||
|
UPDATE sys.logs SET component = 'random' WHERE component = 'test';
|
||
|
$$ LANGUAGE SQL;
|
||
|
SELECT throws_ok( 'SELECT _test_this()' , 42501 );
|
||
|
DROP FUNCTION _test_this( );
|
||
|
|
||
|
SELECT * FROM finish( );
|
||
|
ROLLBACK;
|